278 lines
10 KiB
C#
278 lines
10 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity.Validation;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.RedisBL;
|
|
using WX.CRM.BLL.Wx;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.DAL.Res;
|
|
using WX.CRM.DAL.Util;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.EntitySync;
|
|
|
|
namespace WX.CRM.BLL.Res
|
|
{
|
|
public class RES_CUSTOMERDETAIL_BL : DbContextRepository<RES_CUSTOMERDETAIL>, IRES_CUSTOMERDETAIL, IRES_CUSTOMERDETAIL_Q
|
|
{
|
|
private readonly ReadOrWriteFromRedis_BL redisBl = new ReadOrWriteFromRedis_BL();
|
|
private readonly CUSTOMER_DAL _customerDal = new CUSTOMER_DAL();
|
|
#region 获取单个信息
|
|
public RES_CUSTOMERDETAIL GetModel_RES_CUSTOMERDETAIL(string resId)
|
|
{
|
|
////取redis
|
|
//WX.CRM.IBLL.Redis.IRedisHelper rd = new WX.CRM.BLL.Redis.RedisHelper();
|
|
//try
|
|
//{
|
|
// var o = rd.Get<RES_CUSTOMERDETAIL>(KeysDic.GetKey<RES_CUSTOMERDETAIL>(resId));
|
|
// o.RES_CUSTOMER = rd.Get<RES_CUSTOMER>(KeysDic.GetKey<RES_CUSTOMERDETAIL>(resId));
|
|
// if (o != null && o.RES_CUSTOMER != null)
|
|
// return o;
|
|
//}
|
|
//catch { }
|
|
////取ora
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
resId = resId.Trim();
|
|
RES_CUSTOMERDETAIL entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.RESID == resId || m.UMID == resId);
|
|
////写入redis
|
|
////------------------------------------------------------------------------------------------------
|
|
//var rc = db.RES_CUSTOMER.FirstOrDefault(p => p.RESID == resId);
|
|
//rd.AddToCache<RES_CUSTOMERDETAIL>(KeysDic.GetKey<RES_CUSTOMERDETAIL>(resId), entry);
|
|
//rd.AddToCache<RES_CUSTOMER>(KeysDic.GetKey<RES_CUSTOMER>(resId), rc);
|
|
////------------------------------------------------------------------------------------------------
|
|
return entry;
|
|
}
|
|
}
|
|
|
|
public RES_CUSTOMERDETAIL GetModel_RES_CUSTOMERDETAIL_UMID(string umid)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
umid = umid.Trim();
|
|
RES_CUSTOMERDETAIL entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.UMID == umid);
|
|
return entry;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 修改
|
|
public bool Update(ref ValidationErrors errors, WX.CRM.Model.Entity.RES_CUSTOMER model)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.RESID == model.RESID);
|
|
if (entry == null)
|
|
return false;
|
|
entry.CNAME = model.map_CNAME;
|
|
entry.PRIMARYNUMBERADDRESS = model.map_PRIMARYNUMBERADDRESS;
|
|
entry.PROVINCEID = model.map_PROVINCEID;
|
|
entry.CITYID = model.map_CITY;
|
|
entry.GENDER = model.map_GENDER;
|
|
entry.CUSTOMERTYPEID = model.map_CUSTOMERTYPEID;
|
|
entry.AMOUNTTYPEID = model.map_AMOUNTTYPEID;
|
|
entry.JOBTYPEID = model.map_JOBTYPEID;
|
|
entry.OPERATIONTYPE = model.map_OPERATIONTYPE;
|
|
entry.EMAIL = model.map_EMAIL;
|
|
entry.FAX = model.map_FAX;
|
|
entry.MSN = model.map_MSN;
|
|
entry.ADDRESS = model.map_ADDRESS;
|
|
entry.UTIME = DateTime.Now;
|
|
entry.UPDATEUSER = model.map_UPDATEUSER;
|
|
entry.CUSTOMERCATEGORY = model.map_CustomerCategory;
|
|
entry.BIRTHDAYAREA = model.RES_CUSTOMERDETAIL.BIRTHDAYAREA;
|
|
entry.DEALER = model.RES_CUSTOMERDETAIL.DEALER;
|
|
entry.OPERATIONTIME = model.RES_CUSTOMERDETAIL.OPERATIONTIME;
|
|
entry.FREQUENCY = model.RES_CUSTOMERDETAIL.FREQUENCY;
|
|
entry.STOCKPOSITION = model.RES_CUSTOMERDETAIL.STOCKPOSITION;
|
|
entry.GUPIAO = model.RES_CUSTOMERDETAIL.GUPIAO;
|
|
entry.RISKTOLERANCE = model.RES_CUSTOMERDETAIL.RISKTOLERANCE;
|
|
entry.PROFITANDLOSS = model.RES_CUSTOMERDETAIL.PROFITANDLOSS;
|
|
db.SaveChanges();
|
|
//new WX_SZZYORDER_REFUND_BL().updateSzzyOrderCname(model.RESID, model.map_CNAME);
|
|
//AddToRedis(entry);
|
|
return true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
errors.Add(ex.Message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public bool UpdateStatus(ref ValidationErrors errors, RES_CUSTOMERDETAIL detail)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.RESID == detail.RESID);
|
|
if (entry == null)
|
|
return false;
|
|
|
|
entry.ISPRIMARYNUM = detail.ISPRIMARYNUM;
|
|
entry.UTIME = DateTime.Now;
|
|
db.SaveChanges();
|
|
|
|
return true;
|
|
}
|
|
}
|
|
catch (DbEntityValidationException dbEx)
|
|
{
|
|
string verror = "";
|
|
foreach (var eve in dbEx.EntityValidationErrors)
|
|
{
|
|
verror += string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
|
|
eve.Entry.Entity.GetType().Name, eve.Entry.State);
|
|
foreach (var ve in eve.ValidationErrors)
|
|
{
|
|
verror += string.Format("- Property: \"{0}\", Error: \"{1}\"",
|
|
ve.PropertyName, ve.ErrorMessage);
|
|
}
|
|
}
|
|
LogHelper.Error(verror);
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
errors.Add(ex.Message);
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
public bool UpdateZJL(ref ValidationErrors errors, RES_CUSTOMERDETAIL detail)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.RESID == detail.RESID);
|
|
if (entry == null)
|
|
return false;
|
|
|
|
entry.AMOUNTTYPEID = detail.AMOUNTTYPEID;//修改资金量
|
|
entry.UTIME = DateTime.Now;
|
|
db.SaveChanges();
|
|
|
|
return true;
|
|
}
|
|
}
|
|
catch (DbEntityValidationException dbEx)
|
|
{
|
|
string verror = "";
|
|
foreach (var eve in dbEx.EntityValidationErrors)
|
|
|
|
LogHelper.Error(verror);
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex);
|
|
errors.Add(ex.Message);
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
public bool UpdateVisitStatus(RES_CUSTOMERDETAIL detail)
|
|
{
|
|
try
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.RESID == detail.RESID);
|
|
if (entry == null)
|
|
return false;
|
|
|
|
entry.VISITSTATUS = detail.VISITSTATUS;
|
|
entry.VISITTIME = detail.VISITTIME;
|
|
entry.VISITUSER = detail.VISITUSER;
|
|
entry.VISITREMARK = detail.VISITREMARK;
|
|
db.SaveChanges();
|
|
|
|
return true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public bool UpdateCategoryDic(Dictionary<string, string> dic)
|
|
{
|
|
try
|
|
{
|
|
//using (var db = new crmContext())
|
|
//{
|
|
// foreach (var item in dic)
|
|
// {
|
|
// var entry = db.RES_CUSTOMERDETAIL.FirstOrDefault(m => m.RESID == item.Key);
|
|
// if (entry == null)
|
|
// continue;
|
|
// entry.CUSTOMERCATEGORY = item.Value;
|
|
// db.SaveChanges();
|
|
// }
|
|
//}
|
|
DataTableHelper dtHelper = new DataTableHelper();
|
|
dtHelper.AddColumn("resid");
|
|
dtHelper.AddColumn("customercategory");
|
|
|
|
var dt = dtHelper.GetDataTable;
|
|
|
|
foreach (var item in dic)
|
|
{
|
|
var row = dt.NewRow();
|
|
row[0] = item.Key;
|
|
row[1] = item.Value;
|
|
dt.Rows.Add(row);
|
|
}
|
|
|
|
new OracleBulk_DAL().OracleBulkInsert("a_customercategory", dt);
|
|
|
|
new RES_DISTRIBUTE_DAL().UpdateCategory();
|
|
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private void AddToRedis(RES_CUSTOMERDETAIL detail, bool redisResult = true)
|
|
{
|
|
redisBl.AddRedis_Res_CustomerDetail(detail, out redisResult);
|
|
if (!redisResult)
|
|
{
|
|
#region redis 添加到待打包表
|
|
REDIS_CACHE_SSODATASYNC redisMoel1 = new REDIS_CACHE_SSODATASYNC();
|
|
redisMoel1.TABLETYPE = "res_customerdetail";
|
|
redisMoel1.KEYS = detail.RESID;
|
|
redisMoel1.OPTYPE = "A";
|
|
redisMoel1.TIME = DateTime.Now;
|
|
redisMoel1.LASTSYNCTIME = DateTime.Now;
|
|
redisMoel1.ERRNUM = 0;
|
|
redisMoel1.ERRMSG = "";
|
|
new REDIS_CACHE_SSODATASYNC_BL().Create_RedisCacheSSODataSYNC(redisMoel1);
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
|
|
public void SetMobileBelongToArea(string belongToMobile, string resId)
|
|
{
|
|
_customerDal.SetMobileBelongToArea(belongToMobile, resId);
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
}
|