mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-02-05 17:59:50 +08:00
### 0.3.3 专业版:
【新增】后台新增支付单查询功能,实现支付单微信反馈支付数据,防止出现极端情况下,导致的支付数据回调失败而影响订单业务。#I4ZRMR 【新增】后台新增发票上传功能,前端小程序新增发票下载功能。#I4ZYT3 【新增】商家中心订单查询,增加发票下载查看功能。 【新增】代码生成器Controller模板的导出excel请求增加decimal类型的处理。 【优化】调整前端帮助文档默认传值问题,未指定具体分类情况下,默认取第一个栏目数据。 【修复】修复页面设计上传图片后不进行预览的问题。
This commit is contained in:
@@ -24,9 +24,13 @@ using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Essensoft.Paylink.WeChatPay;
|
||||
using Essensoft.Paylink.WeChatPay.V2;
|
||||
using Essensoft.Paylink.WeChatPay.V2.Request;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Options;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using SqlSugar;
|
||||
|
||||
@@ -44,17 +48,24 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
private readonly ICoreCmsBillPaymentsServices _coreCmsBillPaymentsServices;
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
private readonly IWeChatPayClient _client;
|
||||
private readonly IOptions<WeChatPayOptions> _optionsAccessor;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
/// <param name="webHostEnvironment"></param>
|
||||
/// <param name="coreCmsBillPaymentsServices"></param>
|
||||
/// <param name="client"></param>
|
||||
/// <param name="optionsAccessor"></param>
|
||||
public CoreCmsBillPaymentsController(IWebHostEnvironment webHostEnvironment
|
||||
, ICoreCmsBillPaymentsServices coreCmsBillPaymentsServices)
|
||||
, ICoreCmsBillPaymentsServices coreCmsBillPaymentsServices, IWeChatPayClient client, IOptions<WeChatPayOptions> optionsAccessor)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_coreCmsBillPaymentsServices = coreCmsBillPaymentsServices;
|
||||
_client = client;
|
||||
_optionsAccessor = optionsAccessor;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
@@ -475,5 +486,71 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 更新微信支付数据
|
||||
|
||||
// POST: Api/CoreCmsBillPayments/DoRefresh/10
|
||||
/// <summary>
|
||||
/// 更新微信支付数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("更新微信支付数据")]
|
||||
public async Task<AdminUiCallBack> DoRefresh([FromBody] FMStringId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _coreCmsBillPaymentsServices.QueryByClauseAsync(p => p.paymentId == entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
if (model.paymentCode != GlobalEnumVars.PaymentsTypes.wechatpay.ToString())
|
||||
{
|
||||
jm.msg = "此更新暂时仅支持微信支付查询";
|
||||
return jm;
|
||||
}
|
||||
|
||||
if (model.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed)
|
||||
{
|
||||
jm.msg = "订单已经支付成功,无需更新";
|
||||
return jm;
|
||||
}
|
||||
|
||||
|
||||
var request = new WeChatPayOrderQueryRequest
|
||||
{
|
||||
//微信订单号
|
||||
//TransactionId = model.TransactionId,
|
||||
//商户订单号
|
||||
OutTradeNo = model.paymentId
|
||||
};
|
||||
var response = await _client.ExecuteAsync(request, _optionsAccessor.Value);
|
||||
|
||||
if (response is { ReturnCode: WeChatPayCode.Success, ResultCode: WeChatPayCode.Success, TradeState: WeChatPayCode.Success })
|
||||
{
|
||||
var money = Math.Round((decimal)response.TotalFee / 100, 2);
|
||||
await _coreCmsBillPaymentsServices.ToUpdate(response.OutTradeNo,
|
||||
(int)GlobalEnumVars.BillPaymentsStatus.Payed,
|
||||
GlobalEnumVars.PaymentsTypes.wechatpay.ToString(), money, response.ResultCode,
|
||||
response.TransactionId);
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = "刷新成功";
|
||||
jm.data = response;
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.code = 1;
|
||||
jm.msg = response.TradeStateDesc;
|
||||
}
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -75,49 +75,22 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
var where = PredicateBuilder.True<CoreCmsInvoice>();
|
||||
//获取排序字段
|
||||
var orderField = Request.Form["orderField"].FirstOrDefault();
|
||||
Expression<Func<CoreCmsInvoice, object>> orderEx;
|
||||
switch (orderField)
|
||||
Expression<Func<CoreCmsInvoice, object>> orderEx = orderField switch
|
||||
{
|
||||
case "id":
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
case "category":
|
||||
orderEx = p => p.category;
|
||||
break;
|
||||
case "sourceId":
|
||||
orderEx = p => p.sourceId;
|
||||
break;
|
||||
case "userId":
|
||||
orderEx = p => p.userId;
|
||||
break;
|
||||
case "type":
|
||||
orderEx = p => p.type;
|
||||
break;
|
||||
case "title":
|
||||
orderEx = p => p.title;
|
||||
break;
|
||||
case "taxNumber":
|
||||
orderEx = p => p.taxNumber;
|
||||
break;
|
||||
case "amount":
|
||||
orderEx = p => p.amount;
|
||||
break;
|
||||
case "status":
|
||||
orderEx = p => p.status;
|
||||
break;
|
||||
case "remarks":
|
||||
orderEx = p => p.remarks;
|
||||
break;
|
||||
case "createTime":
|
||||
orderEx = p => p.createTime;
|
||||
break;
|
||||
case "updateTime":
|
||||
orderEx = p => p.updateTime;
|
||||
break;
|
||||
default:
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
}
|
||||
"id" => p => p.id,
|
||||
"category" => p => p.category,
|
||||
"sourceId" => p => p.sourceId,
|
||||
"userId" => p => p.userId,
|
||||
"type" => p => p.type,
|
||||
"title" => p => p.title,
|
||||
"taxNumber" => p => p.taxNumber,
|
||||
"amount" => p => p.amount,
|
||||
"status" => p => p.status,
|
||||
"remarks" => p => p.remarks,
|
||||
"createTime" => p => p.createTime,
|
||||
"updateTime" => p => p.updateTime,
|
||||
_ => p => p.id
|
||||
};
|
||||
|
||||
//设置排序方式
|
||||
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
|
||||
@@ -144,6 +117,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
//发票类型 int
|
||||
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
|
||||
if (type > 0) where = where.And(p => p.type == type);
|
||||
//开票状态 int
|
||||
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
|
||||
if (status > 0) where = where.And(p => p.status == status);
|
||||
//发票抬头 nvarchar
|
||||
var title = Request.Form["title"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(title)) where = where.And(p => p.title.Contains(title));
|
||||
@@ -299,6 +275,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
oldModel.status = entity.status;
|
||||
oldModel.remarks = entity.remarks;
|
||||
oldModel.updateTime = DateTime.Now;
|
||||
oldModel.fileUrl = entity.fileUrl;
|
||||
|
||||
//事物处理过程结束
|
||||
var bl = await _coreCmsInvoiceServices.UpdateAsync(oldModel);
|
||||
|
||||
Reference in New Issue
Block a user