using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.IBLL.Res; using WX.CRM.Model.Entity; namespace WX.CRM.BLL.Res { public class RES_DEPT_RULE_BL : DbContextRepository, IRES_DEPT_RULE { private readonly CACHE_BL _cache = new CACHE_BL(); public List GetDeptRule() { var businessDept = _cache.GetValue_Parameter("BusinessDept"); var depts = new List(); if (string.IsNullOrEmpty(businessDept)) { depts = _cache.GetList_SalesDepartMent(); } else { var businessArr = businessDept.Split(new char[1] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToDecimal(x)).ToArray(); depts = _cache.GetList_SalesDepartMent().Where(p => businessArr.Contains(p.SALEDEPTID)).ToList(); } var rules = GetList(); var list = new List(); foreach (var item in depts.OrderBy(p => p.CREATIONDATE)) { var info = new DeptRuleView() { DEPTID = item.SALEDEPTID, DEPTNAME = item.DEPTNAME }; var rule = rules.FirstOrDefault(p => p.DEPTID == info.DEPTID); if (rule != null) { info.RATE = rule.RATE; } list.Add(info); } return list; } public bool Save(List dto) { try { var ch = Utility.GetSettingOrNullByKey("Channel"); var url = _cache.GetValue_Parameter("Core_ZxdService_ResDeptRule"); if (string.IsNullOrEmpty(url)) { LogHelper.Info("Core_ZxdService_ResDeptRule:未配置"); return false; } if (string.IsNullOrEmpty(ch)) { LogHelper.Info("渠道号:未配置"); return false; } var depts = _cache.GetList_SalesDepartMent(); var rules = GetList(); foreach (var item in rules) { Delete(item); } var list = new List(); var paraList = new List(); foreach (var item in dto) { paraList.Add(new ResDeptRuleDto() { ch = Convert.ToInt32(ch), crmdeptid = Convert.ToInt32(item.DEPTID), num = Convert.ToInt32(item.RATE) } ); var info = new RES_DEPT_RULE() { DEPTID = item.DEPTID, DEPTNAME = item.DEPTNAME, RATE = item.RATE, CTIME = DateTime.Now }; var dept = depts.Where(p => p.SALEDEPTID == item.DEPTID); if (dept != null) { info.DEPTNAME = item.DEPTNAME; } list.Add(info); } if (!paraList.Any()) { paraList.Add(new ResDeptRuleDto() { ch = Convert.ToInt32(ch), crmdeptid = 0, num = 0 }); } var para = paraList.ToJson(); LogHelper.Info("para:" + para); var rsp = Utility.PostAjaxData(url, para, Encoding.UTF8); var rspObj = JsonConvert.DeserializeAnonymousType(rsp, new { result = false, retcode = 0, retmsg = string.Empty }); if (rspObj.result) { AddList(list); } return rspObj.result; } catch (Exception ex) { LogHelper.Error(ex); return false; } } } }