LifeUserDynamicsMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="shop.alien.mapper.LifeUserDynamicsMapper">
  4. <select id="getDynamicsList" resultType="shop.alien.entity.store.vo.LifeUserDynamicsVo">
  5. select dyna1.*, COUNT(dyna1.id) AS fansCount from (
  6. select dyna.*,COUNT(sc.id) AS commentCount, COUNT(lm.id) AS transferNum from (
  7. with dynamice as(
  8. select
  9. CASE
  10. WHEN image_path REGEXP '.mp4|.avi|.flv|.mkv|.rmvb|.wmv|.3gp|.mov' THEN 2
  11. WHEN image_path REGEXP '.jpg|.jpeg|.png|.bmp|.webp|.gif|.svg' THEN 1
  12. ELSE 0
  13. END AS dynamicsType,id, title, phone_id phoneId, context, image_path, address,address_name,address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) userType, substring_index(phone_id, '_', -1) phone, draft , address_province, top_status, top_time, enable_status
  14. from life_user_dynamics
  15. where delete_flag = 0 and draft = 0 order by created_time desc
  16. )
  17. select dynamice.*, user.nick_name userName, user.head_img userImage, info.id storeUserId, user.id storeOrUserId, 0 isExpert, info.store_name
  18. from dynamice
  19. left join store_user user on dynamice.phone = user.phone and user.delete_flag = 0
  20. left join store_info info on info.id = user.store_id and info.delete_flag = 0
  21. left join store_img img on img.store_id = user.store_id and img.img_type = '10' and img.delete_flag = 0
  22. where dynamice.userType = 'store'
  23. union
  24. select dynamice.*, user.user_name userName, user.user_image userImage, user.id storeUserId, user.id storeOrUserId, IF(lue.expert_code IS NOT NULL , 1, 0) AS isExpert, '' store_name
  25. from dynamice
  26. join life_user user on dynamice.phone = user.user_phone and user.delete_flag = 0
  27. left join life_user_expert lue on lue.user_id = user.id and lue.delete_flag = 0
  28. where dynamice.userType = 'user') dyna
  29. left join life_comment lc on lc.dongtai_shequ_id = dyna.id
  30. left join store_comment sc on sc.business_id = dyna.id and sc.business_type = 2 and sc.delete_flag = 0
  31. left join life_message lm on lm.business_id = dyna.id
  32. GROUP BY dyna.id order by dyna.created_time desc) dyna1
  33. left join life_fans lf1 on lf1.followed_id = dyna1.phoneId
  34. where 1=1
  35. <if test="nickName != null and nickName != ''">
  36. AND dyna1.userName LIKE CONCAT('%', #{nickName}, '%')
  37. </if>
  38. <if test="userType != null and userType != ''">
  39. AND dyna1.userType = #{userType}
  40. </if>
  41. <if test="dynamicsType != null and dynamicsType != ''">
  42. AND dyna1.dynamicsType = #{dynamicsType}
  43. </if>
  44. <if test="releaseStartTime != null and releaseStartTime != ''">
  45. AND dyna1.created_time >= #{releaseStartTime}
  46. </if>
  47. <if test="storeName != null and storeName != ''">
  48. AND dyna1.store_name LIKE CONCAT('%', #{storeName}, '%')
  49. </if>
  50. <if test="releaseEndTime != null and releaseEndTime != ''">
  51. AND dyna1.created_time &lt;= #{releaseEndTime}
  52. </if>
  53. GROUP by dyna1.id order by dyna1.top_status desc, dyna1.top_time desc
  54. </select>
  55. <select id="getDynamicsDetail" resultType="shop.alien.entity.store.vo.LifeUserDynamicsVo">
  56. select dyna1.*, COUNT(dyna1.id) AS fansCount from (
  57. select dyna.*,COUNT(sc.id) AS commentCount, COUNT(lm.id) AS transferNum from (
  58. with dynamice as(
  59. select
  60. CASE
  61. WHEN image_path REGEXP '.mp4|.avi|.flv|.mkv|.rmvb|.wmv|.3gp|.mov' THEN 2
  62. WHEN image_path REGEXP '.jpg|.jpeg|.png|.bmp|.webp|.gif|.svg' THEN 1
  63. ELSE 0
  64. END AS dynamicsType, id, title, phone_id phoneId, context, image_path, address,address_name,address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) userType, substring_index(phone_id, '_', -1) phone, draft , address_province, top_status, top_time, enable_status
  65. from life_user_dynamics
  66. where id = #{id} and delete_flag = 0 and draft = 0 order by created_time desc
  67. )
  68. select dynamice.*, user.nick_name userName, user.head_img userImage, info.id storeUserId, user.id storeOrUserId, 0 isExpert
  69. from dynamice
  70. left join store_user user on dynamice.phone = user.phone and user.delete_flag = 0
  71. left join store_info info on info.id = user.store_id and info.delete_flag = 0
  72. left join store_img img on img.store_id = user.store_id and img.img_type = '10' and img.delete_flag = 0
  73. where dynamice.userType = 'store'
  74. union
  75. select dynamice.*, user.user_name userName, user.user_image userImage, user.id storeUserId, user.id storeOrUserId, IF(lue.expert_code IS NOT NULL , 1, 0) AS isExpert
  76. from dynamice
  77. join life_user user on dynamice.phone = user.user_phone and user.delete_flag = 0
  78. left join life_user_expert lue on lue.user_id = user.id and lue.delete_flag = 0
  79. where dynamice.userType = 'user') dyna
  80. left join life_comment lc on lc.dongtai_shequ_id = dyna.id
  81. left join store_comment sc on sc.business_id = dyna.id and sc.business_type = 2 and sc.delete_flag = 0
  82. left join life_message lm on lm.business_id = dyna.id
  83. GROUP BY dyna.id order by dyna.created_time desc) dyna1
  84. left join life_fans lf1 on lf1.followed_id = dyna1.phoneId
  85. GROUP by dyna1.id order by dyna1.top_status desc, dyna1.top_time desc
  86. </select>
  87. <select id="getStoreDynamicslist" resultType="shop.alien.entity.store.vo.LifeUserDynamicsVo">
  88. select
  89. ANY_VALUE(dyna1.dynamicsType) AS dynamicsType,
  90. ANY_VALUE(dyna1.id) AS id,
  91. ANY_VALUE(dyna1.title) AS title,
  92. ANY_VALUE(dyna1.phoneId) AS phoneId,
  93. ANY_VALUE(dyna1.context) AS context,
  94. ANY_VALUE(dyna1.image_path) AS imagePath,
  95. ANY_VALUE(dyna1.address) AS address,
  96. ANY_VALUE(dyna1.address_name) AS addressName,
  97. ANY_VALUE(dyna1.address_context) AS addressContext,
  98. ANY_VALUE(dyna1.liulan_count) AS liulanCount,
  99. ANY_VALUE(dyna1.dianzan_count) AS dianzanCount,
  100. ANY_VALUE(dyna1.type) AS type,
  101. ANY_VALUE(dyna1.created_time) AS createdTime,
  102. ANY_VALUE(dyna1.userType) AS userType,
  103. ANY_VALUE(dyna1.phone) AS phone,
  104. ANY_VALUE(dyna1.draft) AS draft,
  105. ANY_VALUE(dyna1.address_province) AS addressProvince,
  106. ANY_VALUE(dyna1.top_status) AS topStatus,
  107. ANY_VALUE(dyna1.top_time) AS topTime,
  108. ANY_VALUE(dyna1.enable_status) AS enableStatus,
  109. ANY_VALUE(dyna1.business_id) AS businessId,
  110. ANY_VALUE(dyna1.userName) AS userName,
  111. ANY_VALUE(dyna1.userImage) AS userImage,
  112. ANY_VALUE(dyna1.storeUserId) AS storeUserId,
  113. ANY_VALUE(dyna1.storeName) AS storeName,
  114. ANY_VALUE(dyna1.storeOrUserId) AS storeOrUserId,
  115. ANY_VALUE(dyna1.isExpert) AS isExpert,
  116. ANY_VALUE(dyna1.isLike) AS isLike,
  117. ANY_VALUE(dyna1.commentCount) AS commentCount,
  118. ANY_VALUE(dyna1.transferNum) AS transferCount,
  119. COUNT(dyna1.id) AS fansCount
  120. from
  121. (
  122. select
  123. ANY_VALUE(dyna.dynamicsType) AS dynamicsType,
  124. dyna.id,
  125. ANY_VALUE(dyna.title) AS title,
  126. ANY_VALUE(dyna.phoneId) AS phoneId,
  127. ANY_VALUE(dyna.context) AS context,
  128. ANY_VALUE(dyna.image_path) AS image_path,
  129. ANY_VALUE(dyna.address) AS address,
  130. ANY_VALUE(dyna.address_name) AS address_name,
  131. ANY_VALUE(dyna.address_context) AS address_context,
  132. ANY_VALUE(dyna.liulan_count) AS liulan_count,
  133. ANY_VALUE(dyna.dianzan_count) AS dianzan_count,
  134. ANY_VALUE(dyna.type) AS type,
  135. ANY_VALUE(dyna.created_time) AS created_time,
  136. ANY_VALUE(dyna.userType) AS userType,
  137. ANY_VALUE(dyna.phone) AS phone,
  138. ANY_VALUE(dyna.draft) AS draft,
  139. ANY_VALUE(dyna.address_province) AS address_province,
  140. ANY_VALUE(dyna.top_status) AS top_status,
  141. ANY_VALUE(dyna.top_time) AS top_time,
  142. ANY_VALUE(dyna.enable_status) AS enable_status,
  143. ANY_VALUE(dyna.business_id) AS business_id,
  144. ANY_VALUE(dyna.userName) AS userName,
  145. ANY_VALUE(dyna.userImage) AS userImage,
  146. ANY_VALUE(dyna.storeUserId) AS storeUserId,
  147. ANY_VALUE(dyna.storeName) AS storeName,
  148. ANY_VALUE(dyna.storeOrUserId) AS storeOrUserId,
  149. ANY_VALUE(dyna.isExpert) AS isExpert,
  150. ANY_VALUE(dyna.isLike) AS isLike,
  151. COUNT(sc.id) AS commentCount,
  152. COUNT(lm.id) AS transferNum
  153. from
  154. (
  155. with dynamice as(
  156. select
  157. CASE
  158. WHEN image_path REGEXP '.mp4|.avi|.flv|.mkv|.rmvb|.wmv|.3gp|.mov' THEN 2
  159. WHEN image_path REGEXP '.jpg|.jpeg|.png|.bmp|.webp|.gif|.svg' THEN 1
  160. ELSE 0
  161. END AS dynamicsType, id, title, phone_id phoneId, context, image_path, address, address_name, address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) userType, substring_index(phone_id, '_', -1) phone, draft , address_province, top_status, top_time, enable_status,
  162. business_id
  163. from life_user_dynamics
  164. where phone_id = #{phoneId} and delete_flag = 0 and draft = 0 order by created_time desc
  165. )
  166. select
  167. dynamice.*,
  168. user.nick_name userName,
  169. user.head_img userImage,
  170. info.id storeUserId,
  171. info.store_name storeName,
  172. user.id storeOrUserId,
  173. 0 isExpert,
  174. IF(llr.huifu_id IS NOT NULL or llr1.huifu_id IS NOT NULL, 1, 0) AS isLike
  175. from
  176. dynamice
  177. left join store_user user on
  178. dynamice.phone = user.phone
  179. and user.delete_flag = 0
  180. left join store_info info on
  181. info.id = user.store_id
  182. and info.delete_flag = 0
  183. left join store_img img on
  184. img.store_id = user.store_id
  185. and img.img_type = '10'
  186. and img.delete_flag = 0
  187. left join life_like_record llr on
  188. llr.huifu_id = dynamice.id
  189. and llr.delete_flag = 0
  190. and llr.dianzan_id = (
  191. select
  192. CONCAT('user_', lu1.user_phone)
  193. from
  194. life_user lu1
  195. where
  196. lu1.id = #{userId})
  197. left join life_like_record llr1 on
  198. llr1.huifu_id = dynamice.id
  199. and llr1.delete_flag = 0
  200. and llr1.dianzan_id = (
  201. select
  202. CONCAT('store_', lu2.phone)
  203. from
  204. store_user lu2
  205. where
  206. lu2.id = #{userId})
  207. where
  208. dynamice.userType = 'store') dyna
  209. left join life_comment lc on
  210. lc.dongtai_shequ_id = dyna.id
  211. left join store_comment sc on
  212. sc.business_id = dyna.id
  213. and sc.business_type = 2
  214. and sc.delete_flag = 0
  215. left join life_message lm on
  216. lm.business_id = dyna.id
  217. GROUP BY
  218. dyna.id
  219. order by
  220. dyna.created_time desc) dyna1
  221. left join life_fans lf1 on
  222. lf1.followed_id = dyna1.phoneId
  223. GROUP by
  224. dyna1.id
  225. order by
  226. dyna1.top_status desc,
  227. dyna1.top_time desc
  228. </select>
  229. </mapper>