From be8a63ba1e3f2e26f5cdefe519c37ad4cfd90435 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期日, 05 十一月 2023 09:45:11 +0800 Subject: [PATCH] 11.5 --- cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 348 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 335 insertions(+), 13 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 81014c1..f13ab2f 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 @@ -89,12 +89,23 @@ * 门票上下架 state=1 上架 state=2 下架 */ @RequestMapping("/base/pointMerchars/changeState") - public Object changeState(@RequestBody CoachChangeStateVO dto){ - return pmdsService.changeState(dto); + public void changeState(@RequestBody CoachChangeStateVO dto){ + + + pmdsService.changeState(dto); } /** * 门票核销 */ + + @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()); @@ -475,19 +486,28 @@ } 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()); - detailsVo.setCardType(merchandise.getCardType()); + + + if (merchandise!=null) { + detailsVo.setCardType(merchandise.getCardType()); + } switch (detailRequest.getGoodsType()){ case 2: // 课包 CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId()); - detailsVo.setGoodId(coursePackage.getId()); +// 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(), ","))); @@ -621,10 +641,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){ @@ -663,6 +690,10 @@ } + @Autowired + private ICouponService couponService; + + @ResponseBody @PostMapping("/base/pointMerchars/getDetailsOfExchange") public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId){ @@ -671,18 +702,29 @@ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); List<UserPointsMerchandise> pointsMerchandises = upmseService.list(new QueryWrapper<UserPointsMerchandise>() .eq("userId",appUserId )); + + + List<UserCoupon> userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId)); + + 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())); @@ -725,10 +767,127 @@ } } + + + 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){ + 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; } @@ -770,6 +929,95 @@ 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()); @@ -811,9 +1059,12 @@ detailsVo.setGoodName(pmdsServiceById.getName()); // 2.0 - detailsVo.setStartTime(simpleDateFormat.format(byId.getInsertTime())); - detailsVo.setEndTime(simpleDateFormat.format(pmdsServiceById.getEndTime())); - detailsVo.setOrderTime(simpleDateFormat.format(byId.getInsertTime())); + 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 { @@ -837,6 +1088,67 @@ 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; } @@ -849,9 +1161,10 @@ @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(); } @@ -925,6 +1238,15 @@ } + //拿到积分商品现金的消费记录 + @ResponseBody + @PostMapping("/base/pointMerchars/getConsumeDetails") + public List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo){ + return upmseService.getConsumeDetails(requestVo); + + + + } public int dealTimeStatus(String startTime, String endTime){ -- Gitblit v1.7.1