he2802 3 лет назад
Родитель
Сommit
76910f7383
54 измененных файлов с 1041 добавлено и 202 удалено
  1. 2 2
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 7 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  3. 3 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderBusinessConfigController.java
  4. 21 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
  5. 1 0
      zhongzheng-admin/src/main/resources/application.yml
  6. 9 4
      zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  7. 1 0
      zhongzheng-api/src/main/resources/application.yml
  8. 23 10
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/redis/RedisCache.java
  9. 3 1
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/SecurityUtils.java
  10. 48 5
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/WxLoginService.java
  11. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/ExamTempServiceImpl.java
  12. 12 12
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java
  13. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseBusinessMapper.java
  14. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java
  15. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseBusinessService.java
  16. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseService.java
  17. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseBusinessServiceImpl.java
  18. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java
  19. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java
  20. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java
  21. 11 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java
  22. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeQueryBo.java
  23. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java
  24. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java
  25. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java
  26. 50 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  27. 60 28
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java
  28. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeVo.java
  29. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/SyncUserCourseStudyRec.java
  30. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/IInformRemindService.java
  31. 10 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/impl/InformRemindServiceImpl.java
  32. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderBusinessConfigQueryBo.java
  33. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderBusinessConfigMapper.java
  34. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderBusinessConfigService.java
  35. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderBusinessConfigServiceImpl.java
  36. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java
  37. 26 15
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  38. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderBusinessConfigGoodsVo.java
  39. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderBusinessConfigVo.java
  40. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java
  41. 409 88
      zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java
  42. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysConfigService.java
  43. 12 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysConfigServiceImpl.java
  44. 16 16
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java
  45. 38 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java
  46. 4 4
      zhongzheng-system/src/main/resources/mapper/modules/bank/ExamTempMapper.xml
  47. 11 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseBusinessMapper.xml
  48. 28 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml
  49. 67 3
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml
  50. 39 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml
  51. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  52. 7 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigGoodsMapper.xml
  53. 25 1
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigMapper.xml
  54. 3 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

+ 2 - 2
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -183,8 +183,8 @@ public class CommonController
     public AjaxResult<Void> testList()
     {
         UserPeriodEditBo queryBo = new UserPeriodEditBo();
-        queryBo.setGoodsId(975L);
-        queryBo.setGradeId(862L);
+        queryBo.setGoodsId(1085L);
+        queryBo.setGradeId(978L);
         queryBo.setUserId(114L);
         iUserPeriodService.syncStudyLogToOld(queryBo);
         return AjaxResult.success();

+ 7 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -641,4 +641,11 @@ public class ClassGradeController extends BaseController {
         iUserPeriodService.confirmRollbackPeriod(bo);
         return AjaxResult.success();
     }
+
+    @ApiOperation("获取官方班级人数")
+    @Log(title = "获取官方班级人数", businessType = BusinessType.UPDATE)
+    @GetMapping("/officialGradeCount")
+    public AjaxResult<Integer> queryOfficialGradeCount(ClassGradeQueryBo bo) {
+        return AjaxResult.success(iClassGradeService.queryOfficialGradeCount(bo));
+    }
 }

+ 3 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderBusinessConfigController.java

@@ -74,7 +74,9 @@ public class OrderBusinessConfigController extends BaseController {
     @PreAuthorize("@ss.hasPermi('system:config:query')")
     @GetMapping("/{id}")
     public AjaxResult<OrderBusinessConfigVo> getInfo(@PathVariable("id" ) Long id) {
-        return AjaxResult.success(iOrderBusinessConfigService.queryById(id));
+        OrderBusinessConfigQueryBo queryBo = new OrderBusinessConfigQueryBo();
+        queryBo.setId(id);
+        return AjaxResult.success(iOrderBusinessConfigService.getDetail(queryBo));
     }
 
     /**

+ 21 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -374,4 +374,25 @@ public class ScheduleController extends BaseController {
         return AjaxResult.success();
     }
 
+    @ApiOperation("课程试卷未做完3天提醒")
+    @GetMapping("/noFinishExamToStudentThree")
+    public AjaxResult noFinishExamToStudentThree(UserQueryBo bo){
+        iScheduleService.noFinishExamToStudentThree(bo);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("课程试卷未做完5天提醒")
+    @GetMapping("/noFinishExamToStudentFive")
+    public AjaxResult noFinishExamToStudentFive(UserQueryBo bo){
+        iScheduleService.noFinishExamToStudentFive(bo);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("课程试卷未做完7天提醒")
+    @GetMapping("/noFinishExamToStudentSeven")
+    public AjaxResult noFinishExamToStudentSeven(UserQueryBo bo){
+        iScheduleService.noFinishExamToStudentSeven(bo);
+        return AjaxResult.success();
+    }
+
 }

+ 1 - 0
zhongzheng-admin/src/main/resources/application.yml

@@ -301,3 +301,4 @@ aliyun:
     signCommitmentRemind: SMS_250390195  #签署承诺书提醒
     todayExamNotRecordWarn: SMS_257713140  #学员打卡提醒(每日一练)
     todayExamNotRecordTeachWarn: SMS_257702971  #学员打卡教务提醒(每日一练)
+    noFinishExamNoteCode: SMS_262460267  #未做完试卷通知

+ 9 - 4
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -7,6 +7,7 @@ import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.PageDomain;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.core.page.TableSupport;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.WxTokenService;
 import com.zhongzheng.modules.bank.bo.QuestionChapterExamQueryBo;
@@ -22,6 +23,8 @@ import com.zhongzheng.modules.course.bo.CourseQueryBo;
 import com.zhongzheng.modules.course.service.ICourseSectionService;
 import com.zhongzheng.modules.course.vo.CourseLiveVo;
 import com.zhongzheng.modules.course.vo.CourseSectionVo;
+import com.zhongzheng.modules.exam.domain.ExamPaper;
+import com.zhongzheng.modules.exam.service.IExamPaperService;
 import com.zhongzheng.modules.goods.bo.*;
 import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
@@ -87,7 +90,7 @@ public class GoodsController extends BaseController {
 
     private final IOrderGoodsFreeService iOrderGoodsFreeService;
 
-
+    private final IExamPaperService iExamPaperService;
 
     /**
      * 获取商品详细信息
@@ -165,8 +168,10 @@ public class GoodsController extends BaseController {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
 
         Map<String,Object> numMap = new HashMap<>();
-
-
+        ExamPaper examPaper = iExamPaperService.getOne(new LambdaQueryWrapper<ExamPaper>().eq(ExamPaper::getStatus, 1).eq(ExamPaper::getPaperName,"随机练习").last("limit 1"));
+        if(Validator.isEmpty(examPaper)){
+            throw new CustomException("系统不存在随机练习试卷类型");
+        }
 
         UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo();
         userExamRecordQueryBo.setOrderGoodsId(orderGoodsId);
@@ -186,7 +191,7 @@ public class GoodsController extends BaseController {
                 .eq(OrderGoods::getOrderGoodsId, orderGoodsId));
         if(Validator.isNotEmpty(orderGoods)){
             Long goodsId = orderGoods.getGoodsId();
-            Long totalNum = iGoodsService.getQuestionNum(goodsId);
+            Long totalNum = iGoodsService.getRandomQuestionNum(goodsId,examPaper.getPaperId());
             numMap.put("totalNum",totalNum);
         }
 

+ 1 - 0
zhongzheng-api/src/main/resources/application.yml

@@ -296,3 +296,4 @@ aliyun:
     signCommitmentRemind: SMS_250390195  #签署承诺书提醒
     todayExamNotRecordWarn: SMS_257713140  #学员打卡提醒(每日一练)
     todayExamNotRecordTeachWarn: SMS_257702971  #学员打卡教务提醒(每日一练)
+    noFinishExamNoteCode: SMS_262460267  #未做完试卷通知

+ 23 - 10
zhongzheng-common/src/main/java/com/zhongzheng/common/core/redis/RedisCache.java

@@ -38,7 +38,14 @@ public class RedisCache
      */
     public <T> void setCacheObject(final String key, final T value)
     {
-        redisTemplate.opsForValue().set(key, value);
+        String unionKey = key;
+        if(Validator.isNotEmpty(ServletUtils.getRequest())){
+            String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+            if(Validator.isNotEmpty(tenantId)){
+                unionKey = tenantId + key;
+            }
+        }
+        redisTemplate.opsForValue().set(unionKey, value);
     }
 
     /**
@@ -51,10 +58,12 @@ public class RedisCache
      */
     public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit)
     {
-        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
         String unionKey = key;
-        if(Validator.isNotEmpty(tenantId)){
-            unionKey = tenantId + key;
+        if(Validator.isNotEmpty(ServletUtils.getRequest())){
+            String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+            if(Validator.isNotEmpty(tenantId)){
+                unionKey = tenantId + key;
+            }
         }
         redisTemplate.opsForValue().set(unionKey, value, timeout, timeUnit);
 
@@ -94,10 +103,12 @@ public class RedisCache
     public <T> T getCacheObject(final String key)
     {
         ValueOperations<String, T> operation = redisTemplate.opsForValue();
-        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
         String unionKey = key;
-        if(Validator.isNotEmpty(tenantId)){
-            unionKey = tenantId + key;
+        if(Validator.isNotEmpty(ServletUtils.getRequest())){
+            String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+            if(Validator.isNotEmpty(tenantId)){
+                unionKey = tenantId + key;
+            }
         }
         return operation.get(unionKey);
     }
@@ -109,10 +120,12 @@ public class RedisCache
      */
     public boolean deleteObject(final String key)
     {
-        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
         String unionKey = key;
-        if(Validator.isNotEmpty(tenantId)){
-            unionKey = tenantId + key;
+        if(Validator.isNotEmpty(ServletUtils.getRequest())){
+            String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+            if(Validator.isNotEmpty(tenantId)){
+                unionKey = tenantId + key;
+            }
         }
         return redisTemplate.delete(unionKey);
     }

+ 3 - 1
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/SecurityUtils.java

@@ -118,6 +118,8 @@ public class SecurityUtils
      */
     public static boolean isAdmin(Long userId)
     {
-        return userId != null && 1L == userId;
+        LoginUser user= (LoginUser) getAuthentication().getPrincipal();
+        return user != null && "admin".equals(user.getUser().getUserName());
+     //   return userId != null && 1L == userId;
     }
 }

+ 48 - 5
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/WxLoginService.java

@@ -24,6 +24,7 @@ import com.zhongzheng.modules.alisms.service.IAliSmsService;
 import com.zhongzheng.modules.course.bo.SectionWatchPerBo;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.user.bo.UserWxFollowAddBo;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
@@ -56,23 +57,23 @@ public class WxLoginService implements IWxLoginService {
     @Autowired
     private WxTokenService wxTokenService;
 
-    @Value("${wx.small.appid}")
+  //  @Value("${wx.small.appid}")
     private String appid;
 
-    @Value("${wx.small.appsecret}")
+ //   @Value("${wx.small.appsecret}")
     private String appsrcret;
 
     private String wxAuthUrl = "https://api.weixin.qq.com/sns/jscode2session";
 
     private String wxAuthParam = "appid=%s&secret=%s&js_code=%s&grant_type=authorization_code";
 
-    @Value("${wx.gzh.appid}")
+  //  @Value("${wx.gzh.appid}")
     private String gzh_appid;
 
-    @Value("${wx.scanLogin.host}")
+  //  @Value("${wx.scanLogin.host}")
     private String scanLoginHost;
 
-    @Value("${wx.gzh.appsecret}")
+ //   @Value("${wx.gzh.appsecret}")
     private String gzh_appsrcret;
 
     @Value("${wx.gzh.studyNoteTpId}")
@@ -149,8 +150,21 @@ public class WxLoginService implements IWxLoginService {
     @Autowired
     private IGoodsService iGoodsService;
 
+    @Autowired
+    private ISysConfigService configService;
+
+    public void initData(){
+        appid = configService.selectConfigByKey("wx.small.appid");
+        appsrcret = configService.selectConfigByKey("wx.small.appsecret");
+        gzh_appsrcret = configService.selectConfigByKey("wx.gzh.appsecret");
+        gzh_appid = configService.selectConfigByKey("wx.gzh.appid");
+        scanLoginHost = configService.selectConfigByKey("wx.scanLogin.host");
+
+    }
+
 
     public Map<String, String> test_login() {
+        initData();
         String unionId = "oQ2yp56PgQ-PfwN4vxTZhR5eTpzk";
         User user = iUserService.queryByUnionId(unionId);
         ClientLoginUser loginUser = new ClientLoginUser();
@@ -163,6 +177,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public Map<String, Object> pcLoginUrl() {
+        initData();
         String scanCode = ToolsUtils.getCharAndNumr(6);
         String key = "SCAN_LOGIN_" + scanCode;
         String keyStatus = "SCAN_LOGIN_STATUS_" + scanCode; //0未扫码 1已扫码 2已登录
@@ -196,6 +211,7 @@ public class WxLoginService implements IWxLoginService {
      * @return
      */
     public Map<String, Object> checkPcLogin(String scanCode) {
+        initData();
         String key = "SCAN_LOGIN_" + scanCode;
         String keyStatus = "SCAN_LOGIN_STATUS_" + scanCode; //0未扫码 1已扫码 2已登录
         Long userId = redisCache.getCacheObject(key);
@@ -221,6 +237,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> login(WxLoginBody loginBody) {
+        initData();
         User user = getWxUnionIdUser(loginBody);
         if (user == null) {
             throw new CustomException("登录错误");
@@ -236,6 +253,7 @@ public class WxLoginService implements IWxLoginService {
 
 
     public Map<String, String> smallTel(WxLoginBody loginBody) {
+        initData();
         User user = getWxUnionIdUser(loginBody);
         if (user == null) {
             throw new CustomException("登录错误");
@@ -249,6 +267,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public Map<String, String> gzh_login(WxLoginBody loginBody) {
+        initData();
         User user = getWxGzhUnionIdUser(loginBody);
         if (user == null) {
             throw new CustomException("登录错误");
@@ -262,6 +281,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public String refreshToken(String userAccount) {
+        initData();
         User user = iUserService.queryByAccount(userAccount);
         if (user == null) {
             throw new CustomException("userAccount不存在");
@@ -283,6 +303,7 @@ public class WxLoginService implements IWxLoginService {
      * @return
      */
     public Boolean register_small(String openId, String unionId, String tel, String inviteCode, String shareCode) {
+        initData();
         User bo = new User();
         bo.setOpenId(openId);
         bo.setUnionId(unionId);
@@ -319,6 +340,7 @@ public class WxLoginService implements IWxLoginService {
 
     //小程序获取用户openid
     public String getWxOpenId(WxLoginBody loginBody, Long userId) {
+        initData();
         LambdaQueryWrapper<User> lqw = Wrappers.lambdaQuery();
         lqw.eq(User::getUserId, userId);
         User user = iUserService.getOne(lqw);
@@ -339,6 +361,7 @@ public class WxLoginService implements IWxLoginService {
 
     //小程序获取用户信息
     public User getWxUnionIdUser(WxLoginBody loginBody) {
+        initData();
         String param = String.format(wxAuthParam, appid, appsrcret, loginBody.getCode());
         String resultString = HttpUtils.sendGet(wxAuthUrl, param);
         //解析json
@@ -384,6 +407,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public String getWxSmallAccessToken() {
+        initData();
         String key = "WX_SMALL_ACCESS_TOKEN";
         String accessToken = redisCache.getCacheObject(key);
         if (Validator.isEmpty(accessToken) || accessToken.equals("null")) {
@@ -404,6 +428,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public String getWxGzhAccessToken() {
+        initData();
         String key = "WX_GZH_ACCESS_TOKEN";
         String accessToken = redisCache.getCacheObject(key);
         if (Validator.isEmpty(accessToken) || accessToken.equals("null")) {
@@ -425,6 +450,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public String getWxGzhUserList(String nextOpenid) {
+        initData();
         String accessToken = getWxGzhAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("accessToken 错误");
@@ -460,6 +486,7 @@ public class WxLoginService implements IWxLoginService {
     }
 
     public String getWxGzhUserCgiInfo(String openid) {
+        initData();
         String accessToken = getWxGzhAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("accessToken 错误");
@@ -478,6 +505,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendSmallTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -528,6 +556,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String getLiveEnCode(SectionWatchPerBo watchPer) {
+        initData();
         String wxGzhAccessToken = getWxSmallAccessToken();
         String param = String.format(small_wxEnCodeParam, wxGzhAccessToken);
         String url = small_wxEnCodeUrl + "?" + param;
@@ -559,6 +588,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String getBackEnCode(SectionWatchPerBo watchPer) {
+        initData();
         String wxGzhAccessToken = getWxSmallAccessToken();
         String param = String.format(small_wxEnCodeParam, wxGzhAccessToken);
         String url = small_wxEnCodeUrl + "?" + param;
@@ -576,6 +606,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendQdyTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -631,6 +662,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendQdySubTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -691,6 +723,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendQdySubStatusTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -745,6 +778,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendQdyExamTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -795,6 +829,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendQdyExamStatusTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -845,6 +880,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String sendSignatureTpMsg(String openId, Map<String, String> paramMap) {
+        initData();
         String accessToken = getWxSmallAccessToken();
         if (Validator.isEmpty(accessToken)) {
             throw new CustomException("小程序accessToken 错误");
@@ -895,6 +931,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String getActivityApplyCode(Long activityId) {
+        initData();
         String wxGzhAccessToken = getWxSmallAccessToken();
         String param = String.format(small_wxEnCodeParam, wxGzhAccessToken);
         String url = small_wxEnCodeUrl + "?" + param;
@@ -921,6 +958,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String getTopicEnCode(Long topicId) {
+        initData();
         String wxGzhAccessToken = getWxSmallAccessToken();
         String param = String.format(small_wxEnCodeParam, wxGzhAccessToken);
         String url = small_wxEnCodeUrl + "?" + param;
@@ -948,6 +986,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String shareGoodsCode(WxShareGoodsBo bo) {
+        initData();
         GoodsVo goodsVo = iGoodsService.queryById(bo.getGoodsId());
         if(Validator.isEmpty(goodsVo)){
             throw new CustomException("商品ID错误");
@@ -993,6 +1032,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public WxInfoBo getWxInfo(WxInfoQuery query) {
+        initData();
         Long time = System.currentTimeMillis();
         String nonceStr = UUID.randomUUID().toString();
         String ticket = "";
@@ -1030,6 +1070,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String getWxSmallLink() {
+        initData();
         String wxGzhAccessToken = getWxSmallAccessToken();
         String param = String.format(small_LinkParam, wxGzhAccessToken);
         String url = small_LinkUrl + "?" + param;
@@ -1060,6 +1101,7 @@ public class WxLoginService implements IWxLoginService {
 
     @Override
     public String getWxSmallStudyCentreLink() {
+        initData();
         String wxGzhAccessToken = getWxSmallAccessToken();
         String param = String.format(small_LinkParam, wxGzhAccessToken);
         String url = small_LinkUrl + "?" + param;
@@ -1106,6 +1148,7 @@ public class WxLoginService implements IWxLoginService {
 
     //公众号获取用户信息
     public User getWxGzhUnionIdUser(WxLoginBody loginBody) {
+        initData();
         String param = String.format(gzh_wxAuthParam, gzh_appid, gzh_appsrcret, loginBody.getCode());
         String resultString = HttpUtils.sendGet(gzh_wxAuthUrl, param);
         //解析json

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/ExamTempServiceImpl.java

@@ -114,6 +114,7 @@ public class ExamTempServiceImpl extends ServiceImpl<ExamTempMapper, ExamTemp> i
         queryBo.setGoodsId(bo.getGoodsId());
         queryBo.setOrderGoodsId(bo.getOrderGoodsId());
         queryBo.setNumber(bo.getNumber());
+        queryBo.setExamPaperId(examPaper.getPaperId());
         List<QuestionVo> questionlist = getQuestionList(queryBo);
 
         add.setExamName(ServletUtils.getEncoded("随机练习试卷-")+bo.getOrderGoodsId());

+ 12 - 12
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java

@@ -559,7 +559,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
         UserProfileVo userProfileVo = this.queryById(bo.getId());
         Long gradeId = baseMapper.selectGrade(userProfileVo.getUserId(), userProfileVo.getGoodsId());
         if (bo.getStatus().equals(1)) {
-            InformRemindVo informRemindVo = informRemindService.queryById(23L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考承诺书审核通过通知");
             //站内信有无启用,启用发送
             if (informRemindVo.getWayStatus().equals(1)) {
                 InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -568,7 +568,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(23L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("资料审核通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -586,7 +586,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(23L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("资料审核通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -600,7 +600,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), commitmentCode);
             }
         } else {
-            InformRemindVo informRemindTwoVo = informRemindService.queryById(24L);
+            InformRemindVo informRemindTwoVo = informRemindService.queryByName("七大员新考承诺书审核不通过通知");
             //站内信有无启用,启用发送
             if (informRemindTwoVo.getWayStatus().equals(1)) {
                 InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -609,7 +609,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(24L);
+                informUserAddBo.setRemindId(informRemindTwoVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("资料审核不通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -627,7 +627,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(24L);
+                informUserAddBo.setRemindId(informRemindTwoVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("资料审核不通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -648,7 +648,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
         //查询所在班级
         Long gradeId = baseMapper.selectGrade(userProfileVo.getUserId(), userProfileVo.getGoodsId());
         if (bo.getStatus().equals(1)) {
-            InformRemindVo informRemindVo = informRemindService.queryById(3L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("资料审核通过通知");
             //站内信有无启用,启用发送
             if (informRemindVo.getWayStatus().equals(1)) {
                 InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -657,7 +657,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(3L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("报名资料审核通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -674,7 +674,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(3L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("报名资料审核通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -687,7 +687,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), materialReviewCode);
             }
         } else {
-            InformRemindVo informRemindTwoVo = informRemindService.queryById(4L);
+            InformRemindVo informRemindTwoVo = informRemindService.queryByName("资料审核不通过通知");
             //站内信有无启用,启用发送
             if (informRemindTwoVo.getWayStatus().equals(1)) {
                 InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -696,7 +696,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(4L);
+                informUserAddBo.setRemindId(informRemindTwoVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("报名资料审核不通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());
@@ -713,7 +713,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(3L);
+                informUserAddBo.setRemindId(informRemindTwoVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("报名资料审核不通过通知");
                 informUserAddBo.setGoodsId(userProfileVo.getGoodsId());

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseBusinessMapper.java

@@ -16,4 +16,6 @@ import java.util.Collection;
 public interface CourseBusinessMapper extends BaseMapper<CourseBusiness> {
 
     Collection<CourseBusinessVo> queryList(CourseBusinessQueryBo bo);
+
+    String queryFullName(CourseBusinessQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/mapper/CourseMapper.java

@@ -50,4 +50,6 @@ public interface CourseMapper extends BaseMapper<Course> {
     Long goodsRebuildStatus(CourseQueryBo bo);
 
     Long checkCourseHaveStudy(@Param("courseId") Long courseId);
+
+    List<ClassGradeVo> gradeIdUserSelect(@Param("goodsId") Long goodsId, @Param("gradeId") Long gradeId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseBusinessService.java

@@ -59,4 +59,6 @@ public interface ICourseBusinessService extends IService<CourseBusiness> {
 	boolean editPeriodUserIds(CourseBusinessEditBo bo);
 
 	boolean editRefundPeriodUserIds(CourseBusinessEditBo bo);
+
+	String queryFullName(CourseBusinessQueryBo bo);
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/ICourseService.java

@@ -13,7 +13,9 @@ import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
 import com.zhongzheng.modules.goods.vo.GoodsUserVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
+import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Collection;
 import java.util.List;
@@ -79,4 +81,6 @@ public interface ICourseService extends IService<Course> {
 	Long rebuildNext(ClassGradeUserQueryBo bo);
 
     boolean batchDelCourse(GoodsBatchDelBo bo);
+
+	List<ClassGradeVo> gradeIdUserSelect(Long goodsId, Long gradeId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseBusinessServiceImpl.java

@@ -227,4 +227,9 @@ public class CourseBusinessServiceImpl extends ServiceImpl<CourseBusinessMapper,
         return true;
     }
 
+    @Override
+    public String queryFullName(CourseBusinessQueryBo bo) {
+        return baseMapper.queryFullName(bo);
+    }
+
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -167,6 +167,11 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
                 .in(Course::getCourseId,bo.getIds()));
     }
 
+    @Override
+    public List<ClassGradeVo> gradeIdUserSelect(Long goodsId, Long gradeId) {
+        return baseMapper.gradeIdUserSelect(goodsId,gradeId);
+    }
+
     @Override
     public List<CourseVo> queryList(CourseQueryBo bo) {
         LambdaQueryWrapper<Course> lqw = Wrappers.lambdaQuery();

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java

@@ -8,6 +8,7 @@ import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -28,6 +29,8 @@ public interface GoodsMapper extends BaseMapper<Goods> {
 
     Long getQuestionNum(Long goodsId);
 
+    Long getRandomQuestionNum(@Param("goodsId")Long goodsId,@Param("examPaperId") Long examPaperId);
+
     int queryUpGoods();
 
     List<GoodsVo> selectListToInput(GoodsQueryBo bo);
@@ -35,4 +38,6 @@ public interface GoodsMapper extends BaseMapper<Goods> {
     Long getExamNum(Long goodsId);
 
     GoodsVo getSectionNum(CourseQueryBo bo);
+
+    Long getSectionNum(Long goodsId);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -39,6 +39,8 @@ public interface IGoodsService extends IService<Goods> {
 
 	Long getQuestionNum(Long goodsId);
 
+	Long getRandomQuestionNum(Long goodsId,Long examPaperId);
+
 	Long getExamNum(Long goodsId);
 
 	/**

+ 11 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -143,6 +143,12 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
             bo.setGoodsName(bo.getGoodsName().trim());
         }
         List<GoodsVo> list = baseMapper.selectAllList(bo);
+        if(Validator.isNotEmpty(bo.getSectionNum())&&bo.getSectionNum().longValue()==1){
+            for(GoodsVo vo : list){
+                Long sectionNum = baseMapper.getSectionNum(vo.getGoodsId());
+                vo.setSectionNum(sectionNum);
+            }
+        }
         if(Validator.isNotEmpty(bo.getGoodsType())&&bo.getGoodsType()==2){
             for(GoodsVo vo : list){
                 Long totalNum = getExamNum(vo.getGoodsId());
@@ -253,6 +259,11 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         return baseMapper.getQuestionNum(goodsId);
     }
 
+    @Override
+    public Long getRandomQuestionNum(Long goodsId, Long examPaperId) {
+        return baseMapper.getRandomQuestionNum(goodsId,examPaperId);
+    }
+
     @Override
     public Long getExamNum(Long goodsId) {
         return baseMapper.getExamNum(goodsId);

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeQueryBo.java

@@ -137,4 +137,10 @@ public class ClassGradeQueryBo extends BaseEntity {
 
 	@ApiModelProperty("商品id数组")
 	private List<Long> goodsIds;
+	/** 开始时间 */
+	@ApiModelProperty("开始时间")
+	private Long startTime;
+	/** 结束时间 */
+	@ApiModelProperty("结束时间")
+	private Long endTime;
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java

@@ -225,6 +225,11 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 	@ApiModelProperty("学员姓名")
 	private String realname;
 
+
+	/** 手机号码 */
+	@ApiModelProperty("手机号码")
+	private String telphone;
+
 	/**
 	 * 学员身份证
 	 */
@@ -269,4 +274,6 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 
 	@ApiModelProperty("查询审核通过结束时间")
 	private Long periodEndTime;
+
+
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.grade.mapper;
 
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.bo.ClassGradeQueryBo;
@@ -56,4 +57,9 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
     List<ClassGradeVo> listGradeSubjects();
 
     List<ClassGradeVo> queryCountList(Long businessId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer queryOfficialGradeCount(ClassGradeQueryBo bo);
+
+    List<ClassGradeVo> queryGradeList(ClassGradeQueryBo bo);
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java

@@ -83,4 +83,10 @@ public interface IClassGradeService extends IService<ClassGrade> {
     List<ClassGradeVo> listGradeSubjects();
 
 	List<ClassGradeVo> queryCountList(Long businessId);
+
+	Integer queryOfficialGradeCount(ClassGradeQueryBo bo);
+
+	boolean checkEjjjPeopleNumLimit(Long businessId,Long gradeId);
+
+	List<ClassGradeVo> queryGradeList(ClassGradeQueryBo bo);
 }

+ 50 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -17,6 +17,9 @@ import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
 import com.zhongzheng.modules.course.bo.CourseEducationTypeQueryBo;
 import com.zhongzheng.modules.course.bo.CourseProjectTypeQueryBo;
+import com.zhongzheng.modules.course.domain.CourseBusiness;
+import com.zhongzheng.modules.course.domain.CourseEducationType;
+import com.zhongzheng.modules.course.domain.CourseProjectType;
 import com.zhongzheng.modules.course.service.ICourseBusinessService;
 import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
 import com.zhongzheng.modules.course.service.ICourseProjectTypeService;
@@ -114,6 +117,15 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     @Autowired
     private OrderMapper orderMapper;
 
+    @Autowired
+    private ICourseEducationTypeService iCourseEducationTypeService;
+
+    @Autowired
+    private ICourseProjectTypeService iCourseProjectTypeService;
+
+    @Autowired
+    private ICourseBusinessService iCourseBusinessService;
+
     @Autowired
     private com.zhongzheng.modules.alisms.service.IAliSmsService IAliSmsService;
 
@@ -289,7 +301,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     }
 
     private void sendClassSMS(ClassGradeVo classGradeVo) {
-        InformRemindVo informRemindVo = informRemindService.queryById(19L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("二建继教开班提醒");
         if (CollectionUtils.isEmpty(classGradeVo.getGoodsList())) {
             return;
         }
@@ -318,7 +330,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                         informUserAddBo.setSendTime(DateUtils.getNowTime());
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(19L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(1);
                         informUserAddBo.setRemind("二建继教开班提醒");
                         informUserAddBo.setGoodsId(classGradeVo.getGoodsList().get(0).getGoodsId());
@@ -333,7 +345,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(19L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(3);
                         informUserAddBo.setRemind("二建继教开班提醒");
                         informUserAddBo.setGoodsId(classGradeVo.getGoodsList().get(0).getGoodsId());
@@ -711,6 +723,41 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         return baseMapper.queryCountList(businessId);
     }
 
+    @Override
+    public Integer queryOfficialGradeCount(ClassGradeQueryBo bo) {
+        return baseMapper.queryOfficialGradeCount(bo);
+    }
+
+    @Override
+    public boolean checkEjjjPeopleNumLimit(Long businessId, Long gradeId) {
+        CourseEducationType educationType = iCourseEducationTypeService.getOne(new LambdaQueryWrapper<CourseEducationType>().eq(CourseEducationType::getStatus, 1).eq(CourseEducationType::getEducationName,"继续教育").last("limit 1"));
+        if(Validator.isEmpty(educationType)){
+            return true;
+        }
+        CourseProjectType projectType = iCourseProjectTypeService.getOne(new LambdaQueryWrapper<CourseProjectType>().eq(CourseProjectType::getStatus, 1).eq(CourseProjectType::getEducationId,educationType.getId()).eq(CourseProjectType::getProjectName,"建造师").last("limit 1"));
+        CourseBusiness business = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getProjectId,projectType.getId()).eq(CourseBusiness::getBusinessName,"二级").last("limit 1"));
+        if(businessId.longValue()==business.getId().longValue()){
+            //继教二建班级
+            ClassGradeVo gradeVo = queryById(gradeId);
+            if(Validator.isNotEmpty(gradeVo)&&Validator.isNotEmpty(gradeVo.getOfficialName())){
+                ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
+                queryBo.setOfficialName(gradeVo.getOfficialName());
+                Integer peopleNum = queryOfficialGradeCount(queryBo);
+                if(peopleNum>=300){ //全系统平台二建班级人数不能超300
+                    return false;
+                }
+            }
+
+        }
+        return true;
+    }
+
+    @Override
+    public List<ClassGradeVo> queryGradeList(ClassGradeQueryBo bo) {
+        return baseMapper.queryGradeList(bo);
+    }
+
+
     /**
      * 实体类转化成视图对象
      *

+ 60 - 28
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java

@@ -9,14 +9,17 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.common.utils.http.HttpUtils;
 import com.zhongzheng.modules.base.service.ICertificateTpService;
+import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
 import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
 import com.zhongzheng.modules.course.domain.CourseBusiness;
 import com.zhongzheng.modules.course.domain.CourseEducationType;
@@ -45,12 +48,15 @@ import com.zhongzheng.modules.inform.service.IInformUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
+import com.zhongzheng.modules.polyv.domain.TokenResponse;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.domain.UserStudyRecordPhoto;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserStudyRecordPhotoService;
 import com.zhongzheng.modules.user.vo.UserVo;
 import com.zhongzheng.modules.wx.service.IWxLoginService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -80,6 +86,8 @@ import java.util.stream.Collectors;
 @Service
 public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPeriod> implements IUserPeriodService {
 
+    private static Logger log = LoggerFactory.getLogger(UserPeriodServiceImpl.class);
+
     @Autowired
     private IUserPeriodStatusService userPeriodStatusService;
 
@@ -463,11 +471,16 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         CourseEducationType educationType = iCourseEducationTypeService.getOne(new LambdaQueryWrapper<CourseEducationType>().eq(CourseEducationType::getStatus, 1).eq(CourseEducationType::getEducationName,"继续教育").last("limit 1"));
         CourseProjectType projectType = iCourseProjectTypeService.getOne(new LambdaQueryWrapper<CourseProjectType>().eq(CourseProjectType::getStatus, 1).eq(CourseProjectType::getEducationId,educationType.getId()).eq(CourseProjectType::getProjectName,"建造师").last("limit 1"));
         CourseBusiness business = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getProjectId,projectType.getId()).eq(CourseBusiness::getBusinessName,"二级").last("limit 1"));
-        CourseBusiness business7 = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getBusinessName,"七大员新考").last("limit 1"));
         GoodsVo goodsVo = iGoodsService.queryById(bo.getGoodsId());
+        CourseBusinessQueryBo businessQueryBo = new CourseBusinessQueryBo();
+        businessQueryBo.setId(goodsVo.getBusinessId());
+        String fullName = iCourseBusinessService.queryFullName(businessQueryBo);
         if(goodsVo.getBusinessId().longValue()!=business.getId().longValue()){
-            if(Validator.isNotEmpty(business7.getId())&&goodsVo.getBusinessId().longValue()!=business7.getId().longValue()){
-                throw new CustomException("非继续二建或七大员新考无法打回");
+            CourseBusiness business7 = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getId,goodsVo.getBusinessId()).last("limit 1"));
+            if(Validator.isEmpty(business7)||(Validator.isNotEmpty(business7)&&!"七大员".equals(business7.getBusinessName()))){
+                if(!"继续教育二级造价师".equals(fullName)){
+                    throw new CustomException("非继续二建,二造,七大员无法打回");
+                }
             }
         }
         //查询此人学时审核是否有权限,老系统不进行权限校验
@@ -507,25 +520,38 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         CourseEducationType educationType = iCourseEducationTypeService.getOne(new LambdaQueryWrapper<CourseEducationType>().eq(CourseEducationType::getStatus, 1).eq(CourseEducationType::getEducationName,"继续教育").last("limit 1"));
         CourseProjectType projectType = iCourseProjectTypeService.getOne(new LambdaQueryWrapper<CourseProjectType>().eq(CourseProjectType::getStatus, 1).eq(CourseProjectType::getEducationId,educationType.getId()).eq(CourseProjectType::getProjectName,"建造师").last("limit 1"));
         CourseBusiness business = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getProjectId,projectType.getId()).eq(CourseBusiness::getBusinessName,"二级").last("limit 1"));
-        CourseBusiness business7 = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getBusinessName,"七大员新考").last("limit 1"));
+        boolean hasSeven = false;
         GoodsVo goodsVo = iGoodsService.selectDetail(bo.getGoodsId());
-
+        SyncUserCourseStudyRec studyRec = new SyncUserCourseStudyRec();
+        CourseBusinessQueryBo queryBo = new CourseBusinessQueryBo();
+        queryBo.setId(goodsVo.getBusinessId());
+        String fullName = iCourseBusinessService.queryFullName(queryBo);
         if(goodsVo.getBusinessId().longValue()!=business.getId().longValue()){
-            if(Validator.isNotEmpty(business7.getId())&&goodsVo.getBusinessId().longValue()!=business7.getId().longValue()){
-                return null;
+            CourseBusiness business7 = iCourseBusinessService.getOne(new LambdaQueryWrapper<CourseBusiness>().eq(CourseBusiness::getStatus, 1).eq(CourseBusiness::getId,goodsVo.getBusinessId()).last("limit 1"));
+            if(Validator.isEmpty(business7)||(Validator.isNotEmpty(business7)&&!"七大员".equals(business7.getBusinessName()))){
+                if(!"继续教育二级造价师".equals(fullName)){
+                    return null;
+                }
+            }
+            if(Validator.isNotEmpty(business7)&&"七大员".equals(business7.getBusinessName())){
+                hasSeven = true;
+                studyRec.setCourseType(17);
             }
         }
         UserVo userVo = iUserService.queryById(bo.getUserId());
         ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId,bo.getUserId()).eq(ClassGradeUser::getGradeId,bo.getGradeId()).last("limit 1"));
         OrderGoods orderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderGoodsId,gradeUser.getOrderGoodsId()).last("limit 1"));
         ClassGrade classGrade = iClassGradeService.getOne(new LambdaQueryWrapper<ClassGrade>().eq(ClassGrade::getGradeId,gradeUser.getGradeId()).last("limit 1"));
-        SyncUserCourseStudyRec studyRec = new SyncUserCourseStudyRec();
+
         if(goodsVo.getBusinessId().longValue()==business.getId().longValue()){
             studyRec.setCourseType(5);
         }
-        if(Validator.isNotEmpty(business7.getId())&&goodsVo.getBusinessId().longValue()==business7.getId().longValue()){
-            studyRec.setCourseType(17);
+        if("继续教育二级造价师".equals(fullName)){
+            studyRec.setCourseType(8);
         }
+
+        String TenantId = ServletUtils.getRequest().getHeader("TenantId");
+        studyRec.setTenantId(TenantId);
         studyRec.setCourseName(goodsVo.getGoodsName());
         studyRec.setMajorName(goodsVo.getSubjectNames());
         studyRec.setName(userVo.getRealname());
@@ -543,8 +569,8 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         GoodsCourseQueryBo goodsCourseQueryBo = new GoodsCourseQueryBo();
         goodsCourseQueryBo.setGoodsId(goodsVo.getGoodsId());
         List<CourseVo> courseVoList = iGoodsCourseService.selectList(goodsCourseQueryBo);
-        //二建
-        if(goodsVo.getBusinessId().longValue()==business.getId().longValue()){
+        //二造继教和二继教
+        if((goodsVo.getBusinessId().longValue()==business.getId().longValue())||("继续教育二级造价师".equals(fullName))){
             for(CourseVo courseVo : courseVoList){
                 CourseMenuQueryBo menuQueryBo = new CourseMenuQueryBo();
                 menuQueryBo.setCourseId(courseVo.getCourseId());
@@ -631,7 +657,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
             studyRec.setChapterList(ChapterList);
         }
         //七大员
-        if(Validator.isNotEmpty(business7.getId())&&goodsVo.getBusinessId().longValue()==business7.getId().longValue()){
+        if(hasSeven){
             for(CourseVo courseVo : courseVoList){
                 CourseMenuQueryBo menuQueryBo = new CourseMenuQueryBo();
                 menuQueryBo.setCourseId(courseVo.getCourseId());
@@ -722,8 +748,8 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
             }
             studyRec.setChapterList(ChapterList);
         }
-        System.out.println(JSONObject.toJSONString(studyRec));
         //学习记录推送到旧系统
+
         Map<String, String> params = new HashMap<>();
         Long nowTime = DateUtils.getNowTime();
         String sign = ToolsUtils.EncoderByMd5(nowTime.toString()+"pubilc2022");
@@ -731,9 +757,15 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         params.put("sign", sign);
         params.put("jsonstr", JSONObject.toJSONString(studyRec));
         String respone = "";
+        log.info("学时推送业务系统"+params,"");
         try {
             respone = HttpUtils.postFormBody(SYNC_PATH, params);
+            log.info("学时推送业务系统结果"+respone,"");
+            if (!respone.contains("{\"Status\":true")) {
+                throw new CustomException("同步请求错误"+respone);
+            }
         } catch (IOException e) {
+            log.info("学时推送业务系统同步请求错误"+e.getMessage(),"");
             throw new CustomException("同步请求错误"+e.getMessage());
         }
         return studyRec;
@@ -820,7 +852,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         }
         GoodsVo goodsVo1 = iGoodsService.queryById(bo.getGoodsId());
         if (bo.getStatus().equals(1)) {
-            InformRemindVo informRemindVo = informRemindService.queryById(9L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("二建继教学时初审通过");
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goodsVo1.getBusinessId())).collect(Collectors.toList()))) {
                 if (informRemindVo.getWayStatus().equals(1)) {
                     InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -829,7 +861,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(9L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(bo.getOrderGoodsId());
                     informUserAddBo.setRemind("学时机构审核通过提醒");
@@ -844,7 +876,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(9L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(bo.getOrderGoodsId());
                     informUserAddBo.setRemind("学时机构审核通过提醒");
@@ -857,7 +889,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                 }
             }
         } else {
-            InformRemindVo informRemindTwoVo = informRemindService.queryById(10L);
+            InformRemindVo informRemindTwoVo = informRemindService.queryByName("二建继教学时初审不通过");
             if (!CollectionUtils.isEmpty(informRemindTwoVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindTwoVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goodsVo1.getBusinessId())).collect(Collectors.toList()))) {
 
                 if (informRemindTwoVo.getWayStatus().equals(1)) {
@@ -867,7 +899,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(10L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setRemind("学时机构审核不通过提醒");
                     informUserAddBo.setOrderGoodsId(bo.getOrderGoodsId());
@@ -882,7 +914,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(10L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setRemind("学时机构审核不通过提醒");
                     informUserAddBo.setOrderGoodsId(bo.getOrderGoodsId());
@@ -914,7 +946,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         }
         GoodsVo goodsVo1 = iGoodsService.queryById(bo.getGoodsId());
         if (bo.getStatus().equals(1)) {
-            InformRemindVo informRemindVo = informRemindService.queryById(11L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考学时初审通过");
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goodsVo1.getBusinessId())).collect(Collectors.toList()))) {
                 if (informRemindVo.getWayStatus().equals(1)) {
                     InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -923,7 +955,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(11L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(gradeUser.getOrderGoodsId());
                     informUserAddBo.setRemind("学时机构审核通过提醒");
@@ -938,7 +970,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(11L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setRemind("学时机构审核通过提醒");
                     informUserAddBo.setGoodsId(bo.getGoodsId());
@@ -957,7 +989,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
                     informUserAddBo.setGradeId(bo.getGradeId());
-                    informUserAddBo.setRemindId(11L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(gradeUser.getOrderGoodsId());
                     informUserAddBo.setRemind("学时机构审核通过提醒");
@@ -978,7 +1010,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                 }
             }
         } else {
-            InformRemindVo informRemindTwoVo = informRemindService.queryById(12L);
+            InformRemindVo informRemindTwoVo = informRemindService.queryByName("七大员新考学时初审不通过");
             if (!CollectionUtils.isEmpty(informRemindTwoVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindTwoVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goodsVo1.getBusinessId())).collect(Collectors.toList()))) {
 
                 if (informRemindTwoVo.getWayStatus().equals(1)) {
@@ -988,7 +1020,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(12L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setRemind("学时机构审核不通过提醒");
                     informUserAddBo.setGoodsId(bo.getGoodsId());
@@ -1003,7 +1035,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(12L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setRemind("学时机构审核不通过提醒");
                     informUserAddBo.setGoodsId(bo.getGoodsId());
@@ -1023,7 +1055,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
                     informUserAddBo.setGradeId(bo.getGradeId());
-                    informUserAddBo.setRemindId(12L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(gradeUser.getOrderGoodsId());
                     informUserAddBo.setRemind("学时机构审核通过提醒");

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeVo.java

@@ -190,4 +190,8 @@ public class ClassGradeVo {
 	private Long businessId;
 	@ApiModelProperty("项目ID")
 	private Long projectId;
+	@ApiModelProperty("商品ID")
+	private Long goodsId;
+	@ApiModelProperty("用户ID")
+	private Long userId;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/SyncUserCourseStudyRec.java

@@ -38,6 +38,8 @@ public class SyncUserCourseStudyRec {
 
     private String MajorName;
 
+    private String TenantId;
+
     private List<SyncUserChapterList> ChapterList;
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/IInformRemindService.java

@@ -25,6 +25,8 @@ public interface IInformRemindService extends IService<InformRemind> {
 	 */
 	InformRemindVo queryById(Long id);
 
+	InformRemindVo queryByName(String remindName);
+
 	/**
 	 * 查询列表
 	 */

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/inform/service/impl/InformRemindServiceImpl.java

@@ -8,6 +8,7 @@ import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
 import com.zhongzheng.modules.course.bo.CourseEducationTypeQueryBo;
 import com.zhongzheng.modules.course.bo.CourseProjectTypeQueryBo;
+import com.zhongzheng.modules.course.domain.CourseMenu;
 import com.zhongzheng.modules.course.service.ICourseBusinessService;
 import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
 import com.zhongzheng.modules.course.service.ICourseProjectTypeService;
@@ -92,6 +93,15 @@ public class InformRemindServiceImpl extends ServiceImpl<InformRemindMapper, Inf
         return informRemindVo;
     }
 
+    @Override
+    public InformRemindVo queryByName(String remindName){
+        InformRemind db = getOne(new LambdaQueryWrapper<InformRemind>().eq(InformRemind::getRemind, remindName).last("limit 1"));
+        InformRemindVo informRemindVo = BeanUtil.toBean(db, InformRemindVo.class);
+        List<InformRemindBusinessVo> informRemindBusinessVos = iInformRemindBusinessService.selectBusiness(informRemindVo.getId());
+        informRemindVo.setInformRemindBusiness(informRemindBusinessVos);
+        return informRemindVo;
+    }
+
     @Override
     public List<InformRemindVo> queryList(InformRemindQueryBo bo) {
         LambdaQueryWrapper<InformRemind> lqw = Wrappers.lambdaQuery();

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderBusinessConfigQueryBo.java

@@ -22,7 +22,7 @@ import com.zhongzheng.common.core.domain.BaseEntity;
 @EqualsAndHashCode(callSuper = true)
 @ApiModel("录单配置分页查询对象")
 public class OrderBusinessConfigQueryBo extends BaseEntity {
-
+	private Long id;
 	/** 分页大小 */
 	@ApiModelProperty("分页大小")
 	private Integer pageSize;

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderBusinessConfigMapper.java

@@ -17,4 +17,5 @@ import java.util.List;
  */
 public interface OrderBusinessConfigMapper extends BaseMapper<OrderBusinessConfig> {
     List<OrderBusinessConfigVo> getList(OrderBusinessConfigQueryBo bo);
+    OrderBusinessConfigVo getDetail(OrderBusinessConfigQueryBo bo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderBusinessConfigService.java

@@ -29,6 +29,8 @@ public interface IOrderBusinessConfigService extends IService<OrderBusinessConfi
 	List<OrderBusinessConfigVo> queryList(OrderBusinessConfigQueryBo bo);
 
 	List<OrderBusinessConfigVo> getList(OrderBusinessConfigQueryBo bo);
+	OrderBusinessConfigVo getDetail(OrderBusinessConfigQueryBo bo);
+
 
 	/**
 	 * 根据新增业务对象插入录单配置

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderBusinessConfigServiceImpl.java

@@ -53,6 +53,11 @@ public class OrderBusinessConfigServiceImpl extends ServiceImpl<OrderBusinessCon
         return this.baseMapper.getList(bo);
     }
 
+    @Override
+    public OrderBusinessConfigVo getDetail(OrderBusinessConfigQueryBo bo) {
+        return this.baseMapper.getDetail(bo);
+    }
+
     /**
     * 实体类转化成视图对象
     *

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -531,6 +531,7 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
             subjectStudyRecordQueryBo.setGoodsId(goodsVo.getGoodsId());
             subjectStudyRecordQueryBo.setUserId(bo.getUserId());
             subjectStudyRecordQueryBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
+            subjectStudyRecordQueryBo.setGradeId(goodsVo.getGradeId());
             List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
             for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
                 secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
@@ -551,6 +552,8 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
                 goodsVo.setOfficialName(classGradeVo.getOfficialName());
                 goodsVo.setClassStartTime(classGradeVo.getClassStartTime());
                 goodsVo.setClassEndTime(classGradeVo.getClassEndTime());
+                goodsVo.setClassStatus(classGradeVo.getClassStatus());
+                goodsVo.setLearningStatus(classGradeVo.getLearningStatus());
 
                 LambdaQueryWrapper<UserSubscribe> lq = Wrappers.lambdaQuery();
                 lq.eq(UserSubscribe::getOrderGoodsId, goodsVo.getOrderGoodsId());

+ 26 - 15
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -88,9 +88,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
-
-    @Autowired
-    private IOrderBusinessService iOrderBusinessService;
     @Autowired
     private IGoodsService iGoodsService;
     @Autowired
@@ -102,8 +99,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private IClassGradeGoodsService iClassGradeGoodsService;
     @Autowired
-    private IGoodsCourseService iGoodsCourseService;
-    @Autowired
     private IOrderBillSheetService iOrderBillSheetService;
     @Autowired
     private ICourseMenuService iCourseMenuService;
@@ -143,8 +138,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private RedisCache redisCache;
 
-    @Autowired
-    private IUserMockSubscribeService iUserMockSubscribeService;
 
     @Autowired
     private ICourseEducationTypeService courseEducationTypeService;
@@ -1483,6 +1476,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             lqwLock.eq(ClassGradeUserTemp::getGradeId, gradeId);
             lqwLock.eq(ClassGradeUserTemp::getStatus, 1);
             int locakStudentNum = iClassGradeUserTempService.count(lqwLock);
+
             //预留0空位避免超人数
             if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
                 ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getGradeId, gradeId)
@@ -1490,7 +1484,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 //不在此班级内
                 if(Validator.isEmpty(gradeUser)){
                     //班级还有剩位,直接锁定班级
-                    return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)){ //判断全系统平台二建班级人数是否超300
+                        return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    }
+
                 }
             }
         }
@@ -1516,7 +1513,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                         .eq(ClassGradeUser::getUserId, userId));
                 //不在此班级内
                 if(Validator.isEmpty(gradeUser)){
-                    return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)){ //判断全系统平台二建班级人数是否超300
+                        return lockGrade(orderGoodsId, gradeId, userId, goodsId, orderSn);
+                    }
                 }
             }
         }
@@ -1621,8 +1620,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 //预留0空位避免超人数
                 if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
                     //班级还有剩位,直接加入班级
-                    joinGrade(orderGoodsId, gradeId, userId);
-                    return gradeId;
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)) { //判断全系统平台二建班级人数是否超300
+                        joinGrade(orderGoodsId, gradeId, userId);
+                        return gradeId;
+                    }
+
                 }
             }
         }
@@ -1647,8 +1649,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 ClassGradeUser gradeUser = iClassGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>().eq(ClassGradeUser::getUserId,userId).eq(ClassGradeUser::getGradeId,gradeId).last("limit 1"));
                 if(Validator.isEmpty(gradeUser)){
                     //班级还有剩位,直接加入班级
-                    joinGrade(orderGoodsId, gradeId, userId);
-                    return gradeId;
+                    if(iClassGradeService.checkEjjjPeopleNumLimit(businessId,gradeId)) { //判断全系统平台二建班级人数是否超300
+                        joinGrade(orderGoodsId, gradeId, userId);
+                        return gradeId;
+                    }
+
                 }
             }
         }
@@ -1723,8 +1728,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             //预留0空位避免超人数
             if ((classGradeVo.getStudentUpper() - studentNum - locakStudentNum) > 0) {
                 //班级还有剩位,直接加入班级
-                joinGrade(orderGoodsId, gradeId, userId);
-                return gradeId;
+                Goods goods = iGoodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, goodsId));
+                if(iClassGradeService.checkEjjjPeopleNumLimit(goods.getBusinessId(),gradeId)) { //判断全系统平台二建班级人数是否超300
+                    joinGrade(orderGoodsId, gradeId, userId);
+                    return gradeId;
+                }else {
+                    throw new CustomException("该二建班级学员已满,请重新选班");
+                }
+
             } else {
                 throw new CustomException("该班级学员已满,请重新选班");
             }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderBusinessConfigGoodsVo.java

@@ -45,5 +45,11 @@ public class OrderBusinessConfigGoodsVo {
 	@Excel(name = "0 未启用 1启用")
 	@ApiModelProperty("0 未启用 1启用")
 	private Integer status;
+	@ApiModelProperty("业务层次名称")
+	private String businessName;
+	@ApiModelProperty("教育类型名称")
+	private String educationName;
+	@ApiModelProperty("项目名称")
+	private String projectName;
 	private List<GoodsVo> goodsList;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderBusinessConfigVo.java

@@ -40,4 +40,10 @@ public class OrderBusinessConfigVo {
 	@Excel(name = "业务层次别名")
 	@ApiModelProperty("业务层次别名")
 	private String aliasName;
+	@ApiModelProperty("业务层次名称")
+	private String businessName;
+	@ApiModelProperty("教育类型名称")
+	private String educationName;
+	@ApiModelProperty("项目名称")
+	private String projectName;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java

@@ -84,6 +84,12 @@ public interface IScheduleService extends IService<PolyvVideo> {
 
     void longNotReadToTeacher(UserQueryBo bo);
 
+    void noFinishExamToStudentThree(UserQueryBo bo);
+
+    void noFinishExamToStudentFive(UserQueryBo bo);
+
+    void noFinishExamToStudentSeven(UserQueryBo bo);
+
     void wisdomExamSite(UserQueryBo bo);
 
     void refreshToken(UserQueryBo bo);

+ 409 - 88
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -61,6 +61,7 @@ import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.BankGoodsExamVo;
 import com.zhongzheng.modules.goods.vo.GoodsCourseVo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.grade.bo.ClassGradeQueryBo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.domain.*;
 import com.zhongzheng.modules.grade.service.*;
@@ -130,6 +131,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -175,8 +177,6 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
 
-    @Autowired
-    private IOrderBusinessService iOrderBusinessService;
     @Autowired
     private IGoodsService iGoodsService;
     @Autowired
@@ -286,6 +286,10 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Autowired
     private IWxLoginService iWxLoginService;
 
+
+    @Autowired
+    private ICourseService iCourseService;
+
     @Autowired
     private IWisdomService iWisdomService;
 
@@ -331,6 +335,9 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Value("${aliyun.sms.todayExamNotRecordTeachWarn}")
     private String todayExamNotRecordTeachWarn;
 
+    @Value("${aliyun.sms.noFinishExamNoteCode}")
+    private String noFinishExamNoteCode;
+
     @Autowired
     private RedisCache redisCache;
 
@@ -340,10 +347,10 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
 
     @Override
     public String updateGoodsSend(UserQueryBo bo) {
-        InformRemindVo informRemindVo = informRemindService.queryById(1L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("商品购买成功无需填写资料");
         //查找购买后没发送消息的商品,发送购买消息
         List<OrderGoodsVo> orderGoodsVo = iOrderGoodsService.selectOrderGoods();
-        InformRemindVo informRemindTwoVo = informRemindService.queryById(2L);
+        InformRemindVo informRemindTwoVo = informRemindService.queryByName("商品购买成功需填写资料");
         if (!CollectionUtils.isEmpty(orderGoodsVo)) {
             for (OrderGoodsVo goodsVo : orderGoodsVo) {
                 ProfileTpVo profileTpVo = iProfileTpService.queryByGoodsId(goodsVo.getGoodsId());
@@ -354,7 +361,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(1L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setRemind("商品开通提醒");
                     informUserAddBo.setGoodsId(goodsVo.getGoodsId());
@@ -371,7 +378,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(2L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setRemind("完善报名资料通知");
                     informUserAddBo.setGoodsId(goodsVo.getGoodsId());
@@ -396,7 +403,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
-                    informUserAddBo.setRemindId(1L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setRemind("商品开通提醒");
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -420,7 +427,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
-                    informUserAddBo.setRemindId(2L);
+                    informUserAddBo.setRemindId(informRemindTwoVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setRemind("完善报名资料通知");
                     informUserAddBo.setGoodsId(goodsVo.getGoodsId());
@@ -480,9 +487,9 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         List<ClassGradeUserGoodsVo> classTwentyGradeUserVos = iClassGradeUserService.sendTwentyClassGradeUser();
         List<ClassGradeUserGoodsVo> classTenGradeUserVos = iClassGradeUserService.sendTenClassGradeUser();
         List<ClassGradeUserGoodsVo> classFiveGradeUserVos = iClassGradeUserService.sendFiveClassGradeUser();
-        InformRemindVo informTwentyRemindVo = informRemindService.queryById(5L);
-        InformRemindVo informTenRemindVo = informRemindService.queryById(6L);
-        InformRemindVo informFiveRemindVo = informRemindService.queryById(7L);
+        InformRemindVo informTwentyRemindVo = informRemindService.queryByName("二建继教班级有效期倒计时20天");
+        InformRemindVo informTenRemindVo = informRemindService.queryByName("二建继教班级有效期倒计时10天");
+        InformRemindVo informFiveRemindVo = informRemindService.queryByName("二建继教班级有效期倒计时5天");
         for (ClassGradeUserGoodsVo classTwentyGradeUserVo : classTwentyGradeUserVos) {
             String res;
             String resEnd;
@@ -501,7 +508,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(5L);
+                informUserAddBo.setRemindId(informTwentyRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("您开通班级有效期还剩20天");
                 informUserAddBo.setGradeId(classTwentyGradeUserVo.getGradeId());
@@ -517,7 +524,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(5L);
+                informUserAddBo.setRemindId(informTwentyRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(classTwentyGradeUserVo.getGoodsId());
@@ -553,7 +560,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(6L);
+                informUserAddBo.setRemindId(informTenRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("您开通班级有效期还剩10天");
                 informUserAddBo.setGradeId(classTenGradeUserVo.getGradeId());
@@ -569,7 +576,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(6L);
+                informUserAddBo.setRemindId(informTenRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("您开通班级有效期还剩10天");
                 informUserAddBo.setGoodsId(classTenGradeUserVo.getGoodsId());
@@ -606,7 +613,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(7L);
+                informUserAddBo.setRemindId(informFiveRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("您开通班级有效期还剩5天");
                 informUserAddBo.setGradeId(classFiveGradeUserVo.getGradeId());
@@ -622,7 +629,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(7L);
+                informUserAddBo.setRemindId(informFiveRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("您开通班级有效期还剩5天");
                 informUserAddBo.setGoodsId(classFiveGradeUserVo.getGoodsId());
@@ -646,7 +653,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     public void timeSend(UserQueryBo bo) {
         //提醒考试
         List<UserSubscribeVo> userSubscribeVo = iUserSubscribeService.timeSend();
-        InformRemindVo informRemindVo = informRemindService.queryById(16L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考考试提醒");
         for (UserSubscribeVo subscribeVo : userSubscribeVo) {
             String seatTxt =Validator.isNotEmpty(subscribeVo.getSeatNumber())?",座位号:"+subscribeVo.getSeatNumber():"";
             String res;
@@ -663,7 +670,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(16L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
@@ -680,7 +687,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(16L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
@@ -704,7 +711,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(16L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(4);
                 informUserAddBo.setRemind("考试提醒");
                 informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
@@ -736,7 +743,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     public void signTimeSend(UserQueryBo bo) {
         //提醒签署承诺书
         List<UserSubscribeVo> userSubscribeVo = iUserSubscribeService.signTimeSend();
-        InformRemindVo informRemindVo = informRemindService.queryById(34L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("签署承诺书提醒");
         for (UserSubscribeVo subscribeVo : userSubscribeVo) {
            String dateStartStr = DateUtils.timestampToDate(subscribeVo.getApplySiteExamTime())+" "+subscribeVo.getApplySiteStartTime();
            Long startTime = DateUtils.dateTimeSec(dateStartStr,DateUtils.YYYY_MM_DD_HH_MM_SS);
@@ -749,7 +756,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                    informUserAddBo.setSendTime(DateUtils.getNowTime());
                    informUserAddBo.setCreateTime(DateUtils.getNowTime());
                    informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                   informUserAddBo.setRemindId(34L);
+                   informUserAddBo.setRemindId(informRemindVo.getId());
                    informUserAddBo.setSystemStatus(1);
                    informUserAddBo.setRemind("签署承诺书提醒");
                    informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
@@ -768,7 +775,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                    informUserAddBo.setSendStatus(1);
                    informUserAddBo.setCreateTime(DateUtils.getNowTime());
                    informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                   informUserAddBo.setRemindId(34L);
+                   informUserAddBo.setRemindId(informRemindVo.getId());
                    informUserAddBo.setSystemStatus(3);
                    informUserAddBo.setRemind("签署承诺书提醒");
                    informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
@@ -788,7 +795,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                    informUserAddBo.setSendStatus(1);
                    informUserAddBo.setCreateTime(DateUtils.getNowTime());
                    informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                   informUserAddBo.setRemindId(34L);
+                   informUserAddBo.setRemindId(informRemindVo.getId());
                    informUserAddBo.setSystemStatus(4);
                    informUserAddBo.setRemind("考试提醒");
                    informUserAddBo.setGoodsId(subscribeVo.getGoodsId());
@@ -824,7 +831,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         if (CollectionUtils.isEmpty(list)){
             return;
         }
-        InformRemindVo informRemindVo = informRemindService.queryById(41L);//学员提醒
+        InformRemindVo informRemindVo = informRemindService.queryByName("每日一练未打卡");//学员提醒
         //需要短信提醒的学员
         Set<Long> userIds = new HashSet<>();
         //需求提醒的商品集合
@@ -855,7 +862,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(41L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setRemind("您开通的课程今天每日一练没有打卡,请尽快去学习吧");
                     informUserAddBo.setGoodsId(subscription.getGoodsId());
@@ -874,7 +881,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(41L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setRemind("您开通的课程今天每日一练没有打卡,请尽快去学习吧");
                     informUserAddBo.setGoodsId(subscription.getGoodsId());
@@ -903,7 +910,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(41L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("您开通的课程今天每日一练没有打卡,请尽快去学习吧");
                 informUserAddBo.setText("今天每日一练还没有打卡,为了你的学习效果,请尽快去学习吧");
@@ -915,7 +922,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         }
         //教务提醒
         if (!CollectionUtils.isEmpty(recordBos)){
-            InformRemindVo informRemindTeachVo = informRemindService.queryById(43L);//老师提醒
+            InformRemindVo informRemindTeachVo = informRemindService.queryByName("教务每日一练未打卡");//老师提醒
             Map<Long, List<ExamTodayRecordBo>> map = recordBos.stream().collect(Collectors.groupingBy(ExamTodayRecordBo::getGoodsId));
             map.forEach((k,v) -> {
                 //获取班主任信息
@@ -944,7 +951,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                         informUserAddBo.setSendTime(DateUtils.getNowTime());
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(43L);
+                        informUserAddBo.setRemindId(informRemindTeachVo.getId());
                         informUserAddBo.setSystemStatus(2);
                         informUserAddBo.setRemind("学员学习提醒,请尽快处理");
                         informUserAddBo.setGoodsId(k);
@@ -963,7 +970,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(43L);
+                        informUserAddBo.setRemindId(informRemindTeachVo.getId());
                         informUserAddBo.setSystemStatus(3);
                         informUserAddBo.setRemind("学员学习提醒,请尽快处理");
                         informUserAddBo.setText("有"+v.size()+"个学员,开通《"+goods.getGoodsName()+"》今天每日一练还没有打卡,请后台查看未打卡学员信息,尽快与学员沟通");
@@ -1638,7 +1645,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     private void sendExamSubscribe() {
         List<ExamUserApplyVo> examUserApplyVos = iInformUserService.listUserApply();
         for (ExamUserApplyVo examUserApplyVo : examUserApplyVos) {
-            InformRemindVo informRemindVo = informRemindService.queryById(13L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考考试预约提醒");
             String res;
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
             Long timeId = examUserApplyVo.getApplyEndTime() * 1000;
@@ -1651,7 +1658,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(13L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("考试预约提醒");
                 informUserAddBo.setGoodsId(examUserApplyVo.getGoodsId());
@@ -1667,7 +1674,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(13L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("考试预约提醒");
                 informUserAddBo.setGoodsId(examUserApplyVo.getGoodsId());
@@ -1689,7 +1696,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(13L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(4);
                 informUserAddBo.setRemind("考试预约提醒");
                 informUserAddBo.setGoodsId(examUserApplyVo.getGoodsId());
@@ -1757,7 +1764,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         mockApplyVos.forEach(mockApplyVo -> {
             List<OrderGoodsVo> orderGoodsVoList = iOrderGoodsService.selectBuyUserList(mockApplyVo.getMockMajorSubjectId());
             orderGoodsVoList.forEach(orderGoodsVo -> {
-            InformRemindVo informRemindVo = informRemindService.queryById(25L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("一二建考前模考报名提醒");
             if (informRemindVo.getWayStatus().equals(1)) {
                 InformUserAddBo informUserAddBo = new InformUserAddBo();
                 informUserAddBo.setUserId(orderGoodsVo.getUserId());
@@ -1765,7 +1772,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(25L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("模考预约提醒");
                 informUserAddBo.setText("尊敬的用户:【" + mockApplyVo.getBusinessName() + mockApplyVo.getProjectName() + "】考前模拟考试将开始报名参加模拟考试。请登录【祥粤云小程序】或【web.xyyxt.net】进行报名。");
@@ -1778,7 +1785,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(25L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("模考预约提醒");
                 informUserAddBo.setText("尊敬的用户:【" + mockApplyVo.getBusinessName() + mockApplyVo.getProjectName() + "】考前模拟考试将开始报名参加模拟考试。请登录【祥粤云小程序】或【web.xyyxt.net】进行报名。");
@@ -1817,7 +1824,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
             }
             return true;
         });
-        InformRemindVo informRemindVo = informRemindService.queryById(26L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("一二建考前模考开考前一小时提醒");
         if (userMockSubscribeList != null && userMockSubscribeList.size() > 0) {
             for (UserMockSubscribe subscribeVo : userMockSubscribeList) {
                 LambdaQueryWrapper<MockMajorSubjectTime> lqw2 = Wrappers.lambdaQuery();
@@ -1844,7 +1851,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                         informUserAddBo.setSendTime(DateUtils.getNowTime());
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(26L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(1);
                         informUserAddBo.setRemind("模考提醒");
                         informUserAddBo.setText("祥粤云学堂提醒:您学习【" + courseSubject.getSubjectName() + "】科目中的【" + mockApply.getApplyName() + "模考】已将于60分钟后开始考试,请及时在【祥粤云小程序】或【web.xyyxt.net】进行考试。");
@@ -1858,7 +1865,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendStatus(1);
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(26L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setRemind("模考提醒");
                     informUserAddBo.setText("祥粤云学堂提醒:您学习【" + courseSubject.getSubjectName() + "】科目中的【" + mockApply.getApplyName() + "模考】已将于60分钟后开始考试,请及时在【祥粤云小程序】或【web.xyyxt.net】进行考试。");
@@ -1879,7 +1886,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         List<UserMockSubscribeVo> userMockSubscribeVoList = iUserMockSubscribeService.listLiveSubscribe();
         userMockSubscribeVoList.removeIf(userMockSubscribeVo -> System.currentTimeMillis()/1000 + 3600 <= userMockSubscribeVo.getLiveStartTime());
         for (UserMockSubscribeVo userMockSubscribeVo : userMockSubscribeVoList) {
-            InformRemindVo informRemindVo = informRemindService.queryById(27L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("一二建考前直播前一小时提醒");
             if (userMockSubscribeVo.getLiveSubscribe() == 1) {
                 if (informRemindVo.getWayStatus().equals(1)) {
                     InformUserAddBo informUserAddBo = new InformUserAddBo();
@@ -1888,7 +1895,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(27L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setRemind("直播开课提醒");
                     informUserAddBo.setText("祥粤云学堂提醒:您学习【" + userMockSubscribeVo.getSubjectName() + "】科目中的【" + userMockSubscribeVo.getName() + "直播】已将于60分钟后开始直播,请及时在【祥粤云小程序】或【web.xyyxt.net】进行观看。");
@@ -1902,7 +1909,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(27L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("直播开课提醒");
                 informUserAddBo.setText("祥粤云学堂提醒:您学习【" + userMockSubscribeVo.getSubjectName() + "】科目中的【" + userMockSubscribeVo.getName() + "直播】已将于60分钟后开始直播,请及时在【祥粤云小程序】或【web.xyyxt.net】进行观看。");
@@ -1937,7 +1944,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(28L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("已开通商品课程2天后学员未上课");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -1949,7 +1956,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(28L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -1965,7 +1972,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(28L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
@@ -1987,7 +1994,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
-                    informUserAddBo.setRemindId(28L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
                     informUserAddBo.setRemind("您新开通的课程已有2天,尽快去学习吧");
@@ -2021,7 +2028,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(29L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("已开通商品课程5天后学员未上课");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -2033,7 +2040,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(29L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2049,7 +2056,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(29L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2070,7 +2077,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(29L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2105,7 +2112,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(35L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("已开通商品课程15天后学员未上课");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -2117,7 +2124,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(35L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2133,7 +2140,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(35L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2154,7 +2161,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(35L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2189,7 +2196,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(36L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("已开通商品课程30天后学员未上课");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -2201,7 +2208,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(36L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2217,7 +2224,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(36L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2238,7 +2245,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(36L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2273,7 +2280,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(37L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("已开通商品课程55天后学员未上课");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -2285,7 +2292,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(37L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2301,7 +2308,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(37L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2322,7 +2329,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(37L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2357,7 +2364,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(30L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("已开通商品课程7天后学员未上课");
         for(OrderGoodsVo goodsVo : list2){
             if(Validator.isEmpty(goodsVo.getSysUserId())){
                 continue;
@@ -2373,7 +2380,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(30L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2390,7 +2397,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(30L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2426,7 +2433,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(38L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("近15天学员没有学习");
         for(OrderGoodsVo goodsVo : list2){
             if(Validator.isEmpty(goodsVo.getSysUserId())){
                 continue;
@@ -2442,7 +2449,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(38L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2459,7 +2466,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(38L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2495,7 +2502,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(39L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("近30天学员没有学习");
         for(OrderGoodsVo goodsVo : list2){
             if(Validator.isEmpty(goodsVo.getSysUserId())){
                 continue;
@@ -2511,7 +2518,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(39L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2528,7 +2535,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(39L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2564,7 +2571,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getBuyNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(39L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("近55天学员没有学习");
         for(OrderGoodsVo goodsVo : list2){
             if(Validator.isEmpty(goodsVo.getSysUserId())){
                 continue;
@@ -2580,7 +2587,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(40L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2597,7 +2604,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(40L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2633,7 +2640,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getLongNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(31L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("近3天学员没有学习");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -2645,7 +2652,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(31L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2661,7 +2668,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(31L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2682,7 +2689,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(31L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2716,7 +2723,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getLongNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(32L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("近5天学员没有学习");
         for(OrderGoodsVo goodsVo : list2){
             GoodsVo goods = iGoodsService.queryById(goodsVo.getGoodsId());
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
@@ -2728,7 +2735,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(32L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2744,7 +2751,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(32L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2765,7 +2772,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(32L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setSystemStatus(4);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
                     informUserAddBo.setRemind("您已超过5天没有学习课程,尽快去学习吧");
@@ -2799,7 +2806,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         queryBo2.setStartTime(startTime);
         queryBo2.setEndTime(endTime);
         List<OrderGoodsVo> list2 = iOrderGoodsService.getLongNotStudyList(queryBo2);
-        InformRemindVo informRemindVo = informRemindService.queryById(33L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("近7天学员没有学习");
         for(OrderGoodsVo goodsVo : list2){
             if(Validator.isEmpty(goodsVo.getSysUserId())){
                 continue;
@@ -2815,7 +2822,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(33L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(1);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2832,7 +2839,7 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
                     informUserAddBo.setSendTime(DateUtils.getNowTime());
                     informUserAddBo.setCreateTime(DateUtils.getNowTime());
                     informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                    informUserAddBo.setRemindId(33L);
+                    informUserAddBo.setRemindId(informRemindVo.getId());
                     informUserAddBo.setGradeId(goodsVo.getGradeId());
                     informUserAddBo.setSystemStatus(3);
                     informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
@@ -2854,6 +2861,320 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         }
     }
 
+    @Override
+    public void noFinishExamToStudentThree(UserQueryBo bo) {
+        //3天要结束
+        Calendar cal1 = new GregorianCalendar();
+        cal1.add(Calendar.DATE, 3);
+        Long startTime = cal1.getTimeInMillis() / 1000;
+        Calendar cal2 = new GregorianCalendar();
+        cal2.add(Calendar.DATE, 4);
+        Long endTime = cal2.getTimeInMillis() / 1000;
+        ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
+        queryBo.setStartTime(startTime);
+        queryBo.setEndTime(endTime);
+        List<ClassGradeVo> gradeVoList = iClassGradeService.queryGradeList(queryBo);
+        InformRemindVo informRemindVo = informRemindService.queryByName("课程试卷未做完3天提醒");
+        for(ClassGradeVo gradeVo : gradeVoList){
+            List<ClassGradeVo> userList = iCourseService.gradeIdUserSelect(gradeVo.getGoodsId(),gradeVo.getGradeId());
+            for(ClassGradeVo user : userList){
+                System.out.println(user);
+                if(user.getExamNum().longValue()!=user.getRecordNum().longValue()){
+                    Long diffV = user.getExamNum() - user.getRecordNum();
+                    SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+                    subjectStudyRecordQueryBo.setGoodsId(gradeVo.getGoodsId());
+                    subjectStudyRecordQueryBo.setUserId(user.getUserId());
+                    subjectStudyRecordQueryBo.setGradeId(gradeVo.getGradeId());
+                    List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+                    Long secLong = 0L;
+                    Long studyLong = 0L;
+                    for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                        secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                        studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+                    }
+                    System.out.println(secLong);
+                    System.out.println(studyLong);
+                    if(secLong.longValue()==studyLong.longValue()){
+                        GoodsVo goods = iGoodsService.queryById(gradeVo.getGoodsId());
+                        System.out.println(goods);
+                        if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
+                            System.out.println(232323);
+                            UserVo userVo = iUserService.queryById(user.getUserId());
+                            if (informRemindVo.getWayStatus().equals(1))  {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(1);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                iInformUserService.insertByAddBo(informUserAddBo);
+                            }
+                            if (informRemindVo.getNoteStatus().equals(1)) {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(3);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                Map<String, Object> param = new HashMap<>();
+                                param.put("goods", goods.getGoodsName());
+                                param.put("num", diffV);
+                                if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), noFinishExamNoteCode))) {
+                                    iInformUserService.insertByAddBo(informUserAddBo);
+                                }
+                            }
+                            if (informRemindVo.getGzhTpStatus().equals(1)) {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(4);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                Long informId = iInformUserService.insertByAddBo(informUserAddBo);
+                                if(Validator.isNotEmpty(userVo.getOpenId())){
+                                    Map<String,String> paramMap = new HashMap<>();
+                                    paramMap.put("first","您学习的课程,还有"+diffV+"套试卷没有考试完成");
+                                    paramMap.put("keyword1",goods.getGoodsName());
+                                    paramMap.put("keyword2","考试未完成");
+                                    paramMap.put("remark","↓点我去考试~");
+                                    paramMap.put("pagepath","pages3/polyv/detail?id=0&goodsId="+gradeVo.getGoodsId()+"&gradeId="+gradeVo.getGradeId()+"&orderGoodsId="+user.getOrderGoodsId()+"&informId="+informId);
+                                    iWxLoginService.sendSignatureTpMsg(userVo.getOpenId(),paramMap);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    @Override
+    public void noFinishExamToStudentFive(UserQueryBo bo) {
+        //5天要结束
+        Calendar cal1 = new GregorianCalendar();
+        cal1.add(Calendar.DATE, 5);
+        Long startTime = cal1.getTimeInMillis() / 1000;
+        Calendar cal2 = new GregorianCalendar();
+        cal2.add(Calendar.DATE, 6);
+        Long endTime = cal2.getTimeInMillis() / 1000;
+        ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
+        queryBo.setStartTime(startTime);
+        queryBo.setEndTime(endTime);
+        List<ClassGradeVo> gradeVoList = iClassGradeService.queryGradeList(queryBo);
+        InformRemindVo informRemindVo = informRemindService.queryByName("课程试卷未做完5天提醒");
+        for(ClassGradeVo gradeVo : gradeVoList){
+            List<ClassGradeVo> userList = iCourseService.gradeIdUserSelect(gradeVo.getGoodsId(),gradeVo.getGradeId());
+            for(ClassGradeVo user : userList){
+                if(user.getExamNum().longValue()!=user.getRecordNum().longValue()){
+                    Long diffV = user.getExamNum() - user.getRecordNum();
+                    SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+                    subjectStudyRecordQueryBo.setGoodsId(gradeVo.getGoodsId());
+                    subjectStudyRecordQueryBo.setUserId(user.getUserId());
+                    subjectStudyRecordQueryBo.setGradeId(gradeVo.getGradeId());
+                    List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+                    Long secLong = 0L;
+                    Long studyLong = 0L;
+                    for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                        secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                        studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+                    }
+                    if(secLong.longValue()==studyLong.longValue()){
+                        GoodsVo goods = iGoodsService.queryById(gradeVo.getGoodsId());
+                        if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
+                            UserVo userVo = iUserService.queryById(user.getUserId());
+                            if (informRemindVo.getWayStatus().equals(1))  {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(1);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                iInformUserService.insertByAddBo(informUserAddBo);
+                            }
+                            if (informRemindVo.getNoteStatus().equals(1)) {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(3);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                Map<String, Object> param = new HashMap<>();
+                                param.put("goods", goods.getGoodsName());
+                                param.put("num", diffV);
+                                if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), noFinishExamNoteCode))) {
+                                    iInformUserService.insertByAddBo(informUserAddBo);
+                                }
+                            }
+                            if (informRemindVo.getGzhTpStatus().equals(1)) {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(4);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                Long informId = iInformUserService.insertByAddBo(informUserAddBo);
+                                if(Validator.isNotEmpty(userVo.getOpenId())){
+                                    Map<String,String> paramMap = new HashMap<>();
+                                    paramMap.put("first","您学习的课程,还有"+diffV+"套试卷没有考试完成");
+                                    paramMap.put("keyword1",goods.getGoodsName());
+                                    paramMap.put("keyword2","考试未完成");
+                                    paramMap.put("remark","↓点我去考试~");
+                                    paramMap.put("pagepath","pages3/polyv/detail?id=0&goodsId="+gradeVo.getGoodsId()+"&gradeId="+gradeVo.getGradeId()+"&orderGoodsId="+user.getOrderGoodsId()+"&informId="+informId);
+                                    iWxLoginService.sendSignatureTpMsg(userVo.getOpenId(),paramMap);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    @Override
+    public void noFinishExamToStudentSeven(UserQueryBo bo) {
+        //7天要结束
+        Calendar cal1 = new GregorianCalendar();
+        cal1.add(Calendar.DATE, 7);
+        Long startTime = cal1.getTimeInMillis() / 1000;
+        Calendar cal2 = new GregorianCalendar();
+        cal2.add(Calendar.DATE, 8);
+        Long endTime = cal2.getTimeInMillis() / 1000;
+        ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
+        queryBo.setStartTime(startTime);
+        queryBo.setEndTime(endTime);
+        List<ClassGradeVo> gradeVoList = iClassGradeService.queryGradeList(queryBo);
+        InformRemindVo informRemindVo = informRemindService.queryByName("课程试卷未做完7天提醒");
+        for(ClassGradeVo gradeVo : gradeVoList){
+            List<ClassGradeVo> userList = iCourseService.gradeIdUserSelect(gradeVo.getGoodsId(),gradeVo.getGradeId());
+            for(ClassGradeVo user : userList){
+                if(user.getExamNum().longValue()!=user.getRecordNum().longValue()){
+                    Long diffV = user.getExamNum() - user.getRecordNum();
+                    SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+                    subjectStudyRecordQueryBo.setGoodsId(gradeVo.getGoodsId());
+                    subjectStudyRecordQueryBo.setUserId(user.getUserId());
+                    subjectStudyRecordQueryBo.setGradeId(gradeVo.getGradeId());
+                    List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+                    Long secLong = 0L;
+                    Long studyLong = 0L;
+                    for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                        secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                        studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+                    }
+                    if(secLong.longValue()==studyLong.longValue()){
+                        GoodsVo goods = iGoodsService.queryById(gradeVo.getGoodsId());
+                        if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness()) && !CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness().stream().filter(informRemindBusinessVo -> informRemindBusinessVo.getBusinessId().equals(goods.getBusinessId())).collect(Collectors.toList()))) {
+                            UserVo userVo = iUserService.queryById(user.getUserId());
+                            if (informRemindVo.getWayStatus().equals(1))  {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(1);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                iInformUserService.insertByAddBo(informUserAddBo);
+                            }
+                            if (informRemindVo.getNoteStatus().equals(1)) {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(3);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                Map<String, Object> param = new HashMap<>();
+                                param.put("goods", goods.getGoodsName());
+                                param.put("num", diffV);
+                                if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), noFinishExamNoteCode))) {
+                                    iInformUserService.insertByAddBo(informUserAddBo);
+                                }
+                            }
+                            if (informRemindVo.getGzhTpStatus().equals(1)) {
+                                InformUserAddBo informUserAddBo = new InformUserAddBo();
+                                informUserAddBo.setUserId(userVo.getUserId());
+                                informUserAddBo.setSendStatus(1);
+                                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                                informUserAddBo.setRemindId(informRemindVo.getId());
+                                informUserAddBo.setGradeId(gradeVo.getGradeId());
+                                informUserAddBo.setSystemStatus(4);
+                                informUserAddBo.setOrderGoodsId(user.getOrderGoodsId());
+                                informUserAddBo.setRemind("您学习的课程,还有考试未完成");
+                                informUserAddBo.setGoodsId(gradeVo.getGoodsId());
+                                informUserAddBo.setText("您学习的《"+goods.getGoodsName()+"》课程,还有"+diffV+"套试卷没有考试完成,请尽快完成考试!");
+                                Long informId = iInformUserService.insertByAddBo(informUserAddBo);
+                                if(Validator.isNotEmpty(userVo.getOpenId())){
+                                    Map<String,String> paramMap = new HashMap<>();
+                                    paramMap.put("first","您学习的课程,还有"+diffV+"套试卷没有考试完成");
+                                    paramMap.put("keyword1",goods.getGoodsName());
+                                    paramMap.put("keyword2","考试未完成");
+                                    paramMap.put("remark","↓点我去考试~");
+                                    paramMap.put("pagepath","pages3/polyv/detail?id=0&goodsId="+gradeVo.getGoodsId()+"&gradeId="+gradeVo.getGradeId()+"&orderGoodsId="+user.getOrderGoodsId()+"&informId="+informId);
+                                    iWxLoginService.sendSignatureTpMsg(userVo.getOpenId(),paramMap);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     @Override
     public void wisdomExamSite(UserQueryBo bo) {
         iWisdomService.SiteList(1);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/ISysConfigService.java

@@ -27,6 +27,8 @@ public interface ISysConfigService extends IService<SysConfig> {
      */
     public String selectConfigByKey(String configKey);
 
+    public String selectConfigByKeyNoCache(String configKey);
+
     /**
      * 查询参数配置列表
      *

+ 12 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/system/service/impl/SysConfigServiceImpl.java

@@ -22,6 +22,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 参数配置 服务层实现
@@ -72,7 +73,17 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig
         SysConfig retConfig = baseMapper.selectOne(new LambdaQueryWrapper<SysConfig>()
                 .eq(SysConfig::getConfigKey, configKey));
         if (Validator.isNotNull(retConfig)) {
-            redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue());
+            redisCache.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue(),120, TimeUnit.MINUTES);
+            return retConfig.getConfigValue();
+        }
+        return StrUtil.EMPTY;
+    }
+
+    @Override
+    public String selectConfigByKeyNoCache(String configKey) {
+        SysConfig retConfig = baseMapper.selectOne(new LambdaQueryWrapper<SysConfig>()
+                .eq(SysConfig::getConfigKey, configKey));
+        if (Validator.isNotNull(retConfig)) {
             return retConfig.getConfigValue();
         }
         return StrUtil.EMPTY;

+ 16 - 16
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -341,7 +341,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     }
 
     private void sendExamSucceed(UserSubscribeAddBo bo) {
-        InformRemindVo informRemindVo = informRemindService.queryById(15L);
+        InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考考试预考成功提醒");
         //查找商品是否在此短信业务层次
         Long count = baseMapper.sendExamSucceed(bo.getGoodsId());
         if (count > 0) {
@@ -352,7 +352,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                 informUserAddBo.setSendTime(DateUtils.getNowTime());
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(15L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(1);
                 informUserAddBo.setRemind("考试预约成功提醒");
                 informUserAddBo.setGoodsId(bo.getGoodsId());
@@ -367,7 +367,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(3L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(3);
                 informUserAddBo.setRemind("考试预约成功提醒");
                 informUserAddBo.setGoodsId(bo.getGoodsId());
@@ -386,7 +386,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                 informUserAddBo.setSendStatus(1);
                 informUserAddBo.setCreateTime(DateUtils.getNowTime());
                 informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                informUserAddBo.setRemindId(3L);
+                informUserAddBo.setRemindId(informRemindVo.getId());
                 informUserAddBo.setSystemStatus(4);
                 informUserAddBo.setRemind("考试预约成功提醒");
                 informUserAddBo.setGoodsId(bo.getGoodsId());
@@ -596,7 +596,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     private void sendExamcancel(UserSubscribeEditBo bo) {
         for (Long subscribe : bo.getSubscribeId()) {
             UserSubscribeVo userSubscribeVo = this.queryById(subscribe);
-            InformRemindVo informRemindVo = informRemindService.queryById(14L);
+            InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考考试预考取消提醒");
             if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness())) {
                 Long businessId = 0L;
                 for (InformRemindBusinessVo informRemindBusiness : informRemindVo.getInformRemindBusiness()) {
@@ -610,7 +610,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendTime(DateUtils.getNowTime());
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(14L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(1);
                         informUserAddBo.setRemind("考试预约取消提醒");
                         informUserAddBo.setGoodsId(userSubscribeVo.getGoodsId());
@@ -625,7 +625,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(14L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(3);
                         informUserAddBo.setRemind("考试预约取消提醒");
                         informUserAddBo.setGoodsId(userSubscribeVo.getGoodsId());
@@ -644,7 +644,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(14L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(4);
                         informUserAddBo.setRemind("考试预约取消提醒");
                         informUserAddBo.setGoodsId(userSubscribeVo.getGoodsId());
@@ -1591,8 +1591,8 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
 
     private void sendExamPass(UserSubscribe bo) {
         UserSubscribeVo userSubscribeVo = this.queryById(bo.getSubscribeId());
-        InformRemindVo informRemindVoPass = informRemindService.queryById(17L);
-        InformRemindVo informRemindVo = informRemindService.queryById(18L);
+        InformRemindVo informRemindVoPass = informRemindService.queryByName("七大员新考考试通过");
+        InformRemindVo informRemindVo = informRemindService.queryByName("七大员新考考试不通过");
         if (!CollectionUtils.isEmpty(informRemindVo.getInformRemindBusiness())) {
             Long businessId = 0L;
             for (InformRemindBusinessVo informRemindBusiness : informRemindVo.getInformRemindBusiness()) {
@@ -1607,7 +1607,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendTime(DateUtils.getNowTime());
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(17L);
+                        informUserAddBo.setRemindId(informRemindVoPass.getId());
                         informUserAddBo.setSystemStatus(1);
                         informUserAddBo.setOrderGoodsId(userSubscribeVo.getOrderGoodsId());
                         informUserAddBo.setRemind("七大员新考考试通过提醒");
@@ -1623,7 +1623,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(17L);
+                        informUserAddBo.setRemindId(informRemindVoPass.getId());
                         informUserAddBo.setSystemStatus(3);
                         informUserAddBo.setOrderGoodsId(userSubscribeVo.getOrderGoodsId());
                         informUserAddBo.setRemind("七大员新考考试通过提醒");
@@ -1645,7 +1645,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(17L);
+                        informUserAddBo.setRemindId(informRemindVoPass.getId());
                         informUserAddBo.setSystemStatus(4);
                         informUserAddBo.setOrderGoodsId(userSubscribeVo.getOrderGoodsId());
                         informUserAddBo.setRemind("七大员新考考试通过提醒");
@@ -1673,7 +1673,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendTime(DateUtils.getNowTime());
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(18L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(1);
                         informUserAddBo.setOrderGoodsId(userSubscribeVo.getOrderGoodsId());
                         informUserAddBo.setRemind("七大员新考考试不通过提醒");
@@ -1689,7 +1689,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(18L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(3);
                         informUserAddBo.setOrderGoodsId(userSubscribeVo.getOrderGoodsId());
                         informUserAddBo.setRemind("七大员新考考试不通过提醒");
@@ -1710,7 +1710,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                         informUserAddBo.setSendStatus(1);
                         informUserAddBo.setCreateTime(DateUtils.getNowTime());
                         informUserAddBo.setUpdateTime(DateUtils.getNowTime());
-                        informUserAddBo.setRemindId(18L);
+                        informUserAddBo.setRemindId(informRemindVo.getId());
                         informUserAddBo.setSystemStatus(4);
                         informUserAddBo.setOrderGoodsId(userSubscribeVo.getOrderGoodsId());
                         informUserAddBo.setRemind("七大员新考考试不通过提醒");

+ 38 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -62,6 +62,7 @@ import com.zhongzheng.modules.polyv.mapper.PolyvVideoMapper;
 import com.zhongzheng.modules.polyv.service.IPolyvVideoService;
 import com.zhongzheng.modules.polyv.vo.PolyvVideoQuerVo;
 import com.zhongzheng.modules.polyv.vo.PolyvVideoVo;
+import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.user.bo.OrderPossessUserAddBo;
 import com.zhongzheng.modules.user.bo.UserExamGoodsAddBo;
 import com.zhongzheng.modules.user.bo.UserExamGoodsQueryBo;
@@ -78,6 +79,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.PostConstruct;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -97,25 +99,25 @@ import static com.squareup.okhttp.internal.Util.md5Hex;
 @Service
 public class WxPayServiceImpl implements IWxPayService {
 
-    @Value("${wx.small.appid}")
+  //  @Value("${wx.small.appid}")
     private String appid;
 
-    @Value("${wx.gzh.appid}")
+  //  @Value("${wx.gzh.appid}")
     private String gzhAppid;
 
-    @Value("${wx.gzh.appsecret}")
+ //   @Value("${wx.gzh.appsecret}")
     private String gzh_appsrcret;
 
-    @Value("${wx.wepay.mchid}")
+ //   @Value("${wx.wepay.mchid}")
     private String mchid;
 
-    @Value("${wx.wepay.key}")
+ //   @Value("${wx.wepay.key}")
     private String key;
 
-    @Value("${wx.wepay.appsecret}")
+ //   @Value("${wx.wepay.appsecret}")
     private String appsecret;
 
-    @Value("${wx.wepay.notifyUrl}")
+ //   @Value("${wx.wepay.notifyUrl}")
     private String notifyUrl;
 
     @Value("${oldStudySys.sharePath}")
@@ -175,12 +177,28 @@ public class WxPayServiceImpl implements IWxPayService {
     @Autowired
     private IOrderShareMoneyService iOrderShareMoneyService;
 
+    @Autowired
+    private ISysConfigService configService;
+
     private String gzh_tokenUrl = "https://api.weixin.qq.com/cgi-bin/token";
 
     private String gzh_tokenParam = "grant_type=client_credential&appid=%s&secret=%s";
 
+
+    public void initData(){
+        appid = configService.selectConfigByKey("wx.small.appid");
+        gzhAppid = configService.selectConfigByKey("wx.gzh.appid");
+        gzh_appsrcret = configService.selectConfigByKey("wx.gzh.appsecret");
+        mchid = configService.selectConfigByKey("wx.wepay.mchid");
+        key = configService.selectConfigByKey("wx.wepay.key");
+        appsecret = configService.selectConfigByKey("wx.wepay.appsecret");
+        notifyUrl =  configService.selectConfigByKey("wx.wepay.notifyUrl");
+    }
+
+
     @Override
     public Map<String, String> payment(String out_trade_no, String openid, String body, BigDecimal price) {
+        initData();
         WxSmallConfig config = new WxSmallConfig(appid, mchid, key);
         BigDecimal unit = new BigDecimal(100);
         price = price.multiply(unit);
@@ -217,7 +235,12 @@ public class WxPayServiceImpl implements IWxPayService {
 
     @Override
     public Map<String, String> paymentPc(String out_trade_no, String openid, String body, BigDecimal price) {
+        initData();
         WxSmallConfig config = new WxSmallConfig(appid, mchid, key);
+        System.out.println(55678);
+        System.out.println(appid);
+        System.out.println(mchid);
+        System.out.println(key);
         BigDecimal unit = new BigDecimal(100);
         price = price.multiply(unit);
         try {
@@ -235,6 +258,7 @@ public class WxPayServiceImpl implements IWxPayService {
             String TenantId = ServletUtils.getRequest().getHeader("TenantId");
             data.put("attach", TenantId);
             Map<String, String> resp = wxpay.unifiedOrder(data);
+            System.out.println(resp);
             Map<String, String> result = new HashMap<>();
             String code_url = resp.get("code_url");
             if (Validator.isEmpty(code_url)) {
@@ -260,6 +284,7 @@ public class WxPayServiceImpl implements IWxPayService {
 
     @Override
     public Map<String, String> paymentGzh(String out_trade_no, String openid, String body, BigDecimal price, String url) {
+        initData();
         WxSmallConfig config = new WxSmallConfig(gzhAppid, mchid, key);
         try {
             WXPay wxpay = new WXPay(config);
@@ -297,6 +322,7 @@ public class WxPayServiceImpl implements IWxPayService {
     }
 
     public String wx_config_sign(Map<String, String> result, String url) {
+        initData();
         String jsapi_ticket = wx_get_jsapi_ticket();
         if (!Validator.isNotNull(jsapi_ticket)) {
             throw new CustomException("jsapi_ticket错误" + jsapi_ticket);
@@ -308,6 +334,7 @@ public class WxPayServiceImpl implements IWxPayService {
 
     @Override
     public String paymentCallBack(String notifyData) {
+        initData();
         String xmlBack = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文为空]]></return_msg></xml> ";
         WxSmallConfig config = new WxSmallConfig(appid, mchid, key);
         try {
@@ -347,6 +374,7 @@ public class WxPayServiceImpl implements IWxPayService {
 
 
     public String wx_get_jsapi_ticket() {
+        initData();
         String key = "gzh_ticket";
         String ticket = redisCache.getCacheObject(key);
         if (!Validator.isNotNull(ticket)) {
@@ -364,6 +392,7 @@ public class WxPayServiceImpl implements IWxPayService {
 
     //获取微信公众号access_token
     public String wx_get_token() {
+        initData();
         String key = "gzh_access_token";
         String access_token = redisCache.getCacheObject(key);
         if (!Validator.isNotNull(access_token)) {
@@ -457,6 +486,7 @@ public class WxPayServiceImpl implements IWxPayService {
 
     @Override
     public boolean closeWxPcOrder(String out_trade_no) {
+        initData();
         WxSmallConfig config = new WxSmallConfig(appid, mchid, key);
         try {
             WXPay wxpay = new WXPay(config);
@@ -636,6 +666,7 @@ public class WxPayServiceImpl implements IWxPayService {
 
     @Override
     public Map<String, String> refund(String out_refund_no, String transaction_id, BigDecimal refund_fee, BigDecimal total_fee) {
+        initData();
         WxSmallConfig config = new WxSmallConfig(appid, mchid, key);
         BigDecimal unit = new BigDecimal(100);
         refund_fee = refund_fee.multiply(unit);

+ 4 - 4
zhongzheng-system/src/main/resources/mapper/modules/bank/ExamTempMapper.xml

@@ -40,12 +40,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
                 question_id IN (
                 SELECT
-                    question_id
+                    eq.question_id
                 FROM
-                    exam_question
+                    exam_question eq LEFT JOIN exam e on  eq.exam_id = e.exam_id
                 WHERE
                     find_in_set(
-                            exam_id,(
+                            eq.exam_id,(
                         SELECT
                             concat(
                                     IFNULL((
@@ -83,6 +83,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                                 user_exam_record uer
                             WHERE
                                 order_goods_id = #{orderGoodsId} and do_mode = 2
-                        ))  GROUP BY question_id ) ORDER BY RAND() LIMIT  #{number}
+                        )) and e.exam_paper_id = #{examPaperId}  GROUP BY question_id ) ORDER BY RAND() LIMIT  #{number}
     </select>
 </mapper>

+ 11 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseBusinessMapper.xml

@@ -88,4 +88,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by b.sort
     </select>
 
+    <select id="queryFullName" parameterType="com.zhongzheng.modules.course.bo.CourseBusinessQueryBo"  resultType="string">
+        SELECT
+            concat( e.education_name, b.business_name, p.project_name )
+        FROM
+            course_business b
+                LEFT JOIN course_project_type p ON b.project_id = p.id
+                LEFT JOIN course_education_type e ON p.education_id = e.id
+        WHERE
+            b.id = #{id}
+    </select>
+
 </mapper>

+ 28 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -243,6 +243,7 @@
         <result property="periodPlush" column="period_plush"/>
         <result property="orderGoodsId" column="order_goods_id"/>
         <result property="officialName" column="official_name"/>
+        <result property="userId" column="user_id"/>
     </resultMap>
 
 
@@ -674,4 +675,31 @@
         WHERE
             gc.course_id = #{courseId}
     </select>
+
+
+    <select id="gradeIdUserSelect" parameterType="map"  resultMap="ClassGradeVoResult" >
+        SELECT
+        (SELECT
+        ifnull(COUNT( m.id ),0)
+        FROM
+        goods_course c  LEFT JOIN  course_menu_exam m ON m.course_id = c.course_id
+        where
+        m.type in (1,3)
+        and c.goods_id = #{goodsId}) as exam_num,
+        (SELECT ifnull(COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id),0) FROM user_bank_record ubr LEFT JOIN class_grade_goods cgg on cgg.goods_id
+        = ubr.goods_id where ubr.`status`=1 and ubr.report_status=1 and ubr.grade_id = cg.grade_id and ubr.user_id = cgu.user_id and ubr.current_status = 1) as record_num,
+        cgu.grade_id,
+        cgu.user_id,
+        cgu.order_goods_id
+        FROM
+        class_grade_user cgu
+        LEFT JOIN class_grade cg on cgu.grade_id = cg.grade_id
+        LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
+        WHERE
+        1=1
+        <if test="gradeId != null and gradeId != ''">
+            and cg.grade_id = #{gradeId}
+        </if>
+        and cg.`status` =1  and cgu.change_grade = 0 and cgu.`status` = 1
+    </select>
 </mapper>

+ 67 - 3
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -147,6 +147,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="selectStatus" column="select_status"/>
     </resultMap>
 
+    <select id="getSectionNum" parameterType="Long" resultType="Long">
+        SELECT
+                COUNT( m.id ) + (
+                SELECT
+                    COUNT( n.id )
+                FROM
+                    course_chapter_section n
+                        LEFT JOIN course_module_chapter p ON n.chapter_id = p.chapter_id
+                        LEFT JOIN course_menu m ON m.menu_id = p.module_id
+                        LEFT JOIN goods_course gc ON gc.course_id = m.course_id
+                WHERE
+                    gc.goods_id = #{goodsId}
+                  AND m.type =1) + (
+                    SELECT
+                        COUNT( n.id )
+                    FROM
+                        course_chapter_section n
+                            LEFT JOIN course_menu m ON m.menu_id = n.chapter_id
+                            LEFT JOIN goods_course gc ON gc.course_id = m.course_id
+                    WHERE
+                        gc.goods_id = #{goodsId}
+                      AND m.type =2)
+        FROM
+            course_menu m
+                LEFT JOIN goods_course gc ON gc.course_id = m.course_id
+        WHERE
+            gc.goods_id =  #{goodsId}
+          AND m.type =3
+    </select>
+
     <select id="selectAllList" parameterType="com.zhongzheng.modules.goods.bo.GoodsQueryBo" resultMap="GoodsResultVo">
         SELECT
         g.*,
@@ -162,9 +192,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ot.type AS template_type,
         (SELECT gs.goods_name FROM goods gs where 1=1 and g.make_goods_id = gs.goods_id) as make_goods_name,
         (SELECT gs.code FROM goods gs where 1=1 and g.make_goods_id = gs.goods_id) as make_goods_code
-        <if test="sectionNum ==1">
-        ,(SELECT COUNT(m.id)+(SELECT COUNT(n.id) FROM course_chapter_section n LEFT JOIN course_module_chapter p on n.chapter_id = p.chapter_id LEFT JOIN course_menu m on m.menu_id = p.module_id LEFT JOIN goods_course gc on gc.course_id = m.course_id  where gc.goods_id =  g.goods_id and m.type in(1))+(SELECT COUNT(n.id) FROM course_chapter_section n  LEFT JOIN course_menu m on m.menu_id = n.chapter_id LEFT JOIN goods_course gc on gc.course_id = m.course_id where gc.goods_id =  g.goods_id and m.type in(2)) FROM course_menu m LEFT JOIN goods_course gc on gc.course_id = m.course_id  where gc.goods_id =  g.goods_id  and m.type in(3)) as section_num
-        </if>
         <if test="chapterNum ==1">
         ,(SELECT COUNT(m.id)+(SELECT COUNT(p.id) FROM course_module_chapter p LEFT JOIN course_menu m on m.menu_id = p.module_id LEFT JOIN goods_course gc on gc.course_id = m.course_id  where gc.goods_id =  g.goods_id and m.type in(1))+(SELECT COUNT(cmc.id) FROM course_module_chapter cmc  LEFT JOIN course_menu m on m.menu_id = cmc.module_id LEFT JOIN goods_course gc on gc.course_id = m.course_id where gc.goods_id =  g.goods_id and m.type in(2)) FROM course_menu m LEFT JOIN goods_course gc on gc.course_id = m.course_id  where gc.goods_id =  g.goods_id  and m.type in(3)) as chapter_num
         </if>
@@ -566,6 +593,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                             IFNULL(( SELECT GROUP_CONCAT(  major_id ) FROM goods_attached WHERE goods_id = #{goodsId} AND type = 3 ), '' ))))
     </select>
 
+    <select id="getRandomQuestionNum" parameterType="map" resultType="Long">
+        SELECT
+            count(DISTINCT  eq.question_id ) question_num
+        FROM
+            exam_question eq LEFT JOIN exam e on  eq.exam_id = e.exam_id
+        WHERE
+            find_in_set(
+                    eq.exam_id,(
+                SELECT
+                    concat(
+                            IFNULL((
+                                       SELECT
+                                           GROUP_CONCAT(  exam_id )
+                                       FROM
+                                           question_chapter_exam
+                                       WHERE
+                                           FIND_IN_SET(chapter_exam_id,
+                                                       (SELECT
+                                                            concat(
+                                                                    IFNULL(( SELECT GROUP_CONCAT(  major_id ) eids FROM goods_attached WHERE goods_id = #{goodsId} AND type = 2 ), '' ),
+                                                                    ',',
+                                                                    IFNULL(
+                                                                            (
+                                                                                SELECT
+                                                                                    GROUP_CONCAT(  chapter_exam_id ) eids2
+                                                                                FROM
+                                                                                    question_module_chapter
+                                                                                WHERE
+                                                                                        module_exam_id IN ( SELECT major_id FROM goods_attached WHERE goods_id = #{goodsId} AND type = 1 )),
+                                                                            ''
+                                                                        ))))),
+                                   ''
+                                ),
+                            ',',
+                            IFNULL(( SELECT GROUP_CONCAT(  major_id ) FROM goods_attached WHERE goods_id = #{goodsId} AND type = 3 ), '' )))) and e.exam_paper_id = #{examPaperId}
+    </select>
+
     <update id="queryUpGoods">
         update goods g set g.goods_status=0 where unix_timestamp(now()) > g.validity_end_time and g.goods_status = 1
     </update>

+ 39 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -58,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="subjectIds" column="subject_ids"/>
         <result property="businessId" column="business_id"/>
         <result property="projectId" column="project_id"/>
+        <result property="goodsId" column="goods_id"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeUserListVo" id="ClassGradeUserListVo">
@@ -456,6 +457,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="realname != null and realname != ''">
             AND u.realname like concat('%', #{realname}, '%')
         </if>
+        <if test="telphone != null and telphone != ''">
+            AND u.telphone = #{telphone}
+        </if>
         <if test="companyName != null and companyName != ''">
             AND u.company_name like concat('%', #{companyName}, '%')
         </if>
@@ -856,4 +860,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           and cg.`status` in (0,1)
           and g.business_id = #{businessId}
     </select>
+
+    <select id="queryOfficialGradeCount" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeQueryBo" resultType="Integer">
+        SELECT
+            ((
+                 SELECT
+                     count(*)
+                 FROM
+                     class_grade_user_temp cgu
+                         LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+                 WHERE
+                     cg.official_name = #{officialName}
+                   AND cgu.`status` = 1
+             ) + (
+                 SELECT
+                     count(*)
+                 FROM
+                     class_grade_user cgu
+                         LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+                 WHERE
+                     cg.official_name = #{officialName}
+                   AND cgu.`status` = 1
+             ))
+
+    </select>
+
+
+
+    <select id="queryGradeList" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeQueryBo" resultMap="ClassGradeVoResult">
+        SELECT
+            cg.*,cgg.goods_id
+        FROM
+             class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where
+            cg.class_end_time > #{startTime}
+            AND #{endTime} >= cg.class_end_time
+    </select>
 </mapper>

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -1300,4 +1300,6 @@
             and (cg.interface_account_id is not null or cg.no_interface_account_id is not null)
         </if>
     </select>
+
+
 </mapper>

+ 7 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigGoodsMapper.xml

@@ -21,6 +21,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="subjectName" column="subject_name"/>
         <result property="goodsIds" column="goods_ids"/>
         <result property="status" column="status"/>
+        <result property="businessName" column="business_name"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
         <collection property="goodsList" column="goods_ids" select="findGoodsList"/>
     </resultMap>
 
@@ -59,6 +62,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             cs.subject_name
         FROM
             order_business_config_goods bcg
+            LEFT JOIN order_business_config obc ON bcg.config_id = obc.id
+            LEFT JOIN course_business cb ON obc.business_id = cb.id
+            LEFT JOIN course_project_type cpt ON cb.project_id = cpt.id
+            LEFT JOIN course_education_type cet ON cet.id = cpt.education_id
                 LEFT JOIN course_subject cs on bcg.subject_id = cs.id
         WHERE
             bcg.config_id = #{configId}

+ 25 - 1
zhongzheng-system/src/main/resources/mapper/modules/order/OrderBusinessConfigMapper.xml

@@ -18,19 +18,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="businessId" column="business_id"/>
         <result property="configName" column="config_name"/>
         <result property="aliasName" column="alias_name"/>
+        <result property="businessName" column="business_name"/>
+        <result property="educationName" column="education_name"/>
+        <result property="projectName" column="project_name"/>
     </resultMap>
 
     <select id="getList" parameterType="com.zhongzheng.modules.order.bo.OrderBusinessConfigQueryBo" resultMap="OrderBusinessConfigVoResult">
         SELECT
         obc.*,
-        cb.alias_name
+        cb.alias_name,
+        cb.business_name,
+        cpt.project_name,
+        cet.education_name
         FROM
         order_business_config obc
         LEFT JOIN course_business cb ON obc.business_id = cb.id
+        LEFT JOIN course_project_type cpt ON cb.project_id = cpt.id
+        LEFT JOIN course_education_type cet ON cet.id = cpt.education_id
         WHERE
         obc.`status` = 1
         <if test="businessId != null and businessId != ''">
             and obc.business_id = #{businessId}
         </if>
     </select>
+
+    <select id="getDetail" parameterType="com.zhongzheng.modules.order.bo.OrderBusinessConfigQueryBo" resultMap="OrderBusinessConfigVoResult">
+        SELECT
+            obc.*,
+            cb.alias_name,
+            cb.business_name,
+            cpt.project_name,
+            cet.education_name
+        FROM
+            order_business_config obc
+                LEFT JOIN course_business cb ON obc.business_id = cb.id
+                LEFT JOIN course_project_type cpt ON cb.project_id = cpt.id
+                LEFT JOIN course_education_type cet ON cet.id = cpt.education_id
+        WHERE
+             obc.id = #{id}
+    </select>
 </mapper>

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -1364,6 +1364,7 @@
                  LEFT JOIN course_section cs ON r.section_id = cs.section_id
                  LEFT JOIN goods g ON g.goods_id = r.goods_id
                  LEFT JOIN class_grade_user cgu ON cgu.grade_id = r.grade_id and cgu.user_id = #{userId}
+            where cgu.change_grade = 0
         ORDER BY r.sort_time DESC
     </select>
 
@@ -1386,8 +1387,10 @@
         usr.*
         FROM
         user_study_record usr
+        LEFT JOIN class_grade_user cgu  ON usr.grade_id = cgu.grade_id and usr.user_id = cgu.user_id
         WHERE
         usr.user_id = #{userId}
+        AND cgu.change_grade = 0
         <if test="goodsId != null and goodsId !='' ">
             AND usr.goods_id = #{goodsId}
         </if>