From c97706c3cc213b7db3d381e8a0435ff0ef9a04d6 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 04 九月 2023 18:53:40 +0800
Subject: [PATCH] seata  同步 支付调整

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                  |    6 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/scheduler/OrderScheduler.java                      |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java         |   12 +
 ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java                                  |   13 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtWxCPStaffDto.java                  |   36 +++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java               |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpProperties.java                       |    3 
 ruoyi-modules/ruoyi-order/pom.xml                                                                          |    8 
 ruoyi-modules/ruoyi-shop/pom.xml                                                                           |    6 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java                    |   17 +
 ruoyi-modules/ruoyi-system/pom.xml                                                                         |    6 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java                     |    3 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                     |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/ConfigEnum.java                     |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java         |    9 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java                |   49 ++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java |   28 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java                   |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java                        |   22 +-
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java                      |    4 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/AsyncConfig.java         |    4 
 ruoyi-common/ruoyi-common-seata/pom.xml                                                                    |    1 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java   |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java                   |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java                         |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java               |   24 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java   |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java       |  201 ++++++++++++++++++-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java           |   14 +
 ruoyi-modules/ruoyi-member/pom.xml                                                                         |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtShopCommonProportionEditDto.java   |   21 ++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java                   |    6 
 ruoyi-modules/ruoyi-goods/pom.xml                                                                          |    7 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java   |   10 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java          |    9 
 ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml                                                |    2 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java                   |    4 
 37 files changed, 497 insertions(+), 69 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/ConfigEnum.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/ConfigEnum.java
index e753326..aa59168 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/ConfigEnum.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/ConfigEnum.java
@@ -37,7 +37,8 @@
     NURSE_PROBLEM("NURSE_PROBLEM", 4,"调理问题"),
     HOME_STYLE("HOME_STYLE", 2,"首页风格"),
     HOME_SLOGAN("HOME_SLOGAN", 1,"首页广告语"),
-    HOME_LOGO("HOME_LOGO", 1,"首页logo");
+    HOME_LOGO("HOME_LOGO", 1,"首页logo"),
+    SHOP_COMMON_PROPORTION("SHOP_COMMON_PROPORTION", 1,"商户统一分成");
 
 
 
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java
index 9381a1c..5f7ac74 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/SecurityConstant.java
@@ -52,6 +52,11 @@
     String AUTO_CANCEL_ORDER_TIME = "AUTO_CANCEL_ORDER_TIME";
 
     /**
+     * 商户统一分成
+     */
+    String SHOP_COMMON_PROPORTION = "SHOP_COMMON_PROPORTION";
+
+    /**
      * 自动取消订单时间
      */
     String PAY_MONEY_INTEGRAL = "PAY_MONEY_INTEGRAL";
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java
index ab6c083..11230b8 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/shop/Shop.java
@@ -280,6 +280,12 @@
      */
     @TableField("auth_flag")
     private Integer authFlag;
+
+    /**
+     * 分账标记
+     */
+    @TableField("account_flag")
+    private Integer accountFlag;
     /**
      * 店铺二维码
      */
diff --git a/ruoyi-common/ruoyi-common-seata/pom.xml b/ruoyi-common/ruoyi-common-seata/pom.xml
index 7e8ce07..3031adb 100644
--- a/ruoyi-common/ruoyi-common-seata/pom.xml
+++ b/ruoyi-common/ruoyi-common-seata/pom.xml
@@ -23,5 +23,6 @@
             <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
         </dependency>
 
+
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/AsyncConfig.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/AsyncConfig.java
index 3bc8ba7..5c8e743 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/AsyncConfig.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/AsyncConfig.java
@@ -1,6 +1,6 @@
 package com.ruoyi.common.security.config;
 
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.AsyncConfigurer;
@@ -20,7 +20,7 @@
  */
 @Configuration
 @EnableAsync
-@Slf4j
+@Log4j2
 public class AsyncConfig implements AsyncConfigurer {
 
     /**
diff --git a/ruoyi-modules/ruoyi-goods/pom.xml b/ruoyi-modules/ruoyi-goods/pom.xml
index 123fe0b..6128e42 100644
--- a/ruoyi-modules/ruoyi-goods/pom.xml
+++ b/ruoyi-modules/ruoyi-goods/pom.xml
@@ -78,6 +78,13 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
+        <!-- RuoYi Common Seata-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-seata</artifactId>
+        </dependency>
+
+
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java
index 23c40e7..5050765 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/scheduler/ActivityScheduler.java
@@ -2,14 +2,14 @@
 
 
 import com.ruoyi.goods.service.activity.ActivityService;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 
 @Component
-@Slf4j
+@Log4j2
 public class ActivityScheduler {
 
 
diff --git a/ruoyi-modules/ruoyi-member/pom.xml b/ruoyi-modules/ruoyi-member/pom.xml
index c17cff4..4122064 100644
--- a/ruoyi-modules/ruoyi-member/pom.xml
+++ b/ruoyi-modules/ruoyi-member/pom.xml
@@ -78,6 +78,11 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
+        <!-- RuoYi Common Seata-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-seata</artifactId>
+        </dependency>
 
 
         <dependency>
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java
index 9309e1f..a02a102 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerBirthdayController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.system.api.domain.dto.MerBaseDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -26,6 +27,7 @@
 @Api(value = "商户端生日卡相关接口", tags = "商户端生日卡相关接口", description = "商户端生日卡相关接口")
 @RestController
 @RequestMapping("/mer/birthday")
+@Log4j2
 public class MerBirthdayController {
 
 
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java
index 8cfff87..5bab29b 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/scheduler/MemberScheduler.java
@@ -5,7 +5,7 @@
 import com.ruoyi.member.service.member.MemberCouponService;
 import com.ruoyi.member.service.member.MemberService;
 import com.ruoyi.member.service.member.MemberTotalService;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -14,7 +14,7 @@
 
 
 @Component
-@Slf4j
+@Log4j2
 public class MemberScheduler {
 
 
diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml
index d180c09..5f77d00 100644
--- a/ruoyi-modules/ruoyi-order/pom.xml
+++ b/ruoyi-modules/ruoyi-order/pom.xml
@@ -78,6 +78,13 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
+        <!-- RuoYi Common Seata-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-seata</artifactId>
+        </dependency>
+
+
 
         <dependency>
             <groupId>com.baomidou</groupId>
@@ -143,6 +150,7 @@
             <version>4.13.1</version>
             <scope>test</scope>
         </dependency>
+
     </dependencies>
 
     <build>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/scheduler/OrderScheduler.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/scheduler/OrderScheduler.java
index e7b6efc..54dfb5c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/scheduler/OrderScheduler.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/scheduler/OrderScheduler.java
@@ -2,7 +2,7 @@
 
 
 import com.ruoyi.order.service.order.OrderService;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -11,7 +11,7 @@
 
 
 @Component
-@Slf4j
+@Log4j2
 public class OrderScheduler {
 
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
index df34a6f..29ba1ef 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -30,6 +30,7 @@
 import com.ruoyi.system.api.service.RemoteGoodsService;
 import com.ruoyi.system.api.service.RemoteMemberService;
 import com.ruoyi.system.api.service.RemoteShopService;
+import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -100,7 +101,7 @@
      * @param merSureConsumerGoodsDto
      */
     @Override
-    @Transactional
+        @Transactional
     public void sureMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
         ConsumerGoods oldConsumerGoods = this.getById(merSureConsumerGoodsDto.getConsumerGoodsId());
         if(oldConsumerGoods.getSureNum()==null||oldConsumerGoods.getSureNum()<1){
@@ -217,6 +218,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){
         List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList();
         if (goodsList != null && !goodsList.isEmpty()) {
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 e165591..f533272 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
@@ -58,7 +58,8 @@
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
-import lombok.extern.slf4j.Slf4j;
+import io.seata.spring.annotation.GlobalTransactional;
+import lombok.extern.log4j.Log4j2;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
@@ -84,7 +85,7 @@
  * @since 2023-04-25
  */
 @Service
-@Slf4j
+@Log4j2
 public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
 
     @Resource
@@ -513,6 +514,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) {
         // 获取用户ID
         Long userId = appPlaceOrderDto.getUserId();
@@ -912,6 +914,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) {
         Long userId = appPlaceActivityDto.getUserId();
         // 创建订单对象
@@ -1448,6 +1451,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) {
         String orderId = merVerifyOrderDto.getOrderId();
         BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney();
@@ -1696,6 +1700,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) {
         MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData();
         MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon();
@@ -1823,6 +1828,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyAwardVo sureVerifyPrize(MerVerifyPrizeDto merVerifyPrizeDto) {
         MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo();
         MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(merVerifyPrizeDto.getPrizeId()).getData();
@@ -2287,6 +2293,7 @@
         }
         //更新会员消费记录
         MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
+        memberTotalChangeDto.setUserId(order.getUserId());
         memberTotalChangeDto.setConsumeTime(nowTime);
         remoteMemberService.changeMemberTotal(memberTotalChangeDto);
         //更新商户统计
@@ -4424,6 +4431,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void autoCancelOrder(String orderId) {
         //更新订单信息
         Order order = this.getById(orderId);
@@ -4490,6 +4498,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void payBack(PartnerTransactionsResult transaction) {
         log.info("订单支付回调---"+transaction.toString());
         // Order order = this.getById(orderId);
@@ -4656,6 +4665,7 @@
      */
     @Override
     @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void refundOrder(String orderId) {
         // 更新订单信息
         Order order = this.getById(orderId);
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 c74f07c..7de2e4b 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
@@ -1318,8 +1318,8 @@
         SELECT
         COUNT(DISTINCT toc.user_id) orderPerson,
         COUNT(DISTINCT CASE WHEN tog.goods_type = 1 THEN toc.user_id ELSE NULL END) cyclePerson,
-        COUNT(DISTINCT CASE WHEN tog.goods_type = 2 THEN toc.user_id ELSE NULL END) experiencePerson,
-        COUNT(DISTINCT CASE WHEN tog.goods_type = 3 THEN toc.user_id ELSE NULL END) servicePerson
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 3 THEN toc.user_id ELSE NULL END) experiencePerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 2 THEN toc.user_id ELSE NULL END) servicePerson
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
         WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status = 3 AND toc.new_member_flag = 1
@@ -1775,7 +1775,7 @@
     <select id="countUserActivityByActivity" resultType="java.lang.Integer">
         SELECT COUNT(order_id)
         FROM t_order
-        WHERE del_flag = 0 AND order_from =2 AND user_id = #{userId} AND activity_id = #{activityId} AND order_status &gt; 0
+        WHERE del_flag = 0 AND order_from =2 AND user_id = #{userId} AND activity_id = #{activityId} AND order_status &gt; 1
     </select>
 
     <select id="getStaffActivityOrderTotal" resultType="com.ruoyi.order.domain.vo.StaffActivityOrderTotalVo">
diff --git a/ruoyi-modules/ruoyi-shop/pom.xml b/ruoyi-modules/ruoyi-shop/pom.xml
index 13a5313..220e5ce 100644
--- a/ruoyi-modules/ruoyi-shop/pom.xml
+++ b/ruoyi-modules/ruoyi-shop/pom.xml
@@ -78,6 +78,12 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
+        <!-- RuoYi Common Seata-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-seata</artifactId>
+        </dependency>
+
 
         <dependency>
             <groupId>com.baomidou</groupId>
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 7f5f421..735cd40 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
@@ -274,7 +274,7 @@
     @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST)
     @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件")
     @ApiOperation(value = "平台商户进件")
-    public R mgtShopAuth(@Validated @RequestBody MgtShopAuthDto mgtShopAuthDto) throws Exception {
+    public R mgtShopAuth(@Validated @RequestBody MgtShopAuthDto mgtShopAuthDto) {
         Long userId = SecurityUtils.getUserId();
         mgtShopAuthDto.setUserId(userId);
         shopService.mgtShopAuth(mgtShopAuthDto);
@@ -295,5 +295,13 @@
         return R.ok(mgtShopAuthCodeVo);
     }
 
-
+    @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST)
+    @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件")
+    @ApiOperation(value = "平台商户进件")
+    public R mgtShopAuth(@RequestBody MgtShopAuthGetDto mgtShopAuthGetDto){
+        Long userId = SecurityUtils.getUserId();
+        mgtShopAuthGetDto.setUserId(userId);
+        shopService.addProfitSharingReceiver(mgtShopAuthGetDto);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java
index 68b6603..73b42b2 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopAuthPageVo.java
@@ -44,6 +44,7 @@
     @ApiModelProperty(value = "签约链接")
     private String signUrl;
 
-
+    @ApiModelProperty(value = "分账方标记1是0否  0的时候需要添加为分账方")
+    private Integer accountFlag;
 
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java
index 888c016..062f682 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/scheduler/ShopScheduler.java
@@ -3,7 +3,7 @@
 
 import com.ruoyi.shop.service.shop.ShopService;
 import com.ruoyi.shop.service.task.ShopTaskService;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -12,7 +12,7 @@
 
 
 @Component
-@Slf4j
+@Log4j2
 public class ShopScheduler {
 
 
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 ac16539..4e0e998 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
@@ -39,7 +39,7 @@
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -59,7 +59,7 @@
  * @since 2023-04-25
  */
 @Service
-@Slf4j
+@Log4j2
 public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService {
 
     @Resource
@@ -245,6 +245,7 @@
             shop.setFrozenFlag(0);
             shop.setCooperativeFlag(1);
             shop.setAuthFlag(0);
+            shop.setAccountFlag(0);
             newShop = true;
         }
         BeanUtils.copyProperties(mgtEditShopDto,shop);
@@ -1030,7 +1031,7 @@
      * @return  void
      */
     @Override
-    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException {
+    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
         ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
         Shop shop = this.getByShopId(shopAuthentication.getShopId());
 
@@ -1600,10 +1601,21 @@
      * @return  void
      */
     @Override
-    public ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request){
+    public void addProfitSharingReceiver(MgtShopAuthGetDto mgtShopAuthGetDto){
         try {
-            ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
-            return result;
+            ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthGetDto.getAuthId());
+            Shop shop = this.getByShopId(shopAuthentication.getShopId());
+            if(shopAuthentication!=null&&shopAuthentication.getAuditStatus()==6){
+                ProfitSharingReceiverRequest request = new ProfitSharingReceiverRequest();
+                request.setAccount(shopAuthentication.getSubMchid());
+                request.setName(shopAuthentication.getBlShopName());
+                ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
+                if(StringUtils.isNotBlank(result.getAccount())){
+                    shop.setAccountFlag(1);
+                    this.saveOrUpdate(shop);
+                }
+            }
+
         } 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 03ff06d..75f51f2 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
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
 import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
-import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.shop.domain.dto.*;
 import com.ruoyi.shop.domain.vo.*;
 import com.ruoyi.system.api.domain.dto.MerBaseDto;
@@ -207,7 +206,7 @@
      * @param mgtShopAuthDto
      * @return  void
      */
-    void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException;
+    void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto);
 
     /**
      * @description  获取平台商户统计
@@ -367,15 +366,7 @@
      * @return  StaffShopDetailVo
      */
     StaffShopDetailVo getShopDetail(Long shopId);
-    
-    /**
-     * @description  
-     * @author  jqs
-     * @date    2023/8/23 9:44
-     * @param 
-     * @return  void
-     */
-    ProfitSharingReceiverResult addProfitSharingReceiver(ProfitSharingReceiverRequest request);
+
 
     /**
      * @description  
@@ -385,4 +376,13 @@
      * @return  List<MgtUserTaskMsgVo>
      */
     List<MgtUserTaskMsgVo> getTaskMsgList();
+
+    /**
+     * @description  添加分账方
+     * @author  jqs
+     * @date    2023/9/4 18:14
+     * @param mgtShopAuthGetDto
+     * @return  void
+     */
+    void addProfitSharingReceiver(MgtShopAuthGetDto mgtShopAuthGetDto);
 }
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 da314be..461819f 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
@@ -417,7 +417,7 @@
             AND ts.frozen_flag = 1
         </if>
         <if test="param.shopStatus!=null and param.shopStatus==2">
-            AND ts.cooperative_flag = 0
+            AND ts.cooperation_end_time IS NOT NULL AND (CURRENT_DATE &lt; Date(ts.cooperation_start_time) OR CURRENT_DATE &gt; Date(ts.cooperation_end_time))
         </if>
         <if test="param.keyword!=null and param.keyword!=''">
             AND (ts.shop_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_name LIKE CONCAT('%',#{param.keyword},'%')
@@ -547,10 +547,10 @@
             WHEN 7 THEN '已拒绝'
             WHEN 8 THEN '已拒绝'
         END auditStatusDesc,
+        ts.account_flag accountFlag,
         CASE tsa.audit_status
             WHEN 4 THEN 1
             WHEN 5 THEN 1
-
         END auditStatusSort
         FROM t_shop ts
         INNER JOIN t_shop_authentication tsa ON ts.shop_id = tsa.shop_id AND tsa.del_flag = 0
@@ -931,7 +931,7 @@
     <select id="getTaskMsgList" resultType="com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo">
         SELECT
             ts.belong_user_id userId,
-            CONCAT('[', GROUP_CONCAT(tst.task_title SEPARATOR '],['), ']') taskTitles
+            CONCAT('[', GROUP_CONCAT(tst.task_title SEPARATOR '],['), ']') taskTitle
         FROM t_shop_task tst
         INNER JOIN t_shop ts ON tst.shop_id = ts.shop_id
         WHERE tst.del_flag = 0 AND tst.task_status = 1 AND tst.task_date = CURRENT_DATE
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 3f02e14..2b7a9ee 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -78,6 +78,12 @@
             <artifactId>ruoyi-common-swagger</artifactId>
         </dependency>
 
+        <!-- RuoYi Common Seata-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-seata</artifactId>
+        </dependency>
+
 
         <dependency>
             <groupId>com.baomidou</groupId>
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java
index 26c967c..1d57627 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpConfiguration.java
@@ -27,9 +27,8 @@
     private WxCpProperties properties;
 
     @Bean
-    @ConditionalOnMissingBean
+    @ConditionalOnMissingBean(name = "wxService")
     public WxCpService wxService() {
-
         WxCpDefaultConfigImpl wxCpConfigStorage = new WxCpDefaultConfigImpl();
         wxCpConfigStorage.setCorpId(properties.getCorpId());
         wxCpConfigStorage.setAgentId(properties.getAgentId());
@@ -41,6 +40,20 @@
         return wxService;
     }
 
+    @Bean
+    @ConditionalOnMissingBean(name = "adWxService")
+    public WxCpService adWxService() {
+        WxCpDefaultConfigImpl wxAdCpConfigStorage = new WxCpDefaultConfigImpl();
+        wxAdCpConfigStorage.setCorpId(properties.getCorpId());
+        wxAdCpConfigStorage.setAgentId(properties.getAgentId());
+        wxAdCpConfigStorage.setCorpSecret(properties.getAddressSecret());
+        wxAdCpConfigStorage.setAesKey(properties.getEncodingAESKey());
+        wxAdCpConfigStorage.setToken(properties.getToken());
+        WxCpService adWxService = new WxCpServiceImpl();
+        adWxService.setWxCpConfigStorage(wxAdCpConfigStorage);
+        return adWxService;
+    }
+
 
     @Bean
     @ConditionalOnMissingBean
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpProperties.java
index 436ed29..29b63d3 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpProperties.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/config/WxCpProperties.java
@@ -29,6 +29,9 @@
      */
     private String agentSecret;
 
+
+    private String addressSecret;
+
     /**
      *
      */
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
index 2a16ad0..bf855ec 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
@@ -133,6 +133,16 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/editShopProportion", method = RequestMethod.POST)
+    @Log(title = "商户分成管理", businessType = BusinessType.UPDATE,operContent = "修改商户分成")
+    @ApiOperation(value = "修改商户分成")
+    public R editShopProportion(@RequestBody MgtShopCommonProportionEditDto mgtShopCommonProportionEditDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtShopCommonProportionEditDto.setUserId(userId);
+        customConfigService.editShopProportion(mgtShopCommonProportionEditDto);
+        return R.ok();
+    }
+
     @RequestMapping(value = "/editAgreement", method = RequestMethod.POST)
     @Log(title = "协议管理", businessType = BusinessType.UPDATE,operContent = "修改协议")
     @ApiOperation(value = "修改协议")
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtShopCommonProportionEditDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtShopCommonProportionEditDto.java
new file mode 100644
index 0000000..7327f8d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtShopCommonProportionEditDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtShopCommonProportionEditDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/9/4 18:03
+ * @Version 1.0
+ */
+@Data
+public class MgtShopCommonProportionEditDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "商户统一分成比例")
+    private String shopCommonProportion;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtWxCPStaffDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtWxCPStaffDto.java
new file mode 100644
index 0000000..7c25057
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtWxCPStaffDto.java
@@ -0,0 +1,36 @@
+package com.ruoyi.system.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName MgtWxCPStaffDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/9/4 16:49
+ * @Version 1.0
+ */
+@Data
+public class MgtWxCPStaffDto {
+
+    @ApiModelProperty(value = "微信部门id")
+    private Long wxDeptId;
+
+    @ApiModelProperty(value = "微信用户id")
+    private String wxUserId;
+
+    @ApiModelProperty(value = "员工姓名")
+    private String staffName;
+
+    @ApiModelProperty(value = "员工电话")
+    private String staffMobile;
+
+    @ApiModelProperty(value = "员工职位")
+    private String staffPost;
+
+    @ApiModelProperty(value = "员工邮箱")
+    private String staffEmail;
+
+    @ApiModelProperty(value = "负责人标记")
+    private String headFlag;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
index 209348b..b852a0e 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
@@ -8,7 +8,7 @@
 import com.ruoyi.system.api.service.RemoteConfigService;
 import com.ruoyi.system.api.service.RemoteCouponService;
 import com.ruoyi.system.api.service.RemoteOrderService;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.data.redis.connection.Message;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
@@ -26,7 +26,7 @@
  * @date 2023年06月06日
  * @version: 1.0
  */
-@Slf4j
+@Log4j2
 @Component
 public class RedisListener extends KeyExpirationEventMessageListener {
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java
index 0de2d2c..fd5b1c0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/scheduler/SystemScheduler.java
@@ -2,14 +2,14 @@
 
 
 import com.ruoyi.system.service.staff.SysWxCpService;
-import lombok.extern.slf4j.Slf4j;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 
 @Component
-@Slf4j
+@Log4j2
 public class SystemScheduler {
 
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java
index 43eb4fd..6a0688d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java
@@ -49,6 +49,15 @@
     void editServiceCode(MgtServiceCodeEditDto mgtServiceCodeEditDto);
 
     /**
+     * @description  修改统一分成
+     * @author  jqs
+     * @date    2023/9/4 18:05
+     * @param mgtShopCommonProportionEditDto
+     * @return  void
+     */
+    void editShopProportion(MgtShopCommonProportionEditDto mgtShopCommonProportionEditDto);
+
+    /**
      * @description  平台获取自定义配置
      * @author  jqs
      * @date    2023/6/7 15:02
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
index c37ea0f..f357232 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
@@ -137,6 +137,34 @@
     }
 
     /**
+     * @description  修改统一分成
+     * @author  jqs
+     * @date    2023/9/4 18:05
+     * @param mgtShopCommonProportionEditDto
+     * @return  void
+     */
+    @Override
+    public void editShopProportion(MgtShopCommonProportionEditDto mgtShopCommonProportionEditDto){
+        // 获取平台统一分成的配置
+        CustomConfig customConfig = getByKey(ConfigEnum.SHOP_COMMON_PROPORTION.getKey());
+        // 如果配置不存在,则创建一个新的配置
+        if (customConfig == null) {
+            customConfig = new CustomConfig();
+            customConfig.setCreateTime(new Date());
+            customConfig.setDelFlag(0);
+        }
+        // 设置配置的类型、键、名称、值和更新时间
+        customConfig.setConfigType(ConfigEnum.SHOP_COMMON_PROPORTION.getKeyType());
+        customConfig.setConfigKey(ConfigEnum.SHOP_COMMON_PROPORTION.getKey());
+        customConfig.setConfigName(ConfigEnum.SHOP_COMMON_PROPORTION.getKeyName());
+        customConfig.setConfigValue(mgtShopCommonProportionEditDto.getShopCommonProportion());
+        customConfig.setUpdateTime(new Date());
+        // 保存或更新配置
+        this.saveOrUpdate(customConfig);
+        redisService.setCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION,mgtShopCommonProportionEditDto.getShopCommonProportion());
+    }
+
+    /**
      * @param
      * @return MgtCustomConfigVo
      * @description 平台获取自定义配置
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java
index 3f6867d..3cdbef9 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java
@@ -4,6 +4,7 @@
 import com.ruoyi.system.api.domain.poji.sys.SysDept;
 import com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo;
 import com.ruoyi.system.api.service.RemoteShopService;
+import com.ruoyi.system.domain.dto.MgtWxCPStaffDto;
 import com.ruoyi.system.domain.pojo.staff.SysStaff;
 import com.ruoyi.system.service.staff.SysStaffService;
 import com.ruoyi.system.service.staff.SysWxCpService;
@@ -13,8 +14,11 @@
 import me.chanjar.weixin.cp.api.WxCpDepartmentService;
 import me.chanjar.weixin.cp.api.WxCpService;
 import me.chanjar.weixin.cp.bean.WxCpDepart;
+import me.chanjar.weixin.cp.bean.WxCpUser;
 import me.chanjar.weixin.cp.bean.message.WxCpMessage;
 import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -31,8 +35,13 @@
 @Log4j2
 public class SysWxCpServiceImpl implements SysWxCpService {
 
-    @Resource
+    @Autowired
+    @Qualifier("wxService")
     private WxCpService wxCpService;
+
+    @Autowired
+    @Qualifier("adWxService")
+    private WxCpService adWxCpService;
 
     @Resource
     private RemoteShopService remoteShopService;
@@ -42,6 +51,7 @@
 
     @Resource
     private SysStaffService sysStaffService;
+
     /**
      * @description
      * @author  jqs
@@ -142,28 +152,193 @@
         }
     }
 
+    /**
+     * @description  更新企业微信部门
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param wxDeptId
+     * @param deptName
+     * @return  void
+     */
     @Override
-    public void updateDept(){
+    public void updateWxCpDept(Long wxDeptId,String deptName){
         WxCpDepart group = new WxCpDepart();
-        group.setId(240L);
-        group.setName("软件开发测试部门");
+        group.setId(wxDeptId);
+        group.setName(deptName);
         try {
-            wxCpService.getDepartmentService().update(group);
+            adWxCpService.getDepartmentService().update(group);
         } catch (WxErrorException e) {
             throw new RuntimeException(e);
         }
     }
 
+    /**
+     * @description  创建企业微信部门
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param parentId
+     * @param deptName
+     * @return  void
+     */
     @Override
-    public void sendMessage(){
-        WxCpMessage message;
-        message = new WxCpMessage();
-        message.setAgentId(1000024);
-        message.setToUser("jiangqiushi");
-        message.setMsgType("text");
-        message.setContent("今日需要任务跟进,请注意!");
+    public Long addWxCpDept(Long parentId,String deptName){
+        WxCpDepart depart = new WxCpDepart();
+        depart.setParentId(parentId);
+        depart.setName(deptName);
+        Long departId = null;
         try {
-            WxCpMessageSendResult result = wxCpService.getMessageService().send(message);
+            departId = adWxCpService.getDepartmentService().create(depart);
+        } catch (WxErrorException e) {
+            throw new RuntimeException(e);
+        }
+        return departId;
+    }
+
+    /**
+     * @description  删除企业微信部门
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param wxDeptId
+     * @return  void
+     */
+    @Override
+    public void deleteWxCpDept(Long wxDeptId){
+        try {
+            adWxCpService.getDepartmentService().delete(wxDeptId);
+        } catch (WxErrorException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * @description  通过手机号获取wxUserId
+     * @author  jqs
+     * @date    2023/9/4 15:44
+     * @param mobile
+     * @return  String
+     */
+    private String getWxUserIdByMobile(String mobile){
+        String wxUserId = null;
+        try {
+            wxUserId = adWxCpService.getUserService().getUserId(mobile);
+        } catch (WxErrorException e) {
+            throw new RuntimeException(e);
+        }
+        return wxUserId;
+    }
+
+
+    /**
+     * @description  通过wxUserId获取用户
+     * @author  jqs
+     * @date    2023/9/4 16:35
+     * @param wxUserId
+     * @return  WxCpUser
+     */
+    private WxCpUser getWxCpUser(String wxUserId){
+        WxCpUser wxCpUser = null;
+        try {
+            wxCpUser = adWxCpService.getUserService().getById(wxUserId);
+        } catch (WxErrorException e) {
+            throw new RuntimeException(e);
+        }
+        return wxCpUser;
+    }
+
+    /**
+     * @description  创建企业微信员工
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param mgtWxCPStaffDto
+     * @return  void
+     */
+    @Override
+    public String addWxCpStaff(MgtWxCPStaffDto mgtWxCPStaffDto){
+        String wxUserId = mgtWxCPStaffDto.getWxUserId();
+        String mobile = mgtWxCPStaffDto.getStaffMobile();
+        String oldUserId = this.getWxUserIdByMobile(mobile);
+        WxCpUser oldWxCpUser = null;
+        Boolean sameUserId = false;
+        //判断手机号是否有对应企业微信用户 有则更新 无则新建
+        if(StringUtils.isNotBlank(oldUserId)){
+            oldWxCpUser = this.getWxCpUser(oldUserId);
+        }else{
+            //当手机号无对应用户时判断wxUserId是否被占用
+            oldWxCpUser = this.getWxCpUser(wxUserId);
+            if(oldWxCpUser!=null){
+                sameUserId = true;
+                oldWxCpUser = null;
+            }
+        }
+        //获取企业微信用户是否存在
+        if(oldWxCpUser!=null){
+            oldWxCpUser.setUserId(mgtWxCPStaffDto.getWxUserId());
+            oldWxCpUser.setName(mgtWxCPStaffDto.getStaffName());
+            oldWxCpUser.setMobile(mgtWxCPStaffDto.getStaffMobile());
+            if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffEmail())){
+                oldWxCpUser.setEmail(mgtWxCPStaffDto.getStaffEmail());
+            }
+            if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffPost())){
+                oldWxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost());
+            }
+            oldWxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost());
+            Long[] departIds = new Long[1];
+            departIds[0] = mgtWxCPStaffDto.getWxDeptId();
+            oldWxCpUser.setDepartIds(departIds);
+            if(mgtWxCPStaffDto.getHeadFlag()!=null){
+                Integer[] isLeaderInDept = new Integer[1];
+                isLeaderInDept[0] = Integer.valueOf(mgtWxCPStaffDto.getHeadFlag());
+                oldWxCpUser.setIsLeaderInDept(isLeaderInDept);
+            }
+            try {
+                adWxCpService.getUserService().update(oldWxCpUser);
+            } catch (WxErrorException e) {
+                throw new RuntimeException(e);
+            }
+        }else{
+            WxCpUser wxCpUser = new WxCpUser();
+            //wxUserId被占用重新生成
+            if(sameUserId){
+                wxUserId = wxUserId + "1";
+            }
+            wxCpUser.setUserId(wxUserId);
+            wxCpUser.setName(mgtWxCPStaffDto.getStaffName());
+            wxCpUser.setMobile(mgtWxCPStaffDto.getStaffMobile());
+            if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffEmail())){
+                wxCpUser.setEmail(mgtWxCPStaffDto.getStaffEmail());
+            }
+            if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffPost())){
+                wxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost());
+            }
+            wxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost());
+            Long[] departIds = new Long[1];
+            departIds[0] = mgtWxCPStaffDto.getWxDeptId();
+            wxCpUser.setDepartIds(departIds);
+            if(mgtWxCPStaffDto.getHeadFlag()!=null){
+                Integer[] isLeaderInDept = new Integer[1];
+                isLeaderInDept[0] = Integer.valueOf(mgtWxCPStaffDto.getHeadFlag());
+                wxCpUser.setIsLeaderInDept(isLeaderInDept);
+            }
+            try {
+                adWxCpService.getUserService().create(wxCpUser);
+            } catch (WxErrorException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return wxUserId;
+    }
+
+    /**
+     * @description  删除企业微信员工
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param wxUserId
+     * @return  void
+     */
+    @Override
+    public void deleteWxCpStaff(String wxUserId){
+        try {
+            adWxCpService.getUserService().delete(wxUserId);
         } catch (WxErrorException e) {
             throw new RuntimeException(e);
         }
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 b7b4b70..a0ec401 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
@@ -15,10 +15,12 @@
 import com.ruoyi.system.mapper.sys.SysDeptMapper;
 import com.ruoyi.system.mapper.sys.SysDeptMenuMapper;
 import com.ruoyi.system.mapper.sys.SysRoleMapper;
+import com.ruoyi.system.service.staff.SysWxCpService;
 import com.ruoyi.system.service.sys.ISysDeptService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -40,6 +42,9 @@
 
     @Autowired
     private SysDeptMenuMapper deptMenuMapper;
+
+    @Resource
+    private SysWxCpService sysWxCpService;
 
     /**
      * 查询部门管理数据
@@ -338,6 +343,10 @@
     @Override
     public int deleteDeptById(Long deptId)
     {
+        SysDept sysDept = this.selectDeptById(deptId);
+        if(sysDept.getWxDeptId()!=null){
+            sysWxCpService.deleteWxCpDept(sysDept.getWxDeptId());
+        }
         return deptMapper.deleteDeptById(deptId);
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java
index cc69edf..080e37a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysWxCpService.java
@@ -1,5 +1,7 @@
 package com.ruoyi.system.service.staff;
 
+import com.ruoyi.system.domain.dto.MgtWxCPStaffDto;
+
 /**
  * @ClassName WxCpService
  * @Description TODO
@@ -35,8 +37,51 @@
      */
     void sendTaskMessage();
 
+    /**
+     * @description  更新企业微信部门
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param wxDeptId
+     * @param deptName
+     * @return  void
+     */
+    void updateWxCpDept(Long wxDeptId,String deptName);
 
-    void updateDept();
+    /**
+     * @description  创建企业微信部门
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param parentId
+     * @param deptName
+     * @return  void
+     */
+    Long addWxCpDept(Long parentId,String deptName);
 
-    void sendMessage();
+    /**
+     * @description  删除企业微信部门
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param wxDeptId
+     * @return  void
+     */
+    void deleteWxCpDept(Long wxDeptId);
+
+
+    /**
+     * @description  创建企业微信员工
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param mgtWxCPStaffDto
+     * @return  void
+     */
+    String addWxCpStaff(MgtWxCPStaffDto mgtWxCPStaffDto);
+
+    /**
+     * @description  删除企业微信员工
+     * @author  jqs
+     * @date    2023/9/4 15:19
+     * @param wxUserId
+     * @return  void
+     */
+    void deleteWxCpStaff(String wxUserId);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
index 5f68674..0408244 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -48,7 +48,7 @@
     agentId: 1000024
     agentSecret: -wuQ2EBxNT9BJa40LdpFqyxI_8RqrZTCUNiabzBasi8
     authorizeState: HONGRUITANG
-    suiteSecret: HoHhls3QUFESA2wDypkaWvldYYHBciwZJ2zEpPVrjNx
+    addressSecret: D5rirpvzRnygC0RncaUdooxAwvXTA7In9dqvPHvnV4w
     token: HaiHeng2023
     encodingAESKey: jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C
 
diff --git a/ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java b/ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java
index e9b8001..903c071 100644
--- a/ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java
+++ b/ruoyi-modules/ruoyi-system/src/test/java/com/ruoyi/system/systemTest.java
@@ -2,7 +2,8 @@
 
 
 import com.ruoyi.system.service.staff.SysWxCpService;
-import me.chanjar.weixin.cp.api.WxCpService;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -23,11 +24,9 @@
     @Resource
     private SysWxCpService sysWxCpService;
 
-    @Resource
-    private WxCpService wxCpService;
-
-    /*@Test
+    @Test
     public void main() throws WxErrorException {
-
-    }*/
+        sysWxCpService.sendMessage();
+        sysWxCpService.updateDept();
+    }
 }

--
Gitblit v1.7.1