From d4fbea2ac7f7c98ffd83480f8f2535ca92f3baea Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期三, 29 十一月 2023 18:19:43 +0800
Subject: [PATCH] 11.29

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java   |   59 ++-
 cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java                                   |   16 +
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java               |   13 
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java                          |   16 +
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java                      |    4 
 cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java                                |   10 
 cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java                                   |    4 
 cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml                                  |   11 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java                     |    2 
 cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java                               |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html                            |   15 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java            |    6 
 cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java                       |    1 
 cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java                              |  195 ++++++++++++
 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java       |   63 ++-
 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java                         |    5 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                  |   23 +
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java                   |   10 
 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js                    |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java |   70 ++--
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java       |   23 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java      |   24 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java       |    2 
 cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java                               |   16 +
 cloud-server-management/src/main/webapp/WEB-INF/view/login.html                                               |   19 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java           |    1 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java               |   16 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html                           |   16 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java       |  166 ++++++++-
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html                        |  129 ++++---
 30 files changed, 709 insertions(+), 230 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
index 28f5302..21f0eb5 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -10,6 +10,7 @@
 import com.dsh.account.model.QueryDataFee;
 import com.dsh.account.model.Student;
 import com.dsh.account.model.StudentVo;
+import com.dsh.account.model.updateTimeDto;
 import com.dsh.account.service.*;
 import com.dsh.account.util.ResultUtil;
 import com.dsh.account.util.TokenUtil;
@@ -122,6 +123,21 @@
         studentService.updateById(student);
 
     }
+    @ResponseBody
+    @PostMapping("/student/getById")
+    public Date getById(@RequestBody Integer tStudentId) {
+       return   studentService.getById(tStudentId).getValidity();
+
+    }
+    @ResponseBody
+    @PostMapping("/student/update1")
+    public void update(@RequestBody updateTimeDto updateTimeDto) {
+
+        TStudent student = new TStudent();
+        student.setId(updateTimeDto.getTStudentId());
+        student.setValidity(updateTimeDto.getDate());
+        studentService.updateById(student);
+    }
 
 
     @ResponseBody
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java
index 6a53dd5..78808fa 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java
@@ -14,7 +14,7 @@
     private String storeImg;
 
     @ApiModelProperty(value = "门店距离当前位置")
-    private String distance;
+    private double distance;
 
     @ApiModelProperty(value = "门店名称")
     private String storeName;
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java b/cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java
new file mode 100644
index 0000000..d9eb328
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/updateTimeDto.java
@@ -0,0 +1,16 @@
+package com.dsh.account.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class updateTimeDto {
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date date;
+    private Integer tStudentId;
+}
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 c862916..6ec0c70 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
@@ -612,7 +612,10 @@
                     case 1:
                         coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints()));
                         break;
-
+                    case 2:
+                        coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints()));
+                        coupon.setCash(dataVo.getRequiredCash());
+                        break;
                     case 3:
                         coupon.setCash(dataVo.getRequiredCash());
                         break;
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 afc238a..90385ec 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
@@ -287,6 +287,10 @@
     @Autowired
     private PointsMerchandiseStoreService pointsMerchandiseStoreService;
 
+
+    @Autowired
+    private CouponStoreService couponStoreService;
+
     @ResponseBody
     @PostMapping("/base/pointMerchars/convertGoods")
     public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception {
@@ -342,6 +346,25 @@
             }
         }
 
+        List<CouponStore> storeId = couponStoreService.list(new QueryWrapper<CouponStore>().eq("storeId", s.getId()));
+        List<Integer> storeCoupons = new ArrayList<>();
+        for (CouponStore couponStore : storeId) {
+            storeCoupons.add(couponStore.getCouponId());
+        }
+        List<Coupon> list = couponService.list(new QueryWrapper<Coupon>().in("id", storeCoupons).eq("state", 1).gt("endTime", new Date()).last("ORDER BY insertTime desc"));
+        if (!list.isEmpty()){
+            for (Coupon coupon : list) {
+            IntegralCommodity integralCommodity = new IntegralCommodity();
+            integralCommodity.setCommodityId(coupon.getId());
+            integralCommodity.setCommodityImg(coupon.getCover());
+            integralCommodity.setCommodityName(coupon.getName());
+            integralCommodity.setCommodityPrice(coupon.getIntegral());
+            integralCommodity.setGoodsType(coupon.getType());
+//            integralCommodity.setSort(coupon.getSort());
+            commodity.add(integralCommodity);
+            }
+
+        }
 
 
         System.out.println(commodity);
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 42473f5..7332374 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
@@ -28,6 +28,7 @@
 import com.dsh.course.util.*;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.obs.services.internal.ServiceException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -2367,13 +2368,13 @@
 
     @ResponseBody
     @PostMapping("/coursePackagePayment/consumeCourse")
-    public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) {
+    public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) {
         CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId);
 
         TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
 
         if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){
-            return ResultUtil.error("当前学员课时数不足");
+           return 1;
         }
         coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum());
         orderStudentService.updateById(coursePackageOrderStudent);
@@ -2384,7 +2385,7 @@
         courseCounsum.setInsertTime(new Date());
         courseCounsum.setReason("补课");
         courseCounsumService.save(courseCounsum);
-        return ResultUtil.success("补课成功");
+        return 2;
     }
 
 
@@ -2640,6 +2641,11 @@
                     detailsListVo.setIsType(list4.get(0).getType());
 
                     for (CoursePackageStudent coursePackageStudent : list4) {
+                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
+                        if (coursePackageScheduling.getStatus()==4){
+                            detailsListVo.setIsType(3);
+                        }
+
                         Integer signInOrNot1 = coursePackageStudent.getSignInOrNot();
                         detailsListVo.setType(1);
 
@@ -2647,7 +2653,6 @@
                             detailsListVo.setType(3);
                         }
                         detailsListVo.setIsType(coursePackageStudent.getType());
-                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                         Date classDate = coursePackageScheduling.getClassDate();
                         Date endDate = coursePackageScheduling.getEndDate();
                         SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
index 884ecc3..edb5504 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -136,7 +136,9 @@
         System.out.println("==========getClassList===tStudentId====" + tStudentId);
         List<ClassListDto> listDtos = studentService.getClassList(tStudentId);
         for (ClassListDto dto : listDtos) {
-            dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours());
+            if (dto.getClassType()!=2) {
+                dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours());
+            }
         }
         System.out.println("======listDtos======" + listDtos);
         return listDtos;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
index c7b7e9b..fc5d66d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
@@ -43,4 +43,5 @@
     void updateSignInOrNotById(@Param("id") Long id);
 
 
+    List<ClassListDto> getHoliList(@Param("tStudentId")Integer tStudentId);
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
index 3b2c382..6acdef8 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
@@ -134,42 +134,67 @@
                     String weekOfDate = DateTimeHelper.getWeekOfDate(new Date());
 //                    if (integerList.contains(weekOfDate)) {
                         String dat = simpleDateFormat.format(byId.getClassDate()) + " " + dateString1.substring(11);
+                    String ed = simpleDateFormat.format(byId.getEndDate()) + " " + dateString2.substring(11);
 
                         Date start = null;
+                        Date end = null;
                         try {
                             start = format.parse(dat);
+                            end = format.parse(ed);
                         } catch (ParseException e) {
                             throw new RuntimeException(e);
                         }
+
+                    CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
+                            .eq("coursePackageSchedulingId", byId.getId()).last("limit 1"));
+//                   else {
+//                        Date now = new Date();
+//                        if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) {
+//                            recordVo.setStatus(2);
+//                        } else {
+//                            recordVo.setStatus(3);
+//
+//                        }
+//                    }
+
                         //已取消
                         if (byId.getStatus() == 4) {
                             recordVo.setStatus(4);
                         } else if (coursePackageStudent.getSignInOrNot() == 2) {
                             //已请假
                             recordVo.setStatus(5);
-                        } else if (start.after(new Date())) {
+                        }else if  (ToolUtil.isNotEmpty(cancelledClasses)) {
+                        recordVo.setStatus(3);
+                        // 消课 到课状态0 旷课
+                        if (coursePackageStudent.getSignInOrNot() == 0) {
+                            recordVo.setStatus(6);
+                        }
+
+                    }else if (new Date().after(start)&&new Date().before(end)){
+                            recordVo.setStatus(2);
+                        }else if (start.after(new Date())) {
                             //待上课
                             recordVo.setStatus(1);
                         }
                         else {
-                            CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
-                                    .eq("coursePackageSchedulingId", byId.getId()).last("limit 1"));
-                            if (ToolUtil.isNotEmpty(cancelledClasses)) {
-                                recordVo.setStatus(3);
-                                // 消课 到课状态0 旷课
-                                if (coursePackageStudent.getSignInOrNot() == 0) {
-                                    recordVo.setStatus(6);
-                                }
-
-                            } else {
-                                Date now = new Date();
-                                if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) {
-                                    recordVo.setStatus(2);
-                                } else {
-                                    recordVo.setStatus(3);
-
-                                }
-                            }
+//                            CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
+//                                    .eq("coursePackageSchedulingId", byId.getId()).last("limit 1"));
+//                            if (ToolUtil.isNotEmpty(cancelledClasses)) {
+//                                recordVo.setStatus(3);
+//                                // 消课 到课状态0 旷课
+//                                if (coursePackageStudent.getSignInOrNot() == 0) {
+//                                    recordVo.setStatus(6);
+//                                }
+//
+//                            } else {
+//                                Date now = new Date();
+//                                if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) {
+//                                    recordVo.setStatus(2);
+//                                } else {
+//                                    recordVo.setStatus(3);
+//
+//                                }
+//                            }
                         }
 //                    } else {
 //                        recordVo.setStatus(1);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
index dfe4735..3016932 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
@@ -107,7 +107,11 @@
 
     @Override
     public List<ClassListDto> getClassList(Integer tStudentId) {
-        return this.baseMapper.getClassList(tStudentId);
+        List<ClassListDto> classList = this.baseMapper.getClassList(tStudentId);
+        List<ClassListDto> holiList = this.baseMapper.getHoliList(tStudentId);
+        classList.addAll(holiList);
+
+        return classList;
     }
 
     @Override
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 b8a4cf5..0070c14 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
@@ -540,6 +540,7 @@
             }
             Store store = storeClient.queryStoreById(coursePackage.getStoreId());
             response.setStoreName(store.getName());
+            response.setStoreAddress(store.getAddress());
 
             if (ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)) {
                 Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat());
diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java
new file mode 100644
index 0000000..34b9319
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/ResultUtil.java
@@ -0,0 +1,195 @@
+package com.dsh.course.util.httpClinet;
+
+/**
+ * 定义统一返回对象
+ */
+public class ResultUtil<T> {
+
+    public static final Integer SUCCESS = 200;
+
+    public static final Integer PARAM_ERROR = 300;
+
+    public static final Integer RUNTIME_ERROR = 400;
+
+    public static final Integer ERROR = 500;
+
+    public static final String Token = "Token失效";
+
+    private Integer status;//状态码
+
+    private Integer code;//备用状态码
+
+    private String msg;//返回说明
+
+    private T data;//返回数据
+
+    private String str;//存储单个字符串值
+
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public String getStr() {
+        return str;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public ResultUtil(Integer status, Integer code, String msg) {
+        this.status = status;
+        this.code = code;
+        this.msg = msg;
+    }
+
+    private ResultUtil(Integer status, Integer code, String msg, T data) {
+        this.status = status;
+        this.code = code;
+        this.msg = msg;
+        this.data = data;
+    }
+
+    public ResultUtil(Integer status, Integer code, String msg, T data, String str) {
+        this.status = status;
+        this.code = code;
+        this.msg = msg;
+        this.data = data;
+        this.str = str;
+    }
+
+    private ResultUtil(Integer status, Integer code, String msg, String str) {
+        this.status = status;
+        this.code = code;
+        this.msg = msg;
+        this.str = str;
+    }
+
+
+    public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg){
+        return new ResultUtil<>(status, code, msg);
+    }
+
+    public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg, T data){
+        return new ResultUtil<>(status, code, msg, data);
+    }
+
+    public static <T> ResultUtil<T> getResult(Integer status, Integer code, String msg, T data, String str){
+        return new ResultUtil<>(status, code, msg, data, str);
+    }
+
+    /**
+     * 错误信息
+     * @return
+     */
+    public static ResultUtil error(String mag){
+        return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, mag);
+    }
+
+    /**
+     * 错误信息
+     * @return
+     */
+    public static <T> ResultUtil <T> error(String mag, T obj){
+        return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, mag, obj);
+    }
+
+    /**
+     * token失效
+     * @return
+     */
+    public static ResultUtil tokenErr(){
+        return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, ResultUtil.Token);
+    }
+
+    /**
+     * token失效
+     * @return
+     */
+    public static ResultUtil tokenErr(String msg){
+        return ResultUtil.getResult(ResultUtil.ERROR, ResultUtil.ERROR, msg);
+    }
+
+    /**
+     * 参数异常
+     * @return
+     */
+    public static  ResultUtil paranErr(){
+        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, ResultUtil.PARAM_ERROR, "参数异常");
+    }
+
+    /**
+     * 参数异常
+     * @return
+     */
+    public static <T> ResultUtil<T> paranErr(T data){
+        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, ResultUtil.PARAM_ERROR, "参数异常", data);
+    }
+
+    /**
+     * 运行异常
+     * @return
+     */
+    public static ResultUtil runErr(){
+        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, ResultUtil.RUNTIME_ERROR, "服务器运行异常");
+    }
+
+
+    /**
+     * 运行异常
+     * @return
+     */
+    public static <T>ResultUtil<T> runErr(T data){
+        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, ResultUtil.RUNTIME_ERROR, "服务器运行异常", data);
+    }
+
+
+    /**
+     * 返回成功
+     * @param
+     * @return
+     */
+    public static ResultUtil success(){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功");
+    }
+
+
+    /**
+     * 返回成功
+     * @param data
+     * @param <T>
+     * @return
+     */
+    public static <T> ResultUtil<T> success(T data){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功", data);
+    }
+
+    /**
+     * 返回成功
+     * @param data
+     * @param str
+     * @param <T>
+     * @return
+     */
+    public static <T> ResultUtil<T> success(T data, String str){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, "成功", data, str);
+    }
+
+    public static <T> ResultUtil<T> success(String msg, T data){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, msg, data);
+    }
+
+    public static <T> ResultUtil<T> success(String msg, T data, String str){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, ResultUtil.SUCCESS, msg, data, str);
+    }
+
+}
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
index dba0115..48d9f6e 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
@@ -73,4 +73,15 @@
         FROM t_course_package_payment py
         where py.studentId = #{tStudentId}
     </select>
+    <select id="getHoliList" resultType="com.dsh.course.entity.dto.ClassListDto">
+        select
+            od.id,od.insertTime as insertTime, cp.name as className,cp.type as classType
+        from t_course_package_order od
+                 left join t_course_package cp on od.coursePackageId = cp.id
+
+        WHERE            od.payStatus = 2  and cp.type = 2
+
+
+
+    </select>
 </mapper>
diff --git a/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java b/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java
index 82a9b46..a30892a 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/dto/updateTimeDto.java
@@ -1,12 +1,16 @@
 package com.dsh.course.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.util.Date;
 @Data
 @AllArgsConstructor
+@NoArgsConstructor
 public class updateTimeDto {
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date date;
     private Integer tStudentId;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java
index 4283ba9..9a62aff 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentClient.java
@@ -1,9 +1,6 @@
 package com.dsh.course.feignClient.account;
 
-import com.dsh.course.dto.CreateHistoryDto;
-import com.dsh.course.dto.GetHistoryDto;
-import com.dsh.course.dto.StudentSearch;
-import com.dsh.course.dto.TStudentDto;
+import com.dsh.course.dto.*;
 import com.dsh.course.feignClient.account.model.QueryAppUser;
 import com.dsh.course.feignClient.account.model.QueryAppUserVO;
 import com.dsh.course.feignClient.account.model.QueryByNamePhone;
@@ -14,6 +11,7 @@
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -42,4 +40,8 @@
 
     @PostMapping("/student/frozen")
     void frozen(@RequestBody TStudent student);
+    @PostMapping("/student/getById")
+    Date getById(@RequestBody Integer tStudentId);
+    @PostMapping("/student/update1")
+    void update(@RequestBody updateTimeDto updateTimeDto);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
index 8504df7..09e19f9 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
@@ -87,7 +87,7 @@
 
 
     @PostMapping("/coursePackagePayment/consumeCourse")
-    ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId);
+    Integer consumeCourse(@RequestBody Integer coursePackagePaymentId);
 
     @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1")
     CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id")Long id);
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java
new file mode 100644
index 0000000..304e51a
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/SiteLockMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.course.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.dsh.course.entity.SiteLock;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:43
+ */
+public interface SiteLockMapper extends BaseMapper<SiteLock> {
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
index 8e9c16b..3e96cfd 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -285,41 +285,41 @@
         ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids,UserExt.getUser().getObjectType());
         Page<Competition> competitions = competitionClient.list(listQuery);
         List<Competition> records = new ArrayList<>();
-//        for (Competition competition : competitions.getRecords()) {
-////            if (competition.getStatus()==4){
-////                continue;
-////            }
-//
-//            // 当前时间小于开始时间
-//            if (competition.getStartTime().after(new Date())){
-//                competition.setStatus(1);
-//            }
-//            if (competition.getStartTime().before(new Date())){
-//
-//
-//                if (competition.getEndTime().after(new Date())){
-//                    competition.setStatus(2);
-//                }else{
-//                    competition.setStatus(3);
-//                }
-//            }
-//            if (competition.getStatus()!=state && state != null){
-//            }else{
-//                records.add(competition);
-//            }
-//            for (TStore tStore : list) {
-//                String[] split = competition.getStoreId().split(",");
-//                for (String s : split) {
-//                    if(s.equals(String.valueOf(tStore.getId()))){
-//                        if (competition.getStoreName()==null){
-//                            competition.setStoreName(tStore.getName());
-//                        }else {
-//                            competition.setStoreName(competition.getStoreName()+","+tStore.getName());
-//                        }
-//                    }
-//                }
-//            }
-//        }
+        for (Competition competition : competitions.getRecords()) {
+            if (competition.getStatus()==4){
+                continue;
+            }
+
+            // 当前时间小于开始时间
+            if (competition.getStartTime().after(new Date())){
+                competition.setStatus(1);
+            }
+            if (competition.getStartTime().before(new Date())){
+
+
+                if (competition.getEndTime().after(new Date())){
+                    competition.setStatus(2);
+                }else{
+                    competition.setStatus(3);
+                }
+            }
+            if (competition.getStatus()!=state && state != null){
+            }else{
+                records.add(competition);
+            }
+            for (TStore tStore : list) {
+                String[] split = competition.getStoreId().split(",");
+                for (String s : split) {
+                    if(s.equals(String.valueOf(tStore.getId()))){
+                        if (competition.getStoreName()==null){
+                            competition.setStoreName(tStore.getName());
+                        }else {
+                            competition.setStoreName(competition.getStoreName()+","+tStore.getName());
+                        }
+                    }
+                }
+            }
+        }
         competitions.setRecords(records);
         System.err.println(competitions.getRecords());
         return  super.packForBT(competitions);
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
index b72b9d6..f2ee93a 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -29,7 +29,7 @@
 import com.dsh.guns.modular.system.util.DateComparisonExample;
 import com.dsh.guns.modular.system.util.HttpRequestUtil;
 import com.dsh.guns.modular.system.util.ResultUtil;
-
+import com.dsh.course.entity.SiteLock;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -1023,44 +1023,132 @@
 
 
 
+    @Autowired
+    private ISiteLockService siteLockService;
+
 
     @RequestMapping("/yuyuetimes/{id}")
     @ResponseBody
     public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date,String siteName,String halfName) {
-        System.out.println("=======date======"+date);
+//        System.out.println("=======date======"+date);
+//
+//        List<String> strings = new ArrayList<>();
+//
+////        List<SiteBooking> siteBookings = siteClient.listBooks(id);
+//        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>()
+//                .eq("siteId", id).like("times",date));
+//System.out.println("=======siteBookings======"+siteBookings);
+//        for (SiteBooking siteBooking : siteBookings) {
+//            String[] split = siteBooking.getTimes().split(";");
+//            for (String s : split) {
+//
+//                String convertedValue = s.substring(11);
+//                strings.add(convertedValue);
+//            }
+//
+//        }
+//    System.out.println("======strings======="+strings);
+//
+//        List<OrderDto> timeRanges = new ArrayList<>();
+//
+//       Site site =  siteClient.listById(id);
+//System.out.println("================"+site);
+//        String appointmentStartTime = site.getAppointmentStartTime();
+//        String appointmentEndTime = site.getAppointmentEndTime();
+//
+//        String currentTime = appointmentStartTime;
+//        while (currentTime.compareTo(appointmentEndTime) < 0){
+//            String nextTime = null;
+//            if("智慧场地".equals(site.getTypeName())){
+//                nextTime=getNextTimeOne(currentTime);
+//            }else {
+//                nextTime= getNextTime(currentTime);
+//            }
+//
+//            String timeRange = currentTime + "-" + nextTime;
+//            OrderDto orderDto = new OrderDto();
+//            orderDto.setTime(timeRange);
+//
+//            LocalTime currentTime1 = LocalTime.now();
+//            LocalTime targetTime = LocalTime.parse(currentTime);
+//
+//            boolean hasExceeded = currentTime1.isAfter(targetTime);
+//    if (hasExceeded){
+//        orderDto.setState(0);
+//    }
+//    if (strings.contains(timeRange)){
+//        orderDto.setState(0);
+//    }
+//
+//
+//            timeRanges.add(orderDto);
+//            currentTime = nextTime;
+//        }
+//        System.out.println("-------------"+timeRanges);
+//
+//        return timeRanges;
 
+
+
+
+        System.out.println("=======date======" + date);
         List<String> strings = new ArrayList<>();
 
-//        List<SiteBooking> siteBookings = siteClient.listBooks(id);
-        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>()
-                .eq("siteId", id).like("times",date));
-System.out.println("=======siteBookings======"+siteBookings);
-        for (SiteBooking siteBooking : siteBookings) {
-            String[] split = siteBooking.getTimes().split(";");
-            for (String s : split) {
+        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).eq("nextName", siteName).like("times", date));
 
-                String convertedValue = s.substring(11);
-                strings.add(convertedValue);
-            }
-
+        if (siteName == null || siteName.equals("")) {
+            siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).like("times", date));
         }
-    System.out.println("======strings======="+strings);
+
+
+        System.out.println("=======siteBookings======" + siteBookings);
+        for (SiteBooking siteBooking : siteBookings) {
+
+
+            String[] split = siteBooking.getTimes().split(";");
+
+            if (siteBooking.getIsHalf() == 2) {
+                for (String s : split) {
+                    String convertedValue = s.substring(11);
+                    strings.add(convertedValue);
+                }
+            } else {
+                if (halfName == null) {
+                    for (String s : split) {
+                        String convertedValue = s.substring(11);
+                        strings.add(convertedValue);
+                    }
+                }
+
+                if (siteBooking.getHalfName().equals(halfName)) {
+                    for (String s : split) {
+                        String convertedValue = s.substring(11);
+                        strings.add(convertedValue);
+                    }
+
+                }
+            }
+        }
+        System.out.println("======strings=======" + strings);
+
 
         List<OrderDto> timeRanges = new ArrayList<>();
 
-       Site site =  siteClient.listById(id);
-System.out.println("================"+site);
+
+        TSite site = siteService.getById(id);
+        System.out.println("================" + site);
         String appointmentStartTime = site.getAppointmentStartTime();
         String appointmentEndTime = site.getAppointmentEndTime();
 
         String currentTime = appointmentStartTime;
         while (currentTime.compareTo(appointmentEndTime) < 0) {
             String nextTime = null;
-            if("智慧场地".equals(site.getTypeName())){
-                nextTime=getNextTimeOne(currentTime);
-            }else {
-                nextTime= getNextTime(currentTime);
+            if ("智慧场地".equals(site.getTypeName())) {
+                nextTime = getNextTimeOne(currentTime);
+            } else {
+                nextTime = getNextTime(currentTime);
             }
+
 
             String timeRange = currentTime + "-" + nextTime;
             OrderDto orderDto = new OrderDto();
@@ -1070,21 +1158,43 @@
             LocalTime targetTime = LocalTime.parse(currentTime);
 
             boolean hasExceeded = currentTime1.isAfter(targetTime);
-    if (hasExceeded){
-        orderDto.setState(0);
-    }
-    if (strings.contains(timeRange)){
-        orderDto.setState(0);
-    }
+//            if (hasExceeded){
+//                orderDto.setSelectable(0);
+//            }
+            if (strings.contains(timeRange)) {
+
+                orderDto.setState(0);
+            } else {
+
+                String stime = date + " " + currentTime;
+                String etime = date + " " + nextTime;
+                orderDto.setState(1);
+                // 查出lock
+                List<SiteLock> list = siteLockService.list(new LambdaQueryWrapper<SiteLock>().eq(SiteLock::getSiteId, id));
+                for (SiteLock siteLock : list) {
+                    boolean stringDateBetween = DateComparisonExample.isStringDateBetween(stime + " - " + etime, siteLock.getStartTime(), siteLock.getEndTime());
+                    if (stringDateBetween) {
+                        orderDto.setState(0);
+                    }
+                    if (DateComparisonExample.isStringWithinTimeRange(stime, siteLock.getStartTime(), siteLock.getEndTime())) {
+                        orderDto.setState(0);
+                    }
+                    if (DateComparisonExample.isStringWithinTimeRange(etime, siteLock.getStartTime(), siteLock.getEndTime())) {
+                        orderDto.setState(0);
+                    }
+
+                }
+
+
+            }
 
 
             timeRanges.add(orderDto);
             currentTime = nextTime;
         }
-        System.out.println("-------------"+timeRanges);
+        System.out.println("-------------" + timeRanges);
 
         return timeRanges;
-
 
 
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
index 8586100..a01b63e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -309,17 +309,18 @@
 
         model.addAttribute("item", tStudentDto);
         if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.equals("")) {
-            String[] pics = tStudentDto.getLateralSurface().split(";");
-            model.addAttribute("pic1", pics[0]);
-            System.out.println("=====pic1==" + pics[0]);
-            if (pics.length > 1) {
-                model.addAttribute("pic2", pics[1]);
-                System.out.println("=====pic2==" + pics[1]);
-            }
-            if (pics.length > 2) {
-                model.addAttribute("pic3", pics[2]);
-                System.out.println("=====pic3==" + pics[2]);
-            }
+//            String[] pics = tStudentDto.getLateralSurface().split(";");
+//            model.addAttribute("pic1", pics[0]);
+//            System.out.println("=====pic1==" + pics[0]);
+//            if (pics.length > 1) {
+//                model.addAttribute("pic2", pics[1]);
+//                System.out.println("=====pic2==" + pics[1]);
+//            }
+//            if (pics.length > 2) {
+//                model.addAttribute("pic3", pics[2]);
+//                System.out.println("=====pic3==" + pics[2]);
+//            }
+            model.addAttribute("images",tStudentDto.getLateralSurface());
         }
 
 
@@ -355,9 +356,11 @@
     @RequestMapping("/getUseTime/{tStudentId}")
     @ResponseBody
     public ResultUtil getMax(@PathVariable("tStudentId") Integer tStudentId) {
-        Date useTime = courseStuddentClient.getUseTime(tStudentId);
+        Date vali = studentClient.getById(tStudentId);
+
+//        Date useTime = courseStuddentClient.getUseTime(tStudentId);
         Map<String, Date> map = new HashMap<>();
-        map.put("useTime",useTime);
+        map.put("useTime",vali);
 
         return new ResultUtil<>(0,0,null,map,null);
     }
@@ -522,12 +525,14 @@
         // 需要过滤体验课
         List<ClassListDto> classListDtos = courseStuddentClient.listClass(tStudentId);
         for (ClassListDto classListDto : classListDtos) {
-            classListDto.setHasClassHours(classListDto.getTotalClassHours()-classListDto.getLaveClassHours());
             if (classListDto.getClassType()==2){
                 classListDto.setTotalClassHours(null);
                 classListDto.setHasClassHours(null);
                 classListDto.setLaveClassHours(null);
+                continue;
             }
+            classListDto.setHasClassHours(classListDto.getTotalClassHours()-classListDto.getLaveClassHours());
+
         }
         Map<String,List<ClassListDto>> map = new HashMap<>();
         map.put("items",classListDtos);
@@ -594,11 +599,25 @@
     @ResponseBody
 
     public ResultUtil update(@RequestBody TStudent tStudent) {
-        String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3();
+        List<String> strings = new ArrayList<>();
+        if (!tStudent.getImage1().isEmpty()){
+            strings.add(tStudent.getImage1());
+        }
+        if (!tStudent.getImage2().isEmpty()){
+            strings.add(tStudent.getImage2());
+        }
+        if (!tStudent.getImage3().isEmpty()){
+            strings.add(tStudent.getImage3());
+        }
+        String result = String.join(";", strings);
 
-        System.out.println("=======lateralSurface======>?"+lateralSurface);
-        tStudent.setLateralSurface(lateralSurface);
-        System.out.println("学员体测表的值"+lateralSurface);
+
+//
+//        String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3();
+//
+//        System.out.println("=======lateralSurface======>?"+lateralSurface);
+        tStudent.setLateralSurface(result);
+        System.out.println("学员体测表的值"+result);
         itStudentService.update(tStudent);
 //        appUserClient.updateStudent(tStudent);
         return new ResultUtil(0,0,"编辑成功");
@@ -627,7 +646,9 @@
 
         updateTimeDto updateTimeDto =new updateTimeDto(date1,id);
         System.out.println("======updateTimeDto=====>"+updateTimeDto);
-        courseStuddentClient.updateUseDate(updateTimeDto);
+//        courseStuddentClient.updateUseDate(updateTimeDto);
+
+        studentClient.update(updateTimeDto);
 
 
         CreateHistoryDto historyDto = new CreateHistoryDto();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java
new file mode 100644
index 0000000..a52648d
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ISiteLockService.java
@@ -0,0 +1,16 @@
+package com.dsh.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.course.entity.SiteLock;
+
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:44
+ */
+public interface ISiteLockService extends IService<SiteLock> {
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
index 1268a81..bd6496a 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -714,17 +714,21 @@
      */
     @Override
     public ResultUtil makeUpMissedLessons(Integer coursePackagePaymentId){
-        ResultUtil resultUtil = coursePackagePaymentClient.consumeCourse(coursePackagePaymentId);
-//        System.out.println("=========coursePackagePayment=====>"+coursePackagePayment);
-//        if(coursePackagePayment.getStatus() == 2){
-//            return ResultUtil.error("该学员已退课");
+//        try {
+            Integer is = coursePackagePaymentClient.consumeCourse(coursePackagePaymentId);
+            if (is==1){
+                return ResultUtil.error("课时数不足");
+            }else {
+                return ResultUtil.success("补课成功");
+            }
+//            return  resultUtil;
+//            return  ResultUtil.success("补课成功");
+//        }catch (Exception e){
+//            return  ResultUtil.success("课时数不足");
+//
 //        }
-//        if(coursePackagePayment.getAbsencesNumber() == 0){
-//            return ResultUtil.error("当前不需要补课");
-//        }
-//        coursePackagePayment.setAbsencesNumber(coursePackagePayment.getAbsencesNumber() - 1);
-//        coursePackagePaymentClient.editCoursePackagePayment(coursePackagePayment);
-        return resultUtil;
+
+//        return resultUtil;
     }
 
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java
new file mode 100644
index 0000000..b10c187
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/SiteLockServiceImpl.java
@@ -0,0 +1,23 @@
+package com.dsh.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import com.dsh.course.entity.SiteLock;
+import com.dsh.course.mapper.SiteLockMapper;
+import com.dsh.guns.modular.system.service.ISiteLockService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/18 14:45
+ */
+@Service
+public class SiteLockServiceImpl extends ServiceImpl<SiteLockMapper, SiteLock> implements ISiteLockService {
+
+
+
+
+}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html
index 349f46b..fb82a67 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html
@@ -71,16 +71,15 @@
                 <input class="itemInput" type="password" name="password" id="password"  placeholder="请输入密码" required="" value="">
             </div>
 
-            <div class="form-group" style="float: left;">
-                <div class="col-sm-8" style="padding-left: 0px; padding-right: 0px;">
-                    <input class="form-control" type="text" name="kaptcha" placeholder="验证码" required="">
-                </div>
-                <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;">
-                    <img src="${ctxPath}/kaptcha" id="kaptcha" width="90px" height="34px"/>
-                </div>
-
-            </div>
-            <h4 style="color: #0e9aef;text-align: right" onclick="updatePassword1()">修改密码</h4>
+<!--            <div class="form-group" style="float: left;">-->
+<!--                <div class="col-sm-8" style="padding-left: 0px; padding-right: 0px;">-->
+<!--                    <input class="form-control" type="text" name="kaptcha" placeholder="验证码" required="">-->
+<!--                </div>-->
+<!--                <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;">-->
+<!--                    <img src="${ctxPath}/kaptcha" id="kaptcha" width="90px" height="34px"/>-->
+<!--                </div>-->
+<!--            </div>-->
+<!--            <h4 style="color: #0e9aef;text-align: right" onclick="updatePassword1()">修改密码</h4>-->
             <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">登 录</button>
             <button type="submit" id="submit" style="display: none;"></button>
             </p>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
index 4185864..7af2b05 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
@@ -288,21 +288,6 @@
               "value":""
             },
             {
-              "type": "input-text",
-              "label": "SUTU名称",
-              "name": "sutuName",
-              "id": "u:a4dbdeb9165e",
-              "mode": "inline",
-              "size": "sm",
-              "horizontal": {
-                "leftFixed": "sm"
-              },
-              "value": "",
-              "required": true
-              ,
-              "value":""
-            },
-            {
               "type": "button",
               "label": "按钮",
               "onEvent": {
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
index b7bf9a1..c11737b 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
@@ -286,21 +286,7 @@
               ,
               "value":`${game.red}`
             },
-            {
-              "type": "input-text",
-              "label": "SUTU名称",
-              "name": "sutuName",
-              "id": "u:a4dbdeb9165e",
-              "mode": "inline",
-              "size": "sm",
-              "horizontal": {
-                "leftFixed": "sm"
-              },
-              "value": "",
-              "required": true
-              ,
-              "value":`${game.sutuId}`
-            },
+
             {
               "type": "button",
               "label": "按钮",
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
index 50ef837..2c8745f 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
@@ -221,68 +221,75 @@
           "id": "u:8224ab367da8"
         },
         {
-          "type": "input-image",
-          "id": "u:53e0d6a37b69",
-          "label": "",
-          "name": "image1",
-          "autoUpload": true,
-          "proxy": true,
-          "uploadType": "fileReceptor",
-          "imageClassName": "r w-full",
-          "receiver": {
-            "url": "/mgr/uploadImgAmis",
-            "method": "post"
-          },
-          "accept": ".jpeg, .jpg, .png, .gif",
-          "multiple": false,
-          "hideUploadButton": false,
-          "fixedSize": false,
-          "mode": "inline",
-          "value":`${pic1!}`,
-          "disabled": true,
+          "type": "images",
+          "id": "u:76216a114f2c",
+          "name": "images",
+          "value":`${images}`,
+          "delimiter":";"
         },
-        {
-          "type": "input-image",
-          "id": "u:53e0d6a37b69",
-          "label": "",
-          "name": "image2",
-          "autoUpload": true,
-          "proxy": true,
-          "uploadType": "fileReceptor",
-          "imageClassName": "r w-full",
-          "receiver": {
-            "url": "/mgr/uploadImg",
-            "method": "post"
-          },
-          "accept": ".jpeg, .jpg, .png, .gif",
-          "multiple": false,
-          "hideUploadButton": false,
-          "fixedSize": false,
-          "mode": "inline",
-          "value":`${pic2!}`,
-          "disabled": true,
-        },
-        {
-          "type": "input-image",
-          "id": "u:53e0d6a37b69",
-          "label": "",
-          "name": "image3",
-          "autoUpload": true,
-          "proxy": true,
-          "uploadType": "fileReceptor",
-          "imageClassName": "r w-full",
-          "receiver": {
-            "url": "/mgr/uploadImg",
-            "method": "post"
-          },
-          "accept": ".jpeg, .jpg, .png, .gif",
-          "multiple": false,
-          "hideUploadButton": false,
-          "fixedSize": false,
-          "mode": "inline",
-          "value":`${pic3!}`,
-          "disabled": true,
-        },
+        // {
+        //   "type": "input-image",
+        //   "id": "u:53e0d6a37b69",
+        //   "label": "",
+        //   "name": "image1",
+        //   "autoUpload": true,
+        //   "proxy": true,
+        //   "uploadType": "fileReceptor",
+        //   "imageClassName": "r w-full",
+        //   "receiver": {
+        //     "url": "/mgr/uploadImgAmis",
+        //     "method": "post"
+        //   },
+        //   "accept": ".jpeg, .jpg, .png, .gif",
+        //   "multiple": false,
+        //   "hideUploadButton": false,
+        //   "fixedSize": false,
+        //   "mode": "inline",
+        //   "value":`${pic1!}`,
+        //   "disabled": true,
+        // },
+        // {
+        //   "type": "input-image",
+        //   "id": "u:53e0d6a37b69",
+        //   "label": "",
+        //   "name": "image2",
+        //   "autoUpload": true,
+        //   "proxy": true,
+        //   "uploadType": "fileReceptor",
+        //   "imageClassName": "r w-full",
+        //   "receiver": {
+        //     "url": "/mgr/uploadImg",
+        //     "method": "post"
+        //   },
+        //   "accept": ".jpeg, .jpg, .png, .gif",
+        //   "multiple": false,
+        //   "hideUploadButton": false,
+        //   "fixedSize": false,
+        //   "mode": "inline",
+        //   "value":`${pic2!}`,
+        //   "disabled": true,
+        // },
+        // {
+        //   "type": "input-image",
+        //   "id": "u:53e0d6a37b69",
+        //   "label": "",
+        //   "name": "image3",
+        //   "autoUpload": true,
+        //   "proxy": true,
+        //   "uploadType": "fileReceptor",
+        //   "imageClassName": "r w-full",
+        //   "receiver": {
+        //     "url": "/mgr/uploadImg",
+        //     "method": "post"
+        //   },
+        //   "accept": ".jpeg, .jpg, .png, .gif",
+        //   "multiple": false,
+        //   "hideUploadButton": false,
+        //   "fixedSize": false,
+        //   "mode": "inline",
+        //   "value":`${pic3!}`,
+        //   "disabled": true,
+        // },
         {
           "type": "divider",
           "id": "u:c8ddd15c688d"
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
index 429e960..5fda9e2 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js
@@ -316,7 +316,7 @@
                 }
                 let div_array = $('#cancelClasses').find('div');
                 let str = '';
-                for (let i = 0; i < div_array.length; i++) {
+                for (let i = 1; i < div_array.length; i++) {
                     let v = $($(div_array[i]).find('img')[0]).attr('src');
                     str += v + ";";
                 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
index 630a5d1..a5649bd 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -125,8 +125,8 @@
             for (Store store : storeList) {
                 String storeLon = store.getLon();
                 String storeLat = store.getLat();
-                String result = storeLon + "," + storeLat;
-                String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result);
+//                String result = storeLon + "," + storeLat;
+//                String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result);
                 long l = 0;
 //                try {
 //                    l = Long.parseLong(distanceTOKilometer);
@@ -137,7 +137,11 @@
                 info.setStoreId(store.getId());
                 info.setStoreName(store.getName());
                 info.setStoreImg(store.getCoverDrawing());
-                info.setDistance((long) Double.parseDouble(distanceTOKilometer));
+//                info.setDistance( Double.parseDouble(distanceTOKilometer));
+
+                Map<String, Double> distance = GeodesyUtil.getDistance(list.getLongitude() + "," + list.getLatitude(), storeLon + "," + storeLat);
+                double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+                info.setDistance(wgs84);
 
 
                 String str = store.getAddress();
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java
index 71178dc..91f38b6 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java
@@ -14,7 +14,7 @@
     private String storeImg;
 
     @ApiModelProperty(value = "门店距离当前位置")
-    private long distance;
+    private double distance;
 
     @ApiModelProperty(value = "门店名称")
     private String storeName;

--
Gitblit v1.7.1