From ac3e9a7f0b21fb630049f9e191bd760eefd21467 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 16 八月 2025 18:04:38 +0800
Subject: [PATCH] 管理后台会员管理

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 112 insertions(+), 2 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 a6a67dc..82b47e7 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
@@ -623,6 +623,8 @@
 
     @Autowired
     private UserCouponService userCouponService;
+    @Autowired
+    private VipDetailService vipDetailService;
 
     @PostMapping("/base/pointMerchars/getGoodDetails")
     public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest) {
@@ -1039,6 +1041,28 @@
             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.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) {
 
@@ -1083,9 +1107,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()));
 

--
Gitblit v1.7.1