From 9baa55cf4292ad0fe80547f9c840e917775411f4 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期日, 05 十一月 2023 09:45:48 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java | 8 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java | 7 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 272 +++++++++---- cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 4 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java | 3 cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java | 22 + cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java | 2 cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java | 4 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java | 7 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js | 2 cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java | 4 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/model/PaymentDeductionClassHour.java | 1 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 348 +++++++++++++---- cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java | 9 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 62 +- cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 2 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java | 6 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java | 14 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 156 ++++++ cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 5 cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 6 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java | 3 cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PaymentDeductionClassHour.java | 1 cloud-server-activity/src/main/java/com/dsh/activity/entity/BillingDataRequestVo.java | 21 + cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java | 15 cloud-server-account/src/main/java/com/dsh/account/model/ReturnModel.java | 12 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 75 ++- cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml | 25 + cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 6 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 7 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java | 14 cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js | 5 cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java | 11 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java | 15 35 files changed, 870 insertions(+), 286 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java index 2583912..1512dc0 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java @@ -247,7 +247,7 @@ } List<StuListVo> stuListVos = new ArrayList<>(); List<TStudent> tStudents = istuService.list(new QueryWrapper<TStudent>() - .eq("appUserId",userIdFormRedis)); + .eq("appUserId",userIdFormRedis).eq("state",1)); if (tStudents.size() > 0){ tStudents.forEach(sts -> { StuListVo vo = new StuListVo(); diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java index cac69c8..7aaa6e0 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java @@ -2,6 +2,7 @@ import com.dsh.account.entity.TAppUser; +import com.dsh.account.feignclient.activity.model.IntegralCommodity; import com.dsh.account.feignclient.other.SysLogClient; import com.dsh.account.model.vo.userBenefitDetail.*; import com.dsh.account.service.RechargeRecordsService; @@ -61,7 +62,13 @@ if(null == appUserId){ return ResultUtil.tokenErr(); } - return ResultUtil.success(tauService.queryBenefitDetails(appUserId)); + IndexOfUserBenefirVo indexOfUserBenefirVo = tauService.queryBenefitDetails(appUserId); + List<IntegralCommodity> commodities = indexOfUserBenefirVo.getCommodities(); + if (commodities.size() > 5) { + commodities = commodities.subList(0, 5); + } + indexOfUserBenefirVo.setCommodities(commodities); + return ResultUtil.success(indexOfUserBenefirVo); }catch (Exception e){ return ResultUtil.runErr(); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java index 1f28eb8..19f7b0e 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java @@ -2,10 +2,8 @@ import com.dsh.account.feignclient.activity.model.*; -import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse; -import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsVo; -import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo; -import com.dsh.account.model.vo.userBenefitDetail.ProductDetailsVo; +import com.dsh.account.feignclient.competition.model.BillingDataRequestVo; +import com.dsh.account.model.vo.userBenefitDetail.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -44,7 +42,7 @@ @PostMapping("/base/pointMerchars/saveDetailsUserPointMercase") - public void saveDetailsUserPointMercase( UserPointsMerchandise merchandise); + public Long saveDetailsUserPointMercase( UserPointsMerchandise merchandise); @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase") @@ -65,8 +63,6 @@ void deletePaymentRecord(@RequestBody String code); - - - - + @PostMapping("/base/pointMerchars/getConsumeDetails") + List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/ReturnModel.java b/cloud-server-account/src/main/java/com/dsh/account/model/ReturnModel.java new file mode 100644 index 0000000..eedcf43 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/model/ReturnModel.java @@ -0,0 +1,12 @@ +package com.dsh.account.model; + + +import lombok.Data; + +@Data +public class ReturnModel { + + private Long returnId; + + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java index e24cde3..3b86233 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java @@ -277,9 +277,23 @@ break; } if("TRADE_SUCCESS".equals(tradeStatus)){ + records.setAppUserId(null); records.setPayStatus(2); + records.setPayTime(new Date()); records.setOrderNumber(tradeNo); rereMapper.updateById(records); + +// RechargeRecords rechargeRecords = rereMapper.selectOne(new QueryWrapper<RechargeRecords>() +// .eq("code", code)); +// if (rechargeRecords.getPayStatus() == 2){ +// break; +// } +// +// TAppUser tAppUser = tappMapper.selectById(rechargeRecords.getAppUserId()); +// tAppUser.setPlayPaiCoins(null == tAppUser.getPlayPaiCoins()? rechargeRecords.getPlayPaiCoins(): tAppUser.getPlayPaiCoins() +rechargeRecords.getPlayPaiCoins() ); +// tappMapper.updateById(tAppUser); + + break; } if("WAIT_BUYER_PAY".equals(tradeStatus)){ @@ -362,6 +376,7 @@ if (rechargeRecords.getPayStatus() == 2){ return ResultUtil.success(); } + rechargeRecords.setAppUserId(null); rechargeRecords.setPayStatus(2); rechargeRecords.setPayTime(new Date()); rechargeRecords.setOrderNumber(orderNumber); diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index 54627f6..82a76bd 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -284,8 +284,9 @@ classInfoVo.setHeight(tStudent.getHeight()); classInfoVo.setWeight(tStudent.getWeight()); classInfoVo.setBmi(tStudent.getBmi()); - classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi())); - + if (tStudent.getBmi()!=null) { + classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi())); + } List<RegisteredCourse> courseList = new ArrayList<>(); List<StuCourseResp> stuCoursePayment = paymentClient.getStuCoursePayment(tStudent.getId()); List<Integer> coursePackIds = new ArrayList<>(); @@ -302,7 +303,6 @@ course.setPeriodOfValidity(tCoursePackagePayment.getPeriodOfValidity()); courseList.add(course); } - } classInfoVo.setCourseList(courseList); // List<ExerciseVideo> stuCourseOfVideoList = voclClient.getStuCourseOfVideoList(coursePackIds); @@ -799,6 +799,13 @@ details.add(consumeDetail); } } + + //8.积分商场 + + List<ConsumeDetail> consumeDetails = mcClient.getConsumeDetails(requestVo); + details.addAll(consumeDetails); + + if (details.size() > 0 ){ Collections.sort(details, new Comparator<ConsumeDetail>() { @Override @@ -960,7 +967,7 @@ if (request.getShopId()!=null){ if (goods.size() > 0 ){ goods = goods.stream() - .filter( merchandise ->(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 1)||merchandise.getShopIds().contains(request.getShopId())) + .filter( merchandise ->(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 2)||(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 1)||merchandise.getShopIds().contains(request.getShopId())) .collect(Collectors.toList()); } } @@ -1198,6 +1205,8 @@ public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { System.out.println("exchangeType:--->"); + ReturnModel returnModel = new ReturnModel(); + Long returnId = null; //如果是兑换优惠卷 if (exchangeType.getGoodsType()==4){ //查询优惠卷 @@ -1216,10 +1225,6 @@ if (usercounts == coupon.getPickUpQuantity()){ return new ResultUtil<>(0,"限领数量已达最大"); } - - - - // userConponClient.queryCouponById(exchangeType.getGoodId()); UserCoupon userCoupon = new UserCoupon(); userCoupon.setCouponId(exchangeType.getGoodId()); @@ -1227,19 +1232,33 @@ userCoupon.setStatus(1); userCoupon.setInsertTime(new Date()); userConponClient.insertToAppuserCoupon(userCoupon); - - //扣积分 TAppUser user = appUserService.getById(userIdFormRedis); if (user.getIntegral()<coupon.getIntegral().intValue()){ return new ResultUtil<>(0,"当前用户积分不足"); } - user.setIntegral(user.getIntegral()-coupon.getIntegral().intValue()); - appUserService.updateById(user); - return ResultUtil.success(); + //记录 +// UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); +// pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId()); +// pointsMerchandise.setUserId(userIdFormRedis); +// pointsMerchandise.setStatus(1); +// pointsMerchandise.setState(1); +// pointsMerchandise.setPayStatus(1); +//// if (merchandise.getUseScope() == 3){ +//// if (exchangeType.getGoodsType() == 2){ +//// CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId()); +//// pointsMerchandise.setStoreId(coursePackage.getStoreId()); +//// }else { +//// pointsMerchandise.setStoreId(exchangeType.getStoreId()); +//// } +//// } +//// pointsMerchandise.setCode(code); +// returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise); + + return ResultUtil.success(returnId); } @@ -1250,6 +1269,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId()); + if (ToolUtil.isEmpty(merchandise)){ return ResultUtil.error("商品不存在"); } @@ -1307,13 +1327,16 @@ } } pointsMerchandise.setCode(code); - mcClient.saveDetailsUserPointMercase(pointsMerchandise); + returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise); } switch (exchangeType.getExchangeType()){ // 积分 case 1: - boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); + boolean b =true; + for (int i = 0; i < goodsNums; i++) { + b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); + } if (b){ switch (exchangeType.getGoodsType()){ case 2: @@ -1367,7 +1390,11 @@ break; case 2: // 积分+现金 - boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); + boolean dealt =true; + for (int i = 0; i < goodsNums; i++) { + dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); + } + switch (exchangeType.getPayType()) { case 1: try { @@ -1381,9 +1408,9 @@ } case 2: if (merchandise.getType() == 2) { - return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code); + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code,returnId); } else { - return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code); + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code,returnId); } default: break; @@ -1403,9 +1430,9 @@ } case 2: if (merchandise.getType() == 2) { - return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code); + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code,returnId); } else { - return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code); + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code,returnId); } default: break; @@ -1415,8 +1442,8 @@ break; } - - return ResultUtil.success(); + returnModel.setReturnId(returnId); + return ResultUtil.success(returnModel); }catch (Exception e){ e.printStackTrace(); return null; @@ -1447,9 +1474,9 @@ } } - private ResultUtil AlipayPayment(BigDecimal cash, String code) { + private ResultUtil AlipayPayment(BigDecimal cash, String code,Long returnId) { System.out.println("金额:"+cash); - ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, cash.toString(), + ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", String.valueOf(returnId), code, cash.toString(), "/base/pointMer/exchangeGoodPaymentAliCallback"); if(alipay.getCode() == 200){ new Thread(new Runnable() { diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java index 22d3b45..163f753 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java @@ -98,7 +98,7 @@ if (null != recordId){ details = details.stream() .filter(obj -> obj instanceof IntegralsData) - .filter(obj -> Objects.equals(obj.getDetailsType(), recordId)) + .filter(obj -> !Objects.equals(obj.getDetailsType(), recordId)) .collect(Collectors.toList()); } } @@ -175,6 +175,8 @@ public List<ExchangeDetailsResponse> queryExchangeGoodsdetails1(Integer userIdFormRedis, Integer useType, Integer goodType, Integer page, Integer size) { List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>(); ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis); + + if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){ detailsResponses = integralExchangeDetails.getDetailsResponses(); if (ToolUtil.isNotEmpty(useType)){ @@ -189,6 +191,9 @@ } } + + + int totalItems = detailsResponses.size(); int startIndex = (page - 1) * size; int endIndex = Math.min(startIndex + size, totalItems); diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java index e21ff45..ef7e699 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java +++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java @@ -76,7 +76,7 @@ private String key = "";//微信商户号 - private String callbackPath = "";//支付回调网关地址 + private String callbackPath = "8.137.22.229:56666/account";//支付回调网关地址 private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径 @@ -204,6 +204,7 @@ AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); Map<String, String> map = new HashMap<>(); map.put("orderString", response.getBody()); + map.put("returnId",passbackParams); System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 return ResultUtil.success(map); } catch (AlipayApiException e) { diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java index f531216..cbdcf9a 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java @@ -100,7 +100,7 @@ @ResponseBody @PostMapping("/coupon/queryCouponByUser/{userId}") public List<Integer> queryCouponByUser(@PathVariable("userId") Integer userId){ - List<Coupon> list = couponService.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2) + List<Coupon> list = couponService.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2).eq("userPopulation",2) .le("startTime", new Date()).ge("endTime", new Date()).eq("auditStatus", 2) .eq("state", 1)); @@ -202,18 +202,18 @@ @PostMapping("/base/coupon/getAllCoupons") public List<Coupon> getAllCoupons(@RequestBody CommodityRequest request){ List<Coupon> couponList = new ArrayList<>(); -// String provinceCode = ""; -// String cityCode = ""; -// if (ToolUtil.isEmpty(request.getLat()) && ToolUtil.isEmpty(request.getLon())){ -// return couponList; -// } -// try { -// Map<String, String> geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat()); -// provinceCode = geocode.get("provinceCode"); -// cityCode = geocode.get("cityCode"); -// }catch (Exception e){ -// e.printStackTrace(); -// } + String provinceCode = ""; + String cityCode = ""; + if (ToolUtil.isEmpty(request.getLat()) && ToolUtil.isEmpty(request.getLon())){ + return couponList; + } + try { + Map<String, String> geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat()); + provinceCode = geocode.get("provinceCode"); + cityCode = geocode.get("cityCode"); + }catch (Exception e){ + e.printStackTrace(); + } try { LocalDateTime currentDate = LocalDateTime.now(); @@ -223,24 +223,24 @@ .eq("status",1) .le("startTime", currentDate) .ge("endTime", currentDate)); -// if (couponList.size() > 0 ){ -// Iterator<Coupon> iterator = couponList.iterator(); -// while (iterator.hasNext()) { -// Coupon merchandise = iterator.next(); -// if (merchandise.getUseScope() == 2){ -// List<CouponCity> couponCities = cityService.list(new LambdaQueryWrapper<CouponCity>() -// .eq(CouponCity::getCouponId,merchandise.getId())); -// if (couponCities.size() > 0){ -// for (CouponCity couponCity : couponCities) { -// if (!Objects.equals(couponCity.getCityCode(), cityCode) && !Objects.equals(couponCity.getProvinceCode(), provinceCode)){ -// iterator.remove(); // 移除符合条件的商品 -// break; -// } -// } -// } -// } -// } -// } + if (couponList.size() > 0 ){ + Iterator<Coupon> iterator = couponList.iterator(); + while (iterator.hasNext()) { + Coupon merchandise = iterator.next(); + if (merchandise.getUseScope() == 2){ + List<CouponCity> couponCities = cityService.list(new LambdaQueryWrapper<CouponCity>() + .eq(CouponCity::getCouponId,merchandise.getId())); + if (couponCities.size() > 0){ + for (CouponCity couponCity : couponCities) { + if (!Objects.equals(couponCity.getCityCode(), cityCode) && !Objects.equals(couponCity.getProvinceCode(), provinceCode)){ + iterator.remove(); // 移除符合条件的商品 + break; + } + } + } + } + } + } return couponList; } catch (Exception e) { throw new RuntimeException(e); 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 bc73622..764abaf 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 @@ -739,6 +739,10 @@ } + @Autowired + private ICouponService couponService; + + @ResponseBody @PostMapping("/base/pointMerchars/getDetailsOfExchange") public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId){ @@ -747,18 +751,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())); @@ -828,9 +843,10 @@ // Print the result if (isSameDate) { - detailsResponse.setUseStatus(3); + } else { System.out.println("The two dates do not have the same date."); + detailsResponse.setUseStatus(3); } @@ -890,6 +906,38 @@ } 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; } @@ -937,13 +985,13 @@ if (pmdsServiceById.getCardType()==1){ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); - calendar.setTime(pmdsServiceById.getInsertTime()); + calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 1); Date end = calendar.getTime(); - String startDate = dateFormat.format(pmdsServiceById.getInsertTime()); + String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); - pmdsServiceById.setStartTime(pmdsServiceById.getInsertTime()); - pmdsServiceById.setEndTime(pmdsServiceById.getInsertTime()); + detailsVo.setStartTime(startDate); + detailsVo.setEndTime(startDate); Date now = new Date(); Calendar cal1 = Calendar.getInstance(); @@ -959,19 +1007,19 @@ // Print the result if (isSameDate) { - detailsVo.setUseType(3); } 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(pmdsServiceById.getInsertTime()); + calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 31); Date end = calendar.getTime(); - String startDate = dateFormat.format(pmdsServiceById.getInsertTime()); + String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(endDate); @@ -984,10 +1032,10 @@ } else if (pmdsServiceById.getCardType()==3) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); - calendar.setTime(pmdsServiceById.getInsertTime()); + calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 93); Date end = calendar.getTime(); - String startDate = dateFormat.format(pmdsServiceById.getInsertTime()); + String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(endDate); @@ -1000,10 +1048,10 @@ } else if (pmdsServiceById.getCardType()==4) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); - calendar.setTime(pmdsServiceById.getInsertTime()); + calendar.setTime(byId.getInsertTime()); calendar.add(Calendar.DAY_OF_MONTH, 372); Date end = calendar.getTime(); - String startDate = dateFormat.format(pmdsServiceById.getInsertTime()); + String startDate = dateFormat.format(byId.getInsertTime()); String endDate = dateFormat.format(end); detailsVo.setStartTime(startDate); detailsVo.setEndTime(endDate); @@ -1060,9 +1108,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 { @@ -1086,6 +1137,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; } @@ -1098,9 +1210,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(); } @@ -1174,6 +1287,15 @@ } + //拿到积分商品现金的消费记录 + @ResponseBody + @PostMapping("/base/pointMerchars/getConsumeDetails") + public List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo){ + return upmseService.getConsumeDetails(requestVo); + + + + } public int dealTimeStatus(String startTime, String endTime){ diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java index bd829f2..da55753 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java @@ -171,19 +171,29 @@ @PostMapping("/userCoupon/queryUserCouponById") public UserCoupon queryUserCouponById(@RequestBody QueryUserCouponByIdAndUserId userCouponByIdAndUserId){ try { - UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getCouponId,userCouponByIdAndUserId.getId()).eq(UserCoupon::getUserId,userCouponByIdAndUserId.getUserId())); + UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getId,userCouponByIdAndUserId.getId()).eq(UserCoupon::getUserId,userCouponByIdAndUserId.getUserId())); return userCoupon; }catch (Exception e){ e.printStackTrace(); return null; } } - + @Autowired + private ICouponService couponService; @PostMapping("/userCoupon/sendUserCoupon") public void sendUserCoupon(@RequestBody SendCouponReq sendCouponReq){ try { String couponIds = sendCouponReq.getCouponIds(); for (String s : couponIds.split(",")) { + Coupon coupon = couponService.getById(s); + //查询该优惠卷的数量够不够 + List<Integer> queryIds = new ArrayList<>(); + queryIds.add(coupon.getId()); + int counts = userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", s)); + if (coupon.getQuantityIssued()<=counts){ + continue; + } + UserCoupon userCoupon = new UserCoupon(); userCoupon.setCouponId(Integer.valueOf(s)); userCoupon.setUserId(sendCouponReq.getUserId()); @@ -205,6 +215,7 @@ @PostMapping("/userCoupon/updateUserCoupon") public void updateUserCoupon(@RequestBody UserCoupon userCoupon){ try { + userCoupon.setUserId(null); userCouponService.updateById(userCoupon); }catch (Exception e){ e.printStackTrace(); diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/BillingDataRequestVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BillingDataRequestVo.java new file mode 100644 index 0000000..f426cd3 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/BillingDataRequestVo.java @@ -0,0 +1,21 @@ +package com.dsh.activity.entity; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class BillingDataRequestVo { + + @ApiModelProperty(value = "开始时间") + private String monthStart = null; + + @ApiModelProperty(value = "结束时间时间") + private String monthEnd = null; + + @ApiModelProperty(value = "用户id") + private Integer appUserId; + +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java new file mode 100644 index 0000000..96bc0bd --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/ConsumeDetail.java @@ -0,0 +1,22 @@ +package com.dsh.activity.entity; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ConsumeDetail { + + @ApiModelProperty(value = "名称") + private String consumeName; + + @ApiModelProperty(value = "时间") + private String consumeTime; + + @ApiModelProperty(value = "金额 例如 -90 ") + private String consumeAmount; + + @ApiModelProperty(value = "1充值 2扣除") + private Integer type; + +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java index 605dc03..45cc535 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dsh.activity.entity.BillingDataRequestVo; +import com.dsh.activity.entity.ConsumeDetail; import com.dsh.activity.entity.UserPointsMerchandise; import com.dsh.activity.model.PointMerchandiseIncomeVo; import org.apache.ibatis.annotations.Param; @@ -24,4 +26,6 @@ Object changeState(List<Integer> ids, Integer state); + + List<ConsumeDetail> getConsumeDetails(BillingDataRequestVo requestVo); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java index 76b505b..ab0122f 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java @@ -1,6 +1,8 @@ package com.dsh.activity.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.activity.entity.BillingDataRequestVo; +import com.dsh.activity.entity.ConsumeDetail; import com.dsh.activity.entity.CourseChangeStateDTO; import com.dsh.activity.entity.UserPointsMerchandise; import com.dsh.activity.model.PointMerchandiseIncomeVo; @@ -22,4 +24,6 @@ List<PointMerchandiseIncomeVo> getAmount(); Object changeState(CourseChangeStateDTO dto); + + List<ConsumeDetail> getConsumeDetails(BillingDataRequestVo requestVo); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java index c998d48..43c1b28 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java @@ -23,6 +23,7 @@ import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -64,10 +65,15 @@ if (students.size() > 0) { userPopulation.add(3);//已有学员用户 } - List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", distributionMethod) - .in("userPopulation", userPopulation) - .eq("auditStatus", 2).eq("status", 2).eq("state", 1) - .last(" and now() between startTime and endTime order by insertTime desc")); +// List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", distributionMethod) +// .in("userPopulation", userPopulation) +// .eq("auditStatus", 2).eq("status", 2).eq("state", 1) +// .last(" and now() between startTime and endTime order by insertTime desc")); + + + List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2).eq("userPopulation",2) + .le("startTime", new Date()).ge("endTime", new Date()).eq("auditStatus", 2) + .eq("state", 1)); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (Coupon coupon : list) { CouponListVo couponListVo = new CouponListVo(); diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java index 150a419..1300c06 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java @@ -1,6 +1,8 @@ package com.dsh.activity.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.activity.entity.BillingDataRequestVo; +import com.dsh.activity.entity.ConsumeDetail; import com.dsh.activity.entity.CourseChangeStateDTO; import com.dsh.activity.entity.UserPointsMerchandise; import com.dsh.activity.mapper.UserPointsMerchandiseMapper; @@ -35,4 +37,9 @@ List<Integer> ids = dto.getIds(); return this.baseMapper.changeState(ids,dto.getState()); } + + @Override + public List<ConsumeDetail> getConsumeDetails(BillingDataRequestVo requestVo) { + return this.baseMapper.getConsumeDetails(requestVo); + } } diff --git a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml index 5db81fc..bc20cc5 100644 --- a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml +++ b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml @@ -24,4 +24,29 @@ left join t_points_merchandise t2 on t1.pointsMerchandiseId = t2.id where t1.payStatus =2 </select> + <select id="getConsumeDetails" resultType="com.dsh.activity.entity.ConsumeDetail"> + + SELECT + CASE tm.type + WHEN 1 THEN '实体购买' + WHEN 2 THEN '课包购买' + WHEN 3 THEN '门票购买' + WHEN 4 THEN '优惠券购买' + END AS consumeName ,DATE_FORMAT(pm.insertTime, '%m-%d %H:%i')as `consumeTime`,2 as type,CONCAT('-',tm.cash) as consumeAmount + FROM t_user_points_merchandise pm + LEFT JOIN t_points_merchandise tm ON tm.id = pm.pointsMerchandiseId + WHERE pm.pointsMerchandiseId IN( + SELECT id + FROM t_points_merchandise WHERE redemptionMethod IN (2,3) + + ) + <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd"> + and DATE_FORMAT(pm.insertTime, '%Y-%m-%d %H:%i:%s') between #{monthStart} and #{monthEnd} + </if> + <if test="null != appUserId and '' != appUserId "> + and pm.userId = #{appUserId} + </if> + + + </select> </mapper> diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/model/PaymentDeductionClassHour.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/model/PaymentDeductionClassHour.java index e8dc41d..c2c3dc1 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/model/PaymentDeductionClassHour.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/model/PaymentDeductionClassHour.java @@ -24,4 +24,5 @@ * 用于支付的课程 */ private Long courseId; + private Integer uid; } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java index d8fa0ea..ea7864c 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java @@ -161,8 +161,8 @@ competitionInfo.setStartTime(sdf.format(competition.getStartTime())); competitionInfo.setEndTime(sdf.format(competition.getEndTime())); competitionInfo.setAge(competition.getStartAge() + "-" + competition.getEndAge()); - competitionInfo.setProvince(competition.getEntryProvince()); - competitionInfo.setCity(competition.getEntryCity()); + competitionInfo.setProvince(competition.getProvince()); + competitionInfo.setCity(competition.getCity()); String str = competition.getAddress(); str = str.substring(str.indexOf("省") + 1); @@ -304,6 +304,7 @@ paymentDeductionClassHour.setClassHour(competition.getClassPrice()); paymentDeductionClassHour.setCode(code); paymentDeductionClassHour.setCourseId(paymentCompetitionVo.getCoursePaymentId()); + paymentDeductionClassHour.setUid(uid); coursePackagePaymentClient.paymentDeductionClassHour(paymentDeductionClassHour); } paymentCompetition = paymentCompetitionService.getById(paymentCompetition.getId()); diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java index df01a7d..86c427a 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.entity.*; +import com.dsh.course.entity.dto.SelectDto; import com.dsh.course.feignclient.model.ExerciseVideo; import com.dsh.course.model.*; import com.dsh.course.model.dto.CourseChangeStateDTO; @@ -509,11 +510,15 @@ @Autowired private ICoursePackagePaymentConfigService packagePaymentConfigService; @PostMapping("/course/times") - public List<Integer> times( @RequestBody Integer oneId){ + public List<SelectDto> times(@RequestBody Integer oneId){ List<CoursePackagePaymentConfig> list = packagePaymentConfigService.list(new QueryWrapper<CoursePackagePaymentConfig>().eq("coursePackageId",oneId)); - List<Integer> integerList = new ArrayList<>(); + List<SelectDto> integerList = new ArrayList<>(); for (CoursePackagePaymentConfig coursePackagePaymentConfig : list) { - integerList.add(coursePackagePaymentConfig.getClassHours()); +// integerList.add(coursePackagePaymentConfig.getClassHours()); + SelectDto selectDto = new SelectDto(); + selectDto.setId(coursePackagePaymentConfig.getId()); + selectDto.setValue(String.valueOf(coursePackagePaymentConfig.getClassHours())); + integerList.add(selectDto); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java index 577aa91..9e1ff4b 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java @@ -185,11 +185,11 @@ @ApiImplicitParam(name = "lat",value = "纬度",dataType = "String"), }) public ResultUtil<ExchangeCoursePackageResponse> discountCourseDatas(Integer coursePackageDiscountId,String lon,String lat){ - try { +// try { return ResultUtil.success(tcpdService.getWeekFreeCourseDetails(coursePackageDiscountId,lat,lon)); - }catch (Exception e){ - return ResultUtil.runErr(); - } +// }catch (Exception e){ +// return ResultUtil.runErr(); +// } } diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index 9761b5d..8834457 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -54,10 +54,7 @@ import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; +import java.time.*; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -438,6 +435,9 @@ if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); + if (tCoursePackage.getType()==3){ + continue; + } StuCourseResp resp = new StuCourseResp(); resp.setCourseId(tCoursePackage.getId()); resp.setId(tCoursePackagePayment.getId()); @@ -1091,6 +1091,20 @@ } + public static Date[] generateDateArray(int numDays,Date date) { +// LocalDate tomorrow = LocalDate.now().plusDays(1); + LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + + Date[] dates = new Date[numDays]; + + for (int i = 0; i < numDays; i++) { + LocalDate currentDate = tomorrow.plusDays(i); + dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + return dates; + } + @Autowired private TCoursePackageService packageService; @Autowired @@ -1104,18 +1118,23 @@ public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour){ try { // 2.0 用id进行查询 - List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2) + TCoursePackagePayment coursePackagePayment= packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2) .eq("status", 1).eq("state", 1).gt("laveClassHours", 0)); Integer classHour = paymentDeductionClassHour.getClassHour(); - for (TCoursePackagePayment coursePackagePayment : list) { +// for (TCoursePackagePayment coursePackagePayment : list) { if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) { coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour); coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); - coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); - coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackagePayment.getCoursePackageId())); +// coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); + + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); @@ -1126,103 +1145,179 @@ String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); + List<TCoursePackagePayment> pays = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); + + + for (TCoursePackagePayment pay : pays) { + + + List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId())); + List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + + CoursePackageScheduling cs = null; + if (collect1.size()>0) { + cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1")); + + } +// +// Calendar calendar = Calendar.getInstance(); +// Date currentDate = calendar.getTime(); +// calendar.add(Calendar.DAY_OF_MONTH, -1); +// Date today = calendar.getTime(); + Date today = new Date(); + + //判断最后一天是否超过当前日期 + if (cs==null||cs.getClassDate().before(new Date())){ + }else { + today = cs.getClassDate(); + } + + Integer laveClassHours = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = laveClassHours/codeTime; + + int count = 0; + + String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - // 本周周几 - int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date()) - 1; - for (Integer integer : week) { - if (integer < i) { - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE, 7 - (i - integer)); - Date time = instance.getTime(); + Date[] dates = generateDateArray(14,today); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackagePayment.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - - } - - } else if (integer > i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE, integer - i); - Date time1 = instance.getTime(); - List<Date> list6 = new ArrayList<>(); - list6.add(time1); - instance.add(Calendar.DATE, 7); - Date time2 = instance.getTime(); - list6.add(time2); - for (Date time : list6) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackagePayment.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); + if (count==can){ + break; } - } - - } else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE, 7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); coursePackageScheduling.setEndDate(parse1); coursePackageScheduling.setStatus(1); coursePackageSchedulingService.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackagePayment.getId()); + student1.setAppUserId(pay.getAppUserId()); + student1.setStudentId(pay.getStudentId()); + student1.setCoursePackageId(pay.getCoursePackageId()); + student1.setCoursePackagePaymentId(pay.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); studentService.save(student1); + count++; } } } + + } + + + + + +// // 本周周几 +// int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date()) - 1; +// for (Integer integer : week) { +// if (integer < i) { +// // 找下一周的时间 +// Calendar instance = Calendar.getInstance(); +// instance.add(Calendar.DATE, 7 - (i - integer)); +// Date time = instance.getTime(); +// +// for (int i1 = 0; i1 < split.length; i1++) { +// +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(student.getAppUserId()); +// student1.setStudentId(student.getId()); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(coursePackagePayment.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// +// } +// +// } else if (integer > i) { +// Calendar instance = Calendar.getInstance(); +// instance.add(Calendar.DATE, integer - i); +// Date time1 = instance.getTime(); +// List<Date> list6 = new ArrayList<>(); +// list6.add(time1); +// instance.add(Calendar.DATE, 7); +// Date time2 = instance.getTime(); +// list6.add(time2); +// for (Date time : list6) { +// for (int i1 = 0; i1 < split.length; i1++) { +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(student.getAppUserId()); +// student1.setStudentId(student.getId()); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(coursePackagePayment.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// } +// } +// +// } else { +// Calendar instance = Calendar.getInstance(); +// instance.add(Calendar.DATE, 7); +// Date time = instance.getTime(); +// +// for (int i1 = 0; i1 < split.length; i1++) { +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(student.getAppUserId()); +// student1.setStudentId(student.getId()); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(coursePackagePayment.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// } +// } +// } // 2.0 少于3课时 推送 @@ -1250,7 +1345,7 @@ cancelledClasses.setCancelledClassesNumber(classHour); cancelledClasses.setInsertTime(new Date()); cancelledClassesService.save(cancelledClasses); - break; + }else{ CancelledClasses cancelledClasses = new CancelledClasses(); cancelledClasses.setType(2); @@ -1266,7 +1361,7 @@ classHour -= cancelledClasses.getCancelledClassesNumber(); } - } +// } }catch (Exception e){ @@ -1713,13 +1808,18 @@ in(CoursePackageStudent::getCoursePackagePaymentId, ids) ); - detailsListVo.setType(1); if(list4.size()>0){ Integer signInOrNot = list4.get(0).getSignInOrNot(); + detailsListVo.setType(1); + if(signInOrNot==2){ detailsListVo.setType(3); } detailsListVo.setIsType(list4.get(0).getType()); + + }else { + detailsListVo.setType(2); + } } else { diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PaymentDeductionClassHour.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PaymentDeductionClassHour.java index 0953dd1..29a4176 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PaymentDeductionClassHour.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/PaymentDeductionClassHour.java @@ -24,4 +24,5 @@ * 用于支付的课程 */ private Long courseId; + private Integer uid; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java index 877a839..8d82530 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java @@ -36,5 +36,7 @@ @ApiModelProperty(value = "1常规 2假期 3体验") private Integer type; + @ApiModelProperty(value = "假期课时间段") + private String time; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java index e294b35..a8a1c42 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java @@ -319,7 +319,7 @@ JSONArray jsonArray = JSON.parseArray(coursePackageDiscount.getContent()); JSONObject jsonObject = jsonArray.getJSONObject(0); CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(coursePackageDiscount.getCoursePackagePaymentConfigId()); - if (coursePackageDiscount.getType() == 3){ + if (coursePackageDiscount.getType() == 3 ||coursePackageDiscount.getType() == 4){ Double cashPayment = jsonObject.getDouble("cashPayment"); packageResponse.setClassHours(paymentConfig.getClassHours()); packageResponse.setCostPrice(paymentConfig.getCashPayment()); diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 1369c02..96e9b12 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -389,6 +389,9 @@ registerCourseVo.setCourseTime(new SimpleDateFormat("yyyy-MM-dd").format(tCoursePackagePayment.getInsertTime())); Coach coach = coachClient.queryCoachById(coursePackage.getCoachId()); registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName()); + if (coursePackage.getType()==2) { + registerCourseVo.setTime(new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getEndTime())); + } List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() .eq("coursePackageId",coursePackage.getId()) .eq("studentId",appUserId )); @@ -841,8 +844,10 @@ }else if(coursePackageStudent.getSignInOrNot()==2){ recordVo.setStatus(5); }else { +// CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() +// .eq("coursePackageId",coursePackageStudent.getCoursePackageId())); CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() - .eq("coursePackageId",coursePackageStudent.getCoursePackageId() )); + .eq("coursePackageSchedulingId",byId.getId())); if (ToolUtil.isNotEmpty(cancelledClasses)){ recordVo.setStatus(3); // 消课 到课状态0 旷课 diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 80c060c..33a6525 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -42,6 +42,8 @@ import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -122,8 +124,11 @@ Map<String, String> geocode = gdMapGeocodingUtil.geocode(coursePackageList.getLon(), coursePackageList.getLat()); String provinceCode = geocode.get("provinceCode"); String cityCode = geocode.get("cityCode"); +// QueryWrapper<TCoursePackage> wrapper = new QueryWrapper<TCoursePackage>().in("status", Arrays.asList(1, 2)) +// .eq("auditStatus", 2).eq("state", 1).eq("provinceCode", provinceCode).eq("cityCode", cityCode); + QueryWrapper<TCoursePackage> wrapper = new QueryWrapper<TCoursePackage>().in("status", Arrays.asList(1, 2)) - .eq("auditStatus", 2).eq("state", 1).eq("provinceCode", provinceCode).eq("cityCode", cityCode); + .eq("auditStatus", 2).eq("state", 1); if(null != coursePackageList.getCoursePackageTypeId()){ wrapper.eq("coursePackageTypeId", coursePackageList.getCoursePackageTypeId()); } @@ -141,7 +146,7 @@ wrapper.or().in("storeId", collect); } } - List<TCoursePackage> list = this.list(wrapper.last(" order by sort, insertTime desc")); + List<TCoursePackage> list = this.list(wrapper.last(" order by sort desc, insertTime desc")); List<CoursePackageListVo> listVos = new ArrayList<>(); for (TCoursePackage coursePackage : list) { Store store = storeClient.queryStoreById(coursePackage.getStoreId()); @@ -707,6 +712,15 @@ public ResultUtil paymentCourse(Integer uid, PaymentCourseVo paymentCourseVo) throws Exception { AppUser appUser = appUserClient.queryAppUser(uid); CoursePackageInfo coursePackageInfo = queryCourseInfo(uid, paymentCourseVo.getId(), null, null); + //校验是否已经报满 + Integer integer = coursePackagePaymentService.queryCountNumber(paymentCourseVo.getId()); + TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId()); + if (integer>=course.getMaxSubscribeNumber()){ + return ResultUtil.error("报名失败,已达最大报名人数"); + } + + + List<CoursePackagePaymentConfigVo> list = coursePackageInfo.getList(); String[] students = paymentCourseVo.getStudentIds().split(";"); @@ -996,16 +1010,14 @@ coursePackagePaymentService.updateBatchById(list); System.out.println("===========到达支付"); // 2.0 + String[] coupons = coursePackagePaymentConfig.getCouponIds().split(","); + + + userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds())); moneyOut(tradeNo,tradeNo); - - - - - - @@ -1132,6 +1144,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); for (String s : split) { + TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); coursePackagePayment.setCode(code); coursePackagePayment.setAppUserId(appUser.getId()); @@ -1156,7 +1169,7 @@ if(student!=null){ sId=student.getId(); } - addPackageStudent(paymentCourseVo.getId(),appUser.getId(),sId,coursePackagePayment.getId()); + addPackageStudent(paymentCourseVo.getId(),appUser.getId(), Integer.valueOf(s),coursePackagePayment.getId()); } Integer playPaiCoins = appUser.getPlayPaiCoins(); @@ -1173,6 +1186,9 @@ } + + + private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId) throws ParseException { // 课包 TCoursePackage tCoursePackage = this.baseMapper.selectById(courseId); @@ -1184,26 +1200,74 @@ String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + //查出当前用户当前学员当前课包最后一天的排课数据 + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + + CoursePackageScheduling cs = null; + if (collect.size()>0) { + cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect).orderByDesc("classDate").last("limit 1")); + + } + int i = -1; + +// Calendar calendar = Calendar.getInstance(); +// Date currentDate = calendar.getTime(); +// calendar.add(Calendar.DAY_OF_MONTH, -1); +// Date today = calendar.getTime(); + Date today = new Date(); + + //判断最后一天是否超过当前日期 + if (cs==null||cs.getClassDate().before(new Date())){ + i = DateUtil.dayOfWeek(new Date())-1; + }else { + i = DateUtil.dayOfWeek(cs.getClassDate())-1; + today = cs.getClassDate(); + } + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + Integer laveClassHours = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + + + int count = 0; + // 本周周几 - int i = DateUtil.dayOfWeek(new Date())-1; - for (Integer integer : week) { - if(integer<i){ - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7-(i-integer)); - Date time = instance.getTime(); +// int i = DateUtil.dayOfWeek(new Date())-1; + Date[] dates = generateDateArray(14,today); + if (tCoursePackage.getType()==1){ + can = laveClassHours/codeTime; + } + if (tCoursePackage.getType()==2){ + Date startDate = tCoursePackage.getStartTime(); + Date endDate = tCoursePackage.getEndTime(); + dates = generateDateArray1(startDate, endDate); + can = 999; + } + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - + if (count==can){ + break; + } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(userId); student1.setStudentId(sId); @@ -1214,75 +1278,151 @@ student1.setReservationStatus(1); student1.setInsertTime(new Date()); cpsMapper.insert(student1); - - } - - }else if(integer>i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,integer-i); - Date time1 = instance.getTime(); - List<Date> list = new ArrayList<>(); - list.add(time1); - instance.add(Calendar.DATE,7); - Date time2 = instance.getTime(); - list.add(time2); - for (Date time : list) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(userId); - student1.setStudentId(sId); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(paymentId); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); - } - } - - }else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(userId); - student1.setStudentId(sId); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(paymentId); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); + count++; } } } + + + + +// for (Integer integer : week) { +// if (count==can){ +// break; +// } +// if(integer<i){ +// // 找下一周的时间 +// Calendar instance = Calendar.getInstance(); +// if (cs==null||cs.getClassDate().before(new Date())){ +// instance = Calendar.getInstance(); +// }else { +//// i = DateUtil.dayOfWeek(cs.getClassDate())-1; +// instance.setTime(cs.getClassDate()); +// } +// instance.add(Calendar.DATE,7-(i-integer)); +// Date time = instance.getTime(); +// +// for (int i1 = 0; i1 < split.length; i1++) { +// if (count==can){ +// break; +// } +// +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(userId); +// student1.setStudentId(sId); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(paymentId); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// cpsMapper.insert(student1); +// count++; +// } +// +// +// }else if(integer>i) { +// if (count==can){ +// break; +// } +// +//// Calendar instance = Calendar.getInstance(); +// +// Calendar instance = Calendar.getInstance(); +// if (cs==null||cs.getClassDate().before(new Date())){ +// instance = Calendar.getInstance(); +// }else { +//// i = DateUtil.dayOfWeek(cs.getClassDate())-1; +// instance.setTime(cs.getClassDate()); +// } +// instance.add(Calendar.DATE,integer-i); +// Date time1 = instance.getTime(); +// List<Date> list = new ArrayList<>(); +// list.add(time1); +// instance.add(Calendar.DATE,7); +// Date time2 = instance.getTime(); +// list.add(time2); +// for (Date time : list) { +// for (int i1 = 0; i1 < split.length; i1++) { +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(userId); +// student1.setStudentId(sId); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(paymentId); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// cpsMapper.insert(student1); +// count++; +// +// } +// } +// +// }else { +//// Calendar instance = Calendar.getInstance(); +// Calendar instance = Calendar.getInstance(); +// if (cs==null||cs.getClassDate().before(new Date())){ +// instance = Calendar.getInstance(); +// }else { +//// i = DateUtil.dayOfWeek(cs.getClassDate())-1; +// instance.setTime(cs.getClassDate()); +// } +// instance.add(Calendar.DATE,7); +// Date time = instance.getTime(); +// +// for (int i1 = 0; i1 < split.length; i1++) { +// if (count==can){ +// break; +// } +// +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(userId); +// student1.setStudentId(sId); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(paymentId); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// cpsMapper.insert(student1); +// count++; +// +// } +// } +// } // 2.0 TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); tCourseInfoRecord.setUserId(userId); tCourseInfoRecord.setCourseId(courseId); - tCourseInfoRecord.setName("报名假期班"); + tCourseInfoRecord.setName("报名运动营"); tCourseInfoRecord.setNum(tCoursePackage.getNeedNum()); tCourseInfoRecord.setTime(new Date()); tCourseInfoRecord.setType(2); @@ -1290,6 +1430,28 @@ } + + + public static Date[] generateDateArray1(Date startDate, Date endDate) { + List<Date> dateList = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startDate); + + while (!calendar.getTime().after(endDate)) { + Date currentDate = calendar.getTime(); + dateList.add(currentDate); + calendar.add(Calendar.DAY_OF_MONTH, 1); + } + + return dateList.toArray(new Date[0]); + } + + public static Date createDate1(int year, int month, int day) { + Calendar calendar = Calendar.getInstance(); + calendar.set(year, month - 1, day); + return calendar.getTime(); + } + private List<Integer> week(String week){ String[] split = week.split(";"); ArrayList<Integer> integers = new ArrayList<>(); @@ -1322,6 +1484,20 @@ } + + public static Date[] generateDateArray(int numDays,Date date) { +// LocalDate tomorrow = LocalDate.now().plusDays(1); + LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + + Date[] dates = new Date[numDays]; + + for (int i = 0; i < numDays; i++) { + LocalDate currentDate = tomorrow.plusDays(i); + dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + return dates; + } /** * 获取课包管理列表数据 * @param queryCoursePackageLists diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml index 28720c4..8d36281 100644 --- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml @@ -38,7 +38,7 @@ SELECT count( 1 ) AS num FROM ( - SELECT appUserId FROM t_course_package_payment WHERE payStatus = 2 AND state = 1 and coursePackageId = #{coursePackageId} GROUP BY appUserId + SELECT studentId FROM t_course_package_payment WHERE payStatus = 2 AND state = 1 and coursePackageId = #{coursePackageId} GROUP BY studentId ) AS aa </select> @@ -52,7 +52,7 @@ <select id="billingDataRequestVo" resultType="com.dsh.course.model.BillingRequest"> SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`,IFNULL(playPaiCoin, cashPayment) AS amount from t_course_package_payment - where payStatus = 2 and state = 1 and payType = 3 + where payStatus = 2 and state = 1 and payType in (1,2) <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd"> and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i:%s') between #{monthStart} and #{monthEnd} </if> diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java index 196cfe0..edd2c1c 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java @@ -6,6 +6,7 @@ import com.dsh.course.model.AuditDiscount; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.model.dto.CoursePackage; +import com.dsh.guns.modular.system.model.dto.SelectDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -135,5 +136,5 @@ Boolean auditDiscount(AuditDiscount auditDiscount); @PostMapping("/course/times") - List<Integer> timeChange(@RequestBody Integer oneId); + List<SelectDto> timeChange(@RequestBody Integer oneId); } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java index 20c6822..d27750d 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java @@ -22,6 +22,7 @@ import com.dsh.guns.modular.system.model.TCourse; import com.dsh.guns.modular.system.model.TStore; import com.dsh.guns.modular.system.model.User; +import com.dsh.guns.modular.system.model.dto.SelectDto; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IStoreService; import org.springframework.beans.factory.annotation.Autowired; @@ -115,9 +116,8 @@ private CourseClient courseClient; @RequestMapping(value = "/timeChange") @ResponseBody - public List<Integer> timeChange(Integer oneId) { - - List<Integer> integerList = courseClient.timeChange(oneId); + public List<SelectDto> timeChange(Integer oneId) { + List<SelectDto> integerList = courseClient.timeChange(oneId); return integerList ; } diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js index e816df7..5267798 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js @@ -438,9 +438,12 @@ cityIds.push(inData); } } - cts = cityIds.join(','); } + cts = cityIds.join(','); + console.log("============到达城市"+cts) + } + } const commaSeparatedString = this.goodsPicArray.join(','); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js index a0ed109..f507aa8 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js @@ -1038,7 +1038,7 @@ var content='<option value="">Pilih franchisee Anda</option>'; } $.each(data, function(k,v) { - content += "<option value='"+v+"'>"+v+"</option>"; + content += "<option value='"+v.id+"'>"+v.value+"</option>"; }); $("#coursePackageConfigId").empty().append(content); } diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java index b7b81ff..baf6f33 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java @@ -28,6 +28,7 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @RestController @RequestMapping("/api/game") @@ -89,7 +90,10 @@ tGameConfigs = gameConfigService.listJs(id); } - return ResultUtil.success(tGameConfigs); + List<TGameConfig> filteredList = tGameConfigs.stream() + .filter(gameConfig -> !gameConfig.getImg().isEmpty()) + .collect(Collectors.toList()); + return ResultUtil.success(filteredList); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java index 8021355..f4c5a6c 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java +++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java @@ -351,7 +351,7 @@ if(reservationSite.getIsHalf()==2){ payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() ; }else { - payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() /2; + payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){ @@ -361,7 +361,7 @@ if(reservationSite.getIsHalf()==2){ payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() ; }else { - payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() / 2; + payMoney = new BigDecimal(site.getCashPriceOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } } @@ -387,7 +387,7 @@ JSONObject jsonObject = JSON.parseObject(coupon.getContent()); Double num1 = jsonObject.getDouble("conditionalAmount"); Double num2 = jsonObject.getDouble("deductionAmount"); - if(payMoney.compareTo(num1) <= 0){ + if(payMoney.compareTo(num1) < 0){ return ResultUtil.error("该优惠券无法使用"); } -- Gitblit v1.7.1