From 34d668bf654e861b2c8b3eb8d1faa09e1ae6246a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 18 三月 2025 15:05:56 +0800
Subject: [PATCH] jtt808初始化

---
 server/services/src/main/java/com/doumee/dao/business/model/WxBill.java                   |   16 ++++++++
 server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java               |    3 +
 server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderTotalDataVO.java       |    4 ++
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |   37 +++++++++++-------
 server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java     |   41 +++++++++++++++++---
 5 files changed, 79 insertions(+), 22 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java b/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
index c6304ec..4ce0845 100644
--- a/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
+++ b/server/services/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
@@ -3,11 +3,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Goodsorder;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
  * @author T14
  */
-public interface GoodsorderMapper extends BaseMapper<Goodsorder> {
+public interface GoodsorderMapper extends MPJBaseMapper<Goodsorder> {
 
 
 
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/WxBill.java b/server/services/src/main/java/com/doumee/dao/business/model/WxBill.java
index e3385c6..f523b05 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/WxBill.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/WxBill.java
@@ -69,6 +69,22 @@
     @ApiModelProperty(value = "鑷杞︽敹鍏�", example = "1")
     @ExcelColumn(name="鑷杞︽敹鍏�")
     private BigDecimal bikeFee;
+    @ApiModelProperty(value = "濂楅鏀跺叆", example = "1")
+    @ExcelColumn(name="濂楅鏀跺叆")
+    private BigDecimal discountFee;
+    @ApiModelProperty(value = "楠戣璁㈠崟閫�娆�", example = "1")
+    @ExcelColumn(name="楠戣璁㈠崟閫�娆�")
+    private BigDecimal bikeRefundFee;
+    @ApiModelProperty(value = "濂楅鍗¢��娆炬�婚噾棰�", example = "1")
+    @ExcelColumn(name="濂楅鍗¢��娆炬�婚噾棰�")
+    private BigDecimal discountRefundFee;
+    @ApiModelProperty(value = "楠戣璁㈠崟閫�娆炬墜缁垂", example = "1")
+    @ExcelColumn(name="楠戣璁㈠崟閫�娆炬墜缁垂")
+    private BigDecimal bikeRefundCmmsAmt;
+    @ApiModelProperty(value = "濂楅鍗¢��娆炬�婚噾棰濇墜缁垂", example = "1")
+    @ExcelColumn(name="濂楅鍗¢��娆炬�婚噾棰濇墜缁垂")
+    private BigDecimal discountRefundCmmsAmt;
+
     @ApiModelProperty(value = "鍚屾寰俊璐﹀崟鏃ユ湡", example = "2023-10-08")
     @TableField(exist = false)
     @JsonFormat(pattern = "yyyy-MM-dd")
diff --git a/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderTotalDataVO.java b/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderTotalDataVO.java
index e432c59..8f8cf97 100644
--- a/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderTotalDataVO.java
+++ b/server/services/src/main/java/com/doumee/dao/business/vo/GoodsorderTotalDataVO.java
@@ -19,8 +19,12 @@
 
     @ApiModelProperty(value = "鏀粯鎶奸噾",example = "0")
     private BigDecimal payMoney;
+    @ApiModelProperty(value = "濂楅鍗℃敹鍏�",example = "0")
+    private BigDecimal discountMoney;
     @ApiModelProperty(value = "鏀粯浜ゆ槗绗旀暟",example = "0")
     private int payNum;
+    @ApiModelProperty(value = "濂楅鍗′氦鏄撶瑪鏁�",example = "0")
+    private int discountNum;
 
     @ApiModelProperty(value = "閫�娆�",example = "0")
     private BigDecimal refundMoney;
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 73e444b..0b3c4a2 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -1016,6 +1016,7 @@
             model.setPayMoney(new BigDecimal(0.00));
             model.setRefundMoney(new BigDecimal(0.00));
             model.setClosedMoney(new BigDecimal(0.00));
+            model.setDiscountMoney(new BigDecimal(0.00));
             model.setUnClosedMoney(new BigDecimal(0.00));
             model.setClosedNum(0);
             model.setUnClosedNum(0);
@@ -1030,28 +1031,36 @@
             }
             queryWrapper.lambda().eq(Goodsorder::getPayStatus, Constants.ONE);//宸叉敮浠�
             queryWrapper.lambda().eq(Goodsorder::getIsdeleted, Constants.ZERO);
-            queryWrapper.lambda().groupBy(Goodsorder::getStatus);
-            queryWrapper.select( "status ","count(id) as count_num"
+            queryWrapper.lambda().groupBy(Goodsorder::getStatus,Goodsorder::getType);
+            queryWrapper.select( "type","status ","count(id) as count_num"
                     ,"sum(money) as money","sum(close_money) as close_money" );
             //鎸夎鍗曠姸鎬佸垎缁勭粺璁�
             List<Goodsorder> detailList = goodsorderMapper.selectList(queryWrapper);
             for(Goodsorder goodsorder : detailList){
-                if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.CLOSE.getKey()){
-                    //宸茬粨绠�
-                    model.setClosedNum(model.getClosedNum()+goodsorder.getCountNum());
-                    //淇敼bug 缁撶畻鏀跺叆 = 鏀粯閲戦-閫�娆�-鏈粨绠�
+                if(Constants.equalsInteger(goodsorder.getType(),Constants.ZERO)){
+                    //濡傛灉鏄獞琛岃鍗曟娂閲戯紝璁$畻楠戣鏀跺叆
+                    if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.CLOSE.getKey()){
+                        //宸茬粨绠�
+                        model.setClosedNum(model.getClosedNum()+goodsorder.getCountNum());
+                        //淇敼bug 缁撶畻鏀跺叆 = 鏀粯閲戦-閫�娆�-鏈粨绠�
 //                    model.setClosedMoney(model.getClosedMoney().add(Constants.translateMoney(goodsorder.getCloseMoney())));
 
-                    model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
-                    model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
-                }else  if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){
-                    //宸叉敮浠樻湭缁撶畻
-                    model.setUnClosedNum(model.getUnClosedNum()+goodsorder.getCountNum());
-                    model.setUnClosedMoney(model.getUnClosedMoney().add(Constants.translateMoney(goodsorder.getMoney())));
+                        model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
+                        model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
+                    }else  if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){
+                        //宸叉敮浠樻湭缁撶畻
+                        model.setUnClosedNum(model.getUnClosedNum()+goodsorder.getCountNum());
+                        model.setUnClosedMoney(model.getUnClosedMoney().add(Constants.translateMoney(goodsorder.getMoney())));
 
-                    model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
-                    model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
+                        model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
+                        model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
+                    }
+                }else{
+                    //濂楅鍗℃敹鍏ョ疮璁� (浜ゆ槗绗旀暟鍜屼氦鏄撻噾棰濓級
+                    model.setDiscountNum(model.getDiscountNum()+goodsorder.getCountNum());
+                    model.setDiscountMoney(model.getDiscountMoney().add(Constants.translateMoney(goodsorder.getMoney())));
                 }
+
             }
         QueryWrapper<Refund> queryWrapper2 = new QueryWrapper<>();
         if(Objects.nonNull(param.getStartDate())) {
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
index 9b398f4..41abf6d 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
@@ -9,6 +9,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.WxMiniConfig;
 import com.doumee.core.wx.WxPayProperties;
+import com.doumee.dao.business.GoodsorderMapper;
 import com.doumee.dao.business.WxBillDetailMapper;
 import com.doumee.dao.business.WxBillMapper;
 import com.doumee.dao.business.model.Goodsorder;
@@ -46,6 +47,8 @@
 
     @Autowired
     private WxBillMapper wxBillMapper;
+    @Autowired
+    private GoodsorderMapper goodsorderMapper;
     @Autowired
     private WxBillDetailMapper wxBillDetailMapper;
     @Override
@@ -262,6 +265,11 @@
         bill.setSumRefundCmmsAmt(new BigDecimal(0.00));
         bill.setTotal(new BigDecimal(0.00));
         bill.setBikeFee(new BigDecimal(0.00));
+        bill.setDiscountFee(new BigDecimal(0.00));
+        bill.setBikeRefundFee(new BigDecimal(0.00));
+        bill.setDiscountRefundFee(new BigDecimal(0.00));
+        bill.setDiscountRefundCmmsAmt(new BigDecimal(0.00));
+        bill.setBikeRefundCmmsAmt(new BigDecimal(0.00));
         return bill;
     }
     @Override
@@ -427,15 +435,34 @@
                 detail.setRefundApplyDate(DateUtil.getDateFromString2(info.getRefundTime())); //鐢宠閫�娆炬椂闂�
                 //璁$畻鑷杞︽敹鍏ワ紝鍖归厤鏉ヨ嚜鑷杞﹀皬绋嬪簭鐨勬墍鏈夋敮浠樻垚鍔熷拰閫�娆炬垚鍔熺殑閲戦锛屼綔涓鸿嚜琛岃溅鏀跺叆锛堢疮璁℃敹娆鹃噾棰�-绱閫�娆炬垚鍔熼噾棰濓級
                 if(StringUtils.equals(detail.getAppid(), WxMiniConfig.wxPayV2Service.getConfig().getSubAppId())){
-                    //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級
-                    if(StringUtils.equals(info.getTradeState(),"SUCCESS")){
-                        //濡傛灉鏄氦鏄擄紙鍖呭惈鎵嬬画璐癸級
-                        bill.setBikeFee(bill.getBikeFee().add(detail.getSettlementTotalFee()));
+                    Goodsorder order = goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>().lambda()
+                            .eq(Goodsorder::getId,info.getOutTradeNo()));
+                    if(Constants.equalsInteger(order.getType(),Constants.ZERO)){
+                        //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級
+                        if(StringUtils.equals(info.getTradeState(),"SUCCESS")){
+                            //濡傛灉鏄氦鏄擄紙鍖呭惈鎵嬬画璐癸級
+                            bill.setBikeFee(bill.getBikeFee().add(detail.getSettlementTotalFee()));
 //                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
-                    }else  if(StringUtils.equals(info.getTradeState(),"REFUND" ) || StringUtils.equals(info.getTradeState(),"REVOKED" )){
-                        //濡傛灉閫�娆炬垚鍔燂紝鎵i櫎閫�娆鹃噾棰�(鍖呭惈鎵嬬画璐癸級
-                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getRefundFee()) );
+                        }else  if(StringUtils.equals(info.getTradeState(),"REFUND" ) || StringUtils.equals(info.getTradeState(),"REVOKED" )){
+                            //濡傛灉閫�娆炬垚鍔燂紝鎵i櫎閫�娆鹃噾棰�(鍖呭惈鎵嬬画璐癸級
+                            bill.setBikeFee(bill.getBikeFee().subtract(detail.getRefundFee()) );
+                            bill.setBikeRefundFee(bill.getBikeRefundFee().add(detail.getRefundFee()) );
+                            bill.setBikeRefundCmmsAmt(bill.getBikeRefundCmmsAmt().add(detail.getCmmsAmt()) );
 //                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
+                        }
+                    }else{
+                        //鑷杞︽敹鍏ョ疮璁℃敹娆鹃噾棰�(鏀粯鎴愬姛鎬婚噾棰�-閫�娆炬�婚噾棰濓級
+                        if(StringUtils.equals(info.getTradeState(),"SUCCESS")){
+                            //濡傛灉鏄氦鏄擄紙鍖呭惈鎵嬬画璐癸級
+                            bill.setDiscountFee(bill.getDiscountFee().add(detail.getSettlementTotalFee()));
+//                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
+                        }else  if(StringUtils.equals(info.getTradeState(),"REFUND" ) || StringUtils.equals(info.getTradeState(),"REVOKED" )){
+                            //濡傛灉閫�娆炬垚鍔燂紝鎵i櫎閫�娆鹃噾棰�(鍖呭惈鎵嬬画璐癸級
+                            bill.setDiscountFee(bill.getDiscountFee().subtract(detail.getRefundFee()) );
+                            bill.setDiscountRefundFee(bill.getDiscountRefundFee().add(detail.getRefundFee()) );
+                            bill.setDiscountRefundCmmsAmt(bill.getDiscountRefundCmmsAmt().add(detail.getCmmsAmt()) );
+//                        bill.setBikeFee(bill.getBikeFee().subtract(detail.getCmmsAmt()) );
+                        }
                     }
                 }
                 detailList.add(detail);

--
Gitblit v1.9.3