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

@@ -41,12 +41,12 @@
<result column="modified_time" property="modifiedTime" jdbcType="TIMESTAMP" />
<result column="deleted" property="deleted" jdbcType="TINYINT" />
</resultMap>
<!--表名 -->
<sql id="tableName">
sv_member_refund
</sql>
<!-- 字段 -->
<sql id="Field">
id,
@@ -67,7 +67,7 @@
deleted,
platform_id
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{id, jdbcType=INTEGER},
@@ -98,7 +98,7 @@
WHERE
deleted = 0
</select>
<!-- 新增-->
<insert id="insert" parameterType="com.sv.entity.MemberRefund" useGeneratedKeys="true" keyProperty="id">
INSERT INTO
@@ -210,7 +210,7 @@
</if>
</trim>
</insert>
<!-- 删除-->
<delete id="delete" parameterType="java.lang.Integer">
UPDATE
@@ -233,7 +233,7 @@
#{item}
</foreach>
</delete>
<!-- 更新记录 -->
<update id="update" parameterType="com.sv.entity.MemberRefund">
UPDATE
@@ -290,7 +290,7 @@
</set>
WHERE id = #{id}
</update>
<!-- 通过编号查询 -->
<select id="findById" parameterType="java.lang.Integer" resultMap="MemberRefundMap">
SELECT
@@ -307,6 +307,6 @@
FROM
<include refid="tableName"></include>
WHERE
order_sn = #{outTradeNo}
order_sn = #{outTradeNo} and success_time is NULL
</select>
</mapper>
</mapper>