From 1d578cbf8e2eaccd598c44a9652fb56fbb4c6202 Mon Sep 17 00:00:00 2001 From: wangqx Date: Fri, 27 Jun 2025 15:43:48 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E5=88=86=E8=B4=A6?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=BB=E5=AD=90=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=B8=8E=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/service/MemberRegisterService.java | 3 + .../controller/DivideController.java | 9 +- .../controller/DivideRuleController.java | 4 +- .../soopin/transation/domain/bo/DivideBO.java | 10 +++ .../transation/domain/bo/DivideDetailBO.java | 15 ++-- .../transation/domain/bo/DivideRuleBO.java | 4 + .../domain/bo/DivideRuleDetailBO.java | 8 +- .../soopin/transation/domain/po/Divide.java | 2 +- .../transation/domain/po/DivideRule.java | 2 + .../domain/po/DivideRuleDetail.java | 14 +-- .../soopin/transation/domain/vo/ChargeVO.java | 3 +- .../transation/domain/vo/DivideDetailVO.java | 10 +-- .../domain/vo/DivideRuleDetailVO.java | 12 +-- .../transation/domain/vo/DivideRuleVO.java | 17 +++- .../soopin/transation/domain/vo/DivideVO.java | 8 +- .../transation/domain/vo/WithdrawVO.java | 3 +- .../transation/enums/DivideRuleStatus.java | 30 +++++++ .../soopin/transation/enums/DivideStatus.java | 23 +++++ .../transation/mapper/DivideDetailMapper.java | 4 +- .../transation/mapper/DivideMapper.java | 2 + .../mapper/DivideRuleDetailMapper.java | 5 +- .../service/IDivideRuleService.java | 7 ++ .../transation/service/IDivideService.java | 5 ++ .../service/impl/DivideRuleServiceImpl.java | 85 +++++++++++++++++++ .../service/impl/DivideServiceImpl.java | 80 +++++++++++++++++ .../resources/mapper/trans/DivideMapper.xml | 28 ++++++ 26 files changed, 342 insertions(+), 51 deletions(-) create mode 100644 ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideRuleStatus.java create mode 100644 ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideStatus.java create mode 100644 ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/trans/DivideMapper.xml diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/MemberRegisterService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/MemberRegisterService.java index 7ff750f7f..0ddba7225 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/MemberRegisterService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/MemberRegisterService.java @@ -57,6 +57,9 @@ public class MemberRegisterService { boolean exist = memberService.exists(new LambdaQueryWrapper() .eq(Member::getPhoneEncrypted, phoneNumber)); if (exist) { + + + throw new UserException("user.register.save.error", username); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideController.java index e202de89b..744a9e8eb 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideController.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideController.java @@ -3,9 +3,11 @@ package com.wzj.soopin.transation.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.transation.convert.DivideConvert; +import com.wzj.soopin.transation.convert.DivideDetailConvert; import com.wzj.soopin.transation.domain.bo.DivideBO; import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transation.domain.vo.DivideVO; +import com.wzj.soopin.transation.service.IDivideDetailService; import com.wzj.soopin.transation.service.IDivideService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -26,6 +28,7 @@ public class DivideController { private final IDivideService service; private final DivideConvert convert; + @Tag(name = "查询列表") @PostMapping("/list") public R> list(@RequestBody DivideBO bo, @RequestBody Page page) { @@ -37,20 +40,20 @@ public class DivideController { @Log(title = "新增 ", businessType = BusinessType.INSERT) @PostMapping("/add") public R add(@RequestBody DivideBO bo) { - return R.ok(service.save(convert.toPo(bo))); + return R.ok(service.save(bo)); } @Tag(name = "详情") @GetMapping(value = "/{id}") public R getInfo(@PathVariable("id") Long id) { - return R.ok(convert.toVO(service.getById(id))); + return R.ok(service.getVOById(id)); } @Tag(name = ("回调更新")) @Log(title = "回调更新", businessType = BusinessType.UPDATE) @PostMapping("/callback") public R callback(@RequestBody DivideBO bo) { - service.save(convert.toPo(bo)); + service.updateById(convert.toPo(bo)); return R.ok(); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideRuleController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideRuleController.java index 30e10a537..6fdae92cb 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideRuleController.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/controller/DivideRuleController.java @@ -42,13 +42,13 @@ public class DivideRuleController { @Log(title = "新增 ", businessType = BusinessType.INSERT) @PostMapping("/add") public R add(@RequestBody DivideRuleBO bo) { - return R.ok(service.save(convert.toPo(bo))); + return R.ok(service.save(bo)); } @Tag(name = "详情") @GetMapping(value = "/{id}") public R getInfo(@PathVariable("id") Long id) { - return R.ok(convert.toVO(service.getById(id))); + return R.ok(service.getVOById(id)); } @Tag(name = ("修改")) diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideBO.java index c7343fc05..0552f503a 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideBO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideBO.java @@ -8,6 +8,8 @@ import lombok.Data; import org.dromara.common.core.domain.BaseBO; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; /** * 订单分账 @@ -79,5 +81,13 @@ public class DivideBO extends BaseBO { @ExcelProperty(value = "订单编号", order = 9) private String orderSn; + /** + * 分账规则明细 + */ + + @Schema(description = "分账规则明细") + @ExcelProperty(value = "分账规则明细", order = 10) + private List details=new ArrayList<>(); + } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideDetailBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideDetailBO.java index cc8afa143..873f28bfa 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideDetailBO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideDetailBO.java @@ -26,6 +26,14 @@ public class DivideDetailBO extends BaseBO { @ExcelProperty(value = "主键", order = 1) private Long id; + + /** + * 分账id + */ + @Schema(description = "分账id") + @ExcelProperty(value = "分账id", order = 2) + private Long divideId; + /** * 分账规则id */ @@ -72,12 +80,7 @@ public class DivideDetailBO extends BaseBO { * */ private Integer type; - /** - * 状态 - */ - @Schema(description = "状态") - @ExcelProperty(value = "状态", order = 5) - private Integer status; + @Schema(description = "账户id") @ExcelProperty(value = "账户id", order = 6) diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleBO.java index b2e292a2b..49252070d 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleBO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleBO.java @@ -7,6 +7,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; +import java.util.ArrayList; +import java.util.List; + /** * 分账规则 * @@ -58,5 +61,6 @@ public class DivideRuleBO extends BaseBO { @ExcelProperty(value ="类型", order = 8) private Integer type; + private List details=new ArrayList<>(); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleDetailBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleDetailBO.java index eb67b0b85..5da131807 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleDetailBO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/bo/DivideRuleDetailBO.java @@ -32,7 +32,7 @@ public class DivideRuleDetailBO extends BaseBO { @Schema(description ="分账规则id") @ExcelProperty(value = "分账规则id", order = 2) - private Long divideId; + private Long ruleId; @Schema(description ="金额分配比例") @@ -43,12 +43,6 @@ public class DivideRuleDetailBO extends BaseBO { @ExcelProperty(value ="手续费分配比例", order = 5) private BigDecimal feePercent; - /** - * 状态 - */ - @Schema(description ="状态") - @ExcelProperty(value ="状态", order = 7) - private Integer status; /** * 类型 */ diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/Divide.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/Divide.java index d06464a66..d26702e8a 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/Divide.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/Divide.java @@ -18,7 +18,7 @@ import java.math.BigDecimal; */ @Schema(description = "订单分账") @Data -@TableName("oms_aftersale") +@TableName("trans_divide") public class Divide extends BaseEntity { /** diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRule.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRule.java index be5700576..3db5531b1 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRule.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRule.java @@ -3,6 +3,7 @@ package com.wzj.soopin.transation.domain.po; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -15,6 +16,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; */ @Schema(description="分账规则") @Data +@TableName("trans_divide_rule") public class DivideRule extends BaseEntity { /** diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRuleDetail.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRuleDetail.java index 2531fa209..fd1da31b1 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRuleDetail.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/po/DivideRuleDetail.java @@ -3,6 +3,7 @@ package com.wzj.soopin.transation.domain.po; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -17,6 +18,7 @@ import java.math.BigDecimal; */ @Schema(description="分账规则明细") @Data +@TableName("trans_divide_rule_detail") public class DivideRuleDetail extends BaseEntity { /** @@ -27,13 +29,11 @@ public class DivideRuleDetail extends BaseEntity { @TableId private Long id; - /** - * 提现码 - */ + @Schema(description ="分账规则id") @ExcelProperty(value = "分账规则id", order = 2) - private Long divideId; + private Long ruleId; @Schema(description ="金额分配比例") @@ -44,12 +44,6 @@ public class DivideRuleDetail extends BaseEntity { @ExcelProperty(value ="手续费分配比例", order = 5) private BigDecimal feePercent; - /** - * 状态 - */ - @Schema(description ="状态") - @ExcelProperty(value ="状态", order = 7) - private Integer status; /** * 类型 */ diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/ChargeVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/ChargeVO.java index 0ce4197e2..e7a6504a4 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/ChargeVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/ChargeVO.java @@ -7,6 +7,7 @@ import com.wzj.soopin.member.domain.vo.MemberVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -19,7 +20,7 @@ import java.time.LocalDateTime; */ @Schema(description="充值") @Data -public class ChargeVO extends BaseAudit { +public class ChargeVO extends BaseEntity { /** * 主键 diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideDetailVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideDetailVO.java index be35356ba..b75c36cbb 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideDetailVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideDetailVO.java @@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; @@ -16,7 +17,7 @@ import java.math.BigDecimal; */ @Schema(description = "订单分账明细") @Data -public class DivideDetailVO extends BaseAudit { +public class DivideDetailVO extends BaseEntity { /** * 主键 @@ -71,12 +72,7 @@ public class DivideDetailVO extends BaseAudit { * */ private Integer type; - /** - * 状态 - */ - @Schema(description = "状态") - @ExcelProperty(value = "状态", order = 5) - private Integer status; + @Schema(description = "账户id") @ExcelProperty(value = "账户id", order = 6) diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleDetailVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleDetailVO.java index 34f0d7ab5..d19ffc5ec 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleDetailVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleDetailVO.java @@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; @@ -16,7 +17,7 @@ import java.math.BigDecimal; */ @Schema(description="分账规则明细") @Data -public class DivideRuleDetailVO extends BaseAudit { +public class DivideRuleDetailVO extends BaseEntity { /** * 主键 @@ -31,7 +32,7 @@ public class DivideRuleDetailVO extends BaseAudit { @Schema(description ="分账规则id") @ExcelProperty(value = "分账规则id", order = 2) - private Long divideId; + private Long ruleId; @Schema(description ="金额分配比例") @@ -42,12 +43,7 @@ public class DivideRuleDetailVO extends BaseAudit { @ExcelProperty(value ="手续费分配比例", order = 5) private BigDecimal feePercent; - /** - * 状态 - */ - @Schema(description ="状态") - @ExcelProperty(value ="状态", order = 7) - private Integer status; + /** * 类型 */ diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleVO.java index 380286328..b108c5168 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideRuleVO.java @@ -2,9 +2,14 @@ package com.wzj.soopin.transation.domain.vo; import com.alibaba.excel.annotation.ExcelProperty; +import com.wzj.soopin.transation.domain.bo.DivideRuleDetailBO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.util.ArrayList; +import java.util.List; /** * 分账规则 @@ -14,7 +19,7 @@ import org.dromara.common.core.domain.model.BaseAudit; */ @Schema(description="分账规则") @Data -public class DivideRuleVO extends BaseAudit { +public class DivideRuleVO extends BaseEntity { /** * 主键 @@ -23,6 +28,12 @@ public class DivideRuleVO extends BaseAudit { @ExcelProperty(value = "主键", order = 1) private Long id; + + + @Schema(description ="分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + /** * 提现码 */ @@ -57,5 +68,7 @@ public class DivideRuleVO extends BaseAudit { @ExcelProperty(value ="类型", order = 8) private Integer type; - + @Schema(description = "分账规则明细") + @ExcelProperty(value = "分账规则明细", order = 9) + private List details=new ArrayList<>(); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideVO.java index 3658137e1..01c2ede9e 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/DivideVO.java @@ -5,8 +5,11 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; /** * 订单分账 @@ -16,7 +19,7 @@ import java.math.BigDecimal; */ @Schema(description = "订单分账") @Data -public class DivideVO extends BaseAudit { +public class DivideVO extends BaseEntity { /** * 主键 @@ -32,6 +35,8 @@ public class DivideVO extends BaseAudit { @ExcelProperty(value = "分账规则id", order = 2) private Long ruleId; + private String ruleName; + /** @@ -78,5 +83,6 @@ public class DivideVO extends BaseAudit { @ExcelProperty(value = "订单编号", order = 9) private String orderSn; + private List details; } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/WithdrawVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/WithdrawVO.java index 85f960b51..a5280f550 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/WithdrawVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/domain/vo/WithdrawVO.java @@ -7,6 +7,7 @@ import com.wzj.soopin.member.domain.vo.MemberVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -19,7 +20,7 @@ import java.time.LocalDateTime; */ @Schema(description="提现") @Data -public class WithdrawVO extends BaseAudit { +public class WithdrawVO extends BaseEntity { /** * 主键 diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideRuleStatus.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideRuleStatus.java new file mode 100644 index 000000000..67dfe9e1a --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideRuleStatus.java @@ -0,0 +1,30 @@ +package com.wzj.soopin.transation.enums; + +public enum DivideRuleStatus { + /** + * 启用 + */ + ON(1, "启用"), + /** + * 禁用 + */ + OFF(0, "禁用"); + + private final int code; + private final String message; + + DivideRuleStatus(int code, String message) { + this.code = code; + this.message = message; + } + + + public int getCode() { + return code; + } + public String getMessage() { + return message; + } + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideStatus.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideStatus.java new file mode 100644 index 000000000..07d263e3d --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/enums/DivideStatus.java @@ -0,0 +1,23 @@ +package com.wzj.soopin.transation.enums; + +public enum DivideStatus { + + PENDING(0, "待分账"), + SUCCESS(1, "分账成功"), + FAIL(2, "分账失败"); + private int code; + private String desc; + + DivideStatus(int code, String desc) { + this.code = code; + this.desc = desc; + } + + public int getCode() { + return code; + } + + public String getDesc() { + return desc; + } +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideDetailMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideDetailMapper.java index d566fd9f9..07421c9bc 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideDetailMapper.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideDetailMapper.java @@ -3,12 +3,14 @@ package com.wzj.soopin.transation.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transation.domain.po.DivideDetail; +import com.wzj.soopin.transation.domain.vo.DivideDetailVO; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; /** * 意见反馈Mapper接口 * * @author zcc */ -public interface DivideDetailMapper extends BaseMapper { +public interface DivideDetailMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideMapper.java index 847c37c67..a138de35e 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideMapper.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideMapper.java @@ -2,6 +2,7 @@ package com.wzj.soopin.transation.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wzj.soopin.transation.domain.po.Divide; +import com.wzj.soopin.transation.domain.vo.DivideVO; /** * 意见反馈Mapper接口 @@ -10,4 +11,5 @@ import com.wzj.soopin.transation.domain.po.Divide; */ public interface DivideMapper extends BaseMapper { + DivideVO getVOById( Long divideId); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideRuleDetailMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideRuleDetailMapper.java index 7866e9bbe..db1fae6c0 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideRuleDetailMapper.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/mapper/DivideRuleDetailMapper.java @@ -3,12 +3,15 @@ package com.wzj.soopin.transation.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wzj.soopin.transation.domain.po.DivideRule; import com.wzj.soopin.transation.domain.po.DivideRuleDetail; +import com.wzj.soopin.transation.domain.vo.DivideRuleDetailVO; +import com.wzj.soopin.transation.domain.vo.DivideRuleVO; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; /** * 意见反馈Mapper接口 * * @author zcc */ -public interface DivideRuleDetailMapper extends BaseMapper { +public interface DivideRuleDetailMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideRuleService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideRuleService.java index baaf56a30..9834e837c 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideRuleService.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideRuleService.java @@ -1,9 +1,16 @@ package com.wzj.soopin.transation.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.transation.domain.bo.DivideBO; +import com.wzj.soopin.transation.domain.bo.DivideRuleBO; import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transation.domain.po.DivideRule; +import com.wzj.soopin.transation.domain.vo.DivideRuleVO; +import com.wzj.soopin.transation.domain.vo.DivideVO; public interface IDivideRuleService extends IService { + boolean save( DivideRuleBO bo); + + DivideRuleVO getVOById(Long divideId); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideService.java index acbe7fe34..970ff7d52 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideService.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/IDivideService.java @@ -1,8 +1,13 @@ package com.wzj.soopin.transation.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.transation.domain.bo.DivideBO; import com.wzj.soopin.transation.domain.po.Divide; +import com.wzj.soopin.transation.domain.vo.DivideVO; public interface IDivideService extends IService { + boolean save( DivideBO bo); + + DivideVO getVOById( Long divideId); } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideRuleServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideRuleServiceImpl.java index b7b511253..faf2e4b96 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideRuleServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideRuleServiceImpl.java @@ -1,15 +1,35 @@ package com.wzj.soopin.transation.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.transation.convert.DivideConvert; +import com.wzj.soopin.transation.convert.DivideDetailConvert; +import com.wzj.soopin.transation.convert.DivideRuleConvert; +import com.wzj.soopin.transation.convert.DivideRuleDetailConvert; +import com.wzj.soopin.transation.domain.bo.DivideBO; +import com.wzj.soopin.transation.domain.bo.DivideRuleBO; import com.wzj.soopin.transation.domain.po.Divide; +import com.wzj.soopin.transation.domain.po.DivideDetail; import com.wzj.soopin.transation.domain.po.DivideRule; +import com.wzj.soopin.transation.domain.po.DivideRuleDetail; +import com.wzj.soopin.transation.domain.vo.DivideRuleVO; +import com.wzj.soopin.transation.domain.vo.DivideVO; +import com.wzj.soopin.transation.enums.DivideRuleStatus; +import com.wzj.soopin.transation.enums.DivideStatus; +import com.wzj.soopin.transation.mapper.DivideDetailMapper; import com.wzj.soopin.transation.mapper.DivideMapper; +import com.wzj.soopin.transation.mapper.DivideRuleDetailMapper; import com.wzj.soopin.transation.mapper.DivideRuleMapper; import com.wzj.soopin.transation.service.IDivideRuleService; import com.wzj.soopin.transation.service.IDivideService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.exception.ServiceException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; /** * 分账服务实现类 @@ -21,4 +41,69 @@ import org.springframework.stereotype.Service; @Slf4j public class DivideRuleServiceImpl extends ServiceImpl implements IDivideRuleService { + private final DivideRuleDetailMapper detailMapper; + + private final DivideRuleDetailConvert detailConvert; + + private final DivideRuleConvert convert; + + @Transactional(rollbackFor = Exception.class) + @Override + public boolean save(DivideRuleBO bo) { + + DivideRule entity = convert.toPo(bo); + entity.setStatus(DivideRuleStatus.ON.getCode()); + // 保存主分账信息 + boolean mainResult = super.save(entity); + if (!mainResult) { + throw new ServiceException("分账主信息保存失败"); + } + + // 若明细列表不为空,批量保存分账明细信息 + if (!bo.getDetails().isEmpty()) { + List detailEntities = bo.getDetails().stream() + .peek(detailBO -> detailBO.setRuleId(entity.getId())) + .map(detailConvert::toPo) + .toList(); + + boolean detailResult = detailMapper.insertBatch(detailEntities); + if (!detailResult) { + throw new ServiceException("明细保存失败"); + } + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean removeById(Serializable id) { + // 根据主分账记录的 ID 删除对应的分账明细 + boolean detailRemoveResult = detailMapper.delete(new QueryWrapper().lambda().eq(DivideRuleDetail::getRuleId, id)) > 0; + if (!detailRemoveResult) { + log.error("分账规则明细信息删除失败,分账记录 ID: {}", id); + return false; + } + + // 删除主分账记录 + boolean mainRemoveResult = super.removeById(id); + if (!mainRemoveResult) { + log.error("分账规则主信息删除失败,分账记录 ID: {}", id); + return false; + } + return true; + + } + + @Override + public DivideRuleVO getVOById(Long divideId) { + DivideRule divideRule = baseMapper.selectById(divideId); + if (divideRule == null) { + return null; + } + List detailList = detailMapper.selectList(new QueryWrapper().lambda() + .eq(DivideRuleDetail::getRuleId, divideId)); + DivideRuleVO vo = convert.toVO(divideRule); + vo.setDetails(detailConvert.toVO(detailList)); + return vo; + } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideServiceImpl.java index 7145ca21d..ae10aab16 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transation/service/impl/DivideServiceImpl.java @@ -1,12 +1,28 @@ package com.wzj.soopin.transation.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.transation.convert.DivideConvert; +import com.wzj.soopin.transation.convert.DivideDetailConvert; +import com.wzj.soopin.transation.domain.bo.DivideBO; import com.wzj.soopin.transation.domain.po.Divide; +import com.wzj.soopin.transation.domain.po.DivideDetail; +import com.wzj.soopin.transation.domain.po.DivideRule; +import com.wzj.soopin.transation.domain.vo.DivideVO; +import com.wzj.soopin.transation.enums.DivideRuleStatus; +import com.wzj.soopin.transation.enums.DivideStatus; +import com.wzj.soopin.transation.mapper.DivideDetailMapper; import com.wzj.soopin.transation.mapper.DivideMapper; import com.wzj.soopin.transation.service.IDivideService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.exception.ServiceException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.Serializable; +import java.util.List; /** * 分账服务实现类 @@ -18,4 +34,68 @@ import org.springframework.stereotype.Service; @Slf4j public class DivideServiceImpl extends ServiceImpl implements IDivideService { + private final DivideDetailMapper detailMapper; + + private final DivideDetailConvert detailConvert; + + private final DivideConvert divideConvert; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean save(DivideBO bo) { + + Divide entity = divideConvert.toPo(bo); + entity.setStatus(DivideStatus.PENDING.getCode()); + + // 保存主分账信息 + boolean mainResult = super.save(entity); + if (!mainResult) { + throw new ServiceException("分账主信息保存失败,DivideBO: {}"); + } + + // 若明细列表不为空,批量保存分账明细信息 + if (!bo.getDetails().isEmpty()) { + List detailEntities = bo.getDetails().stream() + .peek(detailBO -> detailBO.setDivideId(entity.getId())) + .map(detailConvert::toPo) + .toList(); + + boolean detailResult = detailMapper.insertBatch(detailEntities); + if (!detailResult) { + throw new ServiceException("分账主信息保存失败,DivideBO: {}"); + } + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean removeById(Serializable id) { + // 根据主分账记录的 ID 删除对应的分账明细 + boolean detailRemoveResult = detailMapper.delete(new QueryWrapper().lambda().eq(DivideDetail::getDivideId, id)) > 0; + if (!detailRemoveResult) { + log.error("分账明细信息删除失败,分账记录 ID: {}", id); + return false; + } + + // 删除主分账记录 + boolean mainRemoveResult = super.removeById(id); + if (!mainRemoveResult) { + log.error("分账主信息删除失败,分账记录 ID: {}", id); + return false; + } + return true; + + } + + @Override + public DivideVO getVOById(Long divideId) { + DivideVO divide = baseMapper.getVOById(divideId); + if (divide == null) { + return null; + } + List detailList = detailMapper.selectList(new QueryWrapper().lambda().eq(DivideDetail::getDivideId, divideId)); + divide.setDetails(detailConvert.toVO(detailList)); + return divide; + } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/trans/DivideMapper.xml b/ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/trans/DivideMapper.xml new file mode 100644 index 000000000..05a37880c --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/trans/DivideMapper.xml @@ -0,0 +1,28 @@ + + + + + +