From 18b58aaf9bd99cadd0e7f80fe5d80586f2f4831a Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期五, 24 十一月 2023 18:32:43 +0800 Subject: [PATCH] 11.24 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 59 +++++++- cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 39 ++++- cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java | 2 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 14 + cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java | 1 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java | 4 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 4 cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java | 2 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java | 9 + 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 | 26 ++- cloud-server-activity/src/main/java/com/dsh/activity/entity/QueryStoreList.java | 22 +++ cloud-server-activity/src/main/java/com/dsh/activity/util/GeodesyUtil.java | 63 +++++++++ cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 7 + cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java | 6 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java | 31 +++ cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java | 8 + cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 56 +++++++ 19 files changed, 309 insertions(+), 52 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java index 9765201..8aad9b2 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java @@ -15,4 +15,13 @@ @ApiModelProperty(value = "课时有效期") private String periodOfValidity; + @ApiModelProperty(value = "总学时数") + private Integer totalNums; + + @ApiModelProperty(value = "已扣学时数") + private Integer deductedNums; + + @ApiModelProperty(value = "剩余学时数") + private Integer remainingNums; + } 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 07c168f..0100c27 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 @@ -140,12 +140,31 @@ List<SiteBooking> siteBookings = stClient.wanpaiGoldSiteBookingList(appUserId); if (siteBookings.size() > 0 ){ for (SiteBooking booking : siteBookings) { - RechargesDetail consumeDetail = new RechargesDetail(); - consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg()); - consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime())); - consumeDetail.setConsumeAmount("-" + booking.getPayMoney()); - consumeDetail.setRecordId(2); - details.add(consumeDetail); + if (booking.getStatus()!=5) { + RechargesDetail consumeDetail = new RechargesDetail(); + consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg()); + consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime())); + consumeDetail.setConsumeAmount("-" + booking.getPayMoney()); + consumeDetail.setRecordId(2); + details.add(consumeDetail); + }else { + RechargesDetail consumeDetail1 = new RechargesDetail(); + consumeDetail1.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg()); + consumeDetail1.setConsumeTime(simpleDateFormat.format(booking.getCancelTime())); + consumeDetail1.setConsumeAmount("+" + booking.getPayMoney()); + consumeDetail1.setRecordId(1); + details.add(consumeDetail1); + + RechargesDetail consumeDetail = new RechargesDetail(); + consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg()); + consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime())); + consumeDetail.setConsumeAmount("-" + booking.getPayMoney()); + consumeDetail.setRecordId(2); + details.add(consumeDetail); + + + + } } } // 4.智慧球场 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 45e369e..25f4833 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 @@ -933,7 +933,7 @@ RechargeCentVo vo = new RechargeCentVo(); Double money = (Double) stringObjectMap.get("money"); vo.setAmount(BigDecimal.valueOf(money) ); - if (tAppUser.getIsVip() == 1){ + if (tAppUser.getIsVip() == 1&&tAppUser.getVipEndTime().after(new Date())){ vo.setWpGold((Integer) stringObjectMap.get("MemberCoins")); }else { vo.setWpGold((Integer) stringObjectMap.get("usersCoins")); @@ -1585,7 +1585,7 @@ UserIntegralChanges userIntegralChanges = new UserIntegralChanges(); userIntegralChanges.setAppUserId(appUserId); userIntegralChanges.setOldIntegral(appUser.getIntegral()); - userIntegralChanges.setType(5); + userIntegralChanges.setType(2); appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points); userIntegralChanges.setNewIntegral(appUser.getIntegral()); userIntegralChanges.setInsertTime(new Date()); 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 3d82719..eb34857 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -24,10 +24,7 @@ import com.dsh.activity.model.response.GoodsInfoOneVo; import com.dsh.activity.model.response.StoreVos; import com.dsh.activity.service.*; -import com.dsh.activity.util.GDMapGeocodingUtil; -import com.dsh.activity.util.StrUtils; -import com.dsh.activity.util.TokenUtil; -import com.dsh.activity.util.ToolUtil; +import com.dsh.activity.util.*; import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -279,6 +276,11 @@ } + @Resource + private StoreClient storeClient; + + @Autowired + private PointsMerchandiseStoreService pointsMerchandiseStoreService; @ResponseBody @PostMapping("/base/pointMerchars/convertGoods") public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception { @@ -289,15 +291,36 @@ String cityCode = geocode.get("cityCode"); - List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode)); +// if(null != geocode) { + + List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode)); + Store s = null; + Double d = 0D; + for (Store store : stores) { + Map<String, Double> distance = GeodesyUtil.getDistance(location.getLon() + "," + location.getLat(), store.getLon() + "," + store.getLat()); + Double wgs84 = distance.get("WGS84"); + if (s == null || d > wgs84) { + s = store; + d = wgs84; + } + } +// } + +// List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode)); List<Integer> cIds = new ArrayList<>(); - for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) { - cIds.add(pointsMerchandiseCity.getPointsMerchandiseId()); +// for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) { +// cIds.add(pointsMerchandiseCity.getPointsMerchandiseId()); +// } + + List<PointsMerchandiseStore> storesids =pointsMerchandiseStoreService.list(new QueryWrapper<PointsMerchandiseStore>().eq("storeId",s.getId())); + for (PointsMerchandiseStore storesid : storesids) { + cIds.add(storesid.getPointsMerchandiseId()); } + // if (cIds.size()>0) { - List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>() + List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>().in("id",cIds) .eq("state", 1) .eq("shelves", 1) .gt("endTime", new Date()).last("ORDER BY sort desc,insertTime desc")); diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/QueryStoreList.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/QueryStoreList.java new file mode 100644 index 0000000..20f5a44 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/QueryStoreList.java @@ -0,0 +1,22 @@ +package com.dsh.activity.entity; + +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/6/28 9:08 + */ +@Data +public class QueryStoreList { + private String provinceCode; + + private String cityCode; + + public QueryStoreList() { + } + + public QueryStoreList(String provinceCode, String cityCode) { + this.provinceCode = provinceCode; + this.cityCode = cityCode; + } +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java index 27b574f..6f4560a 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java @@ -1,5 +1,6 @@ package com.dsh.activity.feignclient.other; +import com.dsh.activity.entity.QueryStoreList; import com.dsh.activity.feignclient.other.model.Store; import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse; import com.dsh.activity.feignclient.other.model.StoreInfoDto; @@ -14,6 +15,9 @@ /** * 获取根据门店id 获取店长信息 */ + @PostMapping("/store/queryStoreList") + List<Store> queryStoreList(QueryStoreList queryStoreList); + @RequestMapping(value = "/getStoreInfo") public StoreInfoDto getStoreInfo(@RequestBody Integer id); diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/util/GeodesyUtil.java b/cloud-server-activity/src/main/java/com/dsh/activity/util/GeodesyUtil.java new file mode 100644 index 0000000..b7cd3f7 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/util/GeodesyUtil.java @@ -0,0 +1,63 @@ +package com.dsh.activity.util; + +import org.gavaghan.geodesy.Ellipsoid; +import org.gavaghan.geodesy.GeodeticCalculator; +import org.gavaghan.geodesy.GeodeticCurve; +import org.gavaghan.geodesy.GlobalCoordinates; + +import java.util.HashMap; +import java.util.Map; + +/** + * 计算两个金纬度坐标之间的直线距离 + */ +public class GeodesyUtil { + + + /** + * 获取直线距离 + * @param fromLonLat + * @param toLonLat + * @return + */ + public static Map<String, Double> getDistance(String fromLonLat, String toLonLat){ + String[] from = fromLonLat.split(","); + String[] to = toLonLat.split(","); + GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(from[1]), Double.valueOf(from[0])); + GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(to[1]), Double.valueOf(to[0])); + double Sphere = getDistanceMeter(source, target, Ellipsoid.Sphere); + double WGS84 = getDistanceMeter(source, target, Ellipsoid.WGS84); + double GRS80 = getDistanceMeter(source, target, Ellipsoid.GRS80); + double GRS67 = getDistanceMeter(source, target, Ellipsoid.GRS67); + double ANS = getDistanceMeter(source, target, Ellipsoid.ANS); + double WGS72 = getDistanceMeter(source, target, Ellipsoid.WGS72); + double Clarke1858 = getDistanceMeter(source, target, Ellipsoid.Clarke1858); + double Clarke1880 = getDistanceMeter(source, target, Ellipsoid.Clarke1880); +// System.out.println("Sphere坐标系计算结果:"+Sphere + "米"); +// System.out.println("WGS84坐标系计算结果:"+WGS84 + "米"); +// System.out.println("GRS80坐标系计算结果:"+GRS80 + "米"); +// System.out.println("GRS67坐标系计算结果:"+GRS67 + "米"); +// System.out.println("ANS坐标系计算结果:"+ANS + "米"); +// System.out.println("WGS72坐标系计算结果:"+WGS72 + "米"); +// System.out.println("Clarke1858坐标系计算结果:"+Clarke1858 + "米"); +// System.out.println("Clarke1880坐标系计算结果:"+Clarke1880 + "米"); + Map<String, Double> map = new HashMap<>(); + map.put("Sphere", Sphere); + map.put("WGS84", WGS84); + map.put("GRS80", GRS80); + map.put("GRS67", GRS67); + map.put("ANS", ANS); + map.put("WGS72", WGS72); + map.put("Clarke1858", Clarke1858); + map.put("Clarke1880", Clarke1880); + return map; + } + + + private static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){ + //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离 + GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo); + return geoCurve.getEllipsoidalDistance(); + } + +} 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 e8a2393..e47ac6b 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 @@ -229,7 +229,19 @@ String[] split = paymentCompetitionVo.getIds().split(";"); Competition competition = this.getById(paymentCompetitionVo.getId()); - int competitionId = userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("competitionId", paymentCompetitionVo.getId())); + List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>().eq("competitionId", paymentCompetitionVo.getId()).ne("payStatus", 3)); + List<Long> pays = new ArrayList<>(); + for (PaymentCompetition paymentCompetition : list) { + pays.add(paymentCompetition.getId()); + } + + int competitionId = 0; + if (!pays.isEmpty()) { + competitionId = userCompetitionService.count(new QueryWrapper<UserCompetition>().in("paymentCompetitionId", pays)); + } + + +// int competitionId = userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("competitionId", paymentCompetitionVo.getId())); if ((competitionId+split.length)>competition.getApplicantsNumber()){ return ResultUtil.error("报名人数超过最大限制"); } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java index 857eda0..d8c5a39 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java @@ -272,7 +272,7 @@ paymentCompetition.setAppUserId(null); this.updateById(paymentCompetition); - competition.setApplicantsNumber(competition.getApplicantsNumber() - 1); +// competition.setApplicantsNumber(competition.getApplicantsNumber() - 1); competitionService.updateById(competition); } if(paymentCompetition.getPayType() == 3){//玩湃币支付 @@ -286,7 +286,7 @@ paymentCompetition.setAppUserId(null); this.updateById(paymentCompetition); - competition.setApplicantsNumber(competition.getApplicantsNumber() - 1); +// competition.setApplicantsNumber(competition.getApplicantsNumber() - 1); competitionService.updateById(competition); } if(paymentCompetition.getPayType() == 4){//课程支付 @@ -307,7 +307,7 @@ paymentCompetition.setAppUserId(null); this.updateById(paymentCompetition); - competition.setApplicantsNumber(competition.getApplicantsNumber() - 1); +// competition.setApplicantsNumber(competition.getApplicantsNumber() - 1); competitionService.updateById(competition); } return ResultUtil.success(); 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 778b672..10c5e7a 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 @@ -596,16 +596,45 @@ List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>() .in("id", collect)); - list.forEach(vo -> { + + byUserId.forEach(vo -> { + StuSessionDetailsVo detVo = new StuSessionDetailsVo(); - if (vo.getType()!=2) { - detVo.setSessionid(vo.getId()); - detVo.setSessionName(vo.getName()); - String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(), vo.getValidDays() + ""); - detVo.setPeriodOfValidity(afterDayDate); + detVo.setSessionid(vo.getCoursePackageId()); + TCoursePackage byId = coursePackageService.getById(vo.getCoursePackageId()); + detVo.setSessionName(byId.getName()); +// String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(), vo.getValidDays() + ""); + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String format1 = simpleDateFormat.format(vo.getUseTime()); + detVo.setPeriodOfValidity(format1); + + detVo.setTotalNums(vo.getTotalClassHours()); + detVo.setDeductedNums(vo.getTotalClassHours()-vo.getLaveClassHours()); + detVo.setRemainingNums(vo.getLaveClassHours()); + detailsVos.add(detVo); - } + + + + }); + +// list.forEach(vo -> { +// StuSessionDetailsVo detVo = new StuSessionDetailsVo(); +// if (vo.getType()!=2) { +// detVo.setSessionid(vo.getId()); +// detVo.setSessionName(vo.getName()); +// String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(), vo.getValidDays() + ""); +// detVo.setPeriodOfValidity(afterDayDate); +// +// detVo.setTotalNums(ToolUtil.isEmpty(tCoursePackagePayment.getTotalCourseNums()) ? 0 : tCoursePackagePayment.getTotalCourseNums()); +// detVo.setDeductedNums(ToolUtil.isEmpty(tCoursePackagePayment.getDeductionNums()) ? 0 : tCoursePackagePayment.getDeductionNums()); +// detVo.setRemainingNums(ToolUtil.isEmpty(tCoursePackagePayment.getResidueNums())? 0 : tCoursePackagePayment.getResidueNums()); +// +// detailsVos.add(detVo); +// } +// }); } return detailsVos; } @@ -1084,6 +1113,9 @@ } } +@Autowired +private TOrderService orderService; + /** * 已报名课程详情 @@ -1105,7 +1137,14 @@ if(null == appUserId){ return ResultUtil.tokenErr(); } - return ResultUtil.success(packagePaymentService.queryRegisteredCourseDetails(coursePayId,appUserId)); + CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId,lon,lat); + + + if (orderId!=null){ + TOrder byId = orderService.getById(orderId); + courseDetailsResponse.setAmount(byId.getPrice()); + } + return ResultUtil.success(courseDetailsResponse); }catch (Exception e){ e.printStackTrace(); throw new RuntimeException(e.getMessage()); @@ -2213,14 +2252,14 @@ .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId()) .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime()) ); - if(list3.size()==0){ + if(list3.isEmpty()){ detailsListVo.setType(2); objects.add(detailsListVo); continue; } //排课的ids List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()); - if(collect2.size()==0){ + if(collect2.isEmpty()){ collect2.add(-1l); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java index b342323..cf2a41c 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java @@ -14,5 +14,13 @@ @ApiModelProperty(value = "课时有效期") private String periodOfValidity; + @ApiModelProperty(value = "总学时数") + private Integer totalNums; + + @ApiModelProperty(value = "已扣学时数") + private Integer deductedNums; + + @ApiModelProperty(value = "剩余学时数") + private Integer remainingNums; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java index f3d7306..698cda0 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java @@ -55,7 +55,6 @@ private Integer chooseHours; @ApiModelProperty("课时套餐") private List<CoursePackagePaymentConfigVo> list; - @ApiModelProperty("门店地址") private String storeAddress; @ApiModelProperty("门店名称") diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java index ae1a575..040ea55 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java @@ -76,7 +76,7 @@ * @param appUserId * @return */ - CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId); + CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId,String lon,String lat); diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java index c9b155c..6cebe42 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java @@ -56,6 +56,8 @@ // map.put("registered", count); int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1)); int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 0)); + + map.put("registered", count2); map.put("actualArrival", count1); map.put("nonArrival", count - count1); 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 f1fa8fa..df12227 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 @@ -75,6 +75,9 @@ if (tCoursePackageDiscounts.size() > 0) { for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); + if (coursePackage.getState()==2){ + continue; + } // 判断预约人数是否已满 // Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber(); // Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>() @@ -209,6 +212,10 @@ if (tCoursePackageDiscounts.size() > 0) { for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); + if (coursePackage.getState()==2){ + continue; + } + // 判断预约人数是否已满 Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber(); Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>() 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 7d276f9..6a521f0 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 @@ -498,8 +498,10 @@ @Autowired private TCoursePackageDiscountService coursePackageDiscountService; + + @Resource StoreClient storeClient; @Override - public CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId) { + public CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId,String lon,String lat) { AppUser appUser = appuClient.queryAppUser(appUserId); CourseDetailsResponse response = new CourseDetailsResponse(); TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId); @@ -518,17 +520,17 @@ response.setTime(new SimpleDateFormat("yyyy.MM.dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy.MM.dd").format(coursePackage.getEndTime())); } -// Store store = storeClient.queryStoreById(coursePackage.getStoreId()); -// response.setStoreName(store.getName()); -// response.setStoreCoverDrawing(store.getCoverDrawing()); -// response.setStoreAddress(store.getAddress()); -// response.setLon(store.getLon()); -// response.setLat(store.getLat()); -// if(ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)){ -// Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat()); -// double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); -// response.setDistance(wgs84); -// } + Store store = storeClient.queryStoreById(coursePackage.getStoreId()); + response.setStoreName(store.getName()); + + if(ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)){ + Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat()); + double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + response.setDistance(wgs84); + } + + + response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); 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 9fd9159..0cc4ea6 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 @@ -1166,6 +1166,10 @@ }else { + if (coursePackagePaymentServiceOne.getPayStatus()==1){ + isContinue = 1; + + } // coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()); // coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); // coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); @@ -1203,11 +1207,11 @@ } - + //新的订单添加 if (paymentCourseVo.getOrderId()==null) { TOrder order = new TOrder(); order.setIsPay(1); - order.setPayType(2); + order.setPayType(1); order.setAppUserId(uid); order.setPrice(paymentPrice); order.setCode(code); @@ -1245,12 +1249,17 @@ Thread.sleep(wait); List<TCoursePackagePayment> list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("state", 1).eq("code", code).eq("payType", 2)); TCoursePackagePayment one = list.get(0); + + List<TOrder> list1 = orderService.list(new QueryWrapper<TOrder>().eq("code", code).eq("payType", 1)); + TOrder order = list1.get(0); + + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); - if(one.getPayStatus() == 2){ + if(order.getIsPay() == 2){ break; } - if( one.getPayStatus() == 1){ + if(order.getIsPay() == 1){ /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 @@ -1276,6 +1285,14 @@ } coursePackagePaymentService.updateBatchById(list); + + + for (TOrder tOrder : list1) { + tOrder.setIsPay(2); + tOrder.setOrderNum(tradeNo); + } + orderService.updateBatchById(list1); + for (String s1 : split) { @@ -1348,7 +1365,7 @@ userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds())); for (TCoursePackagePayment coursePackagePayment : list) { - addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice()); + addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentPrice); } moneyOut(tradeNo,tradeNo); @@ -1483,6 +1500,9 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + List<Long> pays = new ArrayList<>(); + + TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId()); @@ -1561,6 +1581,8 @@ courseCounsumService.save(courseCounsum1); } + + pays.add(coursePackagePayment.getId()); }else{ coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour); if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) { @@ -1618,10 +1640,34 @@ } + pays.add(coursePackagePaymentServiceOne.getId()); + + + } } + + if (paymentCourseVo.getOrderId()==null) { + TOrder order = new TOrder(); + order.setIsPay(1); + order.setPayType(2); + order.setAppUserId(appUser.getId()); + order.setPrice(paymentPrice); + order.setCode(code); + + String paysStr = pays.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")); + order.setPaysId(paysStr); + + orderService.save(order); + + } + + + Integer playPaiCoins = appUser.getPlayPaiCoins(); appUser.setPlayPaiCoins(playPaiCoins - paymentPrice.intValue()); appUserClient.updateAppUser(appUser); diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java index 42b3ddb..da89270 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java +++ b/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java @@ -93,7 +93,7 @@ /** * 零时任务 */ - @Scheduled(cron = "0 0 0 * * *") + @Scheduled(cron = "0 0 23 * * *") public void zeroTask(){ //定时添加排课数据 // coursePackageSchedulingService.taskAddData(); 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 da5ad28..b1fcccc 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 @@ -635,9 +635,11 @@ String[] split = siteBooking.getTimes().split(";"); if(site!=null){ if (queryMySiteVo.getIsHalf()==1) { - queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length); - }else { queryMySiteVo.setPlayPaiCoin((int) (site.getPlayPaiCoinOne() * split.length)); + + }else { + queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length); + } } } -- Gitblit v1.7.1