From e8f01399a49bb718f184e31d0f6de27c3dc64cef Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 19 八月 2025 08:58:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java |  221 ++++++++++++------------------------------------------
 1 files changed, 51 insertions(+), 170 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java
index f6db7eb..aa90268 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipDetailController.java
@@ -3,19 +3,24 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.feignClient.account.AppUserClient;
 import com.dsh.course.feignClient.account.model.QueryByNamePhone;
+import com.dsh.course.feignClient.account.model.TAppUser;
 import com.dsh.course.feignClient.activity.CouponClient;
 import com.dsh.course.feignClient.activity.model.Coupon;
 import com.dsh.course.feignClient.activity.model.CouponCity;
 import com.dsh.course.feignClient.activity.model.TicketDetailVO;
+import com.dsh.guns.config.UserExt;
 import com.dsh.guns.core.base.controller.BaseController;
 import com.dsh.guns.core.common.constant.factory.PageFactory;
 import com.dsh.guns.modular.system.model.*;
-import com.dsh.guns.modular.system.service.IProtocolService;
-import com.dsh.guns.modular.system.service.IStoreService;
-import com.dsh.guns.modular.system.service.IVipService;
+import com.dsh.guns.modular.system.model.dto.VipDetailDto;
+import com.dsh.guns.modular.system.model.dto.VipPaymentDto;
+import com.dsh.guns.modular.system.model.vo.VipDetailVO;
+import com.dsh.guns.modular.system.model.vo.VipPaymentVO;
+import com.dsh.guns.modular.system.service.*;
 import com.dsh.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -44,7 +49,11 @@
     private IStoreService storeService;
     @Autowired
     private AppUserClient appUserClient;
-    private String PREFIX = "/system/vip/";
+    @Autowired
+    private ITSiteService siteService;
+    @Autowired
+    private TOperatorService operatorService;
+    private String PREFIX = "/system/vipPayment/";
 
 
     /**
@@ -52,8 +61,7 @@
      */
     @RequestMapping("")
     public String index(Model model) {
-
-        return PREFIX + "vipDetail.html";
+        return PREFIX + "vip_payment.html";
     }
 
     /**
@@ -61,176 +69,49 @@
      */
     @RequestMapping(value = "/list")
     @ResponseBody
-    public List<Map<String, Object>> list(String vipName, Integer type
-            , Integer phone, String storeName
-            , Integer operatorId, Integer status
-            , String startTime, String endTime
-            , Integer useStartTime, Integer useEndTim) {
-        // 根据会员名查询会员ids
+    public List<VipPaymentVO> list(String appUserName
+            , String phone, String vipName
+            , Integer isRefund
+            , String time
+            ) {
+        VipPaymentDto vipPaymentDto = new VipPaymentDto();
         if (StringUtils.hasLength(vipName)){
             List<Integer> vipIds = vipService.lambdaQuery().like(Vip::getVipName, vipName)
                     .list().stream().map(Vip::getId).collect(Collectors.toList());
+            if (vipIds.isEmpty()){
+                vipIds.add(-1);
+            }
+            vipPaymentDto.setVipIds(vipIds);
         }
-//        QueryByNamePhone
-//        appUserClient.listAll()
-//        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-//        List<Map<String, Object>> maps = vipService.listOfPage(vipName, status, page);
-//        for (Map<String, Object> map : maps) {
-//            Object timeType = map.get("timeType");
-//            Object time = map.get("time");
-//            Integer timeTypeValue = Integer.valueOf(timeType.toString());
-//            Integer timeValue = Integer.valueOf(time.toString());
-//            switch (timeTypeValue) {
-//                case 1:
-//                    map.put("time",timeValue+"天");
-//                    break;
-//                case 2:
-//                    map.put("time",timeValue+"月");
-//                    break;
-//                case 3:
-//                    map.put("time",timeValue+"年");
-//                    break;
-//            }
-//        }
+        if (StringUtils.hasLength(phone)){
+            QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
+            queryByNamePhone.setPhone( phone);
+            List<Integer> userIds = appUserClient.queryByNamePhone(queryByNamePhone).stream().map(TAppUser::getId)
+                    .collect(Collectors.toList());
+
+            vipPaymentDto.setUserIds(userIds);
+        }
+        if (StringUtils.hasLength(appUserName)){
+            QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
+            queryByNamePhone.setName( appUserName);
+            List<Integer> userIds = appUserClient.queryByNamePhone(queryByNamePhone).stream().map(TAppUser::getId)
+                    .collect(Collectors.toList());
+            if (vipPaymentDto.getUserIds()!=null){
+                // 取交集
+                vipPaymentDto.setUserIds(vipPaymentDto.getUserIds().stream().filter(userIds::contains).collect(Collectors.toList()));
+            }else{
+                vipPaymentDto.setUserIds(userIds);
+            }
+        }
+        if (StringUtils.hasLength(appUserName)|| StringUtils.hasLength(phone)){
+            if (vipPaymentDto.getUserIds().isEmpty()){
+                List<Integer> userIds = vipPaymentDto.getUserIds();
+                userIds.add(-1);
+                vipPaymentDto.setUserIds(userIds);
+            }
+        }
         return null;
     }
 
-    // APP查询所有上架的会员卡
-    @ResponseBody
-    @PostMapping("/listAll")
-    public List<Vip> listAll() {
-        List<Vip> list = vipService.lambdaQuery().eq(Vip::getStatus, 1).list();
-        List<Coupon> coupons = couponClient.queryCouponAll();
-        List<CouponCity> couponCityList = couponClient.queryAllCity();
-        List<CouponStore> storeList = couponClient.queryAllStore();
-        List<TStore> shopList = storeService.list();
-        // 封装会员权益
-        for (Vip vip : list) {
-            List<CouponVipResp> couponVipRespList = new ArrayList<>();
-            List<TicketVipResp> ticketVipRespList = new ArrayList<>();
-            String couponJson = vip.getCouponJson();
-            JSONArray couponJsonArray = JSONArray.parseArray(couponJson);
-            for (Object o : couponJsonArray) {
-                JSONObject couponJsonObject = (JSONObject) o;
-                // 优惠券id
-                Integer id = Integer.valueOf(couponJsonObject.getString("id"));
-                // 优惠券数量
-                Integer value = Integer.valueOf(couponJsonObject.getString("value"));
-                Coupon coupon = coupons.stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Coupon());
-                CouponVipResp couponVipResp = new CouponVipResp();
-                couponVipResp.setId(coupon.getId());
-                couponVipResp.setName(coupon.getName());
-                couponVipResp.setType(coupon.getType());
-                couponVipResp.setUseCondition(coupon.getUseScope());
-                couponVipResp.setCount(value);
-                switch (coupon.getUseScope()) {
-                    case 1:
-                        couponVipResp.setAvailable("全国通用");
-                        break;
-                    case 2:
-                        couponVipResp.setAvailable("指定城市可用");
-                        List<CouponCity> couponId = couponCityList.stream().filter(e -> e.getCouponId().equals(id))
-                                .collect(Collectors.toList());
-                        StringBuilder stringBuilder = new StringBuilder();
-                        for (CouponCity couponCity : couponId) {
-                            stringBuilder.append(couponCity.getCity());
-                        }
-                        couponVipResp.setCityOrStore(String.valueOf(stringBuilder));
-                        break;
-                    case 3:
-                        couponVipResp.setAvailable("指定门店可用");
-                        // 门店ids
-                        List<Integer> storeIds = storeList.stream().filter(e -> e.getCouponId().equals(id))
-                                .map(CouponStore::getStoreId).collect(Collectors.toList());
-                        StringBuilder storeNames = new StringBuilder("");
 
-                        if (!storeIds.isEmpty()) {
-                            List<TStore> stores = shopList.stream().filter(e -> storeIds.contains(e.getId())).collect(Collectors.toList());
-                            for (TStore store : stores) {
-                                storeNames.append(store.getName()).append(",");
-                            }
-                            // 去除最后一位
-                            StringBuilder res = storeNames.deleteCharAt(storeNames.length() - 1);
-                            couponVipResp.setCityOrStore(res.toString());
-                        } else {
-                            couponVipResp.setCityOrStore("无可用门店");
-                        }
-                        break;
-                    default:
-                        break;
-                }
-                couponVipResp.setInstructionsForUse(coupon.getIllustrate());
-                ConponJsonRuleModel ruleModel = new ConponJsonRuleModel();
-                JSONObject jsonObject = JSON.parseObject(coupon.getContent());
-                switch (coupon.getType()) {
-                    case 1:
-//                            满减券
-                        Double num1 = jsonObject.getDouble("conditionalAmount");
-                        Double num2 = jsonObject.getDouble("deductionAmount");
-                        ruleModel.setConditionalAmount("满" + num1 + "可用");
-                        ruleModel.setDeductionAmount("¥ " + num2);
-                        ruleModel.setExperienceName("");
-                        break;
-                    case 2:
-//                            代金券
-                        Double jsonObjectDouble = jsonObject.getDouble("conditionalAmount");
-                        ruleModel.setConditionalAmount("");
-                        ruleModel.setDeductionAmount("¥ " + jsonObjectDouble);
-                        ruleModel.setExperienceName("");
-                        break;
-                    case 3:
-//                            体验券
-                        ruleModel.setConditionalAmount("");
-                        ruleModel.setDeductionAmount("");
-                        ruleModel.setExperienceName(jsonObject.getString("experienceName"));
-                        break;
-                    default:
-                        break;
-                }
-                couponVipResp.setRuleModel(ruleModel);
-
-                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-                couponVipResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
-                couponVipRespList.add(couponVipResp);
-            }
-            vip.setCouponList(couponVipRespList);
-            String ticketJson = vip.getTicketJson();
-            JSONArray ticketJsonArray = JSONArray.parseArray(ticketJson);
-            for (Object o : ticketJsonArray) {
-                JSONObject ticketJsonObject = (JSONObject) o;
-                TicketVipResp ticketVipResp = new TicketVipResp();
-                ticketVipResp.setName(ticketJsonObject.getString("name"));
-                ticketVipResp.setTime(ticketJsonObject.getInteger("time"));
-                ticketVipResp.setCount(ticketJsonObject.getInteger("count"));
-                ticketVipRespList.add(ticketVipResp);
-            }
-            vip.setTicketList(ticketVipRespList);
-        }
-        return list;
-    }
-    @Autowired
-    private IProtocolService protocolService;
-    @ResponseBody
-    @PostMapping("/getAgreement")
-    public String getAgreement() {
-        Protocol one = protocolService.lambdaQuery().eq(Protocol::getType, 6).one();
-        if (one==null){
-            Protocol protocol = new Protocol();
-            protocol.setType(6);
-            protocol.setContent("");
-            protocol.setInsertTime(new Date());
-            protocolService.save( protocol);
-            return  "";
-        }else{
-            return one.getContent();
-
-        }
-    }
-
-    @ResponseBody
-    @PostMapping("/getVipByIds")
-    public List<Vip> getVipByIds(@RequestBody String ids) {
-        List<Vip> list = vipService.lambdaQuery().in(Vip::getId, Arrays.asList(ids.split(","))).list();
-        return list;
-    }
 }

--
Gitblit v1.7.1