rebackInfoMapper.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  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. <!-- 命名,每一个映射对象不一样
  4. namespace:必须与对应的接口全类名一致
  5. -->
  6. <mapper namespace="com.iamberry.wechat.service.mapper.RebackInfoMapper">
  7. <sql id="AllField">
  8. t.REBACK_ID id,
  9. t.REBACK_TO_OPENID toOpenid,
  10. t.REBACK_FROM_OPENID fromOpenid,
  11. t.REBACK_ORDERID orderId,
  12. t.REBACK_USER_TYPE userType,
  13. t.REBACK_MONEY money,
  14. t.REBACK_CREATE_DATE createDate,
  15. t.REBACK_UPDATE_DATE updateDate,
  16. t.REBACK_FINISH_DATE finishDate,
  17. t.REBACK_STATUS status
  18. </sql>
  19. <select id="getOneById" parameterType="integer" resultType="RebackInfo">
  20. SELECT
  21. <include refid="AllField"/>
  22. FROM tb_iamberry_reback t WHERE t.REBACK_id = #{id}
  23. </select>
  24. <select id="selectAll" resultType="RebackInfo" parameterType="RebackInfo">
  25. select
  26. <include refid="AllField"/>
  27. from tb_iamberry_reback t
  28. <where>
  29. <if test="status>0">
  30. t.REMARK_STATUS=${status}
  31. </if>
  32. <if test="userType>0">
  33. and t.REBACK_USER_TYPE=${userType}
  34. </if>
  35. <if test="fromOpenid!=null and fromOpenid!=''">
  36. and t.REBACK_FROM_OPENID=#{fromOpenid}
  37. </if>
  38. <if test="toOpenid!=null and toOpenid!=''">
  39. and t.REBACK_TO_OPENID=#{toOpenid}
  40. </if>
  41. </where>
  42. order by REMARK_CREATE_DATE desc
  43. <if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
  44. limit ${page.recordBegin},${page.pageSize}
  45. </if>
  46. <if test="page!=null and page.recordBegin==0 and page.pageSize>0 ">
  47. limit ${page.pageSize}
  48. </if>
  49. </select>
  50. <select id="getAllCount" resultType="integer">
  51. select count(t.REBACK_ID) from tb_iamberry_reback t
  52. <where>
  53. <if test="status>0">
  54. t.REMARK_STATUS=${status}
  55. </if>
  56. <if test="userType>0">
  57. and t.REBACK_USER_TYPE=${userType}
  58. </if>
  59. <if test="fromOpenid!=null and fromOpenid!=''">
  60. and t.REBACK_FROM_OPENID=#{fromOpenid}
  61. </if>
  62. <if test="toOpenid!=null and toOpenid!=''">
  63. and t.REBACK_TO_OPENID=#{toOpenid}
  64. </if>
  65. </where>
  66. </select>
  67. <insert id="insert" >
  68. insert into
  69. tb_iamberry_REBACK(
  70. REBACK_TO_OPENID ,
  71. REBACK_FROM_OPENID ,
  72. REBACK_ORDERID ,
  73. REBACK_USER_TYPE ,
  74. REBACK_MONEY ,
  75. REBACK_CREATE_DATE ,
  76. REBACK_STATUS ,
  77. REBACK_ROLE,
  78. REBACK_USER_ID)
  79. values(#{toOpenid},#{fromOpenid},#{orderId},#{userType},#{money},
  80. #{createDate},#{status},#{roleId},#{userId})
  81. </insert>
  82. <insert id="batchInsert" parameterType="ArrayList">
  83. insert into
  84. tb_iamberry_REBACK(
  85. REBACK_TO_OPENID ,
  86. REBACK_FROM_OPENID ,
  87. REBACK_ORDERID ,
  88. REBACK_USER_TYPE ,
  89. REBACK_MONEY ,
  90. REBACK_CREATE_DATE ,
  91. REBACK_STATUS
  92. )
  93. values
  94. <foreach collection="list" item="obj" index="index" separator="," >
  95. (#{toOpenid},#{fromOpenid},#{orderId},#{userType},#{money},
  96. #{createDate},#{status})
  97. </foreach>
  98. </insert>
  99. <delete id="delete" parameterType="string">
  100. delete from tb_iamberry_reback
  101. where REBACK_ID = #{id}
  102. </delete>
  103. <update id="update" parameterType="RebackInfo" >
  104. update tb_iamberry_REBACK
  105. <set>
  106. <if test="money>0">
  107. set REBACK_MONEY = ${money}
  108. </if>
  109. <if test="status>0">
  110. , REBACK_STATUS=${status}
  111. </if>
  112. <if test="updateDate!=null and updateDate!=''">
  113. , REBACK_UPDATE_DATE=#{updateDate}
  114. </if>
  115. <if test="finishDate!=null and finishDate!=''">
  116. , REBACK_FINISH_DATE=#{finishDate}
  117. </if>
  118. </set>
  119. where REBACK_ID=${id}
  120. </update>
  121. <!-- 更新订单对应的状态 -->
  122. <update id="updateStatus" parameterType="RebackInfo" >
  123. update tb_iamberry_REBACK
  124. set REBACK_STATUS=${status},
  125. REBACK_UPDATE_DATE=NOW(),
  126. REBACK_FINISH_DATE=NOW()
  127. where REBACK_ORDERID=#{orderId}
  128. </update>
  129. <!-- 根据查询条件 分页查询所有的订单 -->
  130. <select id="loadOrder" parameterType="Order" resultType="Order">
  131. SELECT
  132. SALES_ORDERID salesOrderid,
  133. SALES_OPENID salesOpenid,
  134. SALES_STATUS salesStatus,
  135. SALES_YET_AMOUNT salesYetAmount,
  136. SALES_CREATE_DATE salesCreateDate,
  137. SALES_PROXY_REWARD salesProxyReward
  138. FROM
  139. TB_IAMBERRY_SHOP_SALES_ORDER
  140. <where>
  141. <if test="beginDate!=null">
  142. SALES_CREATE_DATE &gt; ${beginDate}
  143. </if>
  144. <if test="endDate!=null">
  145. and SALES_CREATE_DATE &lt; ${endDate}
  146. </if>
  147. </where>
  148. order by SALES_CREATE_DATE DESC
  149. <if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
  150. limit ${page.recordBegin},${page.pageSize}
  151. </if>
  152. <if test="page!=null and page.recordBegin==0 and page.pageSize>0 ">
  153. limit ${page.pageSize}
  154. </if>
  155. </select>
  156. <!-- 计算加载的数量 -->
  157. <select id="loadOrderCount" parameterType="Order" resultType="Integer">
  158. SELECT
  159. count(SALES_ORDERID)
  160. FROM
  161. TB_IAMBERRY_SHOP_SALES_ORDER
  162. <where>
  163. <if test="beginDate!=null">
  164. SALES_CREATE_DATE &gt; ${beginDate}
  165. </if>
  166. <if test="endDate!=null">
  167. and SALES_CREATE_DATE &lt; ${endDate}
  168. </if>
  169. </where>
  170. </select>
  171. <select id="getOrderById" parameterType="string" resultType="Order">
  172. SELECT
  173. SALES_ORDERID salesOrderid,
  174. SALES_OPENID salesOpenid,
  175. SALES_STATUS salesStatus,
  176. SALES_YET_AMOUNT salesYetAmount,
  177. SALES_CREATE_DATE salesCreateDate,
  178. SALES_CREATE_DATE salesCreateDate,
  179. SALES_PROXY_REWARD salesProxyReward
  180. FROM
  181. TB_IAMBERRY_SHOP_SALES_ORDER
  182. where
  183. SALES_ORDERID=#{id}
  184. </select>
  185. <!-- 获取某个订单的所有产品的总个数 -->
  186. <select id="getItemsProductNums" parameterType="string" resultType="Integer">
  187. select IFNULL(sum(g.item_num),0) from tb_iamberry_shop_order_item g
  188. where g.item_sales_orderid=#{id}
  189. </select>
  190. <!-- 获取分销商未入账的钱 -->
  191. <select id="getUnIncomeMoney" parameterType="string" resultType="Integer">
  192. select
  193. IFNULL(sum(t.REBACK_MONEY),0)
  194. from TB_IAMBERRY_REBACK t
  195. where t.REBACK_STATUS=1
  196. and t.reback_user_type=2
  197. and t.REBACK_TO_OPENID=#{toOpenid}
  198. </select>
  199. <select id="getUnIncomeMoney2" parameterType="map" resultType="Integer">
  200. select
  201. IFNULL(sum(t.REBACK_MONEY),0)
  202. from TB_IAMBERRY_REBACK t
  203. left join TB_IAMBERRY_REBACK g on t.reback_orderid=g.reback_orderid
  204. where t.REBACK_STATUS=1
  205. and t.REBACK_TO_OPENID=#{openid}
  206. and g.reback_to_openid in (select place_openid from tb_iamberry_place_info where place_pid=#{pid})
  207. </select>
  208. <!-- ===================================== 微信端 staticInfo ================================ -->
  209. <select id="getRecentIncome7Day" parameterType="java.util.Map" resultType="ObjRecord">
  210. select DATE_FORMAT(t.createDate,'%Y%m%d') name,
  211. DATE_FORMAT(t.createDate,'%m.%d') strDate,
  212. sum(t.money) amount
  213. from
  214. (
  215. select t.REBACK_ORDERID orderId,
  216. t.REBACK_CREATE_DATE createDate,
  217. t.REBACK_MONEY money
  218. from TB_IAMBERRY_REBACK t
  219. where t.REBACK_STATUS in (1,2,12)
  220. and t.REBACK_TO_OPENID=#{toOpenid}
  221. and t.REBACK_USER_TYPE=2
  222. ) t
  223. group by strDate
  224. order by t.createDate DESC
  225. limit 0,7
  226. </select>
  227. <select id="getRecentIncome6Month" parameterType="java.util.Map" resultType="ObjRecord">
  228. select DATE_FORMAT(t.createDate,'%Y%m') name,
  229. DATE_FORMAT(t.createDate,'%Y.%m') strDate,
  230. sum(t.money) amount
  231. from
  232. (
  233. select t.REBACK_ORDERID orderId,
  234. t.REBACK_CREATE_DATE createDate,
  235. t.REBACK_MONEY money
  236. from TB_IAMBERRY_REBACK t
  237. where t.REBACK_STATUS in (1,2,12)
  238. and t.REBACK_TO_OPENID=#{toOpenid}
  239. and t.REBACK_USER_TYPE=2
  240. ) t
  241. group by strDate
  242. order by t.createDate DESC
  243. limit 0,12
  244. </select>
  245. <!-- 分销商查看下级分销商列表统计的 -->
  246. <select id="getUnderlingStatisc" parameterType="Map" resultType="StoreStatiscInfo">
  247. select
  248. t.openid openid,
  249. DATE_FORMAT(t.createDate,'%Y-%m-%d %H:%i:%s') strDate,
  250. t.name name,
  251. (select role_name from tb_iamberry_place_role where role_id=roleId ) roleName,
  252. b.user_head img
  253. from
  254. (select
  255. place_openid openid,
  256. place_create_date createDate ,
  257. place_role_id roleId,
  258. place_name name
  259. from tb_iamberry_place_info
  260. where place_openid in ${openids}
  261. <if test="roleId!=null">
  262. and PLACE_ROLE_ID = #{roleId}
  263. </if>
  264. order by place_create_date desc
  265. limit ${recordBegin},${pageSize}
  266. ) t left join tb_iamberry_user_userinfo b
  267. on b.user_openid=t.openid
  268. </select>
  269. <select id="getRolesList" parameterType="integer" resultType="RolesListDto">
  270. select role_name roleName,role_id roleId from tb_iamberry_place_role where role_id in (
  271. select distinct Place_role_id from tb_iamberry_place_info where place_pid=#{pid} )
  272. </select>
  273. <!-- 导购,奶粉厂商,特殊渠道者,分销员 查看线下的 ${recordBegin}-->
  274. <select id="getUnderlingStatisc2" parameterType="Map" resultType="StoreStatiscInfo">
  275. select
  276. DATE_FORMAT(b.user_sub_date,'%Y-%m-%d %H:%i:%s') strDate,
  277. b.user_nickname name, b.user_head img ,
  278. b.user_id userId,
  279. b.user_openid openid ,
  280. if(user_identity=1,"会员","会员") as roleName
  281. from TB_IAMBERRY_USER_USERINFO b where
  282. b.user_openid in ${openids}
  283. <if test="endNo!=null and endNo!=''">
  284. <![CDATA[ and b.USER_ID < #{endNo} ]]>
  285. </if>
  286. <if test="beginNo!=null and beginNo!=''">
  287. <![CDATA[ and b.USER_ID > #{begindNo} ]]>
  288. </if>
  289. order by b.user_id desc
  290. limit 0,${pageSize}
  291. </select>
  292. <!-- 查询分销商在用户表的下线 -->
  293. <select id="getUnderlingUserIds" parameterType="map" resultType="String">
  294. select b.user_openid
  295. from TB_IAMBERRY_USER_USERINFO b
  296. where user_res_type=3
  297. and user_dealers in (
  298. select Dealer_id from tb_iamberry_dealers
  299. where Dealer_second=#{userDealer}
  300. union all
  301. select Dealer_id from tb_iamberry_dealers
  302. where Dealer_third=#{userDealer}
  303. union all
  304. select Dealer_id from tb_iamberry_dealers
  305. where Dealer_fourth=#{userDealer}
  306. )
  307. </select>
  308. <!-- 此方法废弃 -->
  309. <select id="getUnderlingUserIds2" parameterType="map" resultType="String">
  310. select b.user_openid
  311. from TB_IAMBERRY_USER_USERINFO b
  312. where user_res_type=3
  313. and user_dealers in
  314. (select place_id from tb_iamberry_place_info where place_openid in ${openids})
  315. </select>
  316. <select id="getUnInComeRecord" parameterType="Map" resultType="ObjRecord" >
  317. select
  318. t.amount amount ,
  319. t.createDate createDate,
  320. DATE_FORMAT(t.createDate,'%Y-%m-%d %H:%i:%s') strDate,
  321. b.user_head img,
  322. b.user_nickname name
  323. from
  324. (select
  325. t.reback_from_openid openid,
  326. t.reback_create_date createDate,
  327. t.reback_money amount
  328. from TB_IAMBERRY_REBACK t
  329. where
  330. t.reback_status=1
  331. and t.reback_user_type=2
  332. <![CDATA[ and t.reback_money > 0 ]]>
  333. and t.reback_to_openid=#{openid}
  334. ) t left join TB_IAMBERRY_USER_USERINFO b
  335. on b.USER_OPENID=t.openid
  336. order by t.createDate desc
  337. limit ${recordBegin},${pageSize}
  338. </select>
  339. <select id="getDrpUnInComeRecord" parameterType="Map" resultType="ObjRecord2" >
  340. select
  341. m.amount amount,
  342. b.place_create_date createDate,
  343. DATE_FORMAT(b.place_create_date,'%Y-%m-%d %H:%i:%s') strDate,
  344. m.reback2 openid,
  345. b.place_username name,
  346. (select user_head from tb_iamberry_user_userinfo where user_openid=m.reback2) img ,
  347. (select Role_name from tb_iamberry_place_role where role_id=b.Place_role_id) roleName
  348. from (
  349. select sum(t.reback_money) amount, t.reback_to_openid , g.reback_to_openid reback2 from tb_iamberry_reback t left join tb_iamberry_reback g
  350. on t.reback_orderid=g.reback_orderid
  351. where t.reback_to_openid=#{openid}
  352. and t.reback_user_type=2 and t.reback_status=1
  353. and g.reback_to_openid in(select place_openid from tb_iamberry_place_info where place_pid=#{pid})
  354. group by g.reback_to_openid
  355. )
  356. m left join tb_iamberry_place_info b on b.place_openid=m.reback2
  357. limit ${recordBegin},${pageSize}
  358. </select>
  359. <!-- 查找代理的下一级 对于省代的贡献值 -->
  360. <select id="getDrpUnInComeRecord2" parameterType="Map" resultType="ObjRecord2" >
  361. select
  362. m.amount amount,
  363. b.place_create_date createDate,
  364. DATE_FORMAT(b.place_create_date,'%Y-%m-%d %H:%i:%s') strDate,
  365. m.reback_to_openid openid,
  366. b.place_username name,
  367. (select user_head from tb_iamberry_user_userinfo where user_openid=m.reback_to_openid) img ,
  368. (select Role_name from tb_iamberry_place_role where role_id=b.Place_role_id) roleName
  369. from (
  370. select sum(g.reback_money) amount, t.reback_to_openid from tb_iamberry_reback t left join tb_iamberry_reback g
  371. on t.reback_orderid=g.reback_orderid
  372. where t.reback_to_openid in (select place_openid from tb_iamberry_place_info where place_pid=#{pid})
  373. and g.reback_to_openid=#{openid}
  374. and t.reback_status=1
  375. and t.reback_user_type=2
  376. group by t.reback_to_openid)
  377. m left join tb_iamberry_place_info b on b.place_openid=m.reback_to_openid
  378. limit ${recordBegin},${pageSize}
  379. </select>
  380. <select id="alreadyIn" parameterType="String" resultType="Integer">
  381. select IFNULL(count(t.reback_id),0) from TB_IAMBERRY_REBACK t
  382. where t.REBACK_ORDERID=#{orderId}
  383. </select>
  384. <!-- ======================================后台统计的======================================= -->
  385. <select id="getSearchInComeRecord" parameterType="Map" resultType="IncomeRecord" >
  386. select c.orderId orderNo,
  387. c.createDate createDate,
  388. DATE_FORMAT(c.createDate,'%Y-%m-%d %H:%i:%s') strDate,
  389. c.money amount,
  390. c.name name,
  391. c.isReward isReward
  392. from (
  393. select t.REBACK_ORDERID orderId,
  394. t.REBACK_CREATE_DATE createDate,
  395. t.REBACK_MONEY money,
  396. b.user_name name ,
  397. t.REBACK_STATUS isReward
  398. from TB_IAMBERRY_REBACK t
  399. left join tb_iamberry_user_userinfo b
  400. on t.REBACK_FROM_OPENID=b.USER_OPENID
  401. where
  402. t.REBACK_TO_OPENID=#{toOpenid}
  403. and t.REBACK_USER_TYPE=2
  404. <if test="status>0">
  405. and t.REBACK_STATUS=${status}
  406. </if>
  407. ) c
  408. order by createDate DESC
  409. limit ${recordBegin},${pageSize}
  410. </select>
  411. <select id="getSearchInComeRecordCount" parameterType="Map" resultType="Integer" >
  412. select count(t.REBACK_ORDERID)
  413. from TB_IAMBERRY_REBACK t
  414. where
  415. t.REBACK_TO_OPENID=#{toOpenid}
  416. and t.REBACK_USER_TYPE=2
  417. <if test="status>0">
  418. and t.REBACK_STATUS=${status}
  419. </if>
  420. </select>
  421. <!-- 获取某一个微代理在规定的时间内,某一个产品类型销售达到X台的用户以及销售数量,已返利 -->
  422. <select id="getByDate" parameterType="PaperBean" resultType="com.iamberry.wechat.core.entity.task.TaskModel">
  423. SELECT
  424. temp.*
  425. FROM
  426. (
  427. SELECT
  428. REBACK_TO_OPENID openID, SUM(I.ITEM_NUM) count
  429. FROM
  430. TB_IAMBERRY_REBACK
  431. RIGHT JOIN
  432. TB_IAMBERRY_SHOP_ORDER_ITEM I
  433. ON
  434. I.ITEM_SALES_ORDERID = REBACK_ORDERID AND I.ITEM_PRODUCT_TYPE = #{otherInt}
  435. WHERE
  436. <![CDATA[
  437. REBACK_USER_TYPE = 1
  438. AND
  439. REBACK_STATUS = 2
  440. AND
  441. REBACK_MONEY != 0
  442. AND
  443. REBACK_CREATE_DATE >= #{beginDate}
  444. AND
  445. REBACK_CREATE_DATE <= #{endDate}
  446. ]]>
  447. GROUP BY
  448. REBACK_TO_OPENID
  449. ) temp
  450. WHERE
  451. temp.count >= #{hid}
  452. </select>
  453. </mapper>