From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 08 五月 2025 09:21:57 +0800
Subject: [PATCH] bug修改

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java |  162 +++++++++++++++++++----------------------------------
 1 files changed, 58 insertions(+), 104 deletions(-)

diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
index 37ce23c..75b3aa0 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java
@@ -52,7 +52,7 @@
  */
 @RestController
 @RequestMapping("/huimin")
-@Api(tags = "惠民卡新增")
+@Api(tags = "玩湃惠民卡新增")
 public class HuiminController {
 
     @Autowired
@@ -87,13 +87,13 @@
 
 
     /**
-     * 查看惠民卡详情
+     * 查看玩湃惠民卡详情
      */
     @ResponseBody
     @PostMapping("/payHuiminCard")
-    @ApiOperation(value = "购买惠民卡")
+    @ApiOperation(value = "购买玩湃惠民卡")
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "惠民卡id", name = "id", dataType = "int", required = true),
+            @ApiImplicitParam(value = "玩湃惠民卡id", name = "id", dataType = "int", required = true),
             @ApiImplicitParam(value = "支付方式1微信2支付宝", name = "payType", dataType = "int", required = true),
             @ApiImplicitParam(value = "绑定学员ids多,个逗号拼接", name = "studentIds", dataType = "String", required = true),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -106,12 +106,12 @@
             }
             THuiminCard huiminCard = huiminCardService.getById(id);
             if (huiminCard.getEndTime() != null && huiminCard.getEndTime().before(new Date())) {
-                return ResultUtil.error("该惠民卡已过期");
+                return ResultUtil.error("该玩湃惠民卡已过期");
             }
             if (huiminCard.getGrantCount() != null) {
                 if (huiminCard.getGrantCount() <= payHuiminService.lambdaQuery().eq(TPayHuimin::getCardId, huiminCard.getId())
                         .eq(TPayHuimin::getStatus, 2).count()) {
-                    return ResultUtil.error("该惠民卡已售完");
+                    return ResultUtil.error("该玩湃惠民卡已售完");
                 }
             }
             if (huiminCard.getLimitCount() != null) {
@@ -119,7 +119,7 @@
                         .eq(TPayHuimin::getStatus, 2)
                         .eq(TPayHuimin::getAppUserId, uid)
                         .count()) {
-                    return ResultUtil.error("该惠民卡购买次数已达上限");
+                    return ResultUtil.error("该玩湃惠民卡购买次数已达上限");
                 }
             }
             TPayHuimin tPayHuimin = new TPayHuimin();
@@ -159,11 +159,11 @@
             BigDecimal bigDecimal = new BigDecimal(studentIds.split(",").length);
             switch (payType) {
                 case 1:
-                    return payMoneyUtil.weixinpay("购买惠民卡" + "-" + 0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(),
+                    return payMoneyUtil.weixinpay("购买玩湃惠民卡" + "-" + 0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(),
                             "/base/huimin/callBack/weixinPayHuiminCallback", "APP", "");
                 case 2:
                     String string = tPayHuimin.getSalesMoney().toString();
-                    return payMoneyUtil.alipay(smid, "购买惠民卡", "购买惠民卡", "", tPayHuimin.getCode(), string,
+                    return payMoneyUtil.alipay(smid, "购买玩湃惠民卡", "购买玩湃惠民卡", "", tPayHuimin.getCode(), string,
                             "/base/huimin/callBack/aliPayHuiminCallback");
             }
 
@@ -176,13 +176,13 @@
 
 
     /**
-     * 查看惠民卡详情
+     * 查看玩湃惠民卡详情
      */
     @ResponseBody
     @PostMapping("/getHuiminCardDetail")
-    @ApiOperation(value = "查看惠民卡详情")
+    @ApiOperation(value = "查看玩湃惠民卡详情")
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "惠民卡id", name = "id", dataType = "int", required = true),
+            @ApiImplicitParam(value = "玩湃惠民卡id", name = "id", dataType = "int", required = true),
             @ApiImplicitParam(value = "门店id", name = "storeId", dataType = "int", required = true),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
@@ -252,11 +252,11 @@
     }
 
     /**
-     * 惠民卡富文本内容-惠民卡列表
+     * 玩湃惠民卡富文本内容-玩湃惠民卡列表
      */
     @ResponseBody
     @PostMapping("/getHuiminAgreementAndList")
-    @ApiOperation(value = "惠民卡富文本内容-惠民卡列表")
+    @ApiOperation(value = "玩湃惠民卡富文本内容-玩湃惠民卡列表")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "页码,首页1", name = "pageSize", dataType = "int", required = true),
             @ApiImplicitParam(value = "页条数", name = "pageNo", dataType = "int", required = true),
@@ -275,7 +275,7 @@
 
             List<THuiminCard> cardListNolimit = huiminCardService.getHuiminAgreementAndListNolimit(storeId);
             if (cardListNolimit.isEmpty()) {
-                // 没有配置惠民卡 展示富文本内容
+                // 没有配置玩湃惠民卡 展示富文本内容
                 huiminAgreementVO.setShowType(1);
             } else {
                 huiminAgreementVO.setShowType(2);
@@ -326,6 +326,13 @@
                 huiminCardVO1.setHuiminName(huiminCard.getHuiMinName());
                 huiminCardVO1.setCover(huiminCard.getBuyCover());
                 huiminCardVO1.setIsBuy(1);
+                int count = huiminRecordService.list(new LambdaQueryWrapper<THuiminRecord>()
+                        .eq(THuiminRecord::getPayId, payHuimin.getId())).size();
+                if (count>0){
+                    huiminCardVOS.add(huiminCardVO1);
+                    integers.add(payHuimin.getCardId());
+                    continue;
+                }
                 String siteIds = "";
                 if (huiminCard.getUseScope() == 2) {
                     siteIds = huiminCard.getUseIds();
@@ -388,7 +395,7 @@
                     if (tStudent!=null){
                         huiminCardVO1.setStudentName(tStudent.getName());
                     }
-                    String temp = "{\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + payHuimin.getStudentId().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+                    String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + payHuimin.getStudentId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
                     huiminCardVO1.setQrCode(temp);
                     huiminCardVOS.add(huiminCardVO1);
                     integers.add(payHuimin.getCardId());
@@ -425,14 +432,14 @@
 
             int startIndex = (pageNo - 1) * pageSize;
             int endIndex = Math.min(startIndex + pageSize, huiminCardVOS.size());
-// 防止 startIndex 超过 huiminCardVOS.size()
+            // 防止 startIndex 超过 huiminCardVOS.size()
             if (startIndex > huiminCardVOS.size()) {
                 startIndex = huiminCardVOS.size();
             }
             List<HuiminCardVO> paginatedHuiminCardVOS = huiminCardVOS.subList(startIndex, endIndex);
-// 将分页后的数据设置到 huiminAgreementVO 中
+            // 将分页后的数据设置到 huiminAgreementVO 中
             huiminAgreementVO.setCardList(paginatedHuiminCardVOS);
-// 将分页后的数据设置到 huiminAgreementVO 中
+            // 将分页后的数据设置到 huiminAgreementVO 中
             huiminAgreementVO.setCardList(paginatedHuiminCardVOS);
 //            huiminAgreementVO.setCardList(huiminCardVOS);
             return ResultUtil.success(huiminAgreementVO);
@@ -443,13 +450,13 @@
     }
 
     /**
-     * 惠民卡列表-根据惠民卡获取已购买绑定惠民卡的学员列表
+     * 玩湃惠民卡列表-根据玩湃惠民卡获取已购买绑定玩湃惠民卡的学员列表
      */
     @ResponseBody
     @PostMapping("/getStudentListByCarId")
-    @ApiOperation(value = "惠民卡列表-根据惠民卡获取已购买绑定惠民卡的学员列表")
+    @ApiOperation(value = "玩湃惠民卡列表-根据玩湃惠民卡获取已购买绑定玩湃惠民卡的学员列表")
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "惠民卡id", name = "id", dataType = "int", required = true),
+            @ApiImplicitParam(value = "玩湃惠民卡id", name = "id", dataType = "int", required = true),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
     public ResultUtil<List<TStudent>> getStudentListByCarId(Integer id) {
@@ -544,13 +551,13 @@
     }
 
     /**
-     * 惠民卡列表-选择学员后返回对应的二维码生成规则和有效期结束时间
+     * 玩湃惠民卡列表-选择学员后返回对应的二维码生成规则和有效期结束时间
      */
     @ResponseBody
     @PostMapping("/getQrCodeByStudentId")
-    @ApiOperation(value = "惠民卡列表-选择学员后返回对应的二维码生成规则和有效期结束时间")
+    @ApiOperation(value = "玩湃惠民卡列表-选择学员后返回对应的二维码生成规则和有效期结束时间")
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "惠民卡id", name = "cardId", dataType = "int", required = true),
+            @ApiImplicitParam(value = "玩湃惠民卡id", name = "cardId", dataType = "int", required = true),
             @ApiImplicitParam(value = "学员id", name = "studentId", dataType = "int", required = true),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
@@ -638,7 +645,7 @@
                     }
                 }
 
-                String temp = "{\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + studentId + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+                String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
                 huiminCardStudentVO.setQrCode(temp);
                 TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(studentId)).findFirst().orElse(null);
                 if (tStudent!=null){
@@ -654,11 +661,11 @@
     }
 
     /**
-     * 惠民卡富文本内容-惠民卡列表
+     * 玩湃惠民卡富文本内容-玩湃惠民卡列表
      */
     @ResponseBody
     @PostMapping("/myHuiminCardList")
-    @ApiOperation(value = "个人中心-我的惠民卡")
+    @ApiOperation(value = "个人中心-我的玩湃惠民卡")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "页码,首页1", name = "pageSize", dataType = "int", required = true),
             @ApiImplicitParam(value = "页条数", name = "pageNo", dataType = "int", required = true),
@@ -678,15 +685,20 @@
                 myHuiminCardVO.setEndTime(byId.getEndTime());
                 myHuiminCardVO.setSalesMoney(byId.getSalesMoney());
                 int count = huiminRecordService.count(new LambdaQueryWrapper<THuiminRecord>()
-                        .eq(THuiminRecord::getHuiminCardId, myHuiminCardVO.getCardId()));
+                        .eq(THuiminRecord::getPayId, byId.getId()));
                 // 购卡7日内没有使用记录可退款。超过7日不管有没有使用记录都不能退款
                 if (new Date().after(DateUtil.addDay(myHuiminCardVO.getPaymentTime(), 7))) {
                     // 超过七天不可退款
                     myHuiminCardVO.setIsRefund(0);
-                } else if (count >= 7) {
+                } else if (count > 0) {
                     myHuiminCardVO.setIsRefund(0);
                 } else {
                     myHuiminCardVO.setIsRefund(1);
+                }
+                if (byId.getStatus()==4){
+                    // 退款中
+                    myHuiminCardVO.setIsRefund(2);
+
                 }
                 THuiminCard huiminCard = list.stream().filter(e -> e.getId().equals(myHuiminCardVO.getCardId())).findFirst().orElse(null);
                 if (null != huiminCard) {
@@ -713,11 +725,11 @@
     }
 
     /**
-     * 个人中心-我的惠民卡-退款
+     * 个人中心-我的玩湃惠民卡-退款
      */
     @ResponseBody
     @PostMapping("/refund")
-    @ApiOperation(value = "个人中心-我的惠民卡-退款")
+    @ApiOperation(value = "个人中心-我的玩湃惠民卡-退款")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "支付记录id", name = "id", dataType = "int", required = true),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -735,19 +747,22 @@
             if (tPayHuimin.getStatus() == 3 && tPayHuimin.getRefundStatus() != 1) {
                 return ResultUtil.error("不可重复退款");
             }
+
             if (tPayHuimin.getEndTime().before(new Date())) {
                 // 已过期
-                return ResultUtil.error("惠民卡已过期,不可退款");
+                return ResultUtil.error("玩湃惠民卡已过期,不可退款");
             }
-            int count = huiminRecordService.count(new LambdaQueryWrapper<THuiminRecord>()
-                    .eq(THuiminRecord::getHuiminCardId, tPayHuimin.getCardId()));
+            tPayHuimin.setStatus(4);
+            payHuiminService.updateById(tPayHuimin);
+            int count = huiminRecordService.list(new LambdaQueryWrapper<THuiminRecord>()
+                    .eq(THuiminRecord::getPayId, tPayHuimin.getId())).size();
+
             // 购卡7日内没有使用记录可退款。超过7日不管有没有使用记录都不能退款
             if (new Date().after(DateUtil.addDay(tPayHuimin.getPaymentTime(), 7))) {
                 // 超过七天不可退款
-                return ResultUtil.error("惠民卡购买超过七天,不可退款");
-            } else if (count >= 7) {
-                // 使用记录大于等于7次不可退款
-                return ResultUtil.error("惠民卡使用记录大于等于7次,不可退款");
+                return ResultUtil.error("玩湃惠民卡购买超过七天,不可退款");
+            } else if (count > 0) {
+                return ResultUtil.error("玩湃惠民卡已使用,不可退款");
             }
             if (tPayHuimin.getPaymentType() == 1) {
                 Map<String, String> map = payMoneyUtil.wxRefund(tPayHuimin.getOrderNumber(), tPayHuimin.getCode(),
@@ -778,75 +793,14 @@
         }
     }
 
-    public static void main(String[] args) {
-//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        LocalDateTime localDateTime = LocalDateTime.now().plusDays(365);
-//        // 将LocalDateTime转换为Date类型
-//        Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
-//        String format = simpleDateFormat.format(date);
-//        System.err.println(format);
 
-//        String storeIds = "1001,1002";
-//        JSONArray jsonArray = JSONArray.parseArray(Arrays.toString(storeIds.split(",")));
-//        System.err.println(jsonArray);
-//
-//        // 获取当前日期
-//        LocalDate today = LocalDate.now();
-//
-//        // 获取当前日期是周几
-//        DayOfWeek dayOfWeek = today.getDayOfWeek();
-//
-//        // 输出当前是周几,使用中文显示
-//        System.out.println("今天是: " + dayOfWeek.getValue());
-        Date start = new Date();
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        System.err.println(simpleDateFormat.format(start));
-        start.setTime(start.getTime() + 30 * 1000);
-        System.err.println(simpleDateFormat.format(start));
-//        String temp = "[{\"days\":[{\"value\":\"1\",\"label\":\"星期一\",\"checked\":true},{\"value\":\"2\",\"label\":\"星期二\",\"checked\":true},{\"value\":\"3\",\"label\":\"星期三\",\"checked\":true},{\"value\":\"4\",\"label\":\"星期四\",\"checked\":true},{\"value\":\"5\",\"label\":\"星期五\",\"checked\":true},{\"value\":\"6\",\"label\":\"星期六\",\"checked\":false},{\"value\":\"7\",\"label\":\"星期日\",\"checked\":false}],\"startTime\":\"00:00\",\"endTime\":\"23:59\"}]";
-//        // 可用时间
-//        LocalDate today = LocalDate.now();
-//
-//        int week = today.getDayOfWeek().getValue();
-//
-//        JSONArray time = JSONArray.parseArray(temp);
-//        int i = 0;
-//        JSONArray jsonArray = new JSONArray();
-//
-//        StringBuilder startTime = new StringBuilder();
-//        StringBuilder endTime = new StringBuilder();
-//
-//        String string = LocalDate.now().toString();
-//
-//        for (Object o : time) {
-//            JSONObject jsonObject = (JSONObject) o;
-//            for (Object days : jsonObject.getJSONArray("days")) {
-//                JSONObject jsonObject1 = (JSONObject) days;
-//                if (jsonObject1.getString("value").equals(String.valueOf(week))&&jsonObject1.getBoolean("checked")){
-//                    JSONObject jsonObject2 = new JSONObject();
-//                    String s1 = string+" "+jsonObject.getString("startTime")+":00";
-//                    String e1 = string+" "+jsonObject.getString("endTime")+":00";
-//                    // 转化为Date类型
-//                    Date start = DateUtil.parse(s1,"yyyy-MM-dd HH:mm:ss");
-//                    Date end = DateUtil.parse(e1,"yyyy-MM-dd HH:mm:ss");
-//                    jsonObject2.put("startTime",start.getTime());
-//                    jsonObject2.put("endTime",end.getTime());
-//                    jsonArray.add(jsonObject2);
-//                }
-//
-//
-//            }
-//            i++;
-//        }
-//        System.err.println(jsonArray);
-    }
 
     /**
-     * 个人中心-我的惠民卡-查看详情
+     * 个人中心-我的玩湃惠民卡-查看详情
      */
     @ResponseBody
     @PostMapping("/myHuiminCardDetail")
-    @ApiOperation(value = "个人中心-我的惠民卡-查看详情")
+    @ApiOperation(value = "个人中心-我的玩湃惠民卡-查看详情")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "支付记录id", name = "id", dataType = "int", required = true),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -859,7 +813,7 @@
             }
             TPayHuimin tPayHuimin = payHuiminService.getById(id);
             if (tPayHuimin == null) {
-                return ResultUtil.error("惠民卡不存在");
+                return ResultUtil.error("玩湃惠民卡不存在");
             }
             THuiminCard byId = huiminCardService.getById(tPayHuimin.getCardId());
             MyHuiminCardDetailVO myHuiminCardDetailVO = new MyHuiminCardDetailVO();
@@ -928,7 +882,7 @@
                 }
             }
 
-            String temp = "{\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+            String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
             myHuiminCardDetailVO.setQrCode(temp);
             myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId());
             myHuiminCardDetailVO.setHuiminCard(byId);

--
Gitblit v1.7.1