From a1cadd023734d1e33f6455ec87fb7e2783d808fe Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期一, 11 三月 2024 16:04:14 +0800
Subject: [PATCH] bug修改

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java |  150 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 109 insertions(+), 41 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 e674942..27f65ba 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
@@ -10,11 +10,9 @@
 import com.dsh.activity.feignclient.course.model.CoursePackagePaymentConfig;
 import com.dsh.activity.feignclient.model.*;
 import com.dsh.activity.feignclient.other.OperatorClient;
+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.feignclient.other.model.StoreDetailOfCourse;
-import com.dsh.activity.feignclient.other.model.StoreInfoDto;
-import com.dsh.activity.feignclient.other.model.TOperatorCity;
+import com.dsh.activity.feignclient.other.model.*;
 import com.dsh.activity.model.CoachChangeStateVO;
 import com.dsh.activity.model.PointMerchandiseIncomeVo;
 import com.dsh.activity.model.PointMerchandiseVo;
@@ -27,6 +25,7 @@
 import com.dsh.activity.util.*;
 import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -78,6 +77,8 @@
 
     @Resource
     private CouponCityService ccityService;
+    @Autowired
+    private SiteClient siteClient;
 
 
     @Resource
@@ -297,12 +298,11 @@
         List<IntegralCommodity> commodity = new ArrayList<>();
 
         Map<String, String> geocode = gdMapGeocodingUtil.geocode(location.getLon(), location.getLat());
+        if(null == geocode){
+            return new ArrayList<>();
+        }
         String provinceCode = geocode.get("provinceCode");
         String cityCode = geocode.get("cityCode");
-
-
-//        if(null != geocode) {
-
         List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode));
         Store s = null;
         Double d = 0D;
@@ -314,14 +314,7 @@
                 d = wgs84;
             }
         }
-//        }
-
-//        List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode));
         List<Integer> cIds = new ArrayList<>();
-//        for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) {
-//            cIds.add(pointsMerchandiseCity.getPointsMerchandiseId());
-//        }
-
         List<PointsMerchandiseStore> storesids = pointsMerchandiseStoreService.list(new QueryWrapper<PointsMerchandiseStore>().eq("storeId", s.getId()));
         for (PointsMerchandiseStore storesid : storesids) {
             cIds.add(storesid.getPointsMerchandiseId());
@@ -449,7 +442,7 @@
                 detailsVo.setGoodName(coursePackage.getName());
                 detailsVo.setBelongsScope(merchandise.getUserPopulation());
                 int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
-                        .eq("pointsMerchandiseId", merchandise.getId()));
+                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                 detailsVo.setRedeemedNum(coursePackageNums);
                 detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0));
                 detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -512,7 +505,7 @@
                 detailsVo.setGoodName(merchandise.getName());
                 detailsVo.setBelongsScope(merchandise.getUserPopulation());
                 int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
-                        .eq("pointsMerchandiseId", merchandise.getId()));
+                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                 detailsVo.setRedeemedNum(count);
                 detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0));
                 detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -567,7 +560,7 @@
                 detailsVo.setGoodName(coupon.getName());
                 detailsVo.setBelongsScope(coupon.getUserPopulation());
                 int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
-                        .eq("pointsMerchandiseId", merchandise.getId()));
+                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                 detailsVo.setRedeemedNum(couponNums);
                 detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0));
                 detailsVo.setPerLimit(coupon.getPickUpQuantity());
@@ -647,7 +640,7 @@
                 detailsVo.setGoodName(coursePackage.getName());
                 detailsVo.setBelongsScope(merchandise.getUserPopulation());
                 int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
-                        .eq("pointsMerchandiseId", merchandise.getId()));
+                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                 detailsVo.setRedeemedNum(coursePackageNums);
                 detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0));
                 detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -710,7 +703,7 @@
                 detailsVo.setGoodName(merchandise.getName());
                 detailsVo.setBelongsScope(merchandise.getUserPopulation());
                 int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
-                        .eq("pointsMerchandiseId", merchandise.getId()));
+                        .eq("pointsMerchandiseId", merchandise.getId()).eq("payStatus", 2).eq("state", 1));
                 detailsVo.setRedeemedNum(count);
                 detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0));
                 detailsVo.setPerLimit(merchandise.getPickUpQuantity());
@@ -893,7 +886,7 @@
                         detailsResponse.setSid(collect);
                         if (collect.size() > 0) {
                             // 获取rid
-//                            List<Integer> rid= stoClient.querySiteIdById(collect);
+//                          List<Integer> rid= stoClient.querySiteIdById(collect);
                             //detailsResponse.setRid(rid);
                             // todo 修改区域id 临时
                             // 根据门店id 写死区域id 后续调整为门票指定多个区域
@@ -911,7 +904,7 @@
                                         ArrayList<Integer> list3 = new ArrayList<>();
                                         list3.add(44);
                                         detailsResponse.setRid(list3);
-                                    }else {
+                                    }else if(pointsMerchandise.getPointsMerchandiseId()==197) {
                                         ArrayList<Integer> list4 = new ArrayList<>();
                                         list4.add(43);
                                         detailsResponse.setRid(list4);
@@ -920,6 +913,23 @@
                             }
                             //======================================================
                         }
+                    }else{
+                        // todo 返回门店id 和场地id
+                        // 查询指定场地
+                        List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>()
+                                .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId()));
+                        // 门店
+                        ArrayList<Integer> list3 = new ArrayList<>();
+                        // 场地
+                        ArrayList<Integer> list4 = new ArrayList<>();
+                        for (PointsMerchandiseStore temp : list) {
+                            Integer storeId = temp.getStoreId();
+                            Integer siteId = temp.getSiteId();
+                            list3.add(storeId);
+                            list4.add(siteId);
+                        }
+                        detailsResponse.setRid(list4);
+                        detailsResponse.setSid(list3);
                     }
 
 
@@ -933,14 +943,11 @@
                         String endDate = dateFormat.format(end);
                         detailsResponse.setStartTime(startDate);
                         detailsResponse.setEndTime(startDate);
-
                         Date now = new Date();
                         Calendar cal1 = Calendar.getInstance();
                         cal1.setTime(pointsMerchandise.getInsertTime());
-
                         Calendar cal2 = Calendar.getInstance();
                         cal2.setTime(now);
-
                         // Compare the year, month, and day of the two Calendar instances
                         boolean isSameDate = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
                                 cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
@@ -1391,7 +1398,8 @@
     public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp) {
         int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                 .eq(UserPointsMerchandise::getUserId, goodResp.getAppUserId())
-                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()));
+                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId())
+                .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1));
         System.out.println(count);
         return count;
     }
@@ -1400,7 +1408,8 @@
     @PostMapping("/base/pointMerchars/queryUserHasGoodsNums1")
     public int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp) {
         int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
-                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()));
+                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId())
+                .eq(UserPointsMerchandise::getPayStatus, 2).eq(UserPointsMerchandise::getState, 1));
         System.out.println(count);
         return count;
     }
@@ -1632,6 +1641,9 @@
                 case 3:
                     infoOneVo.setExchangeArea("指定门店");
                     break;
+                case 4:
+                    infoOneVo.setExchangeArea("指定场地");
+                    break;
                 default:
                     break;
             }
@@ -1669,27 +1681,66 @@
         List<StoreVos> storeVos = new ArrayList<>();
         List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                 .eq("pointsMerchandiseId", id));
-        if (list.size() > 0) {
-            List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
-            List<Store> stores = stoClient.queryStoreByIds(collect);
-            if (stores.size() > 0) {
-                for (Store store : stores) {
-                    StoreVos storeVos1 = new StoreVos();
-                    storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
-                    if (store.getOperatorId() == 0) {
-                        storeVos1.setNum2("平台");
-                    } else {
+        PointsMerchandise byId = pmdsService.getById(id);
 
-                        storeVos1.setNum2(store.getOName());
+        if (list.size() > 0) {
+
+            if (byId.getUseScope()==3){
+                // 如果是指定门店
+                List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
+
+                List<Store> stores = stoClient.queryStoreByIds(collect);
+                if (stores.size() > 0) {
+                    int a = 0;
+                    for (Store store : stores) {
+                        StoreVos storeVos1 = new StoreVos();
+                        storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
+                        if (store.getOperatorId()==null){
+                            storeVos1.setNum2("平台");
+                        }else if (store.getOperatorId() == 0) {
+                            storeVos1.setNum2("平台");
+                        } else {
+                            storeVos1.setNum2(store.getOName());
+                        }
+                        storeVos1.setNum3(store.getName());
+                        storeVos1.setNum4(store.getIds());
+                        storeVos.add(storeVos1);
                     }
-                    storeVos1.setNum3(store.getName());
-                    storeVos1.setNum4(store.getIds());
-                    storeVos.add(storeVos1);
                 }
+            }else if (byId.getUseScope()==4){
+                // 如果是指定场地
+                List<Integer> collect1 = list.stream().map(PointsMerchandiseStore::getSiteId).collect(Collectors.toList());
+                int temp =0;
+                List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
+                List<Store> stores = stoClient.queryStoreByIds(collect);
+                while (temp!=collect1.size()){
+                    for (Store store : stores) {
+                        Integer integer = collect1.get(temp);
+                        Site site = siteClient.querySiteById(integer);
+                        StoreVos storeVos1 = new StoreVos();
+                        storeVos1.setNum5(site.getName());
+                        storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
+                        if (store.getOperatorId()==null){
+                            storeVos1.setNum2("平台");
+                        }else if (store.getOperatorId() == 0) {
+                            storeVos1.setNum2("平台");
+                        } else {
+                            storeVos1.setNum2(store.getOName());
+                        }
+                        storeVos1.setNum3(store.getName());
+                        storeVos1.setNum4(store.getIds());
+                        storeVos.add(storeVos1);
+                        temp++;
+                    }
+                }
+
+
             }
+
         }
         return storeVos;
     }
+
 
 
     @ResponseBody
@@ -1752,6 +1803,20 @@
     public Boolean addOther(@RequestBody String pam) {
         Boolean save = false;
         String[] split = pam.split("_");
+        if (split.length > 2) {
+            if (StringUtils.hasLength(split[2])) {
+                for (String s : split[2].split(",")) {
+                    PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
+                    pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
+                    pointsMerchandiseStore.setSiteId(Integer.valueOf(s));
+                    Site site = siteClient.querySiteById(Integer.valueOf(s));
+                    pointsMerchandiseStore.setStoreId(site.getStoreId());
+                    save = pmdstoService.save(pointsMerchandiseStore);
+                }
+                // 这个门票是选择的场地
+                return save;
+            }
+        }
         for (String s : split[1].split(",")) {
             PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
             pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
@@ -1760,6 +1825,7 @@
         }
         return save;
     }
+
 
     @PostMapping("/base/pointMerchars/addCitys")
     public Boolean addCitys(@RequestBody ArrayList<Map<String, String>> objects) {
@@ -1853,6 +1919,8 @@
         List<Integer> ids = queryDataFee.getIds();
         if (ids.size() == 0) {
             ids.add(-1);
+        }else{
+
         }
         List<PointsMerchandise> list1 = pmdsService.list(new LambdaQueryWrapper<PointsMerchandise>().eq(PointsMerchandise::getRedemptionMethod, 3));
         LambdaQueryWrapper<UserPointsMerchandise> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();

--
Gitblit v1.7.1