From 18b58aaf9bd99cadd0e7f80fe5d80586f2f4831a Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期五, 24 十一月 2023 18:32:43 +0800
Subject: [PATCH] 11.24

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java |  178 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 126 insertions(+), 52 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 d1248d5..eb34857 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
@@ -13,6 +13,7 @@
 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.model.CoachChangeStateVO;
 import com.dsh.activity.model.PointMerchandiseIncomeVo;
@@ -23,10 +24,7 @@
 import com.dsh.activity.model.response.GoodsInfoOneVo;
 import com.dsh.activity.model.response.StoreVos;
 import com.dsh.activity.service.*;
-import com.dsh.activity.util.GDMapGeocodingUtil;
-import com.dsh.activity.util.StrUtils;
-import com.dsh.activity.util.TokenUtil;
-import com.dsh.activity.util.ToolUtil;
+import com.dsh.activity.util.*;
 import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -98,9 +96,17 @@
          pmdsService.changeState(dto);
     }
     /**
-     * 门票核销
+     * 根据id查询
      */
 
+    @RequestMapping("/base/pointMerchars/getById")
+    @ResponseBody
+    public PointsMerchandise getById(@RequestBody Integer id){
+        return pmdsService.getById(id);
+    }
+    /**
+     * 门票核销
+     */
     @RequestMapping("/base/course/changeState")
     @ResponseBody
     public Object changeState(@RequestBody CourseChangeStateDTO dto){
@@ -270,6 +276,11 @@
     }
 
 
+    @Resource
+    private StoreClient storeClient;
+
+    @Autowired
+    private PointsMerchandiseStoreService pointsMerchandiseStoreService;
     @ResponseBody
     @PostMapping("/base/pointMerchars/convertGoods")
     public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception {
@@ -280,28 +291,53 @@
         String cityCode = geocode.get("cityCode");
 
 
-        List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode));
-        List<Integer> cIds = new ArrayList<>();
-        for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) {
-            cIds.add(pointsMerchandiseCity.getPointsMerchandiseId());
-        }
+//        if(null != geocode) {
 
-
-        List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>()
-                .eq("state",1)
-                .eq("shelves",1).in("id",cIds)
-                .gt("endTime",new Date()));
-        if (merchandises.size() > 0){
-            for (PointsMerchandise merchandise : merchandises) {
-                IntegralCommodity integralCommodity = new IntegralCommodity();
-                integralCommodity.setCommodityId(merchandise.getId());
-                integralCommodity.setCommodityImg(merchandise.getCover());
-                integralCommodity.setCommodityName(merchandise.getName());
-                integralCommodity.setCommodityPrice(merchandise.getPrice());
-                integralCommodity.setGoodsType(merchandise.getType());
-                commodity.add(integralCommodity);
+            List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode));
+            Store s = null;
+            Double d = 0D;
+            for (Store store : stores) {
+                Map<String, Double> distance = GeodesyUtil.getDistance(location.getLon() + "," + location.getLat(), store.getLon() + "," + store.getLat());
+                Double wgs84 = distance.get("WGS84");
+                if (s == null || d > wgs84) {
+                    s = store;
+                    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());
         }
+
+
+//        if (cIds.size()>0) {
+
+            List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>().in("id",cIds)
+                    .eq("state", 1)
+                    .eq("shelves", 1)
+                    .gt("endTime", new Date()).last("ORDER BY sort desc,insertTime desc"));
+            if (merchandises.size() > 0){
+                for (PointsMerchandise merchandise : merchandises) {
+                    IntegralCommodity integralCommodity = new IntegralCommodity();
+                    integralCommodity.setCommodityId(merchandise.getId());
+                    integralCommodity.setCommodityImg(merchandise.getCover());
+                    integralCommodity.setCommodityName(merchandise.getName());
+                    integralCommodity.setCommodityPrice(merchandise.getPrice());
+                    integralCommodity.setGoodsType(merchandise.getType());
+                    integralCommodity.setSort(merchandise.getSort());
+                    commodity.add(integralCommodity);
+                }
+//            }
+        }
+
         System.out.println(commodity);
         return commodity;
     }
@@ -778,7 +814,10 @@
                 ids.add(coupon.getId());
             }
         }
-        List<UserCoupon> userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId).in("couponId",ids));
+        List<UserCoupon> userCoupons = new ArrayList<>();
+        if (ids.size()>0) {
+           userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId).in("couponId", ids));
+        }
         if (pointsMerchandises.size() > 0 ){
             for (UserPointsMerchandise pointsMerchandise : pointsMerchandises) {
                 PointsMerchandise merchandise = pmdsService.getById(pointsMerchandise.getPointsMerchandiseId());
@@ -866,10 +905,10 @@
 
                         // Print the result
                         if (isSameDate) {
-
                         } else {
                             System.out.println("The two dates do not have the same date.");
                             detailsResponse.setUseStatus(3);
+
                         }
 
 
@@ -889,7 +928,7 @@
                             detailsResponse.setUseStatus(3);
                         }
 
-                    } else if (merchandise.getCardType()==3) {
+                    } else if (merchandise.getCardType()==3){
                         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                         Calendar calendar = Calendar.getInstance();
                         calendar.setTime(pointsMerchandise.getInsertTime());
@@ -966,17 +1005,24 @@
     }
 
 
+@Autowired
+private PointsMerchandiseStoreService storeService;
+
     @ResponseBody
     @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
     public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId){
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         PointDetailsVo detailsVo = new PointDetailsVo();
         UserPointsMerchandise byId = upmseService.getById(speMercharsId);
 
+
         if (ToolUtil.isNotEmpty(byId)){
+            List<PointsMerchandiseStore> stores = storeService.list(new QueryWrapper<PointsMerchandiseStore>().eq("pointsMerchandiseId", byId.getPointsMerchandiseId()));
+
             PointsMerchandise pmdsServiceById = pmdsService.getById(byId.getPointsMerchandiseId());
             // 2.0
             detailsVo.setCardType(pmdsServiceById.getCardType());
+            detailsVo.setExchangeAddrType(pmdsServiceById.getUseScope());
             detailsVo.setExchangeType(pmdsServiceById.getRedemptionMethod());
             detailsVo.setGoodType(pmdsServiceById.getType());
             if (pmdsServiceById.getRedemptionMethod() == 1){
@@ -991,6 +1037,22 @@
                 case 3:
                     List<String> list10 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ","));
                     ArrayList<String> list2 = new ArrayList<>(list10);
+
+
+                    SimpleDateFormat dateFormat5 = new SimpleDateFormat("yyyy-MM-dd");
+
+
+                    for (PointsMerchandiseStore store : stores) {
+                        StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(store.getStoreId());
+                    detailsVo.setBelongs(courseOfStore.getStoreName());
+                    }
+
+                    String format = dateFormat5.format(byId.getInsertTime());
+                    detailsVo.setOrderTime(format);
+
+
+
+
                     list2.add(pmdsServiceById.getCover());
                     detailsVo.setPics(list2);
                     Collections.sort(detailsVo.getPics(), (s1, s2) -> {
@@ -1039,6 +1101,9 @@
 
                     } else if (pmdsServiceById.getCardType()==2) {
                         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+
+
+
                         Calendar calendar = Calendar.getInstance();
                         calendar.setTime(byId.getInsertTime());
                         calendar.add(Calendar.DAY_OF_MONTH, 31);
@@ -1055,6 +1120,9 @@
 
                     } else if (pmdsServiceById.getCardType()==3) {
                         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+
+
+
                         Calendar calendar = Calendar.getInstance();
                         calendar.setTime(byId.getInsertTime());
                         calendar.add(Calendar.DAY_OF_MONTH, 93);
@@ -1142,9 +1210,13 @@
                 detailsVo.setUseType(2);
             }else {
                 detailsVo.setUseType(1);
-                detailsVo.setWriteOffTime(simpleDateFormat.format(byId.getVerificationTime()));
-                StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getVerifiStoreId());
-                detailsVo.setWriteOffName(courseOfStore.getStoreName());
+                if (pmdsServiceById.getType()!=2) {
+                    detailsVo.setWriteOffTime(simpleDateFormat.format(byId.getVerificationTime()));
+                }
+                if (byId.getStoreId()!=null) {
+                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId());
+                    detailsVo.setWriteOffName(courseOfStore.getStoreName());
+                }
             }
             switch (pmdsServiceById.getUseScope()){
                 case 1:
@@ -1154,8 +1226,9 @@
                     detailsVo.setBelongs(pmdsServiceById.getProvince()+pmdsServiceById.getCity());
                     break;
                 case 3:
-                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId());
-                    detailsVo.setBelongs(courseOfStore.getStoreName()+" "+courseOfStore.getStoreAddr());
+//                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId());
+//                    detailsVo.setBelongs(courseOfStore.getStoreName()+" "+courseOfStore.getStoreAddr());
+//                    detailsVo.setBelongs("---------------");
                     break;
                 default:
                     break;
@@ -1200,25 +1273,26 @@
                 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()+"可用");
-//            }
-//            detailsVo.setStartTime(format.format(coupon.getStartTime()));
-//            detailsVo.setEndTime(format.format(coupon.getEndTime()));
+            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);

--
Gitblit v1.7.1