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 @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
logger.error("sending barcode msg to api =========" + barcode.getText()); String text = barcode.getText();
ClientThread.getInstance().checkBarcode(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.setPaying(0);
barcodeOrderTime.setModifiedTime(date); barcodeOrderTime.setModifiedTime(date);
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime); barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime);
if (barcodeOrderTime.getPayMoney() <= 0) { if (barcodeOrderTime.getPayMoney() <= 0) {
continue; continue;
@@ -87,7 +88,7 @@ public class BarcodeTimeOrderTask {
MemberRefund memberRefund = new MemberRefund(); MemberRefund memberRefund = new MemberRefund();
memberRefund.setMemberId(barcodeOrderTime.getMemberId()); memberRefund.setMemberId(barcodeOrderTime.getMemberId());
memberRefund.setLessonId(1); memberRefund.setLessonId(1);
memberRefund.setMoney(new BigDecimal(barcodeOrderTime.getPayMoney())); memberRefund.setMoney(order.getPrice());
memberRefund.setOrderSn(barcodeOrderTime.getOrderSn()); memberRefund.setOrderSn(barcodeOrderTime.getOrderSn());
memberRefund.setTransactionId(order.getTradeSn()); memberRefund.setTransactionId(order.getTradeSn());
memberRefund.setOrderId(order.getId()); memberRefund.setOrderId(order.getId());

View File

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

View File

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

View File

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

View File

@@ -44,7 +44,8 @@ public class MemberMoney {
memberMoneyLog.setLessonId(lessonId); memberMoneyLog.setLessonId(lessonId);
memberMoneyLogService.insert(memberMoneyLog); memberMoneyLogService.insert(memberMoneyLog);
if (type.intValue() != MoneyLogEnum.VIPCARD.value && type.intValue() != MoneyLogEnum.BUY_LESSON.value && 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); memberService.updateMoney(memberId,price);
} }

View File

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