From bb914e61f27453051e691a4e06ffa64d6f93d6fb Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 27 一月 2026 10:52:03 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java
index 0a6262c..c8e576b 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WorkbenchServiceImpl.java
@@ -23,6 +23,7 @@
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.vo.BusinessDataCountVO;
 import com.doumee.dao.system.vo.CountDataVO;
+import com.doumee.dao.system.vo.NumberDataCountVO;
 import com.doumee.dao.web.dto.CollectDTO;
 import com.doumee.dao.web.dto.MemberDTO;
 import com.doumee.dao.web.dto.MultiFileDTO;
@@ -59,6 +60,12 @@
 public class WorkbenchServiceImpl implements WorkbenchService {
     @Autowired
     private GoodsorderMapper goodsorderMapper;
+    @Autowired
+    private MemberCouponMapper memberCouponMapper;
+    @Autowired
+    private InviteRecordMapper inviteRecordMapper;
+    @Autowired
+    private IntegralMapper integralMapper;
     @Autowired
     private GoodsorderDetailMapper goodsorderDetailMapper;
     @Override
@@ -122,6 +129,86 @@
         return list1;
     }
     @Override
+    public    NumberDataCountVO couponData(CountDataDTO param){
+        NumberDataCountVO data = new NumberDataCountVO();
+        //鍙戞斁绫诲瀷缁熻
+        List<MemberCoupon> r1 =  memberCouponMapper.selectList(new MPJLambdaWrapper<MemberCoupon>()
+                .select("(select count(t.id) )",MemberCoupon::getNum)
+                .select( MemberCoupon::getCouponType)
+                .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+                .eq(MemberCoupon::getIsdeleted,Constants.ZERO)
+                .groupBy(MemberCoupon::getCouponType));
+        if(r1!=null){
+            for(MemberCoupon c : r1){
+                if(Constants.equalsInteger(c.getCouponType(),Constants.ZERO)){
+                    data.setNum(Constants.formatLongNum(c.getNum()));//婊″噺鍒�
+                }else{
+                    data.setNum1(Constants.formatLongNum(c.getNum()));//婊″噺鍒�
+                }
+            }
+        }
+        //宸蹭娇鐢�
+        Long r2 =  memberCouponMapper.selectCount(new MPJLambdaWrapper<MemberCoupon>()
+                .apply(param.getYear()!=null,"YEAR ( t.use_Date )="+param.getYear() )
+                .eq(MemberCoupon::getIsdeleted,Constants.ZERO));
+        data.setUseNum(Constants.formatLongNum(r2));
+        //浼樻儬閲戦鍜屼氦鏄撻噾棰�
+        Goodsorder r3 =  goodsorderMapper.selectOne(new MPJLambdaWrapper<Goodsorder>()
+                .select("(select sum(t.total_price) )",Goodsorder::getTotalPrice)
+                .select("(select sum(t.coupon_price) )",Goodsorder::getCouponPrice)
+                .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+                .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+                .in(Goodsorder::getStatus,Constants.OrderStatus.DONE.getKey(),Constants.OrderStatus.REFUND.getKey()) );
+        if(r3!=null){
+            data.setPrice(Constants.formatBigdecimal(r3.getCouponPrice()));
+            data.setOrderPrice(Constants.formatBigdecimal(r3.getTotalPrice()));
+        }
+        return  data;
+
+    }
+    @Override
+    public    NumberDataCountVO integralData(CountDataDTO param){
+        NumberDataCountVO data = new NumberDataCountVO();
+        //鍙戞斁绉垎绫诲瀷缁熻
+        List<Integral> r1 =  integralMapper.selectList(new MPJLambdaWrapper<Integral>()
+                .select("(select sum(t.num) )",Integral::getNum)
+                .select( Integral::getObjType)
+                .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+                .eq(Integral::getIsdeleted,Constants.ZERO)
+                .eq(Integral::getType,Constants.ZERO)
+                .in(Integral::getObjType,Constants.IntegralObjType.REGISTER.getKey(),
+                        Constants.IntegralObjType.INVITENEWUSER.getKey(),
+                        Constants.IntegralObjType.ORDER_DONATE.getKey(),
+                        Constants.IntegralObjType.SYSTEM_RECHARGE.getKey())
+                .groupBy(Integral::getObjType));
+        if(r1!=null){
+            for(Integral c : r1){
+                if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.SYSTEM_RECHARGE.getKey())){
+                    data.setNum(Constants.formatBigdecimal(c.getNum()).longValue());//骞冲彴娣诲姞
+                }else if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.INVITENEWUSER.getKey())){
+                    data.setNum1(Constants.formatBigdecimal(c.getNum()).longValue());//閭�璇�
+                }else if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.ORDER_DONATE.getKey())){
+                    data.setNum2(Constants.formatBigdecimal(c.getNum()).longValue());//娑堣垂杩斿埄
+                }else if(Constants.equalsInteger(c.getObjType(),Constants.IntegralObjType.REGISTER.getKey())){
+                    data.setNum3(Constants.formatBigdecimal(c.getNum()).longValue());//娉ㄥ唽
+                }
+            }
+        }
+        //浼樻儬閲戦鍜屼氦鏄撻噾棰�
+        Goodsorder r3 =  goodsorderMapper.selectOne(new MPJLambdaWrapper<Goodsorder>()
+                .select("(select sum(t.integral) )",Goodsorder::getIntegral)
+                .select("(select sum(t.use_integral) )",Goodsorder::getUseIntegral)
+                .apply(param.getYear()!=null,"YEAR ( t.CREATE_DATE )="+param.getYear() )
+                .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+                .in(Goodsorder::getStatus,Constants.OrderStatus.DONE.getKey(),Constants.OrderStatus.REFUND.getKey()) );
+        if(r3!=null){
+            data.setUseNum(Constants.formatBigdecimal(r3.getUseIntegral()).longValue());
+            data.setPrice(Constants.formatBigdecimal(r3.getIntegral()));
+        }
+        return  data;
+
+    }
+    @Override
     public BusinessDataCountVO businessData(CountDataDTO param) {
         BusinessDataCountVO data = new BusinessDataCountVO();
         int dataType = param.getDateType();//0浠婃棩 1杩戜竷鏃� 2杩�30鏃� 3杩�1骞�

--
Gitblit v1.9.3