using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WX.CRM.BLL.Base; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.Common.StockHelper; using WX.CRM.IBLL.MsgTool; using WX.CRM.IBLL.WeWork; using WX.CRM.Model.Entity; using WX.CRM.Model.Enum; namespace WX.CRM.BLL.WeWork { public class WxResource_BL : IWxResource { private CACHE_BL _cache = new CACHE_BL(); private BAS_BUSSINESSLINE_BL line_bl = new BAS_BUSSINESSLINE_BL(); public WxResource_BL() { } public List GetGroupList(decimal userid) { //获取事业线 var busineeLine = line_bl.GetBusinessLineByRoot(userid); List result = new List(); var url = _cache.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI); //url = "http://localhost:5244"; url = $"{url}/Api/WeWorkResource/UserGroupList"; var para = $"deptid={string.Join(",", busineeLine.Select(n => n.BUSINESSID))}"; Dictionary header = new Dictionary(); var appid = System.Configuration.ConfigurationManager.AppSettings["appid"]; header.Add("appid", appid); var res = Utility.GetData(url, para, header, Encoding.UTF8, 5000); var reqInfo = JsonConvert.DeserializeObject>>(res); if (reqInfo.Code == 0) { foreach (var item in reqInfo.Data) { var nameTxt = item.Name; if (!string.IsNullOrWhiteSpace(item.catekeyName)) { nameTxt = $"({item.catekeyName}) {item.Name}"; } result.Add(new UserGroupModel { id = item.Id.ToString(), text = nameTxt, description = item.Description, UserCount = item.UserCount, CustomerCount = item.CustomerCount, deptId = item.deptId }); } return result; } else { throw new Exception(reqInfo.Message); } } public bool SubmitResourceTask(ResourceConfigCreateDto model) { using (var db = new crmContext()) { var user = db.BAS_INNERUSER.FirstOrDefault(n => n.EID == model.eid); var busineeLine = line_bl.GetBusinessLineByRoot(user.PKID); var url = _cache.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI); var fromUser = JsonConvert.DeserializeObject>(model.fromUser); var toUser = JsonConvert.DeserializeObject>(model.toUser); if (string.IsNullOrWhiteSpace(model.appid)) { throw new Exception("请选择企微和人群包"); } if (model.total <= 0) { throw new Exception("没有可分配的数量"); } if (model.total < toUser.Sum(n => n.flowCount)) { throw new Exception("总分配人数不能大于可分配资源数"); } if (toUser.Count == 0 || toUser.Sum(n => n.flowCount) <= 0) { throw new Exception("请选择接替成员和填写分配数量"); } var containUser = fromUser.Where(m => toUser.Select(n => n.userid).Contains(m.userid)).ToList(); if (containUser.Count > 0) { throw new Exception($"存在相同的转移成员与接替成员【{string.Join(",", containUser.Select(n => n.userid))}】"); } if (model.deptId <= 0 && busineeLine.Count > 0) { model.deptId = Convert.ToInt32(busineeLine.FirstOrDefault().BUSINESSID); } //构建对象 ResourceConfigPostDto postdata = new ResourceConfigPostDto { appid = model.appid, gname = model.gname, groupid = model.groupid, eid = model.eid, ename = user?.UNAME, flowCount = toUser.Sum(n => n.flowCount), deptId = model.deptId, FromUser = fromUser, ToUser = toUser }; url = $"{url}/Api/WeWorkResource/SubmitSourceTask"; //url = "http://localhost:5244/Api/WeWorkResource/SubmitSourceTask"; var para = postdata.ToJson(); Dictionary header = new Dictionary(); var res = Utility.PostAjaxData(url, para, header, Encoding.UTF8, 5000); var reqInfo = JsonConvert.DeserializeObject(res); if (reqInfo.Code == 0) { return true; } else { throw new Exception(reqInfo.Message); } } } } }