332 lines
15 KiB
C#
332 lines
15 KiB
C#
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;
|
||
}
|
||
}
|
||
}
|
||
}
|