From 1d401fef814034b884e423879cda16f207e2c88b Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期日, 04 二月 2024 19:49:50 +0800 Subject: [PATCH] 2024-02-04 朱宝民 优化交易明细接口,合并交易统计接口 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java | 8 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java | 4 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 95 ---------- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java | 26 ++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java | 93 ++++++--- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 58 ------ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 27 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 31 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTransactionStatistics.java | 3 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java | 13 - pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml | 126 ++++++-------- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java | 2 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java | 30 +++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java | 4 14 files changed, 180 insertions(+), 340 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java index 214c071..9dc5e25 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java @@ -4,7 +4,6 @@ import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.voSe.*; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -59,36 +58,6 @@ */ /*List<VoTransaction> getTransactions(Map<?, ?> params);*/ List<VoTradeDetails> getTransactions(Map<?, ?> params); - - /** - * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗缁熻璁板綍鏁� - * @param params - * @return - */ - Long getTransactionStatisticsRecordCount(Map<?, ?> params); - - /** - * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗缁熻璁板綍 - * @param params - * @return - */ - List<VoTransactionStatistics> getTransactionStatistics(Map<?, ?> params); - - /** - * 鏍瑰熀鎸囧畾鏉′欢鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� - * @param params - * @return - */ - Map getTransactionStatisticsSums(Map<?, ?> params); - - /** - * 鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁� - * @param tradeDate - * @param paymentId - * @return - */ - //Float getPaymentSums(Map<?, ?> params); - Float getPaymentSums(@Param("tradeDate") String tradeDate, @Param("paymentId") Long paymentId); /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰曟暟 diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java index be931a5..a60681b 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeGeneralMapper.java @@ -64,14 +64,14 @@ * @param params * @return */ - Long getToAuditRecordCount(Map<?, ?> params); + //Long getToAuditRecordCount(Map<?, ?> params); /** - * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁� + * 寮�鍗$郴缁熶氦鏄撶粺璁★紝鏀堕摱鍛�+鏃ユ湡+绫诲瀷鍒嗙粍 * @param params * @return */ - List<VoTransactionStatistics> getToAudit(Map<?, ?> params); + List<VoTransactionStatistics> getSummaries(Map<?, ?> params); /** * 鑾峰彇鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰濆悎璁� @@ -80,13 +80,6 @@ * @return */ Float getPaymentSums(@Param("tradeDate") String tradeDate, @Param("cashierId") Long cashierId, @Param("paymentId") Long paymentId); - - /** - * 鏍瑰熀鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� - * @param params - * @return - */ - Map getTransactionStatisticsSums(Map<?, ?> params); /** * 鏍规嵁鏀堕摱鍛業D鍙婃棩鏈熻幏鍙栬储鍔″璐浜ゆ槗鏄庣粏璁板綍鏁� diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java index 9301699..b3943e2 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeGeneral.java @@ -69,11 +69,11 @@ private Double gift; /** - * 鎬婚 + * 杩旇繕閲戦 */ - @Schema(description = "鎬婚", requiredMode = Schema.RequiredMode.NOT_REQUIRED) - @NotNull(message = "鎬婚涓嶈兘涓虹┖") - private Double totalAmount; + @Schema(description = "杩旇繕閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotNull(message = "杩旇繕閲戦涓嶈兘涓虹┖") + private Double refundAmount; /** * 浜ゆ槗鏃ユ湡 diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java index b9fd28b..522b01a 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java @@ -31,8 +31,8 @@ @Schema(title = "璧犻�侀噾棰�") private Float gift; - @Schema(title = "鎬婚") - private Float totalAmount; + @Schema(title = "杩旇繕閲戦") + private Float refundAmount; @Schema(title = "浜ゆ槗鏃ユ湡") private String operateDate; diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTransactionStatistics.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTransactionStatistics.java index bf77769..28dd560 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTransactionStatistics.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTransactionStatistics.java @@ -31,6 +31,9 @@ @Schema(title = "璧犻�侀噾棰�") private Float gift; + @Schema(title = "杩旇繕閲戦") + private Float refundAmount; + @Schema(title = "鏀堕摱鍛業D") private String cashierId; } diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml index 039aa34..ce7af1c 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml @@ -359,64 +359,6 @@ </if> </select> - - <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗缁熻璁板綍鏁�--> - <select id="getTransactionStatisticsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> - SELECT - COUNT(*) AS recordCount - FROM v_transactionstatistics - <where> - <if test = "operateTimeStart != null and operateTimeStop != null"> - AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop} - </if> - </where> - </select> - - <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗缁熻璁板綍--> - <select id="getTransactionStatistics" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics"> - SELECT * FROM v_transactionstatistics - <where> - <if test = "operateTimeStart != null and operateTimeStop != null"> - AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop} - </if> - </where> - ORDER BY tradeDate - <if test="pageCurr != null and pageSize != null"> - LIMIT ${pageCurr}, ${pageSize} - </if> - </select> - - <!--鏍瑰熀鎸囧畾鏉′欢鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁�--> - <select id="getTransactionStatisticsSums" resultType="java.util.Map"> - SELECT - SUM(count) AS totalCount, - SUM(received) AS totalReceived, - SUM(gift) AS totalGift - FROM v_transactionstatistics - <where> - <if test = "operateTimeStart != null and operateTimeStop != null"> - AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop} - </if> - </where> - </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> - </where> - GROUP BY ope.payment_id, Date(ope.operate_dt) - </select> - <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰曟暟閲�--> <select id="getActiveCardRecordCount" parameterType="java.util.Map" resultType="java.lang.Long"> select 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 6cee85f..785e7b2 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml @@ -9,13 +9,13 @@ <result column="cashier_name" jdbcType="VARCHAR" property="cashierName" /> <result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" /> <result column="gift" jdbcType="FLOAT" property="gift" /> - <result column="total_amount" jdbcType="FLOAT" property="totalAmount" /> + <result column="refund_amount" jdbcType="FLOAT" property="refundAmount" /> <result column="operate_date" jdbcType="TIMESTAMP" property="operateDate" /> <result column="audit_status" jdbcType="TINYINT" property="auditStatus" /> </resultMap> <sql id="Base_Column_List"> <!--@mbg.generated--> - id, cashier_id, cashier_name, trade_amount, gift, total_amount, operate_date, audit_status + id, cashier_id, cashier_name, trade_amount, gift, refund_amount, operate_date, audit_status </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <!--@mbg.generated--> @@ -32,10 +32,10 @@ <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> <!--@mbg.generated--> insert into se_general (id, cashier_id, cashier_name, - trade_amount, gift, total_amount, + trade_amount, gift, refund_amount, operate_date, audit_status) values (#{id,jdbcType=BIGINT}, #{cashierId,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR}, - #{tradeAmount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{totalAmount,jdbcType=FLOAT}, + #{tradeAmount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{refundAmount,jdbcType=FLOAT}, #{operateDate,jdbcType=TIMESTAMP}, #{auditStatus,jdbcType=TINYINT}) </insert> <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral"> @@ -57,8 +57,8 @@ <if test="gift != null"> gift, </if> - <if test="totalAmount != null"> - total_amount, + <if test="refundAmount != null"> + refund_amount, </if> <if test="operateDate != null"> operate_date, @@ -83,8 +83,8 @@ <if test="gift != null"> #{gift,jdbcType=FLOAT}, </if> - <if test="totalAmount != null"> - #{totalAmount,jdbcType=FLOAT}, + <if test="refundAmount != null"> + #{refundAmount,jdbcType=FLOAT}, </if> <if test="operateDate != null"> #{operateDate,jdbcType=TIMESTAMP}, @@ -110,8 +110,8 @@ <if test="gift != null"> gift = #{gift,jdbcType=FLOAT}, </if> - <if test="totalAmount != null"> - total_amount = #{totalAmount,jdbcType=FLOAT}, + <if test="refundAmount != null"> + refund_amount = #{refundAmount,jdbcType=FLOAT}, </if> <if test="operateDate != null"> operate_date = #{operateDate,jdbcType=TIMESTAMP}, @@ -129,7 +129,7 @@ cashier_name = #{cashierName,jdbcType=VARCHAR}, trade_amount = #{tradeAmount,jdbcType=FLOAT}, gift = #{gift,jdbcType=FLOAT}, - total_amount = #{totalAmount,jdbcType=FLOAT}, + refund_amount = #{refundAmount,jdbcType=FLOAT}, operate_date = #{operateDate,jdbcType=TIMESTAMP}, audit_status = #{auditStatus,jdbcType=TINYINT} where id = #{id,jdbcType=BIGINT} @@ -146,28 +146,28 @@ <!--鏍规嵁浜ゆ槗鏃ユ湡鑾峰彇鎬昏处璁板綍鍒楄〃锛堝緟鐢熸垚鐨勶級 --> <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, - IFNULL((SUM(ope.trade_amount) + SUM(ope.gift)),0) AS totalAmount, - Date(ope.operate_dt) AS operateDate, - 1 AS auditStatus + us.id AS cashierId, + us.`name` AS cashierName, + (IFNULL(SUM(ope.trade_amount),0) + IFNULL(SUM(ope.card_cost),0)) AS tradeAmount, + IFNULL(SUM(ope.gift),0) AS gift, + IFNULL(SUM(ope.refund_amount),0) AS refundAmount, + Date(ope.operate_dt) AS operateDate, + 1 AS auditStatus FROM se_card_operate ope - INNER JOIN ba_user us ON ope.operator = us.id + 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 + 1000000 AS cashierId, + '寰俊' AS cashierName, + IFNULL(SUM(amount), 0) AS tradeAmount, + 0 AS gift, + 0 AS refundAmount, + Date(recharge_time) AS operateDate, + 1 AS auditStatus FROM se_wallet_recharge WHERE Date(recharge_time) = #{operateDate} GROUP BY Date(recharge_time) @@ -175,13 +175,13 @@ 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 + 1000000 AS cashierId, + '寰俊' AS cashierName, + IFNULL(-SUM(refund_amount), 0) AS tradeAmount, + 0 AS gift, + 0 AS refundAmount, + Date(audit_time) AS operateDate, + 1 AS auditStatus FROM se_refund WHERE Date(audit_time) = #{operateDate} GROUP BY Date(audit_time) @@ -215,7 +215,7 @@ cashier_name AS cashierName, trade_amount AS tradeAmount, gift, - total_amount AS totalAmount, + refund_amount AS refundAmount, Date(operate_date) AS operateDate, (CASE WHEN audit_status = 1 THEN "鏈鏍�" @@ -265,50 +265,32 @@ 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> +<!-- <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> +<!-- <if test = "tradeDate != null">--> +<!-- AND tradeDate = #{tradeDate}--> +<!-- </if>--> +<!-- </where>--> +<!-- </select>--> - <!--璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡+绫诲瀷鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁�--> - <select id="getToAudit" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics"> + <!--寮�鍗$郴缁熶氦鏄撶粺璁★紝鏀堕摱鍛�+鏃ユ湡+绫诲瀷鍒嗙粍--> + <select id="getSummaries" 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 test = "timeStart != null and timeStop != null"> + AND Date(tradeDate) BETWEEN #{timeStart} AND #{timeStop} </if> </where> ORDER BY tradeDate @@ -325,7 +307,7 @@ </if> <if test = "tradeDate != null"> - AND tradeDate = #{tradeDate} + AND Date(tradeTime) = #{tradeDate} </if> </where> </select> @@ -338,8 +320,8 @@ AND cashierId = ${cashierId} </if> - <if test = "tradeTime != null"> - AND tradeTime = #{tradeTime} + <if test = "tradeDate != null"> + AND Date(tradeTime) = #{tradeDate} </if> </where> ORDER BY tradeTime diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java index 5bfd02b..5a55ad5 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java @@ -830,33 +830,6 @@ /** - * 鑾峰彇浜ゆ槗姹囨�昏褰� - * @param vo - * @return - */ - @Operation(summary = "鑾峰緱浜ゆ槗姹囨�昏褰�", description = "杩斿洖浜ゆ槗姹囨�昏褰�") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaClient.class))} - ) - }) - @GetMapping(path = "getStatistics") - @SsoAop() - public BaseResponse<Map> getStatistics(QoTransactionStatistics vo){ - try { - Map res = cardOperateSv.getTransactionStatistics(vo); - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } - - - /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰� * @param vo * @return diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java index a6aa80d..081c671 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java @@ -25,8 +25,6 @@ import org.springframework.stereotype.Service; import java.text.DecimalFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; /** @@ -284,99 +282,6 @@ map_result.put("waterCost", df.format(totalWaterCost)); map_result.put("cardCost", df.format(totalCardCost)); map_result.put("records", map_record); - - return map_result; - } - - /** - * 鑾峰彇浜ゆ槗缁熻璁板綍 - * 1.浜ゆ槗缁熻璁板綍 - * 2.绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� - * 3.姣忎竴澶┿�佸悇绉嶆敮浠樻柟寮忓疄鏀堕噾棰濆悎璁� - * @param vo - * @return - */ - public Map getTransactionStatistics(QoTransactionStatistics vo) throws ParseException { - /** - * 閬嶅巻鏌ヨ鏃ユ湡锛屽彇鍑烘瘡澶╀笁绉嶆敮浠樻柟寮忥紙鐜伴噾銆佹壂鐮併�佽浆璐︼級瀹炴敹閲戦 - * 姣忓ぉ涓�涓璞� - * 瀵硅薄缁勬垚JSONArray娣诲姞鍒拌繑鍥炲璞′腑 - */ - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - Date startDate = dateFormat.parse(vo.getOperateTimeStart()); - Date stopDate = dateFormat.parse(vo.getOperateTimeStop()); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - - JSONArray array_paymentSums = new JSONArray(); - while (calendar.getTime().before(stopDate) || calendar.getTime().equals(stopDate)) { - String tradeDate = dateFormat.format(calendar.getTime()) ; - Float receivedCash = Optional.ofNullable(seCardOperateMapper.getPaymentSums(tradeDate ,1L)).orElse(0f); - Float receivedQRCode = Optional.ofNullable(seCardOperateMapper.getPaymentSums(tradeDate,2L)).orElse(0f); - Float receivedTransfer = Optional.ofNullable(seCardOperateMapper.getPaymentSums(tradeDate, 3L)).orElse(0f); - JSONObject job = new JSONObject(); - job.put("tradeDate", tradeDate); - job.put("receivedCash", receivedCash); - job.put("receivedQRCode", receivedQRCode); - job.put("receivedTransfer", receivedTransfer); - - array_paymentSums.add(job); - calendar.add(Calendar.DAY_OF_MONTH, 1); - } - - - // 琛ラ綈鏌ヨ鏃堕棿 - String operateTimeStart = vo.operateTimeStart; - String operateTimeStop = vo.operateTimeStop; - if(operateTimeStart != null) { - operateTimeStart = operateTimeStart + " 00:00:00"; - vo.setOperateTimeStart(operateTimeStart); - } - if(operateTimeStop != null) { - operateTimeStop = operateTimeStop + " 23:59:59"; - vo.setOperateTimeStop(operateTimeStop); - } - - // 鐢熸垚鏌ヨ鍙傛暟 - Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; - - //鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� - Integer totalCount = 0; - Float totalReceived = 0f; - Float totalGift = 0f; - Map map_sum = Optional.ofNullable(seCardOperateMapper.getTransactionStatisticsSums(params)).orElse(new HashMap()); - if(map_sum.size() > 0) { - totalCount = Integer.parseInt(map_sum.get("totalCount").toString()); - totalReceived = Float.parseFloat(map_sum.get("totalReceived").toString()); - totalGift = Float.parseFloat(map_sum.get("totalGift").toString()); - } - - // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 - Long itemTotal = seCardOperateMapper.getTransactionStatisticsRecordCount(params); - - Integer pageSize = vo.getPageSize(); - // 璁$畻鎬婚〉鏁� - Integer pageTotal ; - pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize); - - // 鏍规嵁褰撳墠椤电爜鍙婃瘡椤垫暟閲忚绠楀亸绉婚噺 - Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); - params.put("pageCurr", pageCurr); - - List<VoTransactionStatistics> list = seCardOperateMapper.getTransactionStatistics(params); - Map map_record = new HashMap(); - map_record.put("itemTotal", itemTotal); - map_record.put("pageCurr", vo.pageCurr); - map_record.put("pageSize", pageSize); - map_record.put("pageTotal", pageTotal); - map_record.put("list", list); - - Map map_result = new HashMap(); - map_result.put("totalCount", totalCount); - map_result.put("totalReceived", totalReceived); - map_result.put("totalGift", totalGift); - map_result.put("records", map_record); - map_result.put("paymentSums", array_paymentSums); return map_result; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java index b50c13e..7c177b2 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java @@ -11,6 +11,7 @@ import com.dy.pipIrrGlobal.voSe.VoGeneral; import com.dy.pipIrrSell.general.dto.DtoGeneral; import com.dy.pipIrrSell.general.qo.QoGeneral; +import com.dy.pipIrrSell.general.qo.QoSummary; import com.dy.pipIrrSell.general.qo.QoToAudit; import com.dy.pipIrrSell.result.SellResultCode; import io.swagger.v3.oas.annotations.Operation; @@ -65,7 +66,11 @@ try { add_general(); QueryResultVo<List<VoGeneral>> res = generalSv.getGenerals(vo); - return BaseResponseUtils.buildSuccess(res); + if(res.itemTotal > 0) { + return BaseResponseUtils.buildSuccess(res); + }else { + return BaseResponseUtils.buildFail(SellResultCode.No_GENERALS.getMessage()); + } } catch (Exception e) { log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; @@ -166,12 +171,15 @@ return BaseResponseUtils.buildSuccess() ; } + /** - * 鑾峰緱寰呭鏍镐氦鏄撴眹鎬昏褰� + * 寮�鍗$郴缁熶氦鏄撴眹鎬绘煡璇笌瀵硅处绯荤粺浜ゆ槗姹囨�绘煡璇㈠叡鐢ㄦ帴鍙� + * 寮�鍗$郴缁熷弬鏁帮細鏀堕摱鍛業D銆佹煡璇㈣捣姝㈡棩鏈� + * 瀵硅处绯荤粺鍙傛暟锛氭敹閾跺憳ID銆佷氦鏄撴棩鏈� * @param vo * @return */ - @Operation(summary = "鑾峰緱寰呭鏍镐氦鏄撴眹鎬昏褰�", description = "杩斿洖寰呭鏍镐氦鏄撴眹鎬昏褰�") + @Operation(summary = "鑾峰緱寮�鍗$郴缁熶氦鏄撶粺璁¤褰�", description = "杩斿洖寮�鍗$郴缁熶氦鏄撶粺璁¤褰�") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, @@ -180,12 +188,16 @@ schema = @Schema(implementation = BaClient.class))} ) }) - @GetMapping(path = "getToAudit") + @GetMapping(path = "getSummaries") @SsoAop() - public BaseResponse<Map> getToAudit(QoToAudit vo){ + public BaseResponse<Map> getSummaries(QoSummary vo){ try { - Map res = generalSv.getToAudit(vo); - return BaseResponseUtils.buildSuccess(res); + Map res = generalSv.getSummaries(vo); + if(res.size() > 0) { + return BaseResponseUtils.buildSuccess(res); + }else { + return BaseResponseUtils.buildFail(SellResultCode.No_TRADE_SUMMARIES.getMessage()); + } } catch (Exception e) { log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e); return BaseResponseUtils.buildException(e.getMessage()) ; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java index 58eb1c7..83c819e 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java @@ -11,6 +11,7 @@ import com.dy.pipIrrGlobal.voSe.VoTradeDetails; import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics; import com.dy.pipIrrSell.general.qo.QoGeneral; +import com.dy.pipIrrSell.general.qo.QoSummary; import com.dy.pipIrrSell.general.qo.QoToAudit; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; @@ -18,6 +19,8 @@ import org.springframework.stereotype.Service; import java.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -118,65 +121,91 @@ return seAuditsMapper.insert(po); } + /** - * 璐㈠姟瀵硅处瀹℃牳椤碉紝鏀堕摱鍛�+鏃ユ湡鍒嗙粍锛屾帓闄や氦鏄撶被鍨嬪垎缁� + * 寮�鍗$郴缁熶氦鏄撴眹鎬绘煡璇笌瀵硅处绯荤粺浜ゆ槗姹囨�绘煡璇㈠叡鐢ㄦ湇鍔″疄鐜扮被 * @param vo * @return + * @throws ParseException */ - public Map getToAudit(QoToAudit vo) { + public Map getSummaries(QoSummary vo) throws ParseException { DecimalFormat df = new DecimalFormat("0.00"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - // 鎺ユ敹浼犲叆鍙傛暟锛氭搷浣滄棩鏈熴�佹敹閾跺憳ID + // 鎺ユ敹浼犲叆鍙傛暟锛氫氦鏄撹捣姝㈡棩鏈熴�佹敹閾跺憳ID JSONArray array_paymentSums = new JSONArray(); - String tradeDate = vo.getTradeTime(); + Date timeStart = dateFormat.parse(vo.getTimeStart()); + Date timeStop = dateFormat.parse(vo.getTimeStop()); Long cashierId = vo.cashierId; - // 鍒嗗埆璁$畻鎸囧畾鏃ユ湡銆佹寚瀹氭敹閾跺憳銆佹寚瀹氭敮浠樻柟寮忓疄鏀堕噾棰� - Float receivedCash = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 1L)).orElse(0f); - Float receivedQRCode = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId,2L)).orElse(0f); - Float receivedTransfer = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 3L)).orElse(0f); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(timeStart); + while (calendar.getTime().before(timeStop) || calendar.getTime().equals(timeStop)) { + String tradeDate = dateFormat.format(calendar.getTime()) ; + if(cashierId != 1000000L) { + Float receivedCash = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 1L)).orElse(0f); + Float receivedQRCode = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId,2L)).orElse(0f); + Float receivedTransfer = Optional.ofNullable(seGeneralMapper.getPaymentSums(tradeDate, cashierId, 3L)).orElse(0f); - // 鍒嗙骇璁$畻鎸囧畾鏃ユ湡寰俊鏀堕��娆惧悎璁★紝鍐嶈绠楀疄鏀堕噾棰� - Double rechargeWeChat = Optional.ofNullable(seWalletRechargeMapper.getRechargeSum(tradeDate)).orElse(0.0); - Double refundWeChat = Optional.ofNullable(seRefundMapper.getRefundSum(tradeDate)).orElse(0.0); - Double receiveWeChat = rechargeWeChat - refundWeChat; + JSONObject job = new JSONObject(); + job.put("tradeDate", tradeDate); + job.put("receivedCash", receivedCash); + job.put("receivedQRCode", receivedQRCode); + job.put("receivedTransfer", receivedTransfer); + array_paymentSums.add(job); - // 鍥涚鏀粯鏂瑰紡瀹炴敹閲戦鍚堣鍐欏叆杩斿洖瀵硅薄锛堝啓鍏ュ墠鏍煎紡鍖栵級 - JSONObject job = new JSONObject(); - job.put("tradeDate", tradeDate); - job.put("receivedCash", df.format(receivedCash)); - job.put("receivedQRCode", df.format(receivedQRCode)); - job.put("receivedTransfer", df.format(receivedTransfer)); - job.put("receiveWeChat", df.format(receiveWeChat)); - array_paymentSums.add(job); + }else { + // 鍒嗙骇璁$畻鎸囧畾鏃ユ湡寰俊鏀堕��娆惧悎璁★紝鍐嶈绠楀疄鏀堕噾棰� + Double rechargeWeChat = Optional.ofNullable(seWalletRechargeMapper.getRechargeSum(tradeDate)).orElse(0.0); + Double refundWeChat = Optional.ofNullable(seRefundMapper.getRefundSum(tradeDate)).orElse(0.0); + Double receiveWeChat = rechargeWeChat - refundWeChat; + + // 寰俊瀹炴敹閲戦鍐欏叆杩斿洖瀵硅薄锛堝啓鍏ュ墠鏍煎紡鍖栵級 + JSONObject job = new JSONObject(); + job.put("receiveWeChat", df.format(receiveWeChat)); + array_paymentSums.add(job); + } + calendar.add(Calendar.DAY_OF_MONTH, 1); + } // 鐢熸垚鏌ヨ鍙傛暟 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; - //鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟(浠g爜鍏ㄩ儴娉ㄩ噴鎺変簡锛屾病鍒�) + //Long itemTotal = seGeneralMapper.getToAuditRecordCount(params); + + /** + * 鏍规嵁鏀堕摱鍛樼紪鍙枫�佷氦鏄撴棩鏈熸煡璇㈡眹鎬昏褰� + * 閬嶅巻姹囨�昏褰曟煡璇㈢粨鏋滐紝璁$畻绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁°�佽繑杩橀噾棰濆悎璁� + */ + List<VoTransactionStatistics> list = Optional.ofNullable(seGeneralMapper.getSummaries(params)).orElse(new ArrayList<>()); + if(list.size() == 0) { + return new HashMap(); + } + Integer totalCount = 0; Float totalReceived = 0f; Float totalGift = 0f; - Map map_sum = Optional.ofNullable(seGeneralMapper.getTransactionStatisticsSums(params)).orElse(new HashMap()); - if(map_sum.size() > 0) { - totalCount = Integer.parseInt(map_sum.get("totalCount").toString()); - totalReceived = Float.parseFloat(map_sum.get("totalReceived").toString()); - totalGift = Float.parseFloat(map_sum.get("totalGift").toString()); + Float totalRefund = 0f; + JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); + for(int i = 0; i < array.size(); i++) { + JSONObject job_summary = array.getJSONObject(i); + totalCount = totalCount + Optional.ofNullable(job_summary.getInteger("count")).orElse(0); + totalReceived = totalReceived + Optional.ofNullable(job_summary.getFloat("received")).orElse(0f); + totalGift = totalGift + Optional.ofNullable(job_summary.getFloat("gift")).orElse(0f); + totalRefund = totalRefund + Optional.ofNullable(job_summary.getFloat("refundAmount")).orElse(0f); } - // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 - Long itemTotal = seGeneralMapper.getToAuditRecordCount(params); - - List<VoTransactionStatistics> list = seGeneralMapper.getToAudit(params); Map map_record = new HashMap(); - map_record.put("itemTotal", itemTotal); - map_record.put("pageCurr", vo.pageCurr); + //map_record.put("itemTotal", itemTotal); map_record.put("list", list); Map map_result = new HashMap(); map_result.put("totalCount", totalCount); map_result.put("totalReceived", totalReceived); map_result.put("totalGift", totalGift); + map_result.put("totalRefund", totalRefund); + map_result.put("records", map_record); map_result.put("paymentSums", array_paymentSums); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java new file mode 100644 index 0000000..313d0db --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java @@ -0,0 +1,30 @@ +package com.dy.pipIrrSell.general.qo; + +import com.dy.common.webUtil.QueryConditionVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +/** + * @author ZhuBaoMin + * @date 2024-02-04 17:15 + * @LastEditTime 2024-02-04 17:15 + * @Description + */ + +@Data +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = true) +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Schema(name = "浜ゆ槗姹囨�绘煡璇㈡潯浠�") +public class QoSummary extends QueryConditionVo { + @Schema(description = "鏌ヨ璧峰鏃ユ湡") + public String timeStart; + + @Schema(description = "鏌ヨ鎴鏃ユ湡") + public String timeStop; + + @Schema(description = "鏀堕摱鍛業D") + public Long cashierId; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java index 192927c..d4f0b5c 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoToAudit.java @@ -19,8 +19,8 @@ @Builder @Schema(name = "寰呭鏍镐氦鏄撴眹鎬绘煡璇㈡潯浠�") public class QoToAudit extends QueryConditionVo { - @Schema(description = "浜ゆ槗鏃堕棿") - public String tradeTime; + @Schema(description = "浜ゆ槗鏃ユ湡") + public String tradeDate; @Schema(description = "鏀堕摱鍛業D") public Long cashierId; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java index faa44e9..5820bee 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java @@ -102,6 +102,8 @@ /** * 璐㈠姟瀵硅处 */ + No_GENERALS(100001, "娌℃湁绗﹀悎鏉′欢鐨勬�昏处璁板綍"), + No_TRADE_SUMMARIES(100001, "娌℃湁绗﹀悎鏉′欢鐨勪氦鏄撴眹鎬昏褰�"), No_TRADE_DETAILS(100001, "娌℃湁绗﹀悎鏉′欢鐨勪氦鏄撴槑缁�"); private final Integer code; -- Gitblit v1.8.0