fixbug 用户退款没有正常结束订单

This commit is contained in:
2023-12-31 18:40:56 +08:00
parent 4f66a360b6
commit e2ea3af576
7 changed files with 28 additions and 19 deletions

View File

@@ -21,7 +21,9 @@ public class TestCodeClick implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
logger.error("sending barcode msg to api =========" + barcode.getText());
ClientThread.getInstance().checkBarcode(barcode.getText());
String text = barcode.getText();
text = text.substring(1,text.length() -1);
logger.error("sending barcode msg to api =========" + text);
ClientThread.getInstance().checkBarcode(text);
}
}

View File

@@ -76,6 +76,7 @@ public class BarcodeTimeOrderTask {
}
barcodeOrderTime.setPaying(0);
barcodeOrderTime.setModifiedTime(date);
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime);
if (barcodeOrderTime.getPayMoney() <= 0) {
continue;
@@ -87,7 +88,7 @@ public class BarcodeTimeOrderTask {
MemberRefund memberRefund = new MemberRefund();
memberRefund.setMemberId(barcodeOrderTime.getMemberId());
memberRefund.setLessonId(1);
memberRefund.setMoney(new BigDecimal(barcodeOrderTime.getPayMoney()));
memberRefund.setMoney(order.getPrice());
memberRefund.setOrderSn(barcodeOrderTime.getOrderSn());
memberRefund.setTransactionId(order.getTradeSn());
memberRefund.setOrderId(order.getId());

View File

@@ -169,6 +169,9 @@ public class MemberRefundService extends BaseServiceImpl {
// 通过订单号查询‘用户退款记录表’
try {
MemberRefund memberRefund = memberRefundMapper.findByOrderSn(outTradeNo);
if (memberRefund == null) {
return;
}
if (refundStatus.equals(memberRefund.getRefundStatus())){
return;
}

View File

@@ -179,9 +179,9 @@ public class VenueEnterService extends BaseServiceImpl {
*/
private void checkOrderPaying(Integer memberId) {
Order mOrder = orderMapper.findLastOrder(memberId);
// 有未支付的订单,且订单未超过分钟未支付
// 有未支付的订单,且订单未超过分钟未支付
int diffMinute = DateUtilCard.diffMinute(mOrder.getModifiedTime(), new Date());
if (mOrder != null && PayStatusEnum.NOT_PAY.value == mOrder.getPayStatus() && diffMinute < 5) {
if (mOrder != null && PayStatusEnum.NOT_PAY.value == mOrder.getPayStatus() && diffMinute < 2) {
throw new ServiceException("您有处理中的订单,或刚刚取消支付,请稍后再试");
}
}
@@ -222,8 +222,8 @@ public class VenueEnterService extends BaseServiceImpl {
private void createBarcodeTimeOrder(Integer memberId, Integer venueId, Integer timePayHour,String orderSn) {
Date startDate = new Date();
Date endDate = DateUtilCard.addHours(startDate, timePayHour);
// 如果是一个小时则默认给15分钟宽限期
if (timePayHour == 1) {
// 如果小于2小时则默认给15分钟宽限期,包时订单
if (timePayHour <= 2) {
endDate = DateUtilCard.addMinute(endDate,15);
}
BarcodeOrderTime barcodeOrderTime = new BarcodeOrderTime();
@@ -232,6 +232,7 @@ public class VenueEnterService extends BaseServiceImpl {
barcodeOrderTime.setOrderStart(startDate);
barcodeOrderTime.setOrderEnd(endDate);
barcodeOrderTime.setStatus(BarCodeStatusEnum.INIT.getValue());
barcodeOrderTime.setPaying(0);
barcodeOrderTime.setOrderSn(orderSn);
barcodeOrderTimeMapper.insert(barcodeOrderTime);
}

View File

@@ -263,6 +263,7 @@ public class WechatPayService extends BaseServiceImpl {
/**
* 退款接口
*/
@Transactional
public void refundInputMoney(MemberRefund memberRefund,BigDecimal aMoney){
OrderPaySignResponse.WechatPayParam wechatPayParam;
try {
@@ -288,7 +289,7 @@ public class WechatPayService extends BaseServiceImpl {
String refundId = response.getRefundId();
//更新‘用户退款记录表’中微信退款单号
memberRefund.setRefundId(refundId);
memberRefund.setMoney(new BigDecimal(payMoney));
memberRefund.setMoney(aMoney);
memberRefundService.update(memberRefund);
}else{
logger.error("返回的结果为:"+ToStringBuilder.reflectionToString(response));
@@ -310,7 +311,7 @@ public class WechatPayService extends BaseServiceImpl {
if (params.get("return_code").equals("SUCCESS")) {
String reqInfo = params.get("req_info");//加密信息
PayConfig payConfig = payConfigService.findKey("face"); //得到秘钥
String key = MD5Utils.md5(payConfig.getKey()).toString();
String key = MD5Utils.md5(payConfig.getKey());
key = key.toLowerCase();
String refundInfo = EncryptionUtil.Aes256Decode(reqInfo,key);
Map<String,Object> map = XmlUtils.getResult(refundInfo);

View File

@@ -44,7 +44,8 @@ public class MemberMoney {
memberMoneyLog.setLessonId(lessonId);
memberMoneyLogService.insert(memberMoneyLog);
if (type.intValue() != MoneyLogEnum.VIPCARD.value && type.intValue() != MoneyLogEnum.BUY_LESSON.value &&
type.intValue() != MoneyLogEnum.REFUND.value && type.intValue() != MoneyLogEnum.APPLY_MONEY_SUCCESS.value){
type.intValue() != MoneyLogEnum.REFUND.value && type.intValue() != MoneyLogEnum.APPLY_MONEY_SUCCESS.value
&& type.intValue() != MoneyLogEnum.JOIN.value){
// 修改用户余额
memberService.updateMoney(memberId,price);
}

View File

@@ -307,6 +307,6 @@
FROM
<include refid="tableName"></include>
WHERE
order_sn = #{outTradeNo}
order_sn = #{outTradeNo} and success_time is NULL
</select>
</mapper>