From 71656127d2d3fa023eb767343a9ac01172f2802d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 27 八月 2025 21:31:40 +0800
Subject: [PATCH] bug修改

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java                 |    9 ++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java |    6 +++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponInfo.html                  |    1 
 cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java                  |    3 +
 cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java           |    9 ++++
 cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/UserCoupon.java           |   11 +++++
 cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java             |   31 +++++++++++++--
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java            |    6 +-
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java   |    8 ++++
 cloud-server-account/src/main/java/com/dsh/account/model/dto/VipRefundDto.java                        |    2 +
 cloud-server-management/src/main/webapp/static/modular/system/vipPayment/vipPayment.js                |    6 ++-
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipRefundDto.java         |    2 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponRecord.html                |    2 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java          |    4 ++
 14 files changed, 87 insertions(+), 13 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
index f105e65..3577d45 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
@@ -105,8 +105,9 @@
         if (parse.before(new Date())){
             appUser.setIsVip(0);
         }
+        vipPayment.setRemark(vipRefundDto.getRemark());
         appUserService.updateById(appUser);
-        vipPayment.setState(3);
+        vipPayment.setPayStatus(3);
         vipPaymentService.updateById(vipPayment);
         return "200";
     }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/dto/VipRefundDto.java b/cloud-server-account/src/main/java/com/dsh/account/model/dto/VipRefundDto.java
index 30ade03..9899550 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/dto/VipRefundDto.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/dto/VipRefundDto.java
@@ -12,5 +12,7 @@
     String id;
     // 会员到期时间
     String endTime;
+    // 退款备注
+    String remark;
 
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index 6734e97..73654b5 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -250,16 +250,16 @@
         switch (vip.getTimeType()) {
             case 1:
                 // 天
-                localDateTime.plusDays(time);
+                localDateTime = localDateTime.plusDays(time);
                 break;
             case 2:
                 // 月
-                localDateTime.plusMonths(time);
+                localDateTime =  localDateTime.plusMonths(time);
 
                 break;
             case 3:
                 // 年
-                localDateTime.plusYears(time);
+                localDateTime =  localDateTime.plusYears(time);
                 break;
         }
         appUser.setIsVip(1);
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index e894f41..e5baec9 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -130,7 +130,7 @@
         // 使用 Stream + 手动拷贝提升性能和可读性(或使用 MapStruct)
         vipDetailVOS = list.stream().map(vipDetail -> {
             VipDetailVO vo = new VipDetailVO();
-            BeanUtils.copyProperties(vo, vipDetail); // 注意参数顺序是否正确
+            BeanUtils.copyProperties(vipDetail, vo); // 注意参数顺序是否正确
             return vo;
         }).collect(Collectors.toList());
         List<Coupon> coupons = couponService.list();
@@ -947,5 +947,12 @@
     @PostMapping("/base/coupon/updateType")
     public void updateType(@RequestBody Long id) {
         couponService.updateType(id);
+        UserCoupon userCoupon = userCouponService.getById(id);
+        if (userCoupon.getIsVipGrant()!=null&& userCoupon.getIsVipGrant()==1){
+            VipDetail vipDetailServiceById = vipDetailService.getById(userCoupon.getVipDetailId());
+            vipDetailServiceById.setUseTime(new Date());
+            vipDetailServiceById.setStatus(2);
+        }
+
     }
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
index 3963a6a..bbfc1cb 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -11,6 +11,9 @@
 import com.dsh.activity.feignclient.account.model.AppUser;
 import com.dsh.activity.feignclient.model.CouponStuAvailableVo;
 import com.dsh.activity.feignclient.model.QueryUserCouponByIdAndUserId;
+import com.dsh.activity.feignclient.other.SiteClient;
+import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.Store;
 import com.dsh.activity.model.CouponListVo;
 import com.dsh.activity.model.GrantCoupon;
 import com.dsh.activity.model.SendCouponReq;
@@ -31,10 +34,7 @@
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Api
@@ -62,6 +62,10 @@
     private StudentClient studentClient;
     @Autowired
     private VipDetailService vipDetailService;
+    @Autowired
+    private StoreClient storeClient;
+    @Autowired
+    private SiteClient siteClient;
 
 
 
@@ -204,6 +208,25 @@
         }
     }
 
+    @ResponseBody
+    @PostMapping("/userCoupon/updateUserCouponStatus/{id}/{storeId}/{siteId}")
+    public void updateUserCouponStatus(@PathVariable("id") Long id,@PathVariable("storeId") Integer storeId,@PathVariable("siteId") Integer siteId) {
+
+            UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getId, id));
+        userCoupon.setStatus(2);
+        if (userCoupon.getIsVipGrant()!=null && userCoupon.getIsVipGrant()==1){
+            VipDetail vipDetailServiceById = vipDetailService.getById(userCoupon.getVipDetailId());
+            vipDetailServiceById.setStatus(2);
+            List<Store> stores = storeClient.queryStoreByIds(Collections.singletonList(vipDetailServiceById.getUseStoreId()));
+            Store store = stores.get(0);
+            vipDetailServiceById.setUseSiteId(siteId);
+            vipDetailServiceById.setUseStoreId(storeId);
+            vipDetailServiceById.setOperatorId(store.getOperatorId());
+            vipDetailServiceById.setUseTime(new Date());
+            vipDetailService.updateById(vipDetailServiceById);
+        }
+    }
+
     @Autowired
     private ICouponService couponService;
 
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java
index 9d7b306..eb9dbef 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java
@@ -3,6 +3,7 @@
 import com.dsh.course.feignclient.activity.model.SendCouponReq;
 import com.dsh.course.feignclient.activity.model.UserCoupon;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -22,6 +23,14 @@
      */
     @PostMapping("/userCoupon/queryUserCouponById1")
     UserCoupon queryUserCouponById(Long id);
+    /**
+     * 根据id获取用户优惠券数据
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/userCoupon/updateUserCouponStatus/{id}/{storeId}/{siteId}")
+    void updateUserCouponStatus(@PathVariable("id") Long id,@PathVariable("storeId") Integer storeId,@PathVariable("siteId") Integer siteId);
 
     /**
      * 送优惠券
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/UserCoupon.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/UserCoupon.java
index 9a82e0b..9a88dc4 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/UserCoupon.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/UserCoupon.java
@@ -1,5 +1,6 @@
 package com.dsh.course.feignclient.activity.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
@@ -38,4 +39,14 @@
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
+    /**
+     * 是否为会员赠送 0否1是
+     */
+    @TableField("isVipGrant")
+    private Integer isVipGrant;
+    /**
+     * vipDetailId 会员权益赠送记录id
+     */
+    @TableField("vipDetailId")
+    private Integer vipDetailId;
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index b6210d4..4c5e1c5 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -24,8 +24,10 @@
 import com.dsh.course.feignclient.account.model.*;
 import com.dsh.course.feignclient.activity.BenefitVideoClient;
 import com.dsh.course.feignclient.activity.CouponClient;
+import com.dsh.course.feignclient.activity.UserCouponClient;
 import com.dsh.course.feignclient.activity.model.BenefitsVideos;
 import com.dsh.course.feignclient.activity.model.Coupon;
+import com.dsh.course.feignclient.activity.model.UserCoupon;
 import com.dsh.course.feignclient.model.RecordAppoint;
 import com.dsh.course.feignclient.other.StoreClient;
 import com.dsh.course.feignclient.other.model.Store;
@@ -108,6 +110,8 @@
 
     @Resource
     private CouponClient client;
+    @Resource
+    private UserCouponClient userCouponClient;
 
     @Resource
     private PayMoneyUtil payMoneyUtil;
@@ -1265,7 +1269,11 @@
         coursePackageOrder1.setOrderNumber(orderNumber);
         coursePackageOrder1.setAppUserId(null);
         coursePackageOrderService.updateById(coursePackageOrder1);
+        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrder1.getCoursePackageId());
+        // 将用户优惠券修改为已使用
+        Long userCouponId = coursePackageOrder1.getUserCouponId();
 
+        userCouponClient.updateUserCouponStatus(userCouponId,coursePackage.getStoreId(),coursePackage.getSiteId());
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
                 .eq("coursePackageId", coursePackageOrder1.getCoursePackageId())
                 .eq("classHours", coursePackageOrder1.getClassHours())
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index 9df4c59..0dd44be 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1280,7 +1280,11 @@
         coursePackageOrder1.setOrderNumber(trade_no);
         coursePackageOrder1.setAppUserId(null);
         coursePackageOrderService.updateById(coursePackageOrder1);
+        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrder1.getCoursePackageId());
+        // 将用户优惠券修改为已使用
+        Long userCouponId = coursePackageOrder1.getUserCouponId();
 
+        userCouponClient.updateUserCouponStatus(userCouponId,coursePackage.getStoreId(),coursePackage.getSiteId());
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(attach);
         addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
         TCoursePackage byId = coursePackageService.getById(coursePackageOrder1.getCoursePackageId());
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
index 716e013..2d5658f 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
@@ -107,6 +107,9 @@
                         case 3:
                             coupon.setTypeValue("体验券");
                             break;
+                            case 4:
+                            coupon.setTypeValue("抵扣券");
+                            break;
                     }
                     switch (coupon.getUserPopulation()){
                         case 1:
@@ -204,6 +207,9 @@
                         case 3:
                             coupon.setTypeValue("体验券");
                             break;
+                        case 4:
+                            coupon.setTypeValue("抵扣券");
+                            break;
                     }
                     switch (coupon.getUserPopulation()){
                         case 1:
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipRefundDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipRefundDto.java
index 18d6273..87a4a8e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipRefundDto.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/VipRefundDto.java
@@ -14,5 +14,7 @@
     String id;
     // 会员到期时间
     String endTime;
+    // 会员到期时间
+    String remark;
 
 }
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponInfo.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponInfo.html
index e407d7c..c3503ce 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponInfo.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponInfo.html
@@ -99,7 +99,6 @@
                         <label class="col-sm-1 control-label" style="margin-left: -1%;width: 14%;margin-top: -5px">抵扣券: </label>
                         <div class="col-sm-9">
                             <select style="width: 300px" class="form-control" id="goods" name="pCode" >
-                                <option value="">请选择商品</option>
                                 @for(obj in goods){
                                 <option style="width: 35%" value="${obj.id}">${obj.name}</option>
                                 @}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponRecord.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponRecord.html
index 36db409..1e2f5c5 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponRecord.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponRecord.html
@@ -29,7 +29,7 @@
                       </div>
                         </div>
                     <div class="hidden-xs" id="TCouponTableToolbar" role="group">
-                        @if(type==3){
+                        @if(type==3 || type==4){
                         <#button name="核销" icon="fa-plus" clickFun="TCoupon.updateType()"/>
                         @}
                     </div>
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/vipPayment/vipPayment.js b/cloud-server-management/src/main/webapp/static/modular/system/vipPayment/vipPayment.js
index 9288238..5481cab 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/vipPayment/vipPayment.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/vipPayment/vipPayment.js
@@ -70,7 +70,8 @@
     console.log( e)
     const data1 = {
         id:null,
-        vipEndTime:""
+        endTime:"",
+        remark:""
 
     };
         var index = layer.load(1,{
@@ -107,7 +108,8 @@
                     return;
                 }
                 data1.id = e;
-                data1.vipEndTime = $("#vipEndTime").val();
+                data1.endTime = $("#vipEndTime").val();
+                data1.remark = $("#refusal").val();
                 $.ajax({
                     url: Feng.ctxPath + "/vipDetail/refund",
                     type: "POST",

--
Gitblit v1.7.1