Browse Source

sql优化,评测记录新增字段

zouxuan 1 year ago
parent
commit
47cdb571de

+ 1 - 0
audio-analysis/src/main/java/com/yonge/netty/server/service/AudioCompareHandler.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.biz.service.SysMusicCompareRecordService;
 import com.ym.mec.thirdparty.storage.StoragePluginContext;
 import com.ym.mec.thirdparty.storage.provider.KS3StoragePlugin;
+import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.upload.UploadUtil;
 import com.yonge.audio.analysis.AudioFloatConverter;
 import com.yonge.audio.utils.ArrayUtil;

+ 2 - 0
mec-application/src/main/java/com/ym/mec/student/controller/SysMusicCompareRecordController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Date;
 import java.util.Objects;
 
 /**
@@ -43,6 +44,7 @@ public class SysMusicCompareRecordController extends BaseController {
         Integer userId = sysUserService.getUserId();
         record.setUserId(userId);
         record.setClientId("student");
+        record.setCreateTime(new Date());
 
         log.warn(" add record info; record:{},campId :{}",record,campId);
         

+ 8 - 196
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicCompareRecord.java

@@ -6,15 +6,18 @@ import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.common.entity.BaseEntity;
 import com.ym.mec.util.date.DateUtil;
 
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
 import java.time.DayOfWeek;
 import java.time.LocalDate;
+import java.util.Date;
 
 /**
  * 对应数据库表(sys_music_compare_record):
  */
+@Data
 public class SysMusicCompareRecord extends BaseEntity {
 
 	/**  */
@@ -63,6 +66,9 @@ public class SysMusicCompareRecord extends BaseEntity {
 	/** 创建时间 */
 	private java.util.Date createTime;
 
+	/** 创建时间无时分秒*/
+	private String createDate;
+
 	private DeviceTypeEnum deviceType;
 
 	private float sourceTime = 0;
@@ -78,203 +84,9 @@ public class SysMusicCompareRecord extends BaseEntity {
 	//文件是否过期
 	private boolean expire;
 
-	public boolean getExpire() {
-		return expire;
-	}
-
-	public void setExpire(boolean expire) {
-		this.expire = expire;
-	}
-
-	public SysMusicCompareRecord() {
-	}
-
-	public SysMusicCompareRecord(FeatureType feature) {
-		this.feature = feature;
-	}
-
-	public void setId(Long id){
-		this.id = id;
-	}
-	
-	public Long getId(){
-		return this.id;
-	}
-
-	public String getBehaviorId() {
-		return behaviorId;
-	}
-
-	public void setBehaviorId(String behaviorId) {
-		this.behaviorId = behaviorId;
-	}
-
-	public void setUserId(Integer userId){
-		this.userId = userId;
-	}
-	
-	public Integer getUserId(){
-		return this.userId;
-	}
-
-	public String getClientId() {
-		return clientId;
-	}
-
-	public void setClientId(String clientId) {
-		this.clientId = clientId;
-	}
-
-	public HeardLevelEnum getHeardLevel() {
-		return heardLevel;
-	}
-
-	public void setHeardLevel(HeardLevelEnum heardLevel) {
-		this.heardLevel = heardLevel;
-	}
-
-	public void setSysMusicScoreId(Integer sysMusicScoreId){
-		this.sysMusicScoreId = sysMusicScoreId;
-	}
-	
-	public Integer getSysMusicScoreId(){
-		return this.sysMusicScoreId;
-	}
-
-	public String getSysMusicScoreName() {
-		return sysMusicScoreName;
-	}
-
-	public void setSysMusicScoreName(String sysMusicScoreName) {
-		this.sysMusicScoreName = sysMusicScoreName;
-	}
-
-	public void setScoreData(String scoreData){
-		this.scoreData = scoreData;
-	}
-	
-	public String getScoreData(){
-		return this.scoreData;
-	}
-
-	public int getNotesDataIndex() {
-		return notesDataIndex;
-	}
-
-	public void setNotesDataIndex(int notesDataIndex) {
-		this.notesDataIndex = notesDataIndex;
-	}
-
-	public BigDecimal getScore() {
-		return score;
-	}
-
-	public void setScore(BigDecimal score) {
-		this.score = score;
-	}
-
-	public BigDecimal getIntonation() {
-		return intonation;
-	}
-
-	public void setIntonation(BigDecimal intonation) {
-		this.intonation = intonation;
-	}
-
-	public BigDecimal getCadence() {
-		return cadence;
-	}
-
-	public void setCadence(BigDecimal cadence) {
-		this.cadence = cadence;
-	}
-
-	public BigDecimal getIntegrity() {
-		return integrity;
-	}
-
-	public void setIntegrity(BigDecimal integrity) {
-		this.integrity = integrity;
-	}
-
-	public String getRecordFilePath() {
-		return recordFilePath;
-	}
-
-	public void setRecordFilePath(String recordFilePath) {
-		this.recordFilePath = recordFilePath;
-	}
-
-	public String getVideoFilePath() {
-		return videoFilePath;
-	}
-
-	public void setVideoFilePath(String videoFilePath) {
-		this.videoFilePath = videoFilePath;
-	}
-
-	public DeviceTypeEnum getDeviceType() {
-		return deviceType;
-	}
-
-	public void setDeviceType(DeviceTypeEnum deviceType) {
-		this.deviceType = deviceType;
-	}
-
-	public float getSourceTime() {
-		return sourceTime;
-	}
-
-	public void setSourceTime(float sourceTime) {
-		this.sourceTime = sourceTime;
-	}
-
-	public float getPlayTime() {
-		return playTime;
-	}
-
-	public void setPlayTime(float playTime) {
-		this.playTime = playTime;
-	}
-
-	public int getSpeed() {
-		return speed;
-	}
-
-	public void setSpeed(int speed) {
-		this.speed = speed;
-	}
-
-	public String getMonday() {
-		return monday;
-	}
-
-	public void setMonday(String monday) {
-		this.monday = monday;
-	}
-
-	public FeatureType getFeature() {
-		return feature;
-	}
-
-	public void setFeature(FeatureType feature) {
-		this.feature = feature;
-	}
-
-	public void setCreateTime(java.util.Date createTime){
+	public void setCreateTime(Date createTime) {
 		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public String getPartIndex() {
-		return partIndex;
-	}
-
-	public void setPartIndex(String partIndex) {
-		this.partIndex = partIndex;
+		this.createDate = DateUtil.format(createTime, DateUtil.DEFAULT_PATTERN);
 	}
 
 	@Override

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

@@ -105,6 +105,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		sysMusicCompareRecord.setHeardLevel(soundCompareInfo.getHeardLevel());
 		sysMusicCompareRecord.setBehaviorId(soundCompareInfo.getBehaviorId());
 		sysMusicCompareRecord.setSpeed(soundCompareInfo.getSpeed());
+		sysMusicCompareRecord.setCreateTime(new Date());
 		Map<String, Object> scoreData = new HashMap<>();
 		scoreData.put("userMeasureScore", soundCompareInfo.getUserMeasureScoreMap());
 		Map<String, Object> musicalNotesPlayStats = new HashMap<>();

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1781,13 +1781,13 @@
     <!-- 查找班级未开始的课程 -->
     <select id="findCoursesByClassGroupId" resultMap="CourseSchedule">
         SELECT * FROM course_schedule
-        WHERE class_group_id_ = #{classGroupId} AND del_flag_ = 0 and cs.merge_flag_ = 0
+        WHERE class_group_id_ = #{classGroupId} AND del_flag_ = 0 and merge_flag_ = 0
         <if test="status != null">
             and status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
         union all
         select * from course_schedule
-        where class_group_id_ = #{classGroupId} AND del_flag_ = 0 AND pre_course_flag_ = 0 AND id_ = new_course_id_
+        where class_group_id_ = #{classGroupId} AND del_flag_ = 0 AND pre_course_flag_ = 0 AND merge_flag_ = 1
         <if test="status != null">
             and status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
@@ -2530,7 +2530,7 @@
             cs.organ_id_,cs.member_flag_,cs.new_course_id_,s.name_ schoole_name_,o.name_ organ_name_,
             CASE WHEN COUNT(CASE WHEN sa.id_ IS NULL OR (sa.status_ = 'LEAVE' AND sa.remark_ IS NOT NULL) THEN NULL ELSE 1 END) > 0 THEN 1 ELSE 0 END isCallNames,
             CASE WHEN COUNT(CASE WHEN ta.is_complaints_ = 1 THEN 1 ELSE NULL END) > 0 THEN '1' ELSE '0' END is_complaints_,
-            GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds
+            GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds,
         FROM
             course_schedule cs
             LEFT JOIN school s ON cs.schoole_id_=s.id_

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

@@ -1958,7 +1958,7 @@
 		LEFT JOIN sys_user su ON stu.user_id_=su.id_
 		WHERE su.del_flag_='0' AND smcr.user_id_ = stu.user_id_ and smcr.tenant_id_ = #{tenantId}
 			<if test="dayStr!=null and dayStr!=''">
-				AND DATE(smcr.create_time_)= #{dayStr}
+				AND smcr.create_date_ = #{dayStr}
 			</if>
 		GROUP BY su.organ_id_
 	</select>
@@ -1972,7 +1972,7 @@
 			COUNT(user_id_) percent_
 		FROM (
 			  SELECT su.organ_id_, su.tenant_id_, smcr.user_id_
-					  , COUNT(DISTINCT DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')) AS days
+					  , COUNT(DISTINCT smcr.create_date_) AS days
 			  FROM sys_music_compare_record smcr
 				  LEFT JOIN student stu ON smcr.user_id_ = stu.user_id_
 				  LEFT JOIN sys_user su ON stu.user_id_ = su.id_

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

@@ -713,7 +713,7 @@
         SELECT COUNT(user_id_)
         FROM (SELECT
             smcr.user_id_,
-            COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)&lt;=15 THEN DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') ELSE NULL END)) days
+            COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)&lt;=15 THEN smcr.create_date_ ELSE NULL END)) days
             FROM sys_music_compare_record smcr
             LEFT JOIN sys_user su ON smcr.user_id_=su.id_
             LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
@@ -776,7 +776,7 @@
         FROM (SELECT
                 su.organ_id_,
                   smcr.user_id_,
-                  COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)&lt;=15 THEN DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') ELSE NULL END)) days
+                  COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)&lt;=15 THEN smcr.create_date_ ELSE NULL END)) days
               FROM sys_music_compare_record smcr
                        LEFT JOIN sys_user su ON smcr.user_id_=su.id_
                        LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
@@ -810,7 +810,7 @@
             stu.cloud_study_sequence_days_ cloudStudyRunningDays,
             COUNT(DISTINCT smcr.behavior_id_) cloudStudyUseNum,
             SUM(CASE WHEN smcr.play_time_ IS NULL THEN 0 ELSE play_time_ END) cloudStudyUseTime,
-            COUNT(DISTINCT DATE(smcr.create_time_)) cloudStudyUseDays,
+            COUNT(DISTINCT smcr.create_date_) cloudStudyUseDays,
             stu.membership_end_time_ membershipEndTime,
         CASE WHEN stu.membership_end_time_ >= NOW() THEN 1 ELSE 0 END memberFlag,
             stu.current_grade_num_ currentGradeNum,stu.current_class_ currentClass,stu.count_flag_ countFlag
@@ -838,10 +838,10 @@
             LEFT JOIN sys_user su ON stu.user_id_=su.id_
             LEFT JOIN sys_music_compare_record smcr ON stu.user_id_ = smcr.user_id_
             <if test="cloudTeacherTrainStartDate != null">
-                AND date(smcr.create_time_) &gt;= #{cloudTeacherTrainStartDate}
+                AND smcr.create_date_ &gt;= #{cloudTeacherTrainStartDate}
             </if>
             <if test="cloudTeacherTrainEndDate != null">
-                AND date(smcr.create_time_) &lt;= #{cloudTeacherTrainEndDate}
+                AND smcr.create_date_ &lt;= #{cloudTeacherTrainEndDate}
             </if>
         <include refid="queryCloudStudyStudentDataCondition" />
         GROUP BY stu.user_id_
@@ -886,10 +886,10 @@
         LEFT JOIN sys_user su ON t.user_id_ = su.id_
         LEFT JOIN sys_music_compare_record smcr ON t.user_id_ = smcr.user_id_
         <if test="cloudTeacherTrainStartDate != null">
-            AND date(smcr.create_time_) &gt;= #{cloudTeacherTrainStartDate}
+            AND smcr.create_date_ &gt;= #{cloudTeacherTrainStartDate}
         </if>
         <if test="cloudTeacherTrainEndDate != null">
-            AND date(smcr.create_time_) &lt;= #{cloudTeacherTrainEndDate}
+            AND smcr.create_date_ &lt;= #{cloudTeacherTrainEndDate}
         </if>
         <include refid="queryCloudStudyStudentDataCondition" />
     </select>

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

@@ -47,17 +47,17 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysMusicCompareRecord" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,heard_level_,behavior_id_,score_data_,score_,intonation_,cadence_,integrity_,
 		                                      record_file_path_,video_file_path_,device_type_,client_id_,play_time_,speed_,monday_,
-												source_time_,feature_,create_time_,update_time_,part_index_,tenant_id_)
+												source_time_,feature_,create_time_,create_date_,update_time_,part_index_,tenant_id_)
 		VALUES(#{id},#{userId},#{sysMusicScoreId},#{heardLevel,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{behaviorId},#{scoreData},
 		       #{score},#{intonation},#{cadence},#{integrity},
 		       #{recordFilePath},#{videoFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},#{speed},#{monday},
-		       #{sourceTime},#{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, NOW(), NOW(),#{partIndex},#{tenantId})
+		       #{sourceTime},#{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{createTime}, #{createDate}, NOW(),#{partIndex},#{tenantId})
 	</insert>
 	<insert id="init">
 		insert into sys_music_compare_day_data (user_id_, day_, train_num_, train_time_, tenant_id_)
 		select smcr.user_id_,DATE_FORMAT(smcr.create_time_,'%Y-%m-%d'),COUNT(smcr.id_),SUM(smcr.play_time_),smcr.tenant_id_ from sys_music_compare_record smcr
-		where DATE_FORMAT(smcr.create_time_,'%Y-%m-%d') = #{date}
-		group by DATE_FORMAT(smcr.create_time_,'%Y-%m-%d'),smcr.user_id_;
+		where smcr.create_date_ = #{date}
+		group by smcr.create_date_,smcr.user_id_;
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -142,10 +142,10 @@
 				AND smcr.feature_ = #{featureType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			</if>
 			<if test="startTime != null and startTime != ''">
-				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d %H:%i:%S') >= CONCAT(#{startTime},' 00:00:00')
+				AND smcr.create_date_ >= #{startTime}
 			</if>
 			<if test="endTime != null and endTime != ''">
-				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d %H:%i:%S') &lt;= CONCAT(#{endTime},' 23:59:59')
+				AND smcr.create_date_ &lt;= #{endTime}
 			</if>
 		</where>
 	</sql>
@@ -186,7 +186,7 @@
 			LEFT JOIN sys_user su ON smcr.user_id_=su.id_
 			LEFT JOIN sys_music_score sms ON smcr.sys_music_score_id_ = sms.id_
 		WHERE EXISTS (SELECT user_id_ FROM student WHERE user_id_=smcr.user_id_)
-		AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
+		AND smcr.create_date_ BETWEEN #{startTime} AND #{endTime}
 		<if test="heardLevel!=null">
 			AND smcr.heard_level_ = #{heardLevel, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		</if>
@@ -204,14 +204,14 @@
 
 	<select id="getUserTrainChartData" resultType="com.ym.mec.biz.dal.dto.StudentTrainChartDto">
 		SELECT
-			DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') trainDate,
+			smcr.create_date_ trainDate,
 			COUNT(DISTINCT smcr.behavior_id_) trainNum,
 			SUM(smcr.play_time_) trainTime
 		FROM sys_music_compare_record smcr
 		WHERE smcr.user_id_=#{userId}
 		  AND EXISTS (SELECT user_id_ FROM student WHERE user_id_=smcr.user_id_)
-		  AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
-		GROUP BY DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')
+		  AND smcr.create_date_ BETWEEN #{startTime} AND #{endTime}
+		GROUP BY smcr.create_date_
 		ORDER BY trainDate;
 	</select>
 
@@ -219,7 +219,7 @@
 		<where>
 			sr.music_group_status_='NORMAL' AND stu.user_id_ IS NOT NULL and sr.tenant_id_ = #{tenantId}
 			<if test="startTime!=null and endTime!=null">
-				AND DATE_FORMAT( smcr.create_time_, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
+				AND smcr.create_date_ BETWEEN #{startTime} AND #{endTime}
 			</if>
 			<if test="musicGroupId!=null">
 				AND sr.music_group_id_ = #{musicGroupId}
@@ -482,7 +482,7 @@
 	</resultMap>
     <select id="exportCompareRecord" resultMap="ExportCompareRecordDto">
 		select o.name_ organ_name_,smcr.user_id_,su.username_,su.phone_,ROUND(sum(smcr.play_time_) / 60) play_time_,
-			   COUNT(su.id_) play_num_,COUNT(DISTINCT DATE_FORMAT(smcr.create_time_,'%Y-%m-%d')) play_days_,
+			   COUNT(su.id_) play_num_,COUNT(DISTINCT smcr.create_date_) play_days_,
 			   COUNT(CASE WHEN smcr.score_ IS NULL THEN NULL ELSE 1 END) heard_num_
 		from sys_music_compare_record smcr
 		left join sys_user su ON su.id_ = smcr.user_id_
@@ -492,10 +492,10 @@
 				AND FIND_IN_SET(su.organ_id_, #{queryInfo.organId})
 			</if>
 			<if test="queryInfo.startDate != null and queryInfo.startDate != ''">
-				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') &gt;= #{queryInfo.startDate}
+				AND smcr.create_date_ &gt;= #{queryInfo.startDate}
 			</if>
 			<if test="queryInfo.endDate != null and queryInfo.endDate != ''">
-				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') &lt;= #{queryInfo.endDate}
+				AND smcr.create_date_ &lt;= #{queryInfo.endDate}
 			</if>
 		</where>
 		group by smcr.user_id_
@@ -510,10 +510,10 @@
 				AND FIND_IN_SET(su.organ_id_, #{queryInfo.organId})
 			</if>
 			<if test="queryInfo.startDate != null and queryInfo.startDate != ''">
-				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') &gt;= #{queryInfo.startDate}
+				AND smcr.create_date_ &gt;= #{queryInfo.startDate}
 			</if>
 			<if test="queryInfo.endDate != null and queryInfo.endDate != ''">
-				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') &lt;= #{queryInfo.endDate}
+				AND smcr.create_date_ &lt;= #{queryInfo.endDate}
 			</if>
 		</where>
 	</select>