mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 18:23:25 +08:00
# 2022-02-09
### 1.3.5 开源社区版(会员专业版同步修改): 无 ### 0.1.5 会员专业版: 【升级】nuget升级常用组件到最新版本。 【修复】服务商品列表图片组件从image调整为u--image组件。#I4RUC6 【优化】规范coreshop-goods.vue组件for循环未定义key的问题。 【修复】修复因升级uview版本导致【商品选项卡goodTabBar组件】切换失效的问题。 【新增】微信自定义交易组件增加【商品审核结果回调】,【类目审核结果回调】微信服务器消息推送处理。 【优化】调整自定义交易组件sku价格为decimal(18, 2)类型,方便小数处理。 【优化】微信自定义交易组件增加图片同步至微信侧功能。 【优化】重命名一些方法名称大小写。 【新增】首页设计轮播图增加高度设置功能。#I4SWEA 【修复】优化在苹果6/7/8plus及安卓一些机型出现分享海报弹窗文字被遮挡的问题。#I4SWCA
This commit is contained in:
@@ -22,13 +22,14 @@ using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.ViewModels.Basics;
|
||||
using CoreCms.Net.Model.ViewModels.DTO;
|
||||
using CoreCms.Net.Model.ViewModels.QueryMuch;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Model.ViewModels.DTO;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using SqlSugar;
|
||||
|
||||
@@ -46,7 +47,8 @@ namespace CoreCms.Net.Services
|
||||
private readonly ICoreCmsMessageCenterServices _messageCenterServices;
|
||||
private readonly ICoreCmsUserPointLogServices _userPointLogServices;
|
||||
private readonly IRedisOperationRepository _redisOperationRepository;
|
||||
|
||||
|
||||
|
||||
public CoreCmsBillAftersalesServices(IUnitOfWork unitOfWork, ICoreCmsBillAftersalesRepository dal, IServiceProvider serviceProvider, ICoreCmsMessageCenterServices messageCenterServices, ICoreCmsUserPointLogServices userPointLogServices, IRedisOperationRepository redisOperationRepository)
|
||||
{
|
||||
this._dal = dal;
|
||||
@@ -94,12 +96,12 @@ namespace CoreCms.Net.Services
|
||||
var refundMoney = base.GetSum(where, p => p.refundAmount);
|
||||
|
||||
//算退货商品明细
|
||||
var list = base.QueryMuch<CoreCmsBillAftersalesItem, CoreCmsBillAftersales, QMAftersalesItems>(
|
||||
var list = base.QueryMuch<CoreCmsBillAftersalesItem, CoreCmsBillAftersales, QMAfterSalesItems>(
|
||||
(child, parent) => new object[]
|
||||
{
|
||||
JoinType.Inner, child.aftersalesId == parent.aftersalesId
|
||||
},
|
||||
(child, parent) => new QMAftersalesItems
|
||||
(child, parent) => new QMAfterSalesItems
|
||||
{
|
||||
orderItemsId = child.orderItemsId,
|
||||
nums = child.nums,
|
||||
@@ -127,7 +129,7 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
|
||||
var billAftersales = base.QueryListByClause(where);
|
||||
jm.data = new OrderToAftersalesDto
|
||||
jm.data = new OrderToAfterSalesDto
|
||||
{
|
||||
refundMoney = refundMoney,
|
||||
reshipGoods = reshipGoods,
|
||||
@@ -181,19 +183,32 @@ namespace CoreCms.Net.Services
|
||||
|
||||
using var container = _serviceProvider.CreateScope();
|
||||
var orderServices = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
|
||||
var settingServices = container.ServiceProvider.GetService<ICoreCmsSettingServices>();
|
||||
var orderItemServices = container.ServiceProvider.GetService<ICoreCmsOrderItemServices>();
|
||||
//var settingServices = container.ServiceProvider.GetService<ICoreCmsSettingServices>();
|
||||
var imagesServices = container.ServiceProvider.GetService<ICoreCmsBillAftersalesImagesServices>();
|
||||
var itemServices = container.ServiceProvider.GetService<ICoreCmsBillAftersalesItemServices>();
|
||||
var result = await orderServices.GetOrderInfoByOrderId(orderId, userId);
|
||||
if (result.status == false)
|
||||
var aftersalesServices = container.ServiceProvider.GetService<ICoreCmsBillAftersalesServices>();
|
||||
|
||||
|
||||
//判断是否存在还未处理的售后单据。
|
||||
var haveAS = await aftersalesServices.ExistsAsync(p => p.orderId == orderId && p.userId == userId && p.status == (int)GlobalEnumVars.BillAftersalesStatus.WaitAudit);
|
||||
if (haveAS)
|
||||
{
|
||||
jm.msg = "存在未处理的售后单";
|
||||
jm.status = false;
|
||||
return jm;
|
||||
}
|
||||
|
||||
var orderInfo = await orderServices.QueryByClauseAsync(p => p.orderId == orderId && p.userId == userId);
|
||||
if (orderInfo == null)
|
||||
{
|
||||
jm.msg = GlobalErrorCodeVars.Code13101;
|
||||
jm.code = 13101;
|
||||
return jm;
|
||||
}
|
||||
orderInfo.items = await orderItemServices.QueryListByClauseAsync(p => p.orderId == orderInfo.orderId);
|
||||
|
||||
var orderInfo = new CoreCmsOrder();
|
||||
orderInfo = result.data as CoreCmsOrder;
|
||||
orderServices.AfterSalesVal(orderInfo);
|
||||
|
||||
if (orderInfo.addAftersalesStatus == false)
|
||||
{
|
||||
@@ -202,7 +217,7 @@ namespace CoreCms.Net.Services
|
||||
return jm;
|
||||
}
|
||||
//生成售后单号
|
||||
var aftersalesId = CommonHelper.GetSerialNumberType((int)GlobalEnumVars.SerialNumberType.售后单编号);
|
||||
var afterSalesId = CommonHelper.GetSerialNumberType((int)GlobalEnumVars.SerialNumberType.售后单编号);
|
||||
|
||||
//校验订单是否可以进行此售后,并且校验订单价格是否合理
|
||||
var verifyResult = Verify(type, orderInfo, refund, items);
|
||||
@@ -218,7 +233,6 @@ namespace CoreCms.Net.Services
|
||||
verifyResult
|
||||
};
|
||||
|
||||
|
||||
//判断图片是否大于系统限定
|
||||
|
||||
//var allConfigs = await settingServices.GetConfigDictionaries();
|
||||
@@ -229,9 +243,29 @@ namespace CoreCms.Net.Services
|
||||
return jm;
|
||||
}
|
||||
|
||||
var aftersalesItemData = new List<CoreCmsBillAftersalesItem>();
|
||||
if (items != null && items.Any())
|
||||
{
|
||||
//如果是退货,判断退货明细,数量是否超出可退的数量
|
||||
var aftersalesItems = FormatAfterSalesItems(orderInfo, items, afterSalesId);
|
||||
if (!aftersalesItems.status)
|
||||
{
|
||||
return aftersalesItems;
|
||||
}
|
||||
//保存售后明细
|
||||
if (aftersalesItems.data != null)
|
||||
{
|
||||
aftersalesItemData = aftersalesItems.data as List<CoreCmsBillAftersalesItem>;
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.msg = "售后明细获取失败";
|
||||
return jm;
|
||||
}
|
||||
}
|
||||
|
||||
var billAftersales = new CoreCmsBillAftersales();
|
||||
billAftersales.aftersalesId = aftersalesId;
|
||||
billAftersales.aftersalesId = afterSalesId;
|
||||
billAftersales.orderId = orderId;
|
||||
billAftersales.userId = userId;
|
||||
billAftersales.type = type;
|
||||
@@ -241,22 +275,7 @@ namespace CoreCms.Net.Services
|
||||
billAftersales.createTime = DateTime.Now;
|
||||
//保存主表数据
|
||||
await _dal.InsertAsync(billAftersales);
|
||||
|
||||
if (items != null && items.Any())
|
||||
{
|
||||
//如果是退货,判断退货明细,数量是否超出可退的数量
|
||||
var aftersalesItems = formatAftersalesItems(orderInfo, items, aftersalesId);
|
||||
if (!aftersalesItems.status)
|
||||
{
|
||||
return aftersalesItems;
|
||||
}
|
||||
//保存售后明细
|
||||
if (aftersalesItems.data != null)
|
||||
{
|
||||
var list = aftersalesItems.data as List<CoreCmsBillAftersalesItem>;
|
||||
await itemServices.InsertAsync(list);
|
||||
}
|
||||
}
|
||||
await itemServices.InsertAsync(aftersalesItemData);
|
||||
|
||||
//保存图片
|
||||
if (images.Length > 0)
|
||||
@@ -266,7 +285,7 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
imagesList.Add(new CoreCmsBillAftersalesImages()
|
||||
{
|
||||
aftersalesId = aftersalesId,
|
||||
aftersalesId = afterSalesId,
|
||||
imageUrl = images[i],
|
||||
sortId = i
|
||||
});
|
||||
@@ -277,11 +296,15 @@ namespace CoreCms.Net.Services
|
||||
//消息模板推送给客户
|
||||
SmsHelper.SendMessage();
|
||||
|
||||
orderInfo.billAftersalesId = afterSalesId;
|
||||
|
||||
// 微信自定义交易组件-同步创建售后单
|
||||
await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.TransactionComponentAfterSaleCreateSync, JsonConvert.SerializeObject(orderInfo));
|
||||
|
||||
jm.status = true;
|
||||
jm.data = billAftersales;
|
||||
|
||||
jm.msg = "售后申请成功!";
|
||||
return jm;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -385,7 +408,7 @@ namespace CoreCms.Net.Services
|
||||
/// <param name="items">前台选择的退货商品信息</param>
|
||||
/// <param name="aftersalesId">将要保存的售后单的单号</param>
|
||||
/// <returns></returns>
|
||||
private WebApiCallBack formatAftersalesItems(CoreCmsOrder orderInfo, JArray items, string aftersalesId)
|
||||
private WebApiCallBack FormatAfterSalesItems(CoreCmsOrder orderInfo, JArray items, string aftersalesId)
|
||||
{
|
||||
var jm = new WebApiCallBack();
|
||||
var data = new List<CoreCmsBillAftersalesItem>();
|
||||
@@ -433,7 +456,6 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
jm.msg = GlobalErrorCodeVars.Code13202;
|
||||
jm.data = jm.code = 13202;
|
||||
|
||||
return jm;
|
||||
}
|
||||
jm.status = true;
|
||||
@@ -533,7 +555,7 @@ namespace CoreCms.Net.Services
|
||||
var billAftersalesItems = new List<CoreCmsBillAftersalesItem>();
|
||||
if (items.Count > 0)
|
||||
{
|
||||
var aftersalesItems = formatAftersalesItems(orderInfo, items, aftersalesId);
|
||||
var aftersalesItems = FormatAfterSalesItems(orderInfo, items, aftersalesId);
|
||||
if (!aftersalesItems.status)
|
||||
{
|
||||
return aftersalesItems;
|
||||
@@ -698,7 +720,6 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//更新状态
|
||||
await orderServices.UpdateAsync(
|
||||
p => new CoreCmsOrder() { status = orderInfo.status, payStatus = orderInfo.payStatus },
|
||||
|
||||
@@ -20,8 +20,8 @@ using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.ViewModels.Api;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Model.ViewModels.DTO;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Flurl.Http;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
@@ -69,6 +69,7 @@ namespace CoreCms.Net.Services
|
||||
_redisOperationRepository = redisOperationRepository;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 批量发货,可以支持多个订单合并发货,单个订单拆分发货等。
|
||||
/// </summary>
|
||||
@@ -82,8 +83,9 @@ namespace CoreCms.Net.Services
|
||||
/// <param name="shipAreaId">省市区id</param>
|
||||
/// <param name="shipAddress">收货地址</param>
|
||||
/// <param name="memo">发货描述</param>
|
||||
/// <param name="deliveryCompanyId">直播物流编码</param>
|
||||
/// <returns></returns>
|
||||
public async Task<WebApiCallBack> BatchShip(string[] orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "")
|
||||
public async Task<WebApiCallBack> BatchShip(string[] orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "", string deliveryCompanyId = "")
|
||||
{
|
||||
using var container = _serviceProvider.CreateScope();
|
||||
var jm = new WebApiCallBack();
|
||||
@@ -139,7 +141,7 @@ namespace CoreCms.Net.Services
|
||||
billDelivery.status = (int)GlobalEnumVars.BillDeliveryStatus.Already;
|
||||
billDelivery.memo = memo;
|
||||
billDelivery.createTime = DateTime.Now;
|
||||
|
||||
billDelivery.thirdPartylogiCode = deliveryCompanyId;
|
||||
|
||||
//设置发货明细
|
||||
var bdRel = new List<CoreCmsBillDeliveryItem>();
|
||||
@@ -229,15 +231,14 @@ namespace CoreCms.Net.Services
|
||||
/// <param name="shipAreaId">省市区id</param>
|
||||
/// <param name="shipAddress">收货地址</param>
|
||||
/// <param name="memo">发货描述</param>
|
||||
/// <param name="deliveryCompanyId">直播物流编码</param>
|
||||
/// <returns></returns>
|
||||
public async Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "")
|
||||
public async Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo, Dictionary<int, int> items, int storeId = 0, string shipName = "", string shipMobile = "", int shipAreaId = 0, string shipAddress = "", string memo = "", string deliveryCompanyId = "")
|
||||
{
|
||||
using var container = _serviceProvider.CreateScope();
|
||||
var jm = new WebApiCallBack();
|
||||
|
||||
var orderService = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
|
||||
var stockServices = container.ServiceProvider.GetService<ICoreCmsStockServices>();
|
||||
|
||||
//获取订单详情
|
||||
var dInfoResult = await orderService.GetOrderShipInfo(orderId);
|
||||
if (!dInfoResult.status)
|
||||
@@ -287,7 +288,7 @@ namespace CoreCms.Net.Services
|
||||
billDelivery.status = (int)GlobalEnumVars.BillDeliveryStatus.Already;
|
||||
billDelivery.memo = memo;
|
||||
billDelivery.createTime = DateTime.Now;
|
||||
|
||||
billDelivery.thirdPartylogiCode = deliveryCompanyId;
|
||||
|
||||
//设置发货明细
|
||||
var bdRel = new List<CoreCmsBillDeliveryItem>();
|
||||
@@ -315,6 +316,7 @@ namespace CoreCms.Net.Services
|
||||
//构建发货单明细
|
||||
var bdItem = new CoreCmsBillDeliveryItem();
|
||||
bdItem.deliveryId = billDelivery.deliveryId;
|
||||
bdItem.orderId = orderItem.orderId;
|
||||
bdItem.productId = orderItem.productId;
|
||||
bdItem.goodsId = orderItem.goodsId;
|
||||
bdItem.bn = orderItem.bn;
|
||||
@@ -322,7 +324,7 @@ namespace CoreCms.Net.Services
|
||||
bdItem.weight = orderItem.weight;
|
||||
bdItem.name = orderItem.name;
|
||||
bdItem.addon = !string.IsNullOrEmpty(orderItem.addon) ? orderItem.addon : "";
|
||||
bdItem.nums = item.Value;
|
||||
bdItem.nums = orderItem.nums;
|
||||
bdRel.Add(bdItem);
|
||||
}
|
||||
if (tNum < 1)
|
||||
@@ -342,16 +344,8 @@ namespace CoreCms.Net.Services
|
||||
//订单更新发货状态,发送各种消息
|
||||
await OrderShip(orderInfo, items, billDelivery, storeId);
|
||||
|
||||
var stock = new CoreCmsStock
|
||||
{
|
||||
manager = 0,
|
||||
id = billDelivery.deliveryId,
|
||||
createTime = DateTime.Now,
|
||||
type = (int)GlobalEnumVars.StockType.DeliverGoods,
|
||||
memo = "订单发货操作,发货单号:" + billDelivery.deliveryId
|
||||
};
|
||||
|
||||
await stockServices.InsertAsync(stock);
|
||||
//发货同步处理
|
||||
await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.TransactionComponentOrderShipSync, billDelivery.deliveryId);
|
||||
|
||||
jm.status = true;
|
||||
jm.msg = "发货成功";
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
|
||||
<PackageReference Include="Essensoft.Paylink.WeChatPay" Version="4.0.8" />
|
||||
<PackageReference Include="Flurl.Http" Version="3.2.1" />
|
||||
<PackageReference Include="Flurl.Http" Version="3.2.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Options" Version="6.0.0" />
|
||||
<PackageReference Include="Qc.YilianyunSdk" Version="1.0.7" />
|
||||
<PackageReference Include="Qiniu" Version="8.0.0" />
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.4" />
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="2.0.0" />
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta13" />
|
||||
<PackageReference Include="System.Drawing.Common" Version="6.0.0" />
|
||||
<PackageReference Include="Tencent.QCloud.Cos.Sdk" Version="5.4.26" />
|
||||
|
||||
@@ -25,13 +25,11 @@ using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.Basics;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Model.ViewModels.DTO;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
using Microsoft.OpenApi.Validations;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using SqlSugar;
|
||||
@@ -75,6 +73,11 @@ namespace CoreCms.Net.Services
|
||||
private readonly ISysTaskLogServices _taskLogServices;
|
||||
private readonly ICoreCmsPromotionRecordServices _promotionRecordServices;
|
||||
private readonly IRedisOperationRepository _redisOperationRepository;
|
||||
private readonly ICoreCmsUserWeChatInfoServices _userWeChatInfoServices;
|
||||
private readonly IWeChatTransactionComponentOrderServices _tcOrderServices;
|
||||
|
||||
|
||||
|
||||
|
||||
public CoreCmsOrderServices(ICoreCmsOrderRepository dal
|
||||
, IHttpContextAccessor httpContextAccessor
|
||||
@@ -100,7 +103,7 @@ namespace CoreCms.Net.Services
|
||||
, ICoreCmsPaymentsServices paymentsServices
|
||||
, ICoreCmsBillRefundServices billRefundServices
|
||||
, ICoreCmsBillLadingServices billLadingServices
|
||||
, ICoreCmsBillReshipServices billReshipServices, ICoreCmsMessageCenterServices messageCenterServices, ICoreCmsGoodsCommentServices goodsCommentServices, ISysTaskLogServices taskLogServices, ICoreCmsPromotionRecordServices promotionRecordServices, IRedisOperationRepository redisOperationRepository)
|
||||
, ICoreCmsBillReshipServices billReshipServices, ICoreCmsMessageCenterServices messageCenterServices, ICoreCmsGoodsCommentServices goodsCommentServices, ISysTaskLogServices taskLogServices, ICoreCmsPromotionRecordServices promotionRecordServices, IRedisOperationRepository redisOperationRepository, ICoreCmsUserWeChatInfoServices userWeChatInfoServices, IWeChatTransactionComponentOrderServices tcOrderServices)
|
||||
{
|
||||
this._dal = dal;
|
||||
base.BaseDal = dal;
|
||||
@@ -134,6 +137,8 @@ namespace CoreCms.Net.Services
|
||||
_taskLogServices = taskLogServices;
|
||||
_promotionRecordServices = promotionRecordServices;
|
||||
_redisOperationRepository = redisOperationRepository;
|
||||
_userWeChatInfoServices = userWeChatInfoServices;
|
||||
_tcOrderServices = tcOrderServices;
|
||||
}
|
||||
|
||||
|
||||
@@ -246,6 +251,7 @@ namespace CoreCms.Net.Services
|
||||
order.status = (int)GlobalEnumVars.OrderStatus.Normal;
|
||||
order.confirmStatus = (int)GlobalEnumVars.OrderConfirmStatus.ReceiptNotConfirmed;
|
||||
order.createTime = DateTime.Now;
|
||||
order.scene = scene;
|
||||
|
||||
//开始事务处理
|
||||
await _dal.InsertAsync(order);
|
||||
@@ -820,7 +826,7 @@ namespace CoreCms.Net.Services
|
||||
if (item.status == (int)GlobalEnumVars.BillAftersalesStatus.WaitAudit) break;
|
||||
}
|
||||
}
|
||||
//把退款金额和退货商品查出来
|
||||
//把退款金额和退货商品查出来判断是否能进行售后
|
||||
AfterSalesVal(order, aftersaleLevel);
|
||||
//促销信息
|
||||
if (!string.IsNullOrEmpty(order.promotionList))
|
||||
@@ -830,7 +836,7 @@ namespace CoreCms.Net.Services
|
||||
|
||||
//发票信息
|
||||
var invoiceModel = await _invoiceServices.GetOrderInvoiceInfo(order.orderId);
|
||||
if (invoiceModel != null && invoiceModel.status)
|
||||
if (invoiceModel is { status: true })
|
||||
{
|
||||
order.invoice = invoiceModel.data;
|
||||
}
|
||||
@@ -844,6 +850,9 @@ namespace CoreCms.Net.Services
|
||||
};
|
||||
}
|
||||
|
||||
order.tcOrder = await _tcOrderServices.QueryByClauseAsync(p => p.outOrderId == order.orderId);
|
||||
|
||||
|
||||
jm.status = true;
|
||||
jm.data = order;
|
||||
jm.msg = GlobalConstVars.GetDataSuccess;
|
||||
@@ -853,9 +862,9 @@ namespace CoreCms.Net.Services
|
||||
|
||||
#endregion
|
||||
|
||||
#region 把退款的金额和退货的商品数量保存起来
|
||||
#region 把退款金额和退货商品查出来判断是否能进行售后
|
||||
/// <summary>
|
||||
/// 把退款的金额和退货的商品数量保存起来
|
||||
/// 把退款金额和退货商品查出来判断是否能进行售后
|
||||
/// </summary>
|
||||
/// <param name="order"></param>
|
||||
/// <param name="aftersaleLevel">取售后单的时候,售后单的等级,0:待审核的和审核通过的售后单,1未审核的,2审核通过的</param>
|
||||
@@ -863,7 +872,7 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
var addAftersalesStatus = false;
|
||||
var res = _billAftersalesServices.OrderToAftersales(order.orderId, aftersaleLevel);
|
||||
var resData = res.data as OrderToAftersalesDto;
|
||||
var resData = res.data as OrderToAfterSalesDto;
|
||||
//已经退过款的金额
|
||||
order.refunded = resData.refundMoney;
|
||||
//算退货商品数量
|
||||
@@ -1126,7 +1135,7 @@ namespace CoreCms.Net.Services
|
||||
/// 商家获取订单列表-微信小程序
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<WebApiCallBack> GetOrderPageByMerchant(string dateType, string[] date, int status = 0, int storeId = 0, int page = 1, int limit = 5)
|
||||
public async Task<WebApiCallBack> GetOrderPageByMerchant(string dateType, string[] date, int status = 0, int receiptType = 0, int storeId = 0, int page = 1, int limit = 5)
|
||||
{
|
||||
var jm = new WebApiCallBack { status = true };
|
||||
|
||||
@@ -1139,6 +1148,12 @@ namespace CoreCms.Net.Services
|
||||
where = where.And(p => p.storeId == storeId);
|
||||
}
|
||||
|
||||
if (receiptType > 0)
|
||||
{
|
||||
where = where.And(p => p.receiptType == receiptType);
|
||||
|
||||
}
|
||||
|
||||
|
||||
DateTime dt = DateTime.Now;
|
||||
if (dateType == "today")
|
||||
@@ -1171,6 +1186,7 @@ namespace CoreCms.Net.Services
|
||||
//本月第一天时间
|
||||
DateTime dtFirst = dt.AddDays(1 - (dt.Day));
|
||||
dtFirst = new DateTime(dtFirst.Year, dtFirst.Month, dtFirst.Day, 0, 0, 0);
|
||||
|
||||
//获得某年某月的天数
|
||||
int dayCount = DateTime.DaysInMonth(dt.Date.Year, dt.Date.Month);
|
||||
//本月最后一天时间
|
||||
@@ -1231,7 +1247,6 @@ namespace CoreCms.Net.Services
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 商家获取订单列表通过检索手机号码和订单号-微信小程序
|
||||
/// <summary>
|
||||
/// 商家获取订单列表通过检索手机号码和订单号-微信小程序
|
||||
@@ -1296,6 +1311,7 @@ namespace CoreCms.Net.Services
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 订单支付
|
||||
|
||||
/// <summary>
|
||||
@@ -1329,15 +1345,14 @@ namespace CoreCms.Net.Services
|
||||
order.paymentCode = paymentCode;
|
||||
order.payStatus = (int)GlobalEnumVars.OrderPayStatus.Yes;
|
||||
|
||||
var isUpdate = await _dal.UpdateAsync(
|
||||
p => new CoreCmsOrder()
|
||||
{
|
||||
paymentCode = paymentCode,
|
||||
payStatus = (int)GlobalEnumVars.OrderPayStatus.Yes,
|
||||
paymentTime = order.paymentTime,
|
||||
payedAmount = order.orderAmount,
|
||||
updateTime = order.updateTime
|
||||
}, p => p.orderId == order.orderId);
|
||||
var isUpdate = await _dal.UpdateAsync(p => new CoreCmsOrder()
|
||||
{
|
||||
paymentCode = paymentCode,
|
||||
payStatus = (int)GlobalEnumVars.OrderPayStatus.Yes,
|
||||
paymentTime = order.paymentTime,
|
||||
payedAmount = order.orderAmount,
|
||||
updateTime = order.updateTime
|
||||
}, p => p.orderId == order.orderId);
|
||||
jm.data = isUpdate;
|
||||
|
||||
if (isUpdate)
|
||||
@@ -1723,6 +1738,7 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 构建单个需要发货的数据,和发货单密切关联
|
||||
/// <summary>
|
||||
/// 构建单个需要发货的数据,和发货单密切关联
|
||||
@@ -1772,7 +1788,6 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
AfterSalesVal(orderInfo, 0);
|
||||
|
||||
|
||||
if (!jm.status)
|
||||
{
|
||||
return jm;
|
||||
@@ -1885,7 +1900,7 @@ namespace CoreCms.Net.Services
|
||||
Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo, int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "")
|
||||
{
|
||||
|
||||
var result = await _billDeliveryServices.BatchShip(ids, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo);
|
||||
var result = await _billDeliveryServices.BatchShip(ids, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo, deliveryCompanyId);
|
||||
return result;
|
||||
|
||||
}
|
||||
@@ -1911,14 +1926,12 @@ namespace CoreCms.Net.Services
|
||||
public async Task<WebApiCallBack> Ship(string orderId, string logiCode, string logiNo,
|
||||
Dictionary<int, int> items, string shipName, string shipMobile, string shipAddress, string memo, int storeId = 0, int shipAreaId = 0, string deliveryCompanyId = "")
|
||||
{
|
||||
var result = await _billDeliveryServices.Ship(orderId, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo);
|
||||
var result = await _billDeliveryServices.Ship(orderId, logiCode, logiNo, items, storeId, shipName, shipMobile, shipAreaId, shipAddress, memo, deliveryCompanyId);
|
||||
return result;
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region 完成订单
|
||||
|
||||
/// <summary>
|
||||
@@ -1991,6 +2004,10 @@ namespace CoreCms.Net.Services
|
||||
//订单完成结算订单
|
||||
await _redisOperationRepository.SortedSetAddAsync(RedisMessageQueueKey.OrderFinishCommand, orderInfo.orderId, score);
|
||||
|
||||
// 微信自定义交易组件-订单确认收货
|
||||
await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.TransactionComponentOrderDeliveryRecieveSync, JsonConvert.SerializeObject(orderInfo));
|
||||
|
||||
|
||||
jm.status = true;
|
||||
jm.msg = "订单完成";
|
||||
|
||||
@@ -2026,12 +2043,19 @@ namespace CoreCms.Net.Services
|
||||
where = where.And(p => p.status == (int)GlobalEnumVars.OrderStatus.Normal);
|
||||
where = where.And(p => p.confirmStatus != (int)GlobalEnumVars.OrderConfirmStatus.ConfirmReceipt);
|
||||
|
||||
var orderInfo = await _dal.QueryByClauseAsync(where);
|
||||
if (orderInfo == null)
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "订单查询失败";
|
||||
}
|
||||
|
||||
var bl = await _dal.UpdateAsync(
|
||||
p => new CoreCmsOrder()
|
||||
{
|
||||
confirmStatus = (int)GlobalEnumVars.OrderConfirmStatus.ConfirmReceipt,
|
||||
confirmTime = DateTime.Now
|
||||
}, where);
|
||||
}, p => p.orderId == orderInfo.orderId);
|
||||
if (!bl)
|
||||
{
|
||||
jm.msg = "确认收货失败";
|
||||
@@ -2050,6 +2074,10 @@ namespace CoreCms.Net.Services
|
||||
};
|
||||
await _orderLogServices.InsertAsync(orderLog);
|
||||
|
||||
|
||||
// 微信自定义交易组件-订单确认收货
|
||||
await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.TransactionComponentOrderDeliveryRecieveSync, JsonConvert.SerializeObject(orderInfo));
|
||||
|
||||
jm.status = true;
|
||||
jm.msg = "确认收货成功";
|
||||
|
||||
@@ -2096,6 +2124,7 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 重写根据条件列表数据
|
||||
/// <summary>
|
||||
/// 重写根据条件列表数据
|
||||
|
||||
@@ -151,6 +151,7 @@ namespace CoreCms.Net.Services
|
||||
if (payment != null)
|
||||
{
|
||||
var is_matched = 0;
|
||||
var sceneResponse = new ShopSceneCheckResponse();
|
||||
#region 校验是否微信自定义交易组件
|
||||
var orderModel = await orderServices.QueryByClauseAsync(p => p.orderId == payment.sourceId);
|
||||
var orderInfo = new OrderInfo();
|
||||
@@ -165,9 +166,10 @@ namespace CoreCms.Net.Services
|
||||
sceneRequest.AccessToken = accessToken;
|
||||
sceneRequest.Scene = orderModel.scene;
|
||||
|
||||
var sceneResponse = await client.ExecuteShopSceneCheckAsync(sceneRequest);
|
||||
sceneResponse = await client.ExecuteShopSceneCheckAsync(sceneRequest);
|
||||
is_matched = sceneResponse.IsMatched ? 1 : 0;
|
||||
if (sceneResponse.IsSuccessful() && sceneResponse.IsMatched == true)
|
||||
//if (sceneResponse.IsSuccessful() && sceneResponse.IsMatched == true)
|
||||
if (sceneResponse.IsSuccessful())
|
||||
{
|
||||
//基础
|
||||
orderInfo.create_time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
@@ -246,6 +248,8 @@ namespace CoreCms.Net.Services
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
var tcOrder = await weChatTransactionComponentOrderServices.QueryByClauseAsync(p => p.outOrderId == orderModel.orderId);
|
||||
if (tcOrder == null)
|
||||
{
|
||||
@@ -267,7 +271,8 @@ namespace CoreCms.Net.Services
|
||||
orderInfo,
|
||||
checkSceneResult = new
|
||||
{
|
||||
is_matched
|
||||
is_matched,
|
||||
sceneResponse
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -156,7 +156,6 @@ namespace CoreCms.Net.Services
|
||||
|
||||
item.parameters = item.parameters.Replace("/images/empty-banner.png", "/static/images/common/empty-banner.png");
|
||||
|
||||
|
||||
if (item.widgetCode == "search") //搜索
|
||||
{
|
||||
dto.parameters = (JObject)JsonConvert.DeserializeObject(item.parameters);
|
||||
@@ -280,6 +279,7 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
var list = JArray.Parse(parameters["list"].ToString());
|
||||
var newList = new JArray();
|
||||
var count = 0;
|
||||
foreach (var jToken in list)
|
||||
{
|
||||
var child = (JObject)jToken;
|
||||
@@ -373,6 +373,7 @@ namespace CoreCms.Net.Services
|
||||
child.Add("list", new JArray());
|
||||
}
|
||||
}
|
||||
count++;
|
||||
newList.Add(child);
|
||||
}
|
||||
|
||||
@@ -384,7 +385,6 @@ namespace CoreCms.Net.Services
|
||||
}
|
||||
dto.parameters = parameters;
|
||||
}
|
||||
|
||||
else if (item.widgetCode == "goods")
|
||||
{
|
||||
JObject parameters = (JObject)JsonConvert.DeserializeObject(item.parameters);
|
||||
@@ -437,7 +437,7 @@ namespace CoreCms.Net.Services
|
||||
else
|
||||
{
|
||||
var orderBy = string.Empty;
|
||||
var goodidsStr = string.Empty;
|
||||
string goodidsStr;
|
||||
if (parameters != null && parameters.ContainsKey("list"))
|
||||
{
|
||||
JArray result = JArray.Parse(parameters["list"].ToString());
|
||||
@@ -533,10 +533,10 @@ namespace CoreCms.Net.Services
|
||||
var promotionId = ((JObject)ss)["id"].ObjectToInt(0);
|
||||
if (promotionId > 0)
|
||||
{
|
||||
var promotionModel = await _promotionServices.QueryByClauseAsync(p => p.id == promotionId && p.isEnable == true && p.startTime <= dt && p.endTime > dt);
|
||||
var promotionModel = await _promotionServices.QueryByClauseAsync(p => p.id == promotionId && p.isEnable == true && p.startTime <= dt && p.endTime > dt, true);
|
||||
if (promotionModel != null)
|
||||
{
|
||||
var condition = await _promotionConditionServices.QueryByClauseAsync(p => p.promotionId == promotionId);
|
||||
var condition = await _promotionConditionServices.QueryByClauseAsync(p => p.promotionId == promotionId, true);
|
||||
if (condition != null)
|
||||
{
|
||||
var obj = (JObject)JsonConvert.DeserializeObject(condition.parameters);
|
||||
|
||||
Reference in New Issue
Block a user