diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerBalanceController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerBalanceController.java index f941226c..836c8030 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerBalanceController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/CustomerBalanceController.java @@ -25,6 +25,21 @@ public class CustomerBalanceController { @Resource private CustomerBalanceService customerBalanceService; + /** + * 支付完成回调 + * @author PQZ + * @date 21:42 2024/9/23 + * @param createReqVO CustomerBalanceSaveReqVO + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @PostMapping("/saveBalance") + @Operation(summary = "创建用户积分(余额)") + @PreAuthorize("@ss.hasPermission('base:customer-balance:create')") + public CommonResult saveBalance(@RequestBody CustomerBalanceSaveReqVO createReqVO) { + customerBalanceService.saveBalance(createReqVO.getCusId(),createReqVO.getOrderId(),createReqVO.getActiveId()); + return success(true); + } + @PostMapping("/create") @Operation(summary = "创建用户积分(余额)") @PreAuthorize("@ss.hasPermission('base:customer-balance:create')") @@ -40,4 +55,6 @@ public class CustomerBalanceController { return success(true); } + + } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerActiveServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerActiveServiceImpl.java index 09e9c827..1b317fb5 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerActiveServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerActiveServiceImpl.java @@ -19,6 +19,7 @@ import cn.iocoder.yudao.module.member.vo.ActiveMainRespVO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mzt.logapi.service.IFunctionService; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -57,6 +58,7 @@ public class CustomerActiveServiceImpl extends ServiceImpl ruleList) { + CustomerBalance result = new CustomerBalance(); + result.setCusId(customer.getId()); + result.setUserId(customer.getUserId()); + BigDecimal nowChange = amount; + if (null != ruleList && !ruleList.isEmpty()) { + List sortList = ruleList.stream().sorted(Comparator.comparing(ActiveRule::getRechAmount).reversed()).collect(Collectors.toList()); + for (ActiveRule item : sortList) { + //如果规则匹配 + if (amount.compareTo(item.getRechAmount()) >= 0) { + nowChange = amount.add(item.getGiveAmount()); + break; + } + } + } + //余额 + result.setBalance(customer.getBalance().add(nowChange)); + //累计充值金额 + result.setAllBalance(customer.getBalance().add(nowChange)); + //本次变动金额 + result.setNowChange(nowChange); + return result; } @Override @@ -73,7 +141,7 @@ public class CustomerBalanceServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(CustomerBalance::getCusId,balance.getCusId()).eq(BaseDO::getDeleted,'0'); + lambdaQueryWrapper.eq(CustomerBalance::getCusId, balance.getCusId()).eq(BaseDO::getDeleted, '0'); remove(lambdaQueryWrapper); this.save(balance); } diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CustomerBalanceSaveReqVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CustomerBalanceSaveReqVO.java index 96e7e648..96d5c9b9 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CustomerBalanceSaveReqVO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/vo/CustomerBalanceSaveReqVO.java @@ -10,6 +10,7 @@ import java.math.BigDecimal; @Schema(description = "管理后台 - 用户积分(余额)新增/修改 Request VO") @Data public class CustomerBalanceSaveReqVO extends CustomerBalance { - + private String activeId; + private String orderId; } \ No newline at end of file diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java index 1b7974bd..e2c8aca0 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/order/entity/RepairOrderInfo.java @@ -75,11 +75,11 @@ public class RepairOrderInfo extends TenantBaseDO { /** * 会员优惠金额 */ - private Long reduceMoney; + private BigDecimal reduceMoney; /** * 使用会员储值卡的金额 */ - private Long balance; + private BigDecimal balance; /** * 支付时间 */ @@ -152,6 +152,10 @@ public class RepairOrderInfo extends TenantBaseDO { * 创建人所在部门 */ private Integer deptId; + /** + * 创建人所在部门 + */ + private String tenantName; } \ No newline at end of file