mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-03-23 12:07:21 +08:00
2022-01-11
## 1.2.9 开源社区版: 【修复】修复全局定义微信配置引用的配置文件命名错误问题。 【修复】修复自动生成sku模式价格出现货号重复情况,#I4Q4WU ## 0.0.6 会员先行版: 【新增】新增微信自定义交易组件,实现微信视频号直播带货功能。
This commit is contained in:
@@ -27,6 +27,7 @@ using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using CoreCms.Net.WeChat.Service.HttpClients;
|
||||
using CoreCms.Net.WeChat.Service.TransactionComponent.Enum;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -59,7 +60,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
private readonly ICoreCmsLogisticsServices _logisticsServices;
|
||||
private readonly ICoreCmsPaymentsServices _paymentsServices;
|
||||
private readonly ICoreCmsSettingServices _settingServices;
|
||||
private readonly IWeChatTransactionComponentOrderServices _tcOrderServices;
|
||||
private readonly ICoreCmsUserWeChatInfoServices _userWeChatInfoServices;
|
||||
private readonly IWeChatTransactionComponentDeliveryCompanyServices _tcDeliveryCompanyServices;
|
||||
private readonly IRedisOperationRepository _redisOperationRepository;
|
||||
private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
|
||||
|
||||
@@ -80,7 +83,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
, ICoreCmsLogisticsServices logisticsServices
|
||||
, ICoreCmsBillPaymentsServices billPaymentsServices
|
||||
, ICoreCmsPaymentsServices paymentsServices
|
||||
, ICoreCmsSettingServices settingServices, ICoreCmsUserWeChatInfoServices userWeChatInfoServices, IRedisOperationRepository redisOperationRepository, ICoreCmsBillDeliveryServices billDeliveryServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsOrderItemServices orderItemServices)
|
||||
, ICoreCmsSettingServices settingServices, IWeChatTransactionComponentOrderServices tcOrderServices, ICoreCmsUserWeChatInfoServices userWeChatInfoServices, IWeChatTransactionComponentDeliveryCompanyServices tcDeliveryCompanyServices, IRedisOperationRepository redisOperationRepository, ICoreCmsBillDeliveryServices billDeliveryServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsOrderItemServices orderItemServices)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_coreCmsOrderServices = coreCmsOrderServices;
|
||||
@@ -92,7 +95,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
_billPaymentsServices = billPaymentsServices;
|
||||
_paymentsServices = paymentsServices;
|
||||
_settingServices = settingServices;
|
||||
_tcOrderServices = tcOrderServices;
|
||||
_userWeChatInfoServices = userWeChatInfoServices;
|
||||
_tcDeliveryCompanyServices = tcDeliveryCompanyServices;
|
||||
_redisOperationRepository = redisOperationRepository;
|
||||
_billDeliveryServices = billDeliveryServices;
|
||||
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
|
||||
@@ -482,6 +487,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
var storeList = await _storeServices.QueryAsync();
|
||||
|
||||
var logistics = await _logisticsServices.QueryListByClauseAsync(p => p.isDelete == false);
|
||||
var deliveryCompany = await _tcDeliveryCompanyServices.GetCaChe();
|
||||
|
||||
var result = await _coreCmsOrderServices.GetOrderShipInfo(entity.id);
|
||||
if (!result.status)
|
||||
@@ -508,6 +514,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
orderModel = result.data,
|
||||
storeList,
|
||||
logistics,
|
||||
deliveryCompany
|
||||
};
|
||||
|
||||
return jm;
|
||||
@@ -1642,12 +1649,12 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
#region 重新同步发货============================================================
|
||||
// POST: Api/CoreCmsOrder/DeleteOrder/10
|
||||
/// <summary>
|
||||
/// 批量删除订单
|
||||
/// 重新同步发货
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("批量删除订单")]
|
||||
[Description("重新同步发货")]
|
||||
public async Task<AdminUiCallBack> RefreshDelivery([FromBody] FMStringId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
@@ -1665,6 +1672,10 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
return jm;
|
||||
}
|
||||
|
||||
//发货同步处理
|
||||
await _redisOperationRepository.ListLeftPushAsync(RedisMessageQueueKey.TransactionComponentOrderShipSync, delivery.deliveryId);
|
||||
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = "提交任务成功,请核实远端状态";
|
||||
|
||||
@@ -1698,5 +1709,77 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 获取交易组件订单信息
|
||||
// POST: Api/CoreCmsOrder/GetTcOrder/10
|
||||
/// <summary>
|
||||
/// 获取交易组件订单信息
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取交易组件订单信息")]
|
||||
public async Task<AdminUiCallBack> GetTcOrder([FromBody] FMStringId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var orderModel = await _coreCmsOrderServices.QueryByClauseAsync(p => p.orderId == entity.id);
|
||||
if (orderModel == null)
|
||||
{
|
||||
jm.msg = "不存在此订单信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
var tcOrder = await _tcOrderServices.QueryByClauseAsync(p => p.outOrderId == entity.id);
|
||||
if (tcOrder == null)
|
||||
{
|
||||
jm.msg = "不存在此订单交易组件推送记录";
|
||||
return jm;
|
||||
}
|
||||
|
||||
var weChatUserInfo = await _userWeChatInfoServices.QueryByClauseAsync(p => p.userId == orderModel.userId);
|
||||
if (weChatUserInfo == null)
|
||||
{
|
||||
jm.msg = "用户微信数据拉取失败";
|
||||
return jm;
|
||||
}
|
||||
|
||||
//获取小程序认证
|
||||
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
|
||||
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
|
||||
var request = new ShopOrderGetRequest();
|
||||
request.AccessToken = accessToken;
|
||||
request.OutOrderId = orderModel.orderId;
|
||||
request.OpenId = weChatUserInfo.openid;
|
||||
|
||||
var response = await client.ExecuteShopOrderGetAsync(request);
|
||||
|
||||
var orderStatus = EnumHelper.EnumToList<OrderStatus>();
|
||||
var deliveryTypeEnum = EnumHelper.EnumToList<DeliveryTypeEnum>();
|
||||
|
||||
|
||||
jm.code = response.IsSuccessful() ? 0 : 1;
|
||||
jm.msg = response.IsSuccessful() ? "获取成功" : response.ErrorMessage;
|
||||
jm.data = new
|
||||
{
|
||||
response.Order,
|
||||
orderStatus,
|
||||
deliveryTypeEnum
|
||||
};
|
||||
jm.otherData = accessToken;
|
||||
|
||||
//更新拉取订单
|
||||
if (response.Order is { OrderId: > 0 } && tcOrder.orderId == null)
|
||||
{
|
||||
await _tcOrderServices.UpdateAsync(
|
||||
p => new WeChatTransactionComponentOrder() { orderId = response.Order.OrderId },
|
||||
p => p.id == tcOrder.id && p.outOrderId == tcOrder.outOrderId);
|
||||
}
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user