useIntegralMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  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="com.iamberry.wechat.service.mapper.UseIntegralMapper">
  4. <sql id="AllUseField">
  5. integral_id integralId,
  6. user_openid userOpenId,
  7. integral_type integralType,
  8. integral_number integralNumber,
  9. config_id configId,
  10. integral_remarks integralRemarks,
  11. integral_create_time integralCreateTime,
  12. integral_before_number integralBeforeNumber,
  13. integral_end_number integralEndNumber
  14. </sql>
  15. <!--全部积分记录-->
  16. <select id="listIntegralInfo" resultType="UseIntegral" parameterType="UseIntegral">
  17. SELECT
  18. i.integral_type integralType,
  19. i.integral_number integralNumber,
  20. i.integral_remarks integralRemarks,
  21. i.integral_create_time integralCreateTime,
  22. i.integral_before_number integralBeforeNumber,
  23. i.integral_end_number integralEndNumber,
  24. c.integral_config_name integralConfigName,
  25. s.stay_recorded_time stayRecordedTime
  26. FROM
  27. tb_iamberry_use_integral i
  28. LEFT JOIN tb_iamberry_integral_config c ON i.config_id = c.integral_config_id
  29. LEFT JOIN tb_iamberry_stay_integral s ON i.stay_id=s.stay_id
  30. WHERE i.user_openid=#{userOpenId}
  31. <if test="integralType != null and integralType != ''">
  32. AND i.integral_type = #{integralType}
  33. </if>
  34. ORDER BY i.integral_id DESC
  35. <if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
  36. limit ${page.recordBegin},${page.pageSize}
  37. </if>
  38. <if test="page!=null and page.recordBegin==0 and page.pageSize>0 ">
  39. limit ${page.pageSize}
  40. </if>
  41. </select>
  42. <!--获得的总积分数-->
  43. <select id="getGainIntegralCount" parameterType="String" resultType="Integer">
  44. SELECT SUM(integral_number)
  45. FROM tb_iamberry_use_integral
  46. WHERE user_openid=#{userOpenid} AND integral_type=1
  47. </select>
  48. <!--使用的总积分数-->
  49. <select id="getUseIntegralCount" parameterType="String" resultType="Integer">
  50. SELECT SUM(integral_number)
  51. FROM tb_iamberry_use_integral
  52. WHERE user_openid=#{userOpenid} AND integral_type=2
  53. </select>
  54. <!--待入账的总积分数-->
  55. <select id="getStayIntegralCount" parameterType="String" resultType="Integer">
  56. SELECT SUM(stay_number)
  57. FROM tb_iamberry_stay_integral
  58. WHERE user_openid=#{userOpenid} AND stay_status=1
  59. </select>
  60. <!--查询积分等级信息-->
  61. <select id="getRankRule" resultType="RankRule">
  62. SELECT *
  63. FROM tb_iamberry_rank_rule
  64. </select>
  65. <select id="getRankRuleById" resultType="RankRule" parameterType="Integer" >
  66. select
  67. *
  68. from tb_iamberry_rank_rule t
  69. where t.rank_rule_id= #{rankRuleId}
  70. </select>
  71. <!-- 查询积分来源信息 -->
  72. <select id="listIntegralConfig" parameterType="IntegralConfig" resultType="IntegralConfig">
  73. SELECT
  74. *
  75. FROM
  76. tb_iamberry_integral_config
  77. <where>
  78. <if test="integralConfigId != null and integralConfigId != ''">
  79. integral_config_id = #{integralConfigId}
  80. </if>
  81. <if test="integralConfigColorId != null and integralConfigColorId != ''">
  82. integral_config_color_id = #{integralConfigColorId}
  83. </if>
  84. </where>
  85. </select>
  86. <!-- 添加积分日志 -->
  87. <insert id="addUseIntegral" parameterType="UseIntegral" keyProperty="integralId" useGeneratedKeys="true">
  88. INSERT INTO tb_iamberry_use_integral
  89. (
  90. user_openid,
  91. integral_type,
  92. stay_id,
  93. config_id,
  94. integral_number,
  95. integral_before_number,
  96. integral_end_number,
  97. integral_remarks,
  98. integral_create_time
  99. )
  100. VALUES
  101. (
  102. #{userOpenId},#{integralType},#{stayId},#{configId},#{integralNumber},
  103. #{integralBeforeNumber},#{integralEndNumber},#{integralRemarks},NOW()
  104. )
  105. </insert>
  106. <!-- 查询会员积分等级规则信息 -->
  107. <select id="listRankRule" parameterType="RankRule" resultType="RankRule">
  108. SELECT
  109. *
  110. FROM
  111. tb_iamberry_rank_rule
  112. ORDER BY rank_rule_integral DESC
  113. </select>
  114. <!-- 添加会员信息 -->
  115. <insert id="addMemberIntegral" parameterType="MemberIntegral"
  116. useGeneratedKeys="true" keyProperty="memberId">
  117. INSERT INTO tb_iamberry_member_integral
  118. (
  119. rank_rule_id, user_openid, member_status, member_all_integral,
  120. member_surplus_integral, member_used_integral, member_create_time,
  121. member_update_time
  122. )
  123. VALUES
  124. (
  125. #{rankRuleId},#{userOpenid},#{memberStatus},#{memberAllIntegral},
  126. #{memberSurplusIntegral},#{memberUsedIntegral},NOW(),NOW()
  127. )
  128. </insert>
  129. <!-- 查询所有待入账积分 -->
  130. <select id="listStayIntegral" parameterType="StayIntegral" resultType="StayIntegral">
  131. SELECT
  132. t.stay_id AS stayId,
  133. t.user_openid AS userOpenId,
  134. t.config_id AS configId,
  135. t.sales_orderid AS orderId,
  136. t.stay_number AS stayNumber,
  137. t.stay_recorded_time AS stayRecordedTime,
  138. t.stay_status AS stayStatus,
  139. t.stay_remark AS stayRemark,
  140. t.stay_create_time AS stayCreateTime,
  141. t.stay_update_time AS stayUpdateTime
  142. FROM
  143. tb_iamberry_stay_integral t
  144. <where>
  145. <if test="stayId != null">
  146. AND stay_id = #{stayId}
  147. </if>
  148. <if test="stayStatus != null">
  149. AND stay_status = #{stayStatus}
  150. </if>
  151. <if test="orderId != null and orderId != ''">
  152. AND sales_orderid = #{orderId}
  153. </if>
  154. <if test="userOpenId != null">
  155. AND user_openid = #{userOpenId}
  156. </if>
  157. <if test="configId != null">
  158. AND config_id = #{configId}
  159. </if>
  160. <if test="stayRecordedTime != null and stayRecordedTime != ''">
  161. AND stay_recorded_time &lt;= #{stayRecordedTime}
  162. </if>
  163. </where>
  164. </select>
  165. <!-- 修改待入账积分状态 -->
  166. <update id="updateStayIntegral" parameterType="StayIntegral">
  167. UPDATE tb_iamberry_stay_integral
  168. <set>
  169. <if test="configId != null">
  170. config_id = #{configId},
  171. </if>
  172. <if test="orderId != null">
  173. sales_orderid = #{orderId},
  174. </if>
  175. <if test="stayNumber != null">
  176. stay_number = #{stayNumber},
  177. </if>
  178. <if test="stayRecordedTime != null">
  179. stay_recorded_time = #{stayRecordedTime},
  180. </if>
  181. <if test="stayStatus != null">
  182. stay_status = #{stayStatus},
  183. </if>
  184. <if test="stayRemark != null">
  185. stay_remark = #{stayRemark}
  186. </if>
  187. </set>
  188. <where>
  189. stay_id = #{stayId}
  190. </where>
  191. </update>
  192. <delete id="delUseIntegral" parameterType="UseIntegral">
  193. DELETE FROM
  194. tb_iamberry_use_integral
  195. <where>
  196. <if test="integralType != null">
  197. AND integral_type = #{integralType}
  198. </if>
  199. <if test="stayId != null">
  200. AND stay_id = #{stayId}
  201. </if>
  202. <if test="userOpenId != null">
  203. AND user_openid = #{userOpenId}
  204. </if>
  205. </where>
  206. </delete>
  207. <!-- 积分日志记录列表查询 -->
  208. <select id="listUseIntegral" parameterType="UseIntegral" resultType="UseIntegral">
  209. SELECT
  210. i.*,
  211. u.user_nickname,
  212. u.user_name
  213. FROM
  214. tb_iamberry_use_integral i
  215. LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
  216. WHERE
  217. i.integral_type IN (1, 2)
  218. <if test="integralNumberMax!=null and integralNumberMax>0">
  219. AND integral_number &lt;= #{integralNumberMax}
  220. </if>
  221. <if test="integralNumberMin!=null and integralNumberMin>0">
  222. AND integral_number &gt;= #{integralNumberMin}
  223. </if>
  224. <if test="userName!=null and userName != ''">
  225. AND u.user_name like CONCAT('%',#{userName},'%')
  226. </if>
  227. <if test="userNickName!=null and userNickName != ''">
  228. AND u.user_nickname like CONCAT('%',#{userNickName},'%')
  229. </if>
  230. ORDER BY i.integral_id DESC
  231. </select>
  232. <!--待入账积分列表查询-->
  233. <select id="listAdminStayIntegral" parameterType="StayIntegral" resultType="StayIntegral">
  234. SELECT
  235. i.*, u.user_nickname,
  236. u.user_name,
  237. u.user_integral,
  238. u.user_surplus_integral,
  239. u.user_use_integral,
  240. u.user_stay_integral,
  241. ui.integral_remarks
  242. FROM
  243. tb_iamberry_stay_integral i
  244. LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
  245. LEFT JOIN tb_iamberry_use_integral ui on i.stay_id = ui.stay_id
  246. <where>
  247. <if test="integralRemarks != null and integralRemarks != ''">
  248. ui.integral_remarks = #{integralRemarks}
  249. </if>
  250. <if test="userName!=null and userName != ''">
  251. AND u.user_name like CONCAT('%',#{userName},'%')
  252. </if>
  253. <if test="stayStatus!=null and stayStatus != ''">
  254. AND i.stay_status = #{stayStatus}
  255. </if>
  256. <if test="userNickName!=null and userNickName != ''">
  257. AND u.user_nickname like CONCAT('%',#{userNickName},'%')
  258. </if>
  259. <if test="stayRecordedTime != null and stayRecordedTime != ''">
  260. <![CDATA[AND DATE_FORMAT(stay_recorded_time, '%Y-%m-%d') = DATE_FORMAT(#{stayRecordedTime},'%Y-%m-%d')]]>
  261. </if>
  262. <if test="changeIntegralMax!=null and changeIntegralMax>0">
  263. AND i.stay_number &lt;= #{changeIntegralMax}
  264. </if>
  265. <if test="changeIntegralMin!=null and changeIntegralMin>0">
  266. AND i.stay_number &gt;= #{changeIntegralMin}
  267. </if>
  268. </where>
  269. ORDER BY stay_recorded_time DESC
  270. </select>
  271. <!--修改待入账积分状态-->
  272. <update id="updatestayIntegralStatus" parameterType="StayIntegral" >
  273. UPDATE tb_iamberry_stay_integral SET stay_status = #{stayStatus} WHERE stay_id = #{stayId}
  274. </update>
  275. <select id="getIntegralConfigById" resultType="IntegralConfig" parameterType="Integer" >
  276. select
  277. t.integral_config_id,
  278. t.integral_config_name,
  279. t.integral_config_number,
  280. t.integral_config_status,
  281. t.integral_config_create_time,
  282. t.integral_config_color_id
  283. from tb_iamberry_integral_config t
  284. where t.integral_config_id= #{integralConfigId}
  285. </select>
  286. <select id="getUseIntegralList" resultType="UseIntegral" parameterType="UseIntegral" >
  287. select
  288. t.integral_id,
  289. t.user_openid,
  290. t.integral_type,
  291. t.stay_id,
  292. t.config_id,
  293. t.integral_number,
  294. t.integral_before_number,
  295. t.integral_end_number,
  296. t.integral_remarks,
  297. t.integral_create_time,
  298. t.integral_update_time
  299. from tb_iamberry_use_integral t
  300. <where>
  301. <if test="integralId != null ">
  302. AND t.integral_id = #{integralId}
  303. </if >
  304. <if test="userOpenId != null and userOpenId != ''">
  305. AND t.user_openid = #{userOpenId}
  306. </if >
  307. <if test="integralType != null ">
  308. AND t.integral_type = #{integralType}
  309. </if >
  310. <if test="stayId != null ">
  311. AND t.stay_id = #{stayId}
  312. </if >
  313. <if test="configId != null ">
  314. AND t.config_id = #{configId}
  315. </if >
  316. <if test="integralNumber != null ">
  317. AND t.integral_number = #{integralNumber}
  318. </if >
  319. <if test="integralCreateTime != null ">
  320. AND date_format(t.integral_create_time,'%Y') = date_format(#{integralCreateTime},'%Y')
  321. </if >
  322. </where>
  323. </select>
  324. </mapper>