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