From acad524bfb7f376c09ff8e6600fab207780156e1 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期四, 23 十一月 2023 18:46:05 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 249 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 192 insertions(+), 57 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 f13ab2f..3d82719 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 @@ -9,9 +9,12 @@ import com.dsh.activity.feignclient.course.model.CoursePackage; 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.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; import com.dsh.activity.model.PointMerchandiseVo; @@ -25,6 +28,7 @@ import com.dsh.activity.util.StrUtils; import com.dsh.activity.util.TokenUtil; import com.dsh.activity.util.ToolUtil; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -95,9 +99,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){ @@ -116,6 +128,10 @@ byId.setVerificationUserId(dto.getVerificationUserId()); return userPointsMerchandiseService.updateById(byId); } + @Autowired + private OperatorClient operatorClient; + @Resource + private CouponCityService cityService; @ResponseBody @PostMapping("/base/pointMerchars/ticketList") public List<Map<String,Object>> ticketList(@RequestBody IntegralGoodsOfSearch ofSearch){ @@ -155,6 +171,49 @@ } result.add(map); } + if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 1){ + result.add(map); + } + if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 2){ + // 获取到优惠券id 查询这个优惠券指定了哪些城市 + Integer id1 = Integer.parseInt(String.valueOf(map.get("id"))); + // 获取到运营商管理的省和市 + List<TOperatorCity> cityByOperatorId = operatorClient.getCityByOperatorId(ofSearch.getObjId()); + // 拿到运营商市的code集合 + List<String> collect1 = cityByOperatorId.stream().filter(t -> t.getPid() != 0) + .map(tOperatorCity -> Integer.toString(tOperatorCity.getCode())) + .collect(Collectors.toList()); + List<CouponCity> couponId = cityService.list(new QueryWrapper<CouponCity>().eq("couponId", id1)); + // 先判断优惠券管理的市 运营商是否有 + List<String> collect3 = couponId.stream().map(CouponCity::getCityCode) + .collect(Collectors.toList()); + // 优惠券指定的省 + List<String> collect4 = couponId.stream().map(CouponCity::getCityCode) + .collect(Collectors.toList()); + if (!Collections.disjoint(collect3, collect4)){ + result.add(map); + }else{ + // 如果没有交集 那么还需要判断运营商是否管理了整个省 + + + } + } + if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 3){ + // 获取到优惠券id 查询这个优惠券指定了哪些门店 + Integer id3 = Integer.parseInt(String.valueOf(map.get("id"))); + // 当前运营商管理的门店ids + List<Integer> storeIds = ofSearch.getStoreIds(); + // 优惠券指定的门店 + List<Integer> collect5 = cstoreService.list(new QueryWrapper<CouponStore>().eq("couponId",id3) + .in("storeId", storeIds)).stream().map(CouponStore::getStoreId) + .collect(Collectors.toList()); + // 判断两个集合是否相交 + // 比较两个集合中是否有相同的元素;当两个集合中没有相同元素时返回true, + // 当有相同元素时返回false。 + if (!Collections.disjoint(collect5, storeIds)){ + result.add(map); + } + } } } else { result=result1; @@ -193,10 +252,11 @@ String endTime = (String) stringObjectMap.get("endTime"); stringObjectMap.put("timeValue",startTime + "至"+endTime); int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getPointsMerchandiseId, o)); - int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() .eq(UserPointsMerchandise::getPointsMerchandiseId, o) .eq(UserPointsMerchandise::getStatus,2)); + int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getPointsMerchandiseId, o) + ); stringObjectMap.put("hasExchangeQty",count1); stringObjectMap.put("hasPickQty",count2); @@ -221,23 +281,40 @@ @ResponseBody @PostMapping("/base/pointMerchars/convertGoods") - public List<IntegralCommodity> getConvertibleGoods(){ + public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception { List<IntegralCommodity> commodity = new ArrayList<>(); - List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>() - .eq("state",1) - .eq("shelves",1) - .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); - } + + Map<String, String> geocode = gdMapGeocodingUtil.geocode(location.getLon(), location.getLat()); + String provinceCode = geocode.get("provinceCode"); + 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 (cIds.size()>0) { + + List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>() + .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; } @@ -508,10 +585,13 @@ // detailsVo.setGoodId(coursePackage.getId()); detailsVo.setGoodId(merchandise.getId()); - List<String> list1 = new ArrayList<>(); - list1.add(coursePackage.getCoverDrawing()); - list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); - detailsVo.setPics(list1); +// List<String> list1 = new ArrayList<>(); +// list1.add(coursePackage.getCoverDrawing()); +// list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); + + String productImages = merchandise.getProductImages(); + String[] list1 = productImages.split(","); + detailsVo.setPics(Arrays.asList(list1)); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { return -1; // s1排在前面 @@ -701,12 +781,20 @@ List<ExchangeDetailsResponse> responses = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); List<UserPointsMerchandise> pointsMerchandises = upmseService.list(new QueryWrapper<UserPointsMerchandise>() - .eq("userId",appUserId )); + .eq("userId",appUserId ).eq("payStatus",2)); - List<UserCoupon> userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId)); - - + List<Coupon> list1 = couponService.list(); + List<Integer> ids = new ArrayList<>(); + for (Coupon coupon : list1) { + if (coupon.getDistributionMethod()==1) { + ids.add(coupon.getId()); + } + } + 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()); @@ -794,10 +882,10 @@ // Print the result if (isSameDate) { - } else { System.out.println("The two dates do not have the same date."); detailsResponse.setUseStatus(3); + } @@ -817,7 +905,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()); @@ -860,8 +948,9 @@ if (userCoupons.size()>0){ for (UserCoupon userCoupon : userCoupons) { + Coupon c = couponService.getById(userCoupon.getCouponId()); - if (c==null){ + if (c==null|| c.getRedemptionMethod()==null){ continue; } @@ -893,17 +982,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){ @@ -918,6 +1014,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) -> { @@ -966,6 +1078,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); @@ -982,6 +1097,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); @@ -1069,9 +1187,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: @@ -1081,8 +1203,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; @@ -1127,25 +1250,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); @@ -1169,7 +1293,9 @@ @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase") - public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ + public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ + merchandise.setUserId(null); + merchandise.setPointsMerchandiseId(null); upmseService.updateById(merchandise); } @@ -1372,7 +1498,16 @@ @PostMapping("/base/pointMerchars/queryPointMerchaseById") public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id){ - return pmdsService.getById(id); + PointsMerchandise byId = pmdsService.getById(id); + int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId()) + .eq(UserPointsMerchandise::getStatus,2)); + int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId()) + ); + byId.setPickUpQuantity3(count2); + byId.setPickUpQuantity4(count1); + return byId; } @PostMapping("/base/pointMerchars/getshopName") @@ -1535,7 +1670,7 @@ @PostMapping("/base/pointMerchars/add") public Integer add(@RequestBody PointsMerchandise pointsMerchandise){ Integer storeId = pointsMerchandise.getShelves(); - pointsMerchandise.setShelves(2); + pointsMerchandise.setShelves(1); boolean save = pmdsService.save(pointsMerchandise); if(save && ToolUtil.isNotEmpty(storeId) && pointsMerchandise.getType()==2){ PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore(); -- Gitblit v1.7.1