Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

451 rader
18 KiB

  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.iformall.mapper.NeuPosOrderMasterExtMapper">
  4. <select id="queryShopPayTypeTradeList" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  5. SELECT shop_id as shopId,
  6. sum(real_pay_amount) as payAmount,
  7. count(0) as payCount
  8. from order_master_v2
  9. where order_status = 4 and order_type != '3'
  10. <if test=" orgId != null">
  11. and org_id = #{orgId}
  12. </if>
  13. <if test=" shopId != null">
  14. and shop_id = #{shopId}
  15. </if>
  16. <if test=" createBegin != null">
  17. and created_at &gt;= #{createBegin}
  18. </if>
  19. <if test=" createEnd != null">
  20. and created_at &lt;= #{createEnd}
  21. </if>
  22. GROUP BY shop_id
  23. ORDER BY shop_id asc
  24. </select>
  25. <select id="selectOrgPayType" parameterType="Integer" resultType="String">
  26. SELECT distinct pay_type as payType
  27. from trade_mch_pay_channel
  28. where org_id = #{orgId}
  29. </select>
  30. <sql id = "queryShopPayOrderListV1ByConditon" >
  31. SELECT
  32. paid.shop_id AS shopId,
  33. IFNULL( payAmount, 0 )AS payAmount,
  34. IFNULL( discountAmount, 0 )AS discountAmount,
  35. IFNULL( payCount, 0 )AS payCount,
  36. IFNULL( refundAmount, 0 )AS refundAmount,
  37. IFNULL( refundCount, 0 )AS refundCount,
  38. IFNULL( ( IFNULL(payAmount,0) - IFNULL(refundAmount,0) ), 0 ) AS amount
  39. FROM
  40. (
  41. SELECT
  42. IFNULL( SUM( pay_order_v2.pay_amount ) / 100, 0 ) AS payAmount,
  43. COUNT( 0 ) AS payCount,
  44. 0 AS discountAmount,
  45. shop_id
  46. FROM
  47. order_master_v2
  48. LEFT JOIN pay_order_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
  49. WHERE order_master_v2.order_type != '3' AND pay_order_v2.pay_type NOT IN ('29','30')
  50. <if test=" orgId != null">
  51. AND order_master_v2.org_id = #{orgId}
  52. </if>
  53. <if test=" shopId != null">
  54. AND order_master_v2.shop_id = #{shopId}
  55. </if>
  56. <if test=" createBegin != null">
  57. AND pay_order_v2.created_at &gt;= #{createBegin}
  58. </if>
  59. <if test=" createEnd != null">
  60. AND pay_order_v2.created_at &lt;= #{createEnd}
  61. </if>
  62. <if test=" null != payTypeList ">
  63. AND pay_order_v2.pay_type IN
  64. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  65. #{payTypeItem}
  66. </foreach>
  67. </if>
  68. AND ( pay_order_v2.pay_status = 2 OR pay_order_v2.pay_status = 5 OR pay_order_v2.pay_status = 4 )
  69. GROUP BY
  70. shop_id
  71. ) AS paid
  72. LEFT JOIN (
  73. SELECT
  74. IFNULL( SUM( refunded_amount ) / 100, 0 ) refundAmount,
  75. COUNT( 0 ) refundCount,
  76. shop_id
  77. FROM
  78. order_master_v2
  79. LEFT JOIN pay_refund_order_v2 ON pay_refund_order_v2.m_order_number = order_master_v2.order_number
  80. WHERE order_master_v2.order_type != '3' AND pay_refund_order_v2.pay_type NOT IN ('29','30')
  81. <if test=" orgId != null">
  82. AND order_master_v2.org_id = #{orgId}
  83. </if>
  84. <if test=" shopId != null">
  85. AND order_master_v2.shop_id = #{shopId}
  86. </if>
  87. <if test=" createBegin != null">
  88. AND pay_refund_order_v2.created_at &gt;= #{createBegin}
  89. </if>
  90. <if test=" createEnd != null">
  91. AND pay_refund_order_v2.created_at &lt;= #{createEnd}
  92. </if>
  93. <if test=" null != payTypeList ">
  94. AND pay_refund_order_v2.pay_type IN
  95. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  96. #{payTypeItem}
  97. </foreach>
  98. </if>
  99. AND pay_refund_order_v2.refund_status = 2
  100. GROUP BY
  101. shop_id
  102. ) AS refund
  103. ON refund.shop_id = paid.shop_id
  104. </sql>
  105. <select id="queryShopPayOrderListV1" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  106. <include refid="queryShopPayOrderListV1ByConditon"/>
  107. </select>
  108. <select id="queryShopPayOrderSumV1" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  109. select sum(_temp.payAmount) as payAmount, sum(_temp.payCount) as payCount,sum(_temp.refundAmount) as refundAmount,
  110. sum(_temp.refundCount) as refundCount
  111. from ( <include refid="queryShopPayOrderListV1ByConditon"/> ) as _temp
  112. </select>
  113. <select id="queryShopPayOrderList" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  114. SELECT
  115. pay_type_dict_v2.pay_type AS payType,
  116. ifnull( payAmount, 0 )AS payAmount,
  117. ifnull( discountAmount, 0 )AS discountAmount,
  118. ifnull( payCount, 0 )AS payCount,
  119. ifnull( refundAmount, 0 )AS refundAmount,
  120. ifnull( refundCount, 0 )AS refundCount,
  121. ifnull( ( ifnull(payAmount,0) - ifnull(refundAmount,0) ), 0 ) AS amount
  122. FROM
  123. pay_type_dict_v2
  124. LEFT JOIN (
  125. SELECT
  126. ifnull( sum( pay_order_v2.pay_amount ) / 100, 0 ) AS payAmount,
  127. count( 0 ) AS payCount,
  128. 0 AS discountAmount,
  129. pay_type AS payType
  130. FROM
  131. pay_order_v2
  132. LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
  133. where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
  134. <if test=" orgId != null">
  135. and order_master_v2.org_id = #{orgId}
  136. </if>
  137. <if test=" shopId != null">
  138. and order_master_v2.shop_id = #{shopId}
  139. </if>
  140. <if test=" createBegin != null">
  141. and pay_order_v2.created_at &gt;= #{createBegin}
  142. </if>
  143. <if test=" createEnd != null">
  144. and pay_order_v2.created_at &lt;= #{createEnd}
  145. </if>
  146. <if test=" null != payTypeList ">
  147. and pay_order_v2.pay_type in
  148. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  149. #{payTypeItem}
  150. </foreach>
  151. </if>
  152. AND ( pay_order_v2.pay_status = 2 OR pay_order_v2.pay_status = 5 OR pay_order_v2.pay_status = 4 )
  153. GROUP BY
  154. pay_type
  155. ) AS paid ON pay_type_dict_v2.pay_type = paid.payType
  156. LEFT JOIN (
  157. SELECT
  158. ifnull( sum( refunded_amount ) / 100, 0 ) refundAmount,
  159. count( 0 ) refundCount,
  160. pay_type AS payType
  161. FROM
  162. pay_refund_order_v2 AS pay_order_v2
  163. LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
  164. where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
  165. <if test=" orgId != null">
  166. and order_master_v2.org_id = #{orgId}
  167. </if>
  168. <if test=" shopId != null">
  169. and order_master_v2.shop_id = #{shopId}
  170. </if>
  171. <if test=" createBegin != null">
  172. and pay_order_v2.created_at &gt;= #{createBegin}
  173. </if>
  174. <if test=" createEnd != null">
  175. and pay_order_v2.created_at &lt;= #{createEnd}
  176. </if>
  177. <if test=" null != payTypeList ">
  178. and pay_order_v2.pay_type in
  179. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  180. #{payTypeItem}
  181. </foreach>
  182. </if>
  183. AND refund_status = 2
  184. GROUP BY
  185. pay_type
  186. ) AS refund ON pay_type_dict_v2.pay_type = refund.payType
  187. where pay_type_dict_v2.pay_type not in ('29','30')
  188. <if test=" null != payTypeList ">
  189. and pay_type_dict_v2.pay_type in
  190. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  191. #{payTypeItem}
  192. </foreach>
  193. </if>
  194. </select>
  195. <select id="queryShopPayOrderSum" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  196. select sum(_temp.payAmount) as payAmount, sum(_temp.payCount) as payCount,sum(_temp.refundAmount) as refundAmount,
  197. sum(_temp.refundCount) as refundCount
  198. from
  199. (
  200. SELECT
  201. pay_type_dict_v2.pay_type AS payType,
  202. ifnull( payAmount, 0 )AS payAmount,
  203. ifnull( discountAmount, 0 )AS discountAmount,
  204. ifnull( payCount, 0 )AS payCount,
  205. ifnull( refundAmount, 0 )AS refundAmount,
  206. ifnull( refundCount, 0 )AS refundCount,
  207. ifnull( ( ifnull(payAmount,0) - ifnull(refundAmount,0) ), 0 ) AS amount
  208. FROM
  209. pay_type_dict_v2
  210. LEFT JOIN (
  211. SELECT
  212. ifnull( sum( pay_order_v2.pay_amount ) / 100, 0 ) AS payAmount,
  213. count( 0 ) AS payCount,
  214. 0 AS discountAmount,
  215. pay_type AS payType
  216. FROM
  217. pay_order_v2
  218. LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
  219. where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
  220. <if test=" orgId != null">
  221. and order_master_v2.org_id = #{orgId}
  222. </if>
  223. <if test=" shopId != null">
  224. and order_master_v2.shop_id = #{shopId}
  225. </if>
  226. <if test=" createBegin != null">
  227. and pay_order_v2.created_at &gt;= #{createBegin}
  228. </if>
  229. <if test=" createEnd != null">
  230. and pay_order_v2.created_at &lt;= #{createEnd}
  231. </if>
  232. <if test=" null != payTypeList ">
  233. and pay_order_v2.pay_type in
  234. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  235. #{payTypeItem}
  236. </foreach>
  237. </if>
  238. AND ( pay_order_v2.pay_status = 2 OR pay_order_v2.pay_status = 5 OR pay_order_v2.pay_status = 4 )
  239. GROUP BY
  240. pay_type
  241. ) AS paid ON pay_type_dict_v2.pay_type = paid.payType
  242. LEFT JOIN (
  243. SELECT
  244. ifnull( sum( refunded_amount ) / 100, 0 ) refundAmount,
  245. count( 0 ) refundCount,
  246. pay_type AS payType
  247. FROM
  248. pay_refund_order_v2 AS pay_order_v2
  249. LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
  250. where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
  251. <if test=" orgId != null">
  252. and order_master_v2.org_id = #{orgId}
  253. </if>
  254. <if test=" shopId != null">
  255. and order_master_v2.shop_id = #{shopId}
  256. </if>
  257. <if test=" createBegin != null">
  258. and pay_order_v2.created_at &gt;= #{createBegin}
  259. </if>
  260. <if test=" createEnd != null">
  261. and pay_order_v2.created_at &lt;= #{createEnd}
  262. </if>
  263. <if test=" null != payTypeList ">
  264. and pay_order_v2.pay_type in
  265. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  266. #{payTypeItem}
  267. </foreach>
  268. </if>
  269. AND refund_status = 2
  270. GROUP BY
  271. pay_type
  272. ) AS refund ON pay_type_dict_v2.pay_type = refund.payType
  273. where pay_type_dict_v2.pay_type not in ('29','30')
  274. <if test=" null != payTypeList ">
  275. and pay_type_dict_v2.pay_type in
  276. <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
  277. #{payTypeItem}
  278. </foreach>
  279. </if>
  280. ) as _temp
  281. </select>
  282. <select id="selectShopList" parameterType="Integer" resultType="java.util.Map">
  283. select id,name from `shop` where status = 1
  284. <if test=" orgId != null">
  285. and org = #{orgId}
  286. </if>
  287. order by name asc
  288. </select>
  289. <select id="selectPayTypeList" resultType="java.util.Map">
  290. select pay_type,name from `trade_pay_type_dict`
  291. </select>
  292. <select id="queryOrderListByConditions" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  293. SELECT o.id,o.shop_id as shopId,o.paid_time AS paidTime,o.order_number AS orderNumber,o.serial_no AS serialNo,
  294. o.order_amount/100 AS orderAmount,
  295. sum( IF ( p.pay_type = 29, pay_amount, 0 ) )/100 AS discountAmount,
  296. o.real_pay_amount / 100 AS realPayAmount,
  297. o.order_status AS orderStatus,
  298. p.pay_type as payType
  299. FROM
  300. order_master_v2 AS o
  301. LEFT JOIN pay_order_v2 AS p ON o.order_number = p.m_order_number
  302. where 1=1
  303. <if test=" orgId != null">
  304. and o.org_id = #{orgId}
  305. </if>
  306. <if test=" shopId != null">
  307. and o.shop_id = #{shopId}
  308. </if>
  309. <if test=" createBegin != null">
  310. and o.created_at &gt;= #{createBegin}
  311. </if>
  312. <if test=" createEnd != null">
  313. and o.created_at &lt;= #{createEnd}
  314. </if>
  315. GROUP BY
  316. o.order_number
  317. ORDER BY o.created_at desc
  318. </select>
  319. <select id="queryMasterById" parameterType="Long" resultType="java.util.Map">
  320. select id,order_number as orderNumber,org_id as orgId,shop_id as shopId,buyer_id as buyerId,serial_no as serialNo,device_name as deviceName,
  321. customer_number as customerNumber,seq_no as seqNo,(ifnull( order_amount, 0 )/100) AS orderAmount,(ifnull( real_pay_amount, 0 )/100) AS realPayAmount,
  322. order_amount_unit as orderAmountUnit,paid_time as paidTime,refund_time as refundTime,order_status as orderStatus
  323. from order_master_v2 where id=#{id}
  324. </select>
  325. <update id="updateOrderMasterPayStatus" parameterType="java.util.Map">
  326. update order_master_v2 set order_status=#{payStatus} where order_number=#{orderNumber}
  327. </update>
  328. <select id="queryPayOrderByStatus" parameterType="java.util.Map" resultType="java.util.Map">
  329. select * from pay_order_v2 where m_order_number=#{orderNumber} and pay_status = #{payStatus}
  330. </select>
  331. <insert id="insertPayOder" parameterType="com.iformall.domain.dto.NeuPosUpdatePayDto">
  332. insert into pay_order_v2(m_order_number,trade_id,device_id,device_name,description,pay_type,pay_type_name,pay_amount,refunded_amount,
  333. time_expire,pay_status,pay_time,version,trade_type,created_at,created_by,updated_by,updated_at)
  334. values (#{orderNumber},#{tradeId},#{deviceId},#{deviceName},#{description},#{payType},#{payTypeName},#{realPayAmount},#{refundAmount},
  335. now(),#{payStatus},now(),1,"NATIVE",now(),"system","system",now())
  336. </insert>
  337. <select id="queryDeviceList" parameterType="java.util.Map" resultType="java.util.Map">
  338. select serial_no as serialNo,alias from device where status = 0 and organization_id = #{organizationId} and store_id = #{shopId}
  339. </select>
  340. <select id="queryUserShop" parameterType="java.util.Map" resultType="java.util.Map">
  341. SELECT us.`shop`,ui.id,ui.`username`,ui.`nickname` FROM user_info ui LEFT JOIN user_shop us ON ui.id = us.`usr`
  342. WHERE ui.org = #{orgId} AND ui.activated = TRUE AND ui.username = #{username}
  343. </select>
  344. <select id="queryShiftTradeList" parameterType="com.iformall.domain.po.NeuPosShiftTradeMasterExt" resultType="java.util.Map">
  345. select * from
  346. (select org_id, shop_id, username, serial_no,
  347. min(case when status=1 then created_at else '3109-12-30 23:59:59' end) as loginTime,
  348. max(case when status=2 and is_shift=1 then created_at else 0 end) as shiftTime
  349. from user_login_record
  350. where org_id = #{orgId} and created_at &gt; #{createBegin} and created_at &lt;= #{createEnd}
  351. <if test="customerNumber != null"> and username = #{customerNumber}</if>
  352. <if test="shopId != null"> and shop_id = #{shopId}</if>
  353. GROUP BY username) as a
  354. where shiftTime > 0
  355. </select>
  356. <select id="queryShiftTradeSummary" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
  357. SELECT
  358. po.createdBy,
  359. sum( IF ( po.payType = 6, po.paidAmount, 0 ) ) AS "6payType",
  360. sum( IF ( po.payType = 24, po.paidAmount, 0 ) ) AS "24payType",
  361. sum( IF ( po.payType = 31, po.paidAmount, 0 ) ) AS "31payType",
  362. sum( IF ( po.payType = 32, po.paidAmount, 0 ) ) AS "32payType",
  363. sum( IF ( po.payType = 6, IFNULL(ro.refundAmount,0), 0 ) ) AS "6payTypeRefund",
  364. sum( IF ( po.payType = 24, IFNULL(ro.refundAmount,0), 0 ) ) AS "24payTypeRefund",
  365. sum( IF ( po.payType = 31, IFNULL(ro.refundAmount,0), 0 ) ) AS "31payTypeRefund",
  366. sum( IF ( po.payType = 32, IFNULL(ro.refundAmount,0), 0 ) ) AS "32payTypeRefund",
  367. sum( IF ( po.createdHour > 12, po.paidAmount - IFNULL(ro.refundAmount,0), 0 ) ) AS pmPaidAmount,
  368. sum( IF ( 12 >= po.createdHour, po.paidAmount - IFNULL(ro.refundAmount, 0),0 ) ) AS amPaidAmount,
  369. sum( po.paidAmount - IFNULL(ro.refundAmount, 0) ) AS paidAmount
  370. FROM
  371. (
  372. SELECT
  373. o.created_by AS createdBy,
  374. o.order_number AS orderNumber,
  375. p.pay_type AS payType,
  376. p.pay_type_name AS payTypeName,
  377. sum( IFNULL( pay_amount, 0 ) ) / 100 AS paidAmount,
  378. HOUR ( o.created_at ) AS createdHour
  379. FROM
  380. pay_order_v2 AS p
  381. LEFT JOIN order_master_v2 AS o ON p.m_order_number = o.order_number
  382. where order_master_v2.org_id = #{orgId}
  383. <if test=" shopId != null">
  384. and order_master_v2.shop_id = #{shopId}
  385. </if>
  386. <if test=" createBegin != null">
  387. and pay_order_v2.created_at &gt;= #{createBegin}
  388. </if>
  389. <if test=" createEnd != null">
  390. and pay_order_v2.created_at &lt;= #{createEnd}
  391. </if>
  392. <if test=" createBy != null">
  393. and pay_order_v2.created_by = #{createBy}
  394. </if>
  395. AND ( p.pay_status = 2 OR p.pay_status = 5 OR p.pay_status = 4 )
  396. AND p.pay_type != 29
  397. AND p.pay_type != 30
  398. GROUP BY
  399. o.order_number,
  400. p.pay_type
  401. ) AS po
  402. LEFT JOIN (
  403. SELECT
  404. o.order_number AS orderNumber,
  405. r.pay_type AS payType,
  406. sum( IFNULL( r.refunded_amount, 0 ) ) / 100 AS refundAmount
  407. FROM
  408. pay_refund_order_v2 AS r
  409. LEFT JOIN order_master_v2 AS o ON r.m_order_number = o.order_number
  410. where order_master_v2.org_id = #{orgId}
  411. <if test=" shopId != null">
  412. and order_master_v2.shop_id = #{shopId}
  413. </if>
  414. <if test=" createBegin != null">
  415. and pay_order_v2.created_at &gt;= #{createBegin}
  416. </if>
  417. <if test=" createEnd != null">
  418. and pay_order_v2.created_at &lt;= #{createEnd}
  419. </if>
  420. <if test=" createBy != null">
  421. and pay_order_v2.created_by = #{createBy}
  422. </if>
  423. AND ( r.refund_status = 2 )
  424. AND r.pay_type != 29
  425. AND r.pay_type != 30
  426. GROUP BY
  427. o.order_number,
  428. r.pay_type
  429. ) AS ro ON ro.orderNumber = po.orderNumber and po.payType=ro.payType
  430. GROUP BY
  431. createdBy
  432. </select>
  433. </mapper>