ComplianceServer/oldcode/BLL/Wx/WX_SZZYORDER_HANDGIFT_BL.cs

253 lines
11 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}