From db3c1f464e80458a1b6ccbe31b0355775df8e574 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期三, 23 八月 2023 20:45:34 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java            |   11 +
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                              |   94 +++++++---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java                   |    3 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java     |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java            |    7 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java                 |   10 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java     |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java     |    3 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java         |   12 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java                          |   26 --
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java                  |   14 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java               |    3 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java     |   12 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                 |    8 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java           |    7 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java     |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java                    |   10 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java             |    1 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java |    5 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java            |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java  |   11 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java                      |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java                |    3 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java           |   88 +++++++--
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java   |   15 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java       |  125 ++++++++++++-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java  |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java                         |   12 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java            |   19 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java                 |   11 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java     |    6 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml                             |    2 
 32 files changed, 401 insertions(+), 130 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java
index 0e8d002..201ae2c 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/StaffTotalDto.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @ClassName StaffTotalDto
  * @Description TODO
@@ -29,6 +31,9 @@
     @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
     private Integer goodsType;
 
-    @ApiModelProperty(value = "年龄层",hidden = true)
+    @ApiModelProperty(value = "年龄层 1 <20,2 21-30,3 31-40,4 41-50,5 >50")
     private Integer ageType;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private List<Long> userIdList;
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
index c603c9f..7aaddff 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -154,6 +154,11 @@
                 return R.fail("核销奖品失败:" + throwable.getMessage());
             }
 
+            @Override
+            public R<List<Long>> listUserIdByAgeType(Integer ageType) {
+                return R.fail("获取用户id列表失败:" + throwable.getMessage());
+            }
+
 
         };
     }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
index 3eb1215..7e84c47 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -191,7 +191,7 @@
 
 
     /**
-     * @param merVerifyPrizeDto
+     * @param verifyPrize
      * @return R<MemberGiftRecord>
      * @description 获取核销奖品
      * @author jqs
@@ -252,4 +252,14 @@
      */
     @PostMapping("/member/verifyPrize")
     public R verifyPrize(@RequestBody MerVerifyPrizeFinalDto merVerifyPrizeFinalDto);
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/8/23 19:06
+     * @param ageType
+     * @return  R<List<Long>>
+     */
+    @PostMapping("/member/listUserIdByAgeType")
+    public R<List<Long>> listUserIdByAgeType(@RequestBody Integer ageType);
 }
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
index 130d6df..3e5b8df 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -360,4 +360,10 @@
         BirthdayCard birthdayCard = birthdayCardService.getBirthdayCard();
         return R.ok(birthdayCard);
     }
+
+    @PostMapping("/listUserIdByAgeType")
+    public R<List<Long>> listUserIdByAgeType(@RequestBody Integer ageType){
+        List<Long> userIdList = memberService.listUserIdByAgeType(ageType);
+        return R.ok(userIdList);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index e937607..807442b 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1793,7 +1793,20 @@
         orderAgeUserVoList.add(merOrderAgeUserVo);
         return orderAgeUserVoList;
     }
-
+    /**
+     * @description  通过年龄层获取用户id列表
+     * @author  jqs
+     * @date    2023/8/23 18:59
+     * @param ageType
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listUserIdByAgeType(Integer ageType){
+        MerTotalDto merTotalDto = new MerTotalDto();
+        merTotalDto.setAgeType(ageType);
+        List<Long> userIdList = memberMapper.listOrderAgeUser(merTotalDto);
+        return userIdList;
+    }
     /**
      * @description
      * @author  jqs
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
index c88d3e0..bc6985c 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -323,10 +323,19 @@
     List<MerOrderAgeUserVo> listOrderAgeUser(MerTotalDto merTotalDto);
 
     /**
+     * @description  通过年龄层获取用户id列表
+     * @author  jqs
+     * @date    2023/8/23 18:59
+     * @param ageType
+     * @return  List<Long>
+     */
+    List<Long> listUserIdByAgeType(Integer ageType);
+
+    /**
      * @description
      * @author  jqs
      * @date    2023/7/5 21:18
-     * @param mgtBaseGetDto
+     * @param mgtFrozenMemberDto
      * @return  void
      */
     void mgtFrozenMember(MgtFrozenMemberDto mgtFrozenMemberDto);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
index c0f824a..cdef597 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
@@ -66,7 +66,7 @@
     }
 
     @RequestMapping(value = "/getTotalDataTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "获取商户数据统计")
+    @ApiOperation(value = "获取商户数据统计(数据统计)")
     public R<MgtTotalDataTotalVo> getTotalDataTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
         Long userId = SecurityUtils.getUserId();
         mgtBaseShopDto.setUserId(userId);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
index 1eb127a..80cb520 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -109,6 +109,7 @@
                     appMemberBindingDto.setBindingFlag(1);
                     appMemberBindingDto.setBindingType(1);
                     memberService.updateMemberBinding(appMemberBindingDto);
+                    appPlaceOrderDto.setNewMemberFlag(1);
                 }
             }
         }
@@ -134,6 +135,7 @@
                 appMemberBindingDto.setBindingFlag(1);
                 appMemberBindingDto.setBindingType(2);
                 memberService.updateMemberBinding(appMemberBindingDto);
+                appPlaceActivityDto.setNewMemberFlag(1);
             }
         }
         AppPlaceOrderVo appPlaceOrderVo = orderService.placeActivityOrder(appPlaceActivityDto);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java
index b174c78..8cbbef0 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/staff/StaffTotalController.java
@@ -32,7 +32,7 @@
     private OrderService orderService;
 
     @RequestMapping(value = "/getStaffActivityOrderTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "员工端获取订单概况")
+    @ApiOperation(value = "员工端活动分析(订单概况/营业额概况)")
     public R<StaffActivityOrderTotalVo> getStaffActivityOrderTotal(@RequestBody StaffTotalDto staffTotalDto) {
         Long userId = SecurityUtils.getUserId();
         staffTotalDto.setUserId(userId);
@@ -41,7 +41,7 @@
     }
 
     @RequestMapping(value = "/getStaffActivityTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "员工端获取活动统计")
+    @ApiOperation(value = "员工端活动分析(活动统计)")
     public R<StaffActivityTotalVo> getStaffActivityTotal(@RequestBody StaffTotalDto staffTotalDto) {
         Long userId = SecurityUtils.getUserId();
         staffTotalDto.setUserId(userId);
@@ -50,7 +50,7 @@
     }
 
     @RequestMapping(value = "/getStaffOrderDistributionTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "员工端获取订单分布统计")
+    @ApiOperation(value = "员工端活动分析(订单分布)")
     public R<MerOrderDistributionTotalVo> getStaffOrderDistributionTotal(@RequestBody StaffTotalDto staffTotalDto) {
         Long userId = SecurityUtils.getUserId();
         staffTotalDto.setUserId(userId);
@@ -59,7 +59,7 @@
     }
 
     @RequestMapping(value = "/getStaffOrderTypeTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "员工端获取销售占比统计")
+    @ApiOperation(value = "员工端活动分析(销售占比)")
     public R<MerOrderTypeTotalVo> getMerOrderTypeTotal(@RequestBody StaffTotalDto staffTotalDto) {
         Long userId = SecurityUtils.getUserId();
         staffTotalDto.setUserId(userId);
@@ -69,7 +69,7 @@
 
 
     @RequestMapping(value = "/getStaffActivityGetMemberTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "员工端获取获客人数")
+    @ApiOperation(value = "员工端活动分析(获客人数)")
     public R<StaffActivityDateMemberTotalVo> getStaffActivityGetMemberTotal(@RequestBody StaffTotalDto staffTotalDto) {
         Long userId = SecurityUtils.getUserId();
         staffTotalDto.setUserId(userId);
@@ -78,7 +78,7 @@
     }
 
     @RequestMapping(value = "/getStaffActivityMemberTotal", method = RequestMethod.POST)
-    @ApiOperation(value = "员工端获取参与人数")
+    @ApiOperation(value = "员工端活动分析(参与人数)")
     public R<StaffActivityDateMemberTotalVo> getStaffActivityMemberTotal(@RequestBody StaffTotalDto staffTotalDto) {
         Long userId = SecurityUtils.getUserId();
         staffTotalDto.setUserId(userId);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java
index b79b189..499a72c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceActivityDto.java
@@ -39,4 +39,7 @@
     @ApiModelProperty(value = "订单备注")
     private String orderRemark;
 
+    @ApiModelProperty(value = "获客标记",hidden = true)
+    private Integer newMemberFlag;
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java
index d104c96..8f4876c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/AppPlaceOrderDto.java
@@ -30,4 +30,7 @@
     @ApiModelProperty(value = "购物车列表")
     List<AppBuyGoodsDto> appBuyGoodsDtoList;
 
+    @ApiModelProperty(value = "获客标记",hidden = true)
+    private Integer newMemberFlag;
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
index 688955d..177536d 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -179,6 +179,9 @@
     @TableField("change_receivable_money")
     private BigDecimal changeReceivableMoney;
 
+    @TableField("new_member_flag")
+    private Integer newMemberFlag;
+
 
     @Override
     protected Serializable pkVal() {
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java
index c4ab01d..e41540e 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderDistributionTotalVo.java
@@ -1,7 +1,5 @@
 package com.ruoyi.order.domain.vo;
 
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -24,7 +22,6 @@
     private Integer[] orderTotalValue;
 
     @ApiModelProperty(value = "订单金额value")
-    
     private BigDecimal[] orderMoneyValue;
 
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
index 5dd34f9..0b9827b 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -567,6 +567,16 @@
      */
     StaffActivityOrderTotalVo getStaffActivityOrderTotal(@Param("param")StaffTotalDto staffTotalDto);
 
+
+    /**
+     * @description  员工端活动订单统计
+     * @author  jqs
+     * @date    2023/7/17 15:25
+     * @param staffTotalDto
+     * @return  StaffActivityOrderTotalVo
+     */
+    StaffActivityOrderTotalVo getStaffActivityOrderGoodsTotal(@Param("param")StaffTotalDto staffTotalDto);
+
     /**
      * @description  员工端活动统计
      * @author  jqs
@@ -581,10 +591,10 @@
      * @description 获取各年龄层统计
      * @author  jqs
      * @date    2023/7/4 10:27
-     * @param userIdList
+     * @param staffTotalDto
      * @return  MgtMapTotalPlusVo
      */
-    MgtMapTotalPlusVo listStaffActivityOrderDistributionTotal(@Param("userIdList")List<Long> userIdList,@Param("shopId")Long shopId,@Param("activityId")String activityId);
+    List<MgtMapTotalPlusVo> listStaffActivityOrderDistributionTotal(@Param("param")StaffTotalDto staffTotalDto);
 
 
     /**
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 d9ee052..9ca1fb0 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
@@ -734,6 +734,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);
         // 更新用户商品类型
@@ -1073,6 +1076,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);
         // 更新用户商品类型
@@ -2187,14 +2193,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) {
@@ -2206,7 +2204,17 @@
             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.setShopId(order.getShopId());
@@ -2917,9 +2925,21 @@
      */
     @Override
     public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto) {
+
         //获取人数统计
-        MgtTotalDataTotalVo mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
         BigDecimal salesTotal = orderMapper.shopSalesTotal(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 mgtTotalDataTotalVo = orderMapper.getTotalDataTotal(mgtBaseShopDto);
+
         mgtTotalDataTotalVo.setSalesTotal(salesTotal);
         Integer reorderPerson = orderMapper.getReorderPerson(mgtBaseShopDto);
         mgtTotalDataTotalVo.setReorderPerson(reorderPerson);
@@ -3522,9 +3542,7 @@
                 orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
                 orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
             }
-            orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
-            orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
-            orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
         }
         // 返回订单分布总数对象
         return orderDistributionTotalVo;
@@ -4141,6 +4159,10 @@
     @Override
     public StaffActivityOrderTotalVo getStaffActivityOrderTotal(StaffTotalDto staffTotalDto) {
         StaffActivityOrderTotalVo staffActivityOrderTotalVo = orderMapper.getStaffActivityOrderTotal(staffTotalDto);
+        StaffActivityOrderTotalVo staffActivityOrderGoodsTotalVo = orderMapper.getStaffActivityOrderGoodsTotal(staffTotalDto);
+        staffActivityOrderTotalVo.setCycleTotal(staffActivityOrderGoodsTotalVo.getCycleTotal());
+        staffActivityOrderTotalVo.setServiceTotal(staffActivityOrderGoodsTotalVo.getServiceTotal());
+        staffActivityOrderTotalVo.setExperienceTotal(staffActivityOrderGoodsTotalVo.getExperienceTotal());
         return staffActivityOrderTotalVo;
     }
 
@@ -4168,11 +4190,11 @@
     public MerOrderDistributionTotalVo getStaffOrderDistributionTotal(StaffTotalDto staffTotalDto) {
         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;
@@ -4218,9 +4240,74 @@
             orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
             orderDistributionTotalVo.setOrderTotalValue(orderTotalValue);
             orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
+        }*/
+        List<MgtMapTotalPlusVo> mgtMapTotalPlusVoList = orderMapper.listStaffActivityOrderDistributionTotal(staffTotalDto);
+        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);
+                orderTotalKey[i] = mgtMapTotalPlusVo.getMapKey();
+                orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
+                orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
+            }
+            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,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;
     }
 
 
@@ -4319,6 +4406,12 @@
      */
     @Override
     public StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto) {
+        MerTotalDto merTotalDto = new MerTotalDto();
+        merTotalDto.setAgeType(staffTotalDto.getAgeType());
+        if(staffTotalDto.getAgeType()!=null){
+            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(staffTotalDto.getAgeType()).getData();
+            staffTotalDto.setUserIdList(userIdList);
+        }
         // 创建返回对象
         StaffActivityDateMemberTotalVo staffActivityDateMemberTotalVo = new StaffActivityDateMemberTotalVo();
         // 查询数据库获取数据
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 9366618..b3b4cff 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -998,7 +998,7 @@
                      COUNT(DISTINCT CASE WHEN og.goods_type = 4 THEN og.goods_id ELSE NULL END) AS goods_type_4_count
                  FROM t_order o
                           JOIN t_order_goods og ON o.order_id = og.order_id
-                 WHERE o.del_flag = 0 AND og.del_flag = 0
+                 WHERE o.del_flag = 0 AND og.del_flag = 0 AND o.order_status IN (2,3)
                 <if test="param.shopId != null and param.shopId != ''">
                     AND o.shop_id = #{param.shopId}
                 </if>
@@ -1013,9 +1013,9 @@
     </select>
 
     <select id="shopSalesTotal" resultType="java.math.BigDecimal">
-        SELECT IFNULL(SUM(pay_money),0)
+        SELECT IFNULL(SUM(change_receivable_money),0)
         FROM t_order
-        WHERE del_flag = 0
+        WHERE del_flag = 0 AND order_status = 3
         <if test="param.shopId != null and param.shopId != ''">
             AND shop_id = #{param.shopId}
         </if>
@@ -1643,14 +1643,29 @@
     <select id="getStaffActivityOrderTotal" resultType="com.ruoyi.order.domain.vo.StaffActivityOrderTotalVo">
         SELECT
             COUNT(DISTINCT toc.order_id) orderTotal,
-            IFNULL(SUM(toc.order_money),0) orderMoney,
-            COUNT(DISTINCT toc.user_id) memberTotal,
-            IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal,
-            IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal,
-            IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal
+            IFNULL(SUM(toc.change_receivable_money),0) orderMoney,
+            COUNT(DISTINCT toc.user_id) memberTotal
+        FROM t_order toc
+        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3
+        <if test="param.activityId !=null and param.activityId != ''">
+            AND toc.activity_id = #{param.activityId}
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toc.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+    </select>
+
+    <select id="getStaffActivityOrderGoodsTotal" resultType="com.ruoyi.order.domain.vo.StaffActivityOrderTotalVo">
+        SELECT
+        IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal,
+        IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal,
+        IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2
+        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3
         <if test="param.activityId !=null and param.activityId != ''">
             AND toc.activity_id = #{param.activityId}
         </if>
@@ -1666,32 +1681,35 @@
         SELECT
         COUNT(toa.user_id) memberTotal,
         IFNULL(SUM(CASE WHEN tog.goods_type = 1 THEN 1 ELSE 0 END),0) cycleTotal,
-        IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) experienceTotal,
-        IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) serviceTotal
+        IFNULL(SUM(CASE WHEN tog.goods_type = 3 THEN 1 ELSE 0 END),0) experienceTotal,
+        IFNULL(SUM(CASE WHEN tog.goods_type = 2 THEN 1 ELSE 0 END),0) serviceTotal
         FROM t_order toa
         INNER JOIN t_order_goods tog ON tog.order_id = toa.order_id
-        WHERE toa.order_id IN
-        (SELECT firstOrder.orderId FROM
-        (SELECT toc.user_id userId, MIN(toc.create_time) createTime,  MIN(toc.order_id) orderId
-        FROM t_order toc WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} GROUP BY toc.user_id) AS firstOrder)
-        AND toa.order_from = 2
+        WHERE toa.order_from = 2 AND toa.order_status IN (2,3) AND toa.new_member_flag = 1
         <if test="param.activityId !=null and param.activityId != ''">
             AND toa.activity_id = #{param.activityId}
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toa.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toa.create_time) &lt;= #{param.endDate}
         </if>
     </select>
 
     <select id="listStaffActivityOrderDistributionTotal" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
         SELECT
-        COUNT(order_id) AS mapValueFirst,
-        IFNULL(SUM(order_money),0) AS mapValueSecond
-        FROM t_order
-        WHERE del_flag = 0 AND shop_id = #{shopId} AND order_from = 2 AND user_id IN
-        <foreach collection="userIdList" item="item" open="(" separator="," close=")">
-            #{item}
-        </foreach>
-        <if test="activityId !=null and activityId != ''">
-            AND activity_id = #{activityId}
+        DATE(toc.create_time) AS mapKey,
+        COUNT(DISTINCT tog.order_id) AS mapValueFirst,
+        SUM(tog.goods_receivable_money) AS mapValueSecond
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON toc.order_id = tog.order_id
+        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status IN (2,3)
+        <if test="param.activityId !=null and param.activityId != ''">
+            AND toc.activity_id = #{param.activityId}
         </if>
+        AND toc.create_time >= DATE_SUB(CURDATE(), INTERVAL 5 DAY)
+        GROUP BY mapKey
     </select>
 
     <select id="listStaffOrderTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
@@ -1701,7 +1719,7 @@
         IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2
+        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_status = 3
         <if test="param.activityId !=null and param.activityId != ''">
             AND toc.activity_id = #{param.activityId}
         </if>
@@ -1714,16 +1732,18 @@
             COUNT(DISTINCT toc.user_id) AS mapValue
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.order_id IN
-        (SELECT firstOrder.orderId FROM
-        (SELECT toa.user_id userId, MIN(toa.create_time) createTime,  MIN(toa.order_id) orderId
-        FROM t_order toa WHERE toa.del_flag = 0 AND toa.shop_id = #{param.shopId} GROUP BY toa.user_id) AS firstOrder)
-        AND toc.order_from = 2
+        WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status IN (2,3) AND toc.shop_id = #{param.shopId}
         <if test="param.activityId !=null and param.activityId != ''">
             AND toc.activity_id = #{param.activityId}
         </if>
         <if test="param.goodsType !=null and param.goodsType != ''">
             AND tog.goods_type = #{param.goodsType}
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toc.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
         </if>
         GROUP BY mapKey
     </select>
@@ -1741,6 +1761,18 @@
         <if test="param.goodsType !=null and param.goodsType != ''">
             AND tog.goods_type = #{param.goodsType}
         </if>
+        <if test="param.userIdList !=null and param.userIdList.size()>0">
+            AND toc.user_id IN
+            <foreach collection="param.userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(toc.create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
         GROUP BY mapKey
     </select>
 
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
index fdc0a46..1b8ca88 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.shop.controller.console;
 
+import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
@@ -359,4 +360,10 @@
         shopService.authShop();
         return R.ok();
     }
+
+    @PostMapping("/addProfitSharingReceiver")
+    R authShop(@RequestBody ProfitSharingReceiver profitSharingReceiver){
+        shopService.addProfitSharingReceiver(profitSharingReceiver);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
index d872cfb..7f5f421 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -80,7 +80,7 @@
         }
         List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
         ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class);
-        util.exportExcel(response, mgtShopPageVoList, "用户订单列表");
+        util.exportExcel(response, mgtShopPageVoList, "商户列表");
     }
 
     @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST)
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java
index 09b08c3..942be02 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopDetail.java
@@ -1,9 +1,9 @@
 package com.ruoyi.shop.domain.pojo.shop;
 
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.activerecord.Model;
-import com.baomidou.mybatisplus.annotations.TableField;
-import com.baomidou.mybatisplus.annotations.TableId;
-import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -21,7 +21,7 @@
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@TableName("t_shop_detail")
+@TableName(value = "t_shop_detail")
 public class ShopDetail extends Model<ShopDetail> {
 
     private static final long serialVersionUID = 1L;
@@ -30,7 +30,7 @@
      * 商户id
      */
     @TableId("shop_id")
-    private Integer shopId;
+    private Long shopId;
     /**
      * 删除标记
      */
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java
index 337dd95..d18cc22 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopInfoGetVo.java
@@ -44,6 +44,9 @@
     @ApiModelProperty(value = "商户id")
     private Long shopId;
 
+    @ApiModelProperty(value="商店类型1.经销商2.代理商")
+    private Integer shopType;
+
     @ApiModelProperty(value="商户名称")
     private String shopName;
 
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java
index 81047bd..1f78932 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/StaffShopSimpleTotalVo.java
@@ -13,12 +13,21 @@
 @Data
 public class StaffShopSimpleTotalVo {
 
-    @ApiModelProperty(value = "总数")
+    @ApiModelProperty(value = "经销商总数")
     private Integer shopTotal;
 
-    @ApiModelProperty(value = "准店铺")
-    private Integer closeTotal;
+    @ApiModelProperty(value = "经销商准店铺")
+    private Integer closeShopTotal;
 
-    @ApiModelProperty(value = "开业中")
-    private Integer openTotal;
+    @ApiModelProperty(value = "经销商开业中")
+    private Integer openShopTotal;
+
+    @ApiModelProperty(value = "代理商总数")
+    private Integer agencyTotal;
+
+    @ApiModelProperty(value = "代理商准店铺")
+    private Integer closeAgencyTotal;
+
+    @ApiModelProperty(value = "代理商开业中")
+    private Integer openAgencyTotal;
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
index 290f50a..56eca28 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java
@@ -219,7 +219,7 @@
      * @param userIdList
      * @return  StaffShopSimpleTotalVo
      */
-    StaffShopSimpleTotalVo getStaffSimpleTotal(@Param("userIdList")List<Long> userIdList);
+    StaffShopSimpleTotalVo getStaffSimpleTotal(@Param("shopType")Integer shopType,@Param("userIdList")List<Long> userIdList);
 
     /**
      * @description  获取员工端商户数量统计
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 1f31e90..ea3587f 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
 import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
+import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.exception.ServiceException;
@@ -129,6 +130,8 @@
 
     @Resource
     private RemoteUserService remoteUserService;
+
+
 
     /**
      * 获取商户详情
@@ -798,17 +801,28 @@
             mgtBasePlatformDto.setUserIdList(userIds);
             shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
             Shop shop = this.getShopByBelongUserId(userId);
-            shopIds.add(shop.getShopId());
-            userIds.add(userId);
+            if(shop!=null){
+                shopIds.add(shop.getShopId());
+                userIds.add(userId);
+            }
         }else {
             //普通员工查询商户归属的shopId
             Shop shop = this.getShopByBelongUserId(userId);
-
             shopIds.add(shop.getShopId());
         }
         //分别查询
-        StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds);
-        Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds);
+        StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo();
+        if(userIds!=null&&!userIds.isEmpty()){
+            staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds);
+        }else{
+            staffHomeShopTotalVo.setShopTotal(0);
+            staffHomeShopTotalVo.setAgencyTotal(0);
+            staffHomeShopTotalVo.setDealerTotal(0);
+        }
+        Integer shopTaskCount = 0;
+        if(shopIds!=null&&!shopIds.isEmpty()){
+            shopTaskService.getShopIngTotal(shopIds);
+        }
         staffHomeShopTotalVo.setFollowMember(0);
         staffHomeShopTotalVo.setNewMember(0);
         staffHomeShopTotalVo.setShopTask(shopTaskCount);
@@ -1011,7 +1025,7 @@
         Shop shop = this.getByShopId(shopAuthentication.getShopId());
 
         if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
-            mgtShopAuthDto.setBlBusinessDeanline(mgtShopAuthDto.getBlBusinessStartTime()+",长期");
+            mgtShopAuthDto.setBlBusinessDeanline("长期");
         }
         if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
             mgtShopAuthDto.setLpIcEndDate("长期");
@@ -1027,7 +1041,7 @@
             applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
         } catch (Exception e) {
             log.debug("-----"+shop.getShopId()+":进件异常-----");
-            throw new RuntimeException(e);
+            throw new ServiceException(e.getMessage());
         }
         shopAuthentication.setAuditStatus(3);
         shopAuthenticationService.saveOrUpdate(shopAuthentication);
@@ -1264,7 +1278,12 @@
         }else {
             userIdList.add(userId);
         }
-        return shopMapper.getStaffSimpleTotal(userIdList);
+        StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList);
+        StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList);
+        shopTotal.setAgencyTotal(agencyTotal.getShopTotal());
+        shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal());
+        shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal());
+        return shopTotal;
     }
 
     /**
@@ -1388,6 +1407,8 @@
         List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
         if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
             extendContacts = JSON.toJSONString(extendContactsVoList);
+        }else{
+            extendContacts = "";
         }
         shop.setExtendContacts(extendContacts);
         shop.setShopId(staffShopECEditDto.getShopId());
@@ -1517,7 +1538,24 @@
     public StaffShopDetailVo getShopDetail(Long shopId){
         ShopDetail shopDetail = shopDetailService.getById(shopId);
         StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo();
-        BeanUtils.copyProperties(shopDetail, staffShopDetailVo);
+        if(shopDetail!=null){
+            BeanUtils.copyProperties(shopDetail, staffShopDetailVo);
+            //处理联系人
+            String customerName = shopDetail.getCustomerName();
+            String customerMobile = shopDetail.getCustomerMobile();
+            List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>();
+            String[] customerNameArr = customerName.split(",");
+            String[] customerMobileArr = customerMobile.split(",");
+            staffShopDetailVo.setContactName(customerNameArr[0]);
+            StaffCustomerDto staffCustomerDto;
+            for(int i=0;i<customerNameArr.length;i++){
+                staffCustomerDto = new StaffCustomerDto();
+                staffCustomerDto.setCustomerName(customerNameArr[i]);
+                staffCustomerDto.setCustomerMobile(customerMobileArr[i]);
+                staffCustomerDtoList.add(staffCustomerDto);
+            }
+            staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList);
+        }
         //归属客户
         Shop shop = this.getByShopId(shopId);
         Long belongUserId = shop.getBelongUserId();
@@ -1532,21 +1570,23 @@
         if(shopTask!=null){
             staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate());
         }
-        //处理联系人
-        String customerName = shopDetail.getCustomerName();
-        String customerMobile = shopDetail.getCustomerMobile();
-        List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>();
-        String[] customerNameArr = customerName.split(",");
-        String[] customerMobileArr = customerMobile.split(",");
-        staffShopDetailVo.setContactName(customerNameArr[0]);
-        StaffCustomerDto staffCustomerDto;
-        for(int i=0;i<customerNameArr.length;i++){
-            staffCustomerDto = new StaffCustomerDto();
-            staffCustomerDto.setCustomerName(customerNameArr[i]);
-            staffCustomerDto.setCustomerMobile(customerMobileArr[i]);
-            staffCustomerDtoList.add(staffCustomerDto);
-        }
-        staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList);
         return staffShopDetailVo;
     }
+
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/8/23 9:44
+     * @param
+     * @return  void
+     */
+    @Override
+    public void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver){
+        try {
+            ProfitSharingReceiver result = wechatPayUtils.addProfitSharingReceiver(profitSharingReceiver);
+        } catch (WxPayException e) {
+            throw new RuntimeException(e);
+        }
+    }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
index c6beec2..2eabf17 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.shop.domain.dto.*;
 import com.ruoyi.shop.domain.vo.*;
@@ -368,4 +369,13 @@
      * @return  StaffShopDetailVo
      */
     StaffShopDetailVo getShopDetail(Long shopId);
+    
+    /**
+     * @description  
+     * @author  jqs
+     * @date    2023/8/23 9:44
+     * @param 
+     * @return  void
+     */
+    void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
index 95f4c24..0ad0886 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/WechatPayUtils.java
@@ -5,6 +5,7 @@
 import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
 import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
 import com.github.binarywang.wxpay.bean.media.ImageUploadResult;
+import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingReceiver;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.binarywang.wxpay.service.EcommerceService;
 import com.github.binarywang.wxpay.service.MerchantMediaService;
@@ -78,7 +79,9 @@
         lpIcBackIO.close();
         id_card_info.setIdCardName(shopAuthentication.getLpCorporateName());
         id_card_info.setIdCardNumber(shopAuthentication.getLpIdCard());
-        id_card_info.setIdCardAddress(shopAuthentication.getLpIdAddress());
+        if(shopAuthentication.getMainType()==2){
+            id_card_info.setIdCardAddress(shopAuthentication.getLpIdAddress());
+        }
         id_card_info.setIdCardValidTimeBegin(shopAuthentication.getLpIcStartDate());
         id_card_info.setIdCardValidTime(shopAuthentication.getLpIcEndDate());
         request.setIdCardInfo(id_card_info);
@@ -154,4 +157,11 @@
         return wxService.getEcommerceService().queryApplyStatusByApplymentId(applymentId);
     }
 
+    public ProfitSharingReceiver addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver) throws WxPayException {
+        profitSharingReceiver.setAppid("wxb7f0ea286fc4e535");
+        profitSharingReceiver.setType("MERCHANT_ID");
+        profitSharingReceiver.setRelationType("SERVICE_PROVIDER");
+        ProfitSharingReceiver result = wxService.getProfitSharingV3Service().addProfitSharingReceiver(profitSharingReceiver);
+        return result;
+    }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
index 5ec387e..ca2ccd9 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -871,10 +871,10 @@
     <select id="getStaffSimpleTotal" resultType="com.ruoyi.shop.domain.vo.StaffShopSimpleTotalVo">
         SELECT
         COUNT(shop_id) shopTotal,
-        SUM(CASE shop_status WHEN 0 THEN 1 WHEN 2 THEN 1 WHEN 3 THEN 1 ELSE 0 END) closeTotal,
-        SUM(CASE shop_status WHEN 1 THEN 1 ELSE 0 END) openTotal
+        SUM(CASE shop_status WHEN 0 THEN 1 WHEN 2 THEN 1 WHEN 3 THEN 1 ELSE 0 END) closeShopTotal,
+        SUM(CASE shop_status WHEN 1 THEN 1 ELSE 0 END) openShopTotal
         FROM t_shop ts
-        WHERE ts.del_flag = 0
+        WHERE ts.del_flag = 0 AND ts.shop_type = #{shopType}
         AND ts.belong_user_id IN
         <foreach item="id" collection="userIdList" open="(" separator="," close=")">
             #{id}
@@ -903,7 +903,7 @@
             extend_contacts = null,
         </if>
         <if test="updateTime != null">update_time = #{updateTime},</if>
-        <if test="updateUserId != null">update_user_id = #{updateUserId},</if>
+        <if test="updateUserId != null">update_user_id = #{updateUserId}</if>
         WHERE shop_id = #{shopId}
     </update>
 
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml
index 9b73cec..8fe82fb 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskMapper.xml
@@ -114,7 +114,7 @@
         FROM t_shop_task tst
         LEFT JOIN t_shop_task_record tstr ON tstr.task_id = tst.task_id AND tstr.id = (SELECT MAX(id) FROM t_shop_task_record WHERE task_id = tst.task_id)
         WHERE tst.del_flag = 0 AND tst.shop_id = #{param.shopId}
-        <if test="param.taskStatus!=null and param.taskStatus != ''">
+        <if test="param.taskStatus!=null">
             AND tst.task_status = #{param.taskStatus}
         </if>
         ORDER BY tst.task_status ASC
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java
new file mode 100644
index 0000000..c6d8165
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysSimpleDept.java
@@ -0,0 +1,11 @@
+package com.ruoyi.system.domain.vo;
+
+/**
+ * @ClassName SysSimpleDept
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/8/23 14:47
+ * @Version 1.0
+ */
+public class SysSimpleDept {
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
index fd20568..e6c6f4f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -300,8 +300,19 @@
         StringBuilder failureMsg = new StringBuilder();
         SysStaff sysStaff;
         Date nowTime = new Date();
+        String mobile;
+        String userName;
+        String department;
+        int lastIndex;
+
         for (MgtSysStaffImportDto entity : staffImportDtoList) {
             try {
+                mobile = entity.getMobile();
+                userName = entity.getUserName();
+                department = entity.getDepartment();
+                lastIndex = department.lastIndexOf("/");
+                department = department.substring(lastIndex + 1);
+
                 /*tagName = entity.getTagName();
                 sysTagSame = null;
                 // 验证是否存在这个用户
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java
index 9e21529..b7b4b70 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java
@@ -396,4 +396,6 @@
     public SysDept getByWxDeptId(Long wxDeptId){
         return deptMapper.getByWxDeptId(wxDeptId);
     }
+
+
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java
index 4eb0e9c..4a8c48e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysDeptService.java
@@ -131,4 +131,5 @@
      * @return  SysDept
      */
     SysDept getByWxDeptId(Long wxDeptId);
+
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java
index 4af62ba..ea9976f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/QiYeUtils.java
@@ -3,7 +3,6 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
 
-import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -18,30 +17,7 @@
 
     private final static String ACCESS_TOKEN_HOST = "https://qyapi.weixin.qq.com/cgi-bin/";
 
-    public static void main(String[] args) throws Exception {
-        Integer manTotal = 0;
-        Integer womenTotal = 0;
-        Integer personTotal = manTotal + womenTotal;
-        BigDecimal manTotalBig = new BigDecimal(manTotal);
-        BigDecimal personTotalBig = new BigDecimal(personTotal);
-        BigDecimal bigTen = new BigDecimal("100.00");
-        BigDecimal menPercent = new BigDecimal("100.00");
-        BigDecimal womenPercent = new BigDecimal("100.00");
-        if(manTotal==0&&womenTotal==0){
-            menPercent = new BigDecimal("50.00");
-            womenPercent = new BigDecimal("50.00");
-        }else if(manTotal==0&&womenTotal>0){
-            menPercent = new BigDecimal("0.00");
-            womenPercent = new BigDecimal("100.00");
-        }else if(manTotal>0&&womenTotal==0){
-            menPercent = new BigDecimal("100.00");
-            womenPercent = new BigDecimal("0.00");
-        }else{
-            menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
-            womenPercent = bigTen.subtract(menPercent);
-        }
-        System.out.println(menPercent+"-"+womenPercent);
-    }
+
 
     public static String getAccessTokenByQY() throws Exception {
         String host = ACCESS_TOKEN_HOST + "gettoken?corpid=ww11400938eb1b91bc&corpsecret=-wuQ2EBxNT9BJa40LdpFqyxI_8RqrZTCUNiabzBasi8";

--
Gitblit v1.7.1