feat 添加清空历史记录接口

This commit is contained in:
AERWEN\26795 2023-10-11 16:22:40 +08:00
parent 1040898c3e
commit ee4e6ce009
8 changed files with 163 additions and 39 deletions

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using ARW.Model.Models.Business.Carts;
namespace ARW.Model.Dto.Api.Carts
{
/// <summary>
/// 添加下单订单信息Dto对象Api
///
/// @author lwh
/// @date 2023-09-24
/// </summary>
public class AddPayOrderDtoApi
{
/// <summary>
/// 客户Guid
/// </summary>
public long UserId { get; set; }
/// <summary>
/// 支付类型
/// </summary>
public int PayType { get; set; }
/// <summary>
/// 小程序用户OpenId
/// </summary>
public string OpenId { get; set; }
/// <summary>
/// 核销前价格
/// </summary>
public decimal BeforeMoney { get; set; }
/// <summary>
/// 核销后价格/操作金额
/// </summary>
public decimal Money { get; set; }
/// <summary>
/// 留言
/// </summary>
public string Remark { get; set; }
}
}

View File

@ -15,32 +15,41 @@ namespace ARW.Model.Dto.Api.Carts
public class CommitPayDtoApi
{
/// <summary>
/// 客户guid
/// 客户Guid
/// </summary>
public long CustomerGuid { get; set; }
public long UserId { get; set; }
/// <summary>
/// 支付类型
/// </summary>
public int type { get; set; }
public int PayType { get; set; }
/// <summary>
/// 小程序用户OpenId
/// </summary>
public string openId { get; set; }
public string OpenId { get; set; }
/// <summary>
/// 待结算的商品集合
/// 核销前价格
/// </summary>
public string goodsRequestList { get; set; }
public decimal BeforeMoney { get; set; }
/// <summary>
/// 发票信息
/// 核销后价格/操作金额
/// </summary>
public string invoiceRequest { get; set; }
public decimal Money { get; set; }
/// <summary>
/// 留言
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 优惠券Id
/// </summary>
public int CouponId { get; set;}
}
}

View File

@ -11,6 +11,11 @@ using Senparc.CO2NET.HttpUtility;
using ARW.Service.Api.IBusinessService.PayManage;
using ARW.Repository.Business.Payments;
using ARW.Repository.Business.OrderManage.Orders;
using ARW.Model.Models.Business.OrderManage.Orders;
using ARW.Model.Dto.Api.Carts;
using ARW.Repository.Business.Marketing.CouponManage.Coupons;
using Org.BouncyCastle.Crypto.Prng;
using Aliyun.Acs.Core.Logging;
namespace ARW.Service.Api.BusinessService.PaymentManage
{
@ -28,20 +33,24 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
private readonly CustomerRepository _CustomerRepository;
private readonly OrderRepository _OrderRepository;
private readonly PaymentRepository _PaymentRepository;
private readonly CouponRepository _CouponRepository;
private readonly SenparcHttpClient _httpClient;
public PayServiceApi(ShopRepository ShopRepository, GoodsCategoryRepository goodsCategoryRepository, CustomerRepository customerRepository)
public PayServiceApi(ShopRepository ShopRepository, GoodsCategoryRepository goodsCategoryRepository, CustomerRepository customerRepository, OrderRepository orderRepository, PaymentRepository paymentRepository, CouponRepository couponRepository)
{
this._ShopRepository = ShopRepository;
_GoodsCategoryRepository = goodsCategoryRepository;
_CustomerRepository = customerRepository;
_OrderRepository = orderRepository;
_PaymentRepository = paymentRepository;
_CouponRepository = couponRepository;
}
#region Api接口代码
public async Task<PayParams> HandelPrePay(PayDto parm)
public async Task<PayParams> HandelPrePay(CommitPayDtoApi parm)
{
// 获取金额
var price = 1;//单位:分
@ -61,7 +70,9 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
#region
/* 添加订单流水 */
var paymentGuid = await AddPayment(parm.UserId, orderNo, parm.PayType, parm.BeforeMoney, parm.Money);
var paymentGuid = await AddPayment(parm, orderNo);
/* 添加业务订单 */
var orderGuid = await AddOrder(parm, orderNo, paymentGuid);
@ -83,26 +94,24 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
#region
/// <summary>
/// 添加订单流水
/// </summary>
/// <param name="userId">客户id</param>
/// <param name="parm">下单信息Dto对象</param>
/// <param name="orderNo">订单号</param>
/// <param name="payType">支付类型</param>
/// <param name="beforeMoney">核销前价格</param>
/// <param name="payType">核销后价格/操作金额</param>
/// <returns></returns>
/// <exception cref="CustomException"></exception>
public async Task<long> AddPayment(long userId, string orderNo, int payType, decimal beforeMoney, decimal money)
public async Task<long> AddPayment(CommitPayDtoApi parm, string orderNo)
{
// 添加订单流水
Payment payment = new Payment
Payment payment = new()
{
CustomerGuid = userId,
CustomerGuid = parm.UserId,
PaymentNumber = orderNo,
PaymentBuytype = payType,
PaymentBeforeMoney = beforeMoney,
PaymentMoney = money,
PaymentBuytype = parm.PayType,
PaymentBeforeMoney = parm.BeforeMoney,
PaymentMoney = parm.Money,
PaymentStatus = 1
};
var response = await _PaymentRepository.InsertReturnSnowflakeIdAsync(payment);
@ -113,21 +122,58 @@ namespace ARW.Service.Api.BusinessService.PaymentManage
}
// 添加业务订单
public async Task<long> AddOrder(long userId, string orderNo, int payType, decimal beforeMoney, decimal money)
/// <summary>
/// 添加业务订单
/// </summary>
/// <param name="parm">下单信息Dto对象</param>
/// <param name="orderNo">订单号</param>
/// <param name="paymentGuid">支付订单流水guid</param>
/// <returns></returns>
/// <exception cref="CustomException"></exception>
public async Task<long> AddOrder(CommitPayDtoApi parm, string orderNo, long paymentGuid)
{
Payment payment = new Payment
Order order = new()
{
CustomerGuid = userId,
PaymentNumber = orderNo,
PaymentBuytype = payType,
PaymentBeforeMoney = beforeMoney,
PaymentMoney = money,
PaymentStatus = 1
PaymentGuid = paymentGuid,
CustomerGuid = parm.UserId,
OrderNumber = orderNo,
GoodsTotalAmoun = parm.BeforeMoney,
OrderAmount = parm.Money,
PayPrice = parm.Money,
OrderRemark = parm.Remark,
PayType = parm.PayType,
PayStatus = 1,
};
var response = await _PaymentRepository.InsertReturnSnowflakeIdAsync(payment);
// 优惠券减免价格
if (parm.CouponId != 0)
{
var coupon = await _CouponRepository.GetFirstAsync(s => s.CouponId == parm.CouponId);
if (coupon != null)
{
order.CouponGuid = coupon.CouponGuid;
order.CouponMoney = coupon.CouponDeductionMoney;
order.PayPrice = order.OrderAmount - coupon.CouponDeductionMoney;
}
else
{
throw new CustomException($"优惠券Id为 {parm.CouponId} 找不到");
}
}
// 运费计算
// TODO:余额支付
var response = await _OrderRepository.InsertReturnSnowflakeIdAsync(order);
if (response == 0)
throw new CustomException("订单流水数据加入失败");
throw new CustomException("业务订单数据加入失败");
return response;
}

View File

@ -1,4 +1,5 @@
using System.Threading.Tasks;
using ARW.Model.Dto.Api.Carts;
using ARW.Model.Models.Business.Payments;
using static Infrastructure.WeChat.TenPay.Pay;
@ -17,7 +18,7 @@ namespace ARW.Service.Api.IBusinessService.PayManage
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
Task<PayParams> HandelPrePay(PayDto parm);
Task<PayParams> HandelPrePay(CommitPayDtoApi parm);
}

View File

@ -18,6 +18,7 @@ using Geocoding;
using ARW.Model.Dto.Business.Custom.HistorySearchs;
using ARW.Service.Business.IBusinessService.Custom.HistorySearchs;
using ARW.Admin.WebApi.Framework;
using System.Reflection;
namespace ARW.WebApi.Controllers.Api.Custom.HistorySearchs
{
@ -104,5 +105,18 @@ namespace ARW.WebApi.Controllers.Api.Custom.HistorySearchs
}
/// <summary>
/// 清空历史搜索
/// </summary>
/// <returns></returns>
[HttpDelete("deleteAll")]
[Log(Title = "历史搜索清空", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteAll()
{
var user = JwtUtil.GetLoginUser(App.HttpContext);
var response = _HistorySearchServiceApi.DeleteAsync(s => s.CustomerGuid == user.UserId);
return SUCCESS("清空成功!");
}
}
}

View File

@ -13,6 +13,7 @@ using Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp;
using ARW.Service.Business.IBusinessService.Custom.Customers;
using ARW.Service.Api.IBusinessService.PayManage;
using ARW.Service.Api.BusinessService.PaymentManage;
using ARW.Model.Dto.Api.Carts;
namespace ARW.WebApi.Controllers.Api.Wechat.WxPay
{
@ -44,7 +45,7 @@ namespace ARW.WebApi.Controllers.Api.Wechat.WxPay
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("wxPay")]
public async Task<IActionResult> WxPay([FromBody] PayDto parm)
public async Task<IActionResult> WxPay([FromBody] CommitPayDtoApi parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
@ -67,13 +68,12 @@ namespace ARW.WebApi.Controllers.Api.Wechat.WxPay
{
try
{
logger.Info("进入微信支付回调!", "2134234234");
logger.Info("进入微信支付回调!");
Pay pay = new Pay(_httpClient);
var res = await pay.PayNotifyUrl();
if (res.trade_state == "SUCCESS")
{
logger.Info("微信支付回调之业务:", res.trade_state);
// 业务
var respones = _PayServiceApi.UpdateAsync(f => new Payment
{
@ -86,11 +86,10 @@ namespace ARW.WebApi.Controllers.Api.Wechat.WxPay
}
return SUCCESS("66666");
return SUCCESS("");
}
catch (Exception e)
{
logger.Error("微信支付回调错误信息:", e);
throw;
}
}

View File

@ -9,7 +9,7 @@
"ConnectionStrings": {
"conn_db": "server=47.242.159.172;Database=shop_template;Uid=shop_template;Pwd=tKFJjWwL2kxMYtJK;SslMode=none;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
//"conn_db": "server=127.0.0.1;Database=shop;Uid=root;Pwd=root;SslMode=none;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
"conn_db_type": "0" // MySql = 0, SqlServer = 1
"conn_db_type": "8" // MySql = 0, SqlServer = 1
},
"urls": "http://localhost:8888", //urldevServer
"corsUrls": "http://localhost:8887", //","

View File

@ -401,6 +401,11 @@ namespace Infrastructure.WeChat.TenPay
/// 核销后价格/操作金额
/// </summary>
public decimal Money { get; set; }
/// <summary>
/// 留言
/// </summary>
public string Remark { get; set; }
}
/// <summary>