From 8c83fad498da51773d4aa6a4aa6af13f8e39e27d Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 26 十二月 2024 17:04:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java | 7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 551 +++++++++++++++++++++++++++++++++------
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/TaskUtil.java | 10
ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 4
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java | 24 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 3
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java | 20 +
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java | 14
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java | 8
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/enums/OrderStatus.java | 6
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java | 24 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java | 4
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java | 5
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 11
/dev/null | 47 ---
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderGood.java | 4
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java | 26 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 13
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java | 23 +
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java | 8
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java | 5
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java | 8
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java | 6
23 files changed, 657 insertions(+), 174 deletions(-)
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 1e4f31e..4b7cb2e 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
@@ -98,12 +98,9 @@
@ApiModelProperty(value = "推广人姓名")
@TableField(exist = false)
private String inviteUserName;
-
-
-
@ApiModelProperty(value = "绑定门店id")
@TableField("shop_id")
- private Long shopId;
+ private Integer shopId;
@ApiModelProperty(value = "绑定门店名称")
@TableField(exist = false)
private String shopName;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java
index efeec68..c5d9aca 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java
@@ -55,11 +55,7 @@
@PostMapping("/order/subscribe")
public R<Void> subscribe(@RequestParam(value = "id" , required = false) Long id ,@RequestParam(value = "technicianId", required = false) Integer technicianId);
- /**
- * 预约技师
- */
- @PostMapping("/commission/calculationCommission")
- public R<Void> calculationCommission(@RequestBody Set<String> orderIds);
+
@GetMapping("/shopping-cart/getGoodsPrice")
public R<Price> getGoodsPrice(@RequestParam("appUserId") Long appUserId, @RequestParam("goodsId") Integer goodsId, @RequestParam("shopId") Integer shopId);
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderGood.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderGood.java
index fff54b2..0c87f9c 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderGood.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderGood.java
@@ -76,11 +76,11 @@
@ApiModelProperty(value = "获取返佣积分上级类型(1=直推上级,2=直帮上级)")
@TableField("superior_type")
- private Integer superiorType;
+ private String superiorType;
@ApiModelProperty(value = "获取分佣金额上级类型(1=直推上级,2=直帮上级)")
@TableField("superior_price_type")
- private Integer superiorPriceType;
+ private String superiorPriceType;
@ApiModelProperty(value = "核销门店可获得服务费")
@TableField("servuce_shop_charges")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
index 9b4068a..a4d8e97 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java
@@ -113,6 +113,10 @@
@ApiModelProperty(value = "门店已用积分")
@TableField("use_point")
private Integer usePoint;
+
+ @ApiModelProperty(value = "门店剩余积分")
+ @TableField("lave_point")
+ private Integer lavePoint;
@ApiModelProperty(value = "门店分佣总金额")
@TableField("giveaway_all_money")
@@ -137,6 +141,10 @@
@ApiModelProperty(value = "已提现金额")
@TableField("withdraw_money")
private BigDecimal withdrawMoney;
+
+ @ApiModelProperty(value = "余额")
+ @TableField("balance")
+ private BigDecimal balance;
@ApiModelProperty(value = "门店订单总数")
@TableField("order_number")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java
index 8082908..2939f35 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java
@@ -40,9 +40,9 @@
@TableField("shop_id")
private Integer shopId;
- @ApiModelProperty(value = "变动类型(1=门店业绩,2=门店返佣,3=下级门店返佣)")
+ @ApiModelProperty(value = "变动类型(1=门店业绩,2=门店返佣,3=下级门店返佣,4=门店服务返佣)")
@TableField("type")
- @Excel(name = "变动类型", readConverterExp = "1=门店业绩,2=门店返佣,3=下级门店返佣")
+ @Excel(name = "变动类型", readConverterExp = "1=门店业绩,2=门店返佣,3=下级门店返佣,4=门店服务返佣")
private Integer type;
@ApiModelProperty(value = "历史余额")
@@ -53,6 +53,10 @@
@TableField("variable_point")
@Excel(name = "变动金额")
private Integer variablePoint;
+
+ @ApiModelProperty(value = "变动后余额")
+ @TableField("balance")
+ private Integer balance;
@ApiModelProperty(value = "变动时间")
@TableField("create_time")
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
new file mode 100644
index 0000000..bff6cac
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
@@ -0,0 +1,24 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.api.feignClient.SeckillActivityInfoClient;
+import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/26 15:41
+ */
+public class ShopBalanceStatementClientFallbackFactory implements FallbackFactory<ShopBalanceStatementClient> {
+ @Override
+ public ShopBalanceStatementClient create(Throwable cause) {
+ return new ShopBalanceStatementClient(){
+
+ @Override
+ public void saveShopBalanceStatement(ShopBalanceStatement shopBalanceStatement) {
+ R.fail("保存门店余额流水失败:" + cause.getMessage());
+ }
+ };
+ }
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
index 1c2144f..45446cc 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
@@ -44,6 +44,11 @@
public R<List<ShopBalanceStatement>> getShopBalanceStatementList(ShopBalanceStatement shopBalanceStatement) {
return R.fail();
}
+
+ @Override
+ public void updateShop(Shop shop) {
+ 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
new file mode 100644
index 0000000..76f91a9
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java
@@ -0,0 +1,23 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.ShopPoint;
+import com.ruoyi.other.api.feignClient.ShopPointClient;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/26 15:58
+ */
+public class ShopPointClientFallbackFactory implements FallbackFactory<ShopPointClient> {
+ @Override
+ public ShopPointClient create(Throwable cause) {
+ return new ShopPointClient(){
+
+ @Override
+ public void saveShopPoint(ShopPoint shopPoint) {
+ 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
new file mode 100644
index 0000000..351fcba
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
@@ -0,0 +1,24 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/26 15:40
+ */
+@FeignClient(contextId = "ShopBalanceStatementClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopBalanceStatementClientFallbackFactory.class)
+public interface ShopBalanceStatementClient {
+
+
+ /**
+ * 保存门店余额流水
+ * @param shopBalanceStatement
+ */
+ @PostMapping("/shop-balance-statement/saveShopBalanceStatement")
+ void saveShopBalanceStatement(@RequestBody ShopBalanceStatement shopBalanceStatement);
+}
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 3019063..62983d7 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
@@ -50,4 +50,11 @@
@PostMapping("/shop-balance-statement/getList")
R<List<ShopBalanceStatement>> getShopBalanceStatementList(@RequestBody ShopBalanceStatement shopBalanceStatement);
+
+ /**
+ * 编辑门店
+ * @param shop
+ */
+ @PostMapping("/shop-balance-statement/updateShop")
+ void updateShop(Shop shop);
}
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
new file mode 100644
index 0000000..5b8488c
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java
@@ -0,0 +1,26 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.other.api.domain.ShopPoint;
+import com.ruoyi.other.api.factory.ShopPointClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/26 15:58
+ */
+@FeignClient(contextId = "ShopPointClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopPointClientFallbackFactory.class)
+public interface ShopPointClient {
+
+
+
+
+ /**
+ * 保存门店积分流水
+ * @param shopPoint
+ */
+ @PostMapping("/shop-point/saveShopPoint")
+ void saveShopPoint(@RequestBody ShopPoint shopPoint);
+}
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 580196b..35f71c4 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
@@ -16,4 +16,6 @@
com.ruoyi.other.api.factory.PointSettingClientFallbackFactory
com.ruoyi.other.api.factory.VipGoodClientFallbackFactory
com.ruoyi.other.api.factory.VipSettingClientFallbackFactory
-com.ruoyi.other.api.factory.RegionClientFallbackFactory
\ No newline at end of file
+com.ruoyi.other.api.factory.RegionClientFallbackFactory
+com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory
+com.ruoyi.other.api.factory.ShopPointClientFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java
deleted file mode 100644
index d85db04..0000000
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.ruoyi.job.task;
-
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.Set;
-
-@Component("afterSalesTask")
-@Log4j2
-public class AfterSalesTask {
- @Resource
- private RedisTemplate<String, String> redisTemplate;
- @Resource
- private RemoteOrderGoodsClient remoteOrderGoodsClient;
-
- /**
- * 计算佣金(设置每分钟执行一次)
- */
- public void afterSales()
- {
- long now = System.currentTimeMillis() / 1000; // 获取当前时间戳(秒)
- // 从延迟队列中获取需要处理的订单
- Set<String> orderIds = redisTemplate.opsForZSet().rangeByScore("delay_queue:commission", 0, now);
- if (orderIds != null && !orderIds.isEmpty()) {
- R<Void> r = remoteOrderGoodsClient.calculationCommission(orderIds);
- if (R.isError(r)) {
- log.error("计算佣金失败,订单号:{},错误信息:{}", orderIds, r.getMsg());
- }
- // 处理完后移除已处理的订单
- redisTemplate.opsForZSet().removeRangeByScore("delay_queue:commission", 0, now);
- }
- }
-
- /**
- * 佣金补偿(每天执行一次)
- * redis未配置持久化,为防止数据丢失,每天执行一次,将到期未处理的订单重新放入延迟队列中
- */
- public void afterSalesCompensation()
- {
- // 获取未处理的订单
-
- }
-}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index 0e80e78..95e4182 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -607,9 +607,8 @@
if (inviteUser.getVipId() > 3) {
return inviteUser;
}else {
- getSuperiorLeader(inviteUserId);
+ return getSuperiorLeader(inviteUserId);
}
- return null;
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java
index 58a8425..4272bd3 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java
@@ -12,10 +12,6 @@
public class CommissionController {
@Resource
private CommissionService commissionService;
-
- @PostMapping("/calculationCommission")
- public R<Void> calculationCommission(@RequestBody Set<String> orderIds){
- commissionService.calculationCommission(orderIds);
- return R.ok();
- }
+
+
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index bffa467..25fc793 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -147,13 +147,6 @@
})
@GetMapping("/confirm/{orderId}")
public R<Void> confirm(@PathVariable("orderId") Long orderId){
- boolean update = orderService.update(new LambdaUpdateWrapper<Order>()
- .eq(Order::getId, orderId)
- .eq(Order::getOrderStatus, OrderStatus.PENDING_RECEIPT.getCode())
- .set(Order::getOrderStatus, OrderStatus.COMPLETED.getCode()));
- if(!update){
- return R.fail("订单状态异常");
- }
R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5);
if (R.isError(baseSettingR)) {
return R.fail("售后设置获取失败");
@@ -165,7 +158,11 @@
String content = baseSetting.getContent();
JSONObject jsonObject = JSONObject.parseObject(content);
Long days = jsonObject.getLong("days");
- commissionService.addToCommissionDelayQueue(orderId, LocalDateTime.now().plusDays(days));
+ Order order = orderService.getById(orderId);
+ order.setAfterSaleTime(LocalDateTime.now().plusDays(days));
+ order.setIsCommission(0);
+ order.setOrderStatus(OrderStatus.COMPLETED.getCode());
+ orderService.updateById(order);
return R.ok();
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/enums/OrderStatus.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/enums/OrderStatus.java
index c8cfe81..ce22a40 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/enums/OrderStatus.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/enums/OrderStatus.java
@@ -4,13 +4,17 @@
@Getter
public enum OrderStatus {
+ /**
+ * 1待发货2待收货3待使用4已完成5已取消6已退款7售后中8已评价
+ */
PENDING_SHIPMENT(1, "待发货"),
PENDING_RECEIPT(2, "待收货"),
PENDING_USE(3, "待使用"),
COMPLETED(4, "已完成"),
CANCELLED(5, "已取消"),
REFUNDED(6, "已退款"),
- AFTER_SALE(7, "售后中");
+ AFTER_SALE(7, "售后中"),
+ RATED(8, "已评价");
private final int code;
private final String description;
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 07a13a0..b1ae674 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
@@ -7,7 +7,7 @@
public interface CommissionService {
// 计算佣金
- void calculationCommission(Set<String> orderIds);
+ void calculationCommission();
- void addToCommissionDelayQueue(Long orderId, LocalDateTime afterSalesDeadline);
+
}
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 b31cce9..6783958 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
@@ -2,15 +2,25 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.BalanceChangeRecordClient;
+import com.ruoyi.account.api.feignClient.UserPointClient;
import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.BalanceChangeRecord;
+import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.order.service.CommissionService;
import com.ruoyi.order.service.OrderGoodService;
import com.ruoyi.order.service.OrderService;
import com.ruoyi.other.api.domain.Shop;
+import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.api.domain.ShopPoint;
+import com.ruoyi.other.api.domain.Technician;
+import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
import com.ruoyi.other.api.feignClient.ShopClient;
import com.ruoyi.order.model.Order;
import com.ruoyi.order.model.OrderGood;
+import com.ruoyi.other.api.feignClient.ShopPointClient;
+import com.ruoyi.other.api.feignClient.TechnicianClient;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -35,100 +45,471 @@
@Resource
private ShopClient shopClient;
@Resource
- private RedisTemplate<String, String> redisTemplate;
+ private BalanceChangeRecordClient balanceChangeRecordClient;
+ @Resource
+ private UserPointClient userPointClient;
+ @Resource
+ private ShopBalanceStatementClient shopBalanceStatementClient;
+ @Resource
+ private ShopPointClient shopPointClient;
+ @Resource
+ private TechnicianClient technicianClient;
- /**
- * 返佣延迟队列(redis有序集合)
- *
- * @param orderId 订单ID
- * @param afterSalesDeadline 售后截止日期(计算日期)
- */
- @Override
- public void addToCommissionDelayQueue(Long orderId, LocalDateTime afterSalesDeadline) {
- // 获取订单售后截止日期时间戳(秒)
- long deadlineTimestamp = afterSalesDeadline.atZone(ZoneId.systemDefault()).toEpochSecond();
- redisTemplate.opsForZSet().add("delay_queue:commission", orderId.toString(), deadlineTimestamp);
- }
+
@Override
@Transactional(rollbackFor = Exception.class)
- public void calculationCommission(Set<String> orderIds) {
- List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
- .in(OrderGood::getOrderId, orderIds));
-
- Map<Long, List<OrderGood>> ogMap = orderGoods.stream().collect(Collectors.groupingBy(OrderGood::getOrderId));
-
- for (Map.Entry<Long, List<OrderGood>> entry : ogMap.entrySet()) {
- Long k = entry.getKey();
- List<OrderGood> v = entry.getValue();
- Order order = orderService.getById(k);
- if (order.getIsCommission() == 1) {
+ public void calculationCommission() {
+ List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getIsCommission, 0).isNotNull(Order::getAfterSaleTime)
+ .eq(Order::getDelFlag, 0).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) {
+ if(order.getPayMethod() == 3){
continue;
}
- order.setIsCommission(1);
- orderService.updateById(order);
- R<Shop> r = shopClient.getShopById(order.getShopId());
- if (!R.isSuccess(r)) {
- throw new RuntimeException("获取门店信息失败");
- }
- Shop shop = r.getData();
- if (shop == null) {
- throw new RuntimeException("获取门店信息失败");
- }
-
- Long appUserId = order.getAppUserId();
- AppUser appUser = appUserClient.getAppUserById(appUserId);
- if (appUser == null) {
- throw new RuntimeException("获取用户信息失败");
- }
- Long inviteUserId = appUser.getInviteUserId();
- // 直推上级用户
- AppUser inviteUser = appUserClient.getAppUserById(inviteUserId);
-
- // 获取直帮上级用户
- R<AppUser> superiorLeaderR = appUserClient.getSuperiorLeader(appUserId);
- if (!R.isSuccess(superiorLeaderR)) {
- throw new RuntimeException("获取直帮上级信息失败");
- }
- AppUser superiorLeader = superiorLeaderR.getData();
-
- for (OrderGood og : v) {// 累计分销金额
-
- // 直推上级分佣金额
- Integer superiorType = og.getSuperiorType();
- if (superiorType == 1 && inviteUser != null){
- // 分佣金额
- BigDecimal superiorSubcommission = og.getSuperiorSubcommission();
- BigDecimal totalDistributionAmount = inviteUser.getTotalDistributionAmount();
- totalDistributionAmount = totalDistributionAmount.add(superiorSubcommission);
- inviteUser.setTotalDistributionAmount(totalDistributionAmount);
-
- // 分佣积分
- Integer sharePoint = inviteUser.getSharePoint();
- Integer superiorRebatePoints = og.getSuperiorRebatePoints();
- sharePoint = sharePoint + superiorRebatePoints;
- inviteUser.setSharePoint(sharePoint);
-
- appUserClient.editAppUserById(inviteUser);
- }else
- // 直帮上级分佣金额
- if (superiorType == 2 && superiorLeader != null){
- // 分佣金额
- BigDecimal superiorSubcommission = og.getSuperiorSubcommission();
- BigDecimal totalDistributionAmount = superiorLeader.getTotalDistributionAmount();
- totalDistributionAmount = totalDistributionAmount.add(superiorSubcommission);
- superiorLeader.setTotalDistributionAmount(totalDistributionAmount);
-
- // 分佣积分
- Integer sharePoint = superiorLeader.getSharePoint();
- Integer superiorRebatePoints = og.getSuperiorRebatePoints();
- sharePoint = sharePoint + superiorRebatePoints;
- superiorLeader.setSharePoint(sharePoint);
-
- appUserClient.editAppUserById(superiorLeader);
+ List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
+ .eq(OrderGood::getGoodsId, 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();
+ String[] split = orderGood.getSuperiorPriceType().split(",");
+ for (String s : split) {
+ //直推上级
+ if("1".equals(s)){
+ ztsj_price = ztsj_price.add(superiorSubcommission);
+ ztsj_point += superiorRebatePoints;
}
+ //直帮上级
+ if("2".equals(s)){
+ zbsj_price = zbsj_price.add(superiorSubcommission);
+ 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();
}
+ //直推上级
+ 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){
+ inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
+ inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
+ inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
+ }
+ appUserClient.editAppUserById(inviteUser);
+ //添加明细记录
+ if(!inviteUser.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(inviteUser.getId());
+ 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);
+ }
+ }
+ //直帮上级
+ 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){
+ superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zbsj_point);
+ superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zbsj_point);
+ superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
+ }
+ appUserClient.editAppUserById(superiorLeader);
+ //添加明细记录
+ if(!superiorLeader.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(superiorLeader.getId());
+ 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);
+ }
+ }
+
+ //核销门店
+ Shop shop = shopClient.getShopById(order.getShopId()).getData();
+ AppUser shopAppUser = appUserClient.getAppUserById(shop.getAppUserId());
+ if(null != shopAppUser){
+ BigDecimal balance = shopAppUser.getBalance();
+ BigDecimal shopBalance = shop.getBalance();
+ Integer lavePoint = shopAppUser.getLavePoint();
+ Integer shopLavePoint = shop.getLavePoint();
+ if(hxmd_price.compareTo(BigDecimal.ZERO) > 0){
+ shopAppUser.setTotalDistributionAmount(shopAppUser.getTotalDistributionAmount().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shopAppUser.setBalance(shopAppUser.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shopAppUser.setWithdrawableAmount(shopAppUser.getWithdrawableAmount().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shopAppUser.setShopServiceFee(shopAppUser.getShopServiceFee().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));
+ }
+ if(hxmd_point > 0){
+ shopAppUser.setSharePoint(shopAppUser.getSharePoint() + hxmd_point);
+ shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
+ shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
+ //门店返佣
+ shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
+ shop.setServerPoint(shop.getServerPoint() + hxmd_point);
+ shop.setLavePoint(shop.getLavePoint() + hxmd_point);
+ }
+ appUserClient.editAppUserById(shopAppUser);
+ shopClient.updateShop(shop);
+ //添加明细记录
+ if(!shopAppUser.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(shopAppUser.getId());
+ balanceChangeRecord.setOrderId(order.getId());
+ balanceChangeRecord.setChangeType(4);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(hxmd_price);
+ balanceChangeRecord.setAfterAmount(shopAppUser.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+
+ 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(!shopAppUser.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(9);
+ 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);
+ }
+
+ if(!shop.getLavePoint().equals(shopLavePoint)){
+ ShopPoint shopPoint = new ShopPoint();
+ shopPoint.setShopId(shop.getId());
+ shopPoint.setType(4);
+ 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);
+ }
+ }
+
+ //技师服务积分
+ if(order.getOrderType() == 1){
+ Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
+ AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
+ Integer lavePoint = technicianAppUser.getLavePoint();
+ if(js_point > 0){
+ technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
+ technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
+ technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
+ }
+ 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);
+ }
+ }
+
+ //绑定门店分佣
+ Shop shop1 = shopClient.getShopById(appUser.getShopId()).getData();
+ if(null != shop1){
+ AppUser bdShopAppUser = appUserClient.getAppUserById(shop1.getAppUserId());
+ if(null != bdShopAppUser){
+ BigDecimal balance = bdShopAppUser.getBalance();
+ BigDecimal shopBalance = shop1.getBalance();
+ Integer lavePoint = bdShopAppUser.getLavePoint();
+ Integer shopLavePoint = shop1.getLavePoint();
+ if(bdmd_price.compareTo(BigDecimal.ZERO) > 0){
+ bdShopAppUser.setTotalDistributionAmount(bdShopAppUser.getTotalDistributionAmount().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ bdShopAppUser.setBalance(bdShopAppUser.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ bdShopAppUser.setWithdrawableAmount(bdShopAppUser.getWithdrawableAmount().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ bdShopAppUser.setShopCommission(bdShopAppUser.getShopCommission().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ //门店返佣
+ 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){
+ bdShopAppUser.setSharePoint(bdShopAppUser.getSharePoint() + bdmd_point);
+ bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
+ bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + 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(!bdShopAppUser.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(bdShopAppUser.getId());
+ balanceChangeRecord.setOrderId(order.getId());
+ balanceChangeRecord.setChangeType(4);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(bdmd_price);
+ balanceChangeRecord.setAfterAmount(bdShopAppUser.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+
+ if(!shop1.getBalance().equals(shopBalance)){
+ ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+ shopBalanceStatement.setShopId(shop1.getId());
+ shopBalanceStatement.setType(4);
+ 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);
+ }
+
+ 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);
+ }
+ }
+ }
+
+ //上级门店分佣
+ Integer pid = shopClient.getShopById(order.getShopId()).getData().getPid();
+ Shop shop2 = shopClient.getShopById(pid).getData();
+ if(null != shop2){
+ AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
+ if(null != sjShopAppUser){
+ BigDecimal balance = sjShopAppUser.getBalance();
+ BigDecimal shopBalance = shop2.getBalance();
+ Integer lavePoint = sjShopAppUser.getLavePoint();
+ Integer shopLavePoint = shop2.getLavePoint();
+ if(bdmdsj_price.compareTo(BigDecimal.ZERO) > 0){
+ sjShopAppUser.setTotalDistributionAmount(sjShopAppUser.getTotalDistributionAmount().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ sjShopAppUser.setBalance(sjShopAppUser.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ sjShopAppUser.setWithdrawableAmount(sjShopAppUser.getWithdrawableAmount().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ //门店返佣
+ 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){
+ sjShopAppUser.setSharePoint(sjShopAppUser.getSharePoint() + bdmdsj_point);
+ sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
+ sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
+ sjShopAppUser.setShopSharePoint(sjShopAppUser.getShopSharePoint() + bdmdsj_point);
+ //门店返佣
+ shop2.setShopAllPoint(shop2.getShopAllPoint() + bdmdsj_point);
+ shop2.setSharePoint(shop2.getSharePoint() + bdmdsj_point);
+ shop2.setLavePoint(shop2.getLavePoint() + bdmdsj_point);
+ }
+ appUserClient.editAppUserById(sjShopAppUser);
+ shopClient.updateShop(shop2);
+ //添加明细记录
+ if(!sjShopAppUser.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(sjShopAppUser.getId());
+ balanceChangeRecord.setOrderId(order.getId());
+ balanceChangeRecord.setChangeType(4);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(bdmdsj_price);
+ balanceChangeRecord.setAfterAmount(sjShopAppUser.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+
+ 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);
+ }
+
+ 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);
+ }
+ }
+ }
+
}
+
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/TaskUtil.java
index 26c0e8b..7c77100 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/TaskUtil.java
@@ -1,7 +1,10 @@
package com.ruoyi.order.util;
+import com.ruoyi.order.service.CommissionService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
/**
@@ -11,11 +14,12 @@
@Component
public class TaskUtil {
+ @Resource
+ private CommissionService commissionService;
-@Scheduled(cron = "0 0 0 * * ?")
-//@Scheduled(fixedRate = 60000)
+ @Scheduled(fixedRate = 60000)
public void taskMonth() {
-
+ commissionService.calculationCommission();
}
// 每天晚上23:59:59执行的定时任务
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 f2daa57..f703879 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
@@ -42,6 +42,13 @@
private TokenService tokenService;
@Resource
private ShopBalanceStatementMapper shopBalanceStatementMapper;
+
+ @Resource
+ private ShopService shopService;
+
+
+
+
/**
* 门店分佣统计
@@ -69,8 +76,7 @@
}
- @Resource
- private ShopService shopService;
+
@GetMapping("/commissionStatistics/info")
@ApiOperation(value = "门店余额明细上方数据", notes = "门店余额明细", tags = {"门店后台"})
public R<ShopBalanceDto> shopCommissionStatisticsinfo(){
@@ -131,6 +137,16 @@
public R<List<ShopBalanceStatement>> getList(@RequestBody ShopBalanceStatement shopBalanceStatement){
return R.ok(shopBalanceStatementMapper.selectShopBalanceStatementList(shopBalanceStatement));
}
+
+
+ /**
+ * 保存门店余额流水
+ * @param shopBalanceStatement
+ */
+ @PostMapping("/saveShopBalanceStatement")
+ public void saveShopBalanceStatement(@RequestBody ShopBalanceStatement shopBalanceStatement){
+ shopBalanceStatementService.save(shopBalanceStatement);
+ }
}
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 1dffb31..6d89e84 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
@@ -299,6 +299,15 @@
ShopStatistics shopStatistics = shopMapper.getShopStatistics(shopName);
return R.ok(shopStatistics);
}
-
+
+
+ /**
+ * 编辑门店
+ * @param shop
+ */
+ @PostMapping("/updateShop")
+ public void updateShop(@RequestBody Shop shop){
+ shopService.updateById(shop);
+ }
}
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 084043b..7c58751 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
@@ -11,9 +11,7 @@
import com.ruoyi.other.vo.ShopPointStatistics;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@@ -88,6 +86,16 @@
util.exportExcel(response, shopPointIPage.getRecords(), "用户积分统计");
}
}
+
+
+ /**
+ * 保存门店积分流水
+ * @param shopPoint
+ */
+ @PostMapping("/saveShopPoint")
+ public void saveShopPoint(@RequestBody ShopPoint shopPoint){
+ shopPointService.save(shopPoint);
+ }
}
--
Gitblit v1.7.1