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