Pu Zhibing
2024-12-26 22875a9b883293aa88c9ea02103a1e218835c6bc
修改分佣逻辑
18个文件已修改
1个文件已删除
4个文件已添加
831 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/OrderGood.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Shop.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/CommissionController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/enums/OrderStatus.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java 551 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/TaskUtil.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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);
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")
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")
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")
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
New file
@@ -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());
            }
        };
    }
}
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());
            }
        };
    }
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java
New file
@@ -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());
            }
        };
    }
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
New file
@@ -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);
}
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);
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java
New file
@@ -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);
}
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
com.ruoyi.other.api.factory.RegionClientFallbackFactory
com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory
com.ruoyi.other.api.factory.ShopPointClientFallbackFactory
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java
File was deleted
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;
    }
    
    
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();
    }
}
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();
    }
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;
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);
}
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);
                    }
                }
            }
        }
    }
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执行的定时任务
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);
    }
}
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);
    }
}
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);
    }
}