From b879982d29cb2dbfe72482b46c8f6f2064d663a2 Mon Sep 17 00:00:00 2001
From: zhanglin8526 <852614290@qq.com>
Date: 星期六, 26 八月 2023 15:27:29 +0800
Subject: [PATCH] 支付调整

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  554 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 400 insertions(+), 154 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index d1cce04..0971266 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -5,10 +5,7 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsRequest;
-import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult;
-import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
-import com.github.binarywang.wxpay.bean.ecommerce.TransactionsResult;
+import com.github.binarywang.wxpay.bean.ecommerce.*;
 import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum;
 import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
 import com.github.binarywang.wxpay.config.WxPayConfig;
@@ -16,6 +13,7 @@
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.google.common.base.Joiner;
 import com.google.gson.Gson;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -558,6 +556,7 @@
         BigDecimal orderPayMoney = new BigDecimal("0.00");
         // 创建订单ID和订单号
         String orderId = IdUtils.simpleUUID();
+
         String orderNo = CodeFactoryUtil.getShopOrderNo();
         OrderGoods orderGoods;
         String orderGoodsId;
@@ -734,6 +733,9 @@
         order.setOrderRemark(appPlaceOrderDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
+        if(appPlaceOrderDto.getNewMemberFlag()!=null&&appPlaceOrderDto.getNewMemberFlag()==1){
+            order.setNewMemberFlag(1);
+        }
         // 保存订单
         this.save(order);
         // 更新用户商品类型
@@ -751,11 +753,18 @@
             goodsName = String.join(",", goodsNameList);
         }
 
-        // 小程序微信下单支付
-        /*createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, orderNo,
-                orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
-                appPlaceOrderDto.getSpbillCreateIp(), goodsNameList);*/
+        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
+            String outTradeNo = IdUtils.simpleUUID();
 
+            // 保存订单 交易流水
+            order.setOutTradeNo(outTradeNo);
+            this.saveOrUpdate(order);
+
+            // 小程序微信下单支付
+            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), goodsName, outTradeNo,
+                    orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
+                    appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1);
+        }
 
         //减去优惠券
         if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
@@ -784,7 +793,7 @@
      * @param userId
      * @param shopId
      * @param goodsName
-     * @param orderNo
+     * @param outTradeNo
      * @param orderId
      * @param payMoney
      * @param openid
@@ -792,13 +801,13 @@
      * @param goodsNameList
      */
     public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
-                                 String goodsName, String orderNo,
+                                 String goodsName, String outTradeNo,
                                  String orderId, BigDecimal payMoney,
-                                 String openid, String payerClientIp, List<String> goodsNameList){
+                                 String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom){
         try {
             // 创建支付订单
-            //R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
-            String subMchId = "1650744551";
+            R<String> resultMch = remoteShopService.getShopSubMchId(shopId);
+            String subMchId = resultMch.getData();
             if (StringUtils.isEmpty(subMchId)) {
                 throw new ServiceException("获取微信商户号失败");
             }
@@ -813,11 +822,15 @@
             String description = goodsName + "-商品购买";
 
             request.setDescription(description);
-            request.setOutTradeNo(orderNo);
+            request.setOutTradeNo(outTradeNo);
             request.setNotifyUrl(config.getNotifyUrl());
             // 结算信息
             PartnerTransactionsRequest.SettleInfo settleInfo = new PartnerTransactionsRequest.SettleInfo();
-            settleInfo.setProfitSharing(true);
+            if(orderFrom==2){
+                settleInfo.setProfitSharing(true);
+            }else{
+                settleInfo.setProfitSharing(false);
+            }
             settleInfo.setSubsidyAmount(BigDecimal.ZERO);
             request.setSettleInfo(settleInfo);
 
@@ -860,9 +873,10 @@
             paymentMessageService.savePaymentMessage("1", orderId, payRequestJson, payResponseJson);
 
             // 保存支付订单统一下单支付记录
-            orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, payMoney,
+            orderPaymentService.saveOrderPayment(userId, shopId, subMchId, orderId, outTradeNo, payMoney,
                     appPlaceOrderVo.getEndTime(), "Y", openid,
                     Joiner.on(";").join(goodsNameList), result.getPackageValue());
+
         } catch (WxPayException e) {
             throw new ServiceException(e.getMessage());
         }
@@ -1073,6 +1087,9 @@
         order.setOrderRemark(appPlaceActivityDto.getOrderRemark());
         order.setGoodsNum(goodsNum);
         order.setCreateTime(new Date());
+        if(appPlaceActivityDto.getNewMemberFlag()!=null&&appPlaceActivityDto.getNewMemberFlag()==1){
+            order.setNewMemberFlag(1);
+        }
         // 保存订单
         this.save(order);
         // 更新用户商品类型
@@ -1128,7 +1145,25 @@
         appPlaceOrderVo.setPackageStr(res.getPackageVal());
         appPlaceOrderVo.setTradeType(res.getSignType());
         appPlaceOrderVo.setPaySign(res.getPaySign());
+
 */
+        List<String> goodsNameList = new ArrayList<>();
+        goodsNameList.add(orderGoods.getGoodsName());
+
+
+        if(appPlaceOrderVo.getPayMoney().compareTo(BigDecimal.TEN)<0){
+
+            String outTradeNo = IdUtils.simpleUUID();
+
+            // 保存订单 交易流水
+            order.setOutTradeNo(outTradeNo);
+            this.saveOrUpdate(order);
+
+            // 小程序微信下单支付
+            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo,
+                    orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(),
+                    appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2);
+        }
         //生成活动参加记录
         ActivityRecord activityRecord = new ActivityRecord();
         activityRecord.setDelFlag(0);
@@ -1294,9 +1329,15 @@
     @Override
     public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) {
         Long shopId = merHomeShopTotalVo.getShopId();
+        //获取今日到店
         Integer todayShop = userServiceRecordService.countShopServicePerson(shopId);
+        //获取待处理订单和营业额
         merHomeShopTotalVo = orderMapper.getMerHomeShopTotalVo(shopId);
+        //获取服务统计
+        MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId);
         merHomeShopTotalVo.setTodayShop(todayShop);
+        merHomeShopTotalVo.setCycleSurp(serviceTotalVo.getCycleSurp());
+        merHomeShopTotalVo.setExplorationSurp(serviceTotalVo.getExplorationSurp());
         return merHomeShopTotalVo;
     }
 
@@ -1623,20 +1664,21 @@
         // 调用remoteMemberService的getMember方法获取Member对象
         Member member = remoteMemberService.getMember(userId).getData();
         //如果是商户优惠券,验证商户一致
-        if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) {
+        if (memberCoupon.getCouponFrom() == 2) {
             if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
-                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+                throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
             }
-            if(memberCoupon.getShopId().equals(shopId)){
+            if(!memberCoupon.getShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
         //如果是平台优惠券,当用户绑定商户时验证商户一致
         if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) {
-            if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
+            /*if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
                 throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
-            }
-            if(memberCoupon.getShopId().equals(shopId)){
+            }*/
+            //判断绑定商户是否和核销商户一致
+            if(!member.getRelationShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
@@ -2180,14 +2222,6 @@
         } else {
             order.setCloseFlag(0);
         }
-        //保存订单和服务
-        this.save(order);
-        orderGoodsService.saveBatch(orderGoodsList);
-        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
-        //减去优惠券
-        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
-            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
-        }
         //用户未绑定则绑定商户
         Member member = remoteMemberService.getMember(userId).getData();
         if (member != null && member.getBindingFlag() != 1) {
@@ -2199,16 +2233,26 @@
             appMemberBindingDto.setBindingFlag(1);
             appMemberBindingDto.setBindingType(3);
             remoteMemberService.updateMemberBinding(appMemberBindingDto);
+            order.setNewMemberFlag(1);
         }
+        //保存订单和服务
+        this.save(order);
+        orderGoodsService.saveBatch(orderGoodsList);
+        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
+        //减去优惠券
+        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
+            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
+        }
+
         //更新商户统计
-        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
+        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setShopId(order.getShopId());
         shopTotalChangeDto.setOrderType(1);
         shopTotalChangeDto.setCycleMoney(cycleMoney);
         shopTotalChangeDto.setServiceMoney(serviceMoney);
         shopTotalChangeDto.setExperienceMoney(experienceMoney);
         shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);
+        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         //创建支付记录
         PayRecord payRecord = new PayRecord();
         payRecord.setDelFlag(0);
@@ -2910,13 +2954,31 @@
      */
     @Override
     public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) {
-        //获取人数统计
-        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
+
+        //营业额
         BigDecimal salesTotal = orderMapper.shopSalesTotal(mgtBaseShopDto);
-        mgtTotalDataTotalVo.setSalesTotal(salesTotal);
+        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
+        // 获取当月时间
+        LocalDate currentDate = LocalDate.now();
+        LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
+        LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String firstDayOfMonthStr = firstDayOfMonth.format(formatter);
+        String lastDayOfMonthStr = lastDayOfMonth.format(formatter);
+        mgtBaseShopDto.setStartDate(firstDayOfMonthStr);
+        mgtBaseShopDto.setEndDate(lastDayOfMonthStr);
+        //总进店人数 体验人数 体验开单人数 没体验开单人数
+        MgtTotalDataTotalVo mgtTotalDataMemberTotalVo = orderMapper.getTotalDataMemberTotal(mgtBaseShopDto);
+        mgtTotalDataTotalVo.setOnlyExperiencePerson(mgtTotalDataMemberTotalVo.getOnlyExperiencePerson());
+        mgtTotalDataTotalVo.setExperienceCyclePerson(mgtTotalDataMemberTotalVo.getExperienceCyclePerson());
+        mgtTotalDataTotalVo.setOnlyCyclePerson(mgtTotalDataMemberTotalVo.getOnlyCyclePerson());
+        mgtTotalDataTotalVo.setOrderPerson(mgtTotalDataMemberTotalVo.getOrderPerson());
+        //续单人数
         Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto);
-        mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
+        //回头客
         Integer returnedPerson = orderMapper.getReturnedPerson(mgtBaseShopDto);
+        mgtTotalDataTotalVo.setSalesTotal(salesTotal);
+        mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
         mgtTotalDataTotalVo.setReturnedPerson(returnedPerson);
         return mgtTotalDataTotalVo;
     }
@@ -3259,20 +3321,21 @@
         Long userId = verifyCouponGetVo.getUserId();
         Member member = remoteMemberService.getMember(userId).getData();
         //如果是商户优惠券,验证商户一致
-        if (memberCoupon.getCouponFrom() == 2 && !memberCoupon.getShopId().equals(shopId)) {
+        if (memberCoupon.getCouponFrom() == 2) {
             if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
-                throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
+                throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
             }
-            if(memberCoupon.getShopId().equals(shopId)){
+            if(!memberCoupon.getShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
         //如果是平台优惠券,当用户绑定商户时验证商户一致
         if (memberCoupon.getCouponFrom() == 1 && member.getBindingFlag() == 1) {
-            if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
+            /*if(!memberCoupon.getShopId().equals(member.getRelationShopId())){
                 throw new ServiceException(AppErrorConstant.BLINDING_VERIFY_SHOP_ERROR);
-            }
-            if(memberCoupon.getShopId().equals(shopId)){
+            }*/
+            //判断绑定商户是否和核销商户一致
+            if(!member.getRelationShopId().equals(shopId)){
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
@@ -3428,7 +3491,9 @@
             merTotalDto.setShopIdList(shopIdList);
             merTotalDto.setShopId(null);
         }
+        //线上线下活动订单
         MerOrderTotalVo orderTotalVo = orderMapper.getMerOrderTotalOrderFrom(merTotalDto);
+        //分类型订单
         MerOrderTotalVo goodsTypeVo = orderMapper.getMerTotalOrderTotalGoodsType(merTotalDto);
         orderTotalVo.setCycleTotal(goodsTypeVo.getCycleTotal());
         orderTotalVo.setCycleMoney(goodsTypeVo.getCycleMoney());
@@ -3453,6 +3518,9 @@
             List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
             merTotalDto.setShopIdList(shopIdList);
             merTotalDto.setShopId(null);
+        }
+        if(merTotalDto.getGoodsType()!=null&&merTotalDto.getGoodsType()==0){
+            merTotalDto.setGoodsType(null);
         }
         MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
         // 获取订单年龄用户列表
@@ -3501,10 +3569,10 @@
                 }
             }*/
         List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listMerOrderDistributionTotal(merTotalDto);
+        String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
+        Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
+        BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
         if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) {
-            String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
-            Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
-            BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
             MgtMapTotalPlusVo mgtMapTotalPlusVo;
             for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) {
                 mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i);
@@ -3512,6 +3580,8 @@
                 orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
                 orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
             }
+            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
+        }else{
             orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
             orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
             orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
@@ -3540,28 +3610,44 @@
         List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
         List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
-            MgtMapIntTotalVo MgtMapIntTotalVo;
+            MgtMapIntTotalVo mgtMapIntTotalVo;
             MgtMapBigTotalVo mgtMapBigTotalVo;
+            Integer intTotal = 0;
+            BigDecimal bigTotal = BigDecimal.ZERO;
+            for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){
+                intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst();
+                bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond());
+            }
+            BigDecimal hundredBig = new BigDecimal("100");
+            BigDecimal intTotalBig = hundredBig;
+            if(intTotal!=0){
+                intTotalBig = new BigDecimal(intTotal.toString());
+            }
+            if(bigTotal.compareTo(BigDecimal.ZERO)<1){
+                bigTotal = hundredBig;
+            }
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapIntTotalVo.setMapPercent(BigDecimal.valueOf(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()).divide(intTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
                 mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
+                mgtMapBigTotalVo.setMapPercent(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond().divide(bigTotal,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapKey("周期");
                     mgtMapBigTotalVo.setMapKey("周期");
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapKey("服务");
                     mgtMapBigTotalVo.setMapKey("服务");
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapKey("体验");
                     mgtMapBigTotalVo.setMapKey("体验");
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
                 }
-                goodsTypeTotalList.add(MgtMapIntTotalVo);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
                 goodsTypeMoneyList.add(mgtMapBigTotalVo);
             }
             orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -3589,6 +3675,7 @@
         List<MgtMapBigTotalVo> goodsRankList = orderMapper.listMerOrderTotalGoodsRank(merTotalDto);
         if (goodsRankList != null && goodsRankList.size() > 0) {
             goodsRankList = bigListRemoveNull(goodsRankList);
+            Collections.reverse(goodsRankList);
             orderGoodsRankVo.setGoodsRankList(goodsRankList);
         }
         return orderGoodsRankVo;
@@ -3614,6 +3701,7 @@
         List<MgtMapBigTotalVo> orderFromList = orderMapper.listMerOrderTotalOrderFrom(merTotalDto);
         if (orderFromList != null && orderFromList.size() > 0) {
             orderFromList = bigListRemoveNull(orderFromList);
+            Collections.reverse(orderFromList);
             merOrderFromRankVo.setOrderFromRankList(orderFromList);
         }
         return merOrderFromRankVo;
@@ -3779,9 +3867,12 @@
     @Override
     @Transactional
     public void payBack(PartnerTransactionsResult transaction) {
-        // 更新订单状态
-        String orderId = transaction.getOutTradeNo();
-        Order order = this.getById(orderId);
+
+        // Order order = this.getById(orderId);
+        // 更新订单状态 订单编号,就是 微信outTradeNo
+        String orderNo = transaction.getOutTradeNo();
+        Order order = this.getByOrderNo(orderNo);
+        String orderId = order.getOrderId();
         order.setOrderStatus(2);
         order.setPayTime(new Date());
         this.saveOrUpdate(order);
@@ -3835,14 +3926,14 @@
         //更新商品统计
         remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
         // 更新商户统计信息
-        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
+        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setShopId(order.getShopId());
         shopTotalChangeDto.setOrderType(1);
         shopTotalChangeDto.setCycleMoney(cycleMoney);
         shopTotalChangeDto.setServiceMoney(serviceMoney);
         shopTotalChangeDto.setExperienceMoney(experienceMoney);
         shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);
+        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         // 初始化会员统计信息
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
         memberTotalChangeDto.setUserId(order.getUserId());
@@ -3902,8 +3993,9 @@
             request.setTransactionId(transaction.getTransactionId());
             profitsSharingService.applyProfitSharing(request);*/
         }
-        //生成支付记录
-        OrderPayment orderPayment = new OrderPayment();
+        //修改支付记录生成支付记录
+        orderPaymentService.updatePaySuccess(transaction.getOutTradeNo(), transaction.getTransactionId());
+
         PayRecord payRecord = new PayRecord();
         payRecord.setDelFlag(0);
         payRecord.setOrderId(orderId);
@@ -3911,6 +4003,14 @@
         payRecord.setPayTime(order.getPayTime());
         payRecord.setPayType(1);
         payRecordService.save(payRecord);
+    }
+
+    @Override
+    public Order getByOrderNo(String orderNo) {
+        LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(Order::getOrderNo, orderNo)
+                .last(" limit 1 ");
+        return this.getOne(queryWrapper);
     }
 
     /**
@@ -4011,14 +4111,14 @@
             }
         }
         // 更新商户统计信息
-        ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
+        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
         shopTotalChangeDto.setOrderType(2);
         shopTotalChangeDto.setShopId(order.getShopId());
         shopTotalChangeDto.setCycleMoney(cycleMoney);
         shopTotalChangeDto.setServiceMoney(serviceMoney);
         shopTotalChangeDto.setExperienceMoney(experienceMoney);
         shopTotalChangeDto.setGoodsMoney(goodsMoney);
-        remoteShopService.changeShopTotal(shopTotalChangeDto);
+        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
         // 初始化会员统计信息
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
         memberTotalChangeDto.setUserId(order.getUserId());
@@ -4070,7 +4170,7 @@
         BigDecimal onlinePayMoney = order.getOnlinePayMoney();
         if(BigDecimal.ZERO.compareTo(onlinePayMoney) < 0){
             // 订单支付金额大于0,可发起退款
-            //orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund);
+            orderWxApplyRefund(orderId, refundId, onlinePayMoney, orderRefund);
         }
 
         orderRefund.setRefundStatus(1);
@@ -4080,7 +4180,7 @@
     /**
      * 申请退款API
      */
-    /*private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){
+    private void orderWxApplyRefund(String orderId, String outRefundNo, BigDecimal payMoney, OrderRefund orderRefund){
         try {
             // 创建支付订单
             OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId);
@@ -4119,7 +4219,7 @@
         } catch (WxPayException e) {
             throw new ServiceException(e.getMessage());
         }
-    }*/
+    }
 
     /**
      * @param staffTotalDto
@@ -4130,7 +4230,14 @@
      */
     @Override
     public StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto) {
-        StaffActivityOrderTotalVo staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto);
+        StaffActivityOrderTotalVo staffActivityOrderTotalVo = new StaffActivityOrderTotalVo();
+        if(staffTotalDto.getActivityFrom()==1){
+            staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto);
+            StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto);
+            staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal());
+            staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal());
+            staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal());
+        }
         return staffActivityOrderTotalVo;
     }
 
@@ -4143,7 +4250,10 @@
      */
     @Override
     public StaffActivityTotalVo getStaffActivityTotal(StaffTotalDto staffTotalDto) {
-        StaffActivityTotalVo staffActivityTotalVo = orderMapper.getStaffActivityTotal(staffTotalDto);
+        StaffActivityTotalVo staffActivityTotalVo = new StaffActivityTotalVo();
+        if(staffTotalDto.getActivityFrom()==1){
+            staffActivityTotalVo = orderMapper.getStaffActivityTotal(staffTotalDto);
+        }
         return staffActivityTotalVo;
     }
 
@@ -4156,13 +4266,16 @@
      */
     @Override
     public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) {
+        if(staffTotalDto.getGoodsType()!=null&&staffTotalDto.getGoodsType()==0){
+            staffTotalDto.setGoodsType(null);
+        }
         MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
         // 获取订单年龄用户列表
-        MerTotalDto merTotalDto = new MerTotalDto();
-        merTotalDto.setShopId(staffTotalDto.getShopId());
-        List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
+        //MerTotalDto merTotalDto = new MerTotalDto();
+        //merTotalDto.setShopId(staffTotalDto.getShopId());
+        //List<MerOrderAgeUserVo> orderAgeUserVoList = remoteMemberService.listOrderAgeUser(merTotalDto).getData();
         // 如果订单年龄用户列表不为空
-        if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) {
+        /*if (orderAgeUserVoList != null && !orderAgeUserVoList.isEmpty()) {
             // 定义变量
             Integer ageType;
             List<Long> userIdList;
@@ -4208,9 +4321,80 @@
             orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
             orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
             orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+        }*/
+        if(staffTotalDto.getActivityFrom()==1){
+            List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto);
+            String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
+            Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
+            BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
+            if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) {
+                MgtMapTotalPlusVo mgtMapTotalPlusVo;
+                for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) {
+                    mgtMapTotalPlusVo = mgtMapTotalPlusVoList.get(i);
+                    orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey();
+                    orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
+                    orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
+                }
+                orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
+            }else{
+                orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
+                orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
+                orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+            }
         }
         // 返回订单分布总数对象
         return orderDistributionTotalVo;
+    }
+
+    public MerOrderDistributionTotalVo fillOrderTotalKeyAndValuesToRecentFiveDays(String[] orderTotalKey,Integer[] orderTotalValue,BigDecimal[] orderMoneyValue) {
+        MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+
+        // 创建最近五天日期列表
+        List<String> recentFiveDays = new ArrayList<>();
+        for (int i = 0; i < 5; i++) {
+            LocalDate date = currentDate.minusDays(i);
+            recentFiveDays.add(date.toString());
+        }
+
+        // 创建新的数组
+        String[] newOrderTotalKey = new String[5];
+        Integer[] newOrderTotalValue = new Integer[5];
+        BigDecimal[] newOrderMoneyValue = new BigDecimal[5];
+
+        // 遍历最近五天日期列表,并补充数据
+        for (int i = 0; i < 5; i++) {
+            String day = recentFiveDays.get(i);
+            int index = getIndexInOrderTotalKey(day,orderTotalKey);
+            if (index != -1) {
+                newOrderTotalKey[i] = orderTotalKey[index];
+                newOrderTotalValue[i] = orderTotalValue[index];
+                newOrderMoneyValue[i] = orderMoneyValue[index];
+            } else {
+                newOrderTotalKey[i] = day;
+                newOrderTotalValue[i] = 0;
+                newOrderMoneyValue[i] = BigDecimal.ZERO;
+            }
+        }
+
+        // 更新属性
+        orderTotalKey = newOrderTotalKey;
+        orderTotalValue = newOrderTotalValue;
+        orderMoneyValue = newOrderMoneyValue;
+        orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
+        orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
+        orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+        return orderDistributionTotalVo;
+    }
+
+    private int getIndexInOrderTotalKey(String day,String[] orderTotalKey) {
+        for (int i = 0; i < orderTotalKey.length; i++) {
+            if (orderTotalKey[i].equals(day)) {
+                return i;
+            }
+        }
+        return -1;
     }
 
 
@@ -4224,37 +4408,55 @@
     @Override
     public MerOrderTypeTotalVo getStaffOrderTypeTotal(StaffTotalDto staffTotalDto) {
         MerOrderTypeTotalVo orderTypeTotalVo = new MerOrderTypeTotalVo();
-        //获取商品分类销售数据
-        List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listStaffOrderTotalGoodsType(staffTotalDto);
-        List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
-        List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
-        if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
-            MgtMapIntTotalVo MgtMapIntTotalVo;
-            MgtMapBigTotalVo mgtMapBigTotalVo;
-            // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
-                mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
-                mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
-                if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
-                    mgtMapBigTotalVo.setMapKey("周期");
-                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
-                    mgtMapBigTotalVo.setMapKey("服务");
-                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
-                    mgtMapBigTotalVo.setMapKey("体验");
-                } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
-                    mgtMapBigTotalVo.setMapKey("单品");
+        if(staffTotalDto.getActivityFrom()==1){
+            //获取商品分类销售数据
+            List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listStaffOrderTotalGoodsType(staffTotalDto);
+            List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
+            List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
+            if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
+                MgtMapIntTotalVo mgtMapIntTotalVo;
+                MgtMapBigTotalVo mgtMapBigTotalVo;
+                Integer intTotal = 0;
+                BigDecimal bigTotal = BigDecimal.ZERO;
+                for(MgtMapTotalPlusVo mgtMapTotalPlusVo : MgtMapIntTotalVoGoodsType){
+                    intTotal = intTotal + mgtMapTotalPlusVo.getMapValueFirst();
+                    bigTotal = bigTotal.add(mgtMapTotalPlusVo.getMapValueSecond());
                 }
-                goodsTypeTotalList.add(MgtMapIntTotalVo);
-                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                BigDecimal hundredBig = new BigDecimal("100");
+                BigDecimal intTotalBig = hundredBig;
+                if(intTotal!=0){
+                    intTotalBig = new BigDecimal(intTotal.toString());
+                }
+                if(bigTotal.compareTo(BigDecimal.ZERO)<1){
+                    bigTotal = hundredBig;
+                }
+                // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+                for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                    mgtMapIntTotalVo.setMapPercent(BigDecimal.valueOf(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst()).divide(intTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
+                    mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
+                    mgtMapBigTotalVo.setMapPercent(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond().divide(bigTotal,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig));
+                    if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
+                        mgtMapIntTotalVo.setMapKey("周期");
+                        mgtMapBigTotalVo.setMapKey("周期");
+                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
+                        mgtMapIntTotalVo.setMapKey("服务");
+                        mgtMapBigTotalVo.setMapKey("服务");
+                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
+                        mgtMapIntTotalVo.setMapKey("体验");
+                        mgtMapBigTotalVo.setMapKey("体验");
+                    } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
+                        mgtMapIntTotalVo.setMapKey("单品");
+                        mgtMapBigTotalVo.setMapKey("单品");
+                    }
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
+                orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
             }
-            orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
-            orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
         return orderTypeTotalVo;
     }
@@ -4270,32 +4472,34 @@
     public StaffActivityDateMemberTotalVo getStaffActivityGetMemberTotal(StaffTotalDto staffTotalDto) {
         // 创建返回对象
         StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo();
-        // 查询数据库获取数据
-        List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityGetMemberTotal(staffTotalDto);
-        // 将查询结果转为Map
-        Map<String, Integer> map = new HashMap<>();
-        if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
-            map = mgtMapIntTotalVoList.stream()
-                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        if(staffTotalDto.getActivityFrom()==1){
+            // 查询数据库获取数据
+            List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityGetMemberTotal(staffTotalDto);
+            // 将查询结果转为Map
+            Map<String, Integer> map = new HashMap<>();
+            if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
+                map = mgtMapIntTotalVoList.stream()
+                        .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+            }
+            // 获取日期范围
+            List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
+            int size = dateList.size();
+            // 创建日期和成员总数的数组
+            String[] dateMemberTotalKey = new String[size];
+            Integer[] dateMemberTotalValue = new Integer[size];
+            // 遍历日期列表,设置日期和成员总数的数组
+            String str;
+            Integer value;
+            for (int i = 0; i < size; i++) {
+                str = dateList.get(i);
+                dateMemberTotalKey[i] = str;
+                value = map.get(str);
+                dateMemberTotalValue[i] = (value != null) ? value : 0;
+            }
+            // 设置返回对象的日期和成员总数数组
+            staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
+            staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         }
-        // 获取日期范围
-        List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
-        int size = dateList.size();
-        // 创建日期和成员总数的数组
-        String[] dateMemberTotalKey = new String[size];
-        Integer[] dateMemberTotalValue = new Integer[size];
-        // 遍历日期列表,设置日期和成员总数的数组
-        String str;
-        Integer value;
-        for (int i = 0; i < size; i++) {
-            str = dateList.get(i);
-            dateMemberTotalKey[i] = str;
-            value = map.get(str);
-            dateMemberTotalValue[i] = (value != null) ? value : 0;
-        }
-        // 设置返回对象的日期和成员总数数组
-        staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
-        staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         // 返回结果对象
         return staffActivityDateMemberTotalVo;
     }
@@ -4311,32 +4515,40 @@
     public StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto) {
         // 创建返回对象
         StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo();
-        // 查询数据库获取数据
-        List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityMemberTotal(staffTotalDto);
-        // 将查询结果转为Map
-        Map<String, Integer> map = new HashMap<>();
-        if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
-            map = mgtMapIntTotalVoList.stream()
-                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        if(staffTotalDto.getActivityFrom()==1){
+            MerTotalDto merTotalDto = new MerTotalDto();
+            merTotalDto.setAgeType(staffTotalDto.getAgeType());
+            if(staffTotalDto.getAgeType()!=null){
+                List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData();
+                staffTotalDto.setUserIdList(userIdList);
+            }
+            // 查询数据库获取数据
+            List<MgtMapIntTotalVo> mgtMapIntTotalVoList = orderMapper.getStaffActivityMemberTotal(staffTotalDto);
+            // 将查询结果转为Map
+            Map<String, Integer> map = new HashMap<>();
+            if (mgtMapIntTotalVoList != null && !mgtMapIntTotalVoList.isEmpty()) {
+                map = mgtMapIntTotalVoList.stream()
+                        .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+            }
+            // 获取日期范围
+            List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
+            int size = dateList.size();
+            // 创建日期和成员总数的数组
+            String[] dateMemberTotalKey = new String[size];
+            Integer[] dateMemberTotalValue = new Integer[size];
+            // 遍历日期列表,设置日期和成员总数的数组
+            String str;
+            Integer value;
+            for (int i = 0; i < size; i++) {
+                str = dateList.get(i);
+                dateMemberTotalKey[i] = str;
+                value = map.get(str);
+                dateMemberTotalValue[i] = (value != null) ? value : 0;
+            }
+            // 设置返回对象的日期和成员总数数组
+            staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
+            staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         }
-        // 获取日期范围
-        List<String> dateList = getDateRange(staffTotalDto.getStartDate(), staffTotalDto.getEndDate());
-        int size = dateList.size();
-        // 创建日期和成员总数的数组
-        String[] dateMemberTotalKey = new String[size];
-        Integer[] dateMemberTotalValue = new Integer[size];
-        // 遍历日期列表,设置日期和成员总数的数组
-        String str;
-        Integer value;
-        for (int i = 0; i < size; i++) {
-            str = dateList.get(i);
-            dateMemberTotalKey[i] = str;
-            value = map.get(str);
-            dateMemberTotalValue[i] = (value != null) ? value : 0;
-        }
-        // 设置返回对象的日期和成员总数数组
-        staffActivityDateMemberTotalVo.setDateMemberTotalKey(dateMemberTotalKey);
-        staffActivityDateMemberTotalVo.setDateMemberTotalValue(dateMemberTotalValue);
         // 返回结果对象
         return staffActivityDateMemberTotalVo;
     }
@@ -4522,10 +4734,6 @@
                     orderFromDesc = "商城订单";
                 }
                 merOrderPageVo.setOrderFromDesc(orderFromDesc);
-                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney()));
-                if (merOrderPageVo.getUnPaidMoney() == null) {
-                    merOrderPageVo.setUnPaidMoney(zeroBig);
-                }
                 if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){
                     merOrderPageVo.setUnPaidMoney(zeroBig);
                 }
@@ -4547,4 +4755,42 @@
         }
         return merOrderPageVoList;
     }
+
+    /**
+     * @description  获取销售排行
+     * @author  jqs
+     * @date    2023/8/24 18:00
+     * @param shopIdList
+     * @return  List<MgtMapIntTotalVo>
+     */
+    @Override
+    public List<MgtMapBigTotalVo> shopSalesRank(List<Long> shopIdList){
+        return orderMapper.shopSalesRank(shopIdList);
+    }
+
+    /**
+     * @description  获取商户服务统计
+     * @author  jqs
+     * @date    2023/8/24 18:28
+     * @param shopId
+     * @return  MerHomeShopTotalVo
+     */
+    @Override
+    public MerHomeShopTotalVo getShopServiceTotal(Long shopId){
+        MerHomeShopTotalVo serviceTotalVo = orderMapper.getMerHomeShopServiceTotalVo(shopId);
+        return serviceTotalVo;
+    }
+
+    /**
+     * @description  获取区域统计
+     * @author  jqs
+     * @date    2023/8/25 11:49
+     * @param shopIdList
+     * @return  AgencyTotalVo
+     */
+    @Override
+    public AgencyTotalVo getAgencyTotalVo(List<Long> shopIdList){
+        AgencyTotalVo agencyTotalVo = orderMapper.getAgencyTotalVo(shopIdList);
+        return agencyTotalVo;
+    }
 }

--
Gitblit v1.7.1