UserMapper.xml 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zhongzheng.modules.user.mapper.UserMapper">
  6. <resultMap type="com.zhongzheng.modules.user.domain.User" id="UserResult">
  7. <result property="userId" column="user_id"/>
  8. <result property="userAccount" column="user_account"/>
  9. <result property="nickname" column="nickname"/>
  10. <result property="realname" column="realname"/>
  11. <result property="sex" column="sex"/>
  12. <result property="idCard" column="id_card"/>
  13. <result property="telphone" column="telphone"/>
  14. <result property="userLevel" column="user_level"/>
  15. <result property="userBirth" column="user_birth"/>
  16. <result property="eduLevel" column="edu_level"/>
  17. <result property="schoolId" column="school_id"/>
  18. <result property="major" column="major"/>
  19. <result property="entranceTime" column="entrance_time"/>
  20. <result property="openId" column="open_id"/>
  21. <result property="idCardImg1" column="id_card_img1"/>
  22. <result property="idCardImg2" column="id_card_img2"/>
  23. <result property="country" column="country"/>
  24. <result property="province" column="province"/>
  25. <result property="city" column="city"/>
  26. <result property="integral" column="integral"/>
  27. <result property="createTime" column="create_time"/>
  28. <result property="updateTime" column="update_time"/>
  29. <result property="status" column="status"/>
  30. <result property="unionId" column="union_id"/>
  31. <result property="registerPlat" column="register_plat"/>
  32. <result property="lastLoginIp" column="last_login_ip"/>
  33. <result property="lastLoginTime" column="last_login_time"/>
  34. <result property="certified" column="certified"/>
  35. <result property="certifiedTime" column="certified_time"/>
  36. <result property="district" column="district"/>
  37. <result property="marry" column="marry"/>
  38. <result property="houseProvince" column="house_province"/>
  39. <result property="houseCity" column="house_city"/>
  40. <result property="houseDistrict" column="house_district"/>
  41. <result property="oneInchPhotos" column="one_inch_photos"/>
  42. <result property="politic" column="politic"/>
  43. <result property="email" column="email"/>
  44. <result property="avatar" column="avatar"/>
  45. <result property="inviteUserAccount" column="invite_user_account"/>
  46. <result property="courseNum" column="course_num"/>
  47. <result property="studyTime" column="study_time"/>
  48. </resultMap>
  49. <resultMap type="com.zhongzheng.modules.user.vo.RanKingUser" id="RanKingUserResult">
  50. <result property="hourse" column="sum_study"/>
  51. <result property="avatar" column="avatar"/>
  52. <result property="nickname" column="nickname"/>
  53. <result property="rank" column="pm"/>
  54. </resultMap>
  55. <resultMap type="com.zhongzheng.modules.user.vo.UserStudyRecordVo" id="StudyRecordResult">
  56. <result property="telphone" column="telphone"/>
  57. <result property="realname" column="realname"/>
  58. <result property="endTime" column="end_time"/>
  59. <result property="startTime" column="start_time"/>
  60. <result property="title" column="title"/>
  61. <result property="courseName" column="course_name"/>
  62. <result property="studyDuration" column="study_duration"/>
  63. </resultMap>
  64. <select id="selectByRank" parameterType="com.zhongzheng.modules.user.bo.RanKingUserQuery" resultMap="RanKingUserResult">
  65. SELECT sum(s.study_duration) AS sum_study,u.nickname,u.avatar FROM `user` u
  66. LEFT JOIN user_study_record s ON u.user_id=s.user_id where 1=1
  67. <if test="userId != null and userId != ''">
  68. AND u.user_id = #{userId}
  69. </if>
  70. <if test="startTime != null and startTime != ''">
  71. AND s.create_time BETWEEN #{startTime} and #{endTime}
  72. </if>
  73. GROUP BY u.user_id
  74. </select>
  75. <select id="selectByRanks" parameterType="com.zhongzheng.modules.user.bo.RanKingUserQuery" resultMap="RanKingUserResult">
  76. SELECT A.*
  77. FROM
  78. (
  79. SELECT sum(s.study_duration) AS sum_study,u.nickname,u.avatar FROM `user` u
  80. LEFT JOIN user_study_record s ON u.user_id=s.user_id where 1=1
  81. <if test="userId != null and userId != ''">
  82. AND s.create_time BETWEEN #{startTime} and #{endTime}
  83. </if>
  84. GROUP BY u.user_id ORDER BY sum_study desc LIMIT 20
  85. ) A
  86. </select>
  87. <select id="selectByRankOne" parameterType="integer" resultType="int">
  88. SELECT
  89. COUNT(s.sum_study)
  90. FROM
  91. (SELECT sum( s.study_duration ) AS sum_study FROM user_study_record s WHERE 1 = 1 GROUP BY s.user_id) s
  92. WHERE s.sum_study >= #{hourse}
  93. </select>
  94. <select id="selectByOneRank" parameterType="com.zhongzheng.modules.user.bo.RanKingUserQuery" resultMap="RanKingUserResult">
  95. SELECT u.nickname,u.avatar FROM `user` u
  96. where 1=1
  97. <if test="userId != null and userId != ''">
  98. AND u.user_id = #{userId}
  99. </if>
  100. GROUP BY u.user_id
  101. </select>
  102. <select id="selectUserNum" parameterType="integer" resultType="int">
  103. SELECT
  104. COUNT(user_id)
  105. FROM
  106. `user`
  107. WHERE 1=1 and user_level = #{grade}
  108. </select>
  109. <select id="selectList" resultMap="UserResult">
  110. SELECT
  111. u.*,
  112. IFNULL( temp.num, 0 ) course_num,
  113. IFNULL( temp1.study_time, 0 ) study_time
  114. FROM
  115. `user` u
  116. LEFT JOIN ( SELECT opu.user_id, COUNT(*) num FROM order_possess_user opu WHERE opu.type_id = 1 GROUP BY opu.user_id ) temp ON u.user_id = temp.user_id
  117. LEFT JOIN ( SELECT usr.user_id, sum( usr.study_duration ) study_time FROM user_study_record usr GROUP BY usr.user_id ) temp1 ON u.user_id = temp1.user_id
  118. WHERE
  119. 1 = 1
  120. <if test="status != null and status.size()!=0 ">
  121. AND u.status in
  122. <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
  123. #{item}
  124. </foreach>
  125. </if>
  126. <if test="nickname != null and nickname != ''" >
  127. AND u.nickname like concat('%', #{nickname}, '%')
  128. </if>
  129. <if test="telphone != null and telphone != ''" >
  130. AND u.telphone = #{telphone}
  131. </if>
  132. <if test="idCard != null and idCard != ''" >
  133. AND u.id_card = #{idCard}
  134. </if>
  135. </select>
  136. <select id="selectStudyRecordList" resultMap="StudyRecordResult">
  137. SELECT
  138. usr.study_duration,
  139. c.course_name,
  140. pv.title,
  141. usr.start_time,
  142. usr.end_time,
  143. u.realname,
  144. u.telphone
  145. FROM
  146. user_study_record usr
  147. LEFT JOIN course c ON usr.course_id = c.course_id
  148. LEFT JOIN course_section cs ON usr.section_id = cs.section_id
  149. LEFT JOIN polyv_video pv ON cs.polyv_id = pv.polyv_id
  150. LEFT JOIN `user` u ON usr.user_id = u.user_id
  151. WHERE 1=1
  152. <if test="userId != null and userId != ''" >
  153. AND usr.user_id = #{userId}
  154. </if>
  155. <if test="courseName != null and courseName != ''" >
  156. AND c.course_name like concat('%', #{courseName}, '%')
  157. </if>
  158. <if test="title != null and title != ''" >
  159. AND pv.title like concat('%', #{title}, '%')
  160. </if>
  161. <if test="startTime1 != null and startTime1 != ''" >
  162. AND usr.start_time > #{startTime1}
  163. </if>
  164. <if test="startTime2 != null and startTime2 != ''" >
  165. AND #{startTime2} > usr.start_time
  166. </if>
  167. <if test="endTime1 != null and endTime1 != ''" >
  168. AND usr.end_time > #{endTime1}
  169. </if>
  170. <if test="endTime2 != null and endTime2 != ''" >
  171. AND #{endTime2} > usr.end_time
  172. </if>
  173. ORDER BY
  174. usr.record_id DESC
  175. </select>
  176. </mapper>