Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

周箭河 5 gadi atpakaļ
vecāks
revīzija
f5c5b7f49f

+ 22 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -325,10 +325,30 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
                                              @Param("teacherId") Integer teacherId);
 
     /**
-     * @describe 获取需要提醒续费网管课
+     * @describe 获取需要提醒续费网管课的用户列表
      * @author Joburgess
      * @date 2020.05.29
      * @return java.util.List<com.ym.mec.biz.dal.entity.PracticeGroup>
      */
-    List<PracticeGroup> getNeedRemindPractices();
+    List<Integer> getNeedRemindPracticeUsers();
+
+    /**
+     * @describe 获取用户和需要提醒的网管课map
+     * @author Joburgess
+     * @date 2020.05.29
+     * @param studentIds:
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.String>>
+     */
+    List<Map<Integer, String>> getUserNeedRemindPracticeIdMap(@Param("studentIds") List<Integer> studentIds);
+
+    /**
+     * @describe 批量修改网管课续费提醒状态
+     * @author Joburgess
+     * @date 2020.05.29
+     * @param practiceIds:
+     * @param remindStatus:
+     * @return int
+     */
+    int batchUpdatePracticeRemindStatus(@Param("practiceIds") List<Integer> practiceIds,
+                                        @Param("remindStatus") Integer remindStatus);
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -40,6 +40,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     PUSH_TEACHER_COURSE_COLLIDE("PUSH_TEACHER_COURSE_COLLIDE", "课程冲突"),
     PAY_PRACTICE_BUY_SUCCESS("PAY_PRACTICE_BUY_SUCCESS", "网管课购买成功"),
     PRACTICE_COMPLETED_STUDY_REPORT("PRACTICE_COMPLETED_STUDY_REPORT", "网管课完成学习报告"),
+    PRACTICE_RENEW_REMIND_PUSH("PRACTICE_RENEW_REMIND_PUSH", "网管课续费推送"),
     FREE_PRACTICE_APPLY_PUSH("FREE_PRACTICE_APPLY_PUSH", "免费陪练课预约推送"),
     STUDENT_PUSH_NAMES_ACHIEVE("STUDENT_PUSH_NAMES_ACHIEVE", "点名完成"),
     SCHEDULE_CHANGE("SCHEDULE_CHANGE", "课表变动"),

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -132,6 +132,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private TeacherDao teacherDao;
     @Autowired
 	private CourseScheduleReviewDao courseScheduleReviewDao;
+    @Autowired
+	private PracticeGroupService practiceGroupService;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -3346,7 +3348,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
         }*/
 
-        return true;
+		try {
+			practiceGroupService.practiceGroupRenewRemind();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return true;
     }
 
     @Override

+ 17 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -2114,6 +2114,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             }
         }
 
+        studentDao.updateStudentServiceOrOperatingTag(practiceGroup.getStudentId(),null,YesOrNoEnum.YES.getCode(),null);
+
         List<ImGroupMember> imGroupMemberList = new ArrayList<>();
         if(Objects.nonNull(practiceGroup.getEducationalTeacherId())){
             imGroupMemberList.add(new ImGroupMember(practiceGroup.getEducationalTeacherId().toString()));
@@ -3719,6 +3721,20 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
     @Override
     public void practiceGroupRenewRemind() {
-        List<PracticeGroup> needRemindPractices = practiceGroupDao.getNeedRemindPractices();
+        List<Integer> needRemindStudentIds = practiceGroupDao.getNeedRemindPracticeUsers();
+        List<Map<Integer, String>> userNeedRemindPracticeIdMaps = practiceGroupDao.getUserNeedRemindPracticeIdMap(needRemindStudentIds);
+        if(!CollectionUtils.isEmpty(userNeedRemindPracticeIdMaps)){
+            Map<Integer, String> userNeedRemindPracticeIdMap = MapUtil.convertIntegerMap(userNeedRemindPracticeIdMaps);
+            String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
+            String pushUrl = baseApiUrl + "/#/auditionActive/1?groupId=";
+            for (Map.Entry<Integer, String> integerStringEntry : userNeedRemindPracticeIdMap.entrySet()) {
+                Map<Integer, String> userMap = new HashMap<>();
+                userMap.put(integerStringEntry.getKey(), integerStringEntry.getKey().toString());
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PRACTICE_RENEW_REMIND_PUSH,
+                        userMap, null, 0, "5?" + pushUrl + integerStringEntry.getValue(), "STUDENT");
+            }
+            List<Integer> practiceIds = userNeedRemindPracticeIdMap.values().stream().map(e->Integer.valueOf(e)).collect(Collectors.toList());
+            practiceGroupDao.batchUpdatePracticeRemindStatus(practiceIds, YesOrNoEnum.YES.getCode());
+        }
     }
 }

+ 21 - 8
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -109,6 +109,12 @@
     <update id="updateMemo">
         UPDATE practice_group SET memo_ = #{memo},update_time_ = NOW() WHERE id_ = #{groupId}
     </update>
+    <update id="batchUpdatePracticeRemindStatus">
+        UPDATE practice_group SET reminded=#{remindStatus} WHERE id_ IN
+        <foreach collection="practiceIds" item="practiceId" separator="," open="(" close=")">
+            #{practiceId}
+        </foreach>
+    </update>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="PracticeGroup">
@@ -684,13 +690,20 @@
       SELECT COUNT(pg.id_) FROM practice_group pg LEFT JOIN course_schedule cs ON cs.music_group_id_=pg.id_
       WHERE pg.student_id_=#{studentId} AND pg.type_='TRIAL' AND cs.group_type_='PRACTICE' AND CONCAT(cs.class_date_, ' ', cs.end_class_time_)>NOW()
     </select>
-    <select id="getNeedRemindPractices" resultMap="PracticeGroup">
-        SELECT
-            *
-        FROM
-            practice_group
-        WHERE
-            TIMESTAMPDIFF( DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' ), DATE_FORMAT( courses_expire_date_, '%Y-%m-%d' ) ) = 7
-            OR TIMESTAMPDIFF( DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' ), DATE_FORMAT( courses_expire_date_, '%Y-%m-%d' ) ) = 14;
+    <select id="getNeedRemindPracticeUsers" resultType="int">
+        SELECT pg.student_id_ FROM practice_group pg
+        LEFT JOIN course_schedule cs ON cs.music_group_id_=pg.id_
+        WHERE pg.group_status_='NORMAL' AND cs.group_type_='PRACTICE' AND CONCAT(class_date_, ' ', end_class_time_)>NOW()
+        GROUP BY pg.student_id_ HAVING COUNT(cs.id_)=1;
+    </select>
+    <select id="getUserNeedRemindPracticeIdMap" resultType="map">
+        SELECT cssp.user_id_ AS 'key', cssp.music_group_id_ AS 'value' FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_
+        LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_
+        WHERE pg.reminded=0 AND cs.group_type_='PRACTICE' AND CONCAT(class_date_, ' ', end_class_time_)>NOW()
+        AND cssp.user_id_ IN
+        <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+            #{studentId}
+        </foreach>
     </select>
 </mapper>

+ 0 - 3
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -125,7 +125,4 @@ public interface TaskRemoteService {
 	@GetMapping("task/updateMusicGroupPaymentCalenderStatus")
 	void updateMusicGroupPaymentCalenderStatus();
 
-	//网管课续费提醒
-	@GetMapping("task/practiceGroupRenewRemind")
-	void practiceGroupRenewRemind();
 }

+ 0 - 5
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -152,11 +152,6 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	}
 
 	@Override
-	public void practiceGroupRenewRemind() {
-		logger.info("网管课续费提醒失败");
-	}
-
-	@Override
 	public void pushTeacherExceptionAttendanceTask() {
 		logger.info("教师异常考勤推送失败");
 	}

+ 0 - 23
mec-task/src/main/java/com/ym/mec/task/jobs/PracticeGroupRenewRemindTask.java

@@ -1,23 +0,0 @@
-package com.ym.mec.task.jobs;
-
-import com.ym.mec.task.TaskRemoteService;
-import com.ym.mec.task.core.BaseTask;
-import com.ym.mec.task.core.TaskException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-/**
- * @Author Joburgess
- * @Date 2020.05.29
- */
-@Service
-public class PracticeGroupRenewRemindTask extends BaseTask {
-
-    @Autowired
-    private TaskRemoteService taskRemoteService;
-
-    @Override
-    public void execute() throws TaskException {
-        taskRemoteService.practiceGroupRenewRemind();
-    }
-}

+ 0 - 6
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -251,10 +251,4 @@ public class TaskController extends BaseController {
 	public void pushTeacherExceptionAttendanceTask() {
 		teacherAttendanceService.pushTeacherExceptionAttendanceTask();
 	}
-
-	//网管课续费提醒
-	@GetMapping("/practiceGroupRenewRemind")
-	public void practiceGroupRenewRemind(){
-		practiceGroupService.practiceGroupRenewRemind();
-	}
 }