515 lines
27 KiB
C#
515 lines
27 KiB
C#
using Crm.Core.Domain.Dto.Order;
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
using StackExchange.Redis;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace Crm.Core.Domain
|
||
{
|
||
internal class OrderDomain : IOrderDomain
|
||
{
|
||
private readonly ICacheDomain _cacheDomain;
|
||
private readonly IServiceProvider _serviceProvider;
|
||
private readonly IUserInfoDomain _userInfoDomain;
|
||
private readonly SystemConfig _systemConfig;
|
||
private readonly IConfiguration _configuration;
|
||
private readonly IHttpClient _httpClient;
|
||
|
||
public OrderDomain(ICacheDomain cacheDomain, IConfiguration configuration, IHttpClient httpClient,
|
||
IServiceProvider serviceProvider, IUserInfoDomain userInfoDomain)
|
||
{
|
||
_cacheDomain = cacheDomain;
|
||
_serviceProvider = serviceProvider;
|
||
_userInfoDomain = userInfoDomain;
|
||
_configuration = configuration;
|
||
_systemConfig = _configuration.GetSection("SystemConfig").Get<SystemConfig>();
|
||
_httpClient = httpClient;
|
||
}
|
||
|
||
public async Task UpdateOrderRealName(UpdateOrderRealNameDto dto)
|
||
{
|
||
var appid = _cacheDomain.GetApp();
|
||
using var scope = _serviceProvider.CreateAsyncScope();
|
||
Log.Information($"更新的实名信息,appid: {appid}, {dto.ToJson()}");
|
||
var repository = scope.ServiceProvider.GetRequiredService<IOracleRepository<CrmDbContext>>();
|
||
await _cacheDomain.SetApp(repository, appid);
|
||
var orders = await repository.GetRepository<WX_SZZYORDER>().Query()
|
||
.Where(x => dto.Orderids.Contains(x.ORDERID)).ToListAsync() ?? throw new ApiException("订单信息不存在!");
|
||
orders.ForEach(order =>
|
||
{
|
||
order.CNAME = dto.RealName;
|
||
});
|
||
await repository.GetRepository<WX_SZZYORDER>().BatchUpdateAsync(orders, x => new { x.CNAME });
|
||
}
|
||
|
||
#region 企微侧边栏 创建订单
|
||
|
||
/// <summary>
|
||
/// 获取创建订单需要的信息
|
||
/// </summary>
|
||
/// <param name="dto"></param>
|
||
/// <returns></returns>
|
||
public async Task<CreateOrderInfo> GetCreateOrderSelectItem(GetCreateOrderQueryDto dto)
|
||
{
|
||
using var scope = _serviceProvider.CreateAsyncScope();
|
||
var repository = scope.ServiceProvider.GetRequiredService<IOracleRepository<CrmDbContext>>();
|
||
await _cacheDomain.SetApp(repository, dto.deptid.Value);
|
||
//获取用户信息
|
||
CreateOrderInfo res = new CreateOrderInfo();
|
||
|
||
var userList = await _userInfoDomain.GetUserInfoByApi(dto.appid, dto.extuserid);
|
||
var resids = userList.Where(n => !string.IsNullOrWhiteSpace(n.resid)).Select(n => n.resid).Distinct().ToList();
|
||
var customerList = await repository.GetRepository<RES_CUSTOMER>().Query().Where(n => resids.Contains(n.RESID)).ToListAsync();
|
||
var customerdetail = await repository.GetRepository<RES_CUSTOMERDETAIL>().Query().Where(n => resids.Contains(n.RESID)).ToListAsync();
|
||
var softuserList = await repository.GetRepository<SOFT_USER>().Query().Where(n => resids.Contains(n.RESID)).ToListAsync();
|
||
List<RescustomerInfo> customerinfos = new List<RescustomerInfo>();
|
||
foreach (var item in softuserList)
|
||
{
|
||
customerinfos.Add(new RescustomerInfo
|
||
{
|
||
username = item.USERNAME,
|
||
umid = customerList.FirstOrDefault(n => n.RESID == item.RESID)?.UMID,
|
||
cname = customerdetail.FirstOrDefault(n => n.RESID == item.RESID)?.CNAME,
|
||
});
|
||
}
|
||
res.userinfos = customerinfos;
|
||
//获取所有有渠道的部门
|
||
List<DeptList> deptLists = new List<DeptList>();
|
||
var deptList = await repository.GetRepository<BAS_SALESDEPARTMENT>().Query().Where(p => p.CHANNELDEF != null && p.CHANNELDEF != 0).ToListAsync();
|
||
|
||
foreach (var dept in deptList)
|
||
{
|
||
deptLists.Add(new DeptList { deptname = dept.DEPTNAME, saledeptcode = dept.SALEDEPTCODE });
|
||
}
|
||
res.deptLists = deptLists;
|
||
var minproduct = await repository.GetRepository<WX_SZZYMIDPRODUCT>().Query().ToListAsync();
|
||
List<MinProductInfo> minProductInfos = new List<MinProductInfo>();
|
||
foreach (var min in minproduct)
|
||
{
|
||
minProductInfos.Add(new MinProductInfo { minproductid = min.MIDPRODUCTID, minproductname = min.MIDPRODUCTNAME });
|
||
}
|
||
res.minProductInfos = minProductInfos;
|
||
return res;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 根据大类获取产品编码
|
||
/// </summary>
|
||
/// <param name="dto"></param>
|
||
/// <returns></returns>
|
||
public async Task<List<ProductInfo>> GetProductByMinType(ProductQueryByMinProductId dto)
|
||
{
|
||
List<ProductInfo> res = new List<ProductInfo>();
|
||
using var scope = _serviceProvider.CreateAsyncScope();
|
||
var repository = scope.ServiceProvider.GetRequiredService<IOracleRepository<CrmDbContext>>();
|
||
await _cacheDomain.SetApp(repository, dto.deptid.Value);
|
||
var proList = await repository.GetRepository<WX_SZZYSUBPRODUCT>().Query().Where(n => n.ISVALID == 1 && n.ISSHOW == 1 && n.MIDPRODUCTID == dto.minProductId).ToListAsync();
|
||
foreach (var pro in proList)
|
||
{
|
||
res.Add(new ProductInfo { productCode = pro.PRODUCTCODE, productName = pro.SUBPRODUCTNAME + "(" + pro.RIGHTPERIOD + ")" });
|
||
}
|
||
return res;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取产品信息 折扣价等
|
||
/// </summary>
|
||
/// <param name="productcode"></param>
|
||
/// <returns></returns>
|
||
public async Task<ProductDetail> GetProductDetail(ProductQueryDto dto)
|
||
{
|
||
ProductDetail res = new ProductDetail();
|
||
using var scope = _serviceProvider.CreateAsyncScope();
|
||
var repository = scope.ServiceProvider.GetRequiredService<IOracleRepository<CrmDbContext>>();
|
||
await _cacheDomain.SetApp(repository, dto.deptid.Value);
|
||
try
|
||
{
|
||
var subProduct = await repository.GetRepository<WX_SZZYSUBPRODUCT>().Query().FirstOrDefaultAsync(m => m.PRODUCTCODE == dto.productcode);
|
||
if (subProduct == null)
|
||
{
|
||
throw new Exception("找不到对应的产品");
|
||
}
|
||
res.price = subProduct.PRICE;
|
||
res.days = subProduct.RIGHTPERIOD;
|
||
List<decimal> custompriceList = new List<decimal>();
|
||
//折扣价格
|
||
if (!string.IsNullOrEmpty(subProduct.CUSTOMPRICE))
|
||
{
|
||
var newList = subProduct.CUSTOMPRICE.Split(',').Where(n => !string.IsNullOrWhiteSpace(n)).Select(n => Convert.ToDecimal(n)).ToList();
|
||
custompriceList.AddRange(newList);
|
||
if (!string.IsNullOrEmpty(subProduct.HID_CUSTOMPRICE))
|
||
{
|
||
var oldList = subProduct.CUSTOMPRICE.Split(',');
|
||
var hideList = subProduct.HID_CUSTOMPRICE.Split(',');
|
||
var otherlist = oldList.Where(m => !hideList.Contains(m)).Where(n => !string.IsNullOrWhiteSpace(n)).Select(n => Convert.ToDecimal(n)).ToList();
|
||
custompriceList.AddRange(otherlist);
|
||
}
|
||
}
|
||
res.customprisce = custompriceList;
|
||
//折扣区间
|
||
var pricerange = string.Empty;
|
||
if (subProduct.ISDISCOUNTAREA == 1)
|
||
{
|
||
if (!string.IsNullOrEmpty(subProduct.DISCOUNTAREA))
|
||
{
|
||
var area = JsonHelper.FromJson<List<DiscountArea>>(subProduct.DISCOUNTAREA);
|
||
var range = area.Where(p => p.IsShow == 1).ToList();
|
||
res.discountAreas = range;
|
||
}
|
||
}
|
||
var gifts = await repository.GetRepository<WX_SZZYSUBPRODUCT_GIFT>().Query().Where(m => m.SUBPRODUCTID == subProduct.SUBPRODUCTID).ToListAsync();
|
||
|
||
//赠送天数
|
||
if (subProduct.ISGIFT == 1 && gifts.Any())
|
||
{
|
||
List<decimal> mma = new List<decimal> { 1, 2 };
|
||
var orderactiveList = await repository.GetRepository<WX_ORDERACTIVE>().Query().Where(M => M.PRODUCTCODE == subProduct.PRODUCTCODE && M.GIFTYPE.Contains("[Order]") && mma.Contains(M.ISFOLLOWORDER.Value)).ToListAsync();//订单的赠送配置
|
||
var entr = orderactiveList.FirstOrDefault(m => m.ISFOLLOWORDER == 1);
|
||
var giftData = new object { };
|
||
if (entr != null)
|
||
{
|
||
res.giftInfos = gifts.Where(p => p.TYPE == 1 && p.ISSHOW == 1).OrderBy(p => p.SORT).Select(p => new GiftInfo { giftday = p.GIFTDAYS, giftdayname = p.GIFTDAYSNAME, giftname = p.GIFTNAME }).ToList();
|
||
}
|
||
var entr2 = orderactiveList.FirstOrDefault(m => m.ISFOLLOWORDER == 2);
|
||
var giftData2 = new object { };
|
||
if (entr2 != null)
|
||
{
|
||
res.othergiftInfos = gifts.Where(p => p.TYPE == 2 && p.ISSHOW == 1).OrderBy(p => p.SORT).Select(p => new GiftInfo { giftday = p.GIFTDAYS, giftdayname = p.GIFTDAYSNAME, giftname = p.GIFTNAME }).ToList();
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw new Exception($"获取产品错误{ex.Message}");
|
||
}
|
||
|
||
return res;
|
||
}
|
||
|
||
public async Task<bool> CreateOrder(CreateOrderDto dto)
|
||
{
|
||
using var scope = _serviceProvider.CreateAsyncScope();
|
||
var repository = scope.ServiceProvider.GetRequiredService<IOracleRepository<CrmDbContext>>();
|
||
await _cacheDomain.SetApp(repository, dto.deptid);
|
||
var softuser = await repository.GetRepository<SOFT_USER>().Query().FirstOrDefaultAsync(n => n.USERNAME == dto.softUsername);
|
||
if (softuser == null)
|
||
{
|
||
throw new Exception("客户信息不正确");
|
||
}
|
||
var customer = await repository.GetRepository<RES_CUSTOMER>().Query().FirstOrDefaultAsync(n => n.RESID == softuser.RESID);
|
||
var customerdetail = await repository.GetRepository<RES_CUSTOMERDETAIL>().Query().FirstOrDefaultAsync(n => n.RESID == softuser.RESID);
|
||
var subproduct = await repository.GetRepository<WX_SZZYSUBPRODUCT>().Query().FirstOrDefaultAsync(n => n.PRODUCTCODE == dto.productCode);
|
||
var product = await repository.GetRepository<WX_SZZYPRODUCT>().Query().FirstOrDefaultAsync(n => n.PRODUCTID == subproduct.PRODUCTID);
|
||
var user = await repository.GetRepository<BAS_INNERUSER>().Query().FirstOrDefaultAsync(n => n.EID == dto.eid);
|
||
|
||
var saledept = await repository.GetRepository<BAS_SALESDEPARTMENT>().Query().FirstOrDefaultAsync(n => n.SALEDEPTCODE == dto.deptCode);
|
||
var linedept = await _cacheDomain.GetDeptments();
|
||
var comdept = linedept.FirstOrDefault(n => n.Id == dto.deptid);
|
||
if (customer == null || customerdetail == null)
|
||
{
|
||
throw new Exception("客户信息不正确");
|
||
}
|
||
var key = _systemConfig.GetAccessKey(_systemConfig.CRMClientKey);
|
||
var resourceMobile = await repository.GetRepository<RES_RESOURCEMOBILE>().FirstOrDefaultAsync(x => x.RESID == softuser.RESID);
|
||
var mobile = SecurityHelper.DecyptData(resourceMobile.MOBILE, key);
|
||
var themodel = new ordermodel
|
||
{
|
||
umid = customer.UMID,
|
||
cname = customerdetail.CNAME,
|
||
ordertype = dto.orderType,
|
||
productId = subproduct.PRODUCTID.Value,
|
||
productname = product.PRODUCTNAME,
|
||
remark = dto.remark,
|
||
saledeptid = null,
|
||
source = dto.source,
|
||
softusername = softuser.USERNAME,
|
||
bigproductcode = product.PRODUCTCODE,
|
||
productcode = subproduct.PRODUCTCODE,
|
||
subProductId = subproduct.SUBPRODUCTID.Value,
|
||
subproductname = subproduct.SUBPRODUCTNAME,
|
||
userid = user.PKID,
|
||
count = 1,
|
||
productType = Convert.ToInt32(subproduct.PRODUCTTYPE),
|
||
companycode = comdept.Code,
|
||
upgradeorderids = dto.upgradeorderids,
|
||
giftdays = dto.giftdays,
|
||
giftdays2 = dto.giftdays2,
|
||
customprisce = dto.customprisce,
|
||
estimateotime = DateTime.Now,
|
||
eid = dto.eid,
|
||
deptcode = dto.deptCode,
|
||
channel = saledept?.CHANNELMIN,
|
||
mobile = mobile,
|
||
opendays = subproduct?.RIGHTPERIOD,
|
||
discount = dto.pricerange,
|
||
needpay = dto.customprisce.HasValue ? dto.customprisce : dto.pricerange.HasValue ? dto.pricerange : subproduct.PRICE
|
||
};
|
||
if (themodel.source == "1")
|
||
{
|
||
themodel.corpid = dto.appid.Replace("_1", "");
|
||
themodel.jobuserid = dto.appuserid;
|
||
themodel.external_userid = dto.extuserid;
|
||
}
|
||
//调用中心点接口.
|
||
var url = await _cacheDomain.GetValueParameter("Core_ZxdService_CreateOrder");
|
||
var clientid = "UPWEBSITE";
|
||
var clientKey = _systemConfig.GetAccessKey(clientid);
|
||
var postJson = SecurityHelper.CreateSignEncodingStr(themodel.ToJson(), clientid, clientKey);
|
||
var retmsg = HttpHelper.GetData(url, postJson, Encoding.UTF8);
|
||
retmsg = SecurityHelper.DecyptData(retmsg, clientKey);
|
||
CreateOrderRsp retmessage = JsonHelper.FromJson<CreateOrderRsp>(retmsg);
|
||
if (retmessage.retCode == 10000)//成功
|
||
{
|
||
//创建订单
|
||
WX_SZZYORDER order = new WX_SZZYORDER
|
||
{
|
||
UPGRADEORDERIDS = dto.upgradeorderids,
|
||
OPERATETIME = DateTime.Now,
|
||
INNERUSERID = user?.PKID,
|
||
EID = user?.EID,
|
||
RESID = customer.RESID,
|
||
UMID = customer.UMID,
|
||
ISFINANCEPAY = 0,
|
||
OPENORDER = 0,
|
||
ISOPEN = 0,
|
||
ORDERTYPE = dto.orderType,
|
||
ORDERSTATUS = "180",
|
||
ORDERSTATUSNAME = "新订单",
|
||
PRODUCTNAME = product.PRODUCTNAME,
|
||
NEEDPAY = themodel.needpay,
|
||
RETURNNEEDPAY = subproduct.PRICE,
|
||
SOURCE = dto.source,
|
||
PRODUCTID = product.PRODUCTID,
|
||
SUBPRODUCTID = subproduct.SUBPRODUCTID,
|
||
CTIME = DateTime.Now,
|
||
RET = dto.pricerange,
|
||
RETP = dto.customprisce,
|
||
SUBPRODUCTNAME = subproduct.SUBPRODUCTNAME,
|
||
OPENDAYS = subproduct.RIGHTPERIOD,
|
||
CNAME = themodel?.cname,
|
||
ESTIMATEOTIME = themodel.estimateotime,
|
||
TOTALUPGRADEVALUE = themodel.totalupgradevalue,
|
||
REQUESTSTATUS = 1,
|
||
GIFTDAYS = themodel.giftdays,
|
||
GIFTDAYS2 = themodel.giftdays2,
|
||
DEPTCODE = themodel.deptcode,
|
||
SZZYORDERID = Convert.ToDecimal(retmessage.orderId),
|
||
ORDERID = Convert.ToDecimal(retmessage.selfOirderId),
|
||
FCTEXT = $"{dto.eid}:100%"
|
||
};
|
||
if (dto.source == "1")
|
||
{
|
||
order.EXTERNAL_USERID = dto.extuserid;
|
||
}
|
||
await repository.GetRepository<WX_SZZYORDER>().InsertAsync(order);
|
||
var payNo = "";
|
||
int? paytype = 0;
|
||
if (dto.payInfo != null && dto.payInfo.Count > 0)
|
||
{
|
||
payNo = dto.payInfo[0].payno;
|
||
paytype = dto.payInfo[0].paytype;
|
||
}
|
||
var orderExt = new WX_ORDEREXT
|
||
{
|
||
ORDERID = order.ORDERID,
|
||
PAYNO = payNo,
|
||
ISPAYED = 0,
|
||
OPENDAYS = order.OPENDAYS,
|
||
NAME = order.CNAME,
|
||
SOFTUSERNAME = softuser.USERNAME,
|
||
PAYTYPE = paytype > 0 ? paytype : null,
|
||
BOOKNUM = 1,
|
||
CHANNEL = themodel.channel.ToString()
|
||
};
|
||
await repository.GetRepository<WX_ORDEREXT>().InsertAsync(orderExt);
|
||
//设置分成
|
||
try
|
||
{
|
||
var pkid = await _cacheDomain.GetSeq_smallid_get(dto.deptid);
|
||
var usergroup = await repository.GetRepository<BAS_INNERUSERGROUP>().FirstOrDefaultAsync(n => n.INNERUSERID == user.PKID);
|
||
var wxCommissionRuleModel = new WX_COMMISSIONRULE()
|
||
{
|
||
PKID = pkid,
|
||
ORDERID = order.ORDERID,
|
||
SZZYORDERID = order.SZZYORDERID,
|
||
SALEUSERID = user.PKID,
|
||
EID = order.EID,
|
||
COMMISSIONRATIO = 100,
|
||
ISMAIN = 1,
|
||
CREATEUSERID = user.PKID,
|
||
CREATETIME = DateTime.Now,
|
||
ENAME = user?.UNAME,
|
||
};
|
||
if (usergroup != null)
|
||
{
|
||
var group = await repository.GetRepository<BAS_INNERGROUP>().FirstOrDefaultAsync(n => n.GID == usergroup.GID);
|
||
if (group == null)
|
||
{
|
||
var dept = await repository.GetRepository<BAS_SALESDEPARTMENT>().FirstOrDefaultAsync(n => n.SALEDEPTID == usergroup.DEPTID);
|
||
wxCommissionRuleModel.GID = dept?.SALEDEPTID;
|
||
wxCommissionRuleModel.GNAME = dept?.DEPTNAME;
|
||
}
|
||
else
|
||
{
|
||
wxCommissionRuleModel.GID = group.GID;
|
||
wxCommissionRuleModel.GNAME = group.GNAME;
|
||
}
|
||
}
|
||
await repository.GetRepository<WX_COMMISSIONRULE>().InsertAsync(wxCommissionRuleModel);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Log.Error($"订单{order.ORDERID}设置分成失败{ex.Message}");
|
||
}
|
||
//提交支付记录
|
||
if (dto.payInfo != null && dto.payInfo.Count > 0)
|
||
{
|
||
var orderuselist = new List<OrderuseDto>() {
|
||
new OrderuseDto() { orderid = Convert.ToInt32(order.ORDERID), needpay = themodel.needpay.Value, arrivalpay = 0 }
|
||
};
|
||
List<PayInfoDto> paylist = new List<PayInfoDto>();
|
||
foreach (var pay in dto.payInfo)
|
||
{
|
||
var paytypename = "未知";
|
||
switch (int.Parse(pay.paytype.ToString()))
|
||
{
|
||
case 1: paytypename = "支付宝"; break;
|
||
case 3: paytypename = "银行转账"; break;
|
||
case 5: paytypename = "微信支付"; break;
|
||
}
|
||
paylist.Add(new PayInfoDto
|
||
{
|
||
resid = order.RESID,
|
||
paytype = pay.paytype,
|
||
paytypename = paytypename,
|
||
paydate = pay.paydate,
|
||
payprice = pay.payprice,
|
||
payname = pay.payname,
|
||
remark = pay.remark,
|
||
payno = pay.payno,
|
||
isuse = 0,
|
||
companycode = themodel.companycode,
|
||
tradeno = null,
|
||
creator = Convert.ToInt32(user.EID),
|
||
creatorname = user.UNAME
|
||
});
|
||
}
|
||
var paydto = new PayPostZxdDto
|
||
{
|
||
orderuselist = orderuselist,
|
||
resid = order.RESID,
|
||
deptcode = themodel.deptcode,
|
||
paylist = paylist
|
||
};
|
||
var payurl = await _cacheDomain.GetValueParameter("Core_PayService_OrderPay");
|
||
var paypost = SecurityHelper.CreateSignEncodingStr(paydto.ToJson(), clientid, clientKey);
|
||
Log.Information("payurl:" + payurl + "?" + paypost);
|
||
var rep = HttpHelper.GetData(payurl, paypost, Encoding.UTF8);
|
||
var payretmsg = JsonHelper.FromJson<retMsg<List<DepositInfoDto>>>(rep);
|
||
if (payretmsg.result)
|
||
{
|
||
var paynoFilter = paydto.paylist.Select(n => n.payno).ToList();
|
||
var depostList = await repository.GetRepository<WX_SZZYORDERDEPOSIT>().Query().Where(p => paynoFilter.Contains(p.PAYNO) && p.AUDITSTATUS == 1 && p.PAYNO != null).ToListAsync();
|
||
List<WX_SZZYORDERDEPOSIT> adddepostList = new List<WX_SZZYORDERDEPOSIT>();
|
||
foreach (var payinfo in paydto.paylist)
|
||
{
|
||
decimal usepriceall = 0;
|
||
decimal lastpriceall = 0;
|
||
//查看是否已经有确认到账记录
|
||
var depost = depostList.FirstOrDefault(n => n.PAYNO == payinfo.payno);
|
||
var depositId = 0;
|
||
if (depost == null)
|
||
{
|
||
var depositinfiList = payretmsg.retmsg;
|
||
depositId = depositinfiList.Find(p => p.payno == payinfo.payno).id;
|
||
|
||
lastpriceall = payinfo.payprice;
|
||
}
|
||
else
|
||
{
|
||
depositId = Convert.ToInt32(depost.ID);
|
||
//如果已经存在说明已经使用过了,那要重新计算使用金额跟剩余金额
|
||
usepriceall = depost.USEPRICE ?? 0;
|
||
lastpriceall = depost.LASTPRICE ?? 0;
|
||
}
|
||
foreach (var item in paydto.orderuselist)
|
||
{
|
||
if (lastpriceall <= 0)
|
||
{
|
||
//如果剩余金额小于等于0,说明已经没钱支付了,不执行下面的操作
|
||
continue;
|
||
}
|
||
order = await repository.GetRepository<WX_SZZYORDER>().FirstOrDefaultAsync(n => n.ORDERID == order.ORDERID);
|
||
if (order == null)
|
||
throw new Exception("参数错误,未能找到订单!");
|
||
else
|
||
{
|
||
//如果已经支付过,赋值到当前临时记录的到账金额
|
||
if (order.ARRIVALPAY.HasValue)
|
||
item.arrivalpay = order.ARRIVALPAY.Value;
|
||
if (order.ORDERSTATUS == "180" || order.ORDERSTATUS == "190" || order.ORDERSTATUS == "195")
|
||
{
|
||
order.ORDERSTATUS = "190";
|
||
order.ORDERSTATUSNAME = "已提交支付";
|
||
await repository.GetRepository<WX_SZZYORDER>().UpdateAsync(order);
|
||
}
|
||
else
|
||
{
|
||
//已经是支付状态,说明已经给够钱了,不需要再支付了
|
||
Log.Information(order.ORDERID.ToString() + "支付金额已经够了,不需要再支付了!");
|
||
continue;
|
||
//return new retMsg { result = false, retcode = 100, retmsg = order.ORDERID.ToString() + "支付金额已经够了,不需要再支付了!" };
|
||
}
|
||
}
|
||
}
|
||
if (depost == null)
|
||
{
|
||
depost = new WX_SZZYORDERDEPOSIT
|
||
{
|
||
ID = depositId,
|
||
RESID = payinfo.resid,
|
||
PAYTYPE = payinfo.paytype,
|
||
PAYTYPENAME = payinfo.paytypename,
|
||
PAYDATE = payinfo.paydate,
|
||
PAYPRICE = payinfo.payprice,
|
||
PAYNAME = payinfo.payname,
|
||
REMARK = payinfo.remark,
|
||
PAYNO = payinfo.payno,
|
||
ISUSE = payinfo.isuse,
|
||
COMPANYCODE = payinfo.companycode,
|
||
TRADENO = payinfo.tradeno,
|
||
CREATOR = payinfo.creator,
|
||
CREATORNAME = payinfo.creatorname,
|
||
USEPRICE = usepriceall,
|
||
LASTPRICE = lastpriceall,
|
||
DEPTCODE = paydto.deptcode,
|
||
CTIME = DateTime.Now
|
||
};
|
||
adddepostList.Add(depost);
|
||
}
|
||
else
|
||
{
|
||
depost.USEPRICE = usepriceall;
|
||
depost.LASTPRICE = lastpriceall;
|
||
}
|
||
}
|
||
if (adddepostList.Count > 0)
|
||
{
|
||
await repository.GetRepository<WX_SZZYORDERDEPOSIT>().BatchInsertAsync(adddepostList);
|
||
}
|
||
if (depostList.Count > 0)
|
||
{
|
||
await repository.GetRepository<WX_SZZYORDERDEPOSIT>().BatchUpdateAsync(depostList);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
#endregion 企微侧边栏 创建订单
|
||
}
|
||
} |