he2802 1 yıl önce
ebeveyn
işleme
357b9e27bd

+ 2 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -96,10 +96,11 @@ public class ScheduleController extends BaseController {
         return AjaxResult.success();
     }
 
-    @ApiOperation("二建服务到期提醒")
+    @ApiOperation("二建服务和班级到期提醒")
     @GetMapping("/sendServiceEnd")
     public AjaxResult sendServiceEnd() {
         iScheduleService.sendServiceEnd();
+        iScheduleService.sendClassTenAndFifteenEnd();
         return AjaxResult.success();
     }
 

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -77,6 +77,8 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     List<ClassGradeUserGoodsVo> sendTenClassGradeUser();
 
+    List<ClassGradeUserGoodsVo> sendTenAndFifteenClassGradeUser();
+
     List<ClassGradeUserGoodsVo> checkTenClassGradeUser(@Param("userId") Long userId,@Param("startTime") Long startTime,@Param("endTime") Long endTime);
 
     List<ClassGradeUserGoodsVo> sendFiveClassGradeUser();

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

@@ -22,6 +22,8 @@ public interface IScheduleService extends IService<PolyvVideo> {
 
     void sendServiceEnd();
 
+    void sendClassTenAndFifteenEnd();
+
     void timeSend(UserQueryBo bo);
 
     void closeTimeOutOrder();

+ 55 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -66,6 +66,7 @@ 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.mapper.ClassGradeUserMapper;
 import com.zhongzheng.modules.grade.service.*;
 import com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
@@ -352,7 +353,8 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
     private ISysTaskService iSysTaskService;
     @Autowired
     private OssService ossService;
-
+    @Autowired
+    private ClassGradeUserMapper classGradeUserMapper;
 
     @Value("${aliyun.sms.OpenTheGoodsCode}")
     private String OpenTheGoodsCode;
@@ -639,6 +641,58 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
 
     }
 
+    @Override
+    public void sendClassTenAndFifteenEnd() {
+        InformRemindVo informRemindVo = informRemindService.queryByName("二建继教班级有效期倒计时15,10天");
+        if(Validator.isNotEmpty(informRemindVo)){
+            List<ClassGradeUserGoodsVo> list = classGradeUserMapper.sendTenAndFifteenClassGradeUser();
+            for (ClassGradeUserGoodsVo goodsVo : list) {
+                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()))) {
+                    UserVo userVo = iUserService.queryById(goodsVo.getUserId());
+                    int day = DateUtils.dayBetween(DateUtils.getNowTime(),goodsVo.getClassEndTime())-1;
+                    if (informRemindVo.getWayStatus().equals(1)) {
+                        InformUserAddBo informUserAddBo = new InformUserAddBo();
+                        informUserAddBo.setUserId(goodsVo.getUserId());
+                        informUserAddBo.setSendStatus(1);
+                        informUserAddBo.setSendTime(DateUtils.getNowTime());
+                        informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                        informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                        informUserAddBo.setRemindId(informRemindVo.getId());
+                        informUserAddBo.setSystemStatus(1);
+                        informUserAddBo.setGradeId(goodsVo.getGradeId());
+                        informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
+                        informUserAddBo.setRemind("二建继教班级有效期还剩"+day+"天提醒");
+                        informUserAddBo.setGoodsId(goodsVo.getGoodsId());
+                        informUserAddBo.setText("尊敬的用户:您购买的课程二建继教班级有效期还剩"+day+"天,请在"+DateUtils.timestampToDateFormat(goodsVo.getClassEndTime(),DateUtils.YYYY__MM__DD)+"前完成学习及考试,到期未完成学时将清零,需重新学习。");
+                        iInformUserService.insertByAddBo(informUserAddBo);
+                    }
+                    if (informRemindVo.getNoteStatus().equals(1)) {
+                        InformUserAddBo informUserAddBo = new InformUserAddBo();
+                        informUserAddBo.setUserId(goodsVo.getUserId());
+                        informUserAddBo.setSendStatus(1);
+                        informUserAddBo.setSendTime(DateUtils.getNowTime());
+                        informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                        informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                        informUserAddBo.setRemindId(informRemindVo.getId());
+                        informUserAddBo.setSystemStatus(3);
+                        informUserAddBo.setOrderGoodsId(goodsVo.getOrderGoodsId());
+                        informUserAddBo.setGradeId(goodsVo.getGradeId());
+                        informUserAddBo.setRemind("二建继教班级有效期还剩"+day+"天提醒");
+                        informUserAddBo.setGoodsId(goodsVo.getGoodsId());
+                        informUserAddBo.setText("尊敬的用户:您购买的课程二建继班级有效期还剩"+day+"天,请在"+DateUtils.timestampToDateFormat(goodsVo.getClassEndTime(),DateUtils.YYYY__MM__DD)+"前完成学习及考试,到期未完成学时将清零,需重新学习。");
+                        Map<String, Object> param = new HashMap<>();
+                        param.put("date", DateUtils.timestampToDateFormat(goodsVo.getClassEndTime(),DateUtils.YYYY__MM__DD));
+                        param.put("day", day);
+                        if (Validator.isNotEmpty(IAliSmsService.sendInformSms(userVo.getTelphone(), JSON.toJSONString(param), orderServiceEndRemind))) {
+                            iInformUserService.insertByAddBo(informUserAddBo);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     private void sendClassEnd() {
         List<ClassGradeUserGoodsVo> classTwentyGradeUserVos = iClassGradeUserService.sendTwentyClassGradeUser();
         List<ClassGradeUserGoodsVo> classTenGradeUserVos = iClassGradeUserService.sendTenClassGradeUser();

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

@@ -1678,6 +1678,25 @@
         AND unix_timestamp(now()) BETWEEN cg.class_end_time-864000 and cg.class_end_time-777600
     </select>
 
+    <select id="sendTenAndFifteenClassGradeUser"  resultMap="ClassGradeUserGoodsVoResult">
+
+        SELECT
+            cgu.user_id,
+            cgu.order_goods_id,
+            cg.class_start_time,
+            cg.class_end_time,
+            og.goods_id,
+            cg.grade_id
+        FROM
+            class_grade_user cgu
+                LEFT JOIN class_grade cg on  cgu.grade_id = cg.grade_id
+                LEFT JOIN order_goods og ON cgu.order_goods_id = og.order_goods_id
+        where 1=1
+          and cgu.status = 1
+          AND (unix_timestamp(now()) BETWEEN cg.class_end_time-950400 and cg.class_end_time-864000 or
+               unix_timestamp(now()) BETWEEN cg.class_end_time-1382400 and cg.class_end_time-1296000)
+    </select>
+
     <select id="checkTenClassGradeUser" parameterType="map" resultMap="ClassGradeUserGoodsVoResult">
 
         SELECT