From 8e524f6e570fca66f670a8072edefc6ca2d4e2f9 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 01 十一月 2023 08:55:02 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_three.html                        |    4 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java        |    7 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_two.html                           |    7 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java                       |  184 ++---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                       |    4 
 cloud-server-other/src/main/resources/mapper/StoreMapper.xml                                                   |    7 
 cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java                                            |    2 
 cloud-server-other/src/main/resources/mapper/SiteMapper.xml                                                    |    2 
 cloud-server-management/src/main/resources/mapper/DeptMapper.xml                                               |    3 
 cloud-server-management/src/main/resources/mapper/UserMapper.xml                                               |    3 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java                   |  104 +--
 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java                       |    8 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java             |   10 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html                                |   89 +--
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                   |   33 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java     |    4 
 cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js                      |    4 
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java            |   18 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java                |    3 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_two.html                          |    4 
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                               |    1 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java            |    3 
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java                              |    1 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java            |    5 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java                       |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java     |   18 
 cloud-server-other/src/main/resources/mapper/BannerMapper.xml                                                  |    1 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java                |  226 ++++++-
 cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java                              |    4 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit1.html                               |   60 ++
 cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java                     |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java                     |    8 
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java                           |   14 
 cloud-server-management/src/main/webapp/static/modular/system/user/user.js                                     |    2 
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java                                  |    2 
 cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java                                 |   19 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_three.html                         |    4 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java |   12 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java             |    5 
 cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java                             |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java                   |    1 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java                     |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java                 |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java               |   46 
 cloud-server-activity/src/main/java/com/dsh/activity/entity/CourseChangeStateDTO.java                          |   11 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java                              |    9 
 cloud-server-management/src/main/resources/mapper/RoleMapper.xml                                               |    3 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html                                 |   74 +-
 cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html                                     |    3 
 cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java                                         |    2 
 cloud-server-competition/src/main/java/com/dsh/competition/entity/Participant.java                             |    2 
 cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml                                    |   12 
 cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js                                |   83 --
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                       |  315 +++++-----
 cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml                                |   16 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java                        |    8 
 cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml                                       |    8 
 cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java                                       |    2 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java  |    2 
 cloud-server-competition/src/main/java/com/dsh/competition/util/CodeGenerateUtils.java                         |    0 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java    |    3 
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java               |   73 ++
 62 files changed, 945 insertions(+), 623 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 a0045da..4584afb 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
@@ -78,6 +78,20 @@
         }
     }
 
+
+    @ResponseBody
+    @PostMapping("/student/queryListByIds")
+    public List<TStudent> queryListByIds(@RequestBody List<Integer> collect){
+        try {
+            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().in("id",collect).eq("state", 1));
+            return list;
+        }catch (Exception e){
+            e.printStackTrace();
+            return new ArrayList<>();
+        }
+    }
+
+
     @ResponseBody
     @PostMapping("/student/queryStudentCom")
     public  List<Map<String, Object>> queryStudentCom(@RequestBody Integer id){
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
index c107e9f..7de2ec7 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -284,12 +284,12 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
     public ResultUtil<List<Goods>> pointsMallList(MallRequest request){
-        try {
+//        try {
         System.out.println("======request========"+request);
             return ResultUtil.success(tauService.queryAppUserIntegral(request));
-        }catch (Exception e){
-            return ResultUtil.runErr();
-        }
+//        }catch (Exception e){
+//            return ResultUtil.runErr();
+//        }
     }
 
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java
index d15782a..fef4237 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java
@@ -18,6 +18,9 @@
     @PostMapping("/base/competition/getCompetitionsDetails")
     List<PurchaseRecordVo> getStuSourseList(@RequestBody GetStuSourseList getStuSourseList);
 
+    @PostMapping("/base/competition/getCompetitionsDetails1")
+    List<PurchaseRecordVo> getStuSourseList1(@RequestBody GetStuSourseList getStuSourseList);
+
     @PostMapping("/base/competition/getPayedCompetitions")
     BillingRequestVo getAllCompetitionPayRecord(@RequestBody BillingDataRequestVo requestVo);
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java
index 00e583d..5b09502 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/sourceDetail/RecordTimeRequest.java
@@ -14,4 +14,7 @@
 
     @ApiModelProperty(value = "类型:1增加 2扣减 ", dataType = "int")
     private Integer type;
+
+    @ApiModelProperty(value = "课包id", dataType = "int")
+    private Integer lessionId;
 }
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 14f73c9..79458e2 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
@@ -1179,183 +1179,185 @@
     @Transactional
     public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) {
         System.out.println("exchangeType:--->");
+
         System.out.println(exchangeType);
-
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
-        PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
-        if (ToolUtil.isEmpty(merchandise)){
-            return ResultUtil.error("商品不存在");
-        }
-
-
-        TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
-
-
-        if(merchandise.getUserPopulation()==2){
-            if(tAppUser.getIsVip()==0){
-                return ResultUtil.error("该商品只能年度会员购买");
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+            PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
+            if (ToolUtil.isEmpty(merchandise)){
+                return ResultUtil.error("商品不存在");
             }
-        }
 
+            TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
 
-
-        if(merchandise.getUserPopulation()==3){
-            List<TStudent> students = tsmapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, userIdFormRedis));
-            if(students.size()==0){
-                return ResultUtil.error("该商品只能已有学员用户购买");
+            if(merchandise.getUserPopulation()==2){
+                if(tAppUser.getIsVip()==0){
+                    return ResultUtil.error("该商品只能年度会员购买");
+                }
             }
-        }
 
+            if(merchandise.getUserPopulation()==3){
+                List<TStudent> students = tsmapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, userIdFormRedis));
+                if(students.size()==0){
+                    return ResultUtil.error("该商品只能已有学员用户购买");
+                }
+            }
 
-        if (ToolUtil.isEmpty(tAppUser)){
-            return ResultUtil.error("用户不存在");
-        }
-        int goodsNums = 0;
-        if (ToolUtil.isEmpty(exchangeType.getNums())){
-            goodsNums = 1;
-        }else {
-            goodsNums = exchangeType.getNums();
-        }
-        AppUserGoodResp goodResp = new AppUserGoodResp();
-        goodResp.setAppUserId(userIdFormRedis);
-        goodResp.setGoodId(merchandise.getId());
-        int count = mcClient.queryUserHasGoodsNums(goodResp);
-        if (ToolUtil.isNotEmpty(count) && count >= merchandise.getPickUpQuantity()){
-            return ResultUtil.error("超过限领数量");
-        }
-        int count1 = mcClient.queryUserHasGoodsNums1(goodResp);
-        if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()){
-            return ResultUtil.error("超过发放数量");
-        }
+            if (ToolUtil.isEmpty(tAppUser)){
+                return ResultUtil.error("用户不存在");
+            }
+            int goodsNums = 0;
+            if (ToolUtil.isEmpty(exchangeType.getNums())){
+                goodsNums = 1;
+            }else {
+                goodsNums = exchangeType.getNums();
+            }
+            AppUserGoodResp goodResp = new AppUserGoodResp();
+            goodResp.setAppUserId(userIdFormRedis);
+            goodResp.setGoodId(merchandise.getId());
+            int count = mcClient.queryUserHasGoodsNums(goodResp);
+            if (ToolUtil.isNotEmpty(count) && count >= merchandise.getPickUpQuantity()){
+                return ResultUtil.error("超过限领数量");
+            }
+            int count1 = mcClient.queryUserHasGoodsNums1(goodResp);
+            if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()){
+                return ResultUtil.error("超过发放数量");
+            }
 
+            for (int i = 0; i < goodsNums; i++) {
+//            新增积分商品兑换记录
+                UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
+                pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
+                pointsMerchandise.setUserId(userIdFormRedis);
+                pointsMerchandise.setStatus(1);
+                pointsMerchandise.setState(1);
+                pointsMerchandise.setPayStatus(1);
+                if (merchandise.getUseScope() == 3){
+                    if (exchangeType.getGoodsType() == 2){
+                        CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
+                        pointsMerchandise.setStoreId(coursePackage.getStoreId());
+                    }else {
+                        pointsMerchandise.setStoreId(exchangeType.getStoreId());
+                    }
+                }
+                pointsMerchandise.setCode(code);
+                mcClient.saveDetailsUserPointMercase(pointsMerchandise);
+            }
 
-
-        switch (exchangeType.getExchangeType()){
+            switch (exchangeType.getExchangeType()){
 //            积分
-            case 1:
-                boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
-                if (b){
-                    switch (exchangeType.getGoodsType()){
-                        case 2:
-                            Integer stuNums = 0;
-                            if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
-                                stuNums = exchangeType.getStuIds().size();
-                            }else {
-                                stuNums = 1;
-                            }
-                            for (int i = 0; i < stuNums; i++) {
-                                List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
-                                TCoursePackagePayment packagePayment = new TCoursePackagePayment();
-                                packagePayment.setAppUserId(userIdFormRedis);
-                                packagePayment.setStudentId(exchangeType.getStuIds().get(i));
-                                packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
-                                for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
-                                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
-                                        packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
-                                        packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
-                                        packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
-                                        packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
-                                        break;
-                                    }
+                case 1:
+                    boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
+                    if (b){
+                        switch (exchangeType.getGoodsType()){
+                            case 2:
+                                Integer stuNums = 0;
+                                if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
+                                    stuNums = exchangeType.getStuIds().size();
+                                }else {
+                                    stuNums = 1;
                                 }
-                                packagePayment.setPlayPaiCoin(merchandise.getIntegral());
-                                packagePayment.setAbsencesNumber(0);
-                                packagePayment.setPayUserType(1);
-                                packagePayment.setPayStatus(2);
-                                packagePayment.setPayUserId(userIdFormRedis);
-                                packagePayment.setStatus(1);
-                                packagePayment.setState(1);
-                                packagePayment.setCode(code);
-                                paymentClient.savePaymentCoursePackage(packagePayment);
+                                for (int i = 0; i < stuNums; i++) {
+                                    List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
+                                    TCoursePackagePayment packagePayment = new TCoursePackagePayment();
+                                    packagePayment.setAppUserId(userIdFormRedis);
+                                    packagePayment.setStudentId(exchangeType.getStuIds().get(i));
+                                    packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
+                                    for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
+                                        if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
+                                            packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
+                                            packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
+                                            packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
+                                            packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+                                            break;
+                                        }
+                                    }
+                                    packagePayment.setPlayPaiCoin(merchandise.getIntegral());
+                                    packagePayment.setAbsencesNumber(0);
+                                    packagePayment.setPayUserType(1);
+                                    packagePayment.setPayStatus(2);
+                                    packagePayment.setPayUserId(userIdFormRedis);
+                                    packagePayment.setStatus(1);
+                                    packagePayment.setState(1);
+                                    packagePayment.setCode(code);
+                                    paymentClient.savePaymentCoursePackage(packagePayment);
+                                }
+                                break;
+                            case 4:
+                                for (int i = 0; i < goodsNums; i++) {
+                                    UserCoupon coupon = new UserCoupon();
+                                    coupon.setCouponId(exchangeType.getGoodId());
+                                    coupon.setUserId(userIdFormRedis);
+                                    coupon.setStatus(1);
+                                    ucponClient.insertToAppuserCoupon(coupon);
+                                }
+                                break;
+                            default:
+                                break;
+                        }
+                    }else {
+                        return ResultUtil.error("用户积分不足!");
+                    }
+                    break;
+                case 2:
+//                积分+现金
+                    boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
+                    switch (exchangeType.getPayType()) {
+                        case 1:
+                            try {
+                                if (merchandise.getType() == 2) {
+                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+                                } else {
+                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+                                }
+                            } catch (Exception e) {
+                                return ResultUtil.runErr();
                             }
-                            break;
-                        case 4:
-                            for (int i = 0; i < goodsNums; i++) {
-                                UserCoupon coupon = new UserCoupon();
-                                coupon.setCouponId(exchangeType.getGoodId());
-                                coupon.setUserId(userIdFormRedis);
-                                coupon.setStatus(1);
-                                ucponClient.insertToAppuserCoupon(coupon);
+                        case 2:
+                            if (merchandise.getType() == 2) {
+                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+                            } else {
+                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                             }
-                            break;
                         default:
                             break;
                     }
-                }else {
-                    return ResultUtil.error("用户积分不足!");
-                }
-                break;
-            case 2:
-//                积分+现金
-                boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
-                switch (exchangeType.getPayType()) {
-                    case 1:
-                        try {
-                            if (merchandise.getType() == 2) {
-                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
-                            } else {
-                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+                    break;
+                case 3:
+                    switch (exchangeType.getPayType()) {
+                        case 1:
+                            try {
+                                if (merchandise.getType() == 2) {
+                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+                                } else {
+                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+                                }
+                            } catch (Exception e) {
+                                return ResultUtil.runErr();
                             }
-                        } catch (Exception e) {
-                            return ResultUtil.runErr();
-                        }
-                    case 2:
-                        if (merchandise.getType() == 2) {
-                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
-                        } else {
-                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
-                        }
-                    default:
-                        break;
-                }
-                break;
-            case 3:
-                switch (exchangeType.getPayType()) {
-                    case 1:
-                        try {
+                        case 2:
                             if (merchandise.getType() == 2) {
-                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                             } else {
-                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                             }
-                        } catch (Exception e) {
-                            return ResultUtil.runErr();
-                        }
-                    case 2:
-                        if (merchandise.getType() == 2) {
-                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
-                        } else {
-                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
-                        }
-                    default:
-                        break;
-                }
-                break;
-            default:
-                break;
-        }
-
-        for (int i = 0; i < goodsNums; i++) {
-//            新增积分商品兑换记录
-            UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
-            pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
-            pointsMerchandise.setUserId(userIdFormRedis);
-            pointsMerchandise.setStatus(1);
-            pointsMerchandise.setState(1);
-            if (merchandise.getUseScope() == 3){
-                if (exchangeType.getGoodsType() == 2){
-                    CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
-                    pointsMerchandise.setStoreId(coursePackage.getStoreId());
-                }else {
-                    pointsMerchandise.setStoreId(exchangeType.getStoreId());
-                }
+                        default:
+                            break;
+                    }
+                    break;
+                default:
+                    break;
             }
-            pointsMerchandise.setCode(code);
-            mcClient.saveDetailsUserPointMercase(pointsMerchandise);
+
+
+
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
         }
 
-        return ResultUtil.success();
     }
 
     public boolean dealAppUserIntegral(Integer appUserId,TAppUser appUser,Integer points){
@@ -1382,7 +1384,8 @@
     }
 
     private ResultUtil AlipayPayment(BigDecimal cash, String code) {
-        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "", "", code, cash.toString(),
+        System.out.println("金额:"+cash);
+        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, cash.toString(),
                 "/base/pointMer/exchangeGoodPaymentAliCallback");
         if(alipay.getCode() == 200){
             new Thread(new Runnable() {
@@ -1395,7 +1398,9 @@
                             int min = 5000;
                             wait += (min * num);
                             Thread.sleep(wait);
+                            System.out.println("code:"+code);
                             List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
+                            System.out.println("list-----"+userPointsMerchandises);
                             if(userPointsMerchandises.get(0).getPayStatus() == 2){
                                 break;
                             }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index d8adaae..2bee448 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -291,6 +291,10 @@
         if(timeRequest.getType()!=null){
             eq.eq(TCourseInfoRecord::getType,timeRequest.getType());
         }
+        if (timeRequest.getLessionId()!=null){
+            eq.eq(TCourseInfoRecord::getCourseId,timeRequest.getLessionId());
+
+        }
         // 2.0其他记录
         List<TCourseInfoRecord> list = courseInfoRecordService.list(eq);
         List<PurchaseRecordVo> list1=new ArrayList<>();
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index 4506280..3ca1fe4 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -32,8 +32,6 @@
 
     @Autowired
     private PayMoneyUtil payMoneyUtil;
-    @Autowired
-    private VipPaymentMapper vipPaymentMapper;
 
 
 
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 91bafa8..302410c 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -89,12 +89,23 @@
      * 门票上下架 state=1 上架 state=2 下架
      */
     @RequestMapping("/base/pointMerchars/changeState")
-    public Object changeState(@RequestBody CoachChangeStateVO dto){
-        return pmdsService.changeState(dto);
+    public void changeState(@RequestBody CoachChangeStateVO dto){
+
+
+         pmdsService.changeState(dto);
     }
     /**
      * 门票核销
      */
+
+    @RequestMapping("/base/course/changeState")
+    @ResponseBody
+    public Object changeState(@RequestBody CourseChangeStateDTO dto){
+        return userPointsMerchandiseService.changeState(dto);
+    }
+
+
+
     @RequestMapping("/base/pointMerchars/writeOff")
     public Object writeOff(@RequestBody WriteOffDTO dto){
         UserPointsMerchandise byId = userPointsMerchandiseService.getById(dto.getId());
@@ -481,13 +492,18 @@
         ProductDetailsVo detailsVo = new ProductDetailsVo();
         PointsMerchandise merchandise = pmdsService.getById(detailRequest.getGoodId());
 
-        detailsVo.setCardType(merchandise.getCardType());
+
+
+        if (merchandise!=null) {
+            detailsVo.setCardType(merchandise.getCardType());
+        }
         switch (detailRequest.getGoodsType()){
             case 2:
 //                课包
                 CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId());
 
-                detailsVo.setGoodId(coursePackage.getId());
+//                detailsVo.setGoodId(coursePackage.getId());
+                detailsVo.setGoodId(merchandise.getId());
                 List<String> list1 = new ArrayList<>();
                 list1.add(coursePackage.getCoverDrawing());
                 list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")));
@@ -621,10 +637,10 @@
                 });
                 detailsVo.setGoodName(coupon.getName());
                 detailsVo.setBelongsScope(coupon.getUserPopulation());
-                int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
-                        .eq("pointsMerchandiseId",merchandise.getId() ));
-                detailsVo.setRedeemedNum(couponNums);
-                detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0));
+//                int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
+//                        .eq("pointsMerchandiseId",merchandise.getId() ));
+                detailsVo.setRedeemedNum(coupon.getPickUpQuantity());
+                detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - coupon.getPickUpQuantity(), 0));
                 detailsVo.setPerLimit(coupon.getPickUpQuantity());
                 detailsVo.setExchangeType(coupon.getRedemptionMethod());
                 if (coupon.getRedemptionMethod() == 1){
@@ -860,6 +876,7 @@
         upmseService.updateById(merchandise);
     }
 
+    @ResponseBody
     @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode")
     public List<UserPointsMerchandise> queryUserPointMerchaseByCode(@RequestBody String code){
         return upmseService.list(new QueryWrapper<UserPointsMerchandise>()
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/CourseChangeStateDTO.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CourseChangeStateDTO.java
new file mode 100644
index 0000000..62bb455
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CourseChangeStateDTO.java
@@ -0,0 +1,11 @@
+package com.dsh.activity.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CourseChangeStateDTO {
+    private List<Integer> ids;
+    private Integer state;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
index 49248dd..889ccd6 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
@@ -37,7 +37,7 @@
 
     List<Map<String, Object>> ticketList(@Param("query") IntegralGoodsOfSearch ofSearch);
 
-    int changeState(@Param("query") CoachChangeStateVO dto);
+    void changeState(@Param("ids") List<Integer> ids ,@Param("state") Integer state);
 
     void saveCity(@Param("id") Integer id, @Param("province") String province, @Param("provinceCode") String provinceCode, @Param("city") String city, @Param("cityCode") String cityCode);
 
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
index 9353ec6..605dc03 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserPointsMerchandiseMapper.java
@@ -23,4 +23,5 @@
     List<PointMerchandiseIncomeVo> getAmount();
 
 
+    Object changeState(List<Integer> ids, Integer state);
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
index 4c7adc5..cb26606 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
@@ -26,6 +26,6 @@
 
     List<Map<String, Object>> ticketList(IntegralGoodsOfSearch ofSearch);
 
-    Object changeState(CoachChangeStateVO dto);
+    void changeState(CoachChangeStateVO dto);
 
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java
index 011c310..76b505b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/UserPointsMerchandiseService.java
@@ -1,6 +1,7 @@
 package com.dsh.activity.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.CourseChangeStateDTO;
 import com.dsh.activity.entity.UserPointsMerchandise;
 import com.dsh.activity.model.PointMerchandiseIncomeVo;
 import com.dsh.activity.model.request.PointMercharsPayedVo;
@@ -20,4 +21,5 @@
 
     List<PointMerchandiseIncomeVo> getAmount();
 
+    Object changeState(CourseChangeStateDTO dto);
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
index 4d5589c..a287320 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
@@ -80,27 +80,31 @@
 
         List<BenefitsVideoClassificationListVo> listVos = new ArrayList<>();
         for (BenefitsVideoClassification benefitsVideoClassification : list) {
-            BenefitsVideoClassificationListVo benefitsVideoClassificationListVo = new BenefitsVideoClassificationListVo();
-            benefitsVideoClassificationListVo.setId(benefitsVideoClassification.getId());
-            benefitsVideoClassificationListVo.setName(benefitsVideoClassification.getName());
-            QueryWrapper<BenefitsVideos> benefitsVideosQueryWrapper = new QueryWrapper<BenefitsVideos>().eq("state", 1).eq("benefitsVideoClassificationId",benefitsVideoClassification.getId());
-            if(collect.size() > 0){
-                benefitsVideosQueryWrapper.notIn("id", collect);
+            if (benefitsVideoClassification.getState() == 1) {
+                BenefitsVideoClassificationListVo benefitsVideoClassificationListVo = new BenefitsVideoClassificationListVo();
+                benefitsVideoClassificationListVo.setId(benefitsVideoClassification.getId());
+                benefitsVideoClassificationListVo.setName(benefitsVideoClassification.getName());
+                QueryWrapper<BenefitsVideos> benefitsVideosQueryWrapper = new QueryWrapper<BenefitsVideos>().eq("state", 1).eq("benefitsVideoClassificationId", benefitsVideoClassification.getId());
+                if (collect.size() > 0) {
+                    benefitsVideosQueryWrapper.notIn("id", collect);
+                }
+                List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.orderByDesc("insertTime").last(" limit 0, 4"));
+                List<BenefitsVideosListVo> lists = new ArrayList<>();
+                for (BenefitsVideos benefitsVideos : list1) {
+                    if (benefitsVideos.getState()==1) {
+                        Integer courseId = benefitsVideos.getCourseId();
+                        Course course = courseClient.queryCourseById(courseId);
+                        BenefitsVideosListVo benefitsVideosListVo = new BenefitsVideosListVo();
+                        benefitsVideosListVo.setId(benefitsVideos.getId());
+                        benefitsVideosListVo.setName(course.getName());
+                        benefitsVideosListVo.setCover(course.getCoverDrawing());
+                        benefitsVideosListVo.setIntroduce(course.getIntroduce());
+                        lists.add(benefitsVideosListVo);
+                    }
+                }
+                benefitsVideoClassificationListVo.setList(lists);
+                listVos.add(benefitsVideoClassificationListVo);
             }
-            List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.orderByDesc("insertTime").last(" limit 0, 4"));
-            List<BenefitsVideosListVo> lists = new ArrayList<>();
-            for (BenefitsVideos benefitsVideos : list1) {
-                Integer courseId = benefitsVideos.getCourseId();
-                Course course = courseClient.queryCourseById(courseId);
-                BenefitsVideosListVo benefitsVideosListVo = new BenefitsVideosListVo();
-                benefitsVideosListVo.setId(benefitsVideos.getId());
-                benefitsVideosListVo.setName(course.getName());
-                benefitsVideosListVo.setCover(course.getCoverDrawing());
-                benefitsVideosListVo.setIntroduce(course.getIntroduce());
-                lists.add(benefitsVideosListVo);
-            }
-            benefitsVideoClassificationListVo.setList(lists);
-            listVos.add(benefitsVideoClassificationListVo);
         }
         return listVos;
     }
@@ -146,10 +150,12 @@
     public List<BenefitsVideosListVo> queryBenefitsVideosList(Integer uid, Integer classificationId, String search, Integer pageSize, Integer pageNo) throws Exception {
         pageSize = (pageSize - 1) * pageNo;
         List<Integer> ids = null;
+
         if(ToolUtil.isNotEmpty(search)){
             List<Course> courses = courseClient.queryCourseByName(search);
             ids = courses.stream().map(Course::getId).collect(Collectors.toList());
         }
+
         List<Map<String, Object>> benefitsVideos = this.baseMapper.queryBenefitsVideosList(uid, classificationId, ids, pageSize, pageNo);
         List<BenefitsVideosListVo> lists = new ArrayList<>();
         for (Map<String, Object> benefitsVideo : benefitsVideos) {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
index e0c9309..b8e19fa 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
@@ -45,7 +45,8 @@
     }
 
     @Override
-    public Object changeState(CoachChangeStateVO dto) {
-        return this.baseMapper.changeState(dto);
+    public void changeState(CoachChangeStateVO dto) {
+        List<Integer> ids = dto.getIds();
+        this.baseMapper.changeState(ids,dto.getState());
     }
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
index ea80b05..150a419 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
@@ -1,6 +1,7 @@
 package com.dsh.activity.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.CourseChangeStateDTO;
 import com.dsh.activity.entity.UserPointsMerchandise;
 import com.dsh.activity.mapper.UserPointsMerchandiseMapper;
 import com.dsh.activity.model.PointMerchandiseIncomeVo;
@@ -28,4 +29,10 @@
     public List<PointMerchandiseIncomeVo> getAmount() {
        return userPointsMerchandiseMapper.getAmount();
     }
+
+    @Override
+    public Object changeState(CourseChangeStateDTO dto) {
+        List<Integer> ids = dto.getIds();
+        return this.baseMapper.changeState(ids,dto.getState());
+    }
 }
diff --git a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
index e0af730..1b6d0b3 100644
--- a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
@@ -3,13 +3,12 @@
 <mapper namespace="com.dsh.activity.mapper.BenefitsVideosMapper">
 
 
-    <select id="queryBenefitsVideosList" resultType="map">
-        select * from (
+    <select id="queryBenefitsVideosList" resultType="java.util.Map">
             (select
             id,
             courseId,
             integral,
-            0 as study
+            "0" as study
             from t_benefits_videos where state = 1 and id not in (select benefitsVideosId from t_user_benefits_videos where appUserId = #{uid})
             <if test="null != classificationId">
                 and benefitsVideoClassificationId = #{classificationId}
@@ -28,7 +27,7 @@
             id,
             courseId,
             integral,
-            1 as study
+            "1" as study
             from t_benefits_videos where state = 1 and id in (select benefitsVideosId from t_user_benefits_videos where appUserId = #{uid})
             <if test="null != classificationId">
                 and benefitsVideoClassificationId = #{classificationId}
@@ -40,7 +39,6 @@
                 </foreach>
             </if>
             order by insertTime desc)
-        ) as a limit #{pageSize}, #{pageNo}
     </select>
     <select id="getBenefitVideoById" resultType="com.dsh.activity.entity.BenefitsVideos">
         select * from t_benefits_videos where
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
index fb5eb8f..e58d540 100644
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -110,13 +110,13 @@
         and `type` = 3
         order by sort desc
     </select>
-    <select id="changeState" resultType="java.lang.Integer">
-        update t_points_merchandise set
-        shelves = #{query.state}
+    <select id="changeState" >
+        update t_benefits_videos set
+        state = #{state}
         <where>
-            <if test="query.ids != null and query.ids.size()>0">
-                AND t_points_merchandise.id IN
-                <foreach collection="query.ids" separator="," item="id" open="(" close=")">
+            <if test="ids != null and ids.size()>0">
+                AND t_benefits_videos.id IN
+                <foreach collection="ids" separator="," item="id" open="(" close=")">
                     #{id}
                 </foreach>
             </if>
diff --git a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
index fff3a7b..5db81fc 100644
--- a/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
@@ -1,6 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dsh.activity.mapper.UserPointsMerchandiseMapper">
+    <update id="changeState">
+        update t_benefits_videos set
+        state = #{state}
+        <where>
+            <if test="ids != null and ids.size()>0">
+                AND t_benefits_videos.id IN
+                <foreach collection="ids" separator="," item="id" open="(" close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+
+
+
+
+    </update>
 
 
     <select id="getAmount" resultType="com.dsh.activity.model.PointMerchandiseIncomeVo">
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index 62ddfb2..ff4b14f 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -11,6 +11,7 @@
 import com.dsh.competition.entity.UserCompetition;
 import com.dsh.competition.feignclient.account.AppUserClient;
 import com.dsh.competition.feignclient.account.model.AppUser;
+import com.dsh.competition.feignclient.course.CoursePackagePaymentClient;
 import com.dsh.competition.feignclient.model.*;
 import com.dsh.competition.model.*;
 import com.dsh.competition.service.CompetitionService;
@@ -25,9 +26,11 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
+import lombok.Synchronized;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
@@ -201,6 +204,38 @@
     }
 
 
+    @PostMapping("/base/competition/getCompetitionsDetails1")
+    public List<PurchaseRecordVo> getStuSourseList1(@RequestBody GetStuSourseList sourseList){
+
+        List<PurchaseRecordVo> recordVos = new ArrayList<>();
+
+        ArrayList<Integer> integers = new ArrayList<>();
+        integers.add(4);
+        List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
+                .in("payType",integers )
+                .eq("appUserId", sourseList.getAppUserId())
+                .eq("state",1));
+        if (list.size() > 0){
+            List<Long> comIds = list.stream().map(PaymentCompetition::getId).collect(Collectors.toList());
+            List<UserCompetition> userCompetitions = ucttService.list(new QueryWrapper<UserCompetition>()
+                    .between("insertTime", sourseList.getStartTime(),sourseList.getEndTime() )
+                    .eq("appUserId", sourseList.getAppUserId())
+                    .in("paymentCompetitionId",comIds ));
+            if (userCompetitions.size() > 0){
+                userCompetitions.forEach(coms ->{
+                    PurchaseRecordVo recordVo = new PurchaseRecordVo();
+                    recordVo.setPurchaseType("报名赛事");
+                    recordVo.setPurchaseTime(dateFormat.format(coms.getInsertTime()));
+                    PaymentCompetition paymentCompetition = paymentCompetitionService.getById(coms.getPaymentCompetitionId());
+                    recordVo.setPurchaseAmount("-"+paymentCompetition.getAmount());
+                    recordVos.add(recordVo);
+                });
+            }
+        }
+
+        return recordVos;
+    }
+
 
 
 
@@ -254,6 +289,9 @@
 
     @Autowired
     private CompetitionService competitionService;
+    @Resource
+    private  CoursePackagePaymentClient coursePackagePaymentClient;
+
 
     @ResponseBody
     @PostMapping("/api/competition/paymentCompetition")
@@ -262,30 +300,39 @@
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
 
     })
-    public ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo){
+
+    public synchronized ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo){
         try {
-
-
             Competition byId = competitionService.getById(paymentCompetitionVo.getId());
-            Date date = byId.getEndTime(); // Assuming you have a Date object
-
+            Date date = byId.getEndTime();
+            // Assuming you have a Date object
             // Check if the date is past the current time
             boolean isPast = date.after(new Date());
-
             if (!isPast) {
                 return new ResultUtil(0,"已超过截至报名时间");
             }
-
-
-
-
             Integer uid = tokenUtil.getUserIdFormRedis();
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-
-
-
+            if (byId.getRegisterCondition()==3){
+             Integer counts =    coursePackagePaymentClient.isHave(uid);
+                if (counts==0){
+                    return new ResultUtil(0,"当前赛事仅限已购课学员报名");
+                }
+            }
+            if (byId.getRegisterCondition()==2){
+                AppUser appUser = appUserClient.queryAppUser(uid);
+                if (appUser.getIsVip()==0){
+                    return new ResultUtil(0,"当前赛事仅限年度会员报名");
+                }else {
+                    Date vipEndTime = appUser.getVipEndTime();
+                    Date currentTime = new Date(); // Current time
+                    if (vipEndTime.before(currentTime)) {
+                        return new ResultUtil(0,"您的年度会员已过期,请续费");
+                    }
+                }
+            }
             return cttService.paymentCompetition(uid, paymentCompetitionVo);
         }catch (Exception e){
             e.printStackTrace();
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Participant.java b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Participant.java
index d9146e3..6c8515b 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Participant.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Participant.java
@@ -18,7 +18,7 @@
     /**
      * 主键
      */
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id")
     private Integer id;
     /**
      * 用户id
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java
index 184cd77..57365cc 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java
@@ -46,5 +46,7 @@
     @PostMapping("/coursePackagePayment/paymentCompetitionCourseList")
     List<PayCourseRes> paymentCompetitionCourseList(String s);
 
+    @PostMapping("/coursePackagePayment/isHave")
 
+    Integer isHave(Integer uid);
 }
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java
index d310d4a..d8fa0ea 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
@@ -239,15 +239,15 @@
         if(paymentCompetitionVo.getPayType() == 4){//课程
             money = new BigDecimal(competition.getClassPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN);
             for (String s : split) {
-                Participant participant = participantService.getById(s);
-                Student student = studentClient.queryStudentByPhone(participant.getPhone());
-                if(null == student){
-                    return ResultUtil.error(participant.getName() + "不是学员,无法使用课时支付。");
-                }
+//                Participant participant = participantService.getById(s);
+//                Student student = studentClient.queryStudentByPhone(participant.getPhone());
+//                if(null == student){
+//                    return ResultUtil.error(participant.getName() + "不是学员,无法使用课时支付。");
+//                }
                 // 2.0
                 Integer integer = coursePackagePaymentClient.queryResidueClassHourById(paymentCompetitionVo.getCoursePaymentId());
                 if(new BigDecimal(integer).compareTo(new BigDecimal(competition.getClassPrice())) < 0){
-                    return ResultUtil.error(participant.getName() + "剩余课时不足,无法完成支付。");
+                    return ResultUtil.error( "剩余课时不足,无法完成支付。");
                 }
             }
         }
@@ -297,10 +297,10 @@
         }
         if(paymentCompetitionVo.getPayType() == 4){//课程
             for (String s : split) {
-                Participant participant = participantService.getById(s);
-                Student student = studentClient.queryStudentByPhone(participant.getPhone());
+//                Participant participant = participantService.getById(s);
+//                Student student = studentClient.queryStudentByPhone(participant.getPhone());
                 PaymentDeductionClassHour paymentDeductionClassHour = new PaymentDeductionClassHour();
-                paymentDeductionClassHour.setId(student.getId());
+                paymentDeductionClassHour.setId(Integer.valueOf(s));
                 paymentDeductionClassHour.setClassHour(competition.getClassPrice());
                 paymentDeductionClassHour.setCode(code);
                 paymentDeductionClassHour.setCourseId(paymentCompetitionVo.getCoursePaymentId());
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/CodeGenerateUtils.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/CodeGenerateUtils.java
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/CodeGenerateUtils.java
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index 10eb06d..cb5f581 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -67,7 +67,6 @@
     @RequestMapping("/base/course/changeState")
     @ResponseBody
     public Object changeState(@RequestBody CourseChangeStateDTO dto){
-
         return courseService.changeState(dto);
     }
 
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 cc5e377..c48f6a3 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
@@ -184,8 +184,6 @@
             String[] end = value1.split(",");
             for (int i = 0; i < star.length; i++) {
     //                int index = star[i].indexOf(",");
-    //
-    //
     //                String result = value.substring(0, index).trim();
                 String classStartTime = star[i];
                 String[] split = classStartTime.split(":");
@@ -203,7 +201,7 @@
 
                 Calendar e = Calendar.getInstance();
                 e.setTime(date);
-                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
+                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
                 long timeInMillis = e.getTimeInMillis();
 
                 while (true){
@@ -1088,6 +1086,10 @@
     }
 
 
+    @Autowired
+    private  TCoursePackageService packageService;
+    @Autowired
+    CoursePackageStudentService studentService ;
     /**
      * 课程用于支付进行扣减
      * @param paymentDeductionClassHour
@@ -1101,58 +1103,202 @@
                     .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
             Integer classHour = paymentDeductionClassHour.getClassHour();
             for (TCoursePackagePayment coursePackagePayment : list) {
-                if(coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0){
+                if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) {
                     coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
+                    coursePackagePayment.setAppUserId(null);
                     packagePaymentService.updateById(coursePackagePayment);
 
-                    // 2.0 少于3课时 推送
-                    if(coursePackagePayment.getLaveClassHours()<=3){
-                        Integer appUserId = coursePackagePayment.getAppUserId();
 
-                        //调用推送
-                        HttpHeaders headers = new HttpHeaders();
-                        // 以表单的方式提交
-                        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-                        String s1 = appUserId + "_" + "Three";
-                        //定时修改排课状态
-                        String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id="+s1, String.class);
-                        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-                        if(jsonObject1.getIntValue("code") != 200){
-                            System.err.println(jsonObject1.getString("msg"));
+                    coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId()));
+                    coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
+
+
+
+
+                    Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId());
+
+                    TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
+                    String classWeeks = tCoursePackage.getClassWeeks();
+                    List<Integer> week = week(classWeeks);
+
+                    String[] split = tCoursePackage.getClassStartTime().split(",");
+                    String[] split1 = tCoursePackage.getClassEndTime().split(",");
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+                    SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                    // 本周周几
+                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date()) - 1;
+                    for (Integer integer : week) {
+                        if (integer < i) {
+                            // 找下一周的时间
+                            Calendar instance = Calendar.getInstance();
+                            instance.add(Calendar.DATE, 7 - (i - integer));
+                            Date time = instance.getTime();
+
+                            for (int i1 = 0; i1 < split.length; i1++) {
+
+                                CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                                coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+                                coursePackageScheduling.setClassDate(parse);
+                                coursePackageScheduling.setEndDate(parse1);
+                                coursePackageScheduling.setStatus(1);
+                                coursePackageSchedulingService.save(coursePackageScheduling);
+                                CoursePackageStudent student1 = new CoursePackageStudent();
+                                student1.setAppUserId(student.getAppUserId());
+                                student1.setStudentId(student.getId());
+                                student1.setCoursePackageId(tCoursePackage.getId());
+                                student1.setCoursePackagePaymentId(coursePackagePayment.getId());
+                                student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                                student1.setSignInOrNot(1);
+                                student1.setReservationStatus(1);
+                                student1.setInsertTime(new Date());
+                                studentService.save(student1);
+
+                            }
+
+                        } else if (integer > i) {
+                            Calendar instance = Calendar.getInstance();
+                            instance.add(Calendar.DATE, integer - i);
+                            Date time1 = instance.getTime();
+                            List<Date> list6 = new ArrayList<>();
+                            list6.add(time1);
+                            instance.add(Calendar.DATE, 7);
+                            Date time2 = instance.getTime();
+                            list6.add(time2);
+                            for (Date time : list6) {
+                                for (int i1 = 0; i1 < split.length; i1++) {
+                                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                                    coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                                    Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                    Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+                                    coursePackageScheduling.setClassDate(parse);
+                                    coursePackageScheduling.setEndDate(parse1);
+                                    coursePackageScheduling.setStatus(1);
+                                    coursePackageSchedulingService.save(coursePackageScheduling);
+
+                                    CoursePackageStudent student1 = new CoursePackageStudent();
+                                    student1.setAppUserId(student.getAppUserId());
+                                    student1.setStudentId(student.getId());
+                                    student1.setCoursePackageId(tCoursePackage.getId());
+                                    student1.setCoursePackagePaymentId(coursePackagePayment.getId());
+                                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                                    student1.setSignInOrNot(1);
+                                    student1.setReservationStatus(1);
+                                    student1.setInsertTime(new Date());
+                                    studentService.save(student1);
+                                }
+                            }
+
+                        } else {
+                            Calendar instance = Calendar.getInstance();
+                            instance.add(Calendar.DATE, 7);
+                            Date time = instance.getTime();
+
+                            for (int i1 = 0; i1 < split.length; i1++) {
+                                CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                                coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+                                coursePackageScheduling.setClassDate(parse);
+                                coursePackageScheduling.setEndDate(parse1);
+                                coursePackageScheduling.setStatus(1);
+                                coursePackageSchedulingService.save(coursePackageScheduling);
+
+                                CoursePackageStudent student1 = new CoursePackageStudent();
+                                student1.setAppUserId(student.getAppUserId());
+                                student1.setStudentId(student.getId());
+                                student1.setCoursePackageId(tCoursePackage.getId());
+                                student1.setCoursePackagePaymentId(coursePackagePayment.getId());
+                                student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                                student1.setSignInOrNot(1);
+                                student1.setReservationStatus(1);
+                                student1.setInsertTime(new Date());
+                                studentService.save(student1);
+                            }
                         }
                     }
 
-                    CancelledClasses cancelledClasses = new CancelledClasses();
-                    cancelledClasses.setType(2);
-                    cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
-                    cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
-                    cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
-                    cancelledClasses.setCancelledClassesNumber(classHour);
-                    cancelledClasses.setInsertTime(new Date());
-                    cancelledClassesService.save(cancelledClasses);
-                    break;
-                }else{
-                    CancelledClasses cancelledClasses = new CancelledClasses();
-                    cancelledClasses.setType(2);
-                    cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
-                    cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
-                    cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
-                    cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours());
-                    cancelledClasses.setInsertTime(new Date());
-                    cancelledClassesService.save(cancelledClasses);
 
-                    coursePackagePayment.setLaveClassHours(0);
-                    packagePaymentService.updateById(coursePackagePayment);
+                        // 2.0 少于3课时 推送
+                        if (coursePackagePayment.getLaveClassHours() <= 3) {
+                            Integer appUserId = coursePackagePayment.getAppUserId();
 
-                    classHour -= cancelledClasses.getCancelledClassesNumber();
+                            //调用推送
+                            HttpHeaders headers = new HttpHeaders();
+                            // 以表单的方式提交
+                            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+                            String s1 = appUserId + "_" + "Three";
+                            //定时修改排课状态
+                            String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id=" + s1, String.class);
+                            JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+                            if (jsonObject1.getIntValue("code") != 200) {
+                                System.err.println(jsonObject1.getString("msg"));
+                            }
+                        }
+
+                        CancelledClasses cancelledClasses = new CancelledClasses();
+                        cancelledClasses.setType(2);
+                        cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
+                        cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
+                        cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
+                        cancelledClasses.setCancelledClassesNumber(classHour);
+                        cancelledClasses.setInsertTime(new Date());
+                        cancelledClassesService.save(cancelledClasses);
+                        break;
+                    }else{
+                        CancelledClasses cancelledClasses = new CancelledClasses();
+                        cancelledClasses.setType(2);
+                        cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
+                        cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
+                        cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
+                        cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours());
+                        cancelledClasses.setInsertTime(new Date());
+                        cancelledClassesService.save(cancelledClasses);
+
+                        coursePackagePayment.setLaveClassHours(0);
+                        packagePaymentService.updateById(coursePackagePayment);
+
+                        classHour -= cancelledClasses.getCancelledClassesNumber();
+                    }
                 }
-            }
+
+
         }catch (Exception e){
             e.printStackTrace();
         }
     }
 
-
+    private List<Integer> week(String week){
+        String[] split = week.split(";");
+        ArrayList<Integer> integers = new ArrayList<>();
+        for (String s : split) {
+            switch (s){
+                case "周一":
+                    integers.add(1);
+                    break;
+                case "周二":
+                    integers.add(2);
+                    break;
+                case "周三":
+                    integers.add(3);
+                    break;
+                case "周四":
+                    integers.add(4);
+                    break;
+                case "周五":
+                    integers.add(5);
+                    break;
+                case "周六":
+                    integers.add(6);
+                    break;
+                case "周日":
+                    integers.add(7);
+                    break;
+            }
+        }
+        return integers;
+    }
     /**
      * 取消赛事回退支付课时
      * @param paymentDeductionClassHour
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
index 547367d..e1074c2 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java
@@ -59,4 +59,14 @@
         coursePackageScheduling.setCoursePackageId(null);
         coursePackageSchedulingService.updateById(coursePackageScheduling);
     }
+
+    /**
+     * 新增数据
+     * @param coursePackageScheduling
+     */
+    @ResponseBody
+    @PostMapping("/coursePackageScheduling/saveCoursePackageScheduling")
+    public void addCoursePackageScheduling(@RequestBody CoursePackageScheduling coursePackageScheduling){
+        coursePackageSchedulingService.save(coursePackageScheduling);
+    }
 }
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 cae2ee6..ae124df 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
@@ -488,7 +488,7 @@
     private StudentClient studentClient;
     @RequestMapping(value = "/toHoli",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
     @ResponseBody
-    public String toHoli(@RequestBody ToHoliDto toHoliDto){
+    public String toHoli(@RequestBody ToHoliDto toHoliDto) throws ParseException {
 
         String [] ids = toHoliDto.getIds();
         List<String> strings = new ArrayList<>();
@@ -555,27 +555,23 @@
 
                         CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                         coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                        try {
-                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                                    Date parse = format1.parse(format.format(time) + " " + split[i1]);
                             Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
                             coursePackageScheduling.setClassDate(parse);
                             coursePackageScheduling.setEndDate(parse1);
                             coursePackageScheduling.setStatus(1);
                             coursePackageSchedulingService.insert(coursePackageScheduling);
 
-                            CoursePackageStudent student1 = new CoursePackageStudent();
-                            student1.setAppUserId(student.getAppUserId());
-                            student1.setStudentId(student.getId());
-                            student1.setCoursePackageId(tCoursePackage.getId());
-                            student1.setCoursePackagePaymentId(holi.getId());
-                            student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                            student1.setSignInOrNot(1);
-                            student1.setReservationStatus(1);
-                            student1.setInsertTime(new Date());
-                            studentService.save(student1);
-                        } catch (ParseException e) {
-                            e.printStackTrace();
-                        }
+                        CoursePackageStudent student1 = new CoursePackageStudent();
+                        student1.setAppUserId(student.getAppUserId());
+                        student1.setStudentId(student.getId());
+                        student1.setCoursePackageId(tCoursePackage.getId());
+                        student1.setCoursePackagePaymentId(holi.getId());
+                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                        student1.setSignInOrNot(1);
+                        student1.setReservationStatus(1);
+                        student1.setInsertTime(new Date());
+                        studentService.save(student1);
 
                     }
 
@@ -592,45 +588,12 @@
                         for (int i1 = 0; i1 < split.length; i1++) {
                             CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                             coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                            try {
-                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
                                 Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
                                 coursePackageScheduling.setClassDate(parse);
                                 coursePackageScheduling.setEndDate(parse1);
                                 coursePackageScheduling.setStatus(1);
                                 coursePackageSchedulingService.insert(coursePackageScheduling);
-
-                                CoursePackageStudent student1 = new CoursePackageStudent();
-                                student1.setAppUserId(student.getAppUserId());
-                                student1.setStudentId(student.getId());
-                                student1.setCoursePackageId(tCoursePackage.getId());
-                                student1.setCoursePackagePaymentId(holi.getId());
-                                student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                                student1.setSignInOrNot(1);
-                                student1.setReservationStatus(1);
-                                student1.setInsertTime(new Date());
-                                studentService.save(student1);
-                            } catch (ParseException e) {
-                                e.printStackTrace();
-                            }
-                        }
-                    }
-
-                }else {
-                    Calendar instance = Calendar.getInstance();
-                    instance.add(Calendar.DATE,7);
-                    Date time = instance.getTime();
-
-                    for (int i1 = 0; i1 < split.length; i1++) {
-                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                        try {
-                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
-                            Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
-                            coursePackageScheduling.setClassDate(parse);
-                            coursePackageScheduling.setEndDate(parse1);
-                            coursePackageScheduling.setStatus(1);
-                            coursePackageSchedulingService.insert(coursePackageScheduling);
 
                             CoursePackageStudent student1 = new CoursePackageStudent();
                             student1.setAppUserId(student.getAppUserId());
@@ -642,9 +605,34 @@
                             student1.setReservationStatus(1);
                             student1.setInsertTime(new Date());
                             studentService.save(student1);
-                        } catch (ParseException e) {
-                            e.printStackTrace();
                         }
+                    }
+
+                }else {
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,7);
+                    Date time = instance.getTime();
+
+                    for (int i1 = 0; i1 < split.length; i1++) {
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                                                    Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                            Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+                            coursePackageScheduling.setClassDate(parse);
+                            coursePackageScheduling.setEndDate(parse1);
+                            coursePackageScheduling.setStatus(1);
+                            coursePackageSchedulingService.insert(coursePackageScheduling);
+
+                        CoursePackageStudent student1 = new CoursePackageStudent();
+                        student1.setAppUserId(student.getAppUserId());
+                        student1.setStudentId(student.getId());
+                        student1.setCoursePackageId(tCoursePackage.getId());
+                        student1.setCoursePackagePaymentId(holi.getId());
+                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                        student1.setSignInOrNot(1);
+                        student1.setReservationStatus(1);
+                        student1.setInsertTime(new Date());
+                        studentService.save(student1);
                     }
                 }
             }
@@ -699,7 +687,7 @@
 
     @RequestMapping(value = "/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8")
     @ResponseBody
-    public String toTrans(@RequestBody ToHoliDto toHoliDto){
+    public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException {
 
         String [] ids = toHoliDto.getIds();
         List<String> strings = new ArrayList<>();
@@ -769,27 +757,23 @@
 
                         CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                         coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                        try {
-                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                        Date parse = format1.parse(format.format(time) + " " + split[i1]);
                             Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
                             coursePackageScheduling.setClassDate(parse);
                             coursePackageScheduling.setEndDate(parse1);
                             coursePackageScheduling.setStatus(1);
                             coursePackageSchedulingService.insert(coursePackageScheduling);
 
-                            CoursePackageStudent student1 = new CoursePackageStudent();
-                            student1.setAppUserId(student.getAppUserId());
-                            student1.setStudentId(student.getId());
-                            student1.setCoursePackageId(tCoursePackage.getId());
-                            student1.setCoursePackagePaymentId(holi.getId());
-                            student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                            student1.setSignInOrNot(1);
-                            student1.setReservationStatus(1);
-                            student1.setInsertTime(new Date());
-                            studentService.save(student1);
-                        } catch (ParseException e) {
-                            e.printStackTrace();
-                        }
+                        CoursePackageStudent student1 = new CoursePackageStudent();
+                        student1.setAppUserId(student.getAppUserId());
+                        student1.setStudentId(student.getId());
+                        student1.setCoursePackageId(tCoursePackage.getId());
+                        student1.setCoursePackagePaymentId(holi.getId());
+                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                        student1.setSignInOrNot(1);
+                        student1.setReservationStatus(1);
+                        student1.setInsertTime(new Date());
+                        studentService.save(student1);
 
                     }
 
@@ -806,45 +790,12 @@
                         for (int i1 = 0; i1 < split.length; i1++) {
                             CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                             coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                            try {
-                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
                                 Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
                                 coursePackageScheduling.setClassDate(parse);
                                 coursePackageScheduling.setEndDate(parse1);
                                 coursePackageScheduling.setStatus(1);
                                 coursePackageSchedulingService.insert(coursePackageScheduling);
-
-                                CoursePackageStudent student1 = new CoursePackageStudent();
-                                student1.setAppUserId(student.getAppUserId());
-                                student1.setStudentId(student.getId());
-                                student1.setCoursePackageId(tCoursePackage.getId());
-                                student1.setCoursePackagePaymentId(holi.getId());
-                                student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                                student1.setSignInOrNot(1);
-                                student1.setReservationStatus(1);
-                                student1.setInsertTime(new Date());
-                                studentService.save(student1);
-                            } catch (ParseException e) {
-                                e.printStackTrace();
-                            }
-                        }
-                    }
-
-                }else {
-                    Calendar instance = Calendar.getInstance();
-                    instance.add(Calendar.DATE,7);
-                    Date time = instance.getTime();
-
-                    for (int i1 = 0; i1 < split.length; i1++) {
-                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                        try {
-                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
-                            Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
-                            coursePackageScheduling.setClassDate(parse);
-                            coursePackageScheduling.setEndDate(parse1);
-                            coursePackageScheduling.setStatus(1);
-                            coursePackageSchedulingService.insert(coursePackageScheduling);
 
                             CoursePackageStudent student1 = new CoursePackageStudent();
                             student1.setAppUserId(student.getAppUserId());
@@ -856,10 +807,35 @@
                             student1.setReservationStatus(1);
                             student1.setInsertTime(new Date());
                             studentService.save(student1);
-                        } catch (ParseException e) {
-                            e.printStackTrace();
                         }
                     }
+
+                }else {
+                    Calendar instance = Calendar.getInstance();
+                    instance.add(Calendar.DATE,7);
+                    Date time = instance.getTime();
+
+                    for (int i1 = 0; i1 < split.length; i1++) {
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                                                    Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                            Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+                            coursePackageScheduling.setClassDate(parse);
+                            coursePackageScheduling.setEndDate(parse1);
+                            coursePackageScheduling.setStatus(1);
+                            coursePackageSchedulingService.insert(coursePackageScheduling);
+
+                        CoursePackageStudent student1 = new CoursePackageStudent();
+                        student1.setAppUserId(student.getAppUserId());
+                        student1.setStudentId(student.getId());
+                        student1.setCoursePackageId(tCoursePackage.getId());
+                        student1.setCoursePackagePaymentId(holi.getId());
+                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                        student1.setSignInOrNot(1);
+                        student1.setReservationStatus(1);
+                        student1.setInsertTime(new Date());
+                        studentService.save(student1);
+                    }
                 }
             }
 
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 12e9cf9..5c3a583 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
@@ -807,6 +807,9 @@
 //                        String classStartTime = coursePackage.getClassStartTime();
 //                        String classEndTime = coursePackage.getClassEndTime();
 
+                        if (byId == null){
+                            continue;
+                        }
                         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                         String dateString1 = sdf.format(byId.getClassDate());
                         String dateString2 = sdf.format(byId.getEndDate());
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 9d76025..f89ee80 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
@@ -172,7 +172,6 @@
 
 
             coursePackageListVo.setApplicantsNumber(integer);
-
             Double cashPayment1 = coursePackagePaymentConfig.getCashPayment();
             Integer playPaiCoin = coursePackagePaymentConfig.getPlayPaiCoin();
             if(ToolUtil.isNotEmpty(cashPayment1) && cashPayment1>0 && ToolUtil.isNotEmpty(playPaiCoin) && playPaiCoin>0){
@@ -1174,13 +1173,11 @@
     }
 
 
-    private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId){
+    private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId) throws ParseException {
         // 课包
         TCoursePackage tCoursePackage = this.baseMapper.selectById(courseId);
-
-
-
         String classWeeks = tCoursePackage.getClassWeeks();
+
         List<Integer> week = week(classWeeks);
 
         String[] split = tCoursePackage.getClassStartTime().split(",");
@@ -1200,27 +1197,23 @@
 
                     CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                     coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                    try {
-                        Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
                         Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
                         coursePackageScheduling.setClassDate(parse);
                         coursePackageScheduling.setEndDate(parse1);
                         coursePackageScheduling.setStatus(1);
                         coursePackageSchedulingService.save(coursePackageScheduling);
 
-                        CoursePackageStudent student1 = new CoursePackageStudent();
-                        student1.setAppUserId(userId);
-                        student1.setStudentId(sId);
-                        student1.setCoursePackageId(tCoursePackage.getId());
-                        student1.setCoursePackagePaymentId(paymentId);
-                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                        student1.setSignInOrNot(1);
-                        student1.setReservationStatus(1);
-                        student1.setInsertTime(new Date());
-                        cpsMapper.insert(student1);
-                    } catch (ParseException e) {
-                        e.printStackTrace();
-                    }
+                    CoursePackageStudent student1 = new CoursePackageStudent();
+                    student1.setAppUserId(userId);
+                    student1.setStudentId(sId);
+                    student1.setCoursePackageId(tCoursePackage.getId());
+                    student1.setCoursePackagePaymentId(paymentId);
+                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                    student1.setSignInOrNot(1);
+                    student1.setReservationStatus(1);
+                    student1.setInsertTime(new Date());
+                    cpsMapper.insert(student1);
 
                 }
 
@@ -1237,45 +1230,12 @@
                     for (int i1 = 0; i1 < split.length; i1++) {
                         CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                         coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                        try {
-                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                                                    Date parse = format1.parse(format.format(time) + " " + split[i1]);
                             Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
                             coursePackageScheduling.setClassDate(parse);
                             coursePackageScheduling.setEndDate(parse1);
                             coursePackageScheduling.setStatus(1);
                             coursePackageSchedulingService.save(coursePackageScheduling);
-
-                            CoursePackageStudent student1 = new CoursePackageStudent();
-                            student1.setAppUserId(userId);
-                            student1.setStudentId(sId);
-                            student1.setCoursePackageId(tCoursePackage.getId());
-                            student1.setCoursePackagePaymentId(paymentId);
-                            student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                            student1.setSignInOrNot(1);
-                            student1.setReservationStatus(1);
-                            student1.setInsertTime(new Date());
-                            cpsMapper.insert(student1);
-                        } catch (ParseException e) {
-                            e.printStackTrace();
-                        }
-                    }
-                }
-
-            }else {
-                Calendar instance = Calendar.getInstance();
-                instance.add(Calendar.DATE,7);
-                Date time = instance.getTime();
-
-                for (int i1 = 0; i1 < split.length; i1++) {
-                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-                    coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-                    try {
-                        Date parse = format1.parse(format.format(time) + " " + split[i1]);
-                        Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
-                        coursePackageScheduling.setClassDate(parse);
-                        coursePackageScheduling.setEndDate(parse1);
-                        coursePackageScheduling.setStatus(1);
-                        coursePackageSchedulingService.save(coursePackageScheduling);
 
                         CoursePackageStudent student1 = new CoursePackageStudent();
                         student1.setAppUserId(userId);
@@ -1287,9 +1247,34 @@
                         student1.setReservationStatus(1);
                         student1.setInsertTime(new Date());
                         cpsMapper.insert(student1);
-                    } catch (ParseException e) {
-                        e.printStackTrace();
                     }
+                }
+
+            }else {
+                Calendar instance = Calendar.getInstance();
+                instance.add(Calendar.DATE,7);
+                Date time = instance.getTime();
+
+                for (int i1 = 0; i1 < split.length; i1++) {
+                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                    coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                                            Date parse = format1.parse(format.format(time) + " " + split[i1]);
+                        Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
+                        coursePackageScheduling.setClassDate(parse);
+                        coursePackageScheduling.setEndDate(parse1);
+                        coursePackageScheduling.setStatus(1);
+                        coursePackageSchedulingService.save(coursePackageScheduling);
+
+                    CoursePackageStudent student1 = new CoursePackageStudent();
+                    student1.setAppUserId(userId);
+                    student1.setStudentId(sId);
+                    student1.setCoursePackageId(tCoursePackage.getId());
+                    student1.setCoursePackagePaymentId(paymentId);
+                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                    student1.setSignInOrNot(1);
+                    student1.setReservationStatus(1);
+                    student1.setInsertTime(new Date());
+                    cpsMapper.insert(student1);
                 }
             }
         }
@@ -1412,7 +1397,7 @@
 
                     Calendar e = Calendar.getInstance();
                     e.setTime(date);
-                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
+                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
                     long timeInMillis = e.getTimeInMillis();
 
                     while (true) {
@@ -1439,7 +1424,7 @@
                             coursePackageSchedulingService.save(coursePackageScheduling);
                         }
                         s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-                        if (s.getTimeInMillis() > timeInMillis) {
+                        if (s.getTimeInMillis() >= timeInMillis) {
                             break;
                         }
                     }
@@ -1473,6 +1458,7 @@
             coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper);
 
             this.baseMapper.updateById(coursePackage);
+
             //生成排课数据
             Date date = null;
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -1499,7 +1485,7 @@
                 int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue();
                 e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d);
             }else{
-                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13);
+                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
             }
             long timeInMillis = e.getTimeInMillis();
 
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 27a46f7..1af557f 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 0 * * *")
     public void zeroTask(){
         //定时添加排课数据
         coursePackageSchedulingService.taskAddData();
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
index 583362d..ddab429 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
@@ -7,6 +7,7 @@
 import com.dsh.course.feignClient.activity.model.IntegralGoodsOfSearch;
 import com.dsh.course.feignClient.activity.model.PointMercharsPayedVo;
 import com.dsh.course.feignClient.activity.model.PointMercharsVo;
+import com.dsh.course.feignClient.course.model.CourseChangeStateDTO;
 import com.dsh.guns.modular.system.model.CoachChangeStateVO;
 import com.dsh.guns.modular.system.model.PointMerchandiseIncomeVo;
 import com.dsh.guns.modular.system.model.GoodsInfoOneVo;
@@ -23,6 +24,10 @@
 
 @FeignClient(value = "mb-cloud-activity")
 public interface PointMercharsClient {
+
+    @RequestMapping("/base/pointMerchars/changeState")
+    Object changeState(@RequestBody CourseChangeStateDTO dto);
+    
     @RequestMapping("/base/pointMerchars/writeOff")
     Object writeOff(@RequestBody WriteOffDTO dto);
     /**
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java
index 0dec91e..2cd8012 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java
@@ -40,4 +40,8 @@
      */
     @PostMapping("/coursePackageScheduling/editCoursePackageScheduling")
     void editCoursePackageScheduling(CoursePackageScheduling coursePackageScheduling);
+
+
+    @PostMapping("/coursePackageScheduling/saveCoursePackageScheduling")
+    void save(CoursePackageScheduling coursePackageScheduling);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java b/cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java
index e4b0578..3874edb 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java
@@ -11,7 +11,7 @@
     /**
      * 系统默认的管理员密码
      */
-    String DEFAULT_PWD = "111111";
+    String DEFAULT_PWD = "a123456";
 
     /**
      * 管理员角色的名字
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
index cfff158..13e2d78 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
@@ -2,6 +2,7 @@
 
 
 import com.dsh.course.feignClient.activity.BenefitsVideoClient;
+import com.dsh.course.feignClient.activity.PointMercharsClient;
 import com.dsh.course.feignClient.activity.model.BenefitsVedioChangeStateVO;
 import com.dsh.course.feignClient.activity.model.BenefitsVideoClassification;
 import com.dsh.course.feignClient.activity.model.BenefitsVideos;
@@ -23,6 +24,7 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -179,9 +181,13 @@
                 if (benefitsVideos.getCourseId().equals(courseByCourseId.getId())){
                     courseByCourseId.setIntegral(benefitsVideos.getIntegral());
                     courseByCourseId.setBenefitsVideosId(benefitsVideos.getId());
+                    courseByCourseId.setState(benefitsVideos.getState());
                 }
             }
         }
+
+
+
         return courseByCourseIds;
     }
     /**
@@ -227,10 +233,16 @@
      *
      * @return
      */
+
+    @Resource
+    private PointMercharsClient mercharsClient;
     @RequestMapping("/changeCourseState")
     @ResponseBody
     public Object changeCourseState(@RequestBody CourseChangeStateDTO dto){
+
         courseClient.changeState(dto);
+        mercharsClient.changeState(dto);
+
         return ResultUtil.success();
     }
 
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
index 0672197..0664128 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -1,6 +1,7 @@
 package com.dsh.guns.modular.system.controller.system;
 
 import cn.hutool.crypto.SecureUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.mapper.UserMapper;
 import com.dsh.guns.config.UserExt;
@@ -78,6 +79,13 @@
     @RequestMapping("/user_add")
     public String addView(Model model) {
         model.addAttribute("language",UserExt.getLanguage());
+        LambdaQueryWrapper<Role> roleLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(UserExt.getUser().getObjectType()!=1){
+            roleLambdaQueryWrapper.eq(Role::getObjId,UserExt.getUser().getObjectId());
+        }
+        roleLambdaQueryWrapper.eq(Role::getObjType,UserExt.getUser().getObjectType());
+        List<Role> list = roleService.list(roleLambdaQueryWrapper);
+        model.addAttribute("list",list);
         return PREFIX + "user_add.html";
     }
 
@@ -112,6 +120,13 @@
         model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid()));
         model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid()));
         LogObjectHolder.me().set(user);
+        LambdaQueryWrapper<Role> roleLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(UserExt.getUser().getObjectType()!=1){
+            roleLambdaQueryWrapper.eq(Role::getObjId,UserExt.getUser().getObjectId());
+        }
+        roleLambdaQueryWrapper.eq(Role::getObjType,UserExt.getUser().getObjectType());
+        List<Role> list = roleService.list(roleLambdaQueryWrapper);
+        model.addAttribute("list",list);
         model.addAttribute("language",UserExt.getLanguage());
         return PREFIX + "user_edit.html";
     }
@@ -224,6 +239,9 @@
         User objectUser = UserFactory.createUser(user);
         objectUser.setObjectType(UserExt.getUser().getObjectType());
         objectUser.setObjectId(UserExt.getUser().getObjectId());
+        objectUser.setRoleid(user.getRoleid());
+        objectUser.setAccount(user.getPhone());
+        objectUser.setPassword(SecureUtil.md5("a123456"));
         //查找平台所属公司
         //Search for the company that owns the platform.
         this.userService.save(objectUser);
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java
index 8eeac90..314d70d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java
@@ -36,8 +36,8 @@
             if (!StringUtils.isEmpty(newUser.getBirthday())) {
                 oldUser.setBirthday(newUser.getBirthday());
             }
-            if (!StringUtils.isEmpty(newUser.getDeptid())) {
-                oldUser.setDeptid(newUser.getDeptid());
+            if (!StringUtils.isEmpty(newUser.getRoleid())) {
+                oldUser.setRoleid(newUser.getRoleid());
             }
             if (!StringUtils.isEmpty(newUser.getSex())) {
                 oldUser.setSex(newUser.getSex());
@@ -47,6 +47,10 @@
             }
             if (!StringUtils.isEmpty(newUser.getPhone())) {
                 oldUser.setPhone(newUser.getPhone());
+                oldUser.setAccount(newUser.getPhone());
+            }
+            if (!StringUtils.isEmpty(newUser.getIdCard())) {
+                oldUser.setIdCard(newUser.getIdCard());
             }
             return oldUser;
         }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java
index e4e66e6..519169e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java
@@ -94,7 +94,16 @@
 	 */
 	@TableField("objectId")
 	private Integer objectId;
+	@TableField("idCard")
+	private String idCard;
 
+	public String getIdCard() {
+		return idCard;
+	}
+
+	public void setIdCard(String idCard) {
+		this.idCard = idCard;
+	}
 
 	public Integer getId() {
 		return id;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java
index d06ab0c..c20b1c8 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java
@@ -29,7 +29,15 @@
 	private Date createtime;
 	private Integer version;
 	private String avatar;
+	private String idCard;
 
+	public String getIdCard() {
+		return idCard;
+	}
+
+	public void setIdCard(String idCard) {
+		this.idCard = idCard;
+	}
 
 	public Integer getId() {
 		return id;
diff --git a/cloud-server-management/src/main/resources/mapper/DeptMapper.xml b/cloud-server-management/src/main/resources/mapper/DeptMapper.xml
index 88bdbec..c8c7bb3 100644
--- a/cloud-server-management/src/main/resources/mapper/DeptMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/DeptMapper.xml
@@ -37,6 +37,9 @@
         <if test="objectType == 3">
             and  objectType = 3 and objectId =#{objectId}
         </if>
+        <if test="objectType == 1">
+            and  objectType = 1
+        </if>
         order by num ASC
     </select>
 
diff --git a/cloud-server-management/src/main/resources/mapper/RoleMapper.xml b/cloud-server-management/src/main/resources/mapper/RoleMapper.xml
index 1f859cb..36432b2 100644
--- a/cloud-server-management/src/main/resources/mapper/RoleMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/RoleMapper.xml
@@ -26,6 +26,9 @@
 		<if test="objectType == 3">
 			and rr.objType =3  and rr.objId =#{objectId}
 		</if>
+		<if test="objectType == 1">
+			and rr.objType =1
+		</if>
 	</select>
 
 	<delete id="deleteRolesById">
diff --git a/cloud-server-management/src/main/resources/mapper/UserMapper.xml b/cloud-server-management/src/main/resources/mapper/UserMapper.xml
index 0548540..a42cc57 100644
--- a/cloud-server-management/src/main/resources/mapper/UserMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/UserMapper.xml
@@ -109,6 +109,9 @@
 			<if test="objectType ==3">
 				and (o.objectType =3  and o.objectId =#{objectId})
 			</if>
+			<if test="objectType ==1">
+				and o.objectType =1
+			</if>
 		</where>
 		order by o.id desc
 	</select>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_three.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_three.html
index 469b5be..1277173 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_three.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_three.html
@@ -120,9 +120,7 @@
             ajax.start();
         }
 
-        var pageElement = document.getElementById('page');
-        var event = new Event('change');
-        pageElement.dispatchEvent(event);
+
     }
 
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_two.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_two.html
index f0f25fa..ab20d27 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_two.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add_two.html
@@ -92,8 +92,7 @@
 
     function updateType(e) {
         let name  =  $("#name").val()
-        console.log(name
-        )
+        console.log(name)
         if(name =='不跳转'){
             $("#t1").hide()
             $("#t2").hide()
@@ -120,9 +119,7 @@
             ajax.start();
         }
 
-        var pageElement = document.getElementById('page');
-        var event = new Event('change');
-        pageElement.dispatchEvent(event);
+
     }
 
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_three.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_three.html
index 24fd9ad..39fcd4b 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_three.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_three.html
@@ -124,9 +124,7 @@
                 ajax.start();
             }
 
-            var pageElement = document.getElementById('page');
-            var event = new Event('change');
-            pageElement.dispatchEvent(event);
+
         }
 
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_two.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_two.html
index fe20194..0d4ecfd 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_two.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit_two.html
@@ -117,9 +117,7 @@
             ajax.start();
         }
 
-        var pageElement = document.getElementById('page');
-        var event = new Event('change');
-        pageElement.dispatchEvent(event);
+
     }
 
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html
index 8c87b06..73b723f 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html
@@ -45,9 +45,6 @@
 							@if(shiro.hasPermission("/mgr/unfreeze")){
 							<#button name="解冻" icon="fa-check-circle" clickFun="MgrUser.unfreeze()" space="true"/>
 							@}
-							@if(shiro.hasPermission("/mgr/setRoles")){
-							<#button name="角色分配" icon="fa-user-secret" clickFun="MgrUser.roleAssign()" space="true"/>
-							@}
 							@if(shiro.hasPermission("/mgr/kanbanPermissions")){
 							<#button name="看板权限设置" icon="fa-user-secret" clickFun="MgrUser.kanbanPermissions()" space="true"/>
 							@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html
index 6bb689b..d070658 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html
@@ -1,42 +1,48 @@
 @layout("/common/_container.html"){
 <div class="ibox float-e-margins">
-	<div class="ibox-content">
-		<div class="form-horizontal" id="userInfoForm">
-			<input type="hidden" id="id" value="">
-			<div class="row">
-	<div class="col-sm-6">
-		<div id="driverInfoContent">
-			<#input id="name" name="员工姓名" underline="true"/>
-			<#input id="phone" name="联系电话" underline="true"/>
-			<#avatar id="avatar" name="照片" underline="true"/>
-			<#input id="birthday" name="生日" underline="true" type="text"/>
-			<#select id="sex" name="性别" underline="true" >
-			<option value="1">男</option>
-			<option value="2">女</option>
-			</#select>
-			<#input id="idCard" name="身份证号" type="text" underline="true"/>
+    <div class="ibox-content">
+        <div class="form-horizontal" id="userInfoForm">
+            <input type="hidden" id="id" value="">
+            <div class="row">
+                <div class="col-sm-6">
+                    <div id="driverInfoContent">
+                        <#input id="name" name="员工姓名" underline="true"/>
+                        <#input id="phone" name="联系电话" underline="true"/>
+                        <#avatar id="avatar" name="照片" underline="true"/>
+                        <#input id="birthday" name="生日" underline="true" type="text"/>
+                        <#select id="sex" name="性别" underline="true" >
+                        <option value="1" selected>男</option>
+                        <option value="2">女</option>
+                    </#select>
+                    <#input id="idCard" name="身份证号" type="text" underline="true"/>
+                    <#select id="roleid" name="角色" underline="true" >
+                    @for(l in list){
+                    <option value="${l.id}">${l.name}</option>
+                    @}
 
-		</div>
-	</div>
-</div>
-<!-- 这是部门选择的下拉框 -->
-<div id="menuContent" class="menuContent"
-	 style="display: none; position: absolute; z-index: 200;">
-	<ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
-</div>
-<div class="row btn-group-m-t">
-	<div class="col-sm-10">
-		<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.addSubmit()"/>
-		<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
-	</div>
-</div>
-</div>
-</div>
+                </#select>
+            </div>
+        </div>
+    </div>
+    <!-- 这是部门选择的下拉框 -->
+    <div id="menuContent" class="menuContent"
+         style="display: none; position: absolute; z-index: 200;">
+        <ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
+    </div>
+
+    <div class="row btn-group-m-t">
+        <div class="col-sm-10">
+            <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.addSubmit()"/>
+            <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
+        </div>
+    </div>
+
+
 </div>
 <script src="${ctxPath}/modular/system/user/user_info.js"></script>
 <script>
-	laydate.render({
-		elem: '#birthday'
-	});
+    laydate.render({
+        elem: '#birthday'
+    });
 </script>
 @}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html
index fc2cf7b..572e1f9 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html
@@ -2,69 +2,50 @@
 <div class="ibox float-e-margins">
 	<div class="ibox-content">
 		<div class="form-horizontal" id="userInfoForm">
-
 			<input type="hidden" id="id" value="${user.id}">
 			<input type="hidden" id="sexValue" value="${user.sex}">
-
+			<input type="hidden" id="roleid_" value="${user.roleid}">
 			<div class="row">
-				<div class="col-sm-6 b-r">
-					<#input id="account" name="账户" underline="true" value="${user.account}"/>
-					<#select id="sex" name="性别" underline="true">
-					<option value="1">男</option>
-					<option value="2">女</option>
-				</#select>
-				<#input id="roleid" name="角色" underline="true" value="${roleName}" disabled="disabled"/>
-				<#input id="email" name="邮箱" type="email"  underline="true" value="${user.email}"/>
-				<div class="form-group" ${userCompanyId! !=1? "hidden" :" "} >
-				<label class="col-sm-3 control-label">所属公司</label>
-				<div class="col-sm-9">
-					<select class="form-control" id="companyId" name="companyId">
-						@if(companyIds! !=null && companyId! !=null){
-						@for(item in companyIds!){
-						@if(item.id! == companyId!){
-						<option value="${item.id}">${item.name!}</option>
-						@}
-						@}
-						@for(item in companyIds!){
-						@if(item.id! !=companyId!){
-						<option value="${item.id}">${item.name!}</option>
-						@}
-						@}
-						@}
-					</select>
-				</div>
+				<div class="col-sm-6">
+					<div id="driverInfoContent">
+						<#input id="name" name="员工姓名" underline="true" value="${user.name}" />
+						<#input id="phone" name="联系电话" underline="true" value="${user.phone}" />
+						<#avatar id="avatar" name="照片" underline="true" avatarImg="${user.avatar}" />
+						<#input id="birthday" name="生日" underline="true" type="text" value="${user.birthday}" />
+						<#select id="sex" name="性别" underline="true" >
+						<option value="1" selected>男</option>
+						<option value="2">女</option>
+					</#select>
+					<#input id="idCard" name="身份证号" type="text" underline="true" value="${user.idCard}"/>
+					<#select id="roleid" name="角色" underline="true" >
+					@for(l in list){
+					    <option value="${l.id}" ${l.id == user.roleid ? 'selected=selected' : ''}>${l.name}</option>
+					@}
+					</#select>
 			</div>
-			<div class="hr-line-dashed" ${companyId! !=1? "hidden" :" "} ></div>
-	</div>
-	<div class="col-sm-6">
-		<div id="driverInfoContent">
-			<#input id="name" name="姓名" underline="true" value="${user.name!}"/>
-			<#input id="birthday" name="出生日期" underline="true" type="text"
-			value="${user.birthday!}"/>
-			<#input id="citySel" name="部门" underline="true" readonly="readonly" hidden="deptid" hiddenValue="${user.deptid!}" value="${deptName!}"
-			clickFun="UserInfoDlg.showDeptSelectTree(); return false;"
-			style="background-color: #ffffff !important;"/>
-			<#input id="phone" name="电话"  underline="true" value="${user.phone}"/>
 		</div>
 	</div>
-</div>
-
-<!-- 这是部门选择的下拉框 -->
-<div id="menuContent" class="menuContent"
-	 style="display: none; position: absolute; z-index: 200;">
-	<ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
-</div>
-
-<div class="row btn-group-m-t">
-	<div class="col-sm-10">
-		<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
-		<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
+	<!-- 这是部门选择的下拉框 -->
+	<div id="menuContent" class="menuContent"
+		 style="display: none; position: absolute; z-index: 200;">
+		<ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
 	</div>
-</div>
-</div>
+
+	<div class="row btn-group-m-t">
+		<div class="col-sm-10">
+			<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
+			<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
+		</div>
+	</div>
+
 
 </div>
-</div>
+
+
+
+
+
+
 <script src="${ctxPath}/modular/system/user/user_info.js"></script>
 <script>
 	laydate.render({
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit1.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit1.html
new file mode 100644
index 0000000..a14fec2
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit1.html
@@ -0,0 +1,60 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+	<div class="ibox-content">
+		<div class="form-horizontal" id="userInfoForm">
+
+			<input type="hidden" id="id" value="${user.id}">
+			<input type="hidden" id="sexValue" value="${user.sex}">
+			<input type="hidden" id="roleid_" value="${user.roleid}">
+	</div>
+		<div class="row">
+	<div class="col-sm-6">
+		<div id="driverInfoContent">
+			<#input id="name" name="员工姓名" underline="true" value="${user.name}"/>
+			<#input id="phone" name="联系电话" underline="true" value="${user.phone}"/>
+			<#avatar id="avatar" name="照片" underline="true" avatarImg="${user.avatar}"/>
+			<#input id="birthday" name="生日" underline="true" type="text" value="${user.birthday}"/>
+			<#select id="sex" name="性别" underline="true" >
+			<option value="1" >男</option>
+			<option value="2">女</option>
+		</#select>
+		<#input id="idCard" name="身份证号" type="text" underline="true" value="${user.idCard}"/>
+		<#select id="roleid" name="角色" underline="true" >
+		@for(l in list){
+		<option value="${l.id}" ${l.id == user.roleid ? 'selected=selected' : ''}>${l.name}</option>
+		@}
+
+	</#select>
+		</div>
+	</div>
+</div>
+
+<!-- 这是部门选择的下拉框 -->
+<div id="menuContent" class="menuContent"
+	 style="display: none; position: absolute; z-index: 200;">
+	<ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
+</div>
+
+<div class="row btn-group-m-t">
+	<div class="col-sm-10">
+		<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
+		<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
+	</div>
+</div>
+
+
+
+</div>
+</div>
+</div>
+
+
+
+
+<script src="${ctxPath}/modular/system/user/user_info.js"></script>
+<script>
+	laydate.render({
+		elem: '#birthday'
+	});
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
index e23ff61..f4ead97 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
@@ -90,7 +90,7 @@
     };
     selected.forEach(function(obj) {
         var id = obj.id;
-        data1.ids.push(id);
+        data1.ids.push(obj.benefitsVideosId);
     });
     data1.state = 1;
     $.ajax({
@@ -126,7 +126,7 @@
         };
         selected.forEach(function(obj) {
             var id = obj.id;
-            data1.ids.push(id);
+            data1.ids.push(obj.benefitsVideosId);
         });
         data1.state = 2;
         $.ajax({
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/user/user.js b/cloud-server-management/src/main/webapp/static/modular/system/user/user.js
index 2b4c745..d0c1fc7 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/user/user.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/user/user.js
@@ -288,7 +288,7 @@
     if (this.check()) {
         var userId = this.seItem.id;
         if(language==1){
-            parent.layer.confirm('是否重置密码为111111?', {
+            parent.layer.confirm('是否重置密码为a123456?', {
                 btn: ['确定', '取消'],
                 shade: false //不显示遮罩
             }, function () {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js b/cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js
index c81798b..4ccc0dd 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js
@@ -1,14 +1,14 @@
 /**
  * 用户详情对话框(可用于添加和修改对话框)
  */
-var language =$("#language").val()
+var language =1
 var UserInfoDlg = {
     userInfoData: {},
     validateFields: {
-        account: {
+        phone: {
             validators: {
                 notEmpty: {
-                    message: language==1?'账户不能为空':(language==2?"The account cannot be empty":"Akaun tidak dapat kosong")
+                    message: language==1?'联系电话不能为空':(language==2?"The account cannot be empty":"Akaun tidak dapat kosong")
                 }
             }
         },
@@ -26,25 +26,17 @@
                 }
             }
         },*/
-        password: {
+        birthday: {
             validators: {
                 notEmpty: {
-                    message: '密码不能为空'
-                },
-                regexp: {
-                    regexp: /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/,
-                    message: '密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符'
+                    message: '生日不能为空'
                 },
             }
         },
-        rePassword: {
+        idCard: {
             validators: {
                 notEmpty: {
-                    message: '密码不能为空'
-                },
-                regexp: {
-                    regexp: /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/,
-                    message: '密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符'
+                    message: '身份证号不能为空'
                 },
             }
         }
@@ -169,7 +161,7 @@
  */
 UserInfoDlg.collectData = function () {
     this.set('id').set('account').set('sex').set('password').set('avatar')
-        .set('email').set('name').set('birthday').set('rePassword').set('deptid').set('phone');
+        .set('email').set('name').set('birthday').set('rePassword').set('roleid').set('phone').set('idCard');
 };
 
 /**
@@ -208,32 +200,22 @@
 
 
 
-    var birthday = $("#birthday").val();
-    if ("" == birthday){
-        if(language==1){
-            Feng.info("出生日期不能为空!");
-        }else if(language==2){
-            Feng.info("The date of birth cannot be empty!");
-        }else {
-            Feng.info("Tanggal lahir tidak bisa kosong!");
-        }
-
+    var avatar = $("#avatar").val();
+    if(avatar==''){
+        Feng.info("请上传照片")
         return;
     }
-
-    var citySel = $("#citySel").val();
-    if ("" == citySel){
-        if(language==1){
-            Feng.info("部门不能为空!");
-        }else if(language==2){
-            Feng.info("The department cannot be empty!");
-        }else {
-            Feng.info("Departemen tidak bisa kosong!");
-        }
-
+    var sex = $("#sex").val();
+    if(sex==''){
+        Feng.info("请选择性别")
         return;
     }
-
+    var roleid = $("#roleid").val();
+    if(roleid==''){
+        Feng.info("请选择角色")
+        return;
+    }
+    console.log(this.userInfoData)
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/mgr/add", function (data) {
           Feng.success("添加成功!");
@@ -260,30 +242,8 @@
     if (!this.validate()) {
         return;
     }
+    console.log(this.userInfoData)
 
-    var birthday = $("#birthday").val();
-    if ("" == birthday){
-        if(language==1){
-            Feng.info("出生日期不能为空!");
-        }else if(language==2){
-            Feng.info("The date of birth cannot be empty!");
-        }else {
-            Feng.info("Tanggal lahir tidak bisa kosong!");
-        }
-        return;
-    }
-
-    var citySel = $("#citySel").val();
-    if ("" == citySel){
-        if(language==1){
-            Feng.info("部门不能为空!");
-        }else if(language==2){
-            Feng.info("The department cannot be empty!");
-        }else {
-            Feng.info("Departemen tidak bisa kosong!");
-        }
-        return;
-    }
 
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/mgr/edit", function (data) {
@@ -368,4 +328,5 @@
     avatarUp.setUploadBarId("progressBar");
     avatarUp.init();
 
+    document.getElementById('roleid').value = $("#roleid_").val();
 });
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 486a1de..a297924 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -358,8 +358,6 @@
     }
 
 
-
-
     @ResponseBody
     @PostMapping("/api/site/queryMySite")
     @ApiOperation(value = "获取我的预约场地列表", tags = {"用户—预约场地"})
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 2170111..6e23ca2 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
@@ -129,13 +129,14 @@
                 info.setLongitude(storeLon);
                 storeInfos.add(info);
             }
-            Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() {
-                @Override
-                public int compare(StoreInfo store1, StoreInfo store2) {
-                    return Long.compare(store1.getDistance(), store2.getDistance());
-                }
-            };
-            Collections.sort(storeInfos, distanceComparator);
+//            Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() {
+//                @Override
+//                public int compare(StoreInfo store1, StoreInfo store2) {
+//                    return Long.compare(store1.getDistance(), store2.getDistance());
+//                }
+//            };
+//            Collections.sort(storeInfos, distanceComparator);
+            storeInfos = storeInfos.stream().sorted(Comparator.comparing(StoreInfo::getDistance)).collect(Collectors.toList());
         }
         return storeInfos;
     }
@@ -433,9 +434,9 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "城市code", name = "cityCode", dataType = "string", required = true),
     })
-    public ResultUtil<List<BaseVo>> queryStoreByCityCode(String cityCode){
+    public ResultUtil<List<BaseVo>> queryStoreByCityCode(String provinceCode,String cityCode){
         try {
-            List<BaseVo> list = storeService.queryStoreByCityCode(cityCode);
+            List<BaseVo> list = storeService.queryStoreByCityCode(provinceCode,cityCode);
             return ResultUtil.success(list);
         }catch (Exception e){
             e.printStackTrace();
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
index 61deb98..10236ec 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
@@ -43,7 +43,7 @@
      * @param cityCode
      * @return
      */
-    List<BaseVo> queryStoreByCityCode(@Param("cityCode") String cityCode);
+    List<BaseVo> queryStoreByCityCode(@Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode);
 
     /**
      * 根据城市管理员id获取门店集合
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java b/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
index e428705..12c1e77 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
@@ -64,7 +64,7 @@
      * @return
      * @throws Exception
      */
-    List<BaseVo> queryStoreByCityCode(String cityCode) throws Exception;
+    List<BaseVo> queryStoreByCityCode(String provinceCode,String cityCode) throws Exception;
 
     List<Store> getStoreByCityManagerId(Integer id);
 
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 0765054..8021355 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
@@ -623,7 +623,6 @@
             Site site = this.getById(siteBooking.getSiteId());
             String[] split = siteBooking.getTimes().split(";");
             if(site!=null){
-
                 queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
             }
         }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
index 8d361d8..a37fccc 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
@@ -167,8 +167,8 @@
      * @throws Exception
      */
     @Override
-    public List<BaseVo> queryStoreByCityCode(String cityCode) throws Exception {
-        return this.baseMapper.queryStoreByCityCode(cityCode);
+    public List<BaseVo> queryStoreByCityCode(String provinceCode,String cityCode) throws Exception {
+        return this.baseMapper.queryStoreByCityCode(provinceCode,cityCode);
     }
 
 
diff --git a/cloud-server-other/src/main/resources/mapper/BannerMapper.xml b/cloud-server-other/src/main/resources/mapper/BannerMapper.xml
index 77f1184..d9bbe55 100644
--- a/cloud-server-other/src/main/resources/mapper/BannerMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/BannerMapper.xml
@@ -42,7 +42,6 @@
         from t_usetime_history hs
                  LEFT JOIN sys_user us on hs.createBy = us.id
         where hs.studentId = #{studentId}
-
     </select>
     <select id="getFirst" resultType="java.lang.String">
             select content
diff --git a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
index 7dd6493..cfc7ffa 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
@@ -133,7 +133,7 @@
             <if test="query.opId!=null ">
                 and t1.operatorId =#{query.opId}
             </if>
-            and t1.state != 3
+            and t1.state != 3 and t1.sign=0
         </where>
 
         ORDER BY insertTime desc
diff --git a/cloud-server-other/src/main/resources/mapper/StoreMapper.xml b/cloud-server-other/src/main/resources/mapper/StoreMapper.xml
index 0ec501c..8ff3d8b 100644
--- a/cloud-server-other/src/main/resources/mapper/StoreMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/StoreMapper.xml
@@ -17,7 +17,12 @@
     </select>
 
     <select id="queryStoreByCityCode" resultType="com.dsh.other.model.BaseVo">
-        select id, name from t_store where state = 1 and cityCode = #{cityCode}
+        select id, name from t_store where state = 1
+        and provinceCode = #{provinceCode}
+        <if test="cityCode !=null and cityCode !='' ">
+            and cityCode = #{cityCode}
+        </if>
+
     </select>
     <select id="getStoreByCityManagerId" resultType="com.dsh.other.entity.Store">
         select * from t_store where operatorId = #{id}

--
Gitblit v1.7.1