From 199861555473ab50f2fafa3d58e42e64e838c039 Mon Sep 17 00:00:00 2001 From: luofl <1442745593@qq.com> Date: 星期一, 24 二月 2025 22:47:18 +0800 Subject: [PATCH] 修改物流信息导入模板 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java | 38 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordCopyService.java | 8 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 330 +++++++++++++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java | 10 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java | 20 + ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecordCopy.java | 96 ++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/CommissionService.java | 4 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPointCopy.java | 120 ++++++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopPointClient.java | 12 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordCopyServiceImpl.java | 11 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 17 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java | 17 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementCopyMapper.java | 17 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java | 10 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/BalanceChangeRecordClientFallbackFactory.java | 11 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java | 4 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 | 8 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java | 16 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java | 7 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WalletServiceImpl.java | 37 + ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/BalanceChangeRecordCopyMapper.xml | 0 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java | 8 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPointCopy.java | 102 +++++ ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/UserPointFallbackFactory.java | 11 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java | 10 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java | 2 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatementCopy.java | 109 +++++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java | 11 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointCopyMapper.java | 7 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java | 17 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 1 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java | 9 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderGoodController.java | 8 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java | 35 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordCopyMapper.java | 7 37 files changed, 1,073 insertions(+), 71 deletions(-) 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 7471ade..aa093ff 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 @@ -2,6 +2,7 @@ import com.ruoyi.account.api.feignClient.BalanceChangeRecordClient; import com.ruoyi.account.api.model.BalanceChangeRecord; +import com.ruoyi.account.api.model.BalanceChangeRecordCopy; import com.ruoyi.common.core.domain.R; import org.springframework.cloud.openfeign.FallbackFactory; @@ -18,6 +19,16 @@ public R saveBalanceChangeRecord(BalanceChangeRecord balanceChangeRecord) { return R.fail("保存账户流水记录失败:" + cause.getMessage()); } + + @Override + public R saveBalanceChangeRecord(BalanceChangeRecordCopy balanceChangeRecord) { + return null; + } + + @Override + public R deleteBalanceChangeRecord(Long OrderId) { + return null; + } }; } } 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 e13408d..3c28534 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 @@ -2,6 +2,7 @@ import com.ruoyi.account.api.feignClient.UserPointClient; import com.ruoyi.account.api.model.UserPoint; +import com.ruoyi.account.api.model.UserPointCopy; import com.ruoyi.common.core.domain.R; import org.springframework.cloud.openfeign.FallbackFactory; @@ -21,6 +22,16 @@ } @Override + public R saveUserPoint(UserPointCopy userPoint) { + return R.fail("保存积分流水记录失败:" + cause.getMessage()); + } + + @Override + public R deleteUserPointCopy(Long id) { + 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/BalanceChangeRecordClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/BalanceChangeRecordClient.java index 3722e49..c8ccb4f 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 @@ -2,11 +2,14 @@ import com.ruoyi.account.api.factory.BalanceChangeRecordClientFallbackFactory; import com.ruoyi.account.api.model.BalanceChangeRecord; +import com.ruoyi.account.api.model.BalanceChangeRecordCopy; 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.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; /** * @author zhibing.pu @@ -23,4 +26,10 @@ */ @PostMapping("/balanceChangeRecord/saveBalanceChangeRecord") R saveBalanceChangeRecord(@RequestBody BalanceChangeRecord balanceChangeRecord); + + @PostMapping("/balanceChangeRecordCopy/saveBalanceChangeRecordCopy") + R saveBalanceChangeRecord(@RequestBody BalanceChangeRecordCopy balanceChangeRecord); + + @DeleteMapping("/balanceChangeRecordCopy/deleteBalanceChangeRecord") + R deleteBalanceChangeRecord(@RequestParam("orderId") Long orderId); } 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 abbd452..a3579fe 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 @@ -2,9 +2,11 @@ import com.ruoyi.account.api.factory.UserPointFallbackFactory; import com.ruoyi.account.api.model.UserPoint; +import com.ruoyi.account.api.model.UserPointCopy; 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.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -26,6 +28,12 @@ @PostMapping("/user-point/saveUserPoint") R saveUserPoint(@RequestBody UserPoint userPoint); + @PostMapping("/user-point/saveUserPointCopy") + R saveUserPoint(@RequestBody UserPointCopy userPoint); + + @DeleteMapping("/user-point/deleteUserPointCopy") + R deleteUserPointCopy(@RequestParam("orderId") Long orderId); + /** * 获取积分变动明细 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 047f945..b9f7026 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 @@ -100,6 +100,8 @@ @ApiModelProperty(value = "指导老师") @TableField(exist = false) private String teacher; + @TableField(exist = false) + private String teacherPhone; @ApiModelProperty(value = "绑定门店id") @TableField("shop_id") @@ -174,6 +176,14 @@ @TableField("total_distribution_amount") private BigDecimal totalDistributionAmount; + @ApiModelProperty(value = "冻结分佣金额") + @TableField("freeze_commission_amount") + private BigDecimal freezeCommissionAmount; + + @ApiModelProperty(value = "冻结分佣积分") + @TableField("freeze_commission_point") + private Integer freezeCommissionPoint; + @ApiModelProperty(value = "拉新人积分总数") @TableField("total_invite_point") private Integer totalInvitePoint; diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecordCopy.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecordCopy.java new file mode 100644 index 0000000..304cacd --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/BalanceChangeRecordCopy.java @@ -0,0 +1,96 @@ +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.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_balance_change_record_copy") +@ApiModel(value = "变更记录对象", description = "") +public class BalanceChangeRecordCopy implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId + private Long id; + + @ApiModelProperty("用户id") + private Long appUserId; + + @ApiModelProperty("vip等级id") + private Integer vipId; + + @ApiModelProperty("订单id") + private Long orderId; + + @ApiModelProperty("类型:1充值2提现3红包4分佣5商城购物6订单取消回退") + @Excel(name = "变更类型", readConverterExp = "1=充值,2=提现,3=红包,4=分佣,5=商城购物,6=订单取消回退") + private Integer changeType; + + @ApiModelProperty("变更前金额") + private BigDecimal beforeAmount; + + @ApiModelProperty("变更金额") + private BigDecimal changeAmount; + @ApiModelProperty("变更金额-带人民币符号") + @Excel(name = "变更数量") + @TableField(exist = false) + private String changeAmountString; + + @ApiModelProperty("变更后金额") + private BigDecimal afterAmount; + + @ApiModelProperty("删除(0=否,1=是") + private Integer delFlag; + + @ApiModelProperty("添加时间") + @Excel(name = "变更时间",dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @TableField(exist = false) + @ApiModelProperty("消费用户名称") + @Excel(name = "用户名称") + private String userName; + + @TableField(exist = false) + @ApiModelProperty("消费用户手机号") + @Excel(name = "联系电话") + private String userPhone; + + @TableField(exist = false) + @ApiModelProperty("消费金额") + private BigDecimal amount; + + @ApiModelProperty(value = "开始时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty(value = "结束时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @ApiModelProperty(value = "门店名称") + @TableField(exist = false) + private String shopName; + + @ApiModelProperty(value = "增或减标识: 1-增 2-减") + @TableField(exist = false) + private Integer flag; + +} diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPointCopy.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPointCopy.java new file mode 100644 index 0000000..751c8ea --- /dev/null +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserPointCopy.java @@ -0,0 +1,102 @@ +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.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * <p> + * + * </p> + * + * @author luodangjia + * @since 2024-11-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_user_point_copy") +@ApiModel(value="UserPoint对象", description="") +public class UserPointCopy implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("id") + private Long id; + + @ApiModelProperty(value = "变动类型(1-消费,2-返佣,3-拉新,4-每日分享,5-每日签到,6-使用时长, 7-注册积分, 8-门店业绩," + + "9-门店返佣,14-下级门店返佣,10-技师业绩,11-兑换商品,12-他人赠送,13-赠与他人,15-兑换券)") + @TableField("type") + private Integer type; + + @ApiModelProperty(value = "历史余额") + @TableField("historical_point") + private Integer historicalPoint; + + @ApiModelProperty(value = "变动金额") + @TableField("variable_point") + private Integer variablePoint; + + @ApiModelProperty(value = "变动后余额") + @TableField("balance") + private Integer balance; + + @ApiModelProperty(value = "变动时间") + @TableField("create_time") + private LocalDateTime createTime; + + @ApiModelProperty(value = "变动用户id") + @TableField("app_user_id") + private Long appUserId; + + @ApiModelProperty(value = "关联对象id") + @TableField("object_id") + private Long objectId; + + @ApiModelProperty(value = "拓展字段") + @TableField("extention") + private String extention; + + @ApiModelProperty(value = "用户名称") + @TableField(exist = false) + private String userName; + @ApiModelProperty(value = "变动类型 0未变化1增加2减少") + @TableField(exist = false) + private Integer variableType; + + @ApiModelProperty(value = "联系电话") + @TableField(exist = false) + private String phone; + + + @ApiModelProperty(value = "开始时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty(value = "结束时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @TableField(exist = false) + private List<Long> userIds; + @TableField(exist = false) + private Integer pageNum; + @TableField(exist = false) + private Integer pageSize; + + +} diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java index 2488d5c..77de313 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/RemoteOrderGoodsFallbackFactory.java @@ -68,7 +68,7 @@ } @Override - public R<List<OrderGood>> getUnDistributedOrder(Long appUserId) { + public R<List<OrderGood>> getUnDistributedOrder(List<Long> appUserIds) { return R.fail("获取未分配订单失败"); } }; diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java index 420ead0..f43c09e 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/RemoteOrderGoodsClient.java @@ -65,7 +65,7 @@ R<Order> getLastOrder(@RequestParam("appUserId") Long appUserId); - @GetMapping("/order-good/getUnDistributedOrder") - R<List<OrderGood>> getUnDistributedOrder(Long appUserId); + @PostMapping("/order-good/getUnDistributedOrder") + R<List<OrderGood>> getUnDistributedOrder(@RequestBody List<Long> appUserIds); } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatementCopy.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatementCopy.java new file mode 100644 index 0000000..f8eb465 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatementCopy.java @@ -0,0 +1,109 @@ +package com.ruoyi.other.api.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +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_balance_statement_copy") +@ApiModel(value="ShopBalanceStatement对象", description="") +public class ShopBalanceStatementCopy implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("id") + private Long id; + + @ApiModelProperty(value = "门店id") + @TableField("shop_id") + private Integer shopId; + @ApiModelProperty(value = "门店名称") + @TableField(exist = false) + @Excel(name = "门店名称") + private String shopName; + @ApiModelProperty(value = "店长名称") + @TableField(exist = false) + @Excel(name = "店长姓名") + private String shopManagerName; + @ApiModelProperty(value = "联系电话") + @TableField(exist = false) + @Excel(name = "联系电话") + private String phone; + @ApiModelProperty(value = "变动类型(1=绑定门店分佣,2=下级门店分佣,3=核销门店服务费,4=提现)") + @TableField("type") + @Excel(name = "变更类型",readConverterExp = "1=绑定门店分佣,2=下级门店分佣,3=核销门店服务费,4=提现") + private Integer type; + + @ApiModelProperty(value = "历史余额") + @TableField("historical_balance") + private BigDecimal historicalBalance; + + @ApiModelProperty(value = "变动金额") + @TableField("variable_amount") + private BigDecimal variableAmount; + @ApiModelProperty(value = "变动时间") + @TableField("create_time") + @Excel(name = "变更时间",dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + @ApiModelProperty(value = "变动金额") + @TableField(exist = false) + @Excel(name = "变更数量") + private String variableAmountString; + + @ApiModelProperty(value = "变动后余额") + @TableField("balance") + private BigDecimal balance; + + + + @ApiModelProperty(value = "变动用户id") + @TableField("create_user_id") + private Long createUserId; + + @ApiModelProperty(value = "关联对象id") + @TableField("object_id") + private Long objectId; + + + + + + + + @ApiModelProperty(value = "开始时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String startTime; + + @ApiModelProperty(value = "结束时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String endTime; + + @ApiModelProperty(value = "扩展字段") + @TableField("extension") + private String extension; +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPointCopy.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPointCopy.java new file mode 100644 index 0000000..02c4398 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPointCopy.java @@ -0,0 +1,120 @@ +package com.ruoyi.other.api.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * <p> + * + * </p> + * + * @author luodangjia + * @since 2024-11-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_shop_point") +@ApiModel(value="ShopPoint对象", description="") +public class ShopPointCopy implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("id") + private Long id; + + @ApiModelProperty(value = "门店id") + @TableField("shop_id") + private Integer shopId; + @ApiModelProperty(value = "门店名称") + @TableField(exist = false) + @Excel(name = "门店名称") + private String shopName; + + @ApiModelProperty(value = "店长姓名") + @TableField(exist = false) + @Excel(name = "店长姓名") + private String shopLeaderName; + @ApiModelProperty(value = "联系电话") + @TableField(exist = false) + @Excel(name = "联系电话") + private String phone; + @ApiModelProperty(value = "变动类型(1=门店业绩,2=门店返佣,3=下级门店返佣)") + @TableField("type") + @Excel(name = "变动类型", readConverterExp = "1=门店服务返佣,2=门店返佣,3=下级门店返佣") + private Integer type; + @ApiModelProperty(value = "变动时间") + @TableField("create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "变动时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "历史余额") + @TableField("historical_point") + private Integer historicalPoint; + + @ApiModelProperty(value = "变动金额") + @TableField("variable_point") + @Excel(name = "变动金额") + private Integer variablePoint; + + @ApiModelProperty(value = "变动后余额") + @TableField("balance") + private Integer balance; + + + + @ApiModelProperty(value = "变动用户id") + @TableField("create_user_id") + private Long createUserId; + + @ApiModelProperty(value = "关联对象id") + @TableField("object_id") + private Long objectId; + + @ApiModelProperty(value = "订单号") + @TableField("order_num") + private String orderNum; + + + + + + + + @TableField(exist = false) + private List<Integer> shopIds; + + @ApiModelProperty(value = "开始时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty(value = "结束时间") + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + + @TableField(exist = false) + private List<Long> userIds; + @TableField(exist = false) + private Integer pageNum; + @TableField(exist = false) + private Integer pageSize; + + +} 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 d06d0ab..c63f046 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 @@ -2,6 +2,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.domain.ShopBalanceStatementCopy; import com.ruoyi.other.api.feignClient.SeckillActivityInfoClient; import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient; import org.springframework.cloud.openfeign.FallbackFactory; @@ -25,6 +26,16 @@ } @Override + public void saveShopBalanceStatement(ShopBalanceStatementCopy shopBalanceStatement) { + R.fail("保存门店余额流水失败:" + cause.getMessage()); + } + + @Override + public R<Boolean> deleteShopBalanceStatementCopy(Long orderId) { + 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/ShopPointClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopPointClientFallbackFactory.java index 76f91a9..1bfbfa9 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 @@ -2,6 +2,7 @@ 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.feignClient.ShopPointClient; import org.springframework.cloud.openfeign.FallbackFactory; @@ -18,6 +19,16 @@ public void saveShopPoint(ShopPoint shopPoint) { R.fail("保存门店积分流水失败:" + cause.getMessage()); } + + @Override + public void saveShopPoint(ShopPointCopy shopPoint) { + R.fail("保存门店积分流水失败:" + cause.getMessage()); + } + + @Override + public void deleteShopPointCopy(Long orderId) { + + } }; } } 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 fa69c94..7701cb7 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 @@ -3,8 +3,10 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.domain.ShopBalanceStatementCopy; import com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -28,6 +30,12 @@ @PostMapping("/shop-balance-statement/saveShopBalanceStatement") void saveShopBalanceStatement(@RequestBody ShopBalanceStatement shopBalanceStatement); + @PostMapping("/shop-balance-statement/saveShopBalanceStatementCopy") + void saveShopBalanceStatement(@RequestBody ShopBalanceStatementCopy shopBalanceStatement); + + @DeleteMapping("/shop-balance-statement/deleteShopBalanceStatementCopy") + R<Boolean> deleteShopBalanceStatementCopy(@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 5b8488c..8f5d98f 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 @@ -2,10 +2,13 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.other.api.domain.ShopPoint; +import com.ruoyi.other.api.domain.ShopPointCopy; import com.ruoyi.other.api.factory.ShopPointClientFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; /** * @author zhibing.pu @@ -14,13 +17,16 @@ @FeignClient(contextId = "ShopPointClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopPointClientFallbackFactory.class) public interface ShopPointClient { - - - /** * 保存门店积分流水 * @param shopPoint */ @PostMapping("/shop-point/saveShopPoint") void saveShopPoint(@RequestBody ShopPoint shopPoint); + + @PostMapping("/shop-point/saveShopPointCopy") + void saveShopPoint(@RequestBody ShopPointCopy shopPoint); + + @DeleteMapping("/shop-point/deleteShopPointCopy") + void deleteShopPointCopy(@RequestParam("orderId") Long orderId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/BalanceChangeRecordCopyMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysRoleMapper.xml rename to ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/BalanceChangeRecordCopyMapper.xml diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index 05a8184..df64f87 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -297,6 +297,7 @@ .findFirst() .ifPresent(superiors -> { user.setTeacher(superiors.getName()); + user.setTeacherPhone(superiors.getPhone()); }); 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 new file mode 100644 index 0000000..e99dffe --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordCopyController.java @@ -0,0 +1,35 @@ +package com.ruoyi.account.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.account.api.model.BalanceChangeRecord; +import com.ruoyi.account.api.model.BalanceChangeRecordCopy; +import com.ruoyi.account.service.BalanceChangeRecordCopyService; +import com.ruoyi.common.core.domain.R; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/balanceChangeRecordCopy") +public class BalanceChangeRecordCopyController { + @Resource + private BalanceChangeRecordCopyService balanceChangeRecordCopyService; + + /** + * 保存账户流水记录 + * + * @return + */ + @PostMapping("/saveBalanceChangeRecordCopy") + public R saveBalanceChangeRecordCopy(@RequestBody BalanceChangeRecordCopy balanceChangeRecordCopy) { + balanceChangeRecordCopyService.save(balanceChangeRecordCopy); + return R.ok(); + } + + @DeleteMapping("/deleteBalanceChangeRecord") + public R deleteBalanceChangeRecord(@RequestParam Long orderId) { + balanceChangeRecordCopyService.remove(new LambdaQueryWrapper<BalanceChangeRecordCopy>() + .eq(BalanceChangeRecordCopy::getOrderId, orderId)); + return R.ok(); + } +} 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 491ed1a..466c116 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 @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.model.UserPoint; +import com.ruoyi.account.api.model.UserPointCopy; +import com.ruoyi.account.mapper.UserPointCopyMapper; import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.UserPointService; import com.ruoyi.account.vo.TransferPoint; @@ -49,6 +51,8 @@ public class UserPointController extends BaseController { @Resource private UserPointService userPointService; + @Resource + private UserPointCopyMapper userPointCopyMapper; @Resource private AppUserService appUserService; @Resource @@ -113,6 +117,19 @@ return R.ok(); } + @PostMapping("/saveUserPointCopy") + public R saveUserPointCopy(@RequestBody UserPointCopy userPointCopy) { + userPointCopyMapper.insert(userPointCopy); + return R.ok(); + } + + @DeleteMapping("/deleteUserPointCopy") + public R deleteUserPointCopy(@RequestParam Long orderId) { + userPointCopyMapper.delete(new LambdaQueryWrapper<UserPointCopy>() + .eq(UserPointCopy::getObjectId, orderId)); + return R.ok(); + } + /** * 积分统计 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 e35bdb6..b5aa88c 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.api.model.BalancePayment; import com.ruoyi.account.service.*; import com.ruoyi.account.util.payment.PaymentUtil; @@ -47,6 +48,8 @@ @Resource private BalanceChangeRecordService balanceChangeRecordService; @Resource + private BalanceChangeRecordCopyService balanceChangeRecordCopyService; + @Resource private TokenService tokenService; @Resource private WalletService walletService; @@ -83,7 +86,7 @@ */ @ApiOperation(value = "变更明细", notes = "变更明细") @GetMapping("change") - public R<IPage<BalanceChangeRecord>> change(@ApiParam(value = "变更类型") + public R<IPage<BalanceChangeRecordCopy>> change(@ApiParam(value = "变更类型") @RequestParam(required = false) Integer changeType, Integer pageCurr, Integer pageSize, @@ -107,14 +110,14 @@ endTime = lastDayOfMonth.atTime(LocalTime.MAX); } - Page<BalanceChangeRecord> page = balanceChangeRecordService.page(Page.of(pageCurr, pageSize), new LambdaQueryWrapper<BalanceChangeRecord>() - .eq(changeType != null, BalanceChangeRecord::getChangeType, changeType) - .between(startTime != null, BalanceChangeRecord::getCreateTime, startTime, endTime) - .eq(BalanceChangeRecord::getAppUserId, userId).orderByDesc(BalanceChangeRecord::getCreateTime)); + 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<BalanceChangeRecord> list = page.getRecords(); + List<BalanceChangeRecordCopy> list = page.getRecords(); - List<Long> orderIds = list.stream().map(BalanceChangeRecord::getOrderId).collect(Collectors.toList()); + 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)){ diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordCopyMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordCopyMapper.java new file mode 100644 index 0000000..d7c56ff --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordCopyMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.account.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.account.api.model.BalanceChangeRecordCopy; + +public interface BalanceChangeRecordCopyMapper extends BaseMapper<BalanceChangeRecordCopy> { +} 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 new file mode 100644 index 0000000..96bbc31 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/UserPointCopyMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.account.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.account.api.model.UserPointCopy; + +public interface UserPointCopyMapper extends BaseMapper<UserPointCopy> { +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordCopyService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordCopyService.java new file mode 100644 index 0000000..f0d888a --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/BalanceChangeRecordCopyService.java @@ -0,0 +1,8 @@ +package com.ruoyi.account.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.account.api.model.BalanceChangeRecordCopy; + +public interface BalanceChangeRecordCopyService extends IService<BalanceChangeRecordCopy> { + +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordCopyServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordCopyServiceImpl.java new file mode 100644 index 0000000..1f07574 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordCopyServiceImpl.java @@ -0,0 +1,11 @@ +package com.ruoyi.account.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.account.api.model.BalanceChangeRecordCopy; +import com.ruoyi.account.mapper.BalanceChangeRecordCopyMapper; +import com.ruoyi.account.service.BalanceChangeRecordCopyService; +import org.springframework.stereotype.Service; + +@Service +public class BalanceChangeRecordCopyServiceImpl extends ServiceImpl<BalanceChangeRecordCopyMapper, BalanceChangeRecordCopy> implements BalanceChangeRecordCopyService { +} 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 6a314ce..7bc49cc 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 @@ -4,12 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; -import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; 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.mapper.UserPointCopyMapper; import com.ruoyi.account.mapper.UserPointMapper; import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.PointSettingService; @@ -19,27 +20,29 @@ import com.ruoyi.account.vo.UserPointStatistics; import com.ruoyi.account.vo.UserPointVO; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.PhoneNumberValidator; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.feignClient.OrderClient; import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; +import com.ruoyi.order.model.Order; import com.ruoyi.order.model.OrderGood; -import com.ruoyi.other.api.domain.PointSetting; import com.ruoyi.other.api.domain.VipSetting; import com.ruoyi.other.api.enums.PointChangeType; import com.ruoyi.system.api.model.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.Collections; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -60,11 +63,9 @@ @Resource private VipSettingService vipSettingService; @Resource - private PointSettingService pointSettingService; + private UserPointCopyMapper userPointCopyMapper; @Resource private UserPointService userPointService; - @Resource - private RemoteOrderGoodsClient remoteOrderGoodsClient; @@ -74,17 +75,16 @@ AppUser appUser = appUserService.getById(userId); VipSetting vipSetting = vipSettingService.getVipSettingByUserId(userId); - UserPointVO userPointVO = new UserPointVO(); - // todo bug说取剩余积分 + List<UserPointCopy> userPointCopies = userPointCopyMapper.selectList(new LambdaQueryWrapper<UserPointCopy>() + .eq(UserPointCopy::getAppUserId, userId) + .eq(UserPointCopy::getType, 2)); - R<List<OrderGood>> unDistributedOrder = remoteOrderGoodsClient.getUnDistributedOrder(userId); - List<OrderGood> unDistributedOrderList = unDistributedOrder.getData(); - Integer totalPoint = unDistributedOrderList.stream() - .mapToInt(OrderGood::getSuperiorRebatePoints) + Integer totalPoint = userPointCopies.stream() + .mapToInt(UserPointCopy::getVariablePoint) .sum(); - - userPointVO.setTotalPoint(appUser.getLavePoint()+totalPoint); + UserPointVO userPointVO = new UserPointVO(); + userPointVO.setTotalPoint(totalPoint); userPointVO.setConsumePoint(appUser.getAvailablePoint()); userPointVO.setShopPoint(appUser.getShopPoint()); userPointVO.setSharePoint(appUser.getSharePoint()); @@ -95,10 +95,12 @@ return userPointVO; } + + @Override public PageInfo<UserPointDetailVO> getUserPointDetail(Long userId, LocalDateTime startTime, LocalDateTime endTime, Integer type, Integer pageCurr, Integer pageSize) { - PageInfo<UserPoint> pageInfo = new PageInfo<>(pageCurr, pageSize); - PageInfo<UserPoint> page = this.page(pageInfo, new QueryWrapper<UserPoint>() + 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")); 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 ca9e4de..bdcf3dd 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 @@ -1,19 +1,17 @@ package com.ruoyi.account.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ruoyi.order.feignClient.OrderClient; -import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; -import com.ruoyi.order.model.Order; -import com.ruoyi.order.model.OrderGood; -import com.ruoyi.other.api.enums.WithdrawalAuditStatus; import com.ruoyi.account.api.model.AppUser; +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.vo.WalletVO; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.VipSetting; +import com.ruoyi.other.api.enums.WithdrawalAuditStatus; import com.ruoyi.other.api.feignClient.RemoteVipSettingClient; import org.springframework.stereotype.Service; @@ -30,7 +28,8 @@ @Resource private WithdrawalRequestsService withdrawalRequestsService; @Resource - private RemoteOrderGoodsClient remoteOrderGoodsClient; + private BalanceChangeRecordCopyService balanceChangeRecordCopyService; + @Override public WalletVO getWalletByUserId(Long userId) { @@ -45,21 +44,25 @@ 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<WithdrawalRequests> waitAuditList = withdrawalRequestsService.list(new LambdaQueryWrapper<WithdrawalRequests>() .eq(WithdrawalRequests::getAppUserId, userId) .eq(WithdrawalRequests::getAuditStatus, WithdrawalAuditStatus.WAIT_AUDIT.getCode())); BigDecimal reduce = waitAuditList.stream().map(WithdrawalRequests::getWithdrawalAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + + WalletVO walletVO = new WalletVO(); - - - R<List<OrderGood>> unDistributedOrder = remoteOrderGoodsClient.getUnDistributedOrder(userId); - List<OrderGood> unDistributedOrderList = unDistributedOrder.getData(); - BigDecimal commissionAmount = unDistributedOrderList.stream() - .map(OrderGood::getSuperiorSubcommission) - .reduce(BigDecimal.ZERO, BigDecimal::add); - - walletVO.setCommissionAmount(appUser.getTotalDistributionAmount().add(commissionAmount)); + BigDecimal balance = appUser.getBalance(); + walletVO.setCommissionAmount(commissionAmount); walletVO.setWithdrawalAmount(appUser.getWithdrawableAmount()); walletVO.setWithdrawnAmount(appUser.getWithdrawnAmount().subtract(reduce)); walletVO.setVipWithdrawalMinAmount(data.getVipWithdrawalMinAmount()); @@ -67,8 +70,10 @@ walletVO.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount()); walletVO.setTotalDistributionAmount(appUser.getTotalDistributionAmount()); walletVO.setAuditAmount(reduce); - walletVO.setBalance(appUser.getBalance()); + walletVO.setBalance(balance); return walletVO; } + + } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java index b208c39..5de2f61 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java @@ -9,6 +9,7 @@ import com.ruoyi.account.api.feignClient.UserAddressClient; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.UserAddress; +import com.ruoyi.common.core.constant.ExpressCompanyMap; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; @@ -564,7 +565,7 @@ if (StringUtils.isNotEmpty(expressJson) && !expressJson.equals("NULL")) { JSONObject jsonObject = JSONObject.parseObject(expressJson); orderExport.setExpressNum(jsonObject.getString("num")); - orderExport.setExpressName(jsonObject.getString("com")); + orderExport.setExpressName(ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com"))); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderGoodController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderGoodController.java index 31880fc..a75d800 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderGoodController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderGoodController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -51,11 +52,14 @@ * 获取指定用户未分销的订单 */ @PostMapping("/getUnDistributedOrder") - public R<List<OrderGood>> getUnDistributedOrder(Long appUserId) { + public R<List<OrderGood>> getUnDistributedOrder(@RequestBody List<Long> appUserIds) { List<Order> list = orderService.list(new LambdaQueryWrapper<Order>() - .eq(Order::getAppUserId, appUserId) + .in(Order::getAppUserId, appUserIds) .eq(Order::getIsCommission, 0) .eq(Order::getDelFlag, 0)); + if(list.isEmpty()){ + return R.ok(new ArrayList<>()); + } List<Long> orderIds = list.stream().map(Order::getId).collect(Collectors.toList()); List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>() 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 b1ae674..09e90d3 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 @@ -1,5 +1,7 @@ package com.ruoyi.order.service; +import com.ruoyi.order.model.Order; + import java.time.LocalDateTime; import java.util.List; import java.util.Set; @@ -9,5 +11,5 @@ // 计算佣金 void calculationCommission(); - + 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 86acfe2..88e630a 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,12 +1,8 @@ package com.ruoyi.order.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ruoyi.account.api.feignClient.AppUserClient; -import com.ruoyi.account.api.feignClient.BalanceChangeRecordClient; -import com.ruoyi.account.api.feignClient.UserPointClient; -import com.ruoyi.account.api.model.AppUser; -import com.ruoyi.account.api.model.BalanceChangeRecord; -import com.ruoyi.account.api.model.UserPoint; +import com.ruoyi.account.api.feignClient.*; +import com.ruoyi.account.api.model.*; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.order.service.CommissionService; @@ -16,6 +12,7 @@ import com.ruoyi.other.api.feignClient.*; import com.ruoyi.order.model.Order; import com.ruoyi.order.model.OrderGood; +import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,6 +27,7 @@ import java.util.stream.Collectors; @Service +@Slf4j public class CommissionServiceImpl implements CommissionService { @Resource private OrderService orderService; @@ -63,7 +61,7 @@ if(collect.size() == 0){ return; } - + for (Order order : list) { List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>() .eq(OrderGood::getOrderId, order.getId())); @@ -124,7 +122,7 @@ } } } - + //核销门店获取服务费 hxmd_price = hxmd_price.add(orderGood.getServuceShopCharges()); //核销门店可获得积分 @@ -259,7 +257,7 @@ appUserClient.vipUpgrade(superiorLeader.getId()); } } - + //核销门店 Shop shop = shopClient.getShopById(order.getShopId()).getData(); AppUser shopAppUser = appUserClient.getAppUserById(shop.getAppUserId()); @@ -325,7 +323,7 @@ //变更等级 appUserClient.vipUpgrade(shopAppUser.getId()); } - + if(!shop.getLavePoint().equals(shopLavePoint)){ ShopPoint shopPoint = new ShopPoint(); shopPoint.setShopId(shop.getId()); @@ -340,7 +338,7 @@ shopPointClient.saveShopPoint(shopPoint); } } - + //技师服务积分 if(order.getOrderType() == 1){ Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData(); @@ -381,10 +379,10 @@ appUserClient.vipUpgrade(technicianAppUser.getId()); } } - + } } - + //服务商分佣 Shop shop1 = shopClient.getServiceProvider(appUser.getId()).getData(); if(null != shop1){ @@ -451,7 +449,7 @@ //变更等级 appUserClient.vipUpgrade(bdShopAppUser.getId()); } - + if(!shop1.getLavePoint().equals(shopLavePoint)){ ShopPoint shopPoint = new ShopPoint(); shopPoint.setShopId(shop1.getId()); @@ -467,7 +465,7 @@ } } } - + //高级服务商 Shop shop2 = shopClient.getSuperiorServiceProvider(order.getAppUserId()).getData(); if(null != shop2){ @@ -555,4 +553,306 @@ 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 8c6d072..c9bc85a 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 @@ -117,6 +117,9 @@ private ShopBalanceStatementClient shopBalanceStatementClient; @Resource + private ShopPointClient shopPointClient; + + @Resource private RedisTemplate redisTemplate; @Resource @@ -439,6 +442,20 @@ if (200 == r.getCode()) { this.updateById(order); } + + R r1 = balanceChangeRecordClient.deleteBalanceChangeRecord(orderId); + if (200 != r1.getCode()) { // 项目没有分布式事务,此处报错可能会导致数据不一致 + throw new RuntimeException("订单取消失败"); + } + R r2 = userPointClient.deleteUserPointCopy(orderId); + if (200 != r2.getCode()) { // 项目没有分布式事务,此处报错可能会导致数据不一致 + throw new RuntimeException("订单取消失败"); + } + R<Boolean> r3 = shopBalanceStatementClient.deleteShopBalanceStatementCopy(orderId); + if (200 != r3.getCode()) { // 项目没有分布式事务,此处报错可能会导致数据不一致 + throw new RuntimeException("订单取消失败"); + } + shopPointClient.deleteShopPointCopy(orderId); 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 efbe37e..78427d1 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 @@ -1431,9 +1431,19 @@ orderBalancePayment.setDistributionAmount(distributionAmount); orderBalancePaymentService.save(orderBalancePayment); } + + commissionService.calculationCommissionCopy(order); return R.ok(order.getId().toString()); } + + + + + + + + public String getNumber(Integer size){ String str = ""; diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java index 3405fa0..bf204f3 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java @@ -11,19 +11,19 @@ /** * 订单状态 */ - @Excel(name = "订单状态") - private String status; + @Excel(name = "订单状态" , readConverterExp = "1=待发货,2=待收货,3=待使用,4=已完成,5=已取消,6=已退款,7=售后中,8=已评价") + private String orderStatus; /** * 订单编号 */ @Excel(name = "订单编号") - private String code; + private String orderNumber; /** * 订单类型 */ - @Excel(name = "订单类型") + @Excel(name = "订单类型", readConverterExp = "1=服务,2=单品") private String orderType; /** @@ -56,7 +56,7 @@ * 商品售价 */ @Excel(name = "商品售价") - private BigDecimal goodsPrice; + private BigDecimal sellingPrice; /** * 成本价 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 fd9ef5e..c4c7fed 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 @@ -10,7 +10,9 @@ import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.Shop; import com.ruoyi.other.api.domain.ShopBalanceStatement; +import com.ruoyi.other.api.domain.ShopBalanceStatementCopy; import com.ruoyi.other.dto.ShopBalanceDto; +import com.ruoyi.other.mapper.ShopBalanceStatementCopyMapper; import com.ruoyi.other.mapper.ShopBalanceStatementMapper; import com.ruoyi.other.service.ShopBalanceStatementService; import com.ruoyi.other.service.ShopService; @@ -53,6 +55,8 @@ private ShopService shopService; @Resource private SysUserClient sysUserClient; + @Resource + private ShopBalanceStatementCopyMapper shopBalanceStatementCopyMapper; @@ -201,6 +205,18 @@ shopBalanceStatementService.save(shopBalanceStatement); } + @PostMapping("/saveShopBalanceStatementCopy") + public void saveShopBalanceStatementCopy(@RequestBody ShopBalanceStatementCopy shopBalanceStatementCopy){ + shopBalanceStatementCopyMapper.insert(shopBalanceStatementCopy); + } + + @DeleteMapping("/deleteShopBalanceStatementCopy") + public R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId){ + shopBalanceStatementCopyMapper.delete(new LambdaQueryWrapper<ShopBalanceStatementCopy>() + .eq(ShopBalanceStatementCopy::getObjectId, orderId)); + return R.ok(); + } + /** * 获取门店流水数据 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 5e66135..84be6c3 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 @@ -1,12 +1,15 @@ package com.ruoyi.other.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.ShopPoint; +import com.ruoyi.other.api.domain.ShopPointCopy; +import com.ruoyi.other.mapper.ShopPointCopyMapper; import com.ruoyi.other.service.ShopPointService; import com.ruoyi.other.vo.ShopPointStatistics; import com.ruoyi.system.api.domain.SysUser; @@ -32,6 +35,8 @@ public class ShopPointController { @Resource private ShopPointService shopPointService; + @Resource + private ShopPointCopyMapper shopPointCopyMapper; @Resource private TokenService tokenService; @Resource @@ -105,5 +110,20 @@ shopPointService.save(shopPoint); } + /** + * 保存门店积分流水 + * @param shopPoint + */ + @PostMapping("/saveShopPointCopy") + public void saveShopPointCopy(@RequestBody ShopPointCopy shopPoint){ + shopPointCopyMapper.insert(shopPoint); + } + + @DeleteMapping("/shop-point/deleteShopPointCopy") + public void deleteShopPointCopy(@RequestParam("orderId") Long orderId){ + shopPointCopyMapper.delete(new LambdaQueryWrapper<ShopPointCopy>() + .eq(ShopPointCopy::getObjectId, orderId)); + } + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementCopyMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementCopyMapper.java new file mode 100644 index 0000000..18a0b28 --- /dev/null +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementCopyMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.other.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.other.api.domain.ShopBalanceStatementCopy; + +/** + * <p> + * Mapper 接口 + * </p> + * + * @author luodangjia + * @since 2024-11-20 + */ +public interface ShopBalanceStatementCopyMapper extends BaseMapper<ShopBalanceStatementCopy> { + + +} diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointCopyMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointCopyMapper.java new file mode 100644 index 0000000..bd7ff0d --- /dev/null +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopPointCopyMapper.java @@ -0,0 +1,7 @@ +package com.ruoyi.other.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.other.api.domain.ShopPointCopy; + +public interface ShopPointCopyMapper extends BaseMapper<ShopPointCopy> { +} -- Gitblit v1.7.1