using CRM.Core.DTO; using CRM.Core.DTO.Ord; using System; using System.Collections.Generic; using System.Linq; using System.Text; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.Common.Layui; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.Model.Enum; using WX.CRM.Model.MAP; namespace WX.CRM.BLL.Wx { public class WX_SZZYORDER_HANDGIFT_BL : IWX_SZZYORDER_HANDGIFT { public List GetHandGifList(ref Laypage pager, Wx_SzzyOrder_HandGift_Query param) { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { IQueryable queryData = db.WX_SZZYORDER_HANDGIFT.AsQueryable(); if (param.ORDERSTATUS.HasValue) { queryData = queryData.Where(m => m.ORDERSTATUS == param.ORDERSTATUS.Value); } if (param.ORDERID.HasValue) { queryData = queryData.Where(m => m.ORDERID == param.ORDERID.Value); } if (param.MAINORDERID.HasValue) { queryData = queryData.Where(m => m.MAINORDERID == param.MAINORDERID.Value); } if (!string.IsNullOrEmpty(param.RESID)) { param.RESID = param.RESID.Trim(); queryData = queryData.Where(m => m.RESID == param.RESID); } if (!string.IsNullOrEmpty(param.SOFTUSERNAME)) { queryData = queryData.Where(m => m.SOFTUSERNAME == param.SOFTUSERNAME); } if (param.STIME.HasValue) { queryData = queryData.Where(m => m.CTIME >= param.STIME.Value); } if (param.ETIME.HasValue) { param.ETIME = param.ETIME.Value.AddDays(1); queryData = queryData.Where(m => m.CTIME < param.ETIME.Value); } var data = from a in queryData join b in db.WX_SZZYORDER on a.MAINORDERID equals b.ORDERID into t1 from b in t1.DefaultIfEmpty() select new Wx_SzzyOrder_HandGift_Map() { ORDERID = a.ORDERID, CHANNEL = a.CHANNEL, CHECKMEMO = a.CHECKMEMO, COMPANYCODE = a.COMPANYCODE, CREATEUSER = a.CREATEUSER, CTIME = a.CTIME, GIFTDAYS = a.GIFTDAYS, MAINORDERID = a.MAINORDERID, MAINPDAYS = b.OPENDAYS, MAINPGIF = b.GIFTDAYS, MAINPRODUCTNAME = b.SUBPRODUCTNAME, MEMO = a.MEMO, OLDOUTORDERNO = a.OLDOUTORDERNO, OPENUSER = a.OPENUSER, ORDERSTATUS = a.ORDERSTATUS, OPTIME = a.OPTIME, OTIME = a.OTIME, OUTORDERCLOSETIME = a.OUTORDERCLOSETIME, OUTORDERNO = a.OUTORDERNO, PRODUCTCODE = a.PRODUCTCODE, PRODUCTID = a.PRODUCTID, RESID = a.RESID, SOFTUSERNAME = a.SOFTUSERNAME, SUBPRODUCTCODE = a.SUBPRODUCTCODE, SUBPRODUCTNAME = a.SUBPRODUCTNAME, SZZYORDERID = a.SZZYORDERID, USERID = a.USERID, CLOSEMEMO = a.CLOSEMEMO, CLOSETIME = a.CLOSETIME, CLOSEUSER = a.CLOSEUSER }; data = data.OrderByDescending(m => m.CTIME); PagerUtil.SetPager(ref data, ref pager);//分页 return data.ToList(); } } public OrderHandGiftDto GetSuProductIdByOrderId(long orderId, ref ValidationErrors errors) { OrderHandGiftDto dto = new OrderHandGiftDto() { orderid = orderId }; var sHelper = new SecurityHelper(); var url = new CACHE_BL().GetValue_Parameter(Parameter.Core_ZxdService_GetSuProductIdByOrderId); var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey); string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8); //retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); var retmessage = Newtonsoft.Json.JsonConvert.DeserializeObject>(retmsg); if (retmessage.result) { dto = retmessage.data; } else { errors.Add(retmessage.retmsg); } return dto; } public bool Save(WX_SZZYORDER_HANDGIFT model, ref ValidationErrors errors) { bool result = false; try { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { //var orderext = db.WX_ORDEREXT.FirstOrDefault(m => m.ORDERID == model.MAINORDERID); //if (orderext == null) //{ // errors.Add("订单信息错误!"); // return false; //} //var mainorder = db.WX_SZZYORDER.FirstOrDefault(m => m.ORDERID == model.MAINORDERID); //if (mainorder == null) //{ // errors.Add("订单信息错误!"); // return false; //} //model.PRODUCTID = mainorder.SUBPRODUCTID; //var product = db.WX_SZZYSUBPRODUCT.FirstOrDefault(m => m.SUBPRODUCTID == model.PRODUCTID); //if (product.ISGIFT != 1) //{ // errors.Add("此订单产品未开启赠送!"); // return false; //} //model.PRODUCTCODE = product.PRODUCTCODE; //model.SOFTUSERNAME = orderext.SOFTUSERNAME; //model.ORDERSTATUS = 0; //model.RESID = mainorder.RESID; //model.ORDERID = new SEQUENCES_BL().Seq_base_get(); model.CTIME = DateTime.Now; var model2 = GetSuProductIdByOrderId(long.Parse(model.MAINORDERID.ToString()), ref errors); model.PRODUCTID = model2.subproductid; model.PRODUCTCODE = model2.productcode; #region 调用中心点接口 //调用中心点赠送订单申请接口 //dto.companycode = companyCode; OrderHandGiftDto dto = new OrderHandGiftDto() { channel = Convert.ToInt32(model.CHANNEL), checkmemo = model.CHECKMEMO, companycode = Utility.GetSettingOrNullByKey("DataClientCode"), createuser = model.CREATEUSER, ctime = model.CTIME, giftdays = Convert.ToInt32(model.GIFTDAYS), mainorderid = Convert.ToInt64(model.MAINORDERID), memo = model.MEMO, orderid = Convert.ToInt64(model.ORDERID), orderstatus = Convert.ToInt32(model.ORDERSTATUS), productcode = model.PRODUCTCODE, productid = Convert.ToInt32(model.PRODUCTID), resid = model.RESID, softusername = model.SOFTUSERNAME, subproductcode = model.SUBPRODUCTCODE, subproductname = model.SUBPRODUCTNAME, }; var sHelper = new SecurityHelper(); var url = new CACHE_BL().GetValue_Parameter(Parameter.Core_ZxdService_OrderHandleGift); var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey); string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8); //retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); var retmessage = Newtonsoft.Json.JsonConvert.DeserializeObject>(retmsg); if (retmessage.result) { model.ORDERID = retmessage.data.orderid; model.SUBPRODUCTNAME = retmessage.data.subproductname; model.SUBPRODUCTCODE = retmessage.data.subproductcode; model.PRODUCTTYPE = retmessage.data.producttype;//0-单一产品、1-组合产品 db.WX_SZZYORDER_HANDGIFT.Add(model); db.SaveChanges(); result = true; } else { errors.Add(retmessage.retmsg); result = false; } #endregion } } catch (Exception ex) { errors.Add(ex.Message); } return result; } public bool UpdateCheckStatus(WX_SZZYORDER_HANDGIFT model, ref ValidationErrors errors) { bool result = false; try { using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext()) { var entry = db.WX_SZZYORDER_HANDGIFT.FirstOrDefault(m => m.ORDERID == model.ORDERID); if (entry == null) { LogHelper.Error("WX_SZZYORDER_HANDGIFT找不到订单号:" + model.ORDERID); return true; } entry.ORDERSTATUS = model.ORDERSTATUS; entry.OPENUSER = model.OPENUSER; entry.OPTIME = model.OPTIME; entry.SZZYORDERID = model.SZZYORDERID; entry.CHECKMEMO = model.CHECKMEMO; entry.CLOSEMEMO = model.CLOSEMEMO; entry.CLOSEUSER = model.CLOSEUSER; entry.CLOSETIME = model.CLOSETIME; db.SaveChanges(); result = true; } } catch (Exception ex) { errors.Add(ex.Message); } return result; } } }