TG.WXCRM.V4/BLL/Wx/WX_FAST_USERNAME_BL.cs

332 lines
15 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Linq;
using WX.CRM.BLL.Base;
using WX.CRM.Common;
using WX.CRM.IBLL.Wx;
using WX.CRM.Model.Entity;
using WX.CRM.Model.MAP;
namespace WX.CRM.BLL.Wx
{
public class WX_FAST_USERNAME_BL : IWX_FAST_USERNAME
{
private string GetCode()
{
DateTime time = DateTime.Now;
return time.ToString("yyyyMMddHHmmssfff");
}
/// <summary>
/// 订单新增创建 指令
/// </summary>
/// <returns></returns>
public bool CreateFast_UserName(decimal orderid, string username)
{
try
{
if (string.IsNullOrEmpty(username))
return false;
using (var db = new crmContext())
{
var rcontact = db.WX_RCONTACT.Where(m => m.USERNAME == username).ToList();
if (rcontact != null && rcontact.Count > 0)//查询好友
{
foreach (WX_RCONTACT item in rcontact)
{
var workaccount = db.WX_WORKACCOUNT.FirstOrDefault(m => m.USERNAME == item.JOBWXUSERNAME);
if (workaccount == null)
continue;
var entry = db.WX_FAST_USERNAME.FirstOrDefault(m => m.STATUS != 200 && m.JOBUSERNAME == item.JOBWXUSERNAME);
if (entry == null)//没有这个工作微信的 指令,进行新增指令操作
{
DateTime time = new DateTime(2018, 1, 1);
var model = new WX_FAST_USERNAME()
{
PICI = new SEQUENCES_BL().Seq_base_get(),
JOBALIAS = workaccount.ALIAS,
JOBNICKNAME = workaccount.NICKNAME,
JOBUSERNAME = workaccount.USERNAME,
STATUS = 70,
POSITIONSTR = time,
CTIME = DateTime.Now,
CODE = GetCode(),
POSITIONTIME = DateTimeTool.ConvertDateTimeLong(time)
};
db.WX_FAST_USERNAME.Add(model);
var cldmodel = new WX_FAST_USERNAME_DL()
{
ALIAS = item.ALIAS,
CTIME = DateTime.Now,
ISDEL = 0,
JOBALIAS = model.JOBALIAS,
JOBNICKNAME = model.JOBNICKNAME,
JOBUSERNAME = model.JOBUSERNAME,
NICKNAME = item.NICKNAME,
ORDERID = orderid,
PICI = model.PICI,
TYPE = 1,
CONREMARK = item.CONREMARK,
USERNAME = item.USERNAME
};
db.WX_FAST_USERNAME_DL.Add(cldmodel);
}
else//有这个工作微信指令
{
var ordu = db.WX_FAST_USERNAME_DL.FirstOrDefault(m => m.PICI == entry.PICI && m.USERNAME == username);
if (ordu != null && ordu.USERNAME == username)//如果username没有做出修改直接跳过此工作微信
{
ordu.TYPE = 1;//修改成订单客户
continue;
}
DateTime time = new DateTime(2018, 1, 1);
entry.JOBALIAS = workaccount.ALIAS;
entry.JOBNICKNAME = workaccount.NICKNAME;
entry.STATUS = 70;
entry.POSITIONSTR = time;
entry.POSITIONTIME = DateTimeTool.ConvertDateTimeLong(time);
entry.UTIME = DateTime.Now;
entry.CODE = GetCode();
if (ordu == null)//找不到这个订单的就进行新增,有就不管
{
var cldmodel = new WX_FAST_USERNAME_DL()
{
ALIAS = item.ALIAS,
CTIME = DateTime.Now,
ISDEL = 0,
JOBALIAS = entry.JOBALIAS,
JOBNICKNAME = entry.JOBNICKNAME,
JOBUSERNAME = entry.JOBUSERNAME,
NICKNAME = item.NICKNAME,
ORDERID = orderid,
PICI = entry.PICI,
TYPE = 1,
CONREMARK = item.CONREMARK,
USERNAME = item.USERNAME
};
db.WX_FAST_USERNAME_DL.Add(cldmodel);
}
}
}
}
db.SaveChanges();
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return true;
}
/// <summary>
/// 手动修改数据
/// </summary>
/// <param name="jobusername"></param>
/// <param name="usernames"></param>
/// <param name="delusername"></param>
/// <param name="time"></param>
/// <returns></returns>
public bool ManMade_FastUsername(string jobusername, string usernames, string delusername, DateTime time)
{
try
{
if (string.IsNullOrEmpty(jobusername) || (string.IsNullOrEmpty(usernames) && string.IsNullOrEmpty(delusername)))
return false;
using (var db = new crmContext())
{
var workaccount = db.WX_WORKACCOUNT.FirstOrDefault(m => m.USERNAME == jobusername);
if (workaccount == null)
return false;
bool isbiandong = false;
var entry = db.WX_FAST_USERNAME.FirstOrDefault(m => m.STATUS != 200 && m.JOBUSERNAME == jobusername);//查找当前对应的批次指令
if (entry != null && !string.IsNullOrEmpty(delusername))//把删除了客户删掉
{
var deluser = delusername.Split(',');
if (deluser.Length > 0)
{
foreach (string item in deluser)
{
if (string.IsNullOrEmpty(item))
continue;
var cl = db.WX_FAST_USERNAME_DL.FirstOrDefault(m => m.PICI == entry.PICI && m.USERNAME == item);
if (cl != null)
{
db.WX_FAST_USERNAME_DL.Remove(cl);
isbiandong = true;
}
}
}
}
var parentmodel = entry;
if (entry == null)
{
var model = new WX_FAST_USERNAME()
{
PICI = new SEQUENCES_BL().Seq_base_get(),
JOBALIAS = workaccount.ALIAS,
JOBNICKNAME = workaccount.NICKNAME,
JOBUSERNAME = workaccount.USERNAME,
STATUS = 70,
POSITIONSTR = time,
CTIME = DateTime.Now,
CODE = GetCode(),
POSITIONTIME = DateTimeTool.ConvertDateTimeLong(time)
};
db.WX_FAST_USERNAME.Add(model);
parentmodel = model;
}
else
{
if (entry.POSITIONSTR != time)
{//时间发生修改,需要更新
isbiandong = true;
entry.POSITIONTIME = DateTimeTool.ConvertDateTimeLong(time);
entry.POSITIONSTR = time;
}
entry.UTIME = DateTime.Now;
}
var cusernames = usernames.Split(',');
if (cusernames.Length > 0)
{
foreach (var item in cusernames)
{
if (string.IsNullOrEmpty(item))
continue;
var cl = db.WX_FAST_USERNAME_DL.FirstOrDefault(m => m.PICI == parentmodel.PICI && m.USERNAME == item);
if (cl == null)//不存在就新增
{
var user = db.WX_RCONTACT.FirstOrDefault(m => m.JOBWXUSERNAME == jobusername && m.USERNAME == item);
var cldmodel = new WX_FAST_USERNAME_DL()
{
ALIAS = user.ALIAS,
CTIME = DateTime.Now,
ISDEL = 0,
JOBALIAS = parentmodel.JOBALIAS,
JOBNICKNAME = parentmodel.JOBNICKNAME,
JOBUSERNAME = parentmodel.JOBUSERNAME,
NICKNAME = user.NICKNAME,
ORDERID = 0,
PICI = parentmodel.PICI,
TYPE = 2,
USERNAME = user.USERNAME,
CONREMARK = user.CONREMARK
};
DateTime dateTime = DateTime.Now.AddDays(-5);//五天内的新订单
var ndb = db.WX_SZZYORDER.FirstOrDefault(m => m.CUSTOMERUSERNAME == item && m.CTIME > dateTime && (m.ORDERSTATUS == "180" || m.ORDERSTATUS == "200"));
if (ndb != null)
{
cldmodel.TYPE = 1;
cldmodel.ORDERID = ndb.ORDERID;
}
isbiandong = true;
db.WX_FAST_USERNAME_DL.Add(cldmodel);
}
}
}
if (isbiandong)
{
if (entry != null)
entry.CODE = GetCode();//如有变动就修改Code
}
db.SaveChanges();
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return true;
}
/// <summary>
/// 获取数据
/// </summary>
/// <param name="jobusername"></param>
/// <returns></returns>
public Wx_Fast_UserModel GetFastModel(string jobusername)
{
using (var db = new crmContext())
{
Wx_Fast_UserModel model = new Wx_Fast_UserModel();
var entry = db.WX_FAST_USERNAME.FirstOrDefault(m => m.JOBUSERNAME == jobusername && m.STATUS != 200);
model.fast_main = entry;
if (entry == null)
{
return model;
}
else
{
model.fast_child = db.WX_FAST_USERNAME_DL.Where(m => m.PICI == entry.PICI && m.ISDEL == 0).ToList();
}
return model;
}
}
/// <summary>
/// 修改完成
/// </summary>
/// <param name="pici">批次</param>
/// <returns></returns>
public bool UpdateComplete(string pici, int status)
{
using (var db = new crmContext())
{
decimal vpici = Convert.ToDecimal(pici);
WX_FAST_USERNAME entry = db.WX_FAST_USERNAME.FirstOrDefault(m => m.PICI == vpici);
if (entry == null)
return true;
else
{
entry.STATUS = status;
db.SaveChanges();
return true;
}
}
}
/// <summary>
/// 维护页面查询好友
/// </summary>
/// <param name="jobusername"></param>
/// <param name="username"></param>
/// <returns></returns>
public Wx_Fast_Search GetRcontact(string jobusername, string username)
{
using (var db = new crmContext())
{
Wx_Fast_Search search = new Wx_Fast_Search();
var ent = db.WX_RCONTACT.FirstOrDefault(m => m.JOBWXUSERNAME == jobusername && m.USERNAME == username);
if (ent == null)
{
search = null;
}
else
{
search = new Wx_Fast_Search()
{
ALIAS = ent.ALIAS,
CONREMARK = ent.CONREMARK,
NICKNAME = ent.NICKNAME,
ORDERID = 0,
USERNAME = ent.USERNAME,
TYPE = 2
};
DateTime dateTime = DateTime.Now.AddDays(-5);//五天内的新订单
var ndb = db.WX_SZZYORDER.FirstOrDefault(m => m.CUSTOMERUSERNAME == username && m.CTIME > dateTime && (m.ORDERSTATUS == "180" || m.ORDERSTATUS == "200"));
if (ndb != null)
{
search.TYPE = 1;
search.ORDERID = ndb.ORDERID;
}
}
return search;
}
}
}
}