From f6ba3e15355e22767e69f8fc14ae22523f8db8dc Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期三, 22 十一月 2023 19:33:58 +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 | 1270 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 1,098 insertions(+), 172 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 b9699bb..9394121 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,10 +9,17 @@ 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; +import com.dsh.activity.model.WriteOffDTO; +import com.dsh.activity.model.QueryDataFee; import com.dsh.activity.model.request.*; import com.dsh.activity.model.response.GoodsInfoOneVo; import com.dsh.activity.model.response.StoreVos; @@ -21,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.*; @@ -74,37 +82,264 @@ @Resource private CouponCityService ccityService; + @Resource private PointsMerchandiseCityService pmdsCityService; + @Autowired + private UserPointsMerchandiseService userPointsMerchandiseService; + /** + * 门票上下架 state=1 上架 state=2 下架 + */ + @RequestMapping("/base/pointMerchars/changeState") + public void changeState(@RequestBody CoachChangeStateVO dto){ + + + pmdsService.changeState(dto); + } + /** + * 根据id查询 + */ + + @RequestMapping("/base/pointMerchars/getById") @ResponseBody - @PostMapping("/base/pointMerchars/convertGoods") - public List<IntegralCommodity> getConvertibleGoods(){ - 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.getProductImages()); - integralCommodity.setCommodityName(merchandise.getName()); - integralCommodity.setCommodityPrice(merchandise.getPrice()); - integralCommodity.setGoodsType(merchandise.getType()); - commodity.add(integralCommodity); + public PointsMerchandise getById(@RequestBody Integer id){ + return pmdsService.getById(id); + } + /** + * 门票核销 + */ + @RequestMapping("/base/course/changeState") + @ResponseBody + public Object changeState(@RequestBody CourseChangeStateDTO dto){ + return userPointsMerchandiseService.changeState(dto); + } + + + + @RequestMapping("/base/pointMerchars/writeOff") + public Object writeOff(@RequestBody WriteOffDTO dto){ + UserPointsMerchandise byId = userPointsMerchandiseService.getById(dto.getId()); + byId.setStoreId(dto.getVerifiStoreId()); + byId.setStatus(2); + byId.setVerificationTime(new Date()); + byId.setUserId(null); + 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){ + List<Map<String, Object>> result1 = pmdsService.ticketList(ofSearch); + List<Map<String, Object>> result = new ArrayList<>(); + if(ofSearch.getObjType()==3){ + for (Map<String, Object> map : result1) { + List<PointsMerchandiseStore> id = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, map.get("id"))); + List<Integer> collect = id.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); + if(collect.size()==0){ + collect.add(-1); + } + if(collect.contains(ofSearch.getObjId())){ + if(id.size()>1){ + map.put("size",1); + }else { + map.put("size",0); + } + result.add(map); + } + } + }else if(ofSearch.getObjType()==2){ + for (Map<String, Object> map : result1) { + // 拿到当前运营商下的门店的门票 + List<PointsMerchandiseStore> id = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>().in("storeId",ofSearch.getStoreIds())); + // 拿到积分商品id集合 + List<Integer> collect = id.stream().map(PointsMerchandiseStore::getPointsMerchandiseId).collect(Collectors.toList()); + if(collect.size()==0){ + collect.add(-1); + } + Integer temp =(Integer)map.get("id"); + if (collect.contains(temp)){ + if(id.size()>1){ + map.put("size",1); + }else { + map.put("size",0); + } + 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; + } + if (result.size() > 0){ + for (Map<String, Object> stringObjectMap : result) { + Integer o = (Integer) stringObjectMap.get("id"); + String startTime = (String) stringObjectMap.get("startTime"); + 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)); + stringObjectMap.put("hasExchangeQty",count1); + stringObjectMap.put("hasPickQty",count2); + + stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime)); + } + if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){ + result = dealTimeData(result,ofSearch.getActiveStatus()); } } - System.out.println(commodity); - return commodity; + return result; + } + @ResponseBody + @PostMapping("/base/pointMerchars/queryGoodsListSearch") + public List<Map<String,Object>> getIntegralGoodsListOfSearch(@RequestBody IntegralGoodsOfSearch ofSearch){ + System.out.println(ofSearch); + List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearch(ofSearch); + if (mapList.size() > 0){ + for (Map<String, Object> stringObjectMap : mapList) { + Integer o = (Integer) stringObjectMap.get("id"); + String startTime = (String) stringObjectMap.get("startTime"); + String endTime = (String) stringObjectMap.get("endTime"); + stringObjectMap.put("timeValue",startTime + "至"+endTime); + int count1 = 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); + + stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime)); + } + if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){ + mapList = dealTimeData(mapList,ofSearch.getActiveStatus()); + } + } + System.out.println("mapList->"+mapList); + return mapList; + } + /** + * 获取积分商票消费金额 + */ + @ResponseBody + @RequestMapping("/base/pointMerchars/getAmount") + public List<PointMerchandiseIncomeVo> getAmount(){ + return userPointsMerchandiseService.getAmount(); } @ResponseBody + @PostMapping("/base/pointMerchars/convertGoods") + public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception { + List<IntegralCommodity> commodity = new ArrayList<>(); + + 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())); + 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); + } +// } + } + + System.out.println(commodity); + return commodity; + } +@Resource +private CoursePackageClient coursePackageClient; + @Autowired + private PointsMerchandiseService pointsMerchandiseService; + + @ResponseBody @PostMapping("/base/pointMerchars/getCommoditys") public PointMerchandiseVo getVicinityGoods(@RequestBody CommodityRequest request){ +// if (request.getShopId()!=null){ +// List<CoursePackage> coursePackages = coursePackageClient.queryByStoreId(request.getShopId()); +// List<Integer> coursIds = new ArrayList<>(); +// for (CoursePackage coursePackage : coursePackages) { +// coursIds.add(coursePackage.getId()); +// } +// List<PointsMerchandise> points = pointsMerchandiseService.list(new QueryWrapper<PointsMerchandise>().eq("state",1).eq("shelves",1).in("coursePackageId", coursIds)); +// PointMerchandiseVo pointMerchandiseVo = new PointMerchandiseVo(); +// pointMerchandiseVo.setMerchandises(points); +// return pointMerchandiseVo; +// +// } + + + PointMerchandiseVo pointMerchandiseVo = new PointMerchandiseVo(); List<PointsMerchandise> list = new ArrayList<>(); String provinceCode = ""; @@ -122,12 +357,12 @@ list = pmdsService.list(new QueryWrapper<PointsMerchandise>() .eq("state", 1) - .eq("shelves",1)); + .eq("shelves",1).le("startTime",new Date()).ge("endTime",new Date())); if (list.size() > 0 ){ Iterator<PointsMerchandise> iterator = list.iterator(); while (iterator.hasNext()) { PointsMerchandise merchandise = iterator.next(); - if (merchandise.getUseScope() == 2 && (!Objects.equals(merchandise.getCityCode(), cityCode) && !Objects.equals(merchandise.getProvinceCode(), provinceCode))) { + if (merchandise.getUseScope() == 2 && (!cityCode.equals(merchandise.getCityCode()) || !provinceCode.equals(merchandise.getProvinceCode()))) { iterator.remove(); // 移除符合条件的商品 } } @@ -142,13 +377,13 @@ .eq("pointsMerchandiseId",goodId)); } - - @PostMapping("/base/pointMerchars/getGoodDetails") - public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest){ + @PostMapping("/base/pointMerchars/getGoodDetailsWithIdOne") + public ProductDetailsVo getGoodDetailsWithIdOne(@RequestBody Integer id){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); ProductDetailsVo detailsVo = new ProductDetailsVo(); - PointsMerchandise merchandise = pmdsService.getById(detailRequest.getGoodId()); - switch (detailRequest.getGoodsType()){ + PointsMerchandise merchandise = pmdsService.getById(id); + detailsVo.setCardType(merchandise.getCardType()); + switch (merchandise.getType()){ case 2: // 课包 CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId()); @@ -218,7 +453,204 @@ detailsVo.setGoodId(merchandise.getId()); List<String> list2 = new ArrayList<>(); String cover = merchandise.getCover(); - list2.add(cover); + list2.addAll(Arrays.asList(StrUtils.splitStr2StrArr(merchandise.getProductImages(), ","))); + detailsVo.setPics(list2); + Collections.sort(detailsVo.getPics(), (s1, s2) -> { + if (s1.equals(merchandise.getCover())) { + return -1; // s1排在前面 + } else if (s2.equals(merchandise.getCover())) { + return 1; // s2排在前面 + } else { + return 0; // 保持原顺序 + } + }); + detailsVo.setPics(list2); + detailsVo.setGoodName(merchandise.getName()); + detailsVo.setBelongsScope(merchandise.getUserPopulation()); + int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>() + .eq("pointsMerchandiseId",merchandise.getId() )); + detailsVo.setRedeemedNum(count); + detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0)); + detailsVo.setPerLimit(merchandise.getPickUpQuantity()); + detailsVo.setExchangeType(merchandise.getRedemptionMethod()); + if (merchandise.getRedemptionMethod() == 1){ + detailsVo.setIntegral(merchandise.getIntegral()); + }else { + detailsVo.setIntegral(merchandise.getIntegral()); + detailsVo.setCash(merchandise.getCash()); + } + detailsVo.setCost(merchandise.getPrice()); + if (merchandise.getUseScope() == 1){ + detailsVo.setExchangeAddrType(1); + detailsVo.setBelongs("全国通用"); + }else if (merchandise.getUseScope() == 2){ + detailsVo.setExchangeAddrType(2); + detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用"); + }else { + detailsVo.setExchangeAddrType(3); + List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>() + .eq("pointsMerchandiseId",merchandise.getId() )); + PointsMerchandiseStore pointsMerchandiseStore = list.get(0); + StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId()); + detailsVo.setBelongs(courseOfStore.getStoreName()+"可用"); + } + + detailsVo.setStartTime(format.format(merchandise.getStartTime())); + detailsVo.setEndTime(format.format(merchandise.getEndTime())); + + detailsVo.setContents(merchandise.getRedemptionInstructions()); + detailsVo.setGoodType(merchandise.getType()); + break; + case 4: +// 优惠券 + Coupon coupon = iCouponService.getById(id); + detailsVo.setGoodId(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.setBelongsScope(coupon.getUserPopulation()); + int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() + .eq("pointsMerchandiseId",merchandise.getId() )); + detailsVo.setRedeemedNum(couponNums); + detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0)); + detailsVo.setPerLimit(coupon.getPickUpQuantity()); + 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()+"可用"); + } + detailsVo.setStartTime(format.format(coupon.getStartTime())); + detailsVo.setEndTime(format.format(coupon.getEndTime())); + + detailsVo.setContents(coupon.getIllustrate()); + detailsVo.setGoodType(4); + break; + default: + break; + } + return detailsVo; + } + + + @Autowired + private UserCouponService userCouponService; + @PostMapping("/base/pointMerchars/getGoodDetails") + public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest){ + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + ProductDetailsVo detailsVo = new ProductDetailsVo(); + PointsMerchandise merchandise = pmdsService.getById(detailRequest.getGoodId()); + + + + if (merchandise!=null) { + detailsVo.setCardType(merchandise.getCardType()); + } + switch (detailRequest.getGoodsType()){ + case 2: +// 课包 + CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId()); + +// 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(), ","))); + + 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排在前面 + } else if (s2.equals(coursePackage.getCoverDrawing())) { + return 1; // s2排在前面 + } else { + return 0; // 保持原顺序 + } + }); + detailsVo.setGoodName(coursePackage.getName()); + detailsVo.setBelongsScope(merchandise.getUserPopulation()); + int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() + .eq("pointsMerchandiseId",merchandise.getId() )); + detailsVo.setRedeemedNum(coursePackageNums); + detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0)); + detailsVo.setPerLimit(merchandise.getPickUpQuantity()); + if (merchandise.getRedemptionMethod() == 1){ + detailsVo.setExchangeType(1); + detailsVo.setIntegral(merchandise.getIntegral()); + }else { + detailsVo.setExchangeType(2); + detailsVo.setIntegral(merchandise.getIntegral()); + detailsVo.setCash(merchandise.getCash()); + } + detailsVo.setCost(merchandise.getPrice()); + if (merchandise.getUseScope() == 1){ + detailsVo.setExchangeAddrType(1); + detailsVo.setBelongs("全国通用"); + }else if (merchandise.getUseScope() == 2){ + detailsVo.setExchangeAddrType(2); + detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用"); + }else { + detailsVo.setExchangeAddrType(3); + List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>() + .eq("pointsMerchandiseId",merchandise.getId() )); + PointsMerchandiseStore pointsMerchandiseStore = list.get(0); + StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId()); + detailsVo.setBelongs(courseOfStore.getStoreName()+"可用"); + } + List<CoursePackagePaymentConfig> courseConfigList = cpcfigClient.getCourseConfigList(coursePackage.getId()); + + for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) { + if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())){ + detailsVo.setCourseHours(coursePackagePaymentConfig.getClassHours()); + break; + } + } + detailsVo.setStartTime(format.format(merchandise.getStartTime())); + detailsVo.setEndTime(format.format(merchandise.getEndTime())); + + detailsVo.setContents(merchandise.getRedemptionInstructions()); + detailsVo.setGoodType(merchandise.getType()); + + break; + case 1: + case 3: + + detailsVo.setGoodId(merchandise.getId()); + List<String> list2 = new ArrayList<>(); + String cover = merchandise.getCover(); list2.addAll(Arrays.asList(StrUtils.splitStr2StrArr(merchandise.getProductImages(), ","))); detailsVo.setPics(list2); Collections.sort(detailsVo.getPics(), (s1, s2) -> { @@ -288,10 +720,17 @@ }); detailsVo.setGoodName(coupon.getName()); detailsVo.setBelongsScope(coupon.getUserPopulation()); - int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() - .eq("pointsMerchandiseId",merchandise.getId() )); - detailsVo.setRedeemedNum(couponNums); - detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0)); +// int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() +// .eq("pointsMerchandiseId",merchandise.getId() )); + + + + int couponCounts = userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", coupon.getId())); +// detailsVo.setRedeemedNum(coupon.getPickUpQuantity()); + detailsVo.setRedeemedNum(couponCounts); + + detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponCounts, 0)); + detailsVo.setPerLimit(coupon.getPickUpQuantity()); detailsVo.setExchangeType(coupon.getRedemptionMethod()); if (coupon.getRedemptionMethod() == 1){ @@ -330,6 +769,10 @@ } + @Autowired + private ICouponService couponService; + + @ResponseBody @PostMapping("/base/pointMerchars/getDetailsOfExchange") public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId){ @@ -337,41 +780,224 @@ 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<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()); + if (merchandise==null){ + continue; + } ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse(); detailsResponse.setDetailsId(pointsMerchandise.getId()); detailsResponse.setGoodName(merchandise.getName()); if (merchandise.getRedemptionMethod() == 1){ detailsResponse.setExchangeType(1); detailsResponse.setIntegral(merchandise.getIntegral()); - }else { + }else if (merchandise.getRedemptionMethod() == 2){ detailsResponse.setExchangeType(2); detailsResponse.setIntegral(merchandise.getIntegral()); + detailsResponse.setCash(merchandise.getCash()); + }else if (merchandise.getRedemptionMethod() == 3){ + detailsResponse.setExchangeType(3); detailsResponse.setCash(merchandise.getCash()); } detailsResponse.setStartTime(simpleDateFormat.format(merchandise.getStartTime())); detailsResponse.setEndTime(simpleDateFormat.format(merchandise.getEndTime())); detailsResponse.setUseStatus(pointsMerchandise.getStatus() == 1 ? 2 : 1); detailsResponse.setGoodType(merchandise.getType()); + if(merchandise.getType()==3){ + detailsResponse.setCardType(merchandise.getCardType()); + List<Integer> sids = new ArrayList<>(); + detailsResponse.setUserId(appUserId); + if(merchandise.getUseScope()==1){ + sids.add(0); + detailsResponse.setSid(sids); + detailsResponse.setRid(new ArrayList<>()); + }else if(merchandise.getUseScope()==2){ + // 指定城市 + List<PointsMerchandiseCity> list = pmdsCityService.list(new LambdaQueryWrapper<PointsMerchandiseCity>().eq(PointsMerchandiseCity::getPointsMerchandiseId, merchandise.getId())); + List<String> collect = list.stream().map(PointsMerchandiseCity::getCityCode).collect(Collectors.toList()); + if(collect.size()==0){ + collect.add("-1"); + } + List<Integer> storeIds = stoClient.queryStoreIdByCityCode(collect); + detailsResponse.setSid(storeIds); + if(storeIds.size()>0){ + // 获取rid + List<Integer> rid= stoClient.querySiteIdById(storeIds); + detailsResponse.setRid(rid); + } + + + }else if(merchandise.getUseScope()==3){ + // 指定门店 + List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId())); + List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); + detailsResponse.setSid(collect); + if(collect.size()>0){ + // 获取rid + List<Integer> rid= stoClient.querySiteIdById(collect); + detailsResponse.setRid(rid); + } + + } + + + if (merchandise.getCardType()==1){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(pointsMerchandise.getInsertTime()); + calendar.add(Calendar.DAY_OF_MONTH, 1); + Date end = calendar.getTime(); + String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); + 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) && + cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); + + // Print the result + if (isSameDate) { + } else { + System.out.println("The two dates do not have the same date."); + detailsResponse.setUseStatus(3); + + } + + + } else if (merchandise.getCardType()==2) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(pointsMerchandise.getInsertTime()); + calendar.add(Calendar.DAY_OF_MONTH, 31); + Date end = calendar.getTime(); + String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); + String endDate = dateFormat.format(end); + detailsResponse.setStartTime(startDate); + detailsResponse.setEndTime(endDate); + + Date now = new Date(); + if (now.after(end)){ + detailsResponse.setUseStatus(3); + } + + } else if (merchandise.getCardType()==3){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(pointsMerchandise.getInsertTime()); + calendar.add(Calendar.DAY_OF_MONTH, 93); + Date end = calendar.getTime(); + String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); + String endDate = dateFormat.format(end); + detailsResponse.setStartTime(startDate); + detailsResponse.setEndTime(endDate); + + Date now = new Date(); + if (now.after(end)){ + detailsResponse.setUseStatus(3); + } + + } else if (merchandise.getCardType()==4) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(pointsMerchandise.getInsertTime()); + calendar.add(Calendar.DAY_OF_MONTH, 372); + Date end = calendar.getTime(); + String startDate = dateFormat.format(pointsMerchandise.getInsertTime()); + String endDate = dateFormat.format(end); + detailsResponse.setStartTime(startDate); + detailsResponse.setEndTime(endDate); + + Date now = new Date(); + if (now.after(end)){ + detailsResponse.setUseStatus(3); + } + + } + + + } responses.add(detailsResponse); } detailsVo.setDetailsResponses(responses); + } + + if (userCoupons.size()>0){ + for (UserCoupon userCoupon : userCoupons) { + + Coupon c = couponService.getById(userCoupon.getCouponId()); + if (c==null|| c.getRedemptionMethod()==null){ + continue; + } + + ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse(); + detailsResponse.setDetailsId(Long.valueOf(c.getId())); + detailsResponse.setGoodName(c.getName()); + if (c.getRedemptionMethod() == 1){ + detailsResponse.setExchangeType(1); + detailsResponse.setIntegral(c.getIntegral().intValue()); + }else { + detailsResponse.setExchangeType(2); + detailsResponse.setIntegral(c.getIntegral().intValue()); + detailsResponse.setCash(c.getCash()); + } + detailsResponse.setStartTime(simpleDateFormat.format(c.getStartTime())); + detailsResponse.setEndTime(simpleDateFormat.format(c.getEndTime())); + detailsResponse.setUseStatus(userCoupon.getStatus() == 1 ? 2 : 1); + detailsResponse.setGoodType(4); + responses.add(detailsResponse); + + + } + Comparator<ExchangeDetailsResponse> comparator = Comparator.comparing(ExchangeDetailsResponse::getStartTime).reversed(); + Collections.sort(responses, comparator); + detailsVo.setDetailsResponses(responses); + } return detailsVo; } +@Autowired +private PointsMerchandiseStoreService storeService; + @ResponseBody @PostMapping("/base/pointMerchars/getSpecificsOfGoods") - public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId){ - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); PointDetailsVo detailsVo = new PointDetailsVo(); UserPointsMerchandise byId = upmseService.getById(speMercharsId); + + List<PointsMerchandiseStore> stores = storeService.list(new QueryWrapper<PointsMerchandiseStore>().eq("pointsMerchandiseId", byId.getPointsMerchandiseId())); + if (ToolUtil.isNotEmpty(byId)){ 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){ @@ -384,7 +1010,24 @@ switch (pmdsServiceById.getType()){ case 1: case 3: - List<String> list2 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ",")); + 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) -> { @@ -396,10 +1039,106 @@ return 0; // 保持原顺序 } }); + + + + + if (pmdsServiceById.getCardType()==1){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(byId.getInsertTime()); + calendar.add(Calendar.DAY_OF_MONTH, 1); + Date end = calendar.getTime(); + String startDate = dateFormat.format(byId.getInsertTime()); + String endDate = dateFormat.format(end); + detailsVo.setStartTime(startDate); + detailsVo.setEndTime(startDate); + + Date now = new Date(); + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(pmdsServiceById.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) && + cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); + + // Print the result + if (isSameDate) { + } else { + System.out.println("The two dates do not have the same date."); + detailsVo.setUseType(3); + } + + + } 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); + Date end = calendar.getTime(); + String startDate = dateFormat.format(byId.getInsertTime()); + String endDate = dateFormat.format(end); + detailsVo.setStartTime(startDate); + detailsVo.setEndTime(endDate); + + Date now = new Date(); + if (now.after(end)){ + detailsVo.setUseType(3); + } + + } 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); + Date end = calendar.getTime(); + String startDate = dateFormat.format(byId.getInsertTime()); + String endDate = dateFormat.format(end); + detailsVo.setStartTime(startDate); + detailsVo.setEndTime(endDate); + + Date now = new Date(); + if (now.after(end)){ + detailsVo.setUseType(3); + } + + } else if (pmdsServiceById.getCardType()==4) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(byId.getInsertTime()); + calendar.add(Calendar.DAY_OF_MONTH, 372); + Date end = calendar.getTime(); + String startDate = dateFormat.format(byId.getInsertTime()); + String endDate = dateFormat.format(end); + detailsVo.setStartTime(startDate); + detailsVo.setEndTime(endDate); + + Date now = new Date(); + if (now.after(end)){ + detailsVo.setUseType(3); + } + + } + + + + + break; case 2: CoursePackage coursePackage = cpClient.queryCoursePackageById(pmdsServiceById.getCoursePackageId()); - List<String> list1 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")); + List<String> list11 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")); + ArrayList<String> list1 = new ArrayList<>(list11); list1.add(coursePackage.getCoverDrawing()); detailsVo.setPics(list1); CoursePackagePaymentConfig coursePackagePaymentConfig = cpClient.queryConfigCoursePackData(pmdsServiceById.getCoursePackageConfigId()); @@ -416,7 +1155,8 @@ break; case 4: Coupon coupon = iCouponService.getById(pmdsServiceById.getId()); - List<String> list3 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")); + List<String> list13 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")); + ArrayList<String> list3 = new ArrayList<>(list13); list3.add(coupon.getCover()); detailsVo.setPics(list3); Collections.sort(detailsVo.getPics(), (s1, s2) -> { @@ -434,16 +1174,22 @@ } detailsVo.setGoodName(pmdsServiceById.getName()); - detailsVo.setStartTime(simpleDateFormat.format(pmdsServiceById.getStartTime())); - detailsVo.setEndTime(simpleDateFormat.format(pmdsServiceById.getEndTime())); - detailsVo.setOrderTime(simpleDateFormat.format(byId.getInsertTime())); + // 2.0 + if (detailsVo.getStartTime()==null) { + detailsVo.setStartTime(simpleDateFormat.format(byId.getInsertTime())); + detailsVo.setEndTime(simpleDateFormat.format(pmdsServiceById.getEndTime())); + detailsVo.setOrderTime(simpleDateFormat.format(byId.getInsertTime())); + + } if (byId.getStatus() == 1){ detailsVo.setUseType(2); }else { detailsVo.setUseType(1); detailsVo.setWriteOffTime(simpleDateFormat.format(byId.getVerificationTime())); - StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getVerifiStoreId()); - detailsVo.setWriteOffName(courseOfStore.getStoreName()); + if (byId.getStoreId()!=null) { + StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId()); + detailsVo.setWriteOffName(courseOfStore.getStoreName()); + } } switch (pmdsServiceById.getUseScope()){ case 1: @@ -453,13 +1199,75 @@ 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; } detailsVo.setContents(pmdsServiceById.getRedemptionInstructions()); + }else { + Coupon coupon = iCouponService.getById(speMercharsId); + 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.setBelongsScope(coupon.getUserPopulation()); +// int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>() +// .eq("pointsMerchandiseId",merchandise.getId() )); + + + + int couponCounts = userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", coupon.getId())); +// detailsVo.setRedeemedNum(coupon.getPickUpQuantity()); +// detailsVo.setRedeemedNum(couponCounts); + +// detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponCounts, 0)); + +// detailsVo.setPerLimit(coupon.getPickUpQuantity()); + 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()+"可用"); +// } +// detailsVo.setStartTime(format.format(coupon.getStartTime())); +// detailsVo.setEndTime(format.format(coupon.getEndTime())); + + detailsVo.setContents(coupon.getIllustrate()); + detailsVo.setGoodType(4); } return detailsVo; } @@ -472,20 +1280,21 @@ @PostMapping("/base/pointMerchars/saveDetailsUserPointMercase") - public void saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ + public Long saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ merchandise.setInsertTime(new Date()); upmseService.save(merchandise); + return merchandise.getId(); } @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase") - public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ - upmseService.update(merchandise,new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getUserId,merchandise.getUserId()) - .eq(UserPointsMerchandise::getId,merchandise.getId())); - + public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){ + merchandise.setUserId(null); + merchandise.setPointsMerchandiseId(null); + upmseService.updateById(merchandise); } + @ResponseBody @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode") public List<UserPointsMerchandise> queryUserPointMerchaseByCode(@RequestBody String code){ return upmseService.list(new QueryWrapper<UserPointsMerchandise>() @@ -501,6 +1310,9 @@ if (list.size() > 0){ storeIds = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList()); } + if(storeIds.size()==0){ + storeIds.add(-1); + } return storeIds; } @@ -513,7 +1325,15 @@ @PostMapping("/base/pointMerchars/queryUserHasGoodsNums") public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp){ int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getUserId,goodResp.getGoodId()) + .eq(UserPointsMerchandise::getUserId,goodResp.getAppUserId()) + .eq(UserPointsMerchandise::getPointsMerchandiseId,goodResp.getGoodId())); + System.out.println(count); + return count; + } + @ResponseBody + @PostMapping("/base/pointMerchars/queryUserHasGoodsNums1") + public int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp){ + int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>() .eq(UserPointsMerchandise::getPointsMerchandiseId,goodResp.getGoodId())); System.out.println(count); return count; @@ -533,43 +1353,22 @@ if (list.size() > 0 ){ for (UserPointsMerchandise pointsMerchandise : list) { pointsMerchandise.setState(2); - upmseService.update(pointsMerchandise,new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getUserId,pointsMerchandise.getUserId()) - .eq(UserPointsMerchandise::getId,pointsMerchandise.getId())); + upmseService.updateById(pointsMerchandise); } } } - + //拿到积分商品现金的消费记录 @ResponseBody - @PostMapping("/base/pointMerchars/queryGoodsListSearch") - public List<Map<String,Object>> getIntegralGoodsListOfSearch(@RequestBody IntegralGoodsOfSearch ofSearch){ - System.out.println(ofSearch); - List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearch(ofSearch); - if (mapList.size() > 0){ - for (Map<String, Object> stringObjectMap : mapList) { - Integer o = (Integer) stringObjectMap.get("id"); - String startTime = (String) stringObjectMap.get("startTime"); - 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)); - stringObjectMap.put("hasExchangeQty",count1); - stringObjectMap.put("hasPickQty",count2); + @PostMapping("/base/pointMerchars/getConsumeDetails") + public List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo){ + return upmseService.getConsumeDetails(requestVo); - stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime)); - } - if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){ - mapList = dealTimeData(mapList,ofSearch.getActiveStatus()); - } - } - System.out.println("mapList->"+mapList); - return mapList; + + } + public int dealTimeStatus(String startTime, String endTime){ LocalDate now = LocalDate.now(); @@ -635,18 +1434,17 @@ public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId){ PointMercharsVo vo = new PointMercharsVo(); PointsMerchandise byId = pmdsService.getById(pointMercharsId); - List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId)); if (ToolUtil.isNotEmpty(byId)){ vo.setName(byId.getName()); vo.setCover(byId.getCover()); vo.setPics(byId.getProductImages()); - vo.setQuantityHas(list.size()); vo.setQuantityIssued(byId.getQuantityIssued()); vo.setPickUpQuantity(byId.getPickUpQuantity()); vo.setSort(byId.getSort()); vo.setContent(byId.getRedemptionInstructions()); } + int count = userPointsMerchandiseService.count(new LambdaQueryWrapper<UserPointsMerchandise>().eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId)); + vo.setNum(count); return vo; } @@ -683,7 +1481,7 @@ if (list.size() > 0 ){ for (UserPointsMerchandise pointsMerchandise : list) { Map<String, Object> map = new HashMap<>(); - map.put("id",pointsMerchandise.getId().toString()); + map.put("id",pointsMerchandise.getId()); map.put("userId",pointsMerchandise.getUserId()); map.put("status", pointsMerchandise.getStatus()); mapList.add(map); @@ -693,61 +1491,26 @@ return mapList; } - @ResponseBody - @PostMapping("/base/pointMerchars/writeOffGoodsStatus") - public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map){ - try { - String o = (String) map.get("goodsId"); - Integer managerId = (Integer) map.get("managerId"); - UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getId,Long.parseLong(o) )); - if (byId.getStatus() == 2){ - return false; - } - byId.setStatus(2); - byId.setVerificationUserId(managerId); - byId.setVerificationTime(new Date()); - upmseService.update(byId,new LambdaQueryWrapper<UserPointsMerchandise>() - .eq(UserPointsMerchandise::getUserId,byId.getUserId()) - .eq(UserPointsMerchandise::getId,byId.getId())); - System.out.println(byId); - return true; - }catch (Exception e){ - return false; - } + @PostMapping("/base/pointMerchars/queryPointMerchaseById") + public PointsMerchandise queryPointMerchaseById(@RequestBody Integer 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; } - - - @ResponseBody - @PostMapping("/base/pointMerchars/updateGoodsDetail") - public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){ - try { - Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId"); - PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId); - - Integer quantityIssued = (Integer) map.get("quantityIssued"); - Integer pickUpQuantity = (Integer) map.get("pickUpQuantity"); - String redemptionInstructions = (String) map.get("redemptionInstructions"); - String cover = (String) map.get("cover"); - String productImages = (String) map.get("productImages"); - Integer sort = (Integer) map.get("sort"); - - byId1.setQuantityIssued(quantityIssued); - byId1.setPickUpQuantity(pickUpQuantity); - byId1.setRedemptionInstructions(redemptionInstructions); - if (ToolUtil.isNotEmpty(cover)){ - byId1.setCover(cover); - } - if (ToolUtil.isNotEmpty(productImages)){ - byId1.setProductImages(productImages); - } - byId1.setSort(sort); - pmdsService.updateById(byId1); - return true; - }catch (Exception e){ - return false; - } + @PostMapping("/base/pointMerchars/getshopName") + public Integer getshopName(@RequestBody Integer id){ + List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, id)); + PointsMerchandiseStore pointsMerchandiseStore = list.get(0); + Integer storeId = pointsMerchandiseStore.getStoreId(); + return storeId; } @@ -817,29 +1580,6 @@ } - - @ResponseBody - @PostMapping("/base/pointMerchars/getStoreList") - public List<StoreVos> getStoreList(@RequestBody Integer id){ - 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() +"市"); - storeVos1.setNum2(store.getName()); - storeVos.add(storeVos1); - } - } - } - return storeVos; - } - - @ResponseBody @PostMapping("/base/pointMerchars/getProvinces") public List<StoreVos> getProvinces(@RequestBody Integer id){ @@ -857,10 +1597,75 @@ return storeVos; } + + @ResponseBody + @PostMapping("/base/pointMerchars/getStoreList") + public List<StoreVos> getStoreList(@RequestBody Integer id){ + 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 { + + storeVos1.setNum2(store.getOName()); + } + storeVos1.setNum3(store.getName()); + storeVos1.setNum4(store.getIds()); + storeVos.add(storeVos1); + } + } + } + return storeVos; + } + + + + @ResponseBody + @PostMapping("/base/pointMerchars/updateGoodsDetail") + public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){ + try { + Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId"); + PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId); + if(Integer.valueOf(map.get("type").toString())!=1){ + byId1.setStatus(2); + } + Integer quantityIssued = (Integer) map.get("quantityIssued"); + Integer pickUpQuantity = (Integer) map.get("pickUpQuantity"); + String redemptionInstructions = (String) map.get("redemptionInstructions"); + String cover = (String) map.get("cover"); + String productImages = (String) map.get("productImages"); + Integer sort = (Integer) map.get("sort"); + + byId1.setQuantityIssued(quantityIssued); + byId1.setPickUpQuantity(pickUpQuantity); + byId1.setRedemptionInstructions(redemptionInstructions); + if (ToolUtil.isNotEmpty(cover)){ + byId1.setCover(cover); + } + if (ToolUtil.isNotEmpty(productImages)){ + byId1.setProductImages(productImages); + } + byId1.setSort(sort); + pmdsService.updateById(byId1); + return true; + }catch (Exception e){ + return false; + } + } + + @PostMapping("/base/pointMerchars/add") - public Integer add(@RequestBody PointsMerchandise pointsMerchandise){ + 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(); @@ -876,6 +1681,8 @@ } return null; } + + @PostMapping("/base/pointMerchars/addOther") @@ -905,20 +1712,139 @@ } - - @PostMapping("/base/pointMerchars/queryPointMerchaseById") - public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id){ - return pmdsService.getById(id); + @ResponseBody + @PostMapping("/base/pointMerchars/writeOffGoodsStatus") + public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map){ + try { + String o = (String) map.get("goodsId"); + Integer managerId = (Integer) map.get("managerId"); + UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getId,Long.parseLong(o) )); + if (byId.getStatus() == 2){ + return false; + } + byId.setStatus(2); + byId.setVerificationUserId(managerId); + byId.setVerificationTime(new Date()); + upmseService.update(byId,new LambdaQueryWrapper<UserPointsMerchandise>() + .eq(UserPointsMerchandise::getUserId,byId.getUserId()) + .eq(UserPointsMerchandise::getId,byId.getId())); + System.out.println(byId); + return true; + }catch (Exception e){ + return false; + } } - @PostMapping("/base/pointMerchars/getshopName") - public Integer getshopName(@RequestBody Integer id){ - List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, id)); - PointsMerchandiseStore pointsMerchandiseStore = list.get(0); - Integer storeId = pointsMerchandiseStore.getStoreId(); - return storeId; + @ResponseBody + @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit") + public List<Map<String,Object>> getIntegralGoodsListOfSearchAudit(@RequestBody IntegralGoodsOfSearch ofSearch){ + System.out.println(ofSearch); + List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearchAudit(ofSearch); + if (mapList.size() > 0){ + for (Map<String, Object> stringObjectMap : mapList) { + Integer o = (Integer) stringObjectMap.get("id"); + String startTime = (String) stringObjectMap.get("startTime"); + 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)); + stringObjectMap.put("hasExchangeQty",count1); + stringObjectMap.put("hasPickQty",count2); + + stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime)); + } + if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){ + mapList = dealTimeData(mapList,ofSearch.getActiveStatus()); + } + } + System.out.println("mapList->"+mapList); + return mapList; + } + + + @PostMapping("/base/pointMerchars/updateType") + @ResponseBody + public Object updateType(@RequestBody String s){ + String[] split = s.split("_"); + PointsMerchandise byId = pmdsService.getById(split[0]); + byId.setStatus(Integer.valueOf(split[1])); + if(Integer.valueOf(split[1])==3){ + + byId.setRemark(split[2]); + } + return pmdsService.updateById(byId); + + } + + + @PostMapping("/base/pointMerchars/queryFee") + @ResponseBody + public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee){ + HashMap<String, Object> map = new HashMap<>(); + String data = queryDataFee.getData(); + List<Integer> ids = queryDataFee.getIds(); + if(ids.size()==0){ + ids.add(-1); + } + List<PointsMerchandise> list1 = pmdsService.list(new LambdaQueryWrapper<PointsMerchandise>().eq(PointsMerchandise::getRedemptionMethod, 3)); + LambdaQueryWrapper<UserPointsMerchandise> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>(); + if(ToolUtil.isNotEmpty(data)){ + String stime = data.split(" - ")[0]+" 00:00:00"; + String etime = data.split(" - ")[1]+" 23:59:59"; + vipPaymentLambdaQueryWrapper.between(UserPointsMerchandise::getInsertTime,stime,etime); + } + vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getUserId,ids); + List<Integer> collect = list1.stream().map(PointsMerchandise::getId).collect(Collectors.toList()); + if(collect.size()==0){ + collect.add(-1); + } + vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getPointsMerchandiseId,collect); + vipPaymentLambdaQueryWrapper.eq(UserPointsMerchandise::getPayStatus,2); + ArrayList<Integer> objects = new ArrayList<>(); + List<UserPointsMerchandise> list = upmseService.list(vipPaymentLambdaQueryWrapper); + + double a =0; + double d =0; + double m =0; + double j =0; + double y =0; + for (UserPointsMerchandise userPointsMerchandise : list) { + for (PointsMerchandise pointsMerchandise : list1) { + if(pointsMerchandise.getId()==userPointsMerchandise.getPointsMerchandiseId()){ + a += pointsMerchandise.getCash().doubleValue(); + } + if(pointsMerchandise.getType()==3){ + if(pointsMerchandise.getCardType()==1){ + d += pointsMerchandise.getCash().doubleValue(); + } + if(pointsMerchandise.getCardType()==2){ + m += pointsMerchandise.getCash().doubleValue(); + } + if(pointsMerchandise.getCardType()==3){ + j += pointsMerchandise.getCash().doubleValue(); + } + if(pointsMerchandise.getCardType()==4){ + y += pointsMerchandise.getCash().doubleValue(); + } + } + } + + } + + map.put("all",a); + map.put("day",d); + map.put("month",m); + map.put("quarter",j); + map.put("year",y); + return map; + + } } -- Gitblit v1.7.1