122 lines
4.3 KiB
C#
122 lines
4.3 KiB
C#
using System;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.Base;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.Model.DTO;
|
|
using WX.CRM.Model.Entity;
|
|
|
|
namespace WX.CRM.BLL.Res
|
|
{
|
|
public class RES_CUSTOMER_RFM_BL : DbContextRepository<RES_CUSTOMER_RFM>, IRES_CUSTOMER_RFM
|
|
{
|
|
/// <summary>
|
|
/// rfm入库
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool PutRfmInDB(RES_CUSTOMER_RFM_LIST model)
|
|
{
|
|
bool result = false;
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
|
|
var nlist = db.RES_CUSTOMER_RFM_LIST.FirstOrDefault(m => m.APPID == model.APPID && m.SOFTUSER == model.SOFTUSER);
|
|
if (nlist == null)
|
|
{
|
|
model.PKID = new SEQUENCES_BL().Seq_base_get();
|
|
model.CTIME = DateTime.Now;
|
|
model.UTIME = DateTime.Now;
|
|
db.RES_CUSTOMER_RFM_LIST.Add(model);
|
|
db.SaveChanges();
|
|
}
|
|
else
|
|
{
|
|
nlist.UTIME = DateTime.Now;
|
|
nlist.LABELNAME = model.LABELNAME;
|
|
nlist.WEIGHT = model.WEIGHT;
|
|
nlist.RESID = model.RESID;
|
|
db.SaveChanges();
|
|
}
|
|
|
|
var first = db.RES_CUSTOMER_RFM_LIST.Where(m => m.RESID == model.RESID).OrderByDescending(m => m.WEIGHT).FirstOrDefault();
|
|
if (first == null)
|
|
{
|
|
return false;
|
|
}
|
|
var entry = db.RES_CUSTOMER_RFM.FirstOrDefault(m => m.RESID == model.RESID);
|
|
if (entry == null)
|
|
{
|
|
RES_CUSTOMER_RFM rmodel = new RES_CUSTOMER_RFM()
|
|
{
|
|
RESID = first.RESID,
|
|
WEIGHT = first.WEIGHT,
|
|
LABELNAME = first.LABELNAME,
|
|
CTIME = DateTime.Now,
|
|
UTIME = DateTime.Now,
|
|
PKID = new SEQUENCES_BL().Seq_base_get(),
|
|
SOFTUSER = first.SOFTUSER
|
|
|
|
};
|
|
db.RES_CUSTOMER_RFM.Add(rmodel);
|
|
}
|
|
else
|
|
{
|
|
entry.LABELNAME = first.LABELNAME;
|
|
entry.WEIGHT = first.WEIGHT;
|
|
entry.UTIME = DateTime.Now;
|
|
}
|
|
db.SaveChanges();
|
|
result = true;
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
LogHelper.Error(e.ToString());
|
|
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public ResCustomerRfmDto GetResCustomerRfm(string[] resids)
|
|
{
|
|
var list = GetList(p => resids.Contains(p.RESID));
|
|
var info = list.OrderByDescending(p => p.WEIGHT).FirstOrDefault();
|
|
var lableName = string.Empty;
|
|
var color = string.Empty;
|
|
var resid = string.Empty;
|
|
var softuser = string.Empty;
|
|
|
|
if (info != null)
|
|
{
|
|
lableName = info.LABELNAME;
|
|
color = GetCorlor(lableName);
|
|
resid = info.RESID;
|
|
softuser = info.SOFTUSER;
|
|
}
|
|
|
|
return new ResCustomerRfmDto() { LableName = lableName, Color = color, ResId = resid, AppUserId = softuser, AppId = "com.dongniu" };
|
|
}
|
|
|
|
private string GetCorlor(string lablename)
|
|
{
|
|
var color = string.Empty;
|
|
switch (lablename)
|
|
{
|
|
case "复购": color = "#1E9FFF"; break;
|
|
case "升级意向": color = "#FF5722"; break;
|
|
case "购买": color = "#E400FF"; break;
|
|
case "消退": color = "#393D49"; break;
|
|
case "意向": color = "#FFB800"; break;
|
|
case "互动": color = "#800080"; break;
|
|
case "一般": color = "#009688"; break;
|
|
case "失联": color = "#999999"; break;
|
|
default:
|
|
break;
|
|
}
|
|
return color;
|
|
}
|
|
}
|
|
}
|