useIntegralMapper.xml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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. <!-- 查询积分来源信息 -->
  66. <select id="listIntegralConfig" parameterType="IntegralConfig" resultType="IntegralConfig">
  67. SELECT
  68. *
  69. FROM
  70. tb_iamberry_integral_config
  71. <where>
  72. <if test="integralConfigId != null and integralConfigId != ''">
  73. integral_config_id = #{integralConfigId}
  74. </if>
  75. </where>
  76. </select>
  77. <!-- 添加积分日志 -->
  78. <insert id="addUseIntegral" parameterType="UseIntegral" keyProperty="integralId" useGeneratedKeys="true">
  79. INSERT INTO tb_iamberry_use_integral
  80. (
  81. user_openid,
  82. integral_type,
  83. stay_id,
  84. config_id,
  85. integral_number,
  86. integral_before_number,
  87. integral_end_number,
  88. integral_remarks,
  89. integral_create_time
  90. )
  91. VALUES
  92. (
  93. #{userOpenId},#{integralType},#{stayId},#{configId},#{integralNumber},
  94. #{integralBeforeNumber},#{integralEndNumber},#{integralRemarks},NOW()
  95. )
  96. </insert>
  97. <!-- 查询会员积分等级规则信息 -->
  98. <select id="listRankRule" parameterType="RankRule" resultType="RankRule">
  99. SELECT
  100. *
  101. FROM
  102. tb_iamberry_rank_rule
  103. ORDER BY rank_rule_integral DESC
  104. </select>
  105. <!-- 添加会员信息 -->
  106. <insert id="addMemberIntegral" parameterType="MemberIntegral"
  107. useGeneratedKeys="true" keyProperty="memberId">
  108. INSERT INTO tb_iamberry_member_integral
  109. (
  110. rank_rule_id, user_openid, member_status, member_all_integral,
  111. member_surplus_integral, member_used_integral, member_create_time,
  112. member_update_time
  113. )
  114. VALUES
  115. (
  116. #{rankRuleId},#{userOpenid},#{memberStatus},#{memberAllIntegral},
  117. #{memberSurplusIntegral},#{memberUsedIntegral},NOW(),NOW()
  118. )
  119. </insert>
  120. <!-- 查询所有待入账积分 -->
  121. <select id="listStayIntegral" parameterType="StayIntegral" resultType="StayIntegral">
  122. SELECT
  123. t.stay_id AS stayId,
  124. t.user_openid AS userOpenId,
  125. t.config_id AS configId,
  126. t.sales_orderid AS orderId,
  127. t.stay_number AS stayNumber,
  128. t.stay_recorded_time AS stayRecordedTime,
  129. t.stay_status AS stayStatus,
  130. t.stay_remark AS stayRemark,
  131. t.stay_create_time AS stayCreateTime,
  132. t.stay_update_time AS stayUpdateTime
  133. FROM
  134. tb_iamberry_stay_integral t
  135. <where>
  136. <if test="stayId != null">
  137. AND stay_id = #{stayId}
  138. </if>
  139. <if test="stayStatus != null">
  140. AND stay_status = #{stayStatus}
  141. </if>
  142. <if test="orderId != null and orderId != ''">
  143. AND sales_orderid = #{orderId}
  144. </if>
  145. <if test="userOpenId != null">
  146. AND user_openid = #{userOpenId}
  147. </if>
  148. <if test="configId != null">
  149. AND config_id = #{configId}
  150. </if>
  151. <if test="stayRecordedTime != null and stayRecordedTime != ''">
  152. AND stay_recorded_time &lt;= #{stayRecordedTime}
  153. </if>
  154. </where>
  155. </select>
  156. <!-- 修改待入账积分状态 -->
  157. <update id="updateStayIntegral" parameterType="StayIntegral">
  158. UPDATE tb_iamberry_stay_integral
  159. <set>
  160. <if test="configId != null">
  161. config_id = #{configId},
  162. </if>
  163. <if test="orderId != null">
  164. sales_orderid = #{orderId},
  165. </if>
  166. <if test="stayNumber != null">
  167. stay_number = #{stayNumber},
  168. </if>
  169. <if test="stayRecordedTime != null">
  170. stay_recorded_time = #{stayRecordedTime},
  171. </if>
  172. <if test="stayStatus != null">
  173. stay_status = #{stayStatus},
  174. </if>
  175. <if test="stayRemark != null">
  176. stay_remark = #{stayRemark}
  177. </if>
  178. </set>
  179. <where>
  180. stay_id = #{stayId}
  181. </where>
  182. </update>
  183. <!-- 根据banner图片ID,删除图片 -->
  184. <delete id="delUseIntegral" parameterType="UseIntegral">
  185. DELETE FROM
  186. tb_iamberry_use_integral
  187. <where>
  188. <if test="integralType != null">
  189. AND integral_type = #{integralType}
  190. </if>
  191. <if test="stayId != null">
  192. AND stay_id = #{stayId}
  193. </if>
  194. <if test="userOpenId != null">
  195. AND user_openid = #{userOpenId}
  196. </if>
  197. </where>
  198. </delete>
  199. <!-- 积分日志记录列表查询 -->
  200. <select id="listUseIntegral" parameterType="UseIntegral" resultType="UseIntegral">
  201. SELECT
  202. i.*,
  203. u.user_nickname,
  204. u.user_name
  205. FROM
  206. tb_iamberry_use_integral i
  207. LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
  208. WHERE
  209. i.integral_type IN (1, 2)
  210. <if test="integralNumberMax!=null and integralNumberMax>0">
  211. AND integral_number &lt;= #{integralNumberMax}
  212. </if>
  213. <if test="integralNumberMin!=null and integralNumberMin>0">
  214. AND integral_number &gt;= #{integralNumberMin}
  215. </if>
  216. <if test="userName!=null and userName != ''">
  217. AND u.user_name like CONCAT('%',#{userName},'%')
  218. </if>
  219. <if test="userNickName!=null and userNickName != ''">
  220. AND u.user_nickname like CONCAT('%',#{userNickName},'%')
  221. </if>
  222. </select>
  223. <!--待入账积分列表查询-->
  224. <select id="listAdminStayIntegral" parameterType="StayIntegral" resultType="StayIntegral">
  225. SELECT
  226. i.*, u.user_nickname,
  227. u.user_name,
  228. u.user_integral,
  229. u.user_surplus_integral,
  230. u.user_use_integral,
  231. u.user_stay_integral,
  232. ui.integral_remarks
  233. FROM
  234. tb_iamberry_stay_integral i
  235. LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
  236. LEFT JOIN tb_iamberry_use_integral ui on i.stay_id = ui.stay_id
  237. <where>
  238. <if test="integralRemarks != null and integralRemarks != ''">
  239. ui.integral_remarks = #{integralRemarks}
  240. </if>
  241. <if test="userName!=null and userName != ''">
  242. AND u.user_name like CONCAT('%',#{userName},'%')
  243. </if>
  244. <if test="stayStatus!=null and stayStatus != ''">
  245. AND i.stay_status = #{stayStatus}
  246. </if>
  247. <if test="userNickName!=null and userNickName != ''">
  248. AND u.user_nickname like CONCAT('%',#{userNickName},'%')
  249. </if>
  250. <if test="stayRecordedTime != null and stayRecordedTime != ''">
  251. <![CDATA[AND DATE_FORMAT(stay_recorded_time, '%Y-%m-%d') = DATE_FORMAT(#{stayRecordedTime},'%Y-%m-%d')]]>
  252. </if>
  253. <if test="changeIntegralMax!=null and changeIntegralMax>0">
  254. AND i.stay_number &lt;= #{changeIntegralMax}
  255. </if>
  256. <if test="changeIntegralMin!=null and changeIntegralMin>0">
  257. AND i.stay_number &gt;= #{changeIntegralMin}
  258. </if>
  259. </where>
  260. </select>
  261. <!--修改待入账积分状态-->
  262. <update id="updatestayIntegralStatus" parameterType="StayIntegral" >
  263. UPDATE tb_iamberry_stay_integral SET stay_status = #{stayStatus} WHERE stay_id = #{stayId}
  264. </update>
  265. </mapper>