From a5805426672ef5b28f1d829232527a55792d7250 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期五, 02 二月 2024 10:40:39 +0800
Subject: [PATCH] 2024-02-02 朱宝民 优化交易汇总视图和交易明细视图

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml |  187 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 165 insertions(+), 22 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
index 8e5ea53..3a9f834 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml
@@ -5,6 +5,7 @@
     <!--@mbg.generated-->
     <!--@Table se_general-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="cashier_id" jdbcType="BIGINT" property="cashierId" />
     <result column="cashier_name" jdbcType="VARCHAR" property="cashierName" />
     <result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" />
     <result column="gift" jdbcType="FLOAT" property="gift" />
@@ -14,7 +15,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cashier_name, trade_amount, gift, total_amount, operate_date, audit_status
+    id, cashier_id, cashier_name, trade_amount, gift, total_amount, operate_date, audit_status
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -30,12 +31,12 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     <!--@mbg.generated-->
-    insert into se_general (id, cashier_name, trade_amount, 
-      gift, total_amount, operate_date, 
-      audit_status)
-    values (#{id,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR}, #{tradeAmount,jdbcType=FLOAT}, 
-      #{gift,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, #{operateDate,jdbcType=TIMESTAMP}, 
-      #{auditStatus,jdbcType=TINYINT})
+    insert into se_general (id, cashier_id, cashier_name, 
+      trade_amount, gift, total_amount, 
+      operate_date, audit_status)
+    values (#{id,jdbcType=BIGINT}, #{cashierId,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR}, 
+      #{tradeAmount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, 
+      #{operateDate,jdbcType=TIMESTAMP}, #{auditStatus,jdbcType=TINYINT})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     <!--@mbg.generated-->
@@ -43,6 +44,9 @@
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
+      </if>
+      <if test="cashierId != null">
+        cashier_id,
       </if>
       <if test="cashierName != null">
         cashier_name,
@@ -66,6 +70,9 @@
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
+      </if>
+      <if test="cashierId != null">
+        #{cashierId,jdbcType=BIGINT},
       </if>
       <if test="cashierName != null">
         #{cashierName,jdbcType=VARCHAR},
@@ -91,6 +98,9 @@
     <!--@mbg.generated-->
     update se_general
     <set>
+      <if test="cashierId != null">
+        cashier_id = #{cashierId,jdbcType=BIGINT},
+      </if>
       <if test="cashierName != null">
         cashier_name = #{cashierName,jdbcType=VARCHAR},
       </if>
@@ -115,7 +125,8 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     <!--@mbg.generated-->
     update se_general
-    set cashier_name = #{cashierName,jdbcType=VARCHAR},
+    set cashier_id = #{cashierId,jdbcType=BIGINT},
+      cashier_name = #{cashierName,jdbcType=VARCHAR},
       trade_amount = #{tradeAmount,jdbcType=FLOAT},
       gift = #{gift,jdbcType=FLOAT},
       total_amount = #{totalAmount,jdbcType=FLOAT},
@@ -135,6 +146,7 @@
   <!--鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級  -->
   <select id="getGeneralByOperateDate" resultType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
     SELECT
+      us.id AS cashierId,
       us.`name` AS cashierName,
       IFNULL(SUM(ope.trade_amount),0) AS tradeAmount,
       IFNULL(SUM(ope.gift),0) AS gift,
@@ -145,12 +157,40 @@
       INNER JOIN ba_user us ON ope.operator = us.id
     WHERE Date(ope.operate_dt) = #{operateDate}
     GROUP BY ope.operator, Date(ope.operate_dt)
+
+    UNION ALL
+
+    SELECT
+      1000000 AS cashierId,
+      '寰俊' AS cashierName,
+      IFNULL(SUM(amount), 0) AS tradeAmount,
+      0 AS gift,
+      IFNULL(SUM(amount), 0) AS totalAmount,
+      Date(recharge_time) AS operateDate,
+      1 AS auditStatus
+    FROM se_wallet_recharge
+    WHERE Date(recharge_time) = #{operateDate}
+    GROUP BY Date(recharge_time)
+
+    UNION ALL
+
+    SELECT
+      1000000 AS cashierId,
+      '寰俊' AS cashierName,
+      IFNULL(-SUM(refund_amount), 0) AS tradeAmount,
+      0 AS gift,
+      IFNULL(-SUM(refund_amount), 0) AS totalAmount,
+      Date(audit_time) AS operateDate,
+      1 AS auditStatus
+    FROM se_refund
+    WHERE Date(audit_time) = #{operateDate}
+    GROUP BY Date(audit_time)
   </select>
 
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍鏁�-->
   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
-        COUNT(*) AS recordCount
+    COUNT(*) AS recordCount
     FROM se_general
     <where>
       <if test = "cashierName != null and cashierName !=''">
@@ -170,16 +210,17 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鎬昏处璁板綍-->
   <select id="getGenerals" resultType="com.dy.pipIrrGlobal.voSe.VoGeneral">
     SELECT
-      id AS generalId,
-      cashier_name AS cashierName,
-      trade_amount AS tradeAmount,
-      gift,
-      total_amount AS totalAmount,
-      Date(operate_date) AS operateDate,
-      (CASE
-         WHEN audit_status = 1 THEN "鏈鏍�"
-         WHEN audit_status = 2 THEN "鍚屾剰"
-         WHEN audit_status = 3 THEN "椹冲洖"
+        CAST(id AS  char) AS generalId,
+        CAST(cashier_id AS char) AS cashierId,
+        cashier_name AS cashierName,
+        trade_amount AS tradeAmount,
+        gift,
+        total_amount AS totalAmount,
+        Date(operate_date) AS operateDate,
+        (CASE
+          WHEN audit_status = 1 THEN "鏈鏍�"
+          WHEN audit_status = 2 THEN "鍚屾剰"
+          WHEN audit_status = 3 THEN "椹冲洖"
         END) AS auditStatus
     FROM se_general
     <where>
@@ -196,9 +237,111 @@
       </if>
     </where>
     ORDER BY Date(operate_date) DESC
-    <if test="pageCurr != null and pageSize != null">
-      LIMIT ${pageCurr}, ${pageSize}
-    </if>
+    <trim prefix="limit " >
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
   </select>
 
+  <!--鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁�-->
+  <select id="getPaymentSums" resultType="java.lang.Float">
+    SELECT
+    SUM(ope.trade_amount) AS tradeAmount
+    FROM se_card_operate ope
+    <where>
+      <if test = "tradeDate != null and tradeDate !=''">
+        AND Date(ope.operate_dt) = #{tradeDate}
+      </if>
+
+      <if test = "paymentId != null and paymentId >0">
+        AND ope.payment_id = ${paymentId}
+      </if>
+
+      <if test = "cashierId != null and cashierId >0">
+        AND ope.operator = ${cashierId}
+      </if>
+    </where>
+    GROUP BY ope.payment_id,  Date(ope.operate_dt)
+  </select>
+
+  <!--鏍瑰熀鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�-->
+  <select id="getTransactionStatisticsSums" resultType="java.util.Map">
+    SELECT
+      SUM(count) AS totalCount,
+      SUM(received) AS totalReceived,
+      SUM(gift) AS totalGift
+    FROM v_trade_summary
+    <where>
+      <if test = "tradeDate != null and tradeDate !=''">
+        AND tradeDate = #{tradeDate}
+      </if>
+
+      <if test = "cashierId != null and cashierId >0">
+        AND cashierId = ${cashierId}
+      </if>
+    </where>
+  </select>
+
+  <!--  璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁勶紝璁板綍鏁�-->
+  <select id="getToAuditRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
+    SELECT
+    COUNT(*) AS recordCount
+    FROM v_trade_summary
+    <where>
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeDate != null">
+        AND tradeDate = #{tradeDate}
+      </if>
+    </where>
+  </select>
+
+  <!--璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡+绫诲瀷鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁�-->
+  <select id="getToAudit" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics">
+    SELECT * FROM v_trade_summary
+    <where>
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeDate != null">
+        AND tradeDate = #{tradeDate}
+      </if>
+    </where>
+    ORDER BY tradeDate
+  </select>
+
+  <!--  鏍规嵁鏀堕摱鍛業D鍙婃棩鏈熻幏鍙栬储鍔″璐浜ゆ槗鏄庣粏璁板綍鏁�-->
+  <select id="getTradeDetailsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM v_trade_details
+    <where>
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeDate != null">
+        AND tradeDate = #{tradeDate}
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鏀堕摱鍛業D鍙婃棩鏈熻幏鍙栬储鍔″璐浜ゆ槗鏄庣粏璁板綍-->
+  <select id="getTradeDetails" resultType="com.dy.pipIrrGlobal.voSe.VoTradeDetails">
+    SELECT * FROM v_trade_details
+    <where>
+      <if test = "cashierId != null and cashierId > 0">
+        AND cashierId = ${cashierId}
+      </if>
+
+      <if test = "tradeDate != null">
+        AND tradeDate = #{tradeDate}
+      </if>
+    </where>
+    ORDER BY tradeDate
+  </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0