From 78082b601d0eda9b820fbeba9a01fbfeb5309692 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期五, 08 十一月 2024 14:27:51 +0800
Subject: [PATCH] 1.供应商-钱包:统计修改
---
src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java | 6 +
src/main/java/com/mzl/flower/service/impl/wallet/WalletReduceServiceImpl.java | 5 +
src/main/resources/mapper/wallet/WalletMapper.xml | 44 ++++++++++++++
src/main/java/com/mzl/flower/mapper/wallet/WalletReduceMapper.java | 2
src/main/java/com/mzl/flower/dto/response/wallet/WalletReduceVO.java | 3 +
src/main/java/com/mzl/flower/service/wallet/WalletReduceService.java | 7 ++
src/main/resources/mapper/wallet/WalletReduceMapper.xml | 86 ++++++++++++++++++++++------
7 files changed, 130 insertions(+), 23 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/response/wallet/WalletReduceVO.java b/src/main/java/com/mzl/flower/dto/response/wallet/WalletReduceVO.java
index e6e59d9..859f008 100644
--- a/src/main/java/com/mzl/flower/dto/response/wallet/WalletReduceVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/wallet/WalletReduceVO.java
@@ -25,5 +25,8 @@
@ApiModelProperty(value = "供应商ID")
private Long supplierId;
+ @ApiModelProperty(value = "支付时间")
+ private String paymentTime;
+
}
diff --git a/src/main/java/com/mzl/flower/mapper/wallet/WalletReduceMapper.java b/src/main/java/com/mzl/flower/mapper/wallet/WalletReduceMapper.java
index 0148a84..f44e21a 100644
--- a/src/main/java/com/mzl/flower/mapper/wallet/WalletReduceMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/wallet/WalletReduceMapper.java
@@ -30,4 +30,6 @@
BigDecimal getCheckReduceAmount(@Param("dto") QueryWalletAmountDTO queryWalletAmountDTO);
BigDecimal getSaleReduceAmount(@Param("dto")QueryWalletAmountDTO queryWalletAmountDTO);
+
+ BigDecimal getStationFeeAmount(@Param("dto") QueryWalletAmountDTO queryWalletAmountDTO);
}
diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletReduceServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletReduceServiceImpl.java
index eefd7a7..7165124 100644
--- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletReduceServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletReduceServiceImpl.java
@@ -42,4 +42,9 @@
public BigDecimal getSaleReduceAmount(QueryWalletAmountDTO queryWalletAmountDTO) {
return walletReduceMapper.getSaleReduceAmount(queryWalletAmountDTO);
}
+
+ @Override
+ public BigDecimal getStationFeeAmount(QueryWalletAmountDTO queryWalletAmountDTO) {
+ return walletReduceMapper.getStationFeeAmount(queryWalletAmountDTO);
+ }
}
diff --git a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java
index 1f3d758..161cc3e 100644
--- a/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/wallet/WalletServiceImpl.java
@@ -171,8 +171,12 @@
BigDecimal saleDeduceAmount = walletReduceService.getSaleReduceAmount(queryWalletAmountDTO);
saleDeduceAmount = saleDeduceAmount != null ? saleDeduceAmount : BigDecimal.ZERO;
+ // 集货站运费
+ BigDecimal stationFeeAmount = walletReduceService.getStationFeeAmount(queryWalletAmountDTO);
+ stationFeeAmount = stationFeeAmount != null ? stationFeeAmount : BigDecimal.ZERO;
+
// 总扣款
- BigDecimal deduceAmount = checkDeduceAmount.add(saleDeduceAmount);
+ BigDecimal deduceAmount = checkDeduceAmount.add(saleDeduceAmount).add(stationFeeAmount);
return deduceAmount;
}
diff --git a/src/main/java/com/mzl/flower/service/wallet/WalletReduceService.java b/src/main/java/com/mzl/flower/service/wallet/WalletReduceService.java
index a1c9b8f..e26494d 100644
--- a/src/main/java/com/mzl/flower/service/wallet/WalletReduceService.java
+++ b/src/main/java/com/mzl/flower/service/wallet/WalletReduceService.java
@@ -35,4 +35,11 @@
* @return
*/
BigDecimal getSaleReduceAmount(QueryWalletAmountDTO queryWalletAmountDTO);
+
+ /**
+ * 获取集货站扣款数量
+ * @param queryWalletAmountDTO
+ * @return
+ */
+ BigDecimal getStationFeeAmount(QueryWalletAmountDTO queryWalletAmountDTO);
}
diff --git a/src/main/resources/mapper/wallet/WalletMapper.xml b/src/main/resources/mapper/wallet/WalletMapper.xml
index 51d5ce4..9131387 100644
--- a/src/main/resources/mapper/wallet/WalletMapper.xml
+++ b/src/main/resources/mapper/wallet/WalletMapper.xml
@@ -23,7 +23,9 @@
</resultMap>
<select id="getWaittingSettlementAmount" resultType="java.math.BigDecimal">
- <include refid="supplier_settlement_amount"></include>
+ <!-- <include refid="supplier_settlement_amount"></include>-->
+ <include refid="supplier_settlement_amount_timing"></include>
+
</select>
<!-- 总交易额-->
@@ -32,7 +34,9 @@
from t_order_item oi
left join t_order o
on oi.order_id = o.id
- where oi.supplier_id = #{dto.supplierId}
+ where o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND')
+ and oi.supplier_id = #{dto.supplierId}
and o.payment_time > #{dto.startTime}
</select>
@@ -47,4 +51,40 @@
AND USER_ID=#{dto.userId}
</sql>
+
+ <sql id="supplier_settlement_amount_timing">
+ select
+ sum(t2.final_price) as settlement_amount
+ from(
+ select
+ t.order_item_id,
+ t.supplier_id,
+ t.supplier_price,
+ t.num-t.reduce_num-t.replace_num-t.lack_num as final_num,
+ t.supplier_price*(t.num-t.reduce_num-t.replace_num-t.lack_num )-t.fee_supplier-t.station_fee as final_price,
+ t.fee_supplier,
+ t.station_fee
+ from (
+ SELECT
+ o.order_no,
+ oi.id as order_item_id,
+ oi.supplier_id,
+ o.payment_time,
+ oi.supplier_price,
+ oi.num as num,
+ IFNULL( (select oic.num from t_order_item_check oic where oic.deleted=0 and oic.order_item_id = oi.id and oic.type = 'reduce' and oic.audit_status='AGREED'),0) as reduce_num,
+ IFNULL( (select oic.num from t_order_item_check oic where oic.deleted=0 and oic.order_item_id = oi.id and oic.type = 'replace' and oic.audit_status='AGREED'),0) as replace_num,
+ IFNULL( (select oic.num from t_order_item_check oic where oic.deleted=0 and oic.order_item_id = oi.id and oic.type = 'lack' and oic.audit_status='AGREED'),0) as lack_num,
+ IFNULL( (select ois.fee_supplier from t_order_item_sales ois where ois.deleted=0 and ois.order_item_id = oi.id and ois.status='AGREED'),0) as fee_supplier,
+ IFNULL( (select ois.station_fee from t_order_item_settlement ois where ois.deleted=0 and ois.order_item_id = oi.id ),0) as station_fee
+ FROM t_order_item oi
+ LEFT JOIN t_order o ON oi.order_id = o.id
+ WHERE o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND','COMPLETED')
+ and oi.supplier_id = #{dto.supplierId}
+ ) t
+ ) t2
+
+ </sql>
+
</mapper>
diff --git a/src/main/resources/mapper/wallet/WalletReduceMapper.xml b/src/main/resources/mapper/wallet/WalletReduceMapper.xml
index 3501285..fd03188 100644
--- a/src/main/resources/mapper/wallet/WalletReduceMapper.xml
+++ b/src/main/resources/mapper/wallet/WalletReduceMapper.xml
@@ -6,57 +6,78 @@
<select id="getPage" resultType="com.mzl.flower.dto.response.wallet.WalletReduceVO">
select *
from (
- SELECT si.id as id,si.fee_supplier as fee ,si.audit_time as audit_time,'sale' as type,'售后扣款' as type_name,o.order_no as order_no,oi.supplier_id as supplier_id
+ SELECT si.id as id
+ ,si.fee_supplier as fee
+ ,si.audit_time as audit_time
+ ,o.payment_time as payment_time
+ ,'sale' as type,'售后扣款' as type_name
+ ,o.order_no as order_no
+ ,oi.supplier_id as supplier_id
FROM t_order_item_sales si
join t_order_item oi on oi.id = si.order_item_id
left join t_order o on oi.order_id=o.id
- where si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
+ where o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND')
+ and si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
and o.payment_time >= #{dto.walletOnlineTime}
<if test="dto.supplierId != null">
and oi.supplier_id = #{dto.supplierId}
</if>
+<!-- <if test="dto.startDate != null">-->
+<!-- and DATE_FORMAT(si.audit_time, '%Y-%m-%d') >= #{dto.startDate}-->
+<!-- </if>-->
+<!-- <if test="dto.endDate != null">-->
+<!-- and DATE_FORMAT(si.audit_time, '%Y-%m-%d') <= #{dto.endDate}-->
+<!-- </if>-->
<if test="dto.startDate != null">
- and DATE_FORMAT(si.audit_time, '%Y-%m-%d') >= #{dto.startDate}
+ and DATE_FORMAT(o.payment_time, '%Y-%m-%d') >= #{dto.startDate}
</if>
<if test="dto.endDate != null">
- and DATE_FORMAT(si.audit_time, '%Y-%m-%d') <= #{dto.endDate}
+ and DATE_FORMAT(o.payment_time, '%Y-%m-%d') <= #{dto.endDate}
</if>
union
- select oic.id as id ,oic.deduct_amount as fee,oic.audit_time as audit_time,oic.type as type,check_type.label as type_name,o.order_no as order_no,oi.supplier_id as supplier_id
+ select oic.id as id ,
+ oic.num*oi.supplier_price AS fee,
+ oic.audit_time AS audit_time,
+ o.payment_time as payment_time,
+ oic.type as type,
+ check_type.label as type_name,
+ o.order_no as order_no,
+ oi.supplier_id as supplier_id
from t_order_item_check oic
left join t_order_item oi
on oic.order_item_id=oi.id
left join t_order o
on oi.order_id=o.id
left join t_code_value check_type
- on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
- where oic.deleted=0 and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+ on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
+ where
+ o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND')
+ and oic.deleted=0 and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
and o.payment_time >= #{dto.walletOnlineTime}
<if test="dto.supplierId != null">
and oi.supplier_id = #{dto.supplierId}
</if>
+<!-- <if test="dto.startDate != null">-->
+<!-- and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') >= #{dto.startDate}-->
+<!-- </if>-->
+<!-- <if test="dto.endDate != null">-->
+<!-- and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') <= #{dto.endDate}-->
+<!-- </if>-->
<if test="dto.startDate != null">
- and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') >= #{dto.startDate}
+ and DATE_FORMAT(o.payment_time, '%Y-%m-%d') >= #{dto.startDate}
</if>
<if test="dto.endDate != null">
- and DATE_FORMAT(oic.audit_time, '%Y-%m-%d') <= #{dto.endDate}
+ and DATE_FORMAT(o.payment_time, '%Y-%m-%d') <= #{dto.endDate}
</if>
) t
order by audit_time desc
</select>
<select id="getCheckReduceAmount" resultType="java.math.BigDecimal">
- SELECT sum(si.fee_supplier)
- FROM t_order_item_sales si
- join t_order_item oi on oi.id = si.order_item_id
- left join t_order o on oi.order_id=o.id
- where si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
- and oi.supplier_id = #{dto.supplierId}
- and o.payment_time >= #{dto.startTime}
- </select>
- <select id="getSaleReduceAmount" resultType="java.math.BigDecimal">
- select sum(oic.deduct_amount)
+ select sum(oic.num*oi.supplier_price)
from t_order_item_check oic
left join t_order_item oi
on oic.order_item_id=oi.id
@@ -64,7 +85,32 @@
on oi.order_id=o.id
left join t_code_value check_type
on check_type.value=oic.type and check_type.type_code='CHECK_TYPE'
- where oic.deleted=0 and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+ where o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND')
+ and oic.deleted=0 and oic.audit_status='AGREED' and oi.deleted=0 and o.deleted=0
+ and oi.supplier_id = #{dto.supplierId}
+ and o.payment_time >= #{dto.startTime}
+ </select>
+ <select id="getSaleReduceAmount" resultType="java.math.BigDecimal">
+
+ SELECT sum(si.fee_supplier)
+ FROM t_order_item_sales si
+ join t_order_item oi on oi.id = si.order_item_id
+ left join t_order o on oi.order_id=o.id
+ where o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND')
+ and si.deleted=0 and si.status='AGREED' and oi.deleted=0 and o.deleted=0
+ and oi.supplier_id = #{dto.supplierId}
+ and o.payment_time >= #{dto.startTime}
+ </select>
+ <select id="getStationFeeAmount" resultType="java.math.BigDecimal">
+ SELECT sum(ois.station_fee)
+ FROM t_order_item_settlement ois
+ join t_order_item oi on oi.id = ois.order_item_id
+ left join t_order o on oi.order_id=o.id
+ where o.deleted=0
+ and o.status_backend not in ('PENDING','CANCEL','REFUND')
+ and ois.deleted=0 and oi.deleted=0
and oi.supplier_id = #{dto.supplierId}
and o.payment_time >= #{dto.startTime}
</select>
--
Gitblit v1.9.3