From 640ff18d2d7f4be02ddb7f8f75e899f05545eb98 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 05 二月 2024 11:56:52 +0800
Subject: [PATCH] 更新bug修改

---
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentHonorClient.java            |   20 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java |   28 -
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java             |  175 -------
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java                    |  123 ++---
 cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java                              |    6 
 cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java                 |    4 
 cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java                         |    2 
 cloud-server-account/src/main/resources/sharding-jdbc.properties                                            |   28 
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/StudentHonor.java      |   19 
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentHonorController.java                   |   59 ++
 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/StudentHonorClient.java      |   20 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorRulesClient.java                  |   30 +
 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java     |   99 +--
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/StudentHonor.java            |   19 
 cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java                                           |   31 +
 cloud-server-other/src/main/java/com/dsh/other/feignclient/account/StudentHonorClient.java                  |   20 
 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java                   |    6 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/StudentHonor.java                |   19 
 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentHonorClient.java                |   20 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java  |    1 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java             |   10 
 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java         |   18 
 cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java                                 |   11 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java    |   45 -
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/HonorRules.java                  |   21 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                    |  135 ++---
 cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java                    |   36 +
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java                            |    5 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java         |   22 
 cloud-server-other/src/main/java/com/dsh/other/controller/HonorRulesController.java                         |   49 ++
 cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/StudentHonor.java                  |   19 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java         |    2 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CancelledClassesClient.java         |    3 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java                |  121 +---
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java            |   46 ++
 35 files changed, 705 insertions(+), 567 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
index 7d92af3..b156500 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -170,11 +170,9 @@
                 return ResultUtil.tokenErr();
             }
             TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, appUserId));
-            Boolean b = false;
             Integer i = 0;
             if (one != null && one.getNum() > 0) {
                 i = appGiftService.weeksOfAddHours(packetId, appUserId, one.getNum());
-
             }
             if (i == 1) {
                 // 送完清0
@@ -575,13 +573,11 @@
     })
     public ResultUtil<List<StuMedalVo>> queryStuMedal(Integer stuId) {
         try {
-
-
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if (null == appUserId) {
                 return ResultUtil.tokenErr();
             }
-            return ResultUtil.success(honorService.queryHonorDetails(stuId));
+            return ResultUtil.success(honorService.queryHonorDetails(appUserId));
         } catch (Exception e) {
             return ResultUtil.runErr();
         }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentHonorController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentHonorController.java
new file mode 100644
index 0000000..d07d6d7
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentHonorController.java
@@ -0,0 +1,59 @@
+package com.dsh.account.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.account.entity.StudentHonor;
+import com.dsh.account.feignclient.other.HonorRulesClient;
+import com.dsh.account.feignclient.other.model.HonorRules;
+import com.dsh.account.service.StudentHonorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+/**
+ * 勋章
+ */
+@RestController
+@RequestMapping("/studentHonor")
+public class StudentHonorController {
+
+    @Autowired
+    private StudentHonorService studentHonorService;
+
+    @Resource
+    private HonorRulesClient honorRulesClient;
+
+
+
+
+
+    /**
+     * 保存用户勋章
+     * @param studentHonor
+     */
+    @ResponseBody
+    @PostMapping("/saveStudentHonor")
+    public void saveStudentHonor(@RequestBody StudentHonor studentHonor){
+        StudentHonor one = studentHonorService.getOne(new QueryWrapper<StudentHonor>()
+                .eq("appUserId", studentHonor.getAppUserId()).eq("honorType", studentHonor.getHonorType()));
+        if(null == one){
+            one = new StudentHonor();
+        }
+        //获取荣耀规则
+        HonorRules honorRules = new HonorRules();
+        honorRules.setType(studentHonor.getHonorType());
+        honorRules.setCondition(studentHonor.getNumber());
+        HonorRules honorRules1 = honorRulesClient.getHonorRules(honorRules);
+        if(null != honorRules1){
+            one.setAppUserId(studentHonor.getAppUserId());
+            one.setHonorType(studentHonor.getHonorType());
+            one.setNumber(studentHonor.getNumber());
+            one.setHonorRuleId(honorRules1.getId());
+            one.setHonorLevel(honorRules1.getLevel());
+            one.setInsertTime(new Date());
+            studentHonorService.saveOrUpdate(one);
+        }
+    }
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java b/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java
index 7f78a73..158cce9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java
@@ -34,10 +34,10 @@
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
     /**
-     * 学员id
+     * 用户id
      */
-    @TableField("stuId")
-    private Integer stuId;
+    @TableField("appUserId")
+    private Integer appUserId;
     /**
      * 荣耀规则id
      */
@@ -54,6 +54,11 @@
     @TableField("honorLevel")
     private Integer honorLevel;
     /**
+     * 当前次数
+     */
+    @TableField("number")
+    private Integer number;
+    /**
      * 添加时间
      */
     @TableField("insertTime")
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java
index 393b0ec..25c534e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/IntroduceRewardsClient.java
@@ -18,7 +18,7 @@
     public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request);
 
     @PostMapping("/base/introduce/getGiftList")
-    IntroduceRewards getGiftList(@RequestBody String cityCode);
+    List<IntroduceRewards> getGiftList(@RequestBody String cityCode);
 
 
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorRulesClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorRulesClient.java
new file mode 100644
index 0000000..cc0dae4
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorRulesClient.java
@@ -0,0 +1,30 @@
+package com.dsh.account.feignclient.other;
+
+import com.dsh.account.feignclient.other.model.HonorRules;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+
+/**
+ * 荣耀规则
+ */
+@FeignClient("mb-cloud-other")
+public interface HonorRulesClient {
+
+
+    /**
+     * 获取合适的规则
+     * @param honorRules
+     * @return
+     */
+    @PostMapping("/honorRules/getHonorRules")
+    HonorRules getHonorRules(HonorRules honorRules);
+
+    /**
+     * 根据id获取数据
+     * @param id
+     * @return
+     */
+    @PostMapping("/honorRules/getHonorRulesById")
+    HonorRules getHonorRulesById(Integer id);
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/HonorRules.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/HonorRules.java
new file mode 100644
index 0000000..ad51b47
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/HonorRules.java
@@ -0,0 +1,21 @@
+package com.dsh.account.feignclient.other.model;
+
+
+import lombok.Data;
+
+@Data
+public class HonorRules {
+    private Integer id;
+    /**
+     * 数据类型(1=俱乐部之星,2=运动达人,3=社区之王,4=深度玩家)
+     */
+    private Integer type;
+    /**
+     * 等级
+     */
+    private Integer level;
+    /**
+     * 满足条件值
+     */
+    private Integer condition;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java b/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java
index d14ca47..b4e6464 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java
@@ -19,6 +19,6 @@
 
     List<GongVo> queryStuOfMedalData(Integer stuId);
 
-    List<StuMedalVo> queryHonorDetails(Integer stuId);
+    List<StuMedalVo> queryHonorDetails(Integer appUserId);
 
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java
index 60ec8c2..a7bbcb8 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java
@@ -9,6 +9,7 @@
 import com.dsh.account.feignclient.course.CoursePackageClient;
 import com.dsh.account.feignclient.course.model.CoursePackage;
 import com.dsh.account.feignclient.other.HonorDeClient;
+import com.dsh.account.feignclient.other.HonorRulesClient;
 import com.dsh.account.feignclient.other.SiteClient;
 import com.dsh.account.mapper.StudentHonorMapper;
 import com.dsh.account.model.vo.medalDetail.GongVo;
@@ -45,13 +46,19 @@
     @Resource
     private SiteClient siteClient;
 
-
     @Autowired
     private HonorDeClient honorDeClient;
 
-
     @Autowired
     private TStudentService studentService;
+
+    @Autowired
+    private HonorRulesClient honorRulesClient;
+
+
+
+
+
 
     @Override
     public List<GongVo> queryStuOfMedalData(Integer stuId) {
@@ -124,101 +131,41 @@
 
 
     @Override
-    public List<StuMedalVo> queryHonorDetails(Integer stuId) {
-        List<StuMedalVo> studentHonors = new ArrayList<>();
-//        List<Integer> collect = studentHonors.stream().map(StudentHonor::getHonorRuleId).collect(Collectors.toList());
-
-        Integer count1 = coursePackageClient.counts(stuId);
-        if (count1 > 0) {
+    public List<StuMedalVo> queryHonorDetails(Integer appUserId) {
+        List<StuMedalVo> list = new ArrayList<>();
+        List<StudentHonor> studentHonors = this.list(new QueryWrapper<StudentHonor>().eq("appUserId", appUserId));
+        for (StudentHonor studentHonor : studentHonors) {
             StuMedalVo vo = new StuMedalVo();
-            vo.setMedalType(1);
-            vo.setMedalName("俱乐部之星");
+            vo.setMedalType(studentHonor.getHonorType());
+            switch (studentHonor.getHonorType()){
+                case 1:
+                    vo.setMedalName("俱乐部之星");
+                    break;
+                case 2:
+                    vo.setMedalName("运动达人");
+                    break;
+                case 3:
+                    vo.setMedalName("社区之王");
+                    break;
+                case 4:
+                    vo.setMedalName("深度玩家");
+                    break;
+            }
             //拿到当前对应的rule对象
             List<Integer> integers = new ArrayList<>();
-            integers.add(1);
-            integers.add(count1);
+            integers.add(studentHonor.getHonorType());
+            integers.add(studentHonor.getNumber());
             HonorRules honorRules = honorDeClient.getHonor(integers);
-            if (count1 < Integer.valueOf(honorRules.getCondition())) {
+            if (studentHonor.getNumber() < Integer.valueOf(honorRules.getCondition())) {
                 vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
                 vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
-                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count1));
+                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - studentHonor.getNumber()));
                 vo.setIsTopLevel(0);
             } else {
                 vo.setIsTopLevel(1);
             }
-
-            studentHonors.add(vo);
+            list.add(vo);
         }
-
-        Integer count2 = participantClient.counts(stuId);
-        if (count2 > 0) {
-            StuMedalVo vo = new StuMedalVo();
-            vo.setMedalType(2);
-            vo.setMedalName("运动达人");
-            //拿到当前对应的rule对象
-            List<Integer> integers = new ArrayList<>();
-            integers.add(2);
-            integers.add(count2);
-            HonorRules honorRules = honorDeClient.getHonor(integers);
-            if (count2 < Integer.valueOf(honorRules.getCondition())) {
-                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
-                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
-                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count2));
-                vo.setIsTopLevel(0);
-            } else {
-                vo.setIsTopLevel(1);
-            }
-
-            studentHonors.add(vo);
-        }
-        TStudent student = studentService.getById(stuId);
-
-        Integer count3 = siteClient.counts(student.getAppUserId());
-        if (count3 > 0) {
-            StuMedalVo vo = new StuMedalVo();
-            vo.setMedalType(3);
-            vo.setMedalName("社区之王");
-            //拿到当前对应的rule对象
-            List<Integer> integers = new ArrayList<>();
-            integers.add(3);
-            integers.add(count3);
-            HonorRules honorRules = honorDeClient.getHonor(integers);
-            if (count3 < Integer.valueOf(honorRules.getCondition())) {
-                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
-                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
-                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count3));
-                vo.setIsTopLevel(0);
-            } else {
-                vo.setIsTopLevel(1);
-            }
-
-            studentHonors.add(vo);
-        }
-
-
-        Integer count4 = coursePackageClient.counts1(stuId);
-        if (count4 > 0) {
-            StuMedalVo vo = new StuMedalVo();
-            vo.setMedalType(4);
-            vo.setMedalName("深度玩家");
-            //拿到当前对应的rule对象
-            List<Integer> integers = new ArrayList<>();
-            integers.add(4);
-            integers.add(count4);
-            HonorRules honorRules = honorDeClient.getHonor(integers);
-            if (count4 < Integer.valueOf(honorRules.getCondition())) {
-                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
-                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
-                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count4));
-                vo.setIsTopLevel(0);
-            } else {
-                vo.setIsTopLevel(1);
-            }
-
-            studentHonors.add(vo);
-        }
-
-
-        return studentHonors;
+        return list;
     }
 }
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 979be10..8676cfc 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
@@ -459,43 +459,40 @@
                 return ResultUtil.error("请先开启定位", "");
             }
             Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat());
-            Integer num = 0;
-            Integer activityId = null;
             if (null != geocode) {
-                String province = geocode.get("province");
-                String provinceCode = geocode.get("provinceCode");
-                String city = geocode.get("city");
                 String cityCode = geocode.get("cityCode");
                 // 根据所在市code 查询是否有介绍有礼活动
-                IntroduceRewards res = introduceRewardsClient.getGiftList(cityCode);
+                List<IntroduceRewards> res = introduceRewardsClient.getGiftList(cityCode);
                 if (res != null) {
-                    num = res.getGiveClass();
-                    activityId = res.getId();
-                    if (ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) {
-                        List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>()
-                                .eq(TAppUser::getPhone, addAppUserVo.getInvitePhone()));
-                        if (tAppUsers.size() > 0) {
-                            addAppUserVo.setReferralUserId(tAppUsers.get(0).getId());
+                    for (IntroduceRewards re : res) {
+                        Integer num = re.getGiveClass();
+                        Integer activityId = re.getId();
+                        if (ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) {
+                            List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>()
+                                    .eq(TAppUser::getPhone, addAppUserVo.getInvitePhone()));
+                            if (tAppUsers.size() > 0) {
+                                addAppUserVo.setReferralUserId(tAppUsers.get(0).getId());
+                            }
                         }
-                    }
-                    if (num != 0) {
-                        TAppGift tAppGift = new TAppGift();
-                        TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>()
-                                .eq("phone", addAppUserVo.getInvitePhone()));
-                        if (phone == null) {
-                            return ResultUtil.error("推荐人手机号未注册玩湃会员!");
-                        } else {
-                            tAppGift.setUserName(phone.getName());
-                            tAppGift.setUserPhone(phone.getPhone());
+                        if (num != 0) {
+                            TAppGift tAppGift = new TAppGift();
+                            TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>()
+                                    .eq("phone", addAppUserVo.getInvitePhone()));
+                            if (phone == null) {
+                                return ResultUtil.error("推荐人手机号未注册玩湃会员!");
+                            } else {
+                                tAppGift.setUserName(phone.getName());
+                                tAppGift.setUserPhone(phone.getPhone());
+                            }
+                            tAppGift.setUserId(addAppUserVo.getReferralUserId());
+                            tAppGift.setNum(num);
+                            tAppGift.setShareUserId(tAppUser.getId());
+                            tAppGift.setShareUserName(tAppUser.getPhone());
+                            tAppGift.setShareUserPhone(tAppUser.getPhone());
+                            tAppGift.setActivityId(activityId);
+                            tAppGift.setInsertTime(new Date());
+                            appGiftService.save(tAppGift);
                         }
-                        tAppGift.setUserId(addAppUserVo.getReferralUserId());
-                        tAppGift.setNum(num);
-                        tAppGift.setShareUserId(tAppUser.getId());
-                        tAppGift.setShareUserName(tAppUser.getPhone());
-                        tAppGift.setShareUserPhone(tAppUser.getPhone());
-                        tAppGift.setActivityId(activityId);
-                        tAppGift.setInsertTime(new Date());
-                        appGiftService.save(tAppGift);
                     }
                 }
             }
@@ -1175,6 +1172,7 @@
         if (tAppUser.getState() == 2) {
             return ResultUtil.error("您的账号已被冻结");
         }
+        boolean newUser = false;
         List<TAppUser> tAppUsers1 = appUserMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getPhone()).eq(TAppUser::getState, 1));
         if (tAppUsers1.size() > 0) {
             TAppUser tAppUser1 = tAppUsers1.get(0);
@@ -1192,56 +1190,49 @@
             appUserMapper.updateById(tAppUser);
             token = getToken(tAppUser);
             map.put("token", token);
-
+            newUser = true;
         }
 
-//        tAppUser.setPhone(dto.getPhone());
-
-        if (ToolUtil.isNotEmpty(dto.getInvitePhone())) {
+        if (newUser && ToolUtil.isNotEmpty(dto.getInvitePhone())) {
             if (ToolUtil.isEmpty(dto.getLat()) || ToolUtil.isEmpty(dto.getLon())) {
                 return ResultUtil.error("请先开启定位");
             }
-            TAppUser tAppUser1 = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone()).eq(TAppUser::getState, 1));
-            if (tAppUser1 != null) {
-                Map<String, String> geocode = null;
-                try {
-                    geocode = gdMapGeocodingUtil.geocode(dto.getLon(), dto.getLat());
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-                Integer num = 0;
-                if (null != geocode) {
-                    String province = geocode.get("province");
-                    String provinceCode = geocode.get("provinceCode");
-                    String city = geocode.get("city");
-                    String cityCode = geocode.get("cityCode");
-                    IntroduceRewards giftList = introduceRewardsClient.getGiftList(cityCode);
-                    num = giftList.getGiveClass();
-                }
-                Integer userId = null;
-                if (ToolUtil.isNotEmpty(dto.getInvitePhone())) {
-                    List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone()));
-                    if (tAppUsers.size() > 0) {
-                        userId = tAppUsers.get(0).getId();
-                    }
-                }
-                if (userId != null) {
-                    TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, userId));
-                    if (one != null) {
-                        one.setNum(one.getNum() + num);
-                        appGiftService.updateById(one);
-                    } else {
-                        TAppGift tAppGift = new TAppGift();
-                        tAppGift.setUserId(userId);
-                        tAppGift.setNum(num);
-                        appGiftService.save(tAppGift);
+            TAppUser tAppUser1 = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>()
+                    .eq(TAppUser::getPhone, dto.getInvitePhone()).eq(TAppUser::getState, 1));
+            if(null == tAppUser1){
+                return ResultUtil.error("邀请人还未注册账号");
+            }
+            Map<String, String> geocode = null;
+            try {
+                geocode = gdMapGeocodingUtil.geocode(dto.getLon(), dto.getLat());
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            if (null != geocode) {
+                String cityCode = geocode.get("cityCode");
+                // 根据所在市code 查询是否有介绍有礼活动
+                List<IntroduceRewards> res = introduceRewardsClient.getGiftList(cityCode);
+                if (res != null) {
+                    for (IntroduceRewards re : res) {
+                        Integer num = re.getGiveClass();
+                        Integer activityId = re.getId();
+                        if (num != 0) {
+                            TAppGift tAppGift = new TAppGift();
+                            tAppGift.setUserName(tAppUser1.getName());
+                            tAppGift.setUserPhone(tAppUser1.getPhone());
+                            tAppGift.setUserId(tAppUser1.getId());
+                            tAppGift.setNum(num);
+                            tAppGift.setShareUserId(tAppUser.getId());
+                            tAppGift.setShareUserName(tAppUser.getPhone());
+                            tAppGift.setShareUserPhone(tAppUser.getPhone());
+                            tAppGift.setActivityId(activityId);
+                            tAppGift.setInsertTime(new Date());
+                            appGiftService.save(tAppGift);
+                        }
                     }
                 }
             }
         }
-
-//        appUserMapper.updateById(tAppUser);
-
         return ResultUtil.success(map);
     }
 
diff --git a/cloud-server-account/src/main/resources/sharding-jdbc.properties b/cloud-server-account/src/main/resources/sharding-jdbc.properties
index d28f1a8..367da05 100644
--- a/cloud-server-account/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-account/src/main/resources/sharding-jdbc.properties
@@ -1,20 +1,7 @@
-#datasource.names=master0
-#datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
-#datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-#datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
-#datasource.master0.username=root
-#datasource.master0.password=123456
-#datasource.master0.maxActive=20
-#datasource.master0.maxWait=60000
-#datasource.master0.minIdle=5
-#datasource.master0.initialSize=2
-
-
-
 datasource.names=master0
 datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
 datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://192.168.110.80/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
 datasource.master0.username=root
 datasource.master0.password=123456
 datasource.master0.maxActive=20
@@ -24,3 +11,16 @@
 
 
 
+#datasource.names=master0
+#datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
+#datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
+#datasource.master0.url=jdbc:mysql://192.168.110.80/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+#datasource.master0.username=root
+#datasource.master0.password=123456
+#datasource.master0.maxActive=20
+#datasource.master0.maxWait=60000
+#datasource.master0.minIdle=5
+#datasource.master0.initialSize=2
+
+
+
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
index 96fa6a2..d7573c9 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
@@ -147,17 +147,15 @@
 
     @PostMapping("/base/introduce/getGiftList")
     @ResponseBody
-    public IntroduceRewards getGiftList(@RequestBody String cityCode) {
+    public List<IntroduceRewards> getGiftList(@RequestBody String cityCode) {
         List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>()
                 .eq(IntroduceRewards::getCityCode, cityCode)
                 .le(IntroduceRewards::getStartTime, new Date())
                 .ge(IntroduceRewards::getEndTime, new Date())
+                .eq(IntroduceRewards::getState, 1)
                 .orderByDesc(IntroduceRewards::getInsertTime)
-                .last("LIMIT 1"));
-        if (list.size() > 0) {
-            return list.get(0);
-        }
-        return null;
+        );
+        return list;
     }
 
 }
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 808b218..01fbc2a 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
@@ -12,7 +12,9 @@
 import com.dsh.competition.entity.UserCompetition;
 import com.dsh.competition.feignclient.account.AppUserClient;
 import com.dsh.competition.feignclient.account.StudentClient;
+import com.dsh.competition.feignclient.account.StudentHonorClient;
 import com.dsh.competition.feignclient.account.model.AppUser;
+import com.dsh.competition.feignclient.account.model.StudentHonor;
 import com.dsh.competition.feignclient.account.model.TStudent;
 import com.dsh.competition.feignclient.course.CoursePackagePaymentClient;
 import com.dsh.competition.feignclient.course.model.PaymentDeductionClassHour;
@@ -81,6 +83,12 @@
 
     @Autowired
     private AppUserClient appUserClient;
+
+    @Resource
+    private StudentHonorClient studentHonorClient;
+
+
+
 
     /**
      * 根据门店ids 获取对应的赛事 根据赛事支付记录获取用户ids
@@ -356,8 +364,6 @@
         try {
             Competition byId = competitionService.getById(paymentCompetitionVo.getId());
             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, "已超过截至报名时间");
@@ -694,9 +700,27 @@
                 } else {
                     competition.setStatus(3);
                 }
+
+                if(competition.getStatus() == 2){
+                    //添加勋章数据
+                    List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
+                            .eq("competitionId", competition.getId()).eq("payStatus", 2).eq("state", 1));
+                    Set<Integer> collect = list.stream().map(PaymentCompetition::getAppUserId).collect(Collectors.toSet());
+                    for (Integer integer : collect) {
+                        int count = paymentCompetitionService.count(new QueryWrapper<PaymentCompetition>()
+                                .eq("appUserId", integer).eq("payStatus", 2).eq("state", 1));
+                        StudentHonor studentHonor = new StudentHonor();
+                        studentHonor.setAppUserId(integer);
+                        studentHonor.setHonorType(2);
+                        studentHonor.setNumber(count);
+                        studentHonorClient.saveStudentHonor(studentHonor);
+                    }
+                }
             }
             competition.setInsertTime(new Date());
             cttService.save(competition);
+
+
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -714,8 +738,26 @@
                 } else {
                     competition.setStatus(3);
                 }
+
+                if(competition.getStatus() == 2){
+                    //添加勋章数据
+                    List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
+                            .eq("competitionId", competition.getId()).eq("payStatus", 2).eq("state", 1));
+                    Set<Integer> collect = list.stream().map(PaymentCompetition::getAppUserId).collect(Collectors.toSet());
+                    for (Integer integer : collect) {
+                        int count = paymentCompetitionService.count(new QueryWrapper<PaymentCompetition>()
+                                .eq("appUserId", integer).eq("payStatus", 2).eq("state", 1));
+                        StudentHonor studentHonor = new StudentHonor();
+                        studentHonor.setAppUserId(integer);
+                        studentHonor.setHonorType(2);
+                        studentHonor.setNumber(count);
+                        studentHonorClient.saveStudentHonor(studentHonor);
+                    }
+                }
             }
             cttService.updateById(competition);
+
+
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/StudentHonorClient.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/StudentHonorClient.java
new file mode 100644
index 0000000..0e14f9d
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/StudentHonorClient.java
@@ -0,0 +1,20 @@
+package com.dsh.competition.feignclient.account;
+
+import com.dsh.competition.feignclient.account.model.StudentHonor;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * 勋章
+ */
+@FeignClient("mb-cloud-account")
+public interface StudentHonorClient {
+
+
+    /**
+     * 保存用户勋章
+      * @param studentHonor
+     */
+    @PostMapping("/studentHonor/saveStudentHonor")
+    void saveStudentHonor(StudentHonor studentHonor);
+}
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/StudentHonor.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/StudentHonor.java
new file mode 100644
index 0000000..fa57b6c
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/StudentHonor.java
@@ -0,0 +1,19 @@
+package com.dsh.competition.feignclient.account.model;
+
+import lombok.Data;
+
+@Data
+public class StudentHonor {
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 荣耀类型
+     */
+    private Integer honorType;
+    /**
+     * 当前次数
+     */
+    private Integer number;
+}
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 8e71751..42600b9 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
@@ -259,18 +259,9 @@
         }
         if (paymentCompetitionVo.getPayType() == 4) {//课程
             money = new BigDecimal(competition.getClassPrice()).multiply(new BigDecimal(jsonArray.size())).setScale(2, RoundingMode.HALF_EVEN);
-            for (int i = 0; i < jsonArray.size(); i++) {
-//                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 new ResultUtil(3, "剩余课时不足,无法完成支付。");
-
-                }
+            Integer integer = coursePackagePaymentClient.queryResidueClassHourById(paymentCompetitionVo.getCoursePaymentId());
+            if (new BigDecimal(integer).compareTo(money) < 0) {
+                return new ResultUtil(3, "剩余课时不足,无法完成支付。");
             }
         }
 
@@ -327,7 +318,6 @@
             paymentCompetition.setPayOrderNo("");
             paymentCompetitionService.updateById(paymentCompetition);
 
-//            competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
             this.updateById(competition);
         }
         if (paymentCompetitionVo.getPayType() == 4) {//课程
@@ -338,6 +328,7 @@
                 if(isStudent == 0){
                     continue;
                 }
+                //扣减课时
                 PaymentDeductionClassHour paymentDeductionClassHour = new PaymentDeductionClassHour();
                 paymentDeductionClassHour.setId(id);
                 paymentDeductionClassHour.setClassHour(competition.getClassPrice());
@@ -346,6 +337,7 @@
                 paymentDeductionClassHour.setUid(uid);
                 coursePackagePaymentClient.paymentDeductionClassHour(paymentDeductionClassHour);
             }
+
             paymentCompetition = paymentCompetitionService.getById(paymentCompetition.getId());
             paymentCompetition.setAppUserId(null);
             paymentCompetition.setPayStatus(2);
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java
index 7bf9077..d661dd3 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java
@@ -3,14 +3,22 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.competition.entity.Competition;
+import com.dsh.competition.entity.PaymentCompetition;
+import com.dsh.competition.feignclient.account.StudentHonorClient;
+import com.dsh.competition.feignclient.account.model.StudentHonor;
 import com.dsh.competition.model.TCompetition;
 import com.dsh.competition.service.CompetitionService;
+import com.dsh.competition.service.IPaymentCompetitionService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @author shaqian
@@ -22,6 +30,14 @@
     @Resource
     private CompetitionService competitionService;
 
+    @Resource
+    private StudentHonorClient studentHonorClient;
+
+    @Autowired
+    private IPaymentCompetitionService paymentCompetitionService;
+
+
+
     /**
      * 每秒去处理的定时任务
      */
@@ -32,15 +48,31 @@
                     .ne("status", 4).ne("state", 3));
             for (Competition competition : list) {
                 // 当前时间小于开始时间
-                if (competition.getStartTime().after(new Date())) {
+                if (competition.getStatus() != 1 && competition.getStartTime().after(new Date())) {
                     competition.setStatus(1);
                 }
-                if (competition.getStartTime().before(new Date())) {
+                if (competition.getStatus() == 1 && competition.getStartTime().before(new Date())) {
                     if (competition.getEndTime().after(new Date())) {
                         competition.setStatus(2);
                     } else {
                         competition.setStatus(3);
                     }
+
+                    if(competition.getStatus() == 2){
+                        //添加勋章数据
+                        List<PaymentCompetition> list1 = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
+                                .eq("competitionId", competition.getId()).eq("payStatus", 2).eq("state", 1));
+                        Set<Integer> collect = list1.stream().map(PaymentCompetition::getAppUserId).collect(Collectors.toSet());
+                        for (Integer integer : collect) {
+                            int count = paymentCompetitionService.count(new QueryWrapper<PaymentCompetition>()
+                                    .eq("appUserId", integer).eq("payStatus", 2).eq("state", 1));
+                            StudentHonor studentHonor = new StudentHonor();
+                            studentHonor.setAppUserId(integer);
+                            studentHonor.setHonorType(2);
+                            studentHonor.setNumber(count);
+                            studentHonorClient.saveStudentHonor(studentHonor);
+                        }
+                    }
                 }
                 competitionService.updateById(competition);
             }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
index bbf7b1d..c8bf140 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
@@ -1,6 +1,7 @@
 package com.dsh.course.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.course.entity.*;
 import com.dsh.course.feignclient.account.AppUserClient;
 import com.dsh.course.feignclient.account.CoachClient;
@@ -140,8 +141,6 @@
     @PostMapping("/cancelledClasses/addCancelledClasses")
     public void addCancelledClasses(@RequestBody CancelledClasses cancelledClasses) {
         cancelledClassesService.save(cancelledClasses);
-
-//        TCoursePackagePayment byId = coursePackagePaymentService.getById(cancelledClasses.getCoursePackagePaymentId());
         orderStudentService.getById(cancelledClasses.getCoursePackagePaymentId());
         CourseCounsum courseCounsum = new CourseCounsum();
         courseCounsum.setPaymentId(cancelledClasses.getCoursePackagePaymentId());
@@ -152,4 +151,5 @@
         courseCounsumService.save(courseCounsum);
     }
 
+
 }
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 a767089..d7630ef 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
@@ -1303,18 +1303,7 @@
     @PostMapping("/coursePackagePayment/paymentDeductionClassHour")
     public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) {
         try {
-            // 2.0 用id进行查询
-//            TCoursePackagePayment coursePackagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2)
-//                    .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
-//            Integer classHour = paymentDeductionClassHour.getClassHour();
-//            for (TCoursePackagePayment coursePackagePayment : list) {
-
-
-
             CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(paymentDeductionClassHour.getCourseId());
-//            if (paymentDeductionClassHour.getClassHour() > coursePackageOrderStudent.getLaveClassHours()) {
-//                return ResultUtil.error("当前课包课时数不足");
-//            }
             TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
             coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour());
             coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
@@ -1343,131 +1332,14 @@
                 }
             }
 
-
-
-
-
-
-//            if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) {
-//                coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
-//                coursePackagePayment.setAppUserId(null);
-//                packagePaymentService.updateById(coursePackagePayment);
-//
-//                CourseCounsum courseCounsum = new CourseCounsum();
-//                courseCounsum.setPaymentId(coursePackagePayment.getId());
-//                courseCounsum.setChangeType(0);
-//                courseCounsum.setNum(classHour);
-//                courseCounsum.setInsertTime(new Date());
-//                courseCounsum.setReason("报名赛事");
-//                courseCounsumService.save(courseCounsum);
-//
-//
-//                List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
-//                List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
-//                coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
-//                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
-//
-//
-//                TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
-//                String classWeeks = tCoursePackage.getClassWeeks();
-//                List<Integer> week = week(classWeeks);
-//
-//                TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId()));
-//
-//                Date today = new Date();
-//                Calendar calendar = Calendar.getInstance();
-//                calendar.add(Calendar.DATE, -1);
-//                today = calendar.getTime();
-//
-//
-//                Integer laveClassHours = pay.getLaveClassHours();
-//                Integer codeTime = tCoursePackage.getCodeTime();
-//                Integer can = laveClassHours / codeTime;
-//
-//                int count = 0;
-//                String[] split = tCoursePackage.getClassStartTime().split(",");
-//                String[] split1 = tCoursePackage.getClassEndTime().split(",");
-//                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-//                SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-//
-//                Date[] dates = generateDateArray(14, today);
-//                for (Date date : dates) {
-//                    if (count == can) {
-//                        break;
-//                    }
-//                    int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date);
-//                    if (week.contains(wei)) {
-//                        for (int i1 = 0; i1 < split.length; i1++) {
-//                            if (count == can) {
-//                                break;
-//                            }
-//                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-//                            coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-//                            Date parse = format1.parse(format.format(date) + " " + split[i1]);
-//                            Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
-//                            coursePackageScheduling.setClassDate(parse);
-//                            coursePackageScheduling.setEndDate(parse1);
-//                            coursePackageScheduling.setStatus(1);
-//                            coursePackageSchedulingService.save(coursePackageScheduling);
-//                            CoursePackageStudent student1 = new CoursePackageStudent();
-//                            student1.setAppUserId(pay.getAppUserId());
-//                            student1.setStudentId(pay.getStudentId());
-//                            student1.setCoursePackageId(pay.getCoursePackageId());
-//                            student1.setCoursePackagePaymentId(pay.getId());
-//                            student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-//                            student1.setSignInOrNot(1);
-//                            student1.setReservationStatus(1);
-//                            student1.setInsertTime(new Date());
-//                            studentService.save(student1);
-//                            count++;
-//                        }
-//                    }
-//                }
-//
-//
-//                // 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"));
-//                    }
-//                }
-//
-//                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);
-//
-//            } 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();
-//            }
-//                }
-
+            CourseCounsum courseCounsum = new CourseCounsum();
+            courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+            courseCounsum.setChangeType(0);
+            courseCounsum.setNum(paymentDeductionClassHour.getClassHour());
+            courseCounsum.setInsertTime(new Date());
+            courseCounsum.setReason("赛事报名");
+            courseCounsum.setAppUserId(coursePackageOrderStudent.getAppUserId());
+            courseCounsumService.save(courseCounsum);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -2206,12 +2078,7 @@
     @ResponseBody
     @PostMapping("/base/coursePack/obtainStudentClassDetails")
     public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId) {
-//        try {
         return coursePackageOrderStudentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum());
-//        }catch (Exception e){
-//            e.printStackTrace();
-//            throw new RuntimeException();
-//        }
     }
 
 
@@ -2233,12 +2100,13 @@
     @PostMapping("/base/coursePack/sendHours")
     public Integer sendHours(@RequestBody String s) throws ParseException {
         String[] split2 = s.split("_");
-        TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split2[0]));
-        byId.setTotalClassHours(byId.getTotalClassHours() + Integer.valueOf(split2[2]));
-        boolean b = packagePaymentService.updateHoursById(byId, Integer.valueOf(split2[2]));
+        CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(Long.valueOf(split2[0]));
+        coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + Integer.valueOf(split2[2]));
+        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + Integer.valueOf(split2[2]));
+        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
 
         CourseCounsum courseCounsum = new CourseCounsum();
-        courseCounsum.setPaymentId(byId.getId());
+        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
         courseCounsum.setChangeType(1);
         courseCounsum.setNum(Integer.valueOf(split2[2]));
         courseCounsum.setInsertTime(new Date());
@@ -2246,17 +2114,17 @@
         courseCounsumService.save(courseCounsum);
 
 
-        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
+        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
         List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
         coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
-        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
+        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
 
 
-        TCoursePackage tCoursePackage = packageService.getById(byId.getCoursePackageId());
+        TCoursePackage tCoursePackage = packageService.getById(coursePackageOrderStudent.getCoursePackageId());
         String classWeeks = tCoursePackage.getClassWeeks();
         List<Integer> week = week(classWeeks);
 
-        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", byId.getCoursePackageId()).eq("studentId", byId.getStudentId()));
+        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).eq("studentId", coursePackageOrderStudent.getStudentId()));
 
         Date today = new Date();
 
@@ -2303,14 +2171,7 @@
                 }
             }
         }
-
-
-        if (b) {
-            return 1;
-        } else {
-
-            return 0;
-        }
+        return 1;
     }
 
 
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 33021bf..594fed2 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
@@ -389,9 +389,9 @@
             courseCounsum.setReason("退费");
             courseCounsum.setPaymentId(o.getId());
             courseCounsum.setInsertTime(new Date());
+            courseCounsum.setAppUserId(o.getAppUserId());
             counsumService.save(courseCounsum);
 
-            o.setTotalClassHours(0);
             o.setLaveClassHours(0);
             o.setStatus(2);
             o.setAppUserId(null);
@@ -509,6 +509,7 @@
             courseCounsum.setNum(laveClassHours);
             courseCounsum.setChangeType(0);
             courseCounsum.setPaymentId(orinPay.getId());
+            courseCounsum.setAppUserId(orinPay.getAppUserId());
             counsumService.save(courseCounsum);
 
             CourseCounsum courseCounsum1 = new CourseCounsum();
@@ -521,6 +522,7 @@
             courseCounsum1.setNum(laveClassHours);
             courseCounsum1.setChangeType(1);
             courseCounsum1.setPaymentId(studentPay.getId());
+            courseCounsum1.setAppUserId(studentPay.getAppUserId());
             counsumService.save(courseCounsum1);
 
             schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours);
@@ -578,6 +580,7 @@
             courseCounsum.setNum(laveClassHours1);
             courseCounsum.setChangeType(0);
             courseCounsum.setPaymentId(orinPay.getId());
+            courseCounsum.setAppUserId(orinPay.getAppUserId());
             counsumService.save(courseCounsum);
 
 
@@ -587,6 +590,7 @@
             courseCounsum1.setNum(laveClassHours1);
             courseCounsum1.setChangeType(1);
             courseCounsum1.setPaymentId(to.getId());
+            courseCounsum1.setAppUserId(to.getAppUserId());
             counsumService.save(courseCounsum1);
 
             //开始排课
@@ -787,45 +791,54 @@
             Student student = studentClient.queryStudentById(Integer.valueOf(stuId));
 
             // 扣除 原来的课时数
-        // 添加购买课时 paytyoe为7
-        // 排课可期  判断课程时间段  添加排课表  添加上课记录表
-        // 找到原来的课包 扣课时
-//        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(toHoliDto.getId());
-        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId));
+            // 添加购买课时 paytyoe为7
+            // 排课可期  判断课程时间段  添加排课表  添加上课记录表
+            // 找到原来的课包 扣课时
+            CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId));
 
-        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
-        TCoursePackage coursePackage1 = coursePackageService.getById(toHoliDto.getClassId());
-        //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
-        List<CoursePackageScheduling> list1 = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
-                .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
-                .eq("type", 1).orderByDesc("classDate"));
-        //已经排课但没有使用的课时数量
-        int number = list1.size() * coursePackage.getNeedNum();
-        Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
-        laveClassHours1 -= number;
-        //需要购买使用的课时数
-        Integer num = toHoliDto.getClassNum();
-        //需要删除多余的排课记录
-        if(num.compareTo(laveClassHours1) > 0){
-            //课时数差额
-            int number1 = num - laveClassHours1;
-            double o = number1 % coursePackage.getNeedNum();
-            int l = 0;
-            if(0 != o){
-                l = 1;
-            }
-            int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l;
-            for (int i = 0; i < n; i++) {
-                CoursePackageScheduling coursePackageScheduling = list1.get(i);
-                coursePackageSchedulingService.deleteById(coursePackageScheduling.getId());
+            TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
+            TCoursePackage coursePackage1 = coursePackageService.getById(toHoliDto.getClassId());
+            //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
+            List<CoursePackageScheduling> list1 = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>()
+                    .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
+                    .eq("type", 1).orderByDesc("classDate"));
+            //已经排课但没有使用的课时数量
+            int number = list1.size() * coursePackage.getNeedNum();
+            Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
+            laveClassHours1 -= number;
+            //需要购买使用的课时数
+            Integer num = toHoliDto.getClassNum();
+            //需要删除多余的排课记录
+            if(num.compareTo(laveClassHours1) > 0){
+                //课时数差额
+                int number1 = num - laveClassHours1;
+                double o = number1 % coursePackage.getNeedNum();
+                int l = 0;
+                if(0 != o){
+                    l = 1;
+                }
+                int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l;
+                for (int i = 0; i < n; i++) {
+                    CoursePackageScheduling coursePackageScheduling = list1.get(i);
+                    coursePackageSchedulingService.deleteById(coursePackageScheduling.getId());
 
-                coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>()
-                        .eq("coursePackageSchedulingId", coursePackageScheduling.getId()));
+                    coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>()
+                            .eq("coursePackageSchedulingId", coursePackageScheduling.getId()));
+                }
             }
-        }
             coursePackageOrderStudent.setAppUserId(null);
-        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum());
+            coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum());
             orderStudentService.updateById(coursePackageOrderStudent);
+
+            CourseCounsum courseCounsum = new CourseCounsum();
+            courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+            courseCounsum.setChangeType(0);
+            courseCounsum.setNum(toHoliDto.getClassNum());
+            courseCounsum.setInsertTime(new Date());
+            courseCounsum.setReason("报名假期班");
+            courseCounsum.setAppUserId(coursePackageOrderStudent.getAppUserId());
+            courseCounsumService.save(courseCounsum);
+
             Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
             if(3 >= laveClassHours){
                 AppUser appUser = appUserClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
@@ -890,18 +903,6 @@
                 //增加日期,用于判断
                 calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
             }
-
-
-
-
-        CourseCounsum courseCounsum = new CourseCounsum();
-        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
-        courseCounsum.setChangeType(0);
-        courseCounsum.setNum(toHoliDto.getClassNum());
-        courseCounsum.setInsertTime(new Date());
-        courseCounsum.setReason("报名假期班");
-//        courseCounsum.setAppUserId(userId);
-        courseCounsumService.save(courseCounsum);
         }
 
         return "报名成功";
@@ -966,23 +967,8 @@
     @ResponseBody
     public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException {
         String[] stuIds = toHoliDto.getIds();
-//        //查询出学员ids对应的棵树,判断剩余课时数是否够
-//        List<CoursePackageOrderStudent> list = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", toHoliDto.getClassId()).in("studentId", stuIds));
-//        List<String> notStudent = new ArrayList<>();
-//        for (CoursePackageOrderStudent coursePackageOrderStudent : list) {
-//            if (coursePackageOrderStudent.getLaveClassHours() < toHoliDto.getClassNum()) {
-//                notStudent.add(studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()).getName());
-//            }
-//        }
-//        if (!notStudent.isEmpty()) {
-//            String notStudentStr = String.join(",", notStudent);
-//            return notStudentStr+":课时数不足";
-//        }
-
-
         //转移课程
         for (String stuId : stuIds) {
-//            CoursePackageOrderStudent orinPay = orderStudentService.getById(toHoliDto.getId());
             CoursePackageOrderStudent orinPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>()
                     .eq("studentId", stuId)
                     .eq("coursePackageId", toHoliDto.getId()));
@@ -999,10 +985,7 @@
                 courseCounsum.setInsertTime(new Date());
                 Integer appUserId = orinPay.getAppUserId();
                 Integer appUserId1 = studentPay.getAppUserId();
-
-                    courseCounsum.setReason("换课");
-
-
+                courseCounsum.setReason("换课");
                 orinPay.setLaveClassHours(0);
                 orinPay.setStatus(3);
                 orinPay.setAppUserId(null);
@@ -1011,18 +994,16 @@
                 courseCounsum.setNum(laveClassHours);
                 courseCounsum.setChangeType(0);
                 courseCounsum.setPaymentId(orinPay.getId());
+                courseCounsum.setAppUserId(orinPay.getAppUserId());
                 counsumService.save(courseCounsum);
 
                 CourseCounsum courseCounsum1 = new CourseCounsum();
                 courseCounsum1.setInsertTime(new Date());
-//                if (appUserId.compareTo(appUserId1) != 0) {
-//                    courseCounsum1.setReason("赠课");
-//                } else {
-                    courseCounsum1.setReason("换课");
-//                }
+                courseCounsum1.setReason("换课");
                 courseCounsum1.setNum(laveClassHours);
                 courseCounsum1.setChangeType(1);
                 courseCounsum1.setPaymentId(studentPay.getId());
+                courseCounsum1.setAppUserId(studentPay.getAppUserId());
                 counsumService.save(courseCounsum1);
 
                 schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentHonorClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentHonorClient.java
new file mode 100644
index 0000000..21892e1
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentHonorClient.java
@@ -0,0 +1,20 @@
+package com.dsh.course.feignclient.account;
+
+import com.dsh.course.feignclient.account.model.StudentHonor;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * 勋章
+ */
+@FeignClient("mb-cloud-account")
+public interface StudentHonorClient {
+
+
+    /**
+     * 保存用户勋章
+      * @param studentHonor
+     */
+    @PostMapping("/studentHonor/saveStudentHonor")
+    void saveStudentHonor(StudentHonor studentHonor);
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/StudentHonor.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/StudentHonor.java
new file mode 100644
index 0000000..094b1ff
--- /dev/null
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/StudentHonor.java
@@ -0,0 +1,19 @@
+package com.dsh.course.feignclient.account.model;
+
+import lombok.Data;
+
+@Data
+public class StudentHonor {
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 荣耀类型
+     */
+    private Integer honorType;
+    /**
+     * 当前次数
+     */
+    private Integer number;
+}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
index 6acdef8..70ebdf3 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
@@ -69,7 +69,6 @@
         List<CoursePackageScheduling> list = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                         .eq("appUserId", appUserId)
                         .eq("studentId", stuId)
-//                        .lt("classDate", sdf.format(calendar.getTime()))
                         .orderByAsc("classDate")
         );
         List<Long> ids = list.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
@@ -77,8 +76,6 @@
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
         SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
         if (list.size() > 0) {
-
-//            int pageNum = 1; // 页码
             int pageSize = 10; // 每页记录数
             Page<CoursePackageStudent> page = new Page<>(pageNum, pageSize);
             IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>()
@@ -115,12 +112,12 @@
                     }
 
 
-                    CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId());
-                    if (byId == null) {
+                    CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId());
+                    if (coursePackageScheduling == null) {
                         continue;
                     }
-                    String dateString1 = sdf.format(byId.getClassDate());
-                    String dateString2 = sdf.format(byId.getEndDate());
+                    String dateString1 = sdf.format(coursePackageScheduling.getClassDate());
+                    String dateString2 = sdf.format(coursePackageScheduling.getEndDate());
 
 
                     recordVo.setTimeFrame(dateString1 + "-" + dateString2.substring(11));
@@ -132,73 +129,45 @@
                     String[] split = classWeeks.split(";");
                     List<String> integerList = Arrays.asList(split);
                     String weekOfDate = DateTimeHelper.getWeekOfDate(new Date());
-//                    if (integerList.contains(weekOfDate)) {
-                        String dat = simpleDateFormat.format(byId.getClassDate()) + " " + dateString1.substring(11);
-                    String ed = simpleDateFormat.format(byId.getEndDate()) + " " + dateString2.substring(11);
+                    String dat = simpleDateFormat.format(coursePackageScheduling.getClassDate()) + " " + dateString1.substring(11);
+                    String ed = simpleDateFormat.format(coursePackageScheduling.getEndDate()) + " " + dateString2.substring(11);
 
-                        Date start = null;
-                        Date end = null;
-                        try {
-                            start = format.parse(dat);
-                            end = format.parse(ed);
-                        } catch (ParseException e) {
-                            throw new RuntimeException(e);
-                        }
+                    Date start = null;
+                    Date end = null;
+                    try {
+                        start = format.parse(dat);
+                        end = format.parse(ed);
+                    } catch (ParseException e) {
+                        throw new RuntimeException(e);
+                    }
 
                     CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
-                            .eq("coursePackageSchedulingId", byId.getId()).last("limit 1"));
-//                   else {
-//                        Date now = new Date();
-//                        if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) {
-//                            recordVo.setStatus(2);
-//                        } else {
-//                            recordVo.setStatus(3);
-//
-//                        }
-//                    }
+                            .eq("coursePackageSchedulingId", coursePackageScheduling.getId()).last("limit 1"));
 
-                        //已取消
-                        if (byId.getStatus() == 4) {
-                            recordVo.setStatus(4);
-                        } else if (coursePackageStudent.getSignInOrNot() == 2) {
-                            //已请假
-                            recordVo.setStatus(5);
-                        }else if  (ToolUtil.isNotEmpty(cancelledClasses)) {
+
+                    if (new Date().after(start)&&new Date().before(end)){
+                        recordVo.setStatus(2);
+                    }
+                    //待上课
+                    if (start.after(new Date())) {
+                        recordVo.setStatus(1);
+                    }
+                    //已取消
+                    if (coursePackageScheduling.getStatus() == 4) {
+                        recordVo.setStatus(4);
+                    }
+                    //已请假
+                    if (coursePackageStudent.getSignInOrNot() == 2) {
+                        recordVo.setStatus(5);
+                    }
+                    //已完成
+                    if (ToolUtil.isNotEmpty(cancelledClasses)) {
                         recordVo.setStatus(3);
                         // 消课 到课状态0 旷课
                         if (coursePackageStudent.getSignInOrNot() == 0) {
                             recordVo.setStatus(6);
                         }
-
-                    }else if (new Date().after(start)&&new Date().before(end)){
-                            recordVo.setStatus(2);
-                        }else if (start.after(new Date())) {
-                            //待上课
-                            recordVo.setStatus(1);
-                        }
-                        else {
-//                            CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
-//                                    .eq("coursePackageSchedulingId", byId.getId()).last("limit 1"));
-//                            if (ToolUtil.isNotEmpty(cancelledClasses)) {
-//                                recordVo.setStatus(3);
-//                                // 消课 到课状态0 旷课
-//                                if (coursePackageStudent.getSignInOrNot() == 0) {
-//                                    recordVo.setStatus(6);
-//                                }
-//
-//                            } else {
-//                                Date now = new Date();
-//                                if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) {
-//                                    recordVo.setStatus(2);
-//                                } else {
-//                                    recordVo.setStatus(3);
-//
-//                                }
-//                            }
-                        }
-//                    } else {
-//                        recordVo.setStatus(1);
-//                    }
+                    }
                     recordVoList.add(recordVo);
                 }
 
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 96d6024..75b2215 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
@@ -16,10 +16,7 @@
 import com.dsh.course.entity.*;
 import com.dsh.course.entity.TAppUser;
 import com.dsh.course.entity.dto.StudentQeryDto;
-import com.dsh.course.feignclient.account.AppUserClient;
-import com.dsh.course.feignclient.account.CoachClient;
-import com.dsh.course.feignclient.account.StudentClient;
-import com.dsh.course.feignclient.account.UserIntegralChangesClient;
+import com.dsh.course.feignclient.account.*;
 import com.dsh.course.feignclient.account.model.*;
 import com.dsh.course.feignclient.activity.BenefitVideoClient;
 import com.dsh.course.feignclient.activity.CouponClient;
@@ -123,6 +120,14 @@
 
     @Resource
     private UserIntegralChangesClient userIntegralChangesClient;
+
+    @Resource
+    private StudentHonorClient studentHonorClient;
+
+
+
+
+
 
 
     @Override
@@ -361,6 +366,7 @@
                 .eq("coursePackageId", detailsRequest.getCoursePackageId())
                 .eq("courseId", detailsRequest.getVideoId())
         );
+        //完成学习
         if (null != userVideoDetails && userVideoDetails.getState() == 1 && detailsRequest.getIsOver() == 1) {
             userVideoDetails.setState(2);
             userVideoDetails.setUpdateTime(new Date());
@@ -371,11 +377,19 @@
             AppUser appUser = appuClient.queryAppUser(coursePackageScheduling.getAppUserId());
             appUser.setIntegral((null == appUser.getIntegral() ? 0 : appUser.getIntegral()) + (null == coursePackageScheduling.getIntegral() ? 0 : coursePackageScheduling.getIntegral()));
             appuClient.updateAppUser(appUser);
+            //保存用户积分变动记录
             SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
             vo.setAppUserId(coursePackageScheduling.getAppUserId());
             vo.setIntegral(coursePackageScheduling.getIntegral());
             vo.setType(4);
             userIntegralChangesClient.saveUserIntegralChanges(vo);
+            //添加勋章数据
+            Integer number = uvdmapper.selectCount(new QueryWrapper<UserVideoDetails>().eq("appUserId", appUserId).eq("state", 2));
+            StudentHonor studentHonor = new StudentHonor();
+            studentHonor.setAppUserId(appUserId);
+            studentHonor.setHonorType(4);
+            studentHonor.setNumber(number);
+            studentHonorClient.saveStudentHonor(studentHonor);
             return "SUCCESS";
         }
         return "ERROR";
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentHonorClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentHonorClient.java
new file mode 100644
index 0000000..085fed0
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/StudentHonorClient.java
@@ -0,0 +1,20 @@
+package com.dsh.course.feignClient.account;
+
+import com.dsh.course.feignClient.account.model.StudentHonor;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * 勋章
+ */
+@FeignClient("mb-cloud-account")
+public interface StudentHonorClient {
+
+
+    /**
+     * 保存用户勋章
+      * @param studentHonor
+     */
+    @PostMapping("/studentHonor/saveStudentHonor")
+    void saveStudentHonor(StudentHonor studentHonor);
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/StudentHonor.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/StudentHonor.java
new file mode 100644
index 0000000..f2a971d
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/StudentHonor.java
@@ -0,0 +1,19 @@
+package com.dsh.course.feignClient.account.model;
+
+import lombok.Data;
+
+@Data
+public class StudentHonor {
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 荣耀类型
+     */
+    private Integer honorType;
+    /**
+     * 当前次数
+     */
+    private Integer number;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CancelledClassesClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CancelledClassesClient.java
index 4948484..06304f8 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CancelledClassesClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CancelledClassesClient.java
@@ -28,4 +28,7 @@
      */
     @PostMapping("/cancelledClasses/addCancelledClasses")
     void addCancelledClasses(CancelledClasses cancelledClasses);
+
+
+
 }
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 453e1d2..127b4cd 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
@@ -1,6 +1,7 @@
 package com.dsh.course.feignClient.course;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.course.feignClient.course.model.CancelledClasses;
 import com.dsh.course.feignClient.course.model.CoursePackageScheduling;
 import com.dsh.course.feignClient.course.model.QueryCoursePackageSchedulingList;
 import org.springframework.cloud.openfeign.FeignClient;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
index f60f2d6..e110d25 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -329,17 +329,6 @@
 
         model.addAttribute("item", tStudentDto);
         if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.equals("")) {
-//            String[] pics = tStudentDto.getLateralSurface().split(";");
-//            model.addAttribute("pic1", pics[0]);
-//            System.out.println("=====pic1==" + pics[0]);
-//            if (pics.length > 1) {
-//                model.addAttribute("pic2", pics[1]);
-//                System.out.println("=====pic2==" + pics[1]);
-//            }
-//            if (pics.length > 2) {
-//                model.addAttribute("pic3", pics[2]);
-//                System.out.println("=====pic3==" + pics[2]);
-//            }
             model.addAttribute("images",tStudentDto.getLateralSurface());
         }
 
@@ -598,11 +587,6 @@
     @RequestMapping("/changeStatus/{id}")
     @ResponseBody
     public ResultUtil changeStatus(@PathVariable Integer id) {
-//        InsertBackDto insertBackDto= new InsertBackDto();
-//        insertBackDto.setId(id);
-////        insertBackDto.setIds(ids);
-//        System.out.println("=====insertBackDto========"+insertBackDto);
-
         courseStuddentClient.changeStatus(id);
         courseStuddentClient.zeroClass(id);
 
@@ -613,14 +597,8 @@
     @RequestMapping("/noStatus/{id}")
     @ResponseBody
     public ResultUtil noStatus(@PathVariable Integer id) {
-//        InsertBackDto insertBackDto= new InsertBackDto();
-//        insertBackDto.setId(id);
-////        insertBackDto.setIds(ids);
-//        System.out.println("=====insertBackDto========"+insertBackDto);
-
         courseStuddentClient.noStatus(id);
         courseStuddentClient.backStausClass(id);
-//        courseStuddentClient.zeroClass(id);
 
         System.out.println("============学员查询接口=========");
         return new ResultUtil<>(0,0,"已拒绝",null,null);
@@ -833,14 +811,12 @@
         System.out.println("========ToHoliDto========="+resultUtil);
 
         if (resultUtil.equals("换课成功")) {
-//            return ResultUtil.success(resultUtil);
                         return new ResultUtil<>(0,0,resultUtil);
 
         }else {
-            return new ResultUtil<>(0,1,resultUtil);}
+            return new ResultUtil<>(0,1,resultUtil);
         }
-//        if (resultUtil==""){
-//        }else{
+    }
 
 
     //赠课
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
index befcf1d..045f9b7 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -3,8 +3,11 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.entity.CoursePackageOrderStudent;
+import com.dsh.course.feignClient.account.StudentHonorClient;
+import com.dsh.course.feignClient.account.model.StudentHonor;
 import com.dsh.course.feignClient.course.*;
 import com.dsh.course.feignClient.course.model.*;
 import com.dsh.guns.config.UserExt;
@@ -23,10 +26,8 @@
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -58,6 +59,9 @@
 
     @Resource
     private CancelledClassesClient cancelledClassesClient;
+
+    @Resource
+    private StudentHonorClient studentHonorClient;
 
 
 
@@ -548,8 +552,6 @@
      */
     @Override
     public ResultUtil cancellationRecord(Long id, String cancelClasses, Integer deductClassHour) {
-//        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id);
-
         List<CoursePackageScheduling> coursePackageSchedulings =  coursePackageSchedulingClient.queryCoursePackageSchedulingsById(id);
         CoursePackageScheduling coursePackageScheduling1 = coursePackageSchedulings.get(0);
         Date classDate = coursePackageScheduling1.getEndDate();
@@ -564,15 +566,6 @@
             coursePackageScheduling.setDeductClassHour(deductClassHour);
             coursePackageScheduling.setStatus(3);
         }
-
-
-//        for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) {
-
-//        if(coursePackageScheduling.getStatus() == 1 || coursePackageScheduling.getStatus() == 4){
-//            return ResultUtil.error("不能添加消课凭证");
-//        }
-//        coursePackageScheduling.setCancelClasses(cancelClasses);
-//        coursePackageScheduling.setDeductClassHour(deductClassHour);
         coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageSchedulings);
 
         List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryByCoursePackageSchedulingId(integers);
@@ -580,8 +573,6 @@
             if(coursePackageStudent.getSignInOrNot() == 2){
                 continue;
             }
-//            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());
-
             CoursePackageOrderStudent coursePackageOrderStudent = coursePackagePaymentClient.queryCoursePackagePaymentById1(coursePackageStudent.getCoursePackagePaymentId());
 
             if (deductClassHour!=null) {
@@ -606,17 +597,23 @@
             cancelledClasses.setCoursePackageSchedulingId(coursePackageStudent.getCoursePackageSchedulingId());
             cancelledClasses.setVoucher(cancelClasses);
             if (deductClassHour!=null) {
-            cancelledClasses.setCancelledClassesNumber(deductClassHour);}
+                cancelledClasses.setCancelledClassesNumber(deductClassHour);
+            }
             cancelledClasses.setInsertTime(new Date());
             cancelledClassesClient.addCancelledClasses(cancelledClasses);
 
-
-
-
-
-
+            //添加勋章数据
+            QueryCoursePackageStudent queryCoursePackageStudent = new QueryCoursePackageStudent();
+            queryCoursePackageStudent.setAppUserId(coursePackageStudent.getAppUserId());
+            queryCoursePackageStudent.setSignInOrNot(1);
+            queryCoursePackageStudent.setReservationStatus(1);
+            List<CoursePackageStudent> coursePackageStudents1 = coursePackageStudentClient.queryCoursePackageStudent(queryCoursePackageStudent);
+            StudentHonor studentHonor = new StudentHonor();
+            studentHonor.setAppUserId(coursePackageStudent.getAppUserId());
+            studentHonor.setHonorType(1);
+            studentHonor.setNumber(coursePackageStudents1.size());
+            studentHonorClient.saveStudentHonor(studentHonor);
         }
-//        }
 
         return ResultUtil.success();
     }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java
index 6e9c559..7e10ef6 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java
@@ -84,10 +84,9 @@
 
     @PostMapping("/base/honor/getHonor")
     public HonorRules getHonor(@RequestBody List<Integer> integers) {
-//        HonorRules one = honorRulesService.getOne(new QueryWrapper<HonorRules>().eq("type", integers.get(0)).le("condition", String.valueOf(integers.get(1))).last("limit 1"));
         HonorRules one = honorRulesService.getOne(new QueryWrapper<HonorRules>()
                 .eq("type", integers.get(0))
-                .le("`condition`", integers.get(1)).orderByDesc("level")
+                .le("`condition`", integers.get(1)).orderByDesc("condition")
                 .last("LIMIT 1"));
 
         if (one == null) {
@@ -101,7 +100,8 @@
         if (one.getLevel() == 10) {
             return one;
         }
-        HonorRules one2 = honorRulesService.getOne(new QueryWrapper<HonorRules>().eq("type", integers.get(0)).eq("level", Integer.valueOf(one.getLevel()) + 1));
+        HonorRules one2 = honorRulesService.getOne(new QueryWrapper<HonorRules>().eq("type", integers.get(0))
+                .eq("level", Integer.valueOf(one.getLevel()) + 1));
         return one2;
     }
 
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/HonorRulesController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorRulesController.java
new file mode 100644
index 0000000..a86691e
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorRulesController.java
@@ -0,0 +1,49 @@
+package com.dsh.other.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.HonorRules;
+import com.dsh.other.service.HonorRulesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/honorRules")
+public class HonorRulesController {
+
+    @Autowired
+    private HonorRulesService honorRulesService;
+
+
+    /**
+     * 获取当前合适的推责
+     * @param honorRules
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/getHonorRules")
+    public HonorRules getHonorRules(@RequestBody HonorRules honorRules){
+        List<HonorRules> list = honorRulesService.list(new QueryWrapper<HonorRules>()
+                .eq("type", honorRules.getType()).orderByDesc("condition"));
+        for (HonorRules rules : list) {
+            Integer condition = rules.getCondition();
+            if(honorRules.getCondition().compareTo(condition) >= 0){
+                return rules;
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * 根据id获取数据
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/getHonorRulesById")
+    public HonorRules getHonorRulesById(Integer id){
+        return honorRulesService.getById(id);
+    }
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/StudentHonorClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/StudentHonorClient.java
new file mode 100644
index 0000000..23622e7
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/StudentHonorClient.java
@@ -0,0 +1,20 @@
+package com.dsh.other.feignclient.account;
+
+import com.dsh.other.feignclient.account.model.StudentHonor;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * 勋章
+ */
+@FeignClient("mb-cloud-account")
+public interface StudentHonorClient {
+
+
+    /**
+     * 保存用户勋章
+      * @param studentHonor
+     */
+    @PostMapping("/studentHonor/saveStudentHonor")
+    void saveStudentHonor(StudentHonor studentHonor);
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/StudentHonor.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/StudentHonor.java
new file mode 100644
index 0000000..a9ca71e
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/StudentHonor.java
@@ -0,0 +1,19 @@
+package com.dsh.other.feignclient.account.model;
+
+import lombok.Data;
+
+@Data
+public class StudentHonor {
+    /**
+     * 用户id
+     */
+    private Integer appUserId;
+    /**
+     * 荣耀类型
+     */
+    private Integer honorType;
+    /**
+     * 当前次数
+     */
+    private Integer number;
+}
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 61a4e05..c5a4e7b 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
@@ -327,7 +327,6 @@
      */
     @Override
     public ResultUtil reservationSite(Integer uid, ReservationSite reservationSite) throws Exception {
-
         Site site = this.getById(reservationSite.getId());
         AppUser appUser = appUserClient.queryAppUser(uid);
         String[] split = reservationSite.getTimes().split(";");
@@ -387,7 +386,6 @@
                     return ResultUtil.error("优惠券已过期");
                 }
                 if (userCoupon != null && coupon.getType() == 1) {//满减
-//                {"conditionalAmount":50,"deductionAmount":10,"experienceName":""}
                     JSONObject jsonObject = JSON.parseObject(coupon.getContent());
                     Double num1 = jsonObject.getDouble("conditionalAmount");
                     Double num2 = jsonObject.getDouble("deductionAmount");
@@ -449,6 +447,9 @@
         }
         if (reservationSite.getPayType() == 3) {//玩湃币支付
             if (reservationSite.getIsHalf() == 2) {
+
+
+
                 return playPaiCoinPaymentSite(appUser, Double.valueOf(site.getPlayPaiCoin()), siteBooking);
             } else {
                 return playPaiCoinPaymentSite(appUser, site.getPlayPaiCoinOne(), siteBooking);
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
index 426dcd2..c23e459 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
@@ -1,13 +1,17 @@
 package com.dsh.other.util;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.other.entity.SiteBooking;
+import com.dsh.other.feignclient.account.StudentHonorClient;
+import com.dsh.other.feignclient.account.model.StudentHonor;
 import com.dsh.other.mapper.SiteBookingMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -22,6 +26,12 @@
 
     @Resource
     private SiteBookingMapper siteBookingMapper;
+
+    @Resource
+    private StudentHonorClient studentHonorClient;
+
+
+
 
     /**
      * 每隔一分钟去处理的定时任务
@@ -74,6 +84,16 @@
                 if (System.currentTimeMillis() > time) {
                     siteBooking.setStatus(4);
                     siteBookingMapper.updateById(siteBooking);
+
+                    //添加勋章数据
+                    Integer number = siteBookingMapper.selectCount(new QueryWrapper<SiteBooking>()
+                            .eq("appUserId", siteBooking.getAppUserId()).in("status", Arrays.asList(3, 4)));
+                    StudentHonor studentHonor = new StudentHonor();
+                    studentHonor.setAppUserId(siteBooking.getAppUserId());
+                    studentHonor.setHonorType(3);
+                    studentHonor.setNumber(number);
+                    studentHonorClient.saveStudentHonor(studentHonor);
+
                 }
             }
             //定时修改赛事状态
@@ -88,14 +108,11 @@
         try {
             // 获取待核销状态的记录
             List<SiteBooking> siteBookings = siteBookingMapper.selectList(new LambdaQueryWrapper<SiteBooking>()
-                    .eq(SiteBooking::getStatus, 1));
+                    .eq(SiteBooking::getStatus, 0).eq(SiteBooking::getState, 1));
             for (SiteBooking siteBooking : siteBookings) {
-                if(null == siteBooking.getEndTime()){
-                    continue;
-                }
-                long time = siteBooking.getEndTime().getTime();
-                if (System.currentTimeMillis() > time) {
-                    siteBooking.setStatus(4);
+                long time = siteBooking.getInsertTime().getTime();
+                if (System.currentTimeMillis() > time + 1800000L) {
+                    siteBooking.setState(3);
                     siteBookingMapper.updateById(siteBooking);
                 }
             }

--
Gitblit v1.7.1