hanfucheng 4 месяцев назад
Родитель
Сommit
3fdabf03b9

+ 26 - 10
qmjszx-admin/src/main/java/beilv/web/controller/carinformation/cardAppController.java

@@ -45,15 +45,6 @@ public class cardAppController extends BaseController {
     }
 
     /**
-     * 购卡生成订单
-     */
-    @PostMapping("/addCard")
-    @ResponseBody
-    public AjaxResult addCard(@RequestBody CardPurchaseRecord cardPurchaseRecord) {
-        return AjaxResult.success(cardPurchaseRecordService.insertCardPurchaseRecord(cardPurchaseRecord));
-    }
-
-    /**
      * 查询购卡记录列表
      */
     @PostMapping("/getRecordlist")
@@ -64,7 +55,16 @@ public class cardAppController extends BaseController {
     }
 
     /**
-     * 购卡回调
+     * 购卡生成订单
+     */
+    @PostMapping("/addCard")
+    @ResponseBody
+    public AjaxResult addCard(@RequestBody CardPurchaseRecord cardPurchaseRecord) {
+        return AjaxResult.success(cardPurchaseRecordService.insertCardPurchaseRecord(cardPurchaseRecord));
+    }
+
+    /**
+     * 购卡回调(购卡、取消订单)
      */
     @PostMapping("/addCardCallback")
     @ResponseBody
@@ -80,4 +80,20 @@ public class cardAppController extends BaseController {
     public AjaxResult getUserCardList(@RequestBody UserMembershipCard userMembershipCard) {
         return AjaxResult.success(userMembershipCardService.selectUserMembershipCardList(userMembershipCard));
     }
+
+    /*
+     * 退卡
+     *
+     * @author 韩福成
+     * @date 2025/1/7 上午10:46
+     */
+    @PostMapping("/refundCard")
+    @ResponseBody
+    public AjaxResult refundCard(@RequestBody UserMembershipCard userMembershipCard) {
+        int inserted = userMembershipCardService.refundCard(userMembershipCard);
+        if (inserted == -1){
+            return AjaxResult.error("退款金额小于0,不支持退款!");
+        }
+        return toAjax(inserted);
+    }
 }

+ 15 - 6
qmjszx-business/src/main/java/beilv/cardpurchaserecord/service/impl/CardPurchaseRecordServiceImpl.java

@@ -69,8 +69,10 @@ public class CardPurchaseRecordServiceImpl implements ICardPurchaseRecordService
     @Override
     public String insertCardPurchaseRecord(CardPurchaseRecord cardPurchaseRecord) {
         //新增购卡记录
-        if (StringUtils.isEmpty(cardPurchaseRecord.getCreateBy())) {
+        if (StringUtils.isEmpty(cardPurchaseRecord.getUserId())) {
             cardPurchaseRecord.setCreateBy(ShiroUtils.getUserId().toString());
+        }else {
+            cardPurchaseRecord.setCreateBy(cardPurchaseRecord.getUserId());
         }
         cardPurchaseRecord.setCreateTime(DateUtils.getNowDate());
         cardPurchaseRecord.setType("payment_status_to_be_paid");
@@ -90,14 +92,19 @@ public class CardPurchaseRecordServiceImpl implements ICardPurchaseRecordService
     @Override
     @Transactional
     public int addCardCallback(CardPurchaseRecord cardPurchaseRecord) {
+        CardPurchaseRecord record = new CardPurchaseRecord();
+        record.setOrderId(cardPurchaseRecord.getOrderId());
+        CardPurchaseRecord cardPurchaseRecords = cardPurchaseRecordMapper.selectCardPurchaseRecordList(record).get(0);
         //已支付状态新增会员管理
         if (cardPurchaseRecord.getType().equals("payment_status_have_paid")){
             UserMembershipCard userMembershipCard = new UserMembershipCard();
-            userMembershipCard.setUserId(cardPurchaseRecord.getUserId());
-            userMembershipCard.setRecordId(cardPurchaseRecord.getId().toString());
-            userMembershipCard.setRemainingNumber(cardPurchaseRecord.getTotalNumber());
-            if (StringUtils.isEmpty(cardPurchaseRecord.getCreateBy())) {
+            userMembershipCard.setUserId(cardPurchaseRecords.getUserId());
+            userMembershipCard.setRecordId(cardPurchaseRecords.getId().toString());
+            userMembershipCard.setRemainingNumber(cardPurchaseRecords.getTotalNumber());
+            if (StringUtils.isEmpty(cardPurchaseRecord.getUserId())) {
                 userMembershipCard.setCreateBy(ShiroUtils.getUserId().toString());
+            }else {
+                userMembershipCard.setCreateBy(cardPurchaseRecords.getCreateBy());
             }
             userMembershipCard.setCreateTime(DateUtils.getNowDate());
             userMembershipCard.setState("3");
@@ -105,8 +112,10 @@ public class CardPurchaseRecordServiceImpl implements ICardPurchaseRecordService
             userMembershipCardMapper.insertUserMembershipCard(userMembershipCard);
         }
         //修改购卡记录状态
-        if (StringUtils.isEmpty(cardPurchaseRecord.getUpdateBy())) {
+        if (StringUtils.isEmpty(cardPurchaseRecord.getUserId())) {
             cardPurchaseRecord.setUpdateBy(ShiroUtils.getUserId().toString());
+        }else {
+            cardPurchaseRecord.setUpdateBy(cardPurchaseRecord.getUserId());
         }
         cardPurchaseRecord.setTime(DateUtils.getNowDate());
         cardPurchaseRecord.setUpdateTime(DateUtils.getNowDate());

+ 8 - 4
qmjszx-business/src/main/java/beilv/usermembershipcard/service/impl/UserMembershipCardServiceImpl.java

@@ -5,6 +5,7 @@ import beilv.cardpurchaserecord.mapper.CardPurchaseRecordMapper;
 import beilv.common.core.text.Convert;
 import beilv.common.utils.DateUtils;
 import beilv.common.utils.ShiroUtils;
+import beilv.common.utils.StringUtils;
 import beilv.system.service.ISysDictDataService;
 import beilv.usermembershipcard.domain.MemberStream;
 import beilv.usermembershipcard.domain.UserMembershipCard;
@@ -148,9 +149,8 @@ public class UserMembershipCardServiceImpl implements IUserMembershipCardService
      */
     @Override
     @Transactional
-    public int refundCard(UserMembershipCard userMembershipCard) {
+    public int  refundCard(UserMembershipCard userMembershipCard) {
         CardPurchaseRecord cardPurchaseRecord = cardPurchaseRecordMapper.selectCardPurchaseRecordById(Long.parseLong(userMembershipCard.getRecordId()));
-        /*退款*/
         //使用次数
         int useCount = cardPurchaseRecord.getTotalNumber() - userMembershipCard.getRemainingNumber();
         //原单价
@@ -171,9 +171,13 @@ public class UserMembershipCardServiceImpl implements IUserMembershipCardService
         CardPurchaseRecord record = new CardPurchaseRecord();
         BeanUtils.copyProperties(cardPurchaseRecord,record);
         record.setId(null);
-        record.setCreateBy(ShiroUtils.getUserId().toString());
+        if(StringUtils.isEmpty(userMembershipCard.getUserId())){
+            record.setCreateBy(ShiroUtils.getUserId().toString());
+        }else {
+            record.setCreateBy(userMembershipCard.getUserId());
+        }
         record.setCreateTime(DateUtils.getNowDate());
-        record.setType("2");
+        record.setType("payment_status_refunded");
         record.setTime(DateUtils.getNowDate());
         record.setVersion("0");
         cardPurchaseRecordMapper.insertCardPurchaseRecord(record);

+ 1 - 0
qmjszx-business/src/main/resources/mapper/card/CardPurchaseRecordMapper.xml

@@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="notes != null  and notes != ''"> and notes = #{notes}</if>
             <if test="version != null  and version != ''"> and version = #{version}</if>
             <if test="mobile != null  and mobile != ''"> and b.mobile like concat('%', #{mobile}, '%')</if>
+            <if test="orderId != null  and orderId != ''"> and a.order_id = #{orderId}</if>
         </where>
         order by a.create_time desc
     </select>