소스 검색

小程序,首页训练统计

zouxuan 1 년 전
부모
커밋
13ab710b9a

+ 4 - 203
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java

@@ -6,12 +6,14 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
+import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
  * 对应数据库表(sys_user):
  */
+@Data
 public class SysUser implements Serializable{
 
 	/**
@@ -103,137 +105,8 @@ public class SysUser implements Serializable{
 
 	private String certificateType = "IDENTITY";
 
-	public String getCertificateType() {
-		return certificateType;
-	}
-
-	public void setCertificateType(String certificateType) {
-		this.certificateType = certificateType;
-	}
-
-	public String getRealName() {
-		return realName;
-	}
-
-	public void setRealName(String realName) {
-		this.realName = realName;
-	}
-
-	public String getImToken() {
-		return imToken;
-	}
-
-	public void setImToken(String imToken) {
-		this.imToken = imToken;
-	}
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public void setUsername(String username) {
-		this.username = username;
-	}
-
-	public String getUsername() {
-		return this.username;
-	}
-
-	public void setPassword(String password) {
-		this.password = password;
-	}
-
-	public String getPassword() {
-		return this.password;
-	}
-
-	public void setSalt(String salt) {
-		this.salt = salt;
-	}
-
-	public String getSalt() {
-		return this.salt;
-	}
-
-	public void setPhone(String phone) {
-		this.phone = phone;
-	}
-
-	public String getPhone() {
-		return this.phone;
-	}
-
-	public void setAvatar(String avatar) {
-		this.avatar = avatar;
-	}
-
-	public String getAvatar() {
-		return this.avatar;
-	}
-
-	public void setCreateTime(java.util.Date createTime) {
-		this.createTime = createTime;
-	}
-
-	public java.util.Date getCreateTime() {
-		return this.createTime;
-	}
-
-	public void setUpdateTime(java.util.Date updateTime) {
-		this.updateTime = updateTime;
-	}
-
-	public java.util.Date getUpdateTime() {
-		return this.updateTime;
-	}
-
-	public Integer getLockFlag() {
-		return lockFlag;
-	}
-
-	public void setLockFlag(Integer lockFlag) {
-		this.lockFlag = lockFlag;
-	}
-
-	public Boolean getSuperAdmin() {
-		return isSuperAdmin;
-	}
-
-	public void setSuperAdmin(Boolean superAdmin) {
-		isSuperAdmin = superAdmin;
-	}
-
-	public Boolean getDelFlag() {
-		return delFlag;
-	}
-
-	public void setDelFlag(Boolean delFlag) {
-		this.delFlag = delFlag;
-	}
-
-	public void setWxOpenid(String wxOpenid) {
-		this.wxOpenid = wxOpenid;
-	}
-
-	public String getWxOpenid() {
-		return this.wxOpenid;
-	}
-
-	public void setQqOpenid(String qqOpenid) {
-		this.qqOpenid = qqOpenid;
-	}
-
-	public String getQqOpenid() {
-		return this.qqOpenid;
-	}
-
-	public String getUserType() {
-		return userType;
-	}
+	@ApiModelProperty(value = "机构编号")
+	private Long tenantId;
 
 	public void setUserType(String userType) {
 		if(StringUtils.isNotEmpty(userType) && userType.startsWith(",")){
@@ -242,78 +115,6 @@ public class SysUser implements Serializable{
 		this.userType = userType;
 	}
 
-	public Integer getGender() {
-		return gender;
-	}
-
-	public void setGender(Integer gender) {
-		this.gender = gender;
-	}
-
-	public String getNation() {
-		return nation;
-	}
-
-	public void setNation(String nation) {
-		this.nation = nation;
-	}
-
-	public Date getBirthdate() {
-		return birthdate;
-	}
-
-	public void setBirthdate(Date birthdate) {
-		this.birthdate = birthdate;
-	}
-
-	public String getEmail() {
-		return email;
-	}
-
-	public void setEmail(String email) {
-		this.email = email;
-	}
-
-	public String getIdCardNo() {
-		return idCardNo;
-	}
-
-	public void setIdCardNo(String idCardNo) {
-		this.idCardNo = idCardNo;
-	}
-
-	public String getWechatId() {
-		return wechatId;
-	}
-
-	public void setWechatId(String wechatId) {
-		this.wechatId = wechatId;
-	}
-
-	public Boolean getIsSuperAdmin() {
-		return isSuperAdmin;
-	}
-
-	public void setIsSuperAdmin(Boolean isSuperAdmin) {
-		this.isSuperAdmin = isSuperAdmin;
-	}
-
-	public List<Long> getRoles() {
-		return roles;
-	}
-
-	public void setRoles(List<Long> roles) {
-		this.roles = roles;
-	}
-
-	public Date getLastUsernameTime() {
-		return lastUsernameTime;
-	}
-
-	public void setLastUsernameTime(Date lastUsernameTime) {
-		this.lastUsernameTime = lastUsernameTime;
-	}
-
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 4 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/BaseEntity.java

@@ -1,7 +1,11 @@
 package com.yonge.cooleshow.common.entity;
 
+import lombok.Data;
+
 import java.io.Serializable;
 
+@Data
 public class BaseEntity implements Serializable {
 
+    private Long tenantId = -1l;
 }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/SysMusicCompareRecordDao.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.dao;
 import java.util.List;
 import java.util.Map;
 
+import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
 import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import org.apache.ibatis.annotations.Param;
@@ -79,4 +80,13 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
 	 * @return List<StatGroupWrapper>
 	 */
 	List<StatGroupWrapper> selectMusicCompareRecordStatInfo(@Param("record") MusicCompareWrapper.RecordQueryInfo queryInfo);
+
+	//小程序学员训练统计列表
+    int countWeChatStudentTrainData(Map<String, Object> params);
+
+	//小程序学员训练统计列表
+	List<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto> queryWeChatStudentTrainData(Map<String, Object> params);
+
+	//小程序学员训练统计
+	SysMusicCompareRecordQueryInfo.WechatCompareRecordSumDto wechatCompareRecordSum(@Param("queryInfo") SysMusicCompareRecordQueryInfo.WechatCompareRecordQueryInfo queryInfo);
 }

+ 3 - 209
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/SysMusicCompareRecord.java

@@ -5,6 +5,7 @@ import java.time.DayOfWeek;
 import java.time.LocalDate;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.yonge.cooleshow.biz.dal.enums.DeviceTypeEnum;
@@ -16,6 +17,7 @@ import com.yonge.toolset.utils.date.DateUtil;
 /**
  * 对应数据库表(sys_music_compare_record):
  */
+@Data
 public class SysMusicCompareRecord extends BaseEntity {
 
 	/**  */
@@ -86,219 +88,11 @@ public class SysMusicCompareRecord extends BaseEntity {
 	@ApiModelProperty("活动项目id")
 	private Long evaluationId;
 
-	public Long getEvaluationId() {
-		return evaluationId;
-	}
-
-	public void setEvaluationId(Long evaluationId) {
-		this.evaluationId = evaluationId;
-	}
-
-	public String getCustomConfiguration() {
-		return customConfiguration;
-	}
-
-	public void setCustomConfiguration(String customConfiguration) {
-		this.customConfiguration = customConfiguration;
-	}
-
-	public Integer getExpire() {
-		return expire;
-	}
-
-	public void setExpire(Integer 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(Long userId){
-		this.userId = userId;
-	}
-	
-	public Long 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 Long getMusicSheetId() {
-		return musicSheetId;
-	}
-
-	public void setMusicSheetId(Long musicSheetId) {
-		this.musicSheetId = musicSheetId;
-	}
-
-	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){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public String getPartIndex() {
-		return partIndex;
-	}
-
-	public void setPartIndex(String partIndex) {
-		this.partIndex = partIndex;
+	public SysMusicCompareRecord() {
 	}
 
 	@Override

+ 65 - 90
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/SysMusicCompareRecordQueryInfo.java

@@ -1,135 +1,110 @@
 package com.yonge.cooleshow.biz.dal.queryInfo;
 
-import io.swagger.annotations.ApiModelProperty;
-
 import com.yonge.cooleshow.biz.dal.enums.FeatureType;
 import com.yonge.cooleshow.biz.dal.enums.HeardLevelEnum;
 import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
-/**
- * @Author Joburgess
- * @Date 2021/8/11 0011
- */
-public class SysMusicCompareRecordQueryInfo extends QueryInfo {
+import java.util.List;
 
-    private Long userId;
+public class SysMusicCompareRecordQueryInfo {
 
-    private Long teacherId;
+    @Data
+    public static class TeacherCompareRecordQueryInfo extends QueryInfo{
+        private Long userId;
 
-    private String startTime;
+        private Long teacherId;
 
-    private String endTime;
+        private String startTime;
 
-    private String musicGroupId;
+        private String endTime;
 
-    private int orderType;
+        private String musicGroupId;
 
-    @ApiModelProperty("排序字段:TRAINDAYS(训练天数);TRAINTIME(训练时长);TRAINNUM(训练次数)")
-    private String sortField = "TRAINDAYS";
+        private int orderType;
 
-    private FeatureType featureType;
+        @ApiModelProperty("排序字段:TRAINDAYS(训练天数);TRAINTIME(训练时长);TRAINNUM(训练次数)")
+        private String sortField = "TRAINDAYS";
 
-    private HeardLevelEnum heardLevel;
+        private FeatureType featureType;
 
-    private Boolean visitFlag;
+        private HeardLevelEnum heardLevel;
 
-    private Integer organId;
+        private Boolean visitFlag;
 
-    private String clientId;
+        private Integer organId;
 
-    public String getClientId() {
-        return clientId;
+        private String clientId;
     }
 
-    public void setClientId(String clientId) {
-        this.clientId = clientId;
-    }
+    @Data
+    public static class WechatCompareRecordQueryInfo extends QueryInfo{
+        @ApiModelProperty(name = "训练开始时间")
+        private String startTime;
 
-    public Integer getOrganId() {
-        return organId;
-    }
+        @ApiModelProperty(name = "训练结束时间")
+        private String endTime;
 
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
+        @ApiModelProperty(name = "机构编号")
+        private Long tenantId;
 
-    public Boolean getVisitFlag() {
-        return visitFlag;
-    }
+        @ApiModelProperty(name = "排序字段")
+        private String sortField = "trainTimes";
 
-    public void setVisitFlag(Boolean visitFlag) {
-        this.visitFlag = visitFlag;
+        @ApiModelProperty(name = "排序方式")
+        private String sortType = "DESC";
     }
 
-    public FeatureType getFeatureType() {
-        return featureType;
-    }
+    @Data
+    public static class WechatCompareRecordPageDto{
+        @ApiModelProperty(name = "用户编号")
+        private Long userId;
 
-    public void setFeatureType(FeatureType featureType) {
-        this.featureType = featureType;
-    }
+        @ApiModelProperty(name = "头像")
+        private String avatar;
 
-    public Long getTeacherId() {
-        return teacherId;
-    }
+        @ApiModelProperty(name = "姓名")
+        private String username;
 
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
+        @ApiModelProperty(name = "声部")
+        private String subjectName;
 
-    public int getOrderType() {
-        return orderType;
-    }
+        @ApiModelProperty(name = "训练总时长")
+        private Integer trainTimes;
 
-    public void setOrderType(int orderType) {
-        this.orderType = orderType;
-    }
+        @ApiModelProperty(name = "训练天数")
+        private Integer trainDays;
 
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public String getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(String startTime) {
-        this.startTime = startTime;
-    }
+        @ApiModelProperty(name = "平均训练时长")
+        private Integer avgTrainTimes;
 
-    public String getEndTime() {
-        return endTime;
     }
 
-    public void setEndTime(String endTime) {
-        this.endTime = endTime;
-    }
+    @Data
+    public static class WechatCompareRecordDto{
 
-    public String getMusicGroupId() {
-        return musicGroupId;
-    }
+        @ApiModelProperty(name = "列表数据")
+        private List<WechatCompareRecordPageDto> page;
 
-    public void setMusicGroupId(String musicGroupId) {
-        this.musicGroupId = musicGroupId;
+        @ApiModelProperty(name = "汇总")
+        private WechatCompareRecordSumDto sumDto;
     }
+    @Data
+    public static class WechatCompareRecordSumDto{
+        @ApiModelProperty(name = "总人数")
+        private Integer studentNum;
 
-    public String getSortField() {
-        return sortField;
-    }
+        @ApiModelProperty(name = "训练天数")
+        private Integer trainDays;
 
-    public void setSortField(String sortField) {
-        this.sortField = sortField;
-    }
+        @ApiModelProperty(name = "训练时长")
+        private Integer trainTimes;
 
-    public HeardLevelEnum getHeardLevel() {
-        return heardLevel;
-    }
+        @ApiModelProperty(name = "平均训练天数")
+        private Integer avgTrainDays;
 
-    public void setHeardLevel(HeardLevelEnum heardLevel) {
-        this.heardLevel = heardLevel;
+        @ApiModelProperty(name = "平均训练时长")
+        private Integer avgTrainTimes;
     }
 }

+ 8 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysMusicCompareRecordService.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service;
 
 import java.util.Map;
 
+import com.yonge.cooleshow.biz.dal.dao.SysMusicCompareRecordDao;
 import com.yonge.cooleshow.biz.dal.entity.SysMusicCompareRecord;
 import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
 import com.yonge.toolset.base.page.PageInfo;
@@ -9,6 +10,8 @@ import com.yonge.toolset.mybatis.service.BaseService;
 
 public interface SysMusicCompareRecordService extends BaseService<Long, SysMusicCompareRecord> {
 
+    SysMusicCompareRecordDao getDao();
+
     /**
      * @describe 保存用户评测记录
      * @param sysMusicCompareRecord
@@ -32,7 +35,10 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
      * @param queryInfo:
      * @return java.util.Map<java.lang.String,java.lang.Object>
      */
-    Map<String, Object> studentTrainData(SysMusicCompareRecordQueryInfo queryInfo);
+    Map<String, Object> studentTrainData(SysMusicCompareRecordQueryInfo.TeacherCompareRecordQueryInfo queryInfo);
+
+    //微信小程序学员训练数据统计
+    PageInfo<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto> weChatStudentTrainData(SysMusicCompareRecordQueryInfo.WechatCompareRecordQueryInfo queryInfo);
 
     /**
      * @describe 学员训练数据
@@ -41,6 +47,6 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
      * @param queryInfo:
      * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.entity.SysMusicCompareRecord>
      */
-    PageInfo<SysMusicCompareRecord> queryStudentTrainData(SysMusicCompareRecordQueryInfo queryInfo);
+    PageInfo<SysMusicCompareRecord> queryStudentTrainData(SysMusicCompareRecordQueryInfo.TeacherCompareRecordQueryInfo queryInfo);
 
 }

+ 26 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -241,6 +241,11 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
+	public SysMusicCompareRecordDao getDao() {
+		return sysMusicCompareRecordDao;
+	}
+
+	@Override
 	@Transactional
 	public void saveMusicCompareData(SysMusicCompareRecord sysMusicCompareRecord) {
 
@@ -304,7 +309,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
-	public Map<String, Object> studentTrainData(SysMusicCompareRecordQueryInfo queryInfo) {
+	public Map<String, Object> studentTrainData(SysMusicCompareRecordQueryInfo.TeacherCompareRecordQueryInfo queryInfo) {
 		StudentTrainOverviewDto userTrainOverView = new StudentTrainOverviewDto();
 
 		List<StudentTrainChartDto> userTrainChartData = new ArrayList<>();
@@ -368,7 +373,26 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
-	public PageInfo<SysMusicCompareRecord> queryStudentTrainData(SysMusicCompareRecordQueryInfo queryInfo) {
+	public PageInfo<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto> weChatStudentTrainData(SysMusicCompareRecordQueryInfo.WechatCompareRecordQueryInfo queryInfo) {
+		PageInfo<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+		List<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto> dataList = null;
+		int count = sysMusicCompareRecordDao.countWeChatStudentTrainData(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = sysMusicCompareRecordDao.queryWeChatStudentTrainData(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	public PageInfo<SysMusicCompareRecord> queryStudentTrainData(SysMusicCompareRecordQueryInfo.TeacherCompareRecordQueryInfo queryInfo) {
 		PageInfo<SysMusicCompareRecord> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);

+ 56 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -31,6 +31,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="part_index_" property="partIndex" />
 		<result column="custom_configuration_" property="customConfiguration" />
+		<result column="tenant_id_" property="tenantId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -342,6 +343,61 @@
 		</choose>
 
 	</select>
+    <select id="queryWeChatStudentTrainData"
+            resultType="com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo$WechatCompareRecordPageDto">
+		select su.id_ userId,su.avatar_ avatar,su.username_ username,GROUP_CONCAT(DISTINCT sb.name_) subjectName,
+			   SUM(mprs.playTime) trainTimes,COUNT(DISTINCT mprs.create_time_) trainDays,
+			   SUM(mprs.playTime) / COUNT(DISTINCT mprs.create_time_) avgTrainTimes
+		from (select st.user_id_,DATE_FORMAT(smcr.create_time_,'%Y-%m-%d') create_time_,SUM(smcr.play_time_) playTime,st.subject_id_
+			  from student st
+					   LEFT JOIN sys_music_compare_record smcr ON smcr.user_id_ = st.user_id_
+			  where st.membership_end_time_ >= NOW()
+			  <if test="startTime != null and startTime != ''">
+				  AND smcr.create_time_ BETWEEN #{startTime} AND #{endTime}
+			  </if>
+			<if test="queryInfo.tenantId != null">
+				AND smcr.tenant_id_ = #{queryInfo.tenantId}
+			</if>
+			  group by st.user_id_,DATE_FORMAT(create_time_,'%Y-%m-%d')) mprs
+				 left join sys_user su ON mprs.user_id_ = su.id_
+				 left join subject sb ON FIND_IN_SET(sb.id_,mprs.subject_id_)
+		<where>
+			<if test="search != null and search != ''">
+				AND su.username_ LIKE CONCAT('%',#{keyword},'%')
+			</if>
+		</where>
+		group by mprs.user_id_
+		ORDER BY ${sortField} ${sortType}
+	</select>
+	<select id="countWeChatStudentTrainData" resultType="java.lang.Integer">
+		select COUNT(DISTINCT st.user_id_)
+		from student st
+		left join sys_user su ON st.user_id_ = su.id_
+		LEFT JOIN sys_music_compare_record smcr ON smcr.user_id_ = st.user_id_
+		where st.membership_end_time_ >= NOW()
+		<if test="queryInfo.tenantId != null">
+			AND smcr.tenant_id_ = #{queryInfo.tenantId}
+		</if>
+		<if test="startTime != null and startTime != ''">
+			AND smcr.create_time_ BETWEEN #{startTime} AND #{endTime}
+		</if>
+		<if test="search != null and search != ''">
+			AND su.username_ LIKE CONCAT('%',#{keyword},'%')
+		</if>
+	</select>
+	<select id="wechatCompareRecordSum"
+			resultType="com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo$WechatCompareRecordSumDto">
+		select COUNT(st.user_id_),COUNT(DISTINCT DATE_FORMAT(smcr.create_time_,'%Y-%m-%d')) trainNum,SUM(smcr.play_time_) playTime
+		from student st
+		LEFT JOIN sys_music_compare_record smcr ON smcr.user_id_ = st.user_id_
+		where st.membership_end_time_ >= NOW()
+		<if test="queryInfo.startTime != null and queryInfo.startTime != ''">
+			AND smcr.create_time_ BETWEEN #{queryInfo.startTime} AND #{queryInfo.endTime}
+		</if>
+		<if test="queryInfo.tenantId != null">
+			AND smcr.tenant_id_ = #{queryInfo.tenantId}
+		</if>
+	</select>
 	<!--曲目练习统计-->
 
 </mapper>

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/SysMusicCompareRecordController.java

@@ -66,7 +66,7 @@ public class SysMusicCompareRecordController extends BaseController {
 
     @ApiOperation("学员训练数据统计")
     @GetMapping("studentTrainData")
-    public HttpResponseResult studentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+    public HttpResponseResult studentTrainData(SysMusicCompareRecordQueryInfo.TeacherCompareRecordQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("获取用户信息失败");

+ 1 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/SysMusicCompareRecordController.java

@@ -63,7 +63,7 @@ public class SysMusicCompareRecordController extends BaseController {
 
     @ApiOperation("老师训练数据统计")
     @GetMapping("studentTrainData")
-    public HttpResponseResult studentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+    public HttpResponseResult studentTrainData(SysMusicCompareRecordQueryInfo.TeacherCompareRecordQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("获取用户信息失败");

+ 55 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/SysMusicCompareRecordController.java

@@ -0,0 +1,55 @@
+package com.yonge.cooleshow.tenant.controller;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo;
+import com.yonge.cooleshow.biz.dal.service.SysMusicCompareRecordService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "小酷Ai记录")
+@RequestMapping("sysMusicRecord")
+@RestController
+public class SysMusicCompareRecordController extends BaseController {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private SysMusicCompareRecordService sysMusicCompareRecordService;
+
+
+    @ApiOperation("学员训练数据统计列表")
+    @PostMapping("queryStudentTrainData")
+    public HttpResponseResult<PageInfo<SysMusicCompareRecordQueryInfo.WechatCompareRecordPageDto>> queryStudentTrainData
+            (@RequestBody SysMusicCompareRecordQueryInfo.WechatCompareRecordQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("获取用户信息失败");
+        }
+        queryInfo.setTenantId(sysUser.getTenantId());
+        return succeed(sysMusicCompareRecordService.weChatStudentTrainData(queryInfo));
+    }
+
+
+    @ApiOperation("学员训练数据统计列表")
+    @PostMapping("studentTrainData")
+    public HttpResponseResult<SysMusicCompareRecordQueryInfo.WechatCompareRecordDto> studentTrainData
+            (@RequestBody SysMusicCompareRecordQueryInfo.WechatCompareRecordQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("获取用户信息失败");
+        }
+        queryInfo.setTenantId(sysUser.getTenantId());
+        queryInfo.setRows(10);
+        SysMusicCompareRecordQueryInfo.WechatCompareRecordDto result = new SysMusicCompareRecordQueryInfo.WechatCompareRecordDto();
+        result.setSumDto(sysMusicCompareRecordService.getDao().wechatCompareRecordSum(queryInfo));
+        result.setPage(sysMusicCompareRecordService.weChatStudentTrainData(queryInfo).getRows());
+        return succeed(result);
+    }
+
+}