zouxuan преди 3 години
родител
ревизия
f1bf69e84f

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

@@ -379,4 +379,14 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      * @return
      */
     List<Integer> getStudentByHasCourse(Integer teacherId);
+
+    /**
+     * 清空学员统计标记
+     */
+    void cleanCountFlag();
+
+    /**
+     * 标记进行中乐团在读学员+VIP、网管有课的学员
+     */
+    void remarkCountFlag();
 }

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

@@ -123,4 +123,17 @@ public interface StudentService extends BaseService<Integer, Student> {
      * @return void
      */
     void cleanStudentCloudStudySequenceDays();
+
+    /**
+     * 标记进行中乐团在读学员+VIP、网管有课学员总数(除弦乐声部、去重)
+     */
+    void remarkCountFlag();
+
+    /**
+     * 云教练活动统计
+     * @param ids
+     * @param queryInfo
+     * @return
+     */
+    Object countCloudTeacherActive(List<Integer> ids, OrganCloudStudyStudentDataQueryInfo queryInfo);
 }

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -815,4 +815,17 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     public void cleanStudentCloudStudySequenceDays() {
         studentDao.cleanStudentCloudStudySequenceDays();
     }
+
+    @Override
+    public void remarkCountFlag() {
+        //清除标记
+        studentDao.cleanCountFlag();
+        //打标记
+        studentDao.remarkCountFlag();
+    }
+
+    @Override
+    public Object countCloudTeacherActive(List<Integer> ids, OrganCloudStudyStudentDataQueryInfo queryInfo) {
+        return null;
+    }
 }

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

@@ -1279,4 +1279,28 @@
     <update id="cleanStudentCloudStudySequenceDays">
         UPDATE student SET cloud_study_sequence_days_=0,cloud_study_use_last_day_=date_sub(curdate(), interval 1 day) WHERE cloud_study_use_last_day_&lt;date_sub(curdate(), interval 1 day)
     </update>
+    <update id="cleanCountFlag">
+        UPDATE student SET count_flag_ = 0 WHERE count_flag_ = 1
+    </update>
+    <update id="remarkCountFlag">
+        UPDATE student SET count_flag_ = 1 WHERE user_id_ IN (
+        SELECT * FROM (
+        SELECT DISTINCT user_id_
+        FROM ((SELECT sr.user_id_
+        FROM student_registration sr
+        LEFT JOIN music_group mg ON sr.music_group_id_=mg.id_
+        WHERE mg.status_='PROGRESS'
+        AND sr.music_group_status_='NORMAL')
+        UNION ALL
+        (SELECT
+        cssp.user_id_
+        FROM
+        course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
+        WHERE
+        cssp.group_type_ IN ('VIP', 'PRACTICE')
+        AND cs.status_='NOT_START')) t
+        LEFT JOIN sys_user su ON t.user_id_=su.id_
+        WHERE su.del_flag_=0 AND t.user_id_ NOT IN (SELECT user_id_ FROM student WHERE subject_id_list_ REGEXP '21|25|26|27|28|29'))c)
+    </update>
 </mapper>

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

@@ -223,4 +223,10 @@ public interface TaskRemoteService {
 	/** 本周学员训练提醒 */
 	@GetMapping("task/curWeekStudentTrainRemind")
 	void curWeekStudentTrainRemind();
+
+	/**
+	 * 标记进行中乐团在读学员+VIP、网管有课学员(除弦乐声部、去重)
+	 */
+	@GetMapping("task/remarkCountFlag")
+    void remarkCountFlag();
 }

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

@@ -277,4 +277,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void curWeekStudentTrainRemind() {
 		logger.error("本周学员训练提醒失败");
 	}
+
+    @Override
+    public void remarkCountFlag() {
+        logger.error("标记进行中乐团在读学员+VIP、网管有课学员总数 失败");
+    }
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/RemarkCountFlagTask.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 RemarkCountFlagTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.remarkCountFlag();
+	}
+}

+ 19 - 0
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -465,6 +465,25 @@ public class StudentManageController extends BaseController {
         return succeed(studentService.queryOrganStudentOverView(ids, queryInfo));
     }
 
+    @ApiOperation(value = "云教练活动统计")
+    @GetMapping("/organStudentOverView")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/countCloudTeacherActive')")
+    public Object countCloudTeacherActive(OrganCloudStudyStudentDataQueryInfo queryInfo) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        List<Organization> organizations = organizationService.queryEmployeeOrgan(sysUser.getId());
+        List<Integer> organIds = new ArrayList<>();
+        if(StringUtils.isNotBlank(queryInfo.getOrganIds())){
+            organIds = Arrays.stream(queryInfo.getOrganIds().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList());
+        }else if(!CollectionUtils.isEmpty(organizations)){
+            organIds = organizations.stream().map(Organization::getId).collect(Collectors.toList());
+        }
+        List<Integer> ids = organIds.stream().filter(id -> !OrganizationService.EXCLUDE_ORGAN_IDS.contains(id)).collect(Collectors.toList());
+        return succeed(studentService.countCloudTeacherActive(ids, queryInfo));
+    }
+
     @ApiOperation(value = "云教练学员数据")
     @GetMapping("/organStudentData")
     @PreAuthorize("@pcs.hasPermissions('studentManage/organStudentData')")

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

@@ -500,4 +500,10 @@ public class TaskController extends BaseController {
 	public void curWeekStudentTrainRemind(){
 		sysMusicCompareRecordService.curWeekStudentTrainRemind();
 	}
+
+	@ApiOperation("标记进行中乐团在读学员+VIP、网管有课学员总数(除弦乐声部、去重)")
+	@GetMapping(value = "/remarkCountFlag")
+	public void remarkCountFlag(){
+		studentService.remarkCountFlag();
+	}
 }