|
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.iformall.mapper.NeuPosOrderMasterExtMapper">
-
- <select id="queryShopPayTypeTradeList" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- SELECT shop_id as shopId,
- sum(real_pay_amount) as payAmount,
- count(0) as payCount
- from order_master_v2
- where order_status = 4 and order_type != '3'
- <if test=" orgId != null">
- and org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- and shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and created_at <= #{createEnd}
- </if>
- GROUP BY shop_id
- ORDER BY shop_id asc
- </select>
-
- <select id="selectOrgPayType" parameterType="Integer" resultType="String">
- SELECT distinct pay_type as payType
- from trade_mch_pay_channel
- where org_id = #{orgId}
- </select>
-
- <sql id = "queryShopPayOrderListV1ByConditon" >
- SELECT
- paid.shop_id AS shopId,
- IFNULL( payAmount, 0 )AS payAmount,
- IFNULL( discountAmount, 0 )AS discountAmount,
- IFNULL( payCount, 0 )AS payCount,
- IFNULL( refundAmount, 0 )AS refundAmount,
- IFNULL( refundCount, 0 )AS refundCount,
- IFNULL( ( IFNULL(payAmount,0) - IFNULL(refundAmount,0) ), 0 ) AS amount
- FROM
- (
- SELECT
- IFNULL( SUM( pay_order_v2.pay_amount ) / 100, 0 ) AS payAmount,
- COUNT( 0 ) AS payCount,
- 0 AS discountAmount,
- shop_id
- FROM
- order_master_v2
- LEFT JOIN pay_order_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
- WHERE order_master_v2.order_type != '3' AND pay_order_v2.pay_type NOT IN ('29','30')
- <if test=" orgId != null">
- AND order_master_v2.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- AND order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- AND pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- AND pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" null != payTypeList ">
- AND pay_order_v2.pay_type IN
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- AND ( pay_order_v2.pay_status = 2 OR pay_order_v2.pay_status = 5 OR pay_order_v2.pay_status = 4 )
- GROUP BY
- shop_id
- ) AS paid
- LEFT JOIN (
- SELECT
- IFNULL( SUM( refunded_amount ) / 100, 0 ) refundAmount,
- COUNT( 0 ) refundCount,
- shop_id
- FROM
- order_master_v2
- LEFT JOIN pay_refund_order_v2 ON pay_refund_order_v2.m_order_number = order_master_v2.order_number
- WHERE order_master_v2.order_type != '3' AND pay_refund_order_v2.pay_type NOT IN ('29','30')
- <if test=" orgId != null">
- AND order_master_v2.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- AND order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- AND pay_refund_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- AND pay_refund_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" null != payTypeList ">
- AND pay_refund_order_v2.pay_type IN
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- AND pay_refund_order_v2.refund_status = 2
- GROUP BY
- shop_id
- ) AS refund
- ON refund.shop_id = paid.shop_id
- </sql>
- <select id="queryShopPayOrderListV1" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- <include refid="queryShopPayOrderListV1ByConditon"/>
- </select>
-
- <select id="queryShopPayOrderSumV1" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- select sum(_temp.payAmount) as payAmount, sum(_temp.payCount) as payCount,sum(_temp.refundAmount) as refundAmount,
- sum(_temp.refundCount) as refundCount
- from ( <include refid="queryShopPayOrderListV1ByConditon"/> ) as _temp
- </select>
-
- <select id="queryShopPayOrderList" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- SELECT
- pay_type_dict_v2.pay_type AS payType,
- ifnull( payAmount, 0 )AS payAmount,
- ifnull( discountAmount, 0 )AS discountAmount,
- ifnull( payCount, 0 )AS payCount,
- ifnull( refundAmount, 0 )AS refundAmount,
- ifnull( refundCount, 0 )AS refundCount,
- ifnull( ( ifnull(payAmount,0) - ifnull(refundAmount,0) ), 0 ) AS amount
- FROM
- pay_type_dict_v2
- LEFT JOIN (
- SELECT
- ifnull( sum( pay_order_v2.pay_amount ) / 100, 0 ) AS payAmount,
- count( 0 ) AS payCount,
- 0 AS discountAmount,
- pay_type AS payType
- FROM
- pay_order_v2
- LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
- where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
- <if test=" orgId != null">
- and order_master_v2.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- and order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" null != payTypeList ">
- and pay_order_v2.pay_type in
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- AND ( pay_order_v2.pay_status = 2 OR pay_order_v2.pay_status = 5 OR pay_order_v2.pay_status = 4 )
- GROUP BY
- pay_type
- ) AS paid ON pay_type_dict_v2.pay_type = paid.payType
- LEFT JOIN (
- SELECT
- ifnull( sum( refunded_amount ) / 100, 0 ) refundAmount,
- count( 0 ) refundCount,
- pay_type AS payType
- FROM
- pay_refund_order_v2 AS pay_order_v2
- LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
- where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
- <if test=" orgId != null">
- and order_master_v2.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- and order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" null != payTypeList ">
- and pay_order_v2.pay_type in
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- AND refund_status = 2
- GROUP BY
- pay_type
- ) AS refund ON pay_type_dict_v2.pay_type = refund.payType
- where pay_type_dict_v2.pay_type not in ('29','30')
- <if test=" null != payTypeList ">
- and pay_type_dict_v2.pay_type in
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- </select>
-
- <select id="queryShopPayOrderSum" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- select sum(_temp.payAmount) as payAmount, sum(_temp.payCount) as payCount,sum(_temp.refundAmount) as refundAmount,
- sum(_temp.refundCount) as refundCount
- from
- (
- SELECT
- pay_type_dict_v2.pay_type AS payType,
- ifnull( payAmount, 0 )AS payAmount,
- ifnull( discountAmount, 0 )AS discountAmount,
- ifnull( payCount, 0 )AS payCount,
- ifnull( refundAmount, 0 )AS refundAmount,
- ifnull( refundCount, 0 )AS refundCount,
- ifnull( ( ifnull(payAmount,0) - ifnull(refundAmount,0) ), 0 ) AS amount
- FROM
- pay_type_dict_v2
- LEFT JOIN (
- SELECT
- ifnull( sum( pay_order_v2.pay_amount ) / 100, 0 ) AS payAmount,
- count( 0 ) AS payCount,
- 0 AS discountAmount,
- pay_type AS payType
- FROM
- pay_order_v2
- LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
- where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
- <if test=" orgId != null">
- and order_master_v2.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- and order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" null != payTypeList ">
- and pay_order_v2.pay_type in
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- AND ( pay_order_v2.pay_status = 2 OR pay_order_v2.pay_status = 5 OR pay_order_v2.pay_status = 4 )
- GROUP BY
- pay_type
- ) AS paid ON pay_type_dict_v2.pay_type = paid.payType
- LEFT JOIN (
- SELECT
- ifnull( sum( refunded_amount ) / 100, 0 ) refundAmount,
- count( 0 ) refundCount,
- pay_type AS payType
- FROM
- pay_refund_order_v2 AS pay_order_v2
- LEFT JOIN order_master_v2 ON pay_order_v2.m_order_number = order_master_v2.order_number
- where order_master_v2.order_type != '3' and pay_order_v2.pay_type not in ('29','30')
- <if test=" orgId != null">
- and order_master_v2.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- and order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" null != payTypeList ">
- and pay_order_v2.pay_type in
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- AND refund_status = 2
- GROUP BY
- pay_type
- ) AS refund ON pay_type_dict_v2.pay_type = refund.payType
- where pay_type_dict_v2.pay_type not in ('29','30')
- <if test=" null != payTypeList ">
- and pay_type_dict_v2.pay_type in
- <foreach collection="payTypeList" index="index" item="payTypeItem" open="(" separator="," close=")">
- #{payTypeItem}
- </foreach>
- </if>
- ) as _temp
- </select>
-
- <select id="selectShopList" parameterType="Integer" resultType="java.util.Map">
- select id,name from `shop` where status = 1
- <if test=" orgId != null">
- and org = #{orgId}
- </if>
- order by name asc
- </select>
-
- <select id="selectPayTypeList" resultType="java.util.Map">
- select pay_type,name from `trade_pay_type_dict`
- </select>
-
- <select id="queryOrderListByConditions" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- SELECT o.id,o.shop_id as shopId,o.paid_time AS paidTime,o.order_number AS orderNumber,o.serial_no AS serialNo,
- o.order_amount/100 AS orderAmount,
- sum( IF ( p.pay_type = 29, pay_amount, 0 ) )/100 AS discountAmount,
- o.real_pay_amount / 100 AS realPayAmount,
- o.order_status AS orderStatus,
- p.pay_type as payType
- FROM
- order_master_v2 AS o
- LEFT JOIN pay_order_v2 AS p ON o.order_number = p.m_order_number
- where 1=1
- <if test=" orgId != null">
- and o.org_id = #{orgId}
- </if>
- <if test=" shopId != null">
- and o.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and o.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and o.created_at <= #{createEnd}
- </if>
- GROUP BY
- o.order_number
- ORDER BY o.created_at desc
- </select>
-
- <select id="queryMasterById" parameterType="Long" resultType="java.util.Map">
- 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,
- customer_number as customerNumber,seq_no as seqNo,(ifnull( order_amount, 0 )/100) AS orderAmount,(ifnull( real_pay_amount, 0 )/100) AS realPayAmount,
- order_amount_unit as orderAmountUnit,paid_time as paidTime,refund_time as refundTime,order_status as orderStatus
- from order_master_v2 where id=#{id}
- </select>
-
- <update id="updateOrderMasterPayStatus" parameterType="java.util.Map">
- update order_master_v2 set order_status=#{payStatus} where order_number=#{orderNumber}
- </update>
-
- <select id="queryPayOrderByStatus" parameterType="java.util.Map" resultType="java.util.Map">
- select * from pay_order_v2 where m_order_number=#{orderNumber} and pay_status = #{payStatus}
- </select>
-
- <insert id="insertPayOder" parameterType="com.iformall.domain.dto.NeuPosUpdatePayDto">
- insert into pay_order_v2(m_order_number,trade_id,device_id,device_name,description,pay_type,pay_type_name,pay_amount,refunded_amount,
- time_expire,pay_status,pay_time,version,trade_type,created_at,created_by,updated_by,updated_at)
- values (#{orderNumber},#{tradeId},#{deviceId},#{deviceName},#{description},#{payType},#{payTypeName},#{realPayAmount},#{refundAmount},
- now(),#{payStatus},now(),1,"NATIVE",now(),"system","system",now())
- </insert>
-
- <select id="queryDeviceList" parameterType="java.util.Map" resultType="java.util.Map">
- select serial_no as serialNo,alias from device where status = 0 and organization_id = #{organizationId} and store_id = #{shopId}
- </select>
-
- <select id="queryUserShop" parameterType="java.util.Map" resultType="java.util.Map">
- SELECT us.`shop`,ui.id,ui.`username`,ui.`nickname` FROM user_info ui LEFT JOIN user_shop us ON ui.id = us.`usr`
- WHERE ui.org = #{orgId} AND ui.activated = TRUE AND ui.username = #{username}
- </select>
-
- <select id="queryShiftTradeList" parameterType="com.iformall.domain.po.NeuPosShiftTradeMasterExt" resultType="java.util.Map">
- select * from
- (select org_id, shop_id, username, serial_no,
- min(case when status=1 then created_at else '3109-12-30 23:59:59' end) as loginTime,
- max(case when status=2 and is_shift=1 then created_at else 0 end) as shiftTime
- from user_login_record
- where org_id = #{orgId} and created_at > #{createBegin} and created_at <= #{createEnd}
- <if test="customerNumber != null"> and username = #{customerNumber}</if>
- <if test="shopId != null"> and shop_id = #{shopId}</if>
- GROUP BY username) as a
- where shiftTime > 0
- </select>
-
- <select id="queryShiftTradeSummary" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map">
- SELECT
- po.createdBy,
- sum( IF ( po.payType = 6, po.paidAmount, 0 ) ) AS "6payType",
- sum( IF ( po.payType = 24, po.paidAmount, 0 ) ) AS "24payType",
- sum( IF ( po.payType = 31, po.paidAmount, 0 ) ) AS "31payType",
- sum( IF ( po.payType = 32, po.paidAmount, 0 ) ) AS "32payType",
- sum( IF ( po.payType = 6, IFNULL(ro.refundAmount,0), 0 ) ) AS "6payTypeRefund",
- sum( IF ( po.payType = 24, IFNULL(ro.refundAmount,0), 0 ) ) AS "24payTypeRefund",
- sum( IF ( po.payType = 31, IFNULL(ro.refundAmount,0), 0 ) ) AS "31payTypeRefund",
- sum( IF ( po.payType = 32, IFNULL(ro.refundAmount,0), 0 ) ) AS "32payTypeRefund",
- sum( IF ( po.createdHour > 12, po.paidAmount - IFNULL(ro.refundAmount,0), 0 ) ) AS pmPaidAmount,
- sum( IF ( 12 >= po.createdHour, po.paidAmount - IFNULL(ro.refundAmount, 0),0 ) ) AS amPaidAmount,
- sum( po.paidAmount - IFNULL(ro.refundAmount, 0) ) AS paidAmount
- FROM
- (
- SELECT
- o.created_by AS createdBy,
- o.order_number AS orderNumber,
- p.pay_type AS payType,
- p.pay_type_name AS payTypeName,
- sum( IFNULL( pay_amount, 0 ) ) / 100 AS paidAmount,
- HOUR ( o.created_at ) AS createdHour
- FROM
- pay_order_v2 AS p
- LEFT JOIN order_master_v2 AS o ON p.m_order_number = o.order_number
- where order_master_v2.org_id = #{orgId}
- <if test=" shopId != null">
- and order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" createBy != null">
- and pay_order_v2.created_by = #{createBy}
- </if>
- AND ( p.pay_status = 2 OR p.pay_status = 5 OR p.pay_status = 4 )
- AND p.pay_type != 29
- AND p.pay_type != 30
- GROUP BY
- o.order_number,
- p.pay_type
- ) AS po
- LEFT JOIN (
- SELECT
- o.order_number AS orderNumber,
- r.pay_type AS payType,
- sum( IFNULL( r.refunded_amount, 0 ) ) / 100 AS refundAmount
- FROM
- pay_refund_order_v2 AS r
- LEFT JOIN order_master_v2 AS o ON r.m_order_number = o.order_number
- where order_master_v2.org_id = #{orgId}
- <if test=" shopId != null">
- and order_master_v2.shop_id = #{shopId}
- </if>
- <if test=" createBegin != null">
- and pay_order_v2.created_at >= #{createBegin}
- </if>
- <if test=" createEnd != null">
- and pay_order_v2.created_at <= #{createEnd}
- </if>
- <if test=" createBy != null">
- and pay_order_v2.created_by = #{createBy}
- </if>
- AND ( r.refund_status = 2 )
- AND r.pay_type != 29
- AND r.pay_type != 30
- GROUP BY
- o.order_number,
- r.pay_type
- ) AS ro ON ro.orderNumber = po.orderNumber and po.payType=ro.payType
- GROUP BY
- createdBy
-
- </select>
- </mapper>
|