|
@@ -380,28 +380,79 @@
|
|
|
AND st.tenant_id_ = #{tenantId}
|
|
|
</if>
|
|
|
group by st.user_id_
|
|
|
+ <trim prefix="HAVING" suffixOverrides="AND" >
|
|
|
+ <if test="minTrainTimes != null">
|
|
|
+ trainTimes >= #{minTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ <if test="maxTrainTimes != null">
|
|
|
+ trainTimes <= #{maxTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ <if test="minTrainDays != null">
|
|
|
+ trainDays >= #{minTrainDays} AND
|
|
|
+ </if>
|
|
|
+ <if test="maxTrainDays != null">
|
|
|
+ trainDays <= #{maxTrainDays} AND
|
|
|
+ </if>
|
|
|
+ <if test="minAvgTrainTimes != null">
|
|
|
+ avgTrainTimes >= #{minAvgTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ <if test="maxAvgTrainTimes != null">
|
|
|
+ avgTrainTimes <= #{maxAvgTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ </trim>
|
|
|
ORDER BY ${sortField} ${sortType}
|
|
|
<include refid="global.limit"/>
|
|
|
</select>
|
|
|
<select id="countWeChatStudentTrainData" resultType="java.lang.Integer">
|
|
|
- select COUNT(DISTINCT st.user_id_)
|
|
|
+ select COUNT(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_
|
|
|
+ left join
|
|
|
+ (select smcr.user_id_,
|
|
|
+ DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') create_time_,
|
|
|
+ SUM(smcr.play_time_) playTime
|
|
|
+ from sys_music_compare_record smcr
|
|
|
<where>
|
|
|
- <if test="clientId != null and clientId!= ''">
|
|
|
- AND smcr.client_id_ = #{clientId}
|
|
|
+ <if test="startTime != null and startTime != ''">
|
|
|
+ AND smcr.create_time_ BETWEEN #{startTime} AND #{endTime}
|
|
|
</if>
|
|
|
<if test="tenantId != null">
|
|
|
AND smcr.tenant_id_ = #{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 test="clientId != null and clientId!= ''">
|
|
|
+ AND smcr.client_id_ = #{clientId}
|
|
|
</if>
|
|
|
</where>
|
|
|
+ group by smcr.user_id_, DATE_FORMAT(create_time_, '%Y-%m-%d')) mprs ON mprs.user_id_ = st.user_id_
|
|
|
+ left join sys_user su ON st.user_id_ = su.id_
|
|
|
+ left join subject sb ON sb.id_ = st.subject_id_
|
|
|
+ where mprs.user_id_ = st.user_id_
|
|
|
+ <if test="search != null and search != ''">
|
|
|
+ AND su.username_ LIKE CONCAT('%',#{keyword},'%')
|
|
|
+ </if>
|
|
|
+ <if test="tenantId != null">
|
|
|
+ AND st.tenant_id_ = #{tenantId}
|
|
|
+ </if>
|
|
|
+ group by st.user_id_
|
|
|
+ <trim prefix="HAVING" suffixOverrides="AND" >
|
|
|
+ <if test="minTrainTimes != null">
|
|
|
+ trainTimes >= #{minTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ <if test="maxTrainTimes != null">
|
|
|
+ trainTimes <= #{maxTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ <if test="minTrainDays != null">
|
|
|
+ trainDays >= #{minTrainDays} AND
|
|
|
+ </if>
|
|
|
+ <if test="maxTrainDays != null">
|
|
|
+ trainDays <= #{maxTrainDays} AND
|
|
|
+ </if>
|
|
|
+ <if test="minAvgTrainTimes != null">
|
|
|
+ avgTrainTimes >= #{minAvgTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ <if test="maxAvgTrainTimes != null">
|
|
|
+ avgTrainTimes <= #{maxAvgTrainTimes} AND
|
|
|
+ </if>
|
|
|
+ </trim>
|
|
|
</select>
|
|
|
<select id="wechatCompareRecordSum"
|
|
|
resultType="com.yonge.cooleshow.biz.dal.queryInfo.SysMusicCompareRecordQueryInfo$WechatCompareRecordSumDto">
|