he2802 3 лет назад
Родитель
Сommit
25a2a0141c

+ 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();
+    }
+
 }

+ 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);
 }

+ 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/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();

+ 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;
 }

+ 289 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -131,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.*;
@@ -176,8 +177,6 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
 
-    @Autowired
-    private IOrderBusinessService iOrderBusinessService;
     @Autowired
     private IGoodsService iGoodsService;
     @Autowired
@@ -287,6 +286,10 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     @Autowired
     private IWxLoginService iWxLoginService;
 
+
+    @Autowired
+    private ICourseService iCourseService;
+
     @Autowired
     private IWisdomService iWisdomService;
 
@@ -2868,19 +2871,300 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         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){
+                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("goodsName", goods.getGoodsName());
+                                param.put("day", "30");
+                               /* if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), buyNotStudyStudentRemind))) {
+                                    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, -6);
+        Long startTime = cal1.getTimeInMillis() / 1000;
+        Calendar cal2 = new GregorianCalendar();
+        cal2.add(Calendar.DATE, -5);
+        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("goodsName", goods.getGoodsName());
+                                param.put("day", "30");
+                               /* if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), buyNotStudyStudentRemind))) {
+                                    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, -8);
+        Long startTime = cal1.getTimeInMillis() / 1000;
+        Calendar cal2 = new GregorianCalendar();
+        cal2.add(Calendar.DATE, -7);
+        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("goodsName", goods.getGoodsName());
+                                param.put("day", "30");
+                               /* if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), buyNotStudyStudentRemind))) {
+                                    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

+ 6 - 4
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>
 
 
@@ -676,19 +677,20 @@
     </select>
 
 
-    <select id="gradeIdSelect" parameterType="map"  resultMap="ClassGradeVoResult" >
+    <select id="gradeIdUserSelect" parameterType="map"  resultMap="ClassGradeVoResult" >
         SELECT
         (SELECT
-        COUNT( m.id )
+        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 COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr LEFT JOIN class_grade_goods cgg on cgg.goods_id
+        (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.user_id,
+        cgu.order_goods_id
         FROM
         class_grade_user cgu
         LEFT JOIN class_grade cg on cgu.grade_id = cg.grade_id

+ 1 - 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">