Browse Source

当前服务指标已开启,但在系统中没有剩余课时,且在乐团中不是在读状态,这种用户需要关闭服务指标

zouxuan 4 years ago
parent
commit
4259692ddd

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -161,4 +161,17 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      * @return
      */
     List<Student> getStudentTeacher(@Param("studentIds") List<Integer> studentIds);
+
+    /**
+     * 当前服务指标已开启,但在系统中没有剩余课时,且在乐团中不是在读状态,这种用户需要关闭服务指标
+     * @return
+     */
+    List<Integer> queryCloseServiceTagIds();
+
+    /**
+     * 更新用户服务指标
+     * @param studentIds
+     * @param serviceTag
+     */
+    void updateServiceTag(@Param("studentIds") List<Integer> studentIds, @Param("serviceTag") Integer serviceTag);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentServeService.java

@@ -53,4 +53,8 @@ public interface StudentServeService {
      */
     Set<Integer> getStudentWithCourse(Long courseId);
 
+    /**
+     * 更新学生服务指标
+     */
+    void closeStudentServiceTag();
 }

+ 0 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java

@@ -21,12 +21,6 @@ public interface StudentService extends BaseService<Integer, Student> {
      * @throws ParseException 
      */
     boolean updateOperatingTempTag();
-    
-    /**
-     * 更新学生服务指标
-     * @return
-     */
-    ResponseEntity<Boolean> updateServiceTag();
 
     /**
      * @describe 初始化教师编号

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -927,4 +927,19 @@ public class StudentServeServiceImpl implements StudentServeService {
         }
         return serviceWithCourse.stream().map(StudentExtracurricularExercisesSituation::getStudentId).collect(Collectors.toSet());
     }
+
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void closeStudentServiceTag() {
+        /**
+         * 当前服务指标已开启,但在系统中没有剩余课时,且在乐团中不是在读状态,这种用户需要关闭服务指标
+         */
+        //获取需要关闭服务指标的学员
+        List<Integer> studentIds = studentDao.queryCloseServiceTagIds();
+        if(studentIds.size() > 0){
+            studentDao.updateServiceTag(studentIds,0);
+        }
+    }
 }

+ 4 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
@@ -32,6 +33,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 
 	@Autowired
 	private StudentDao studentDao;
+	@Autowired
+	private CourseScheduleDao courseScheduleDao;
 	
 	@Autowired
 	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
@@ -114,16 +117,6 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 	}
 
 	@Override
-	public ResponseEntity<Boolean> updateServiceTag() {
-		/**
-		 * 当前服务指标已开启,但在系统中没有剩余课时,且在乐团中不是在读状态,这种用户需要关闭服务指标
-		 */
-		
-		
-		return null;
-	}
-
-	@Override
 	public void initTeacherId() {
 		List<StudentTeacherCourseDto> allStudentCourseInfo = courseScheduleStudentPaymentDao.findAllStudentCourseInfo();
 		Map<Integer, List<StudentTeacherCourseDto>> studentCoursesMap = allStudentCourseInfo.stream().collect(Collectors.groupingBy(StudentTeacherCourseDto::getStudentId));
@@ -178,4 +171,5 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 	public void batchUpdateAdviser(Integer teacherId,String studentIds) {
 		studentDao.batchUpdateAdviser(teacherId,studentIds);
 	}
+
 }

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -218,6 +218,12 @@
     <update id="batchUpdateAdviser">
       UPDATE student s SET s.teacher_id_ = #{teacherId},s.update_time_ = NOW() WHERE FIND_IN_SET(s.user_id_,#{studentIds})
     </update>
+    <update id="updateServiceTag">
+        UPDATE student SET service_tag_ = #{serviceTag} WHERE user_id_ IN
+        <foreach collection="studentIds" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
 
     <resultMap id="student4operating" type="com.ym.mec.biz.dal.dto.Student4operating">
         <result column="organ_name_" property="organName"/>
@@ -601,4 +607,14 @@
             #{studentId}
         </foreach>
     </select>
+    <select id="queryCloseServiceTagIds" resultType="java.lang.Integer">
+        SELECT s.user_id_ FROM student s
+        LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        LEFT JOIN student_registration sr ON sr.user_id_ = s.user_id_
+        LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
+        WHERE s.service_tag_ = 1
+        GROUP BY s.user_id_ HAVING COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) = 0
+        AND COUNT(CASE WHEN sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS' THEN 1 ELSE NULL END) = 0;
+    </select>
 </mapper>

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

@@ -153,4 +153,10 @@ public interface TaskRemoteService {
 	//巡查日程提醒
 	@GetMapping("task/inspectionPlan")
 	void inspectionPlan();
+
+	/**
+	 * 关闭学员服务指标
+	 */
+	@GetMapping("task/closeStudentServiceTag")
+    void closeStudentServiceTag();
 }

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

@@ -195,4 +195,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void inspectionPlan() {
 		logger.info("巡查日程提醒提送失败");
 	}
+
+	@Override
+	public void closeStudentServiceTag() {
+		logger.info("学员服务指标关闭失败");
+	}
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/CloseStudentServiceTagTask.java

@@ -0,0 +1,19 @@
+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;
+
+@Service
+public class CloseStudentServiceTagTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.closeStudentServiceTag();
+	}
+}

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/InspectionItemController.java

@@ -48,7 +48,7 @@ public class InspectionItemController extends BaseController {
     }
 
     @ApiOperation(value = "巡查任务事项列表")
-    @GetMapping("/queryPage")
+    @RequestMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('inspectionItem/queryPage')")
     public HttpResponseResult<PageInfo<InspectionItem>> queryPage(InspectionQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -105,7 +105,7 @@ public class MusicGroupController extends BaseController {
 	}
 
 	@ApiOperation(value = "分页查询乐团列表")
-	@GetMapping("/queryPage")
+	@RequestMapping("/queryPage")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
 	public Object queryPage(MusicGroupQueryInfo queryInfo) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -39,7 +39,7 @@ public class MusicGroupQuitController extends BaseController {
 	private SysUserFeignService sysUserFeignService;
 
 	@ApiOperation(value = "分页查询")
-	@GetMapping("/queryPage")
+	@RequestMapping("/queryPage")
 	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/queryPage')")
 	public HttpResponseResult queryPage(MusicGroupQuitQueryInfo queryInfo) throws Exception {
 		return succeed(musicGroupQuitService.queryPage(queryInfo));

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

@@ -100,6 +100,12 @@ public class TaskController extends BaseController {
 		studentGoodsSellService.affirmReceive(null);
 	}
 
+	@GetMapping(value = "/closeStudentServiceTag")
+	// 关闭指定学员服务指标
+	public void closeStudentServiceTag(){
+		studentServeService.closeStudentServiceTag();
+	}
+
 	@GetMapping(value = "/pushWaitSendMessageTask")
 	// 每天9点推送前一天22点之后的推送消息
 	public void pushWaitSendMessageTask(){

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

@@ -44,7 +44,7 @@ public class TeacherAttendanceController extends BaseController {
     }
 
     @ApiOperation(value = "获取教师考勤记录")
-    @PostMapping("/queryTeacherAttendances")
+    @RequestMapping("/queryTeacherAttendances")
     @PreAuthorize("@pcs.hasPermissions('teacherAttendance/queryTeacherAttendances')")
     public Object queryTeacherAttendances(TeacherCloseQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java

@@ -64,7 +64,7 @@ public class StudentAttendanceController extends BaseController {
     }
 
     @ApiOperation(value = "获取某节课学生签到列表")
-    @GetMapping("/findStudentAttendance")
+    @RequestMapping("/findStudentAttendance")
     @PreAuthorize("@pcs.hasPermissions('studentAttendance/findStudentAttendance')")
     public Object findStudentAttendance(StudentAttendanceQueryInfo queryInfo){
     	SysUser sysUser = sysUserFeignService.queryUserInfo();