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, IRES_CUSTOMER_RFM { /// /// rfm入库 /// /// 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; } } }