From 8f37a2de432a8d4d77f94dcf45d0b86ce3006ee2 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 18 八月 2025 14:47:35 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java |  135 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 127 insertions(+), 8 deletions(-)

diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 596e698..96ea547 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -92,11 +92,13 @@
      */
     @RequestMapping("/base/pointMerchars/changeState")
     public void changeState(@RequestBody CoachChangeStateVO dto) {
-
-
         pmdsService.changeState(dto);
     }
-
+    @ResponseBody
+    @PostMapping("/base/pointMerchars/goodsList")
+    public List<PointsMerchandise> goodsList() {
+        return pmdsService.list();
+    }
     /**
      * 根据id查询
      */
@@ -623,6 +625,8 @@
 
     @Autowired
     private UserCouponService userCouponService;
+    @Autowired
+    private VipDetailService vipDetailService;
 
     @PostMapping("/base/pointMerchars/getGoodDetails")
     public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest) {
@@ -1034,11 +1038,33 @@
 
 
                 }
+                detailsResponse.setIsVipCode(0);
                 responses.add(detailsResponse);
             }
             detailsVo.setDetailsResponses(responses);
         }
 
+        // 2.0新增会员权益赠送门票
+        List<VipDetail> list = vipDetailService.lambdaQuery()
+                .eq(VipDetail::getAppUserId, appUserId).eq(VipDetail::getType, 2).list();
+        for (VipDetail vipDetail : list) {
+                ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse();
+                // 添加-用于区分会员权益门票
+                detailsResponse.setDetailsId(Long.valueOf("-"+vipDetail.getId()));
+                detailsResponse.setGoodName(vipDetail.getTicketName());
+                detailsResponse.setStartTime(simpleDateFormat.format(vipDetail.getStartTime()));
+                detailsResponse.setEndTime(simpleDateFormat.format(vipDetail.getEndTime()));
+                detailsResponse.setIsVipCode(1);
+                detailsResponse.setUseStatus(vipDetail.getStatus());
+                detailsResponse.setGoodType(3);
+                // 表明是会员赠送的门票
+                detailsResponse.setExchangeType(3);
+                // 全国通用
+            detailsResponse.setRid(Collections.singletonList(0));
+            detailsResponse.setSid(Collections.singletonList(0));
+
+                responses.add(detailsResponse);
+            }
         if (userCoupons.size() > 0) {
             for (UserCoupon userCoupon : userCoupons) {
 
@@ -1058,13 +1084,15 @@
                     detailsResponse.setIntegral(c.getIntegral().intValue());
                     detailsResponse.setCash(c.getCash());
                 }
+                if (userCoupon.getIsVipGrant()!=null && userCoupon.getIsVipGrant()==1){
+                    detailsResponse.setExchangeType(3);
+                }
                 detailsResponse.setStartTime(simpleDateFormat.format(c.getStartTime()));
                 detailsResponse.setEndTime(simpleDateFormat.format(c.getEndTime()));
                 detailsResponse.setUseStatus(userCoupon.getStatus() == 1 ? 2 : 1);
                 detailsResponse.setGoodType(4);
+                detailsResponse.setIsVipCode(0);
                 responses.add(detailsResponse);
-
-
             }
             Comparator<ExchangeDetailsResponse> comparator = Comparator.comparing(ExchangeDetailsResponse::getStartTime).reversed();
             Collections.sort(responses, comparator);
@@ -1083,9 +1111,95 @@
     public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId) {
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         PointDetailsVo detailsVo = new PointDetailsVo();
+
+        if (speMercharsId.toString().contains("-1")){
+            // 会员门票
+            VipDetail vipDetail = vipDetailService.getById(Math.abs(speMercharsId));
+            if (vipDetail.getType()==1){
+                Coupon coupon = iCouponService.getById(vipDetail.getCouponId());
+                detailsVo.setDetailsId(Long.valueOf(coupon.getId()));
+                List<String> list3 = new ArrayList<>();
+                list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover());
+                if (ToolUtil.isNotEmpty(coupon.getProductImages())) {
+                    list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
+                }
+                detailsVo.setPics(list3);
+                Collections.sort(detailsVo.getPics(), (s1, s2) -> {
+                    if (s1.equals(coupon.getCover())) {
+                        return -1; // s1排在前面
+                    } else if (s2.equals(coupon.getCover())) {
+                        return 1; // s2排在前面
+                    } else {
+                        return 0; // 保持原顺序
+                    }
+                });
+                detailsVo.setGoodName(coupon.getName());
+                detailsVo.setExchangeType(coupon.getRedemptionMethod());
+                if (coupon.getRedemptionMethod() == 1) {
+                    detailsVo.setIntegral(coupon.getIntegral().intValue());
+                } else {
+                    detailsVo.setIntegral(coupon.getIntegral().intValue());
+                    detailsVo.setCash(coupon.getCash());
+                }
+                if (coupon.getUseScope() == 1) {
+                    detailsVo.setExchangeAddrType(1);
+                    detailsVo.setBelongs("全国通用");
+                } else if (coupon.getUseScope() == 2) {
+                    detailsVo.setExchangeAddrType(2);
+                    List<CouponCity> list = ccityService.list(new LambdaQueryWrapper<CouponCity>()
+                            .eq(CouponCity::getCouponId, coupon.getId()));
+                    if (list.size() > 0) {
+                        detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用");
+                    }
+                } else {
+                    detailsVo.setExchangeAddrType(3);
+                    List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>()
+                            .eq("couponId", coupon.getId()));
+                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId());
+                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
+                }
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+                detailsVo.setStartTime(format.format(coupon.getStartTime()));
+                detailsVo.setEndTime(format.format(coupon.getEndTime()));
+
+                detailsVo.setContents(coupon.getIllustrate());
+                detailsVo.setGoodType(4);
+            }else{
+
+                // 门票
+                detailsVo.setDetailsId(Long.valueOf("-"+vipDetail.getId()));
+                detailsVo.setGoodName(vipDetail.getTicketName());
+                switch (vipDetail.getStatus()){
+                    case 1:
+                        detailsVo.setUseType(2);
+                        break;
+                    case 2:
+                        detailsVo.setUseType(1);
+                        break;
+                    case 3:
+                        detailsVo.setUseType(3);
+                        break;
+                }
+                detailsVo.setStartTime(simpleDateFormat.format(vipDetail.getStartTime()));
+                detailsVo.setEndTime(simpleDateFormat.format(vipDetail.getEndTime()));
+                detailsVo.setOrderTime(simpleDateFormat.format(vipDetail.getInsertTime()));
+                if (vipDetail.getUseTime()!=null){
+                    detailsVo.setWriteOffTime(simpleDateFormat.format(vipDetail.getUseTime()));
+                }
+                if (vipDetail.getUseStoreId()!=null){
+                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(vipDetail.getUseStoreId());
+                    detailsVo.setWriteOffName(courseOfStore.getStoreName());
+                }
+
+                detailsVo.setBelongs("全国通用");
+                detailsVo.setGoodType(3);
+                detailsVo.setCardType(1);
+                detailsVo.setExchangeAddrType(1);
+            }
+            detailsVo.setDetailsId(Long.valueOf("-"+vipDetail.getId()));
+            return detailsVo;
+        }
         UserPointsMerchandise byId = upmseService.getById(speMercharsId);
-
-
         if (ToolUtil.isNotEmpty(byId)) {
             List<PointsMerchandiseStore> stores = storeService.list(new QueryWrapper<PointsMerchandiseStore>().eq("pointsMerchandiseId", byId.getPointsMerchandiseId()));
 
@@ -1568,7 +1682,8 @@
         if (ToolUtil.isNotEmpty(pointMercharsPayedVo.getStatus())) {
             userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getStatus, pointMercharsPayedVo.getStatus());
         }
-        List<UserPointsMerchandise> list = upmseService.list(userPointsMerchandiseLambdaQueryWrapper);
+        List<UserPointsMerchandise> list = upmseService.list(userPointsMerchandiseLambdaQueryWrapper.orderByDesc(UserPointsMerchandise::getPaymentTime)
+                .isNotNull(UserPointsMerchandise::getPaymentTime));
         System.out.println(list);
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         if (list.size() > 0) {
@@ -1774,11 +1889,15 @@
     @PostMapping("/base/pointMerchars/updateGoodsDetail")
     public boolean updateGoodsDetail(@RequestBody Map<String, Object> map) {
         try {
+            String name = (String) map.get("name");
             Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
             PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
             if (Integer.valueOf(map.get("type").toString()) != 1) {
                 byId1.setStatus(2);
             }
+            if(StringUtils.hasLength(name)){
+                byId1.setName(name);
+            }
             Integer quantityIssued = (Integer) map.get("quantityIssued");
             Integer pickUpQuantity = (Integer) map.get("pickUpQuantity");
             String redemptionInstructions = (String) map.get("redemptionInstructions");

--
Gitblit v1.7.1