TgUserMapper.xml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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="top.continew.admin.business.mapper.TgUserMapper">
  4. <!-- 通用查询映射结果 -->
  5. <!-- 通用查询映射结果 -->
  6. <resultMap id="BaseResultMap" type="top.continew.admin.business.model.entity.TgUser">
  7. <id column="id" property="id"/>
  8. <result column="tg_id" property="tgId"/>
  9. <result column="tg_account" property="tgAccount"/>
  10. <result column="first_name" property="firstName"/>
  11. <result column="last_name" property="lastName"/>
  12. <result column="nickname" property="nickname"/>
  13. <result column="real_name" property="realName"/>
  14. <result column="avatar" property="avatar"/>
  15. <result column="language_code" property="languageCode"/>
  16. <result column="wallet_address" property="walletAddress"/>
  17. <result column="age_limit" property="ageLimit"/>
  18. <result column="old_user" property="oldUser"/>
  19. <result column="check_language" property="checkLanguage"/>
  20. <result column="login_ip" property="loginIp"/>
  21. <result column="login_time" property="loginTime"/>
  22. <result column="ip_address_convert" property="ipAddressConvert"/>
  23. <result column="disable_flag" property="disableFlag"/>
  24. <result column="channel" property="channel"/>
  25. <result column="passenger_flow_way" property="passengerFlowWay"/>
  26. <result column="login_telegram" property="loginTelegram"/>
  27. <result column="coin_address" property="coinAddress"/>
  28. <result column="password" property="password"/>
  29. <result column="mobile" property="mobile"/>
  30. <result column="sex" property="sex"/>
  31. <result column="invite_code" property="inviteCode"/>
  32. <result column="referrer_id" property="referrerId"/>
  33. <result column="airdrop_coin" property="airdropCoin"/>
  34. <result column="gold_coin_amount" property="goldCoinAmount"/>
  35. <result column="gold_coin_total_his" property="goldCoinTotalHis"/>
  36. <result column="online_time" property="onlineTime"/>
  37. <result column="user_amount" property="userAmount"/>
  38. <result column="created_time" property="createdTime"/>
  39. <result column="updated_time" property="updatedTime"/>
  40. </resultMap>
  41. <resultMap id="TgUserResultMap" type="top.continew.admin.business.model.entity.TgUser">
  42. <id column="id" property="id"/>
  43. <result column="tg_id" property="tgId"/>
  44. <result column="tg_account" property="tgAccount"/>
  45. <result column="first_name" property="firstName"/>
  46. <result column="last_name" property="lastName"/>
  47. <result column="nickname" property="nickname"/>
  48. <result column="real_name" property="realName"/>
  49. <result column="avatar" property="avatar"/>
  50. <result column="language_code" property="languageCode"/>
  51. <result column="wallet_address" property="walletAddress"/>
  52. <result column="age_limit" property="ageLimit"/>
  53. <result column="old_user" property="oldUser"/>
  54. <result column="check_language" property="checkLanguage"/>
  55. <result column="login_ip" property="loginIp"/>
  56. <result column="login_time" property="loginTime"/>
  57. <result column="ip_address_convert" property="ipAddressConvert"/>
  58. <result column="disable_flag" property="disableFlag"/>
  59. <result column="channel" property="channel"/>
  60. <result column="passenger_flow_way" property="passengerFlowWay"/>
  61. <result column="login_telegram" property="loginTelegram"/>
  62. <result column="coin_address" property="coinAddress"/>
  63. <result column="password" property="password"/>
  64. <result column="mobile" property="mobile"/>
  65. <result column="sex" property="sex"/>
  66. <result column="invite_code" property="inviteCode"/>
  67. <result column="referrer_id" property="referrerId"/>
  68. <result column="airdrop_coin" property="airdropCoin"/>
  69. <result column="gold_coin_amount" property="goldCoinAmount"/>
  70. <result column="gold_coin_total_his" property="goldCoinTotalHis"/>
  71. <result column="online_time" property="onlineTime"/>
  72. <result column="user_amount" property="userAmount"/>
  73. <result column="created_time" property="createdTime"/>
  74. <result column="updated_time" property="updatedTime"/>
  75. <result column="referrerName" property="referrerName"/>
  76. </resultMap>
  77. <select id="getTgUserOfPage" resultMap="TgUserResultMap">
  78. select tu.*,
  79. case
  80. when ru.first_name IS NOT NULL or ru.last_name IS NOT NULL
  81. then concat(ru.first_name, ' ', ru.last_name)
  82. else ru.tg_account
  83. end as referrerName
  84. from b_tg_user tu
  85. left join b_tg_user ru on tu.referrer_id=ru.id
  86. <where>
  87. <if test="query.userName != null and query.userName != ''">
  88. AND (
  89. tu.tg_account LIKE CONCAT('%', #{query.userName}, '%')
  90. OR tu.first_name LIKE CONCAT('%', #{query.userName}, '%')
  91. OR tu.last_name LIKE CONCAT('%', #{query.userName}, '%')
  92. )
  93. </if>
  94. <if test="query.time != null and query.time.size() == 2">
  95. AND tu.created_time BETWEEN #{query.time[0]} AND #{query.time[1]}
  96. </if>
  97. </where>
  98. order by tu.created_time desc
  99. </select>
  100. <select id="getMyTeamUserListByType" resultMap="TgUserResultMap">
  101. WITH RECURSIVE team_hierarchy AS (
  102. -- A队:直接被你邀请的用户
  103. SELECT id,
  104. tg_id,
  105. tg_account,
  106. first_name,
  107. last_name,
  108. nickname,
  109. real_name,
  110. avatar,
  111. passenger_flow_way,
  112. referrer_id,
  113. created_time,
  114. 'A' as team_type,
  115. 1 as level
  116. FROM b_tg_user
  117. WHERE referrer_id = #{query.id}
  118. UNION ALL
  119. -- B队:被A队邀请的用户
  120. SELECT u.id,
  121. u.tg_id,
  122. u.tg_account,
  123. u.first_name,
  124. u.last_name,
  125. u.nickname,
  126. u.real_name,
  127. u.avatar,
  128. u.passenger_flow_way,
  129. u.referrer_id,
  130. u.created_time,
  131. 'B' as team_type,
  132. h.level + 1
  133. FROM b_tg_user u
  134. JOIN team_hierarchy h ON u.referrer_id = h.id
  135. WHERE h.level = 1 -- 只获取A队成员邀请的用户
  136. )
  137. SELECT id,
  138. tg_id,
  139. tg_account,
  140. first_name,
  141. last_name,
  142. nickname,
  143. real_name,
  144. avatar,
  145. passenger_flow_way,
  146. referrer_id,
  147. created_time,
  148. team_type
  149. FROM team_hierarchy
  150. where team_type = #{query.teamType}
  151. <if test="query.userName != null and query.userName != ''">
  152. AND (
  153. tg_account LIKE CONCAT('%', #{query.userName}, '%')
  154. OR first_name LIKE CONCAT('%', #{query.userName}, '%')
  155. OR last_name LIKE CONCAT('%', #{query.userName}, '%')
  156. )
  157. </if>
  158. <if test="query.time != null and query.time.size() == 2">
  159. AND created_time BETWEEN #{query.time[0]} AND #{query.time[1]}
  160. </if>
  161. ORDER BY created_time desc
  162. </select>
  163. </mapper>