253 lines
11 KiB
C#
253 lines
11 KiB
C#
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<Wx_SzzyOrder_HandGift_Map> GetHandGifList(ref Laypage pager, Wx_SzzyOrder_HandGift_Query param)
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
|
||
IQueryable<WX_SZZYORDER_HANDGIFT> 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<Wx_SzzyOrder_HandGift_Map>(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<retMsgNew<OrderHandGiftDto>>(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<retMsgNew<OrderHandGiftDto>>(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;
|
||
}
|
||
}
|
||
}
|