TG.WXCRM.V4/BLL/Res/RES_CUSTOMER_RFM_BL.cs

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 = "#1E9FFF"; break;
case "购买": color = "#1E9FFF"; break;
case "消退": color = "#1E9FFF"; break;
case "意向": color = "#1E9FFF"; break;
case "互动": color = "#1E9FFF"; break;
case "一般": color = "#1E9FFF"; break;
case "失联": color = "#999999"; break;
default:
break;
}
return color;
}
}
}