fix 支付回调,订单结算逻辑 & 账单查询bug

This commit is contained in:
2023-12-31 15:20:02 +08:00
parent 652988fbc8
commit 4f66a360b6
5 changed files with 18 additions and 7 deletions

View File

@@ -20,7 +20,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -143,7 +142,7 @@ public class VenueEnterService extends BaseServiceImpl {
BarcodeOrderTime lastOrder = barcodeOrderTimeMapper.findLastOrder(memberId, venueId);
String enterTime = DateUtilCard.getTimeFromDate(lastOrder.getOrderStart());
Date dateNow = new Date();
if (dateNow.after(lastOrder.getOrderEnd()) && 2 != lastOrder.getPaying()) {
if (2 != lastOrder.getPaying()) {
// 当前时间已经超过订单结束日期,则该订单需要重新补收费
// 取入场的价格
VenuePrice venuePriceEnter = venuePriceService.findPrice(venueId, enterTime);
@@ -156,6 +155,7 @@ public class VenueEnterService extends BaseServiceImpl {
int hours = (minutes - 1) / 60;
// 需要补收的价格
price = price.multiply(new BigDecimal(hours - 1));
logger.info("用户出场$" + memberId + "$经过时间为" + minutes + "分钟,价格为:"+ price);
if (price.compareTo(BigDecimal.ZERO) > 0 ) {
checkOrderPaying(memberId);
result.setFlg(2);
@@ -163,9 +163,7 @@ public class VenueEnterService extends BaseServiceImpl {
result.setMsg("您此次入场超过2小时需补交" + price + "");
} else {
// 不需要补交钱且需要退钱
lastOrder.setPaying(1);
lastOrder.setPayMoney(price.intValue());
lastOrder.setModifiedTime(new Date());
lastOrder.setPayMoney(price.abs().intValue());
barcodeOrderTimeMapper.updateByPrimaryKey(lastOrder);
result.setFlg(888);
result.setMsg("如要继续订单请在10分钟内进入否则将结束订单");

View File

@@ -222,6 +222,7 @@ public class WechatPayService extends BaseServiceImpl {
/**
* 退款接口
*/
@Transactional
public void refundMoney(MemberRefund memberRefund){
OrderPaySignResponse.WechatPayParam wechatPayParam;
try {
@@ -287,6 +288,7 @@ public class WechatPayService extends BaseServiceImpl {
String refundId = response.getRefundId();
//更新‘用户退款记录表’中微信退款单号
memberRefund.setRefundId(refundId);
memberRefund.setMoney(new BigDecimal(payMoney));
memberRefundService.update(memberRefund);
}else{
logger.error("返回的结果为:"+ToStringBuilder.reflectionToString(response));

View File

@@ -156,7 +156,7 @@
order_end = #{orderEnd,jdbcType=TIMESTAMP},
status = #{status,jdbcType=INTEGER},
paying = #{paying,jdbcType=INTEGER},
pay_money = #{payMoney,jdbcType=INTEGER}
pay_money = #{payMoney,jdbcType=INTEGER},
order_sn = #{orderSn,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>