127 lines
4.2 KiB
C#
127 lines
4.2 KiB
C#
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<RES_DEPT_RULE>, IRES_DEPT_RULE
|
|
{
|
|
private readonly CACHE_BL _cache = new CACHE_BL();
|
|
public List<DeptRuleView> GetDeptRule()
|
|
{
|
|
var businessDept = _cache.GetValue_Parameter("BusinessDept");
|
|
|
|
var depts = new List<BAS_SALESDEPARTMENT>();
|
|
|
|
if (string.IsNullOrEmpty(businessDept))
|
|
{
|
|
depts = _cache.GetList_SalesDepartMent();
|
|
}
|
|
else
|
|
{
|
|
var businessArr = businessDept.Split(new char[1] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select<string, decimal>(x => Convert.ToDecimal(x)).ToArray();
|
|
depts = _cache.GetList_SalesDepartMent().Where(p => businessArr.Contains(p.SALEDEPTID)).ToList();
|
|
}
|
|
|
|
var rules = GetList();
|
|
var list = new List<DeptRuleView>();
|
|
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<DeptRuleView> 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<RES_DEPT_RULE>();
|
|
var paraList = new List<ResDeptRuleDto>();
|
|
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;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|