Selaa lähdekoodia

feat:教务端学员云教练数据统计

Joburgess 3 vuotta sitten
vanhempi
commit
4c9f1fdabd

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

@@ -272,4 +272,32 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
      */
     List<EduOrganStudentListDto> queryCloudStudyStudentData(Map<String, Object> params);
     int countCloudStudyStudentData(Map<String, Object> params);
+
+    /**
+     * @describe 更新学员云教练连续使用天数
+     * @author Joburgess
+     * @date 2021/8/17 0017
+     * @param userId:
+     * @return int
+     */
+    int addStudentCloudStudySequenceDays(@Param("userId") Integer userId);
+
+    /**
+     * @describe 更新学员云教练连续使用天数
+     * @author Joburgess
+     * @date 2021/8/17 0017
+     * @param userId:
+     * @param days:
+     * @return int
+     */
+    int updateStudentsCloudStudySequenceDays(@Param("userIds") List<Integer> userId,
+                                             @Param("days") Integer days);
+
+    /**
+     * @describe 清理学员云教练连续使用天数
+     * @author Joburgess
+     * @date 2021/8/17 0017
+     * @return int
+     */
+    int cleanStudentCloudStudySequenceDays();
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduOrganStudentListDto.java

@@ -47,7 +47,7 @@ public class EduOrganStudentListDto {
     private int cloudStudyRunningDays;
 
     @ApiModelProperty("会员有效期")
-    private Date membershipEndTime;
+    private String membershipEndTime;
 
     public Integer getStudentId() {
         return studentId;
@@ -145,11 +145,11 @@ public class EduOrganStudentListDto {
         this.cloudStudyRunningDays = cloudStudyRunningDays;
     }
 
-    public Date getMembershipEndTime() {
+    public String getMembershipEndTime() {
         return membershipEndTime;
     }
 
-    public void setMembershipEndTime(Date membershipEndTime) {
+    public void setMembershipEndTime(String membershipEndTime) {
         this.membershipEndTime = membershipEndTime;
     }
 }

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

@@ -97,4 +97,13 @@ public interface StudentService extends BaseService<Integer, Student> {
      * @return com.ym.mec.biz.dal.dto.StatDto
      */
     StatDto organStudentData(StudentQueryInfo queryInfo);
+
+    /**
+     * @describe 清理学员云教练连续使用天数
+     * @author Joburgess
+     * @date 2021/8/17 0017
+     * @param :
+     * @return void
+     */
+    void cleanStudentCloudStudySequenceDays();
 }

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

@@ -415,4 +415,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 
         return result;
     }
+
+    @Override
+    public void cleanStudentCloudStudySequenceDays() {
+        studentDao.cleanStudentCloudStudySequenceDays();
+    }
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.*;
@@ -31,6 +32,8 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	private SysMusicCompareRecordDao sysMusicCompareRecordDao;
 	@Autowired
 	private TeacherDao teacherDao;
+	@Autowired
+	private StudentDao studentDao;
 
 	@Override
 	public BaseDAO<Long, SysMusicCompareRecord> getDAO() {
@@ -38,6 +41,12 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
+	public long insert(SysMusicCompareRecord bean) {
+		studentDao.addStudentCloudStudySequenceDays(bean.getUserId());
+		return super.insert(bean);
+	}
+
+	@Override
 	public void saveMusicCompareData(String phone, SoundCompareHelper soundCompareInfo) {
 		SysUser user = teacherDao.getUserWithPhone(phone);
 		if(Objects.isNull(user)){
@@ -63,6 +72,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		}
 		sysMusicCompareRecord.setMonday(LocalDate.now().with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()).toString());
 		sysMusicCompareRecordDao.insert(sysMusicCompareRecord);
+		studentDao.addStudentCloudStudySequenceDays(user.getId());
 	}
 
 	@Override

+ 14 - 2
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -763,7 +763,7 @@
     </select>
 
     <select id="getOrganStudentVipData" resultType="com.ym.mec.biz.dal.dto.EduOrganStudentDataDto">
-        SELECT COUNT(stu.user_id_) studentNum,
+        SELECT COUNT(stu.user_id_) totalStudentNum,
                SUM(CASE WHEN stu.member_rank_setting_id_ IS NULL THEN 0 ELSE 1 END) vipStudentNum,
                SUM(CASE WHEN stu.experience_member_rank_setting_id_ IS NULL THEN 0 ELSE 1 END) eVipStudentNum
         FROM student stu
@@ -814,7 +814,7 @@
             tea.real_name_ teacherName,
             sub.name_	subjectName,
             stu.cloud_study_sequence_days_ cloudStudyRunningDays,
-            stu.membership_end_time_ membershipEndTime
+            DATE_FORMAT(stu.membership_end_time_, '%Y-%m-%d') membershipEndTime
         FROM student stu
              LEFT JOIN sys_user su ON stu.user_id_=su.id_
              LEFT JOIN sys_user tea ON stu.teacher_id_=tea.id_
@@ -853,4 +853,16 @@
         UPDATE student SET member_rank_setting_id_ = NULL,membership_start_time_ = NULL,membership_end_time_ = NULL
         WHERE user_id_ = #{userId}
     </update>
+
+    <update id="addStudentCloudStudySequenceDays">
+        UPDATE student SET cloud_study_sequence_days_=cloud_study_sequence_days_+1,cloud_study_use_last_day_=curdate() WHERE user_id_=#{userId} AND (cloud_study_use_last_day_ IS NULL OR cloud_study_use_last_day_&lt;curdate())
+    </update>
+
+    <update id="updateStudentsCloudStudySequenceDays">
+        UPDATE student SET cloud_study_sequence_days_=#{days} WHERE user_id_=#{userId}
+    </update>
+
+    <update id="cleanStudentCloudStudySequenceDays">
+        UPDATE student SET cloud_study_sequence_days_=0 WHERE cloud_study_use_last_day_&lt;date_sub(curdate(), interval 1 day)
+    </update>
 </mapper>

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

@@ -215,4 +215,8 @@ public interface TaskRemoteService {
 	//会员到期后清空会员信息
 	@GetMapping("task/cleanStudentMember")
     void cleanStudentMember();
+
+	/** 清理学员云教练连续使用天数 */
+	@GetMapping("task/cleanStudentCloudStudySequenceDays")
+	void cleanStudentCloudStudySequenceDays();
 }

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

@@ -267,4 +267,9 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 	public void cleanStudentMember() {
 		logger.error("学员会员到期状态更新");
 	}
+
+	@Override
+	public void cleanStudentCloudStudySequenceDays() {
+		logger.error("清理学员云教练连续使用天数失败");
+	}
 }

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

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

@@ -485,4 +485,10 @@ public class TaskController extends BaseController {
 	public void cleanStudentMember() {
 		studentServeService.cleanStudentMember();
 	}
+
+	@ApiOperation("清理学员云教练连续使用天数")
+	@GetMapping(value = "/cleanStudentCloudStudySequenceDays")
+	public void cleanStudentCloudStudySequenceDays(){
+		studentService.cleanStudentCloudStudySequenceDays();
+	}
 }