From b27efc697f2f81e0d0f247a2708e58af52a5df9b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 23 十月 2025 15:14:33 +0800
Subject: [PATCH] bug修改,后台新增修改用户积分

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminController.java |  148 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 126 insertions(+), 22 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 75b3aa0..22829e9 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
@@ -28,6 +28,7 @@
 import com.dsh.activity.model.response.*;
 import com.dsh.activity.service.*;
 import com.dsh.activity.util.*;
+import com.dsh.activity.util.wx.WxV3PayConfig;
 import com.google.gson.Gson;
 import io.swagger.annotations.*;
 import io.swagger.models.auth.In;
@@ -84,6 +85,7 @@
     @Autowired
     private TokenUtil tokenUtil;
     private String smid = "2088330203191220";//平台支付宝商户号
+
 
 
     /**
@@ -157,10 +159,20 @@
             System.err.println("支付数据" + tPayHuimin);
             payHuiminService.save(tPayHuimin);
             BigDecimal bigDecimal = new BigDecimal(studentIds.split(",").length);
+            if (tPayHuimin.getSalesMoney().compareTo(BigDecimal.ZERO)==0){
+                // 零元购
+                tPayHuimin.setStatus(2);
+                tPayHuimin.setPaymentTime(new Date());
+                payHuiminService.updateById(tPayHuimin);
+                return ResultUtil.success();
+            }
             switch (payType) {
                 case 1:
-                    return payMoneyUtil.weixinpay("购买玩湃惠民卡" + "-" + 0, "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(),
+                    // todo 惠民卡收入属于平台商户 定死
+                    return payMoneyUtil.weixinpay("购买玩湃惠民卡", "", tPayHuimin.getCode(), tPayHuimin.getSalesMoney().toString(),
                             "/base/huimin/callBack/weixinPayHuiminCallback", "APP", "");
+//                return payMoneyUtil.weixinpayV3("1720719391","购买玩湃惠民卡",tPayHuimin.getCode(),
+//                        "/base/huimin/callBack/weixinPayHuiminCallback1",tPayHuimin.getSalesMoney().toString());
                 case 2:
                     String string = tPayHuimin.getSalesMoney().toString();
                     return payMoneyUtil.alipay(smid, "购买玩湃惠民卡", "购买玩湃惠民卡", "", tPayHuimin.getCode(), string,
@@ -269,6 +281,7 @@
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             HuiminAgreementVO huiminAgreementVO = new HuiminAgreementVO();
             List<THuiminCard> cardList = huiminCardService.getHuiminAgreementAndList(pageNo, pageSize, storeId);
             List<THuiminCard> list = huiminCardService.list();
@@ -376,27 +389,52 @@
                                 Date start = DateUtil.parse(s1, "yyyy-MM-dd HH:mm:ss");
                                 Date end = DateUtil.parse(e1, "yyyy-MM-dd HH:mm:ss");
                                 if (new Date().after(start) && new Date().before(end)) {
-//                                    jsonObject2.put("start_time", start.getTime() / 1000);
+//                                    
                                     Date date1 = new Date();
-                                    jsonObject2.put("start_time", date1.getTime() / 1000);
+                                    jsonObject2.put("start_time", simpleDateFormat1.format( date1));
                                     date1.setTime(date1.getTime() + 30 * 1000);
                                     if (start.before(end)) {
-                                        jsonObject2.put("end_time", date1.getTime() / 1000);
+                                        jsonObject2.put("end_time", simpleDateFormat1.format( date1));
                                         jsonArray.add(jsonObject2);
                                     }
                                 }
+                            }else{
+                                // 返回过期的二维码 保证开门失败即可
+                                JSONObject jsonObject3 = new JSONObject();
+                                Date date1 = new Date();
+                                date1.setTime(date1.getTime() - 300 * 1000);
+                                jsonObject3.put("end_time", simpleDateFormat1.format( date1));
+                                jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+
+                                jsonArray.add(jsonObject3);
                             }
                         }
                     }
+                }
+                else{
+                    // 返回过期的二维码 保证开门失败即可
+                    JSONObject jsonObject3 = new JSONObject();
+                    Date date1 = new Date();
+                    date1.setTime(date1.getTime() - 300 * 1000);
+                    jsonObject3.put("end_time", simpleDateFormat1.format( date1));
+                    jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+
+                    jsonArray.add(jsonObject3);
                 }
                 if (!jsonArray.isEmpty()) {
                     huiminCardVO1.setEndTime(simpleDateFormat.format(payHuimin.getEndTime()));
                     TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(Integer.valueOf(payHuimin.getStudentId().split(",")[0]))).findFirst().orElse(null);
                     if (tStudent!=null){
                         huiminCardVO1.setStudentName(tStudent.getName());
+                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+                        huiminCardVO1.setQrCode(temp);
+
+                    }else{
+                        huiminCardVO1.setStudentName("");
+
+                        String temp = "{\"id\":"+payHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+                        huiminCardVO1.setQrCode(temp);
                     }
-                    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());
 
@@ -465,6 +503,7 @@
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
                     .eq(TPayHuimin::getAppUserId, uid)
                     .eq(TPayHuimin::getCardId, id)
@@ -520,18 +559,36 @@
                                     Date start = DateUtil.parse(s1, "yyyy-MM-dd HH:mm:ss");
                                     Date end = DateUtil.parse(e1, "yyyy-MM-dd HH:mm:ss");
                                     if (new Date().after(start) && new Date().before(end)) {
-//                                    jsonObject2.put("start_time", start.getTime() / 1000);
+//                                    
                                         Date date1 = new Date();
-                                        jsonObject2.put("start_time", date1.getTime() / 1000);
+                                        jsonObject2.put("start_time", simpleDateFormat1.format( date1));
                                         date1.setTime(date1.getTime() + 30 * 1000);
                                         if (start.before(end)) {
-                                            jsonObject2.put("end_time", date1.getTime() / 1000);
+                                            jsonObject2.put("end_time", simpleDateFormat1.format( date1));
                                             jsonArray.add(jsonObject2);
                                         }
                                     }
+                                }else{
+                                    // 返回过期的二维码 保证开门失败即可
+                                    JSONObject jsonObject3 = new JSONObject();
+                                    Date date1 = new Date();
+                                    date1.setTime(date1.getTime() - 300 * 1000);
+                                    jsonObject3.put("end_time", simpleDateFormat1.format( date1));
+                                    jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+
+                                    jsonArray.add(jsonObject3);
                                 }
                             }
                         }
+                    }else{
+                        // 返回过期的二维码 保证开门失败即可
+                        JSONObject jsonObject = new JSONObject();
+                        Date date1 = new Date();
+                        date1.setTime(date1.getTime() - 300 * 1000);
+                        jsonObject.put("end_time", simpleDateFormat1.format( date1));
+                        jsonObject.put("start_time", simpleDateFormat1.format( date1));
+
+                        jsonArray.add(jsonObject);
                     }
                     if (!jsonArray.isEmpty()) {
                         // 将学员加入
@@ -567,6 +624,7 @@
             if (null == uid) {
                 return ResultUtil.tokenErr();
             }
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             List<TStudent> tStudents = studentClient.queryStudentList(uid);
 
             List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
@@ -628,29 +686,51 @@
                                 // 转化为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("start_time", start.getTime() / 1000);
+                                
                                 start.setTime(start.getTime() + 30 * 1000);
                                 if (new Date().after(start) && new Date().before(end)) {
-//                                    jsonObject2.put("start_time", start.getTime() / 1000);
+//                                    
                                     Date date1 = new Date();
-                                    jsonObject2.put("start_time", date1.getTime() / 1000);
+                                    jsonObject2.put("start_time", simpleDateFormat1.format( date1));
                                     date1.setTime(date1.getTime() + 30 * 1000);
                                     if (start.before(end)) {
-                                        jsonObject2.put("end_time", date1.getTime() / 1000);
+                                        jsonObject2.put("end_time", simpleDateFormat1.format( date1));
                                         jsonArray.add(jsonObject2);
                                     }
                                 }
+                            }else{
+                                // 返回过期的二维码 保证开门失败即可
+                                JSONObject jsonObject3 = new JSONObject();
+                                Date date1 = new Date();
+                                date1.setTime(date1.getTime() - 300 * 1000);
+                                jsonObject3.put("end_time", simpleDateFormat1.format( date1));
+                                jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+
+                                jsonArray.add(jsonObject3);
                             }
                         }
                     }
-                }
+                }else{
+                    // 返回过期的二维码 保证开门失败即可
+                    JSONObject jsonObject = new JSONObject();
+                    Date date1 = new Date();
+                    date1.setTime(date1.getTime() - 300 * 1000);
+                    jsonObject.put("end_time", simpleDateFormat1.format( date1));
+                    jsonObject.put("start_time", simpleDateFormat1.format( date1));
 
-                String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tPayHuimin.getStudentId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
-                huiminCardStudentVO.setQrCode(temp);
+                    jsonArray.add(jsonObject);
+                }
                 TStudent tStudent = tStudents.stream().filter(e -> e.getId().equals(studentId)).findFirst().orElse(null);
                 if (tStudent!=null){
                     huiminCardStudentVO.setStudentName(tStudent.getName());
+                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + tStudent.getId() + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+                    huiminCardStudentVO.setQrCode(temp);
+                }else{
+                    huiminCardStudentVO.setStudentName("");
+                    String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"sid\":" + sid.toJSONString() + "," + "\"rid\":" + rid + "," + "\"uid\":\"" + 0 + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
+                    huiminCardStudentVO.setQrCode(temp);
                 }
+
             }
 
 
@@ -741,6 +821,12 @@
                 return ResultUtil.tokenErr();
             }
             TPayHuimin tPayHuimin = payHuiminService.getById(id);
+            if (tPayHuimin.getPaymentType()==3){
+                // 后台录入直接退款
+                tPayHuimin.setStatus(3);
+                payHuiminService.updateById(tPayHuimin);
+                return ResultUtil.success();
+            }
             if (tPayHuimin == null) {
                 return ResultUtil.error("订单不存在");
             }
@@ -752,7 +838,6 @@
                 // 已过期
                 return ResultUtil.error("玩湃惠民卡已过期,不可退款");
             }
-            tPayHuimin.setStatus(4);
             payHuiminService.updateById(tPayHuimin);
             int count = huiminRecordService.list(new LambdaQueryWrapper<THuiminRecord>()
                     .eq(THuiminRecord::getPayId, tPayHuimin.getId())).size();
@@ -815,6 +900,7 @@
             if (tPayHuimin == null) {
                 return ResultUtil.error("玩湃惠民卡不存在");
             }
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             THuiminCard byId = huiminCardService.getById(tPayHuimin.getCardId());
             MyHuiminCardDetailVO myHuiminCardDetailVO = new MyHuiminCardDetailVO();
             List<TStudent> studentByIds1 = studentClient.getStudentByIds(tPayHuimin.getStudentId());
@@ -865,24 +951,42 @@
                             // 转化为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("start_time", start.getTime() / 1000);
+                            
                             start.setTime(start.getTime() + 30 * 1000);
                             if (new Date().after(start) && new Date().before(end)) {
-//                                    jsonObject2.put("start_time", start.getTime() / 1000);
+//                                    
                                 Date date1 = new Date();
-                                jsonObject2.put("start_time", date1.getTime() / 1000);
+                                jsonObject2.put("start_time", simpleDateFormat1.format( date1));
                                 date1.setTime(date1.getTime() + 30 * 1000);
                                 if (start.before(end)) {
-                                    jsonObject2.put("end_time", date1.getTime() / 1000);
+                                    jsonObject2.put("end_time", simpleDateFormat1.format( date1));
                                     jsonArray.add(jsonObject2);
                                 }
                             }
+                        }else{
+                            // 返回过期的二维码 保证开门失败即可
+                            JSONObject jsonObject3 = new JSONObject();
+                            Date date1 = new Date();
+                            date1.setTime(date1.getTime() - 300 * 1000);
+                            jsonObject3.put("end_time", simpleDateFormat1.format( date1));
+                            jsonObject3.put("start_time", simpleDateFormat1.format( date1));
+
+                            jsonArray.add(jsonObject3);
                         }
                     }
                 }
+            }else{
+                // 返回过期的二维码 保证开门失败即可
+                JSONObject jsonObject = new JSONObject();
+                Date date1 = new Date();
+                date1.setTime(date1.getTime() - 300 * 1000);
+                jsonObject.put("end_time", simpleDateFormat1.format( date1));
+                jsonObject.put("start_time", simpleDateFormat1.format( date1));
+
+                jsonArray.add(jsonObject);
             }
 
-            String temp = "{\"id\":"+tPayHuimin.getId()  + ","+"\"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().split(",")[0] + "\"," + "\"time\":" + jsonArray.toJSONString() + ",\"type\":" + 2 + "}";
             myHuiminCardDetailVO.setQrCode(temp);
             myHuiminCardDetailVO.setCardId(tPayHuimin.getCardId());
             myHuiminCardDetailVO.setHuiminCard(byId);

--
Gitblit v1.7.1