From 49e96cc15baf35d710fe3a049fb97aff6a1af132 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 25 二月 2025 19:35:33 +0800
Subject: [PATCH] 修改分佣逻辑

---
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java                                         |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java                              |   92 -
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java                                 | 1396 ++++++++++++++++-----------------
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserGiveawayTemporaryClientFallbackFactory.java      |   33 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java                                     |   15 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserGiveawayTemporaryServiceImpl.java               |   15 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IShopGiveawayTemporaryService.java                              |   11 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java                                          |   12 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java                                                        |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopGiveawayTemporary.java                                   |   87 ++
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml                                               |   39 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java                                          |   87 -
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java                                    |   11 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                                      |    8 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopGiveawayTemporaryClient.java                        |   37 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java                                           |   10 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java                                 |   12 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java                                              |    1 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserGiveawayTemporary.java                             |  109 ++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/BalanceChangeRecordClientFallbackFactory.java           |   17 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java                    |   44 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java                               |    8 
 ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports   |    3 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java              |   11 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserPointClient.java                                |    7 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java                          |   13 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopGiveawayTemporaryMapper.java                                 |   11 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopGiveawayTemporaryClientFallbackFactory.java             |   29 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java                                     |    8 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java                                 |   24 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java                             |    7 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java                         |    7 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopGiveawayTemporaryServiceImpl.java                      |   15 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/IAppUserGiveawayTemporaryService.java                       |   11 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserPointFallbackFactory.java                           |   12 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java                               |   25 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserGiveawayTemporaryClient.java                 |   36 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java                         |   12 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserGiveawayTemporaryController.java                  |   41 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java                                    |   40 
 ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports |    3 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserGiveawayTemporaryMapper.java                          |   11 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopGiveawayTemporaryController.java                         |   45 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java                      |   30 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java                   |   20 
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml                                     |   21 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java                                         |   17 
 47 files changed, 1,594 insertions(+), 913 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserGiveawayTemporaryClientFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserGiveawayTemporaryClientFallbackFactory.java
new file mode 100644
index 0000000..181830b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserGiveawayTemporaryClientFallbackFactory.java
@@ -0,0 +1,33 @@
+package com.ruoyi.account.api.factory;
+
+import com.ruoyi.account.api.feignClient.AppUserGiveawayTemporaryClient;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+import java.util.List;
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 15:45
+ */
+public class AppUserGiveawayTemporaryClientFallbackFactory implements FallbackFactory<AppUserGiveawayTemporaryClient> {
+@Override
+	public AppUserGiveawayTemporaryClient create(Throwable cause) {
+		return new AppUserGiveawayTemporaryClient(){
+		
+			@Override
+			public R saveAppUserGiveawayTemporary(AppUserGiveawayTemporary appUserGiveawayTemporary) {
+				return R.fail("保存分佣临时数据失败:" + cause.getMessage());
+			}
+			
+			@Override
+			public R<List<AppUserGiveawayTemporary>> getAppUserGiveawayTemporary(Long orderId) {
+				return R.fail("查询订单临时分佣数据失败:" + cause.getMessage());
+			}
+		
+		
+		};
+		
+		
+		
+	}}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/BalanceChangeRecordClientFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/BalanceChangeRecordClientFallbackFactory.java
index aa093ff..b4b6fb2 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/BalanceChangeRecordClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/BalanceChangeRecordClientFallbackFactory.java
@@ -6,6 +6,8 @@
 import com.ruoyi.common.core.domain.R;
 import org.springframework.cloud.openfeign.FallbackFactory;
 
+import java.util.List;
+
 /**
  * @author zhibing.pu
  * @Date 2024/12/2 15:35
@@ -21,14 +23,19 @@
 			}
 
 			@Override
-			public R saveBalanceChangeRecord(BalanceChangeRecordCopy balanceChangeRecord) {
-				return null;
+			public R saveBalanceChangeRecordCopy(BalanceChangeRecordCopy balanceChangeRecord) {
+				return R.fail("保存分佣临时流水数据失败:" + cause.getMessage());
 			}
 
 			@Override
-			public R deleteBalanceChangeRecord(Long OrderId) {
-				return null;
+			public R deleteBalanceChangeRecordCopy(Long OrderId, List<Integer> changeType) {
+				return R.fail("删除分佣临时流水数据失败:" + cause.getMessage());
 			}
-		};
+			
+			
+			@Override
+			public R<List<BalanceChangeRecordCopy>> getBalanceChangeRecordCopy(Long orderId, List<Integer> changeType) {
+				return R.fail("查询分佣临时流水数据失败:" + cause.getMessage());
+			}};
 	}
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserPointFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserPointFallbackFactory.java
index 3c28534..021a5a2 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserPointFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserPointFallbackFactory.java
@@ -5,6 +5,7 @@
 import com.ruoyi.account.api.model.UserPointCopy;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -22,15 +23,20 @@
 			}
 
 			@Override
-			public R saveUserPoint(UserPointCopy userPoint) {
+			public R saveUserPointCopy(UserPointCopy userPoint) {
 				return R.fail("保存积分流水记录失败:" + cause.getMessage());
 			}
 
 			@Override
-			public R deleteUserPointCopy(Long id) {
+			public R deleteUserPointCopy(Long id, List<Integer> type) {
 				return R.fail("删除积分流水记录失败:" + cause.getMessage());
 			}
-
+			
+			@Override
+			public R<List<UserPointCopy>> getUserPointCopy(Long orderId, List<Integer> type) {
+				return R.fail("查询积分流水记录失败:" + cause.getMessage());
+			}
+			
 			@Override
 			public R<List<UserPoint>> getUserPointList(UserPoint userPoint) {
 				return R.fail("获取积分变动明细失败:" + cause.getMessage());
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserGiveawayTemporaryClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserGiveawayTemporaryClient.java
new file mode 100644
index 0000000..d82ce9e
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserGiveawayTemporaryClient.java
@@ -0,0 +1,36 @@
+package com.ruoyi.account.api.feignClient;
+
+import com.ruoyi.account.api.factory.AppUserGiveawayTemporaryClientFallbackFactory;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List; /**
+ * @author zhibing.pu
+ * @Date 2025/2/25 15:45
+ */
+@FeignClient(contextId = "AppUserGiveawayTemporaryClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserGiveawayTemporaryClientFallbackFactory.class)
+public interface AppUserGiveawayTemporaryClient {
+	
+	
+	/**
+	 * 保存分佣临时数据
+	 * @param appUserGiveawayTemporary
+	 * @return
+	 */
+	@PostMapping("/appUserGiveawayTemporary/saveAppUserGiveawayTemporary")
+	R saveAppUserGiveawayTemporary(@RequestBody AppUserGiveawayTemporary appUserGiveawayTemporary);
+	
+	
+	/**
+	 * 查询订单临时分佣数据
+	 * @param orderId
+	 * @return
+	 */
+	@PostMapping("/appUserGiveawayTemporary/getAppUserGiveawayTemporary")
+	R<List<AppUserGiveawayTemporary>> getAppUserGiveawayTemporary(@RequestParam("orderId") Long orderId);
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java
index c8ccb4f..db8eee2 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java
@@ -11,6 +11,8 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 /**
  * @author zhibing.pu
  * @Date 2024/12/2 15:34
@@ -26,10 +28,28 @@
 	 */
 	@PostMapping("/balanceChangeRecord/saveBalanceChangeRecord")
 	R saveBalanceChangeRecord(@RequestBody BalanceChangeRecord balanceChangeRecord);
-
+	
+	/**
+	 * 保存分佣临时流水数据
+	 * @param balanceChangeRecord
+	 * @return
+	 */
 	@PostMapping("/balanceChangeRecordCopy/saveBalanceChangeRecordCopy")
-	R saveBalanceChangeRecord(@RequestBody BalanceChangeRecordCopy balanceChangeRecord);
-
-	@DeleteMapping("/balanceChangeRecordCopy/deleteBalanceChangeRecord")
-	R deleteBalanceChangeRecord(@RequestParam("orderId") Long orderId);
+	R saveBalanceChangeRecordCopy(@RequestBody BalanceChangeRecordCopy balanceChangeRecord);
+	
+	/**
+	 * 删除分佣临时数据
+	 * @param orderId
+	 * @return
+	 */
+	@DeleteMapping("/balanceChangeRecordCopy/deleteBalanceChangeRecordCopy")
+	R deleteBalanceChangeRecordCopy(@RequestParam("orderId") Long orderId, @RequestParam("changeType") List<Integer> changeType);
+	
+	/**
+	 * 查询分佣临时流水数据
+	 * @param orderId
+	 * @return
+	 */
+	@PostMapping("/balanceChangeRecordCopy/getBalanceChangeRecordCopy")
+	R<List<BalanceChangeRecordCopy>> getBalanceChangeRecordCopy(@RequestParam("orderId") Long orderId, @RequestParam("changeType") List<Integer> changeType);
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserPointClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserPointClient.java
index a3579fe..ce8477b 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserPointClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/UserPointClient.java
@@ -29,10 +29,13 @@
 	R saveUserPoint(@RequestBody UserPoint userPoint);
 
 	@PostMapping("/user-point/saveUserPointCopy")
-	R saveUserPoint(@RequestBody UserPointCopy userPoint);
+	R saveUserPointCopy(@RequestBody UserPointCopy userPoint);
 
 	@DeleteMapping("/user-point/deleteUserPointCopy")
-	R deleteUserPointCopy(@RequestParam("orderId") Long orderId);
+	R deleteUserPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
+	
+	@PostMapping("/user-point/getUserPointCopy")
+	R<List<UserPointCopy>> getUserPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
 
 
 	/**
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
index b9f7026..9302b24 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -232,7 +232,6 @@
     @TableField("total_performance_point")
     private Integer totalPerformancePoint;
 
-
     @ApiModelProperty(value = "总积分")
     @TableField("total_point")
     private Integer totalPoint;
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserGiveawayTemporary.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserGiveawayTemporary.java
new file mode 100644
index 0000000..f934684
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUserGiveawayTemporary.java
@@ -0,0 +1,109 @@
+package com.ruoyi.account.api.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author luodangjia
+ * @since 2024-11-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_app_user_giveaway_temporary")
+@ApiModel(value="AppUserGiveawayTemporary对象", description="")
+public class AppUserGiveawayTemporary implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId("id")
+    private Long id;
+    
+    @TableField("order_id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "用户id")
+    @TableField("app_user_id")
+    private Long appUserId;
+
+    @ApiModelProperty(value = "返佣积分数")
+    @TableField("share_point")
+    private Integer sharePoint;
+
+    @ApiModelProperty(value = "账户余额")
+    @TableField("balance")
+    private BigDecimal balance;
+
+    @ApiModelProperty(value = "可提现金额")
+    @TableField("withdrawable_amount")
+    private BigDecimal withdrawableAmount;
+
+    @ApiModelProperty(value = "分销总金额")
+    @TableField("total_distribution_amount")
+    private BigDecimal totalDistributionAmount;
+    
+    @ApiModelProperty(value = "绑定下级门店分佣积分")
+    @TableField("lower_level_share_point")
+    private Integer lowerLevelSharePoint;
+
+    @ApiModelProperty(value = "门店返佣积分")
+    @TableField("shop_share_point")
+    private Integer shopSharePoint;
+    
+    @ApiModelProperty(value = "门店业绩积分")
+    @TableField("shop_achievement_point")
+    private Integer shopAchievementPoint;
+
+    @ApiModelProperty(value = "门店服务费(门店核销获得)")
+    @TableField("shop_service_fee")
+    private BigDecimal shopServiceFee;
+
+    @ApiModelProperty(value = "门店返佣金额(绑定用户消费后返佣)")
+    @TableField("shop_commission")
+    private BigDecimal shopCommission;
+
+    @ApiModelProperty(value = "技师业绩积分总数")
+    @TableField("total_performance_point")
+    private Integer totalPerformancePoint;
+
+    @ApiModelProperty(value = "总积分")
+    @TableField("total_point")
+    private Integer totalPoint;
+
+    @ApiModelProperty(value = "剩余积分")
+    @TableField("lave_point")
+    private Integer lavePoint;
+    
+    @ApiModelProperty(value = "可用积分")
+    @TableField("available_point")
+    private Integer availablePoint;
+    
+    @ApiModelProperty(value = "可用总积分数")
+    @TableField("total_available_point")
+    private Integer totalAvailablePoint;
+
+    @ApiModelProperty(value = "可转增积分")
+    @TableField("transferable_point")
+    private Integer transferablePoint;
+
+
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index a1a0f95..76da5a0 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -4,4 +4,5 @@
 com.ruoyi.account.api.factory.UserPointFallbackFactory
 com.ruoyi.account.api.factory.BalanceChangeRecordClientFallbackFactory
 com.ruoyi.account.api.factory.UserChangeLogFallbackFactory
-com.ruoyi.account.api.factory.AppUserShopClientFallbackFactory
\ No newline at end of file
+com.ruoyi.account.api.factory.AppUserShopClientFallbackFactory
+com.ruoyi.account.api.factory.AppUserGiveawayTemporaryClientFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java
index 45c4966..446c612 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/Order.java
@@ -47,7 +47,7 @@
     @TableField("old_order_status")
     private Integer oldOrderStatus;
 
-    @ApiModelProperty(value = "是否已分佣: 0-否 1-是")
+    @ApiModelProperty(value = "是否已分佣: 0-否 1-普通已拥,2-门店已分佣")
     @TableField("is_commission")
     private Integer isCommission;
 
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopGiveawayTemporary.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopGiveawayTemporary.java
new file mode 100644
index 0000000..8e04b56
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopGiveawayTemporary.java
@@ -0,0 +1,87 @@
+package com.ruoyi.other.api.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author luodangjia
+ * @since 2024-11-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_shop_giveaway_temporary")
+@ApiModel(value="ShopGiveawayTemporary对象", description="")
+public class ShopGiveawayTemporary implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "门店id")
+    @TableField("shop_id")
+    private Integer shopId;
+
+    @ApiModelProperty(value = "订单id")
+    @TableField("order_id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "门店积分总数")
+    @TableField("shop_all_point")
+    private Integer shopAllPoint;
+
+    @ApiModelProperty(value = "绑定下级门店分佣积分")
+    @TableField("lower_level_share_point")
+    private Integer lowerLevelSharePoint;
+
+    @ApiModelProperty(value = "门店返佣积分")
+    @TableField("share_point")
+    private Integer sharePoint;
+
+    @ApiModelProperty(value = "门店服务积分")
+    @TableField("server_point")
+    private Integer serverPoint;
+    
+    @ApiModelProperty(value = "门店剩余积分")
+    @TableField("lave_point")
+    private Integer lavePoint;
+
+    @ApiModelProperty(value = "门店分佣总金额")
+    @TableField("giveaway_all_money")
+    private BigDecimal giveawayAllMoney;
+
+    @ApiModelProperty(value = "门店分佣金额")
+    @TableField("giveaway_money")
+    private BigDecimal giveawayMoney;
+
+    @ApiModelProperty(value = "绑定下级门店分佣金额")
+    @TableField("lower_level_giveaway_money")
+    private BigDecimal lowerLevelGiveawayMoney;
+
+    @ApiModelProperty(value = "门店服务分佣金额")
+    @TableField("server_giveaway_money")
+    private BigDecimal serverGiveawayMoney;
+
+    @ApiModelProperty(value = "可提现金额")
+    @TableField("can_withdraw_money")
+    private BigDecimal canWithdrawMoney;
+    
+    @ApiModelProperty(value = "余额")
+    @TableField("balance")
+    private BigDecimal balance;
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
index c63f046..4a14c2c 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
@@ -6,6 +6,7 @@
 import com.ruoyi.other.api.feignClient.SeckillActivityInfoClient;
 import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
 import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.time.LocalDateTime;
 import java.util.Collection;
@@ -26,15 +27,21 @@
 			}
 
 			@Override
-			public void saveShopBalanceStatement(ShopBalanceStatementCopy shopBalanceStatement) {
+			public void saveShopBalanceStatementCopy(ShopBalanceStatementCopy shopBalanceStatement) {
 				R.fail("保存门店余额流水失败:" + cause.getMessage());
 			}
 
 			@Override
-			public R<Boolean> deleteShopBalanceStatementCopy(Long orderId) {
+			public R<Boolean> deleteShopBalanceStatementCopy(Long orderId, List<Integer> type) {
 				return R.fail("删除门店余额流水失败:" + cause.getMessage());
 			}
 
+			
+			@Override
+			public R<List<ShopBalanceStatementCopy>> getShopBalanceStatementCopy(Long orderId, List<Integer> type) {
+				return R.fail("查询门店余额流水失败:" + cause.getMessage());
+			}
+			
 			@Override
 			public R<List<ShopBalanceStatement>> getShopBalanceStatementList(Collection<Integer> types, Long objectId) {
 				return R.fail("获取门店余额流水失败:" + cause.getMessage());
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopGiveawayTemporaryClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopGiveawayTemporaryClientFallbackFactory.java
new file mode 100644
index 0000000..37f4045
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopGiveawayTemporaryClientFallbackFactory.java
@@ -0,0 +1,29 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.ShopGiveawayTemporary;
+import com.ruoyi.other.api.feignClient.ShopGiveawayTemporaryClient;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+import java.util.List;
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 16:12
+ */
+public class ShopGiveawayTemporaryClientFallbackFactory implements FallbackFactory<ShopGiveawayTemporaryClient> {
+@Override
+	public ShopGiveawayTemporaryClient create(Throwable cause) {
+		return new ShopGiveawayTemporaryClient(){
+		
+			@Override
+			public R saveShopGiveawayTemporary(ShopGiveawayTemporary shopGiveawayTemporary) {
+				return R.fail("保存门店分佣临时数据失败:" + cause.getMessage());
+			}
+			
+			@Override
+			public R<List<ShopGiveawayTemporary>> getShopGiveawayTemporary(Long orderId) {
+				return R.fail("获取订单相关门店分佣临时数据失败:" + cause.getMessage());
+			}
+		};
+	}
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java
index 1bfbfa9..45c6fe6 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java
@@ -6,6 +6,8 @@
 import com.ruoyi.other.api.feignClient.ShopPointClient;
 import org.springframework.cloud.openfeign.FallbackFactory;
 
+import java.util.List;
+
 /**
  * @author zhibing.pu
  * @Date 2024/12/26 15:58
@@ -21,14 +23,20 @@
 			}
 
 			@Override
-			public void saveShopPoint(ShopPointCopy shopPoint) {
+			public void saveShopPointCopy(ShopPointCopy shopPoint) {
 				R.fail("保存门店积分流水失败:" + cause.getMessage());
 			}
 
 			@Override
-			public void deleteShopPointCopy(Long orderId) {
+			public void deleteShopPointCopy(Long orderId, List<Integer> type) {
 
 			}
+			
+			
+			@Override
+			public R<List<ShopPointCopy>> getShopPointCopy(Long orderId, List<Integer> type) {
+				return R.fail("获取门店积分流水失败:" + cause.getMessage());
+			}
 		};
 	}
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
index 7701cb7..9ce0fb9 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
@@ -31,10 +31,13 @@
 	void saveShopBalanceStatement(@RequestBody ShopBalanceStatement shopBalanceStatement);
 
 	@PostMapping("/shop-balance-statement/saveShopBalanceStatementCopy")
-	void saveShopBalanceStatement(@RequestBody ShopBalanceStatementCopy shopBalanceStatement);
+	void saveShopBalanceStatementCopy(@RequestBody ShopBalanceStatementCopy shopBalanceStatement);
 
 	@DeleteMapping("/shop-balance-statement/deleteShopBalanceStatementCopy")
-	R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId);
+	R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
+	
+	@PostMapping("/shop-balance-statement/getShopBalanceStatementCopy")
+	R<List<ShopBalanceStatementCopy>> getShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
 
 
 	/**
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
index 6c6e497..95cf6a1 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
@@ -76,7 +76,7 @@
 	 * 获取指定用户的服务商
 	 */
 	@GetMapping("/shop/getServiceProvider")
-	public R<Shop> getServiceProvider(@RequestParam("appUserId") Long appUserId);
+	R<Shop> getServiceProvider(@RequestParam("appUserId") Long appUserId);
 
 	/**
 	 * 获取指定用户的高级服务商
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopGiveawayTemporaryClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopGiveawayTemporaryClient.java
new file mode 100644
index 0000000..9881430
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopGiveawayTemporaryClient.java
@@ -0,0 +1,37 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.ShopGiveawayTemporary;
+import com.ruoyi.other.api.factory.ShopGiveawayTemporaryClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 16:12
+ */
+@FeignClient(contextId = "ShopGiveawayTemporaryClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopGiveawayTemporaryClientFallbackFactory.class)
+public interface ShopGiveawayTemporaryClient {
+	
+	
+	
+	/**
+	 * 保存门店分佣临时数据
+	 * @param shopGiveawayTemporary
+	 */
+	@PostMapping("/shopGiveawayTemporary/saveShopGiveawayTemporary")
+	R saveShopGiveawayTemporary(@RequestBody ShopGiveawayTemporary shopGiveawayTemporary);
+	
+	
+	
+	/**
+	 * 获取订单相关门店分佣临时数据
+	 * @param orderId
+	 */
+	@PostMapping("/shopGiveawayTemporary/getShopGiveawayTemporary")
+	R<List<ShopGiveawayTemporary>> getShopGiveawayTemporary(@RequestParam("orderId") Long orderId);
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java
index 8f5d98f..127cc9c 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java
@@ -1,6 +1,7 @@
 package com.ruoyi.other.api.feignClient;
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.ShopPoint;
 import com.ruoyi.other.api.domain.ShopPointCopy;
 import com.ruoyi.other.api.factory.ShopPointClientFallbackFactory;
@@ -9,6 +10,8 @@
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -25,8 +28,12 @@
 	void saveShopPoint(@RequestBody ShopPoint shopPoint);
 
 	@PostMapping("/shop-point/saveShopPointCopy")
-	void saveShopPoint(@RequestBody ShopPointCopy shopPoint);
+	void saveShopPointCopy(@RequestBody ShopPointCopy shopPoint);
 
 	@DeleteMapping("/shop-point/deleteShopPointCopy")
-	void deleteShopPointCopy(@RequestParam("orderId") Long orderId);
+	void deleteShopPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
+	
+	
+	@PostMapping("/shop-point/getShopPointCopy")
+	R<List<ShopPointCopy>> getShopPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index a53c70f..62bec20 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -19,4 +19,5 @@
 com.ruoyi.other.api.factory.RegionClientFallbackFactory
 com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory
 com.ruoyi.other.api.factory.ShopPointClientFallbackFactory
-com.ruoyi.other.api.factory.TechnicianSubscribeClientFallbackFactory
\ No newline at end of file
+com.ruoyi.other.api.factory.TechnicianSubscribeClientFallbackFactory
+com.ruoyi.other.api.factory.ShopGiveawayTemporaryClientFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserGiveawayTemporaryController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserGiveawayTemporaryController.java
new file mode 100644
index 0000000..533aec5
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserGiveawayTemporaryController.java
@@ -0,0 +1,41 @@
+package com.ruoyi.account.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
+import com.ruoyi.account.service.IAppUserGiveawayTemporaryService;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 15:43
+ */
+@RestController
+@RequestMapping("/appUserGiveawayTemporary")
+public class AppUserGiveawayTemporaryController {
+	
+	@Resource
+	private IAppUserGiveawayTemporaryService appUserGiveawayTemporaryService;
+	
+	
+	@PostMapping("/saveAppUserGiveawayTemporary")
+	public R saveAppUserGiveawayTemporary(@RequestBody AppUserGiveawayTemporary appUserGiveawayTemporary){
+		appUserGiveawayTemporaryService.save(appUserGiveawayTemporary);
+		return R.ok();
+	}
+	
+	
+	/**
+	 * 查询订单临时分佣数据
+	 * @param orderId
+	 * @return
+	 */
+	@PostMapping("/getAppUserGiveawayTemporary")
+	public R<List<AppUserGiveawayTemporary>> getAppUserGiveawayTemporary(@RequestParam("orderId") Long orderId){
+		List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getOrderId, orderId));
+		return R.ok(list);
+	}
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java
index e99dffe..6e36c2e 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java
@@ -8,6 +8,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @RestController
 @RequestMapping("/balanceChangeRecordCopy")
@@ -26,10 +27,23 @@
         return R.ok();
     }
 
-    @DeleteMapping("/deleteBalanceChangeRecord")
-    public R deleteBalanceChangeRecord(@RequestParam Long orderId) {
-        balanceChangeRecordCopyService.remove(new LambdaQueryWrapper<BalanceChangeRecordCopy>()
+    @DeleteMapping("/deleteBalanceChangeRecordCopy")
+    public R deleteBalanceChangeRecordCopy(@RequestParam("orderId") Long orderId, @RequestParam("changeType") List<Integer> changeType) {
+        balanceChangeRecordCopyService.remove(new LambdaQueryWrapper<BalanceChangeRecordCopy>().in(BalanceChangeRecordCopy::getChangeType, changeType)
                 .eq(BalanceChangeRecordCopy::getOrderId, orderId));
         return R.ok();
     }
+    
+    
+    /**
+     * 查询分佣临时流水数据
+     * @param orderId
+     * @return
+     */
+    @PostMapping("/getBalanceChangeRecordCopy")
+    public R<List<BalanceChangeRecordCopy>> getBalanceChangeRecordCopy(@RequestParam("orderId") Long orderId, @RequestParam("changeType") List<Integer> changeType){
+        List<BalanceChangeRecordCopy> list = balanceChangeRecordCopyService.list(new LambdaQueryWrapper<BalanceChangeRecordCopy>().in(BalanceChangeRecordCopy::getChangeType, changeType)
+                .eq(BalanceChangeRecordCopy::getOrderId, orderId));
+        return R.ok(list);
+    }
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
index 466c116..81a790b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
@@ -124,11 +124,19 @@
     }
 
     @DeleteMapping("/deleteUserPointCopy")
-    public R deleteUserPointCopy(@RequestParam Long orderId) {
-        userPointCopyMapper.delete(new LambdaQueryWrapper<UserPointCopy>()
+    public R deleteUserPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type) {
+        userPointCopyMapper.delete(new LambdaQueryWrapper<UserPointCopy>().in(UserPointCopy::getType, type)
                 .eq(UserPointCopy::getObjectId, orderId));
         return R.ok();
     }
+    
+    
+    @DeleteMapping("/getUserPointCopy")
+    public R<List<UserPointCopy>> getUserPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type) {
+        List<UserPointCopy> list = userPointCopyMapper.selectList(new LambdaQueryWrapper<UserPointCopy>().in(UserPointCopy::getType, type)
+                .eq(UserPointCopy::getObjectId, orderId));
+        return R.ok(list);
+    }
 
 
     /**
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
index b5aa88c..a463f14 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
@@ -14,9 +14,11 @@
 import com.ruoyi.account.util.payment.PaymentUtil;
 import com.ruoyi.account.util.payment.model.UniPayCallbackResult;
 import com.ruoyi.account.util.payment.model.UniPayResult;
+import com.ruoyi.account.vo.UserPointDetailVO;
 import com.ruoyi.account.vo.WalletVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
@@ -109,41 +111,9 @@
             // 将最后一天转换为 LocalDateTime,并设置为当天的最后一秒 (23:59:59.999)
             endTime = lastDayOfMonth.atTime(LocalTime.MAX);
         }
-
-        Page<BalanceChangeRecordCopy> page = balanceChangeRecordCopyService.page(Page.of(pageCurr, pageSize), new LambdaQueryWrapper<BalanceChangeRecordCopy>()
-                .eq(changeType != null, BalanceChangeRecordCopy::getChangeType, changeType)
-                .between(startTime != null, BalanceChangeRecordCopy::getCreateTime, startTime, endTime)
-                .eq(BalanceChangeRecordCopy::getAppUserId, userId).orderByDesc(BalanceChangeRecordCopy::getCreateTime));
-
-        List<BalanceChangeRecordCopy> list = page.getRecords();
-
-        List<Long> orderIds = list.stream().map(BalanceChangeRecordCopy::getOrderId).collect(Collectors.toList());
-        if (CollectionUtil.isNotEmpty(orderIds)){
-            R<List<Order>> r = remoteOrderGoodsClient.getOrderListByIds(orderIds);
-            if (!R.isSuccess(r)){
-                return R.fail(r.getMsg());
-            }
-            List<Order> orderList = r.getData();
-            list.forEach(bc -> {
-                orderList.stream().filter(o -> o.getId().equals(bc.getOrderId())).findFirst().ifPresent(o -> {
-                    Long appUserId = o.getAppUserId();
-                    AppUser appUser = appUserService.getById(appUserId);
-                    if(null != appUser){
-                        bc.setUserName(appUser.getName());
-                        bc.setAmount(o.getPaymentAmount());
-                    }
-                });
-
-                BigDecimal beforeAmount = bc.getBeforeAmount();
-                BigDecimal afterAmount = bc.getAfterAmount();
-                if (beforeAmount.compareTo(afterAmount) > 0){
-                    bc.setFlag(2);
-                }else {
-                    bc.setFlag(1);
-                }
-            });
-        }
-        return R.ok(page);
+        Page<BalanceChangeRecordCopy> pageInfo = new Page<>(pageCurr, pageSize);
+        IPage<BalanceChangeRecordCopy> change = balanceChangeRecordService.change(pageInfo, changeType, startTime, endTime, userId);
+        return R.ok(change);
     }
 
     /**
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserGiveawayTemporaryMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserGiveawayTemporaryMapper.java
new file mode 100644
index 0000000..69cfdc8
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserGiveawayTemporaryMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.account.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 15:41
+ */
+public interface AppUserGiveawayTemporaryMapper extends BaseMapper<AppUserGiveawayTemporary> {
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
index d15f44b..c81cfad 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
@@ -4,10 +4,12 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.model.BalanceChangeRecord;
+import com.ruoyi.account.api.model.BalanceChangeRecordCopy;
 import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.account.dto.BalanceQuery;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 public interface BalanceChangeRecordMapper extends BaseMapper<BalanceChangeRecord> {
@@ -21,4 +23,10 @@
 
     IPage<BalanceChangeRecord> queryCommissionStatistics(@Param("page") Page<BalanceChangeRecord> page,
                                                          @Param("changeRecord") BalanceChangeRecord changeRecord);
+    
+    
+    
+    List<BalanceChangeRecordCopy> change(Page<BalanceChangeRecordCopy> page, @Param("changeType") Integer changeType,
+                                    @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime,
+                                    @Param("userId") Long userId);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java
index 96bbc31..984b602 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java
@@ -1,7 +1,15 @@
 package com.ruoyi.account.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.account.api.model.UserPointCopy;
+import com.ruoyi.common.core.web.page.PageInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;import java.util.List;
 
 public interface UserPointCopyMapper extends BaseMapper<UserPointCopy> {
+	
+	
+
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java
index d8af26a..eadc8f7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointMapper.java
@@ -3,8 +3,12 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ruoyi.account.api.model.UserPoint;
+import com.ruoyi.account.api.model.UserPointCopy;
+import com.ruoyi.account.vo.UserPointDetailVO;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -20,4 +24,17 @@
     IPage<UserPoint> queryUserPointPage(@Param("page") IPage<UserPoint> page,@Param("userPoint") UserPoint userPoint);
 
     List<UserPoint> selectUserPoint(@Param("userPoint") UserPoint userPoint);
+    
+    
+    /**
+     * 查询积分变更记录
+     * @param pageInfo
+     * @param userId
+     * @param startTime
+     * @param endTime
+     * @param type
+     * @return
+     */
+    List<UserPointDetailVO> getUserPointDetail(PageInfo<UserPointDetailVO> pageInfo, @Param("userId") Long userId, @Param("startTime") LocalDateTime startTime,
+                                               @Param("endTime") LocalDateTime endTime, @Param("type") Integer type);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java
index 9727203..93d8629 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordService.java
@@ -4,9 +4,12 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.account.api.model.BalanceChangeRecord;
+import com.ruoyi.account.api.model.BalanceChangeRecordCopy;
 import com.ruoyi.account.dto.BalanceQuery;
 import com.ruoyi.account.vo.CommissionStatistics;
 import com.ruoyi.account.vo.WalletStatistics;
+
+import java.time.LocalDateTime;
 
 public interface BalanceChangeRecordService extends IService<BalanceChangeRecord> {
     IPage<BalanceChangeRecord> pageList(BalanceQuery agentQuery);
@@ -14,5 +17,7 @@
     CommissionStatistics commissionStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord);
 
     WalletStatistics walletStatistics(Page<BalanceChangeRecord> of, BalanceChangeRecord balanceChangeRecord);
-
+    
+    
+    IPage<BalanceChangeRecordCopy> change(Page<BalanceChangeRecordCopy> page, Integer changeType, LocalDateTime startTime, LocalDateTime endTime, Long userId);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/IAppUserGiveawayTemporaryService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/IAppUserGiveawayTemporaryService.java
new file mode 100644
index 0000000..f131dd2
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/IAppUserGiveawayTemporaryService.java
@@ -0,0 +1,11 @@
+package com.ruoyi.account.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 15:41
+ */
+public interface IAppUserGiveawayTemporaryService extends IService<AppUserGiveawayTemporary> {
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserGiveawayTemporaryServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserGiveawayTemporaryServiceImpl.java
new file mode 100644
index 0000000..dd377d1
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserGiveawayTemporaryServiceImpl.java
@@ -0,0 +1,15 @@
+package com.ruoyi.account.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
+import com.ruoyi.account.mapper.AppUserGiveawayTemporaryMapper;
+import com.ruoyi.account.service.IAppUserGiveawayTemporaryService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 15:42
+ */
+@Service
+public class AppUserGiveawayTemporaryServiceImpl extends ServiceImpl<AppUserGiveawayTemporaryMapper, AppUserGiveawayTemporary> implements IAppUserGiveawayTemporaryService {
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
index 733c3ef..3ce74d7 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -1,11 +1,15 @@
 package com.ruoyi.account.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.account.api.model.BalanceChangeRecord;
+import com.ruoyi.account.api.model.BalanceChangeRecordCopy;
 import com.ruoyi.account.dto.BalanceQuery;
 import com.ruoyi.account.mapper.BalanceChangeRecordMapper;
+import com.ruoyi.account.service.AppUserService;
 import com.ruoyi.account.service.BalanceChangeRecordService;
 import com.ruoyi.account.vo.CommissionStatistics;
 import com.ruoyi.account.vo.WalletStatistics;
@@ -14,6 +18,8 @@
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
+import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
+import com.ruoyi.order.model.Order;
 import com.ruoyi.other.api.domain.ShopBalanceStatement;
 import com.ruoyi.other.api.feignClient.ShopClient;
 import org.springframework.stereotype.Service;
@@ -21,6 +27,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
@@ -31,6 +38,10 @@
 public class BalanceChangeRecordServiceImpl extends ServiceImpl<BalanceChangeRecordMapper, BalanceChangeRecord> implements BalanceChangeRecordService {
     @Resource
     private ShopClient shopClient;
+    @Resource
+    private RemoteOrderGoodsClient remoteOrderGoodsClient;
+    @Resource
+    private AppUserService appUserService;
 
     @Override
     public IPage<BalanceChangeRecord> pageList(BalanceQuery agentQuery) {
@@ -147,4 +158,37 @@
         }
         return walletStatistics;
     }
+    
+    @Override
+	public IPage<BalanceChangeRecordCopy> change(Page<BalanceChangeRecordCopy> page, Integer changeType, LocalDateTime startTime, LocalDateTime endTime, Long userId) {
+        List<BalanceChangeRecordCopy> change = this.baseMapper.change(page, changeType, startTime, endTime, userId);
+        List<Long> orderIds = change.stream().map(BalanceChangeRecordCopy::getOrderId).collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(orderIds)){
+            R<List<Order>> r = remoteOrderGoodsClient.getOrderListByIds(orderIds);
+            if (!R.isSuccess(r)){
+                return null;
+            }
+            List<Order> orderList = r.getData();
+            change.forEach(bc -> {
+                orderList.stream().filter(o -> o.getId().equals(bc.getOrderId())).findFirst().ifPresent(o -> {
+                    Long appUserId = o.getAppUserId();
+                    AppUser appUser = appUserService.getById(appUserId);
+                    if(null != appUser){
+                        bc.setUserName(appUser.getName());
+                        bc.setAmount(o.getPaymentAmount());
+                    }
+                });
+            
+                BigDecimal beforeAmount = bc.getBeforeAmount();
+                BigDecimal afterAmount = bc.getAfterAmount();
+                if (beforeAmount.compareTo(afterAmount) > 0){
+                    bc.setFlag(2);
+                }else {
+                    bc.setFlag(1);
+                }
+            });
+        }
+        page.setRecords(change);
+        return page;
+	}
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
index 7bc49cc..4bf672f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -6,16 +6,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.account.api.model.AppUser;
-import com.ruoyi.account.api.model.BalanceChangeRecordCopy;
-import com.ruoyi.account.api.model.UserPoint;
-import com.ruoyi.account.api.model.UserPointCopy;
+import com.ruoyi.account.api.model.*;
 import com.ruoyi.account.mapper.UserPointCopyMapper;
 import com.ruoyi.account.mapper.UserPointMapper;
-import com.ruoyi.account.service.AppUserService;
-import com.ruoyi.account.service.PointSettingService;
-import com.ruoyi.account.service.UserPointService;
-import com.ruoyi.account.service.VipSettingService;
+import com.ruoyi.account.service.*;
 import com.ruoyi.account.vo.UserPointDetailVO;
 import com.ruoyi.account.vo.UserPointStatistics;
 import com.ruoyi.account.vo.UserPointVO;
@@ -66,6 +60,9 @@
     private UserPointCopyMapper userPointCopyMapper;
     @Resource
     private UserPointService userPointService;
+    @Resource
+    private IAppUserGiveawayTemporaryService appUserGiveawayTemporaryService;
+    
 
 
 
@@ -74,23 +71,25 @@
     public UserPointVO getUserPoint(Long userId) {
         AppUser appUser = appUserService.getById(userId);
         VipSetting vipSetting = vipSettingService.getVipSettingByUserId(userId);
-
-        List<UserPointCopy> userPointCopies = userPointCopyMapper.selectList(new LambdaQueryWrapper<UserPointCopy>()
-                .eq(UserPointCopy::getAppUserId, userId)
-                .eq(UserPointCopy::getType, 2));
-
-        Integer totalPoint = userPointCopies.stream()
-                .mapToInt(UserPointCopy::getVariablePoint)
-                .sum();
-
+        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getAppUserId, userId));
+        int totalPoint = 0;
+        int sharePoint = 0;
+        int shopAchievementPoint = 0;
+        int shopSharePoint = 0;
+        if(list.size() > 0){
+            totalPoint = list.stream().mapToInt(AppUserGiveawayTemporary::getTotalPoint).sum();
+            sharePoint = list.stream().mapToInt(AppUserGiveawayTemporary::getSharePoint).sum();
+            shopAchievementPoint = list.stream().mapToInt(AppUserGiveawayTemporary::getShopAchievementPoint).sum();
+            shopSharePoint = list.stream().mapToInt(AppUserGiveawayTemporary::getShopSharePoint).sum();
+        }
         UserPointVO userPointVO = new UserPointVO();
-        userPointVO.setTotalPoint(totalPoint);
+        userPointVO.setTotalPoint(appUser.getTotalPoint() + totalPoint);
         userPointVO.setConsumePoint(appUser.getAvailablePoint());
         userPointVO.setShopPoint(appUser.getShopPoint());
-        userPointVO.setSharePoint(appUser.getSharePoint());
+        userPointVO.setSharePoint(appUser.getSharePoint() + sharePoint);
         userPointVO.setPullNewPoint(appUser.getTotalInvitePoint());
-        userPointVO.setShopAchievementPoint(appUser.getShopAchievementPoint());
-        userPointVO.setShopSharePoint(appUser.getShopSharePoint());
+        userPointVO.setShopAchievementPoint(appUser.getShopAchievementPoint() + shopAchievementPoint);
+        userPointVO.setShopSharePoint(appUser.getShopSharePoint() + shopSharePoint);
         userPointVO.setGiftPoint(vipSetting.getVipGiftRole() == 1 ? 1 : 0);
         return userPointVO;
     }
@@ -99,38 +98,27 @@
 
     @Override
     public PageInfo<UserPointDetailVO> getUserPointDetail(Long userId, LocalDateTime startTime, LocalDateTime endTime, Integer type, Integer pageCurr, Integer pageSize) {
-        PageInfo<UserPointCopy> pageInfo = new PageInfo<>(pageCurr, pageSize);
-        PageInfo<UserPointCopy> page = userPointCopyMapper.selectPage(pageInfo, new QueryWrapper<UserPointCopy>()
-                .between(startTime != null, "create_time", startTime, endTime)
-                .eq(type != null, "type", type)
-                .eq("app_user_id", userId).orderByDesc("create_time"));
-        if (CollectionUtil.isNotEmpty(page.getRecords())) {
-            List<UserPointDetailVO> collect = page.getRecords().stream().map(p -> {
-                UserPointDetailVO userPointDetailVO = new UserPointDetailVO();
-                if (p.getType() != null && (p.getType().equals(12) || p.getType().equals(13))){
-                    Long appUserId = p.getObjectId();
-                    AppUser appUser = appUserService.getById(appUserId);
-                    userPointDetailVO.setName(appUser.getName());
-                }
-                userPointDetailVO.setType(p.getType());
-                userPointDetailVO.setVariablePoint(p.getVariablePoint());
-                String format = p.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-                userPointDetailVO.setCreateTime(format);
-                Integer historicalPoint = p.getHistoricalPoint();
-                Integer balance = p.getBalance();
-                if (historicalPoint != null && balance != null) {
-                    userPointDetailVO.setFlag(historicalPoint > balance ? 2 : 1);
-                }
-                return userPointDetailVO;
-            }).collect(Collectors.toList());
-            PageInfo<UserPointDetailVO> pageInfo1 = new PageInfo<>(pageCurr, pageSize);
-            pageInfo1.setRecords(collect);
-            pageInfo1.setTotal(page.getTotal());
-            pageInfo1.setCurrent(page.getCurrent());
-            pageInfo1.setSize(page.getSize());
-            return pageInfo1;
+        PageInfo<UserPointDetailVO> pageInfo = new PageInfo<>(pageCurr, pageSize);
+        List<UserPointDetailVO> userPointDetail = this.baseMapper.getUserPointDetail(pageInfo, userId, startTime, endTime, type);
+        for (UserPointDetailVO userPointDetailVO : userPointDetail) {
+            Integer type1 = userPointDetailVO.getType();
+            if (type1 != null && type1.equals(12)){
+                AppUser appUser = appUserService.getById(userPointDetailVO.getReceiveUserId());
+                userPointDetailVO.setName(appUser.getName());
+            }
+            if (type1 != null && type1.equals(13)){
+                AppUser appUser = appUserService.getById(userPointDetailVO.getTransferUserId());
+                userPointDetailVO.setName(appUser.getName());
+            }
+            Integer historicalPoint = userPointDetailVO.getHistoricalPoint();
+            Integer balance = userPointDetailVO.getBalance();
+            if (historicalPoint != null && balance != null) {
+                userPointDetailVO.setFlag(historicalPoint > balance ? 2 : 1);
+            }
         }
-        return null;
+        
+        pageInfo.setRecords(userPointDetail);
+        return pageInfo;
     }
 
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
index bdcf3dd..d0e20c6 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java
@@ -2,12 +2,10 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.AppUserGiveawayTemporary;
 import com.ruoyi.account.api.model.BalanceChangeRecordCopy;
 import com.ruoyi.account.api.model.WithdrawalRequests;
-import com.ruoyi.account.service.AppUserService;
-import com.ruoyi.account.service.BalanceChangeRecordCopyService;
-import com.ruoyi.account.service.WalletService;
-import com.ruoyi.account.service.WithdrawalRequestsService;
+import com.ruoyi.account.service.*;
 import com.ruoyi.account.vo.WalletVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.VipSetting;
@@ -28,7 +26,7 @@
     @Resource
     private WithdrawalRequestsService withdrawalRequestsService;
     @Resource
-    private BalanceChangeRecordCopyService balanceChangeRecordCopyService;
+    private IAppUserGiveawayTemporaryService appUserGiveawayTemporaryService;
 
 
     @Override
@@ -44,14 +42,12 @@
             throw new RuntimeException("会员设置信息为空");
         }
 
-        List<BalanceChangeRecordCopy> recordCopies = balanceChangeRecordCopyService.list(new LambdaQueryWrapper<BalanceChangeRecordCopy>()
-                .eq(BalanceChangeRecordCopy::getAppUserId, userId)
-                .eq(BalanceChangeRecordCopy::getChangeType, 4));
-
-        BigDecimal commissionAmount = recordCopies.stream()
-                .map(BalanceChangeRecordCopy::getChangeAmount)
-                .reduce(BigDecimal.ZERO, BigDecimal::add);
-
+        
+        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getAppUserId, userId));
+        BigDecimal commissionAmount = BigDecimal.ZERO;
+        if(list.size() > 0){
+            commissionAmount = list.stream().map(AppUserGiveawayTemporary::getTotalDistributionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        }
 
         // 获取提现审核中的金额
         List<WithdrawalRequests> waitAuditList = withdrawalRequestsService.list(new LambdaQueryWrapper<WithdrawalRequests>()
@@ -62,7 +58,7 @@
 
         WalletVO walletVO = new WalletVO();
         BigDecimal balance = appUser.getBalance();
-        walletVO.setCommissionAmount(commissionAmount);
+        walletVO.setCommissionAmount(appUser.getTotalDistributionAmount().add(commissionAmount).setScale(2, BigDecimal.ROUND_HALF_UP));
         walletVO.setWithdrawalAmount(appUser.getWithdrawableAmount());
         walletVO.setWithdrawnAmount(appUser.getWithdrawnAmount().subtract(reduce));
         walletVO.setVipWithdrawalMinAmount(data.getVipWithdrawalMinAmount());
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java
index fd46350..e640a52 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java
@@ -26,4 +26,14 @@
     private Integer flag;
 
     private String name;
+    
+    private Long transferUserId;
+    
+    private Long receiveUserId;
+    
+    private Long objectId;
+    
+    private Integer historicalPoint;
+    
+    private Integer balance;
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
index b8a8044..753cb57 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
@@ -90,4 +90,25 @@
     <select id="queryCommissionStatistics" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
         <include refid="balanceChangeRecordList"/>
     </select>
+    
+    
+    <select id="change" resultType="com.ruoyi.account.api.model.BalanceChangeRecordCopy">
+        select * from (
+        select * from t_balance_change_record where app_user_id = #{userId}
+        <if test="null != changeType">
+            and change_type = #{changeType}
+        </if>
+        <if test="null != startTime and null != endTime">
+            and create_time between  #{startTime} and #{endTime}
+        </if>
+        union all
+        select * from t_balance_change_record_copy where app_user_id = #{userId}
+        <if test="null != changeType">
+            and change_type = #{changeType}
+        </if>
+        <if test="null != startTime and null != endTime">
+            and create_time between  #{startTime} and #{endTime}
+        </if>
+        ) as a order by a.create_time desc
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
index cd17923..bdec231 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
@@ -53,4 +53,43 @@
         <include refid="userPointList"/>
     </select>
 
+    
+    
+    <select id="getUserPointDetail" resultType="com.ruoyi.account.vo.UserPointDetailVO">
+        select * from (
+            select
+            type,
+            historical_point as historicalPoint,
+            balance,
+            variable_point as variablePoint,
+            DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') as createTime,
+            transfer_user_id as transferUserId,
+            receive_user_id as receiveUserId,
+            object_id as objectId
+            from t_user_point where app_user_id = #{userId}
+            <if test="null != startTime and null != endTime">
+                and create_time between #{startTime} and #{endTime}
+            </if>
+            <if test="null != type">
+                and type = #{type}
+            </if>
+            union all
+            select
+            type,
+            historical_point as historicalPoint,
+            balance,
+            variable_point as variablePoint,
+            DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') as createTime,
+            transfer_user_id as transferUserId,
+            receive_user_id as receiveUserId,
+            object_id as objectId
+            from t_user_point_copy where app_user_id = #{userId}
+            <if test="null != startTime and null != endTime">
+                and create_time between #{startTime} and #{endTime}
+            </if>
+            <if test="null != type">
+                and type = #{type}
+            </if>
+        ) as a order by a.create_time desc
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java
index 09e90d3..16c7609 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java
@@ -10,6 +10,16 @@
 
     // 计算佣金
     void calculationCommission();
+    
+    /**
+     * 构建个人分佣临时数据
+     */
+    void calculationCommissionUser();
+    
+    /**
+     * 构建门店及技师分佣临时数据
+     */
+    void calculationCommissionShop();
+    
 
-    void calculationCommissionCopy(Order order);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
index 88e630a..31011df 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -1,5 +1,7 @@
 package com.ruoyi.order.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.account.api.feignClient.*;
 import com.ruoyi.account.api.model.*;
@@ -12,6 +14,7 @@
 import com.ruoyi.other.api.feignClient.*;
 import com.ruoyi.order.model.Order;
 import com.ruoyi.order.model.OrderGood;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -19,11 +22,10 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -49,13 +51,182 @@
     private TechnicianClient technicianClient;
     @Resource
     private PointSettingClient pointSettingClient;
-
- 
-
+    @Resource
+    private AppUserGiveawayTemporaryClient appUserGiveawayTemporaryClient;
+    @Resource
+    private ShopGiveawayTemporaryClient shopGiveawayTemporaryClient;
+    
+    
+    
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void calculationCommission() {
-        List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getIsCommission, 0).isNotNull(Order::getAfterSaleTime)
+    public void calculationCommission(){
+        List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getIsCommission, 2).isNotNull(Order::getAfterSaleTime)
+                .eq(Order::getDelFlag, 0).ne(Order::getPayMethod, 3).last(" and after_sale_time <= now()"));
+        List<Long> collect = list.stream().map(Order::getId).collect(Collectors.toList());
+        if(collect.size() == 0){
+            return;
+        }
+    
+        for (Order order : list) {
+            //添加用户的分佣数据
+            List<AppUserGiveawayTemporary> data = appUserGiveawayTemporaryClient.getAppUserGiveawayTemporary(order.getId()).getData();
+            if(null != data){
+                Set<Long> appUserIds = data.stream().map(AppUserGiveawayTemporary::getAppUserId).collect(Collectors.toSet());
+                for (Long appUserId : appUserIds) {
+                    Integer sharePoint = 0;
+                    BigDecimal balance = BigDecimal.ZERO;
+                    BigDecimal withdrawableAmount = BigDecimal.ZERO;
+                    BigDecimal totalDistributionAmount = BigDecimal.ZERO;
+                    Integer lowerLevelSharePoint = 0;
+                    Integer shopSharePoint = 0;
+                    Integer shopAchievementPoint = 0;
+                    BigDecimal shopServiceFee = BigDecimal.ZERO;
+                    BigDecimal shopCommission = BigDecimal.ZERO;
+                    Integer totalPerformancePoint = 0;
+                    Integer totalPoint = 0;
+                    Integer lavePoint = 0;
+                    Integer availablePoint = 0;
+                    Integer totalAvailablePoint = 0;
+                    Integer transferablePoint = 0;
+                    for (AppUserGiveawayTemporary datum : data) {
+                        if(datum.getAppUserId().longValue() != appUserId){
+                            sharePoint += datum.getSharePoint();
+                            balance = balance.add(datum.getBalance());
+                            withdrawableAmount = withdrawableAmount.add(datum.getWithdrawableAmount());
+                            totalDistributionAmount = totalDistributionAmount.add(datum.getTotalDistributionAmount());
+                            lowerLevelSharePoint += datum.getLowerLevelSharePoint();
+                            shopSharePoint += datum.getShopSharePoint();
+                            shopAchievementPoint += datum.getShopAchievementPoint();
+                            shopServiceFee = shopServiceFee.add(datum.getShopServiceFee());
+                            shopCommission = shopCommission.add(datum.getShopCommission());
+                            totalPerformancePoint += datum.getTotalPerformancePoint();
+                            totalPoint += datum.getTotalPoint();
+                            lavePoint += datum.getLavePoint();
+                            availablePoint += datum.getAvailablePoint();
+                            totalAvailablePoint += datum.getTotalAvailablePoint();
+                            transferablePoint += datum.getTransferablePoint();
+                        }
+                    }
+                    
+                    AppUser appUser = appUserClient.getAppUserById(appUserId);
+                    appUser.setSharePoint(appUser.getSharePoint() + sharePoint);
+                    appUser.setBalance(appUser.getBalance().add(balance).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    appUser.setWithdrawableAmount(appUser.getWithdrawableAmount().add(withdrawableAmount).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(totalDistributionAmount).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    appUser.setLowerLevelSharePoint(appUser.getLowerLevelSharePoint() + lowerLevelSharePoint);
+                    appUser.setShopSharePoint(appUser.getShopSharePoint() + shopSharePoint);
+                    appUser.setShopAchievementPoint(appUser.getShopAchievementPoint() + shopAchievementPoint);
+                    appUser.setShopServiceFee(appUser.getShopServiceFee().add(shopServiceFee).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    appUser.setShopCommission(appUser.getShopCommission().add(shopCommission).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    appUser.setTotalPerformancePoint(appUser.getTotalPerformancePoint() + totalPerformancePoint);
+                    appUser.setTotalPoint(appUser.getTotalPoint() + totalPoint);
+                    appUser.setLavePoint(appUser.getLavePoint() + lavePoint);
+                    appUser.setAvailablePoint(appUser.getAvailablePoint() + availablePoint);
+                    appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + totalAvailablePoint);
+                    appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint);
+                    appUserClient.editAppUserById(appUser);
+                    //变更等级
+                    appUserClient.vipUpgrade(appUserId);
+                }
+            }
+    
+            //添加店铺的分佣数据
+            List<ShopGiveawayTemporary> data1 = shopGiveawayTemporaryClient.getShopGiveawayTemporary(order.getId()).getData();
+            if(null != data1){
+                Set<Integer> collect1 = data1.stream().map(ShopGiveawayTemporary::getShopId).collect(Collectors.toSet());
+                for (Integer shopId : collect1) {
+                    Integer shopAllPoint = 0;
+                    Integer lowerLevelSharePoint = 0;
+                    Integer sharePoint = 0;
+                    Integer serverPoint = 0;
+                    Integer lavePoint = 0;
+                    BigDecimal giveawayAllMoney = BigDecimal.ZERO;
+                    BigDecimal giveawayMoney = BigDecimal.ZERO;
+                    BigDecimal lowerLevelGiveawayMoney = BigDecimal.ZERO;
+                    BigDecimal serverGiveawayMoney = BigDecimal.ZERO;
+                    BigDecimal canWithdrawMoney = BigDecimal.ZERO;
+                    BigDecimal balance = BigDecimal.ZERO;
+                    for (ShopGiveawayTemporary datum : data1) {
+                        if(datum.getShopId().equals(shopId)){
+                            shopAllPoint += datum.getShopAllPoint();
+                            lowerLevelSharePoint += datum.getLowerLevelSharePoint();
+                            sharePoint += datum.getSharePoint();
+                            serverPoint += datum.getServerPoint();
+                            lavePoint += datum.getLavePoint();
+                            giveawayAllMoney = giveawayAllMoney.add(datum.getGiveawayAllMoney());
+                            giveawayMoney = giveawayMoney.add(datum.getGiveawayMoney());
+                            lowerLevelGiveawayMoney = lowerLevelGiveawayMoney.add(datum.getLowerLevelGiveawayMoney());
+                            serverGiveawayMoney = serverGiveawayMoney.add(datum.getServerGiveawayMoney());
+                            canWithdrawMoney = canWithdrawMoney.add(datum.getCanWithdrawMoney());
+                            balance = balance.add(datum.getBalance());
+                        }
+                    }
+                    Shop shop = shopClient.getShopById(shopId).getData();
+                    shop.setShopAllPoint(shop.getShopAllPoint() + shopAllPoint);
+                    shop.setLowerLevelSharePoint(shop.getLowerLevelSharePoint() + lowerLevelSharePoint);
+                    shop.setSharePoint(shop.getSharePoint() + sharePoint);
+                    shop.setServerPoint(shop.getServerPoint() + serverPoint);
+                    shop.setLavePoint(shop.getLavePoint() + lavePoint);
+                    shop.setGiveawayAllMoney(shop.getGiveawayAllMoney().add(giveawayAllMoney).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    shop.setGiveawayMoney(shop.getGiveawayMoney().add(giveawayMoney).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    shop.setLowerLevelGiveawayMoney(shop.getLowerLevelGiveawayMoney().add(lowerLevelGiveawayMoney).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    shop.setServerGiveawayMoney(shop.getServerGiveawayMoney().add(serverGiveawayMoney).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    shop.setCanWithdrawMoney(shop.getCanWithdrawMoney().add(canWithdrawMoney).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    shop.setBalance(shop.getBalance().add(balance).setScale(2, BigDecimal.ROUND_HALF_UP));
+                    shopClient.updateShop(shop);
+                }
+            }
+            
+            //开始处理明细流水
+            List<BalanceChangeRecordCopy> data2 = balanceChangeRecordClient.getBalanceChangeRecordCopy(order.getId(), Arrays.asList(4)).getData();
+            for(BalanceChangeRecordCopy item : data2){
+                BalanceChangeRecord changeRecord = new BalanceChangeRecord();
+                BeanUtil.copyProperties(item, changeRecord);
+                changeRecord.setId(null);
+                balanceChangeRecordClient.saveBalanceChangeRecord(changeRecord);
+            }
+            balanceChangeRecordClient.deleteBalanceChangeRecordCopy(order.getId(), Arrays.asList(4));
+            
+            List<UserPointCopy> data3 = userPointClient.getUserPointCopy(order.getId(), Arrays.asList(2,8,9,10,14)).getData();
+            for(UserPointCopy item : data3){
+                UserPoint userPoint = new UserPoint();
+                BeanUtil.copyProperties(item, userPoint);
+                userPoint.setId(null);
+                userPointClient.saveUserPoint(userPoint);
+            }
+            userPointClient.deleteUserPointCopy(order.getId(), Arrays.asList(2,8,9,10,14));
+            
+            
+            List<ShopBalanceStatementCopy> data4 = shopBalanceStatementClient.getShopBalanceStatementCopy(order.getId(), Arrays.asList(1,2,3)).getData();
+            for(ShopBalanceStatementCopy item : data4){
+                ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+                BeanUtil.copyProperties(item, shopBalanceStatement);
+                shopBalanceStatement.setId(null);
+                shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
+            }
+            shopBalanceStatementClient.deleteShopBalanceStatementCopy(order.getId(), Arrays.asList(1,2,3));
+            
+            List<ShopPointCopy> data5 = shopPointClient.getShopPointCopy(order.getId(), Arrays.asList(1,2,3)).getData();
+            for(ShopPointCopy item : data5){
+                ShopPoint shopPoint = new ShopPoint();
+                BeanUtil.copyProperties(item, shopPoint);
+                shopPoint.setId(null);
+                shopPointClient.saveShopPoint(shopPoint);
+            }
+            shopPointClient.deleteShopPointCopy(order.getId(), Arrays.asList(1,2,3));
+            order.setIsCommission(3);
+            orderService.updateById(order);
+        }
+        
+    }
+    
+    
+    
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void calculationCommissionUser() {
+        List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().ne(Order::getIsCommission, 1).isNotNull(Order::getAfterSaleTime)
                 .eq(Order::getDelFlag, 0).ne(Order::getPayMethod, 3).last(" and after_sale_time <= now()"));
         List<Long> collect = list.stream().map(Order::getId).collect(Collectors.toList());
         if(collect.size() == 0){
@@ -69,60 +240,385 @@
             if(null == appUser){
                 continue;
             }
-            //直推上级分佣金额
-            BigDecimal ztsj_price = BigDecimal.ZERO;
-            //直帮上级分佣金额
-            BigDecimal zbsj_price = BigDecimal.ZERO;
-            //直推上级分佣积分
-            Integer ztsj_point = 0;
-            //直帮上级分佣积分
-            Integer zbsj_point = 0;
+            //指导老师分佣金额
+            BigDecimal zdls_price = BigDecimal.ZERO;
+            //指导老师分佣积分
+            Integer zdls_point = 0;
+            //服务商分佣金额
+            BigDecimal fws_price = BigDecimal.ZERO;
+            //服务商分佣积分
+            Integer fws_point = 0;
+            //高级服务商分佣金额
+            BigDecimal gjfws_price = BigDecimal.ZERO;
+            //高级服务商分佣积分
+            Integer gjfws_point = 0;
+            for (OrderGood orderGood : orderGoods) {
+                //上级获得分佣金额(直推上级|直帮上级)
+                BigDecimal superiorSubcommission = orderGood.getSuperiorSubcommission();
+                //上级获得分佣积分(直推上级|直帮上级)
+                Integer superiorRebatePoints = orderGood.getSuperiorRebatePoints();
+                zdls_price = zdls_price.add(superiorSubcommission);
+                zdls_point += superiorRebatePoints;
+
+                //绑定门店分佣金额
+                fws_price = fws_price.add(orderGood.getBoundShopCharges());
+                //绑定门店分佣积分
+                fws_point += orderGood.getBoundShopPoints();
+                //绑定门店上级门店分佣金额
+                gjfws_price = gjfws_price.add(orderGood.getBoundShopSuperiorsCharges());
+                //绑定门店上级门店分佣积分
+                gjfws_point += orderGood.getBoundShopSuperiorsPoints();
+            }
+
+            //直帮上级
+            AppUser superiorLeader = appUserClient.getSuperiorLeader(appUser.getId()).getData();
+            if(null != superiorLeader){
+                BigDecimal balance = superiorLeader.getBalance();
+                Integer lavePoint = superiorLeader.getLavePoint();
+                if(zdls_price.compareTo(BigDecimal.ZERO) > 0){
+//                    superiorLeader.setTotalDistributionAmount(superiorLeader.getTotalDistributionAmount().add(zdls_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                    superiorLeader.setBalance(superiorLeader.getBalance().add(zdls_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                    superiorLeader.setWithdrawableAmount(superiorLeader.getWithdrawableAmount().add(zdls_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+    
+                    //添加临时分佣数据
+                    AppUserGiveawayTemporary appUserGiveawayTemporary = new AppUserGiveawayTemporary();
+                    appUserGiveawayTemporary.setOrderId(order.getId());
+                    appUserGiveawayTemporary.setAppUserId(superiorLeader.getId());
+                    appUserGiveawayTemporary.setTotalDistributionAmount(zdls_price);
+                    appUserGiveawayTemporary.setBalance(zdls_price);
+                    appUserGiveawayTemporary.setWithdrawableAmount(zdls_price);
+                    appUserGiveawayTemporaryClient.saveAppUserGiveawayTemporary(appUserGiveawayTemporary);
+                }
+                if(zdls_point > 0){
+                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                    int earnPoint1 = 0;
+                    //计算可用积分比例
+                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+                        earnPoint1 = new BigDecimal(zdls_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
+                    }
+//                    superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zdls_point);
+//                    superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zdls_point);
+//                    superiorLeader.setAvailablePoint(superiorLeader.getAvailablePoint() + earnPoint1);
+//                    superiorLeader.setTotalAvailablePoint(superiorLeader.getTotalAvailablePoint() + earnPoint1);
+//                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+//                        superiorLeader.setTransferablePoint(superiorLeader.getTransferablePoint() + earnPoint1);
+//                    }
+//                    superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zdls_point);
+    
+                    //添加临时分佣数据
+                    AppUserGiveawayTemporary appUserGiveawayTemporary = new AppUserGiveawayTemporary();
+                    appUserGiveawayTemporary.setOrderId(order.getId());
+                    appUserGiveawayTemporary.setAppUserId(superiorLeader.getId());
+                    appUserGiveawayTemporary.setSharePoint(zdls_point);
+                    appUserGiveawayTemporary.setLavePoint(zdls_point);
+                    appUserGiveawayTemporary.setAvailablePoint(earnPoint1);
+                    appUserGiveawayTemporary.setTotalAvailablePoint(earnPoint1);
+                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+                        appUserGiveawayTemporary.setTransferablePoint(earnPoint1);
+                    }
+                    appUserGiveawayTemporary.setTotalPoint(zdls_point);
+                    appUserGiveawayTemporaryClient.saveAppUserGiveawayTemporary(appUserGiveawayTemporary);
+                    
+                }
+//                appUserClient.editAppUserById(superiorLeader);
+                //添加明细记录
+                if(zdls_price.compareTo(BigDecimal.ZERO) > 0){
+                    //添加临时明细记录数据
+                    BalanceChangeRecordCopy balanceChangeRecordCopy = new BalanceChangeRecordCopy();
+                    balanceChangeRecordCopy.setAppUserId(superiorLeader.getId());
+                    balanceChangeRecordCopy.setVipId(superiorLeader.getVipId());
+                    balanceChangeRecordCopy.setOrderId(order.getId());
+                    balanceChangeRecordCopy.setChangeType(4);
+                    balanceChangeRecordCopy.setBeforeAmount(balance);
+                    balanceChangeRecordCopy.setChangeAmount(zdls_price);
+                    balanceChangeRecordCopy.setAfterAmount(superiorLeader.getBalance());
+                    balanceChangeRecordCopy.setDelFlag(0);
+                    balanceChangeRecordCopy.setCreateTime(LocalDateTime.now());
+                    balanceChangeRecordClient.saveBalanceChangeRecordCopy(balanceChangeRecordCopy);
+                }
+                //添加积分明细
+                if(zdls_point > 0){
+                    UserPointCopy userPointCopy = new UserPointCopy();
+                    userPointCopy.setType(2);
+                    userPointCopy.setHistoricalPoint(lavePoint);
+                    userPointCopy.setVariablePoint(zdls_point);
+                    userPointCopy.setBalance(superiorLeader.getLavePoint());
+                    userPointCopy.setCreateTime(LocalDateTime.now());
+                    userPointCopy.setAppUserId(superiorLeader.getId());
+                    userPointCopy.setObjectId(order.getId());
+                    userPointCopy.setExtention(order.getOrderNumber());
+                    userPointClient.saveUserPointCopy(userPointCopy);
+                    //变更等级
+//                    appUserClient.vipUpgrade(superiorLeader.getId());
+                }
+            }
+
+            //服务商分佣
+            Shop shop1 = shopClient.getServiceProvider(appUser.getId()).getData();
+            if(null != shop1){
+                AppUser bdShopAppUser = appUserClient.getAppUserById(shop1.getAppUserId());
+                if(null != bdShopAppUser){
+                    BigDecimal shopBalance = shop1.getBalance();
+                    Integer lavePoint = bdShopAppUser.getLavePoint();
+                    Integer shopLavePoint = shop1.getLavePoint();
+                    if(fws_price.compareTo(BigDecimal.ZERO) > 0){
+                        //门店返佣
+//                        shop1.setGiveawayAllMoney(shop1.getGiveawayAllMoney().add(fws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                        shop1.setGiveawayMoney(shop1.getGiveawayMoney().add(fws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                        shop1.setCanWithdrawMoney(shop1.getCanWithdrawMoney().add(fws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                        shop1.setBalance(shop1.getBalance().add(fws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+    
+                        //添加临时数据
+                        ShopGiveawayTemporary shopGiveawayTemporary = new ShopGiveawayTemporary();
+                        shopGiveawayTemporary.setShopId(shop1.getId());
+                        shopGiveawayTemporary.setOrderId(order.getId());
+                        shopGiveawayTemporary.setGiveawayAllMoney(fws_price);
+                        shopGiveawayTemporary.setGiveawayMoney(fws_price);
+                        shopGiveawayTemporary.setCanWithdrawMoney(fws_price);
+                        shopGiveawayTemporary.setBalance(fws_price);
+                        shopGiveawayTemporaryClient.saveShopGiveawayTemporary(shopGiveawayTemporary);
+                    }
+                    if(fws_point > 0){
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = 0;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+                            earnPoint1 = new BigDecimal(fws_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                        }
+//                        bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + fws_point);
+//                        bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
+//                        bdShopAppUser.setTotalAvailablePoint(bdShopAppUser.getTotalAvailablePoint() + earnPoint1);
+//                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+//                            bdShopAppUser.setTransferablePoint(bdShopAppUser.getTransferablePoint() + earnPoint1);
+//                        }
+//                        bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + fws_point);
+//                        bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + fws_point);
+    
+                        //添加临时分佣数据
+                        AppUserGiveawayTemporary appUserGiveawayTemporary = new AppUserGiveawayTemporary();
+                        appUserGiveawayTemporary.setOrderId(order.getId());
+                        appUserGiveawayTemporary.setAppUserId(bdShopAppUser.getId());
+                        appUserGiveawayTemporary.setLavePoint(fws_point);
+                        appUserGiveawayTemporary.setAvailablePoint(earnPoint1);
+                        appUserGiveawayTemporary.setTotalAvailablePoint(earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+                            appUserGiveawayTemporary.setTransferablePoint(earnPoint1);
+                        }
+                        appUserGiveawayTemporary.setTotalPoint(fws_point);
+                        appUserGiveawayTemporary.setShopSharePoint(fws_point);
+                        appUserGiveawayTemporaryClient.saveAppUserGiveawayTemporary(appUserGiveawayTemporary);
+                        
+                        //门店返佣
+//                        shop1.setShopAllPoint(shop1.getShopAllPoint() + fws_point);
+//                        shop1.setSharePoint(shop1.getSharePoint() + fws_point);
+//                        shop1.setLavePoint(shop1.getLavePoint() + fws_point);
+                        //添加临时分佣数据
+                        ShopGiveawayTemporary shopGiveawayTemporary = new ShopGiveawayTemporary();
+                        shopGiveawayTemporary.setShopId(shop1.getId());
+                        shopGiveawayTemporary.setOrderId(order.getId());
+                        shopGiveawayTemporary.setShopAllPoint(fws_point);
+                        shopGiveawayTemporary.setSharePoint(fws_point);
+                        shopGiveawayTemporary.setLavePoint(fws_point);
+                        shopGiveawayTemporaryClient.saveShopGiveawayTemporary(shopGiveawayTemporary);
+                    }
+//                    appUserClient.editAppUserById(bdShopAppUser);
+//                    shopClient.updateShop(shop1);
+                    //添加明细记录
+                    if(fws_price.compareTo(BigDecimal.ZERO) > 0){
+                        ShopBalanceStatementCopy shopBalanceStatementCopy = new ShopBalanceStatementCopy();
+                        shopBalanceStatementCopy.setShopId(shop1.getId());
+                        shopBalanceStatementCopy.setType(1);
+                        shopBalanceStatementCopy.setHistoricalBalance(shopBalance);
+                        shopBalanceStatementCopy.setVariableAmount(fws_price);
+                        shopBalanceStatementCopy.setBalance(shop1.getBalance());
+                        shopBalanceStatementCopy.setCreateTime(LocalDateTime.now());
+                        shopBalanceStatementCopy.setCreateUserId(order.getAppUserId());
+                        shopBalanceStatementCopy.setObjectId(order.getId());
+                        shopBalanceStatementCopy.setExtension(order.getOrderNumber());
+                        shopBalanceStatementClient.saveShopBalanceStatementCopy(shopBalanceStatementCopy);
+                    }
+                    //添加积分明细
+                    if(fws_point > 0){
+                        UserPointCopy userPointCopy = new UserPointCopy();
+                        userPointCopy.setType(9);
+                        userPointCopy.setHistoricalPoint(lavePoint);
+                        userPointCopy.setVariablePoint(fws_point);
+                        userPointCopy.setBalance(bdShopAppUser.getLavePoint());
+                        userPointCopy.setCreateTime(LocalDateTime.now());
+                        userPointCopy.setAppUserId(bdShopAppUser.getId());
+                        userPointCopy.setObjectId(order.getId());
+                        userPointCopy.setExtention(order.getOrderNumber());
+                        userPointClient.saveUserPointCopy(userPointCopy);
+                        //变更等级
+//                        appUserClient.vipUpgrade(bdShopAppUser.getId());
+                    }
+
+                    if(shopLavePoint > 0){
+                        ShopPointCopy shopPointCopy = new ShopPointCopy();
+                        shopPointCopy.setShopId(shop1.getId());
+                        shopPointCopy.setType(2);
+                        shopPointCopy.setHistoricalPoint(shopLavePoint);
+                        shopPointCopy.setVariablePoint(fws_point);
+                        shopPointCopy.setBalance(shop1.getLavePoint());
+                        shopPointCopy.setCreateTime(LocalDateTime.now());
+                        shopPointCopy.setCreateUserId(order.getAppUserId());
+                        shopPointCopy.setObjectId(order.getId());
+                        shopPointCopy.setOrderNum(order.getOrderNumber());
+                        shopPointClient.saveShopPointCopy(shopPointCopy);
+                    }
+                }
+            }
+
+            //高级服务商
+            Shop shop2 = shopClient.getSuperiorServiceProvider(order.getAppUserId()).getData();
+            if(null != shop2){
+                AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
+                if(null != sjShopAppUser){
+                    BigDecimal shopBalance = shop2.getBalance();
+                    Integer lavePoint = sjShopAppUser.getLavePoint();
+                    Integer shopLavePoint = shop2.getLavePoint();
+                    if(gjfws_price.compareTo(BigDecimal.ZERO) > 0){
+                        //门店返佣
+//                        shop2.setGiveawayAllMoney(shop2.getGiveawayAllMoney().add(gjfws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                        shop2.setLowerLevelGiveawayMoney(shop2.getLowerLevelGiveawayMoney().add(gjfws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                        shop2.setCanWithdrawMoney(shop2.getCanWithdrawMoney().add(gjfws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                        shop2.setBalance(shop2.getBalance().add(gjfws_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+    
+                        //添加临时分佣数据
+                        ShopGiveawayTemporary shopGiveawayTemporary = new ShopGiveawayTemporary();
+                        shopGiveawayTemporary.setShopId(shop2.getId());
+                        shopGiveawayTemporary.setOrderId(order.getId());
+                        shopGiveawayTemporary.setGiveawayAllMoney(gjfws_price);
+                        shopGiveawayTemporary.setLowerLevelGiveawayMoney(gjfws_price);
+                        shopGiveawayTemporary.setCanWithdrawMoney(gjfws_price);
+                        shopGiveawayTemporary.setBalance(gjfws_price);
+                        shopGiveawayTemporaryClient.saveShopGiveawayTemporary(shopGiveawayTemporary);
+                        
+                    }
+                    if(gjfws_point > 0){
+                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+                        int earnPoint1 = 0;
+                        //计算可用积分比例
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+                            earnPoint1 = new BigDecimal(gjfws_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+                        }
+//                        sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + gjfws_point);
+//                        sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
+//                        sjShopAppUser.setTotalAvailablePoint(sjShopAppUser.getTotalAvailablePoint() + earnPoint1);
+//                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+//                            sjShopAppUser.setTransferablePoint(sjShopAppUser.getTransferablePoint() + earnPoint1);
+//                        }
+//                        sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + gjfws_point);
+//                        sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + gjfws_point);
+    
+                        //添加临时分佣数据
+                        AppUserGiveawayTemporary appUserGiveawayTemporary = new AppUserGiveawayTemporary();
+                        appUserGiveawayTemporary.setOrderId(order.getId());
+                        appUserGiveawayTemporary.setAppUserId(sjShopAppUser.getId());
+                        appUserGiveawayTemporary.setLavePoint(gjfws_point);
+                        appUserGiveawayTemporary.setAvailablePoint(earnPoint1);
+                        appUserGiveawayTemporary.setTotalAvailablePoint(earnPoint1);
+                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+                            appUserGiveawayTemporary.setTransferablePoint(earnPoint1);
+                        }
+                        appUserGiveawayTemporary.setTotalPoint(gjfws_point);
+                        appUserGiveawayTemporary.setLowerLevelSharePoint(gjfws_point);
+                        appUserGiveawayTemporaryClient.saveAppUserGiveawayTemporary(appUserGiveawayTemporary);
+                        
+                        
+                        //门店返佣
+//                        shop2.setShopAllPoint(shop2.getShopAllPoint() + gjfws_point);
+//                        shop2.setLowerLevelSharePoint(shop2.getLowerLevelSharePoint() + gjfws_point);
+//                        shop2.setLavePoint(shop2.getLavePoint() + gjfws_point);
+    
+                        //添加临时分佣数据
+                        ShopGiveawayTemporary shopGiveawayTemporary = new ShopGiveawayTemporary();
+                        shopGiveawayTemporary.setShopId(shop2.getId());
+                        shopGiveawayTemporary.setOrderId(order.getId());
+                        shopGiveawayTemporary.setShopAllPoint(gjfws_point);
+                        shopGiveawayTemporary.setLowerLevelSharePoint(gjfws_point);
+                        shopGiveawayTemporary.setLavePoint(gjfws_point);
+                        shopGiveawayTemporaryClient.saveShopGiveawayTemporary(shopGiveawayTemporary);
+                        
+                    }
+//                    appUserClient.editAppUserById(sjShopAppUser);
+//                    shopClient.updateShop(shop2);
+                    //添加明细记录
+                    if(gjfws_price.compareTo(BigDecimal.ZERO) > 0){
+                        ShopBalanceStatementCopy shopBalanceStatementCopy = new ShopBalanceStatementCopy();
+                        shopBalanceStatementCopy.setShopId(shop2.getId());
+                        shopBalanceStatementCopy.setType(2);
+                        shopBalanceStatementCopy.setHistoricalBalance(shopBalance);
+                        shopBalanceStatementCopy.setVariableAmount(gjfws_price);
+                        shopBalanceStatementCopy.setBalance(shop2.getBalance());
+                        shopBalanceStatementCopy.setCreateTime(LocalDateTime.now());
+                        shopBalanceStatementCopy.setCreateUserId(order.getAppUserId());
+                        shopBalanceStatementCopy.setObjectId(order.getId());
+                        shopBalanceStatementCopy.setExtension(order.getOrderNumber());
+                        shopBalanceStatementClient.saveShopBalanceStatementCopy(shopBalanceStatementCopy);
+                    }
+                    //添加积分明细
+                    if(gjfws_point > 0){
+                        UserPointCopy userPointCopy = new UserPointCopy();
+                        userPointCopy.setType(14);
+                        userPointCopy.setHistoricalPoint(lavePoint);
+                        userPointCopy.setVariablePoint(gjfws_point);
+                        userPointCopy.setBalance(sjShopAppUser.getLavePoint());
+                        userPointCopy.setCreateTime(LocalDateTime.now());
+                        userPointCopy.setAppUserId(sjShopAppUser.getId());
+                        userPointCopy.setObjectId(order.getId());
+                        userPointCopy.setExtention(order.getOrderNumber());
+                        userPointClient.saveUserPointCopy(userPointCopy);
+                        //变更等级
+//                        appUserClient.vipUpgrade(sjShopAppUser.getId());
+                    }
+
+                    if(gjfws_point > 0){
+                        ShopPointCopy shopPointCopy = new ShopPointCopy();
+                        shopPointCopy.setShopId(shop2.getId());
+                        shopPointCopy.setType(3);
+                        shopPointCopy.setHistoricalPoint(shopLavePoint);
+                        shopPointCopy.setVariablePoint(gjfws_point);
+                        shopPointCopy.setBalance(shop2.getLavePoint());
+                        shopPointCopy.setCreateTime(LocalDateTime.now());
+                        shopPointCopy.setCreateUserId(order.getAppUserId());
+                        shopPointCopy.setObjectId(order.getId());
+                        shopPointCopy.setOrderNum(order.getOrderNumber());
+                        shopPointClient.saveShopPointCopy(shopPointCopy);
+                    }
+                }
+            }
+
+            order.setIsCommission(1);
+            orderService.updateById(order);
+        }
+    }
+    
+    
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void calculationCommissionShop() {
+        List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().ne(Order::getIsCommission, 2).isNotNull(Order::getAfterSaleTime)
+                .eq(Order::getDelFlag, 0).ne(Order::getPayMethod, 3).last(" and after_sale_time <= now()"));
+        List<Long> collect = list.stream().map(Order::getId).collect(Collectors.toList());
+        if(collect.size() == 0){
+            return;
+        }
+        
+        for (Order order : list) {
+            List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
+                    .eq(OrderGood::getOrderId, order.getId()));
+            AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+            if(null == appUser){
+                continue;
+            }
             //核销门店分佣金额
             BigDecimal hxmd_price = BigDecimal.ZERO;
             //核销门店分佣积分
             Integer hxmd_point = 0;
             //技师分佣积分
             Integer js_point = 0;
-            //绑定门店分佣金额
-            BigDecimal bdmd_price = BigDecimal.ZERO;
-            //绑定门店分佣积分
-            Integer bdmd_point = 0;
-            //绑定门店上级门店分佣金额
-            BigDecimal bdmdsj_price = BigDecimal.ZERO;
-            //绑定门店上级门店分佣积分
-            Integer bdmdsj_point = 0;
             for (OrderGood orderGood : orderGoods) {
-                //上级获得分佣金额(直推上级|直帮上级)
-                BigDecimal superiorSubcommission = orderGood.getSuperiorSubcommission();
-                //上级获得分佣积分(直推上级|直帮上级)
-                Integer superiorRebatePoints = orderGood.getSuperiorRebatePoints();
-                if(StringUtils.isNotEmpty(orderGood.getSuperiorPriceType())){
-                    String[] split = orderGood.getSuperiorPriceType().split(",");
-                    for (String s : split) {
-                        //直推上级
-                        if("1".equals(s)){
-                            ztsj_price = ztsj_price.add(superiorSubcommission);
-                        }
-                        //直帮上级
-                        if("2".equals(s)){
-                            zbsj_price = zbsj_price.add(superiorSubcommission);
-                        }
-                    }
-                }
-                if(StringUtils.isNotEmpty(orderGood.getSuperiorType())){
-                    String[] split = orderGood.getSuperiorType().split(",");
-                    for (String s : split) {
-                        //直推上级
-                        if("1".equals(s)){
-                            ztsj_point += superiorRebatePoints;
-                        }
-                        //直帮上级
-                        if("2".equals(s)){
-                            zbsj_point += superiorRebatePoints;
-                        }
-                    }
-                }
-
                 //核销门店获取服务费
                 hxmd_price = hxmd_price.add(orderGood.getServuceShopCharges());
                 //核销门店可获得积分
@@ -131,133 +627,8 @@
                 if(order.getOrderType() == 1){
                     js_point += orderGood.getTechnicianPoints();
                 }
-                //绑定门店分佣金额
-                bdmd_price = bdmd_price.add(orderGood.getBoundShopCharges());
-                //绑定门店分佣积分
-                bdmd_point += orderGood.getBoundShopPoints();
-                //绑定门店上级门店分佣金额
-                bdmdsj_price = bdmdsj_price.add(orderGood.getBoundShopSuperiorsCharges());
-                //绑定门店上级门店分佣积分
-                bdmdsj_point += orderGood.getBoundShopSuperiorsPoints();
             }
-            //直推上级
-            if(null != appUser.getInviteUserId()){
-                AppUser inviteUser = appUserClient.getAppUserById(appUser.getInviteUserId());
-                if(null != inviteUser){
-                    BigDecimal balance = inviteUser.getBalance();
-                    Integer lavePoint = inviteUser.getLavePoint();
-                    if(ztsj_price.compareTo(BigDecimal.ZERO) > 0){
-                        inviteUser.setTotalDistributionAmount(inviteUser.getTotalDistributionAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        inviteUser.setBalance(inviteUser.getBalance().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        inviteUser.setWithdrawableAmount(inviteUser.getWithdrawableAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    }
-                    if(ztsj_point > 0){
-                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                        int earnPoint1 = 0;
-                        //计算可用积分比例
-                        if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
-                            earnPoint1 = new BigDecimal(ztsj_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
-                        }
-                        inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
-                        inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
-                        inviteUser.setAvailablePoint(inviteUser.getAvailablePoint() + earnPoint1);
-                        inviteUser.setTotalAvailablePoint(inviteUser.getTotalAvailablePoint() + earnPoint1);
-                        if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
-                            inviteUser.setTransferablePoint(inviteUser.getTransferablePoint() + earnPoint1);
-                        }
-                        inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
-                    }
-                    appUserClient.editAppUserById(inviteUser);
-                    //添加明细记录
-                    if(!inviteUser.getBalance().equals(balance)){
-                        BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
-                        balanceChangeRecord.setAppUserId(inviteUser.getId());
-                        balanceChangeRecord.setVipId(inviteUser.getVipId());
-                        balanceChangeRecord.setOrderId(order.getId());
-                        balanceChangeRecord.setChangeType(4);
-                        balanceChangeRecord.setBeforeAmount(balance);
-                        balanceChangeRecord.setChangeAmount(ztsj_price);
-                        balanceChangeRecord.setAfterAmount(inviteUser.getBalance());
-                        balanceChangeRecord.setDelFlag(0);
-                        balanceChangeRecord.setCreateTime(LocalDateTime.now());
-                        balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-                    }
-                    //添加积分明细
-                    if(!inviteUser.getLavePoint().equals(lavePoint)){
-                        UserPoint userPoint = new UserPoint();
-                        userPoint.setType(2);
-                        userPoint.setHistoricalPoint(lavePoint);
-                        userPoint.setVariablePoint(ztsj_point);
-                        userPoint.setBalance(inviteUser.getLavePoint());
-                        userPoint.setCreateTime(LocalDateTime.now());
-                        userPoint.setAppUserId(inviteUser.getId());
-                        userPoint.setObjectId(order.getId());
-                        userPoint.setExtention(order.getOrderNumber());
-                        userPointClient.saveUserPoint(userPoint);
-                        //变更等级
-                        appUserClient.vipUpgrade(inviteUser.getId());
-                    }
-                }
-            }
-
-            //直帮上级
-            AppUser superiorLeader = appUserClient.getSuperiorLeader(appUser.getId()).getData();
-            if(null != superiorLeader){
-                BigDecimal balance = superiorLeader.getBalance();
-                Integer lavePoint = superiorLeader.getLavePoint();
-                if(zbsj_price.compareTo(BigDecimal.ZERO) > 0){
-                    superiorLeader.setTotalDistributionAmount(superiorLeader.getTotalDistributionAmount().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    superiorLeader.setBalance(superiorLeader.getBalance().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    superiorLeader.setWithdrawableAmount(superiorLeader.getWithdrawableAmount().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                }
-                if(zbsj_point > 0){
-                    PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                    int earnPoint1 = 0;
-                    //计算可用积分比例
-                    if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
-                        earnPoint1 = new BigDecimal(zbsj_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
-                    }
-                    superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zbsj_point);
-                    superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zbsj_point);
-                    superiorLeader.setAvailablePoint(superiorLeader.getAvailablePoint() + earnPoint1);
-                    superiorLeader.setTotalAvailablePoint(superiorLeader.getTotalAvailablePoint() + earnPoint1);
-                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
-                        superiorLeader.setTransferablePoint(superiorLeader.getTransferablePoint() + earnPoint1);
-                    }
-                    superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
-                }
-                appUserClient.editAppUserById(superiorLeader);
-                //添加明细记录
-                if(!superiorLeader.getBalance().equals(balance)){
-                    BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
-                    balanceChangeRecord.setAppUserId(superiorLeader.getId());
-                    balanceChangeRecord.setVipId(superiorLeader.getVipId());
-                    balanceChangeRecord.setOrderId(order.getId());
-                    balanceChangeRecord.setChangeType(4);
-                    balanceChangeRecord.setBeforeAmount(balance);
-                    balanceChangeRecord.setChangeAmount(zbsj_price);
-                    balanceChangeRecord.setAfterAmount(superiorLeader.getBalance());
-                    balanceChangeRecord.setDelFlag(0);
-                    balanceChangeRecord.setCreateTime(LocalDateTime.now());
-                    balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-                }
-                //添加积分明细
-                if(!superiorLeader.getLavePoint().equals(lavePoint)){
-                    UserPoint userPoint = new UserPoint();
-                    userPoint.setType(2);
-                    userPoint.setHistoricalPoint(lavePoint);
-                    userPoint.setVariablePoint(zbsj_point);
-                    userPoint.setBalance(superiorLeader.getLavePoint());
-                    userPoint.setCreateTime(LocalDateTime.now());
-                    userPoint.setAppUserId(superiorLeader.getId());
-                    userPoint.setObjectId(order.getId());
-                    userPoint.setExtention(order.getOrderNumber());
-                    userPointClient.saveUserPoint(userPoint);
-                    //变更等级
-                    appUserClient.vipUpgrade(superiorLeader.getId());
-                }
-            }
-
+            
             //核销门店
             Shop shop = shopClient.getShopById(order.getShopId()).getData();
             AppUser shopAppUser = appUserClient.getAppUserById(shop.getAppUserId());
@@ -267,10 +638,20 @@
                 Integer shopLavePoint = shop.getLavePoint();
                 if(hxmd_price.compareTo(BigDecimal.ZERO) > 0){
                     //门店返佣
-                    shop.setGiveawayAllMoney(shop.getGiveawayAllMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    shop.setServerGiveawayMoney(shop.getServerGiveawayMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    shop.setCanWithdrawMoney(shop.getCanWithdrawMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    shop.setBalance(shop.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                    shop.setGiveawayAllMoney(shop.getGiveawayAllMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                    shop.setServerGiveawayMoney(shop.getServerGiveawayMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                    shop.setCanWithdrawMoney(shop.getCanWithdrawMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+//                    shop.setBalance(shop.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+    
+                    //添加临时分佣数据
+                    ShopGiveawayTemporary shopGiveawayTemporary = new ShopGiveawayTemporary();
+                    shopGiveawayTemporary.setShopId(shop.getId());
+                    shopGiveawayTemporary.setOrderId(order.getId());
+                    shopGiveawayTemporary.setGiveawayAllMoney(hxmd_price);
+                    shopGiveawayTemporary.setServerGiveawayMoney(hxmd_price);
+                    shopGiveawayTemporary.setCanWithdrawMoney(hxmd_price);
+                    shopGiveawayTemporary.setBalance(hxmd_price);
+                    shopGiveawayTemporaryClient.saveShopGiveawayTemporary(shopGiveawayTemporary);
                 }
                 if(hxmd_point > 0){
                     PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
@@ -279,66 +660,91 @@
                     if(null != pointSetting && 1 == pointSetting.getShopPointOpen()){
                         earnPoint1 = new BigDecimal(hxmd_point).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
                     }
-                    shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
-                    shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
-                    shopAppUser.setTotalAvailablePoint(shopAppUser.getTotalAvailablePoint() + earnPoint1);
+//                    shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
+//                    shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
+//                    shopAppUser.setTotalAvailablePoint(shopAppUser.getTotalAvailablePoint() + earnPoint1);
+//                    if(null != pointSetting && 1 == pointSetting.getShopPointGift()){
+//                        shopAppUser.setTransferablePoint(shopAppUser.getTransferablePoint() + earnPoint1);
+//                    }
+//                    shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
+//                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + hxmd_point);
+    
+                    //添加临时分佣数据
+                    AppUserGiveawayTemporary appUserGiveawayTemporary = new AppUserGiveawayTemporary();
+                    appUserGiveawayTemporary.setOrderId(order.getId());
+                    appUserGiveawayTemporary.setAppUserId(shopAppUser.getId());
+                    appUserGiveawayTemporary.setLavePoint(hxmd_point);
+                    appUserGiveawayTemporary.setAvailablePoint(earnPoint1);
+                    appUserGiveawayTemporary.setTotalAvailablePoint(earnPoint1);
                     if(null != pointSetting && 1 == pointSetting.getShopPointGift()){
-                        shopAppUser.setTransferablePoint(shopAppUser.getTransferablePoint() + earnPoint1);
+                        appUserGiveawayTemporary.setTransferablePoint(earnPoint1);
                     }
-                    shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
-                    shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + hxmd_point);
+                    appUserGiveawayTemporary.setTotalPoint(hxmd_point);
+                    appUserGiveawayTemporary.setShopAchievementPoint(hxmd_point);
+                    appUserGiveawayTemporaryClient.saveAppUserGiveawayTemporary(appUserGiveawayTemporary);
+                    
+                    
                     //门店返佣
-                    shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
-                    shop.setServerPoint(shop.getServerPoint() + hxmd_point);
-                    shop.setLavePoint(shop.getLavePoint() + hxmd_point);
+//                    shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
+//                    shop.setServerPoint(shop.getServerPoint() + hxmd_point);
+//                    shop.setLavePoint(shop.getLavePoint() + hxmd_point);
+    
+                    //添加临时分佣数据
+                    ShopGiveawayTemporary shopGiveawayTemporary = new ShopGiveawayTemporary();
+                    shopGiveawayTemporary.setShopId(shop.getId());
+                    shopGiveawayTemporary.setOrderId(order.getId());
+                    shopGiveawayTemporary.setShopAllPoint(hxmd_point);
+                    shopGiveawayTemporary.setServerPoint(hxmd_point);
+                    shopGiveawayTemporary.setLavePoint(hxmd_point);
+                    shopGiveawayTemporaryClient.saveShopGiveawayTemporary(shopGiveawayTemporary);
                 }
-                appUserClient.editAppUserById(shopAppUser);
-                shopClient.updateShop(shop);
+//                appUserClient.editAppUserById(shopAppUser);
+//                shopClient.updateShop(shop);
                 //添加明细记录
-                if(!shop.getBalance().equals(shopBalance)){
-                    ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
-                    shopBalanceStatement.setShopId(shop.getId());
-                    shopBalanceStatement.setType(3);
-                    shopBalanceStatement.setHistoricalBalance(shopBalance);
-                    shopBalanceStatement.setVariableAmount(hxmd_price);
-                    shopBalanceStatement.setBalance(shop.getBalance());
-                    shopBalanceStatement.setCreateTime(LocalDateTime.now());
-                    shopBalanceStatement.setCreateUserId(order.getAppUserId());
-                    shopBalanceStatement.setObjectId(order.getId());
-                    shopBalanceStatement.setExtension(order.getOrderNumber());
-                    shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
+                if(hxmd_price.compareTo(BigDecimal.ZERO) > 0){
+                    ShopBalanceStatementCopy shopBalanceStatementCopy = new ShopBalanceStatementCopy();
+                    shopBalanceStatementCopy.setShopId(shop.getId());
+                    shopBalanceStatementCopy.setType(3);
+                    shopBalanceStatementCopy.setHistoricalBalance(shopBalance);
+                    shopBalanceStatementCopy.setVariableAmount(hxmd_price);
+                    shopBalanceStatementCopy.setBalance(shop.getBalance());
+                    shopBalanceStatementCopy.setCreateTime(LocalDateTime.now());
+                    shopBalanceStatementCopy.setCreateUserId(order.getAppUserId());
+                    shopBalanceStatementCopy.setObjectId(order.getId());
+                    shopBalanceStatementCopy.setExtension(order.getOrderNumber());
+                    shopBalanceStatementClient.saveShopBalanceStatementCopy(shopBalanceStatementCopy);
                 }
                 //添加积分明细
                 if(!shopAppUser.getLavePoint().equals(lavePoint)){
-                    UserPoint userPoint = new UserPoint();
-                    userPoint.setType(8);
-                    userPoint.setHistoricalPoint(lavePoint);
-                    userPoint.setVariablePoint(hxmd_point);
-                    userPoint.setBalance(shopAppUser.getLavePoint());
-                    userPoint.setCreateTime(LocalDateTime.now());
-                    userPoint.setAppUserId(shopAppUser.getId());
-                    userPoint.setObjectId(order.getId());
-                    userPoint.setExtention(order.getOrderNumber());
-                    userPointClient.saveUserPoint(userPoint);
+                    UserPointCopy userPointCopy = new UserPointCopy();
+                    userPointCopy.setType(8);
+                    userPointCopy.setHistoricalPoint(lavePoint);
+                    userPointCopy.setVariablePoint(hxmd_point);
+                    userPointCopy.setBalance(shopAppUser.getLavePoint());
+                    userPointCopy.setCreateTime(LocalDateTime.now());
+                    userPointCopy.setAppUserId(shopAppUser.getId());
+                    userPointCopy.setObjectId(order.getId());
+                    userPointCopy.setExtention(order.getOrderNumber());
+                    userPointClient.saveUserPointCopy(userPointCopy);
                     //变更等级
-                    appUserClient.vipUpgrade(shopAppUser.getId());
+//                    appUserClient.vipUpgrade(shopAppUser.getId());
                 }
-
+                
                 if(!shop.getLavePoint().equals(shopLavePoint)){
-                    ShopPoint shopPoint = new ShopPoint();
-                    shopPoint.setShopId(shop.getId());
-                    shopPoint.setType(1);
-                    shopPoint.setHistoricalPoint(shopLavePoint);
-                    shopPoint.setVariablePoint(hxmd_point);
-                    shopPoint.setBalance(shop.getLavePoint());
-                    shopPoint.setCreateTime(LocalDateTime.now());
-                    shopPoint.setCreateUserId(order.getAppUserId());
-                    shopPoint.setObjectId(order.getId());
-                    shopPoint.setOrderNum(order.getOrderNumber());
-                    shopPointClient.saveShopPoint(shopPoint);
+                    ShopPointCopy shopPointCopy = new ShopPointCopy();
+                    shopPointCopy.setShopId(shop.getId());
+                    shopPointCopy.setType(1);
+                    shopPointCopy.setHistoricalPoint(shopLavePoint);
+                    shopPointCopy.setVariablePoint(hxmd_point);
+                    shopPointCopy.setBalance(shop.getLavePoint());
+                    shopPointCopy.setCreateTime(LocalDateTime.now());
+                    shopPointCopy.setCreateUserId(order.getAppUserId());
+                    shopPointCopy.setObjectId(order.getId());
+                    shopPointCopy.setOrderNum(order.getOrderNumber());
+                    shopPointClient.saveShopPointCopy(shopPointCopy);
                 }
             }
-
+            
             //技师服务积分
             if(order.getOrderType() == 1){
                 Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
@@ -353,506 +759,56 @@
                             if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
                                 earnPoint1 = new BigDecimal(js_point).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
                             }
-                            technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
-                            technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
-                            technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
+//                            technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
+//                            technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
+//                            technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
+//                            if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
+//                                technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
+//                            }
+//                            technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
+//                            technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
+    
+                            //添加临时分佣数据
+                            AppUserGiveawayTemporary appUserGiveawayTemporary = new AppUserGiveawayTemporary();
+                            appUserGiveawayTemporary.setOrderId(order.getId());
+                            appUserGiveawayTemporary.setAppUserId(technicianAppUser.getId());
+                            appUserGiveawayTemporary.setLavePoint(js_point);
+                            appUserGiveawayTemporary.setAvailablePoint(earnPoint1);
+                            appUserGiveawayTemporary.setTotalAvailablePoint(earnPoint1);
                             if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
-                                technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
+                                appUserGiveawayTemporary.setTransferablePoint(earnPoint1);
                             }
-                            technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
-                            technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
+                            appUserGiveawayTemporary.setTotalPoint(js_point);
+                            appUserGiveawayTemporary.setTotalPerformancePoint(js_point);
+                            appUserGiveawayTemporaryClient.saveAppUserGiveawayTemporary(appUserGiveawayTemporary);
+                            
                         }
-                        appUserClient.editAppUserById(technicianAppUser);
+//                        appUserClient.editAppUserById(technicianAppUser);
                         //添加积分明细
                         if(!technicianAppUser.getLavePoint().equals(lavePoint)){
-                            UserPoint userPoint = new UserPoint();
-                            userPoint.setType(10);
-                            userPoint.setHistoricalPoint(lavePoint);
-                            userPoint.setVariablePoint(js_point);
-                            userPoint.setBalance(technicianAppUser.getLavePoint());
-                            userPoint.setCreateTime(LocalDateTime.now());
-                            userPoint.setAppUserId(technicianAppUser.getId());
-                            userPoint.setObjectId(order.getId());
-                            userPoint.setExtention(order.getOrderNumber());
-                            userPointClient.saveUserPoint(userPoint);
+                            UserPointCopy userPointCopy = new UserPointCopy();
+                            userPointCopy.setType(10);
+                            userPointCopy.setHistoricalPoint(lavePoint);
+                            userPointCopy.setVariablePoint(js_point);
+                            userPointCopy.setBalance(technicianAppUser.getLavePoint());
+                            userPointCopy.setCreateTime(LocalDateTime.now());
+                            userPointCopy.setAppUserId(technicianAppUser.getId());
+                            userPointCopy.setObjectId(order.getId());
+                            userPointCopy.setExtention(order.getOrderNumber());
+                            userPointClient.saveUserPointCopy(userPointCopy);
                             //变更等级
-                            appUserClient.vipUpgrade(technicianAppUser.getId());
+//                            appUserClient.vipUpgrade(technicianAppUser.getId());
                         }
                     }
-
+                    
                 }
             }
-
-            //服务商分佣
-            Shop shop1 = shopClient.getServiceProvider(appUser.getId()).getData();
-            if(null != shop1){
-                AppUser bdShopAppUser = appUserClient.getAppUserById(shop1.getAppUserId());
-                if(null != bdShopAppUser){
-                    BigDecimal shopBalance = shop1.getBalance();
-                    Integer lavePoint = bdShopAppUser.getLavePoint();
-                    Integer shopLavePoint = shop1.getLavePoint();
-                    if(bdmd_price.compareTo(BigDecimal.ZERO) > 0){
-                        //门店返佣
-                        shop1.setGiveawayAllMoney(shop1.getGiveawayAllMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop1.setGiveawayMoney(shop1.getGiveawayMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop1.setCanWithdrawMoney(shop1.getCanWithdrawMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop1.setBalance(shop1.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    }
-                    if(bdmd_point > 0){
-                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                        int earnPoint1 = 0;
-                        //计算可用积分比例
-                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
-                            earnPoint1 = new BigDecimal(bdmd_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
-                        }
-                        bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
-                        bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
-                        bdShopAppUser.setTotalAvailablePoint(bdShopAppUser.getTotalAvailablePoint() + earnPoint1);
-                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
-                            bdShopAppUser.setTransferablePoint(bdShopAppUser.getTransferablePoint() + earnPoint1);
-                        }
-                        bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + bdmd_point);
-                        bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + bdmd_point);
-                        //门店返佣
-                        shop1.setShopAllPoint(shop1.getShopAllPoint() + bdmd_point);
-                        shop1.setSharePoint(shop1.getSharePoint() + bdmd_point);
-                        shop1.setLavePoint(shop1.getLavePoint() + bdmd_point);
-                    }
-                    appUserClient.editAppUserById(bdShopAppUser);
-                    shopClient.updateShop(shop1);
-                    //添加明细记录
-                    if(!shop1.getBalance().equals(shopBalance)){
-                        ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
-                        shopBalanceStatement.setShopId(shop1.getId());
-                        shopBalanceStatement.setType(1);
-                        shopBalanceStatement.setHistoricalBalance(shopBalance);
-                        shopBalanceStatement.setVariableAmount(bdmd_price);
-                        shopBalanceStatement.setBalance(shop1.getBalance());
-                        shopBalanceStatement.setCreateTime(LocalDateTime.now());
-                        shopBalanceStatement.setCreateUserId(order.getAppUserId());
-                        shopBalanceStatement.setObjectId(order.getId());
-                        shopBalanceStatement.setExtension(order.getOrderNumber());
-                        shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
-                    }
-                    //添加积分明细
-                    if(!bdShopAppUser.getLavePoint().equals(lavePoint)){
-                        UserPoint userPoint = new UserPoint();
-                        userPoint.setType(9);
-                        userPoint.setHistoricalPoint(lavePoint);
-                        userPoint.setVariablePoint(bdmd_point);
-                        userPoint.setBalance(bdShopAppUser.getLavePoint());
-                        userPoint.setCreateTime(LocalDateTime.now());
-                        userPoint.setAppUserId(bdShopAppUser.getId());
-                        userPoint.setObjectId(order.getId());
-                        userPoint.setExtention(order.getOrderNumber());
-                        userPointClient.saveUserPoint(userPoint);
-                        //变更等级
-                        appUserClient.vipUpgrade(bdShopAppUser.getId());
-                    }
-
-                    if(!shop1.getLavePoint().equals(shopLavePoint)){
-                        ShopPoint shopPoint = new ShopPoint();
-                        shopPoint.setShopId(shop1.getId());
-                        shopPoint.setType(2);
-                        shopPoint.setHistoricalPoint(shopLavePoint);
-                        shopPoint.setVariablePoint(bdmd_point);
-                        shopPoint.setBalance(shop1.getLavePoint());
-                        shopPoint.setCreateTime(LocalDateTime.now());
-                        shopPoint.setCreateUserId(order.getAppUserId());
-                        shopPoint.setObjectId(order.getId());
-                        shopPoint.setOrderNum(order.getOrderNumber());
-                        shopPointClient.saveShopPoint(shopPoint);
-                    }
-                }
-            }
-
-            //高级服务商
-            Shop shop2 = shopClient.getSuperiorServiceProvider(order.getAppUserId()).getData();
-            if(null != shop2){
-                AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
-                if(null != sjShopAppUser){
-                    BigDecimal shopBalance = shop2.getBalance();
-                    Integer lavePoint = sjShopAppUser.getLavePoint();
-                    Integer shopLavePoint = shop2.getLavePoint();
-                    if(bdmdsj_price.compareTo(BigDecimal.ZERO) > 0){
-                        //门店返佣
-                        shop2.setGiveawayAllMoney(shop2.getGiveawayAllMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop2.setLowerLevelGiveawayMoney(shop2.getLowerLevelGiveawayMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop2.setCanWithdrawMoney(shop2.getCanWithdrawMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                        shop2.setBalance(shop2.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
-                    }
-                    if(bdmdsj_point > 0){
-                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-                        int earnPoint1 = 0;
-                        //计算可用积分比例
-                        if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
-                            earnPoint1 = new BigDecimal(bdmdsj_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
-                        }
-                        sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
-                        sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
-                        sjShopAppUser.setTotalAvailablePoint(sjShopAppUser.getTotalAvailablePoint() + earnPoint1);
-                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
-                            sjShopAppUser.setTransferablePoint(sjShopAppUser.getTransferablePoint() + earnPoint1);
-                        }
-                        sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
-                        sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + bdmdsj_point);
-                        //门店返佣
-                        shop2.setShopAllPoint(shop2.getShopAllPoint() + bdmdsj_point);
-                        shop2.setLowerLevelSharePoint(shop2.getLowerLevelSharePoint() + bdmdsj_point);
-                        shop2.setLavePoint(shop2.getLavePoint() + bdmdsj_point);
-                    }
-                    appUserClient.editAppUserById(sjShopAppUser);
-                    shopClient.updateShop(shop2);
-                    //添加明细记录
-                    if(!shop2.getBalance().equals(shopBalance)){
-                        ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
-                        shopBalanceStatement.setShopId(shop2.getId());
-                        shopBalanceStatement.setType(2);
-                        shopBalanceStatement.setHistoricalBalance(shopBalance);
-                        shopBalanceStatement.setVariableAmount(bdmdsj_price);
-                        shopBalanceStatement.setBalance(shop2.getBalance());
-                        shopBalanceStatement.setCreateTime(LocalDateTime.now());
-                        shopBalanceStatement.setCreateUserId(order.getAppUserId());
-                        shopBalanceStatement.setObjectId(order.getId());
-                        shopBalanceStatement.setExtension(order.getOrderNumber());
-                        shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
-                    }
-                    //添加积分明细
-                    if(!sjShopAppUser.getLavePoint().equals(lavePoint)){
-                        UserPoint userPoint = new UserPoint();
-                        userPoint.setType(14);
-                        userPoint.setHistoricalPoint(lavePoint);
-                        userPoint.setVariablePoint(bdmdsj_point);
-                        userPoint.setBalance(sjShopAppUser.getLavePoint());
-                        userPoint.setCreateTime(LocalDateTime.now());
-                        userPoint.setAppUserId(sjShopAppUser.getId());
-                        userPoint.setObjectId(order.getId());
-                        userPoint.setExtention(order.getOrderNumber());
-                        userPointClient.saveUserPoint(userPoint);
-                        //变更等级
-                        appUserClient.vipUpgrade(sjShopAppUser.getId());
-                    }
-
-                    if(!shop2.getLavePoint().equals(shopLavePoint)){
-                        ShopPoint shopPoint = new ShopPoint();
-                        shopPoint.setShopId(shop2.getId());
-                        shopPoint.setType(3);
-                        shopPoint.setHistoricalPoint(shopLavePoint);
-                        shopPoint.setVariablePoint(bdmdsj_point);
-                        shopPoint.setBalance(shop2.getLavePoint());
-                        shopPoint.setCreateTime(LocalDateTime.now());
-                        shopPoint.setCreateUserId(order.getAppUserId());
-                        shopPoint.setObjectId(order.getId());
-                        shopPoint.setOrderNum(order.getOrderNumber());
-                        shopPointClient.saveShopPoint(shopPoint);
-                    }
-                }
-            }
-
-            order.setIsCommission(1);
+            
+            order.setIsCommission(2);
             orderService.updateById(order);
         }
     }
+    
+    
 
-    public void calculationCommissionCopy(Order order){
-        List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
-                .eq(OrderGood::getOrderId, order.getId()));
-        AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
-        //直推上级分佣金额
-        BigDecimal ztsj_price = BigDecimal.ZERO;
-        //直帮上级分佣金额
-        BigDecimal zbsj_price = BigDecimal.ZERO;
-        //直推上级分佣积分
-        Integer ztsj_point = 0;
-        //直帮上级分佣积分
-        Integer zbsj_point = 0;
-        //核销门店分佣金额
-        BigDecimal hxmd_price = BigDecimal.ZERO;
-        //核销门店分佣积分
-        Integer hxmd_point = 0;
-        //技师分佣积分
-        Integer js_point = 0;
-        //绑定门店分佣金额
-        BigDecimal bdmd_price = BigDecimal.ZERO;
-        //绑定门店分佣积分
-        Integer bdmd_point = 0;
-        //绑定门店上级门店分佣金额
-        BigDecimal bdmdsj_price = BigDecimal.ZERO;
-        //绑定门店上级门店分佣积分
-        Integer bdmdsj_point = 0;
-        for (OrderGood orderGood : orderGoods) {
-            //上级获得分佣金额(直推上级|直帮上级)
-            BigDecimal superiorSubcommission = orderGood.getSuperiorSubcommission();
-            //上级获得分佣积分(直推上级|直帮上级)
-            Integer superiorRebatePoints = orderGood.getSuperiorRebatePoints();
-            if(StringUtils.isNotEmpty(orderGood.getSuperiorPriceType())){
-                String[] split = orderGood.getSuperiorPriceType().split(",");
-                for (String s : split) {
-                    //直推上级
-                    if("1".equals(s)){
-                        ztsj_price = ztsj_price.add(superiorSubcommission);
-                    }
-                    //直帮上级
-                    if("2".equals(s)){
-                        zbsj_price = zbsj_price.add(superiorSubcommission);
-                    }
-                }
-            }
-            if(StringUtils.isNotEmpty(orderGood.getSuperiorType())){
-                String[] split = orderGood.getSuperiorType().split(",");
-                for (String s : split) {
-                    //直推上级
-                    if("1".equals(s)){
-                        ztsj_point += superiorRebatePoints;
-                    }
-                    //直帮上级
-                    if("2".equals(s)){
-                        zbsj_point += superiorRebatePoints;
-                    }
-                }
-            }
-
-            //核销门店获取服务费
-            hxmd_price = hxmd_price.add(orderGood.getServuceShopCharges());
-            //核销门店可获得积分
-            hxmd_point += orderGood.getServuceShopPoints();
-            //技师分佣金额
-            if(order.getOrderType() == 1){
-                js_point += orderGood.getTechnicianPoints();
-            }
-            //绑定门店分佣金额
-            bdmd_price = bdmd_price.add(orderGood.getBoundShopCharges());
-            //绑定门店分佣积分
-            bdmd_point += orderGood.getBoundShopPoints();
-            //绑定门店上级门店分佣金额
-            bdmdsj_price = bdmdsj_price.add(orderGood.getBoundShopSuperiorsCharges());
-            //绑定门店上级门店分佣积分
-            bdmdsj_point += orderGood.getBoundShopSuperiorsPoints();
-        }
-        //直推上级
-//        if(null != appUser.getInviteUserId()){
-//            AppUser inviteUser = appUserClient.getAppUserById(appUser.getInviteUserId());
-//            if(null != inviteUser){
-//                BigDecimal balance = inviteUser.getBalance();
-//                Integer lavePoint = inviteUser.getLavePoint();
-//                //添加明细记录
-//                if(!inviteUser.getBalance().equals(balance)){
-//                    BalanceChangeRecordCopy balanceChangeRecordCopy = new BalanceChangeRecordCopy();
-//                    balanceChangeRecordCopy.setAppUserId(inviteUser.getId());
-//                    balanceChangeRecordCopy.setVipId(inviteUser.getVipId());
-//                    balanceChangeRecordCopy.setOrderId(order.getId());
-//                    balanceChangeRecordCopy.setChangeType(4);
-//                    balanceChangeRecordCopy.setBeforeAmount(balance);
-//                    balanceChangeRecordCopy.setChangeAmount(ztsj_price);
-//                    balanceChangeRecordCopy.setAfterAmount(inviteUser.getBalance());
-//                    balanceChangeRecordCopy.setDelFlag(0);
-//                    balanceChangeRecordCopy.setCreateTime(LocalDateTime.now());
-//                    balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecordCopy);
-//                }
-//                //添加积分明细
-//                if(!inviteUser.getLavePoint().equals(lavePoint)){
-//
-//                    UserPointCopy userPointCopy = new UserPointCopy();
-//                    userPointCopy.setType(2);
-//                    userPointCopy.setHistoricalPoint(lavePoint);
-//                    userPointCopy.setVariablePoint(ztsj_point);
-//                    userPointCopy.setBalance(inviteUser.getLavePoint());
-//                    userPointCopy.setCreateTime(LocalDateTime.now());
-//                    userPointCopy.setAppUserId(inviteUser.getId());
-//                    userPointCopy.setObjectId(order.getId());
-//                    userPointCopy.setExtention(order.getOrderNumber());
-//                    userPointClient.saveUserPoint(userPointCopy);
-//                }
-//            }
-//        }
-
-        //指导老师
-        AppUser superiorLeader = appUserClient.getSuperiorLeader(appUser.getId()).getData();
-        if(null != superiorLeader){
-            log.info("指导老师:{}",superiorLeader);
-            BigDecimal balance = superiorLeader.getBalance();
-            Integer lavePoint = superiorLeader.getLavePoint();
-            //添加明细记录
-            BalanceChangeRecordCopy balanceChangeRecord = new BalanceChangeRecordCopy();
-            balanceChangeRecord.setAppUserId(superiorLeader.getId());
-            balanceChangeRecord.setVipId(superiorLeader.getVipId());
-            balanceChangeRecord.setOrderId(order.getId());
-            balanceChangeRecord.setChangeType(4);
-            balanceChangeRecord.setBeforeAmount(balance);
-            balanceChangeRecord.setChangeAmount(zbsj_price);
-            balanceChangeRecord.setAfterAmount(superiorLeader.getBalance());
-            balanceChangeRecord.setDelFlag(0);
-            balanceChangeRecord.setCreateTime(LocalDateTime.now());
-            balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
-            //添加积分明细
-            UserPointCopy userPointCopy = new UserPointCopy();
-            userPointCopy.setType(2);
-            userPointCopy.setHistoricalPoint(lavePoint);
-            userPointCopy.setVariablePoint(zbsj_point);
-            userPointCopy.setBalance(superiorLeader.getLavePoint());
-            userPointCopy.setCreateTime(LocalDateTime.now());
-            userPointCopy.setAppUserId(superiorLeader.getId());
-            userPointCopy.setObjectId(order.getId());
-            userPointCopy.setExtention(order.getOrderNumber());
-            userPointClient.saveUserPoint(userPointCopy);
-        }
-
-        //核销门店
-        Shop shop = shopClient.getShopById(order.getShopId()).getData();
-        AppUser shopAppUser = appUserClient.getAppUserById(shop.getAppUserId());
-        if(null != shopAppUser){
-            BigDecimal shopBalance = shop.getBalance();
-            Integer lavePoint = shopAppUser.getLavePoint();
-            Integer shopLavePoint = shop.getLavePoint();
-            //添加明细记录
-            ShopBalanceStatementCopy shopBalanceStatementCopy = new ShopBalanceStatementCopy();
-            shopBalanceStatementCopy.setShopId(shop.getId());
-            shopBalanceStatementCopy.setType(3);
-            shopBalanceStatementCopy.setHistoricalBalance(shopBalance);
-            shopBalanceStatementCopy.setVariableAmount(hxmd_price);
-            shopBalanceStatementCopy.setBalance(shop.getBalance());
-            shopBalanceStatementCopy.setCreateTime(LocalDateTime.now());
-            shopBalanceStatementCopy.setCreateUserId(order.getAppUserId());
-            shopBalanceStatementCopy.setObjectId(order.getId());
-            shopBalanceStatementCopy.setExtension(order.getOrderNumber());
-            shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatementCopy);
-            //添加积分明细
-            UserPointCopy userPointCopy = new UserPointCopy();
-            userPointCopy.setType(8);
-            userPointCopy.setHistoricalPoint(lavePoint);
-            userPointCopy.setVariablePoint(hxmd_point);
-            userPointCopy.setBalance(shopAppUser.getLavePoint());
-            userPointCopy.setCreateTime(LocalDateTime.now());
-            userPointCopy.setAppUserId(shopAppUser.getId());
-            userPointCopy.setObjectId(order.getId());
-            userPointCopy.setExtention(order.getOrderNumber());
-            userPointClient.saveUserPoint(userPointCopy);
-            ShopPointCopy shopPointCopy = new ShopPointCopy();
-            shopPointCopy.setShopId(shop.getId());
-            shopPointCopy.setType(1);
-            shopPointCopy.setHistoricalPoint(shopLavePoint);
-            shopPointCopy.setVariablePoint(hxmd_point);
-            shopPointCopy.setBalance(shop.getLavePoint());
-            shopPointCopy.setCreateTime(LocalDateTime.now());
-            shopPointCopy.setCreateUserId(order.getAppUserId());
-            shopPointCopy.setObjectId(order.getId());
-            shopPointCopy.setOrderNum(order.getOrderNumber());
-            shopPointClient.saveShopPoint(shopPointCopy);
-        }
-
-        //技师服务积分
-        if(order.getOrderType() == 1){
-            Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
-            if(null != technician){
-                AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
-                if(null != technicianAppUser){
-                    Integer lavePoint = technicianAppUser.getLavePoint();
-                    //添加积分明细
-                    UserPointCopy userPointCopy = new UserPointCopy();
-                    userPointCopy.setType(10);
-                    userPointCopy.setHistoricalPoint(lavePoint);
-                    userPointCopy.setVariablePoint(js_point);
-                    userPointCopy.setBalance(technicianAppUser.getLavePoint());
-                    userPointCopy.setCreateTime(LocalDateTime.now());
-                    userPointCopy.setAppUserId(technicianAppUser.getId());
-                    userPointCopy.setObjectId(order.getId());
-                    userPointCopy.setExtention(order.getOrderNumber());
-                    userPointClient.saveUserPoint(userPointCopy);
-                }
-
-            }
-        }
-
-        //服务商分佣
-        Shop shop1 = shopClient.getServiceProvider(appUser.getId()).getData();
-        if(null != shop1){
-            AppUser bdShopAppUser = appUserClient.getAppUserById(shop1.getAppUserId());
-            if(null != bdShopAppUser){
-                BigDecimal shopBalance = shop1.getBalance();
-                Integer lavePoint = bdShopAppUser.getLavePoint();
-                Integer shopLavePoint = shop1.getLavePoint();
-                //添加明细记录
-                ShopBalanceStatementCopy shopBalanceStatementCopy = new ShopBalanceStatementCopy();
-                shopBalanceStatementCopy.setShopId(shop1.getId());
-                shopBalanceStatementCopy.setType(1);
-                shopBalanceStatementCopy.setHistoricalBalance(shopBalance);
-                shopBalanceStatementCopy.setVariableAmount(bdmd_price);
-                shopBalanceStatementCopy.setBalance(shop1.getBalance());
-                shopBalanceStatementCopy.setCreateTime(LocalDateTime.now());
-                shopBalanceStatementCopy.setCreateUserId(order.getAppUserId());
-                shopBalanceStatementCopy.setObjectId(order.getId());
-                shopBalanceStatementCopy.setExtension(order.getOrderNumber());
-                shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatementCopy);
-                //添加积分明细
-                UserPointCopy userPointCopy = new UserPointCopy();
-                userPointCopy.setType(9);
-                userPointCopy.setHistoricalPoint(lavePoint);
-                userPointCopy.setVariablePoint(bdmd_point);
-                userPointCopy.setBalance(bdShopAppUser.getLavePoint());
-                userPointCopy.setCreateTime(LocalDateTime.now());
-                userPointCopy.setAppUserId(bdShopAppUser.getId());
-                userPointCopy.setObjectId(order.getId());
-                userPointCopy.setExtention(order.getOrderNumber());
-                userPointClient.saveUserPoint(userPointCopy);
-
-                ShopPointCopy shopPointCopy = new ShopPointCopy();
-                shopPointCopy.setShopId(shop1.getId());
-                shopPointCopy.setType(2);
-                shopPointCopy.setHistoricalPoint(shopLavePoint);
-                shopPointCopy.setVariablePoint(bdmd_point);
-                shopPointCopy.setBalance(shop1.getLavePoint());
-                shopPointCopy.setCreateTime(LocalDateTime.now());
-                shopPointCopy.setCreateUserId(order.getAppUserId());
-                shopPointCopy.setObjectId(order.getId());
-                shopPointCopy.setOrderNum(order.getOrderNumber());
-                shopPointClient.saveShopPoint(shopPointCopy);
-            }
-        }
-
-        //高级服务商
-        Shop shop2 = shopClient.getSuperiorServiceProvider(order.getAppUserId()).getData();
-        if(null != shop2){
-            AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
-            if(null != sjShopAppUser){
-                BigDecimal shopBalance = shop2.getBalance();
-                Integer lavePoint = sjShopAppUser.getLavePoint();
-                Integer shopLavePoint = shop2.getLavePoint();
-                //添加明细记录
-                ShopBalanceStatementCopy shopBalanceStatementCopy = new ShopBalanceStatementCopy();
-                shopBalanceStatementCopy.setShopId(shop2.getId());
-                shopBalanceStatementCopy.setType(2);
-                shopBalanceStatementCopy.setHistoricalBalance(shopBalance);
-                shopBalanceStatementCopy.setVariableAmount(bdmdsj_price);
-                shopBalanceStatementCopy.setBalance(shop2.getBalance());
-                shopBalanceStatementCopy.setCreateTime(LocalDateTime.now());
-                shopBalanceStatementCopy.setCreateUserId(order.getAppUserId());
-                shopBalanceStatementCopy.setObjectId(order.getId());
-                shopBalanceStatementCopy.setExtension(order.getOrderNumber());
-                shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatementCopy);
-                //添加积分明细
-                UserPointCopy userPointCopy = new UserPointCopy();
-                userPointCopy.setType(14);
-                userPointCopy.setHistoricalPoint(lavePoint);
-                userPointCopy.setVariablePoint(bdmdsj_point);
-                userPointCopy.setBalance(sjShopAppUser.getLavePoint());
-                userPointCopy.setCreateTime(LocalDateTime.now());
-                userPointCopy.setAppUserId(sjShopAppUser.getId());
-                userPointCopy.setObjectId(order.getId());
-                userPointCopy.setExtention(order.getOrderNumber());
-                userPointClient.saveUserPoint(userPointCopy);
-
-                ShopPointCopy shopPointCopy = new ShopPointCopy();
-                shopPointCopy.setShopId(shop2.getId());
-                shopPointCopy.setType(3);
-                shopPointCopy.setHistoricalPoint(shopLavePoint);
-                shopPointCopy.setVariablePoint(bdmdsj_point);
-                shopPointCopy.setBalance(shop2.getLavePoint());
-                shopPointCopy.setCreateTime(LocalDateTime.now());
-                shopPointCopy.setCreateUserId(order.getAppUserId());
-                shopPointCopy.setObjectId(order.getId());
-                shopPointCopy.setOrderNum(order.getOrderNumber());
-                shopPointClient.saveShopPoint(shopPointCopy);
-            }
-        }
-    }
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index c9bc85a..b5cd03b 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -443,19 +443,19 @@
             this.updateById(order);
         }
 
-        R r1 = balanceChangeRecordClient.deleteBalanceChangeRecord(orderId);
+        R r1 = balanceChangeRecordClient.deleteBalanceChangeRecordCopy(orderId, Arrays.asList(4));
         if (200 != r1.getCode()) { // 项目没有分布式事务,此处报错可能会导致数据不一致
          throw new RuntimeException("订单取消失败");
         }
-        R r2 = userPointClient.deleteUserPointCopy(orderId);
+        R r2 = userPointClient.deleteUserPointCopy(orderId, Arrays.asList(2,8,9,10,14));
         if (200 != r2.getCode()) { // 项目没有分布式事务,此处报错可能会导致数据不一致
             throw new RuntimeException("订单取消失败");
         }
-        R<Boolean> r3 = shopBalanceStatementClient.deleteShopBalanceStatementCopy(orderId);
+        R<Boolean> r3 = shopBalanceStatementClient.deleteShopBalanceStatementCopy(orderId, Arrays.asList(1,2,3));
         if (200 != r3.getCode()) { // 项目没有分布式事务,此处报错可能会导致数据不一致
             throw new RuntimeException("订单取消失败");
         }
-        shopPointClient.deleteShopPointCopy(orderId);
+        shopPointClient.deleteShopPointCopy(orderId, Arrays.asList(1,2,3));
         return r;
     }
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 78427d1..d4e8d6f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -41,6 +41,9 @@
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.*;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -1431,8 +1434,16 @@
 			orderBalancePayment.setDistributionAmount(distributionAmount);
 			orderBalancePaymentService.save(orderBalancePayment);
 		}
-
-		commissionService.calculationCommissionCopy(order);
+		
+		//异步线程执行分佣临时数据构建
+		ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), new ThreadPoolExecutor.DiscardPolicy());
+		threadPoolExecutor.execute(new Runnable() {
+			@Override
+			public void run() {
+				commissionService.calculationCommissionUser();
+				commissionService.calculationCommissionShop();
+			}
+		});
 		return R.ok(order.getId().toString());
 	}
 
@@ -1536,6 +1547,16 @@
 		for (Integer goodsId : goodsIds) {
 			goodsClient.editGoodsNum(goodsId, 1);
 		}
+		
+		//异步线程执行分佣临时数据构建
+		ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(1), new ThreadPoolExecutor.DiscardPolicy());
+		threadPoolExecutor.execute(new Runnable() {
+			@Override
+			public void run() {
+				commissionService.calculationCommissionUser();
+				commissionService.calculationCommissionShop();
+			}
+		});
 		return R.ok();
 	}
 	
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
index c4c7fed..a0d0585 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
@@ -211,11 +211,20 @@
     }
 
     @DeleteMapping("/deleteShopBalanceStatementCopy")
-    public R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId){
-        shopBalanceStatementCopyMapper.delete(new LambdaQueryWrapper<ShopBalanceStatementCopy>()
+    public R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
+        shopBalanceStatementCopyMapper.delete(new LambdaQueryWrapper<ShopBalanceStatementCopy>().in(ShopBalanceStatementCopy::getType, type)
                 .eq(ShopBalanceStatementCopy::getObjectId, orderId));
         return R.ok();
     }
+    
+    
+    @PostMapping("/getShopBalanceStatementCopy")
+    public R<List<ShopBalanceStatementCopy>> getShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
+        List<ShopBalanceStatementCopy> shopBalanceStatementCopies = shopBalanceStatementCopyMapper.selectList(new LambdaQueryWrapper<ShopBalanceStatementCopy>().in(ShopBalanceStatementCopy::getType, type)
+                .eq(ShopBalanceStatementCopy::getObjectId, orderId));
+        return R.ok(shopBalanceStatementCopies);
+    }
+    
 
 
     /**
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index 438422a..de23686 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -870,18 +870,43 @@
      */
     @GetMapping("/getServiceProvider")
     public R<Shop> getServiceProvider(Long userId){
-        List<AppUser> allSuperiors = getAllSuperiors(userId);
-        //当前绑定门店的店铺信息(服务商)
-        Shop serviceProvider = null;
-        for (AppUser allSuperior : allSuperiors) {
-            List<Shop> shopList = shopService.lambdaQuery().eq(Shop::getAppUserId, allSuperior.getId()).eq(Shop::getDelFlag,0).list();
-            if (!CollectionUtils.isEmpty(shopList)){
-                serviceProvider = shopList.get(0);
-                break;
+        //向上找获取第一个开店的门店
+        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1));
+        AppUser appUser = appUserClient.getAppUserById(userId);
+        //上级集合,防止循环关联
+        Set<Long> pid = new HashSet<>();
+        Shop shop = getSuperiorStore(appUser, list, 1, 1, pid);
+        return R.ok(shop);
+    }
+    
+    
+    
+    public Shop getSuperiorStore(AppUser appUser, List<Shop> list, Integer hierarchy, Integer num, Set<Long> pid){
+        if(null == appUser.getInviteUserId()){
+            return null;
+        }
+        if(pid.contains(appUser.getInviteUserId())){
+            return null;
+        }
+        AppUser appUser1 = appUserClient.getAppUserById(appUser.getInviteUserId());
+        if(null != appUser1){
+            Optional<Shop> first = list.stream().filter(shop -> shop.getAppUserId().equals(appUser1.getId())).findFirst();
+            if(first.isPresent()){
+                if(hierarchy.equals(num)){
+                    return first.get();
+                }
+                num++;
             }
         }
-        return R.ok(serviceProvider);
+        return getSuperiorStore(appUser1, list, hierarchy, num, pid);
     }
+    
+    
+    
+    
+    
+    
+    
 
     /**
      * 获取指定用户的高级服务商
@@ -889,43 +914,13 @@
      */
     @GetMapping("/getSuperiorServiceProvider")
     public R<Shop> getSuperiorServiceProvider(Long userId){
-        List<AppUser> allSuperiors = getAllSuperiors(userId);
-        Long techerId = null;
-        for (AppUser allSuperior : allSuperiors) {
-            List<Shop> shopList = shopService.lambdaQuery().eq(Shop::getAppUserId, allSuperior.getId()).eq(Shop::getDelFlag,0).list();
-            if (!CollectionUtils.isEmpty(shopList)){
-                techerId = allSuperior.getId();
-                break;
-            }
-        }
-        if (techerId == null){
-            return R.fail("暂无高级服务商");
-        }
-        List<AppUser> allSuperiors1 = getAllSuperiors(techerId);
-        for (AppUser allSuperior : allSuperiors1) {
-            List<Shop> shopList = shopService.lambdaQuery().eq(Shop::getAppUserId, allSuperior.getId()).eq(Shop::getDelFlag,0).list();
-            if (!CollectionUtils.isEmpty(shopList)){
-                return R.ok(shopList.get(0));
-            }
-        }
-        return R.fail("暂无高级服务商");
-    }
-
-
-    public List<AppUser> getAllSuperiors(Long userId) {
-        List<AppUser> allSuperiors = new ArrayList<>();
-
-        // 获取当前用户的直接上级
-        AppUser currentUser = appUserClient.getAppUserById(userId);
-        if (currentUser != null && currentUser.getInviteUserId() != null) {
-            AppUser superior = appUserClient.getAppUserById(currentUser.getInviteUserId());
-            if (superior != null) {
-                allSuperiors.add(superior); // 添加直接上级
-                allSuperiors.addAll(getAllSuperiors(superior.getId())); // 递归添加上级的上级
-            }
-        }
-
-        return allSuperiors;
+        //向上找获取第一个开店的门店
+        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1));
+        AppUser appUser = appUserClient.getAppUserById(userId);
+        //上级集合,防止循环关联
+        Set<Long> pid = new HashSet<>();
+        Shop shop = getSuperiorStore(appUser, list, 2, 1, pid);
+        return R.ok(shop);
     }
 
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopGiveawayTemporaryController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopGiveawayTemporaryController.java
new file mode 100644
index 0000000..cc3f56e
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopGiveawayTemporaryController.java
@@ -0,0 +1,45 @@
+package com.ruoyi.other.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.ShopGiveawayTemporary;
+import com.ruoyi.other.service.IShopGiveawayTemporaryService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 16:09
+ */
+@RestController
+@RequestMapping("/shopGiveawayTemporary")
+public class ShopGiveawayTemporaryController {
+	
+	@Resource
+	private IShopGiveawayTemporaryService shopGiveawayTemporaryService;
+	
+	
+	/**
+	 * 保存数据
+	 * @param shopGiveawayTemporary
+	 */
+	@PostMapping("/saveShopGiveawayTemporary")
+	public R saveShopGiveawayTemporary(@RequestBody ShopGiveawayTemporary shopGiveawayTemporary) {
+		shopGiveawayTemporaryService.save(shopGiveawayTemporary);
+		return R.ok();
+	}
+	
+	
+	
+	/**
+	 * 获取订单相关门店分佣临时数据
+	 * @param orderId
+	 */
+	@PostMapping("/getShopGiveawayTemporary")
+	public R<List<ShopGiveawayTemporary>> getShopGiveawayTemporary(@RequestParam("orderId") Long orderId){
+		List<ShopGiveawayTemporary> list = shopGiveawayTemporaryService.list(new LambdaQueryWrapper<ShopGiveawayTemporary>().eq(ShopGiveawayTemporary::getOrderId, orderId));
+		return R.ok(list);
+	}
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
index 84be6c3..de691c8 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
@@ -20,6 +20,7 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * <p>
@@ -119,11 +120,19 @@
         shopPointCopyMapper.insert(shopPoint);
     }
 
-    @DeleteMapping("/shop-point/deleteShopPointCopy")
-    public void deleteShopPointCopy(@RequestParam("orderId") Long orderId){
-        shopPointCopyMapper.delete(new LambdaQueryWrapper<ShopPointCopy>()
+    @DeleteMapping("/deleteShopPointCopy")
+    public void deleteShopPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
+        shopPointCopyMapper.delete(new LambdaQueryWrapper<ShopPointCopy>().in(ShopPointCopy::getType, type)
                 .eq(ShopPointCopy::getObjectId, orderId));
     }
+    
+    
+    @PostMapping("/getShopPointCopy")
+    public R<List<ShopPointCopy>> getShopPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
+        List<ShopPointCopy> shopPointCopies = shopPointCopyMapper.selectList(new LambdaQueryWrapper<ShopPointCopy>().in(ShopPointCopy::getType, type)
+                .eq(ShopPointCopy::getObjectId, orderId));
+        return R.ok(shopPointCopies);
+    }
 
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopGiveawayTemporaryMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopGiveawayTemporaryMapper.java
new file mode 100644
index 0000000..005ae48
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopGiveawayTemporaryMapper.java
@@ -0,0 +1,11 @@
+package com.ruoyi.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.other.api.domain.ShopGiveawayTemporary;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 16:06
+ */
+public interface ShopGiveawayTemporaryMapper extends BaseMapper<ShopGiveawayTemporary> {
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IShopGiveawayTemporaryService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IShopGiveawayTemporaryService.java
new file mode 100644
index 0000000..1424f82
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/IShopGiveawayTemporaryService.java
@@ -0,0 +1,11 @@
+package com.ruoyi.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.other.api.domain.ShopGiveawayTemporary;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 16:07
+ */
+public interface IShopGiveawayTemporaryService extends IService<ShopGiveawayTemporary> {
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopGiveawayTemporaryServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopGiveawayTemporaryServiceImpl.java
new file mode 100644
index 0000000..ae25e5f
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopGiveawayTemporaryServiceImpl.java
@@ -0,0 +1,15 @@
+package com.ruoyi.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.other.api.domain.ShopGiveawayTemporary;
+import com.ruoyi.other.mapper.ShopGiveawayTemporaryMapper;
+import com.ruoyi.other.service.IShopGiveawayTemporaryService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/25 16:07
+ */
+@Service
+public class ShopGiveawayTemporaryServiceImpl extends ServiceImpl<ShopGiveawayTemporaryMapper, ShopGiveawayTemporary> implements IShopGiveawayTemporaryService {
+}

--
Gitblit v1.7.1