Merge branch 'wzj-wqx' into wzj-main

This commit is contained in:
wangqx 2025-06-30 10:02:26 +08:00
commit 9a39b48734
68 changed files with 574 additions and 327 deletions

View File

@ -52,6 +52,7 @@ import java.util.function.Supplier;
@Service @Service
public class SysLoginService { public class SysLoginService {
@Value("${user.password.maxRetryCount}") @Value("${user.password.maxRetryCount}")
private Integer maxRetryCount; private Integer maxRetryCount;
@ -74,6 +75,8 @@ public class SysLoginService {
*/ */
@Lock4j @Lock4j
public void socialRegister(AuthUser authUserData) { public void socialRegister(AuthUser authUserData) {
String authId = authUserData.getSource() + authUserData.getUuid(); String authId = authUserData.getSource() + authUserData.getUuid();
// 第三方用户信息 // 第三方用户信息
SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class); SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);

View File

@ -258,8 +258,8 @@ springdoc:
packages-to-scan: com.wzj.soopin.goods packages-to-scan: com.wzj.soopin.goods
- group: 4.内容模块 - group: 4.内容模块
packages-to-scan: com.wzj.soopin.content packages-to-scan: com.wzj.soopin.content
- group: 5.结算模块 - group: 5.交易模块
packages-to-scan: com.wzj.soopin.pay packages-to-scan: com.wzj.soopin.transaction
- group: 6.IM模块 - group: 6.IM模块
packages-to-scan: com.wzj.soopin.im packages-to-scan: com.wzj.soopin.im
- group: 7.系统模块 - group: 7.系统模块

View File

@ -57,6 +57,9 @@ public class MemberRegisterService {
boolean exist = memberService.exists(new LambdaQueryWrapper<Member>() boolean exist = memberService.exists(new LambdaQueryWrapper<Member>()
.eq(Member::getPhoneEncrypted, phoneNumber)); .eq(Member::getPhoneEncrypted, phoneNumber));
if (exist) { if (exist) {
throw new UserException("user.register.save.error", username); throw new UserException("user.register.save.error", username);
} }

View File

@ -1,13 +1,13 @@
package com.wzj.soopin.transation.controller; package com.wzj.soopin.transaction.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.member.annotation.MemberFillMethod; import com.wzj.soopin.member.annotation.MemberFillMethod;
import com.wzj.soopin.transation.convert.ChargeConvert; import com.wzj.soopin.transaction.convert.ChargeConvert;
import com.wzj.soopin.transation.domain.bo.ChargeBO; import com.wzj.soopin.transaction.domain.bo.ChargeBO;
import com.wzj.soopin.transation.domain.po.Charge; import com.wzj.soopin.transaction.domain.po.Charge;
import com.wzj.soopin.transation.domain.vo.ChargeVO; import com.wzj.soopin.transaction.domain.vo.ChargeVO;
import com.wzj.soopin.transation.service.IChargeService; import com.wzj.soopin.transaction.service.IChargeService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;

View File

@ -1,12 +1,12 @@
package com.wzj.soopin.transation.controller; package com.wzj.soopin.transaction.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.transation.convert.DivideConvert; import com.wzj.soopin.transaction.convert.DivideConvert;
import com.wzj.soopin.transation.domain.bo.DivideBO; import com.wzj.soopin.transaction.domain.bo.DivideBO;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.domain.po.Divide;
import com.wzj.soopin.transation.domain.vo.DivideVO; import com.wzj.soopin.transaction.domain.vo.DivideVO;
import com.wzj.soopin.transation.service.IDivideService; import com.wzj.soopin.transaction.service.IDivideService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
@ -26,6 +26,7 @@ public class DivideController {
private final IDivideService service; private final IDivideService service;
private final DivideConvert convert; private final DivideConvert convert;
@Tag(name = "查询列表") @Tag(name = "查询列表")
@PostMapping("/list") @PostMapping("/list")
public R<IPage<DivideVO>> list(@RequestBody DivideBO bo, @RequestBody Page page) { public R<IPage<DivideVO>> list(@RequestBody DivideBO bo, @RequestBody Page page) {
@ -37,20 +38,20 @@ public class DivideController {
@Log(title = "新增 ", businessType = BusinessType.INSERT) @Log(title = "新增 ", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
public R add(@RequestBody DivideBO bo) { public R add(@RequestBody DivideBO bo) {
return R.ok(service.save(convert.toPo(bo))); return R.ok(service.save(bo));
} }
@Tag(name = "详情") @Tag(name = "详情")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public R<DivideVO> getInfo(@PathVariable("id") Long id) { public R<DivideVO> getInfo(@PathVariable("id") Long id) {
return R.ok(convert.toVO(service.getById(id))); return R.ok(service.getVOById(id));
} }
@Tag(name = ("回调更新")) @Tag(name = ("回调更新"))
@Log(title = "回调更新", businessType = BusinessType.UPDATE) @Log(title = "回调更新", businessType = BusinessType.UPDATE)
@PostMapping("/callback") @PostMapping("/callback")
public R callback(@RequestBody DivideBO bo) { public R callback(@RequestBody DivideBO bo) {
service.save(convert.toPo(bo)); service.updateById(convert.toPo(bo));
return R.ok(); return R.ok();
} }

View File

@ -1,17 +1,12 @@
package com.wzj.soopin.transation.controller; package com.wzj.soopin.transaction.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.transation.convert.DivideConvert; import com.wzj.soopin.transaction.convert.DivideRuleConvert;
import com.wzj.soopin.transation.convert.DivideRuleConvert; import com.wzj.soopin.transaction.domain.bo.DivideRuleBO;
import com.wzj.soopin.transation.domain.bo.DivideBO; import com.wzj.soopin.transaction.domain.po.DivideRule;
import com.wzj.soopin.transation.domain.bo.DivideRuleBO; import com.wzj.soopin.transaction.domain.vo.DivideRuleVO;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.service.IDivideRuleService;
import com.wzj.soopin.transation.domain.po.DivideRule;
import com.wzj.soopin.transation.domain.vo.DivideRuleVO;
import com.wzj.soopin.transation.domain.vo.DivideVO;
import com.wzj.soopin.transation.service.IDivideRuleService;
import com.wzj.soopin.transation.service.IDivideService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
@ -42,13 +37,13 @@ public class DivideRuleController {
@Log(title = "新增 ", businessType = BusinessType.INSERT) @Log(title = "新增 ", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
public R add(@RequestBody DivideRuleBO bo) { public R add(@RequestBody DivideRuleBO bo) {
return R.ok(service.save(convert.toPo(bo))); return R.ok(service.save(bo));
} }
@Tag(name = "详情") @Tag(name = "详情")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public R<DivideRuleVO> getInfo(@PathVariable("id") Long id) { public R<DivideRuleVO> getInfo(@PathVariable("id") Long id) {
return R.ok(convert.toVO(service.getById(id))); return R.ok(service.getVOById(id));
} }
@Tag(name = ("修改")) @Tag(name = ("修改"))

View File

@ -1,13 +1,13 @@
package com.wzj.soopin.transation.controller; package com.wzj.soopin.transaction.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.member.annotation.MemberFillMethod; import com.wzj.soopin.member.annotation.MemberFillMethod;
import com.wzj.soopin.transation.convert.WithdrawConvert; import com.wzj.soopin.transaction.convert.WithdrawConvert;
import com.wzj.soopin.transation.domain.bo.WithdrawBO; import com.wzj.soopin.transaction.domain.bo.WithdrawBO;
import com.wzj.soopin.transation.domain.po.Withdraw; import com.wzj.soopin.transaction.domain.po.Withdraw;
import com.wzj.soopin.transation.domain.vo.WithdrawVO; import com.wzj.soopin.transaction.domain.vo.WithdrawVO;
import com.wzj.soopin.transation.service.IWithdrawService; import com.wzj.soopin.transaction.service.IWithdrawService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.convert; package com.wzj.soopin.transaction.convert;
import com.wzj.soopin.transation.domain.bo.ChargeBO; import com.wzj.soopin.transaction.domain.bo.ChargeBO;
import com.wzj.soopin.transation.domain.po.Charge; import com.wzj.soopin.transaction.domain.po.Charge;
import com.wzj.soopin.transation.domain.vo.ChargeVO; import com.wzj.soopin.transaction.domain.vo.ChargeVO;
import org.dromara.common.web.core.BaseConverter; import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;

View File

@ -1,9 +1,9 @@
package com.wzj.soopin.transation.convert; package com.wzj.soopin.transaction.convert;
import com.wzj.soopin.transation.domain.bo.DivideBO; import com.wzj.soopin.transaction.domain.bo.DivideBO;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.domain.po.Divide;
import com.wzj.soopin.transation.domain.vo.DivideVO; import com.wzj.soopin.transaction.domain.vo.DivideVO;
import org.dromara.common.web.core.BaseConverter; import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;

View File

@ -0,0 +1,12 @@
package com.wzj.soopin.transaction.convert;
import com.wzj.soopin.transaction.domain.bo.DivideDetailBO;
import com.wzj.soopin.transaction.domain.po.DivideDetail;
import com.wzj.soopin.transaction.domain.vo.DivideDetailVO;
import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring",uses = BaseConverter.class)
public interface DivideDetailConvert extends BaseConverter<DivideDetailVO, DivideDetailBO, DivideDetail> {
}

View File

@ -1,9 +1,9 @@
package com.wzj.soopin.transation.convert; package com.wzj.soopin.transaction.convert;
import com.wzj.soopin.transation.domain.bo.DivideRuleBO; import com.wzj.soopin.transaction.domain.bo.DivideRuleBO;
import com.wzj.soopin.transation.domain.po.DivideRule; import com.wzj.soopin.transaction.domain.po.DivideRule;
import com.wzj.soopin.transation.domain.vo.DivideRuleVO; import com.wzj.soopin.transaction.domain.vo.DivideRuleVO;
import org.dromara.common.web.core.BaseConverter; import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;

View File

@ -0,0 +1,12 @@
package com.wzj.soopin.transaction.convert;
import com.wzj.soopin.transaction.domain.bo.DivideRuleDetailBO;
import com.wzj.soopin.transaction.domain.po.DivideRuleDetail;
import com.wzj.soopin.transaction.domain.vo.DivideRuleDetailVO;
import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring",uses = BaseConverter.class)
public interface DivideRuleDetailConvert extends BaseConverter<DivideRuleDetailVO, DivideRuleDetailBO, DivideRuleDetail> {
}

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.convert; package com.wzj.soopin.transaction.convert;
import com.wzj.soopin.transation.domain.bo.WithdrawBO; import com.wzj.soopin.transaction.domain.bo.WithdrawBO;
import com.wzj.soopin.transation.domain.po.Withdraw; import com.wzj.soopin.transaction.domain.po.Withdraw;
import com.wzj.soopin.transation.domain.vo.WithdrawVO; import com.wzj.soopin.transaction.domain.vo.WithdrawVO;
import org.dromara.common.web.core.BaseConverter; import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.domain.bo; package com.wzj.soopin.transaction.domain.bo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wzj.soopin.transation.domain.po.Charge; import com.wzj.soopin.transaction.domain.po.Charge;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO; import org.dromara.common.core.domain.BaseBO;

View File

@ -1,13 +1,15 @@
package com.wzj.soopin.transation.domain.bo; package com.wzj.soopin.transaction.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.domain.po.Divide;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO; import org.dromara.common.core.domain.BaseBO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/** /**
* 订单分账 * 订单分账
@ -79,5 +81,13 @@ public class DivideBO extends BaseBO<Divide> {
@ExcelProperty(value = "订单编号", order = 9) @ExcelProperty(value = "订单编号", order = 9)
private String orderSn; private String orderSn;
/**
* 分账规则明细
*/
@Schema(description = "分账规则明细")
@ExcelProperty(value = "分账规则明细", order = 10)
private List<DivideDetailBO> details=new ArrayList<>();
} }

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.domain.bo; package com.wzj.soopin.transaction.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.wzj.soopin.transation.domain.po.DivideDetail; import com.wzj.soopin.transaction.domain.po.DivideDetail;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO; import org.dromara.common.core.domain.BaseBO;
@ -26,6 +26,14 @@ public class DivideDetailBO extends BaseBO<DivideDetail> {
@ExcelProperty(value = "主键", order = 1) @ExcelProperty(value = "主键", order = 1)
private Long id; private Long id;
/**
* 分账id
*/
@Schema(description = "分账id")
@ExcelProperty(value = "分账id", order = 2)
private Long divideId;
/** /**
* 分账规则id * 分账规则id
*/ */
@ -72,12 +80,7 @@ public class DivideDetailBO extends BaseBO<DivideDetail> {
* */ * */
private Integer type; private Integer type;
/**
* 状态
*/
@Schema(description = "状态")
@ExcelProperty(value = "状态", order = 5)
private Integer status;
@Schema(description = "账户id") @Schema(description = "账户id")
@ExcelProperty(value = "账户id", order = 6) @ExcelProperty(value = "账户id", order = 6)

View File

@ -1,12 +1,15 @@
package com.wzj.soopin.transation.domain.bo; package com.wzj.soopin.transaction.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.wzj.soopin.transation.domain.po.DivideRule; import com.wzj.soopin.transaction.domain.po.DivideRule;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO; import org.dromara.common.core.domain.BaseBO;
import java.util.ArrayList;
import java.util.List;
/** /**
* 分账规则 * 分账规则
* *
@ -58,5 +61,6 @@ public class DivideRuleBO extends BaseBO<DivideRule> {
@ExcelProperty(value ="类型", order = 8) @ExcelProperty(value ="类型", order = 8)
private Integer type; private Integer type;
private List<DivideRuleDetailBO> details=new ArrayList<>();
} }

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.domain.bo; package com.wzj.soopin.transaction.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.wzj.soopin.transation.domain.po.DivideRuleDetail; import com.wzj.soopin.transaction.domain.po.DivideRuleDetail;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO; import org.dromara.common.core.domain.BaseBO;
@ -32,7 +32,7 @@ public class DivideRuleDetailBO extends BaseBO<DivideRuleDetail> {
@Schema(description ="分账规则id") @Schema(description ="分账规则id")
@ExcelProperty(value = "分账规则id", order = 2) @ExcelProperty(value = "分账规则id", order = 2)
private Long divideId; private Long ruleId;
@Schema(description ="金额分配比例") @Schema(description ="金额分配比例")
@ -43,12 +43,6 @@ public class DivideRuleDetailBO extends BaseBO<DivideRuleDetail> {
@ExcelProperty(value ="手续费分配比例", order = 5) @ExcelProperty(value ="手续费分配比例", order = 5)
private BigDecimal feePercent; private BigDecimal feePercent;
/**
* 状态
*/
@Schema(description ="状态")
@ExcelProperty(value ="状态", order = 7)
private Integer status;
/** /**
* 类型 * 类型
*/ */

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.domain.bo; package com.wzj.soopin.transaction.domain.bo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wzj.soopin.transation.domain.po.Withdraw; import com.wzj.soopin.transaction.domain.po.Withdraw;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.BaseBO; import org.dromara.common.core.domain.BaseBO;

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.domain.po; package com.wzj.soopin.transaction.domain.po;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.domain.po; package com.wzj.soopin.transaction.domain.po;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
@ -18,7 +18,7 @@ import java.math.BigDecimal;
*/ */
@Schema(description = "订单分账") @Schema(description = "订单分账")
@Data @Data
@TableName("oms_aftersale") @TableName("trans_divide")
public class Divide extends BaseEntity { public class Divide extends BaseEntity {
/** /**

View File

@ -1,8 +1,9 @@
package com.wzj.soopin.transation.domain.po; package com.wzj.soopin.transaction.domain.po;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
@ -17,6 +18,7 @@ import java.math.BigDecimal;
*/ */
@Schema(description = "订单分账明细") @Schema(description = "订单分账明细")
@Data @Data
@TableName("trans_divide_detail")
public class DivideDetail extends BaseEntity { public class DivideDetail extends BaseEntity {
/** /**
@ -27,12 +29,13 @@ public class DivideDetail extends BaseEntity {
@TableId @TableId
private Long id; private Long id;
/** /**
* 分账规则id * 分账规则id
*/ */
@Schema(description = "分账规则id") @Schema(description = "分账id")
@ExcelProperty(value = "分账规则id", order = 2) @ExcelProperty(value = "分账id", order = 2)
private Long ruleId; private Long divideId;
/** /**
* 分账规则明细id * 分账规则明细id
@ -76,7 +79,7 @@ public class DivideDetail extends BaseEntity {
/** /**
* 状态 * 状态
*/ */
@Schema(description = "状态") @Schema(description = "状态 0 未分账 1 分账成功 2 分账失败")
@ExcelProperty(value = "状态", order = 5) @ExcelProperty(value = "状态", order = 5)
private Integer status; private Integer status;

View File

@ -1,8 +1,9 @@
package com.wzj.soopin.transation.domain.po; package com.wzj.soopin.transaction.domain.po;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
@ -15,6 +16,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
*/ */
@Schema(description="分账规则") @Schema(description="分账规则")
@Data @Data
@TableName("trans_divide_rule")
public class DivideRule extends BaseEntity { public class DivideRule extends BaseEntity {
/** /**

View File

@ -1,8 +1,9 @@
package com.wzj.soopin.transation.domain.po; package com.wzj.soopin.transaction.domain.po;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
@ -17,6 +18,7 @@ import java.math.BigDecimal;
*/ */
@Schema(description="分账规则明细") @Schema(description="分账规则明细")
@Data @Data
@TableName("trans_divide_rule_detail")
public class DivideRuleDetail extends BaseEntity { public class DivideRuleDetail extends BaseEntity {
/** /**
@ -27,13 +29,11 @@ public class DivideRuleDetail extends BaseEntity {
@TableId @TableId
private Long id; private Long id;
/**
* 提现码
*/
@Schema(description ="分账规则id") @Schema(description ="分账规则id")
@ExcelProperty(value = "分账规则id", order = 2) @ExcelProperty(value = "分账规则id", order = 2)
private Long divideId; private Long ruleId;
@Schema(description ="金额分配比例") @Schema(description ="金额分配比例")
@ -44,12 +44,6 @@ public class DivideRuleDetail extends BaseEntity {
@ExcelProperty(value ="手续费分配比例", order = 5) @ExcelProperty(value ="手续费分配比例", order = 5)
private BigDecimal feePercent; private BigDecimal feePercent;
/**
* 状态
*/
@Schema(description ="状态")
@ExcelProperty(value ="状态", order = 7)
private Integer status;
/** /**
* 类型 * 类型
*/ */

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.domain.po; package com.wzj.soopin.transaction.domain.po;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.domain.vo; package com.wzj.soopin.transaction.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
@ -7,6 +7,7 @@ import com.wzj.soopin.member.domain.vo.MemberVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -19,7 +20,7 @@ import java.time.LocalDateTime;
*/ */
@Schema(description="充值") @Schema(description="充值")
@Data @Data
public class ChargeVO extends BaseAudit { public class ChargeVO extends BaseEntity {
/** /**
* 主键 * 主键

View File

@ -1,10 +1,11 @@
package com.wzj.soopin.transation.domain.vo; package com.wzj.soopin.transaction.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -16,7 +17,7 @@ import java.math.BigDecimal;
*/ */
@Schema(description = "订单分账明细") @Schema(description = "订单分账明细")
@Data @Data
public class DivideDetailVO extends BaseAudit { public class DivideDetailVO extends BaseEntity {
/** /**
* 主键 * 主键
@ -71,12 +72,7 @@ public class DivideDetailVO extends BaseAudit {
* */ * */
private Integer type; private Integer type;
/**
* 状态
*/
@Schema(description = "状态")
@ExcelProperty(value = "状态", order = 5)
private Integer status;
@Schema(description = "账户id") @Schema(description = "账户id")
@ExcelProperty(value = "账户id", order = 6) @ExcelProperty(value = "账户id", order = 6)

View File

@ -1,10 +1,11 @@
package com.wzj.soopin.transation.domain.vo; package com.wzj.soopin.transaction.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -16,7 +17,7 @@ import java.math.BigDecimal;
*/ */
@Schema(description="分账规则明细") @Schema(description="分账规则明细")
@Data @Data
public class DivideRuleDetailVO extends BaseAudit { public class DivideRuleDetailVO extends BaseEntity {
/** /**
* 主键 * 主键
@ -31,7 +32,7 @@ public class DivideRuleDetailVO extends BaseAudit {
@Schema(description ="分账规则id") @Schema(description ="分账规则id")
@ExcelProperty(value = "分账规则id", order = 2) @ExcelProperty(value = "分账规则id", order = 2)
private Long divideId; private Long ruleId;
@Schema(description ="金额分配比例") @Schema(description ="金额分配比例")
@ -42,12 +43,7 @@ public class DivideRuleDetailVO extends BaseAudit {
@ExcelProperty(value ="手续费分配比例", order = 5) @ExcelProperty(value ="手续费分配比例", order = 5)
private BigDecimal feePercent; private BigDecimal feePercent;
/**
* 状态
*/
@Schema(description ="状态")
@ExcelProperty(value ="状态", order = 7)
private Integer status;
/** /**
* 类型 * 类型
*/ */

View File

@ -1,10 +1,13 @@
package com.wzj.soopin.transation.domain.vo; package com.wzj.soopin.transaction.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; 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 +17,7 @@ import org.dromara.common.core.domain.model.BaseAudit;
*/ */
@Schema(description="分账规则") @Schema(description="分账规则")
@Data @Data
public class DivideRuleVO extends BaseAudit { public class DivideRuleVO extends BaseEntity {
/** /**
* 主键 * 主键
@ -23,6 +26,12 @@ public class DivideRuleVO extends BaseAudit {
@ExcelProperty(value = "主键", order = 1) @ExcelProperty(value = "主键", order = 1)
private Long id; private Long id;
@Schema(description ="分账规则id")
@ExcelProperty(value = "分账规则id", order = 2)
private Long ruleId;
/** /**
* 提现码 * 提现码
*/ */
@ -57,5 +66,7 @@ public class DivideRuleVO extends BaseAudit {
@ExcelProperty(value ="类型", order = 8) @ExcelProperty(value ="类型", order = 8)
private Integer type; private Integer type;
@Schema(description = "分账规则明细")
@ExcelProperty(value = "分账规则明细", order = 9)
private List<DivideRuleDetailVO> details=new ArrayList<>();
} }

View File

@ -1,12 +1,13 @@
package com.wzj.soopin.transation.domain.vo; package com.wzj.soopin.transaction.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; 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.math.BigDecimal;
import java.util.List;
/** /**
* 订单分账 * 订单分账
@ -16,7 +17,7 @@ import java.math.BigDecimal;
*/ */
@Schema(description = "订单分账") @Schema(description = "订单分账")
@Data @Data
public class DivideVO extends BaseAudit { public class DivideVO extends BaseEntity {
/** /**
* 主键 * 主键
@ -32,6 +33,8 @@ public class DivideVO extends BaseAudit {
@ExcelProperty(value = "分账规则id", order = 2) @ExcelProperty(value = "分账规则id", order = 2)
private Long ruleId; private Long ruleId;
private String ruleName;
/** /**
@ -78,5 +81,6 @@ public class DivideVO extends BaseAudit {
@ExcelProperty(value = "订单编号", order = 9) @ExcelProperty(value = "订单编号", order = 9)
private String orderSn; private String orderSn;
private List<DivideDetailVO> details;
} }

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.domain.vo; package com.wzj.soopin.transaction.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
@ -7,6 +7,7 @@ import com.wzj.soopin.member.domain.vo.MemberVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -19,7 +20,7 @@ import java.time.LocalDateTime;
*/ */
@Schema(description="提现") @Schema(description="提现")
@Data @Data
public class WithdrawVO extends BaseAudit { public class WithdrawVO extends BaseEntity {
/** /**
* 主键 * 主键

View File

@ -0,0 +1,30 @@
package com.wzj.soopin.transaction.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;
}
}

View File

@ -0,0 +1,23 @@
package com.wzj.soopin.transaction.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;
}
}

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.enums; package com.wzj.soopin.transaction.enums;
public enum WithdrawAuditStatus { public enum WithdrawAuditStatus {
PENDING(0, "待审核"), PENDING(0, "待审核"),

View File

@ -1,4 +1,4 @@
package com.wzj.soopin.transation.enums; package com.wzj.soopin.transaction.enums;
public enum WithdrawStatus { public enum WithdrawStatus {
WAITING(0, "等待转账"), WAITING(0, "等待转账"),

View File

@ -1,7 +1,7 @@
package com.wzj.soopin.transation.mapper; package com.wzj.soopin.transaction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.transation.domain.po.Charge; import com.wzj.soopin.transaction.domain.po.Charge;
/** /**
* 意见反馈Mapper接口 * 意见反馈Mapper接口

View File

@ -0,0 +1,14 @@
package com.wzj.soopin.transaction.mapper;
import com.wzj.soopin.transaction.domain.po.DivideDetail;
import com.wzj.soopin.transaction.domain.vo.DivideDetailVO;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 意见反馈Mapper接口
*
* @author zcc
*/
public interface DivideDetailMapper extends BaseMapperPlus<DivideDetail, DivideDetailVO> {
}

View File

@ -0,0 +1,15 @@
package com.wzj.soopin.transaction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.transaction.domain.po.Divide;
import com.wzj.soopin.transaction.domain.vo.DivideVO;
/**
* 意见反馈Mapper接口
*
* @author zcc
*/
public interface DivideMapper extends BaseMapper <Divide> {
DivideVO getVOById( Long divideId);
}

View File

@ -0,0 +1,14 @@
package com.wzj.soopin.transaction.mapper;
import com.wzj.soopin.transaction.domain.po.DivideRuleDetail;
import com.wzj.soopin.transaction.domain.vo.DivideRuleDetailVO;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 意见反馈Mapper接口
*
* @author zcc
*/
public interface DivideRuleDetailMapper extends BaseMapperPlus<DivideRuleDetail, DivideRuleDetailVO> {
}

View File

@ -1,8 +1,7 @@
package com.wzj.soopin.transation.mapper; package com.wzj.soopin.transaction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.domain.po.DivideRule;
import com.wzj.soopin.transation.domain.po.DivideRule;
/** /**
* 意见反馈Mapper接口 * 意见反馈Mapper接口

View File

@ -1,7 +1,7 @@
package com.wzj.soopin.transation.mapper; package com.wzj.soopin.transaction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.transation.domain.po.Withdraw; import com.wzj.soopin.transaction.domain.po.Withdraw;
public interface WithdrawMapper extends BaseMapper<Withdraw> { public interface WithdrawMapper extends BaseMapper<Withdraw> {

View File

@ -1,7 +1,7 @@
package com.wzj.soopin.transation.service; package com.wzj.soopin.transaction.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transation.domain.po.Charge; import com.wzj.soopin.transaction.domain.po.Charge;
public interface IChargeService extends IService<Charge> { public interface IChargeService extends IService<Charge> {

View File

@ -0,0 +1,8 @@
package com.wzj.soopin.transaction.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transaction.domain.po.DivideDetail;
public interface IDivideDetailService extends IService<DivideDetail> {
}

View File

@ -0,0 +1,8 @@
package com.wzj.soopin.transaction.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transaction.domain.po.DivideRuleDetail;
public interface IDivideRuleDetailService extends IService<DivideRuleDetail> {
}

View File

@ -0,0 +1,13 @@
package com.wzj.soopin.transaction.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transaction.domain.bo.DivideRuleBO;
import com.wzj.soopin.transaction.domain.po.DivideRule;
import com.wzj.soopin.transaction.domain.vo.DivideRuleVO;
public interface IDivideRuleService extends IService<DivideRule> {
boolean save( DivideRuleBO bo);
DivideRuleVO getVOById(Long divideId);
}

View File

@ -0,0 +1,13 @@
package com.wzj.soopin.transaction.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transaction.domain.bo.DivideBO;
import com.wzj.soopin.transaction.domain.po.Divide;
import com.wzj.soopin.transaction.domain.vo.DivideVO;
public interface IDivideService extends IService<Divide> {
boolean save( DivideBO bo);
DivideVO getVOById( Long divideId);
}

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.service; package com.wzj.soopin.transaction.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transation.domain.bo.WithdrawBO; import com.wzj.soopin.transaction.domain.bo.WithdrawBO;
import com.wzj.soopin.transation.domain.po.Withdraw; import com.wzj.soopin.transaction.domain.po.Withdraw;
public interface IWithdrawService extends IService<Withdraw> { public interface IWithdrawService extends IService<Withdraw> {
boolean audit(WithdrawBO bo); boolean audit(WithdrawBO bo);

View File

@ -1,7 +1,7 @@
package com.wzj.soopin.transation.service; package com.wzj.soopin.transaction.service;
import com.wzj.soopin.transation.domain.vo.YishengAccountVO; import com.wzj.soopin.transaction.domain.vo.YishengAccountVO;
import java.math.BigDecimal; import java.math.BigDecimal;

View File

@ -1,9 +1,9 @@
package com.wzj.soopin.transation.service.impl; package com.wzj.soopin.transaction.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transation.domain.po.Charge; import com.wzj.soopin.transaction.domain.po.Charge;
import com.wzj.soopin.transation.mapper.ChargeMapper; import com.wzj.soopin.transaction.mapper.ChargeMapper;
import com.wzj.soopin.transation.service.IChargeService; import com.wzj.soopin.transaction.service.IChargeService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,12 +1,9 @@
package com.wzj.soopin.transation.service.impl; package com.wzj.soopin.transaction.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.domain.po.DivideDetail;
import com.wzj.soopin.transation.domain.po.DivideDetail; import com.wzj.soopin.transaction.mapper.DivideDetailMapper;
import com.wzj.soopin.transation.mapper.DivideDetailMapper; import com.wzj.soopin.transaction.service.IDivideDetailService;
import com.wzj.soopin.transation.mapper.DivideMapper;
import com.wzj.soopin.transation.service.IDivideDetailService;
import com.wzj.soopin.transation.service.IDivideService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,12 +1,9 @@
package com.wzj.soopin.transation.service.impl; package com.wzj.soopin.transaction.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transation.domain.po.Divide; import com.wzj.soopin.transaction.domain.po.DivideRuleDetail;
import com.wzj.soopin.transation.domain.po.DivideRuleDetail; import com.wzj.soopin.transaction.mapper.DivideRuleDetailMapper;
import com.wzj.soopin.transation.mapper.DivideMapper; import com.wzj.soopin.transaction.service.IDivideRuleDetailService;
import com.wzj.soopin.transation.mapper.DivideRuleDetailMapper;
import com.wzj.soopin.transation.service.IDivideRuleDetailService;
import com.wzj.soopin.transation.service.IDivideService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -0,0 +1,99 @@
package com.wzj.soopin.transaction.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transaction.convert.DivideRuleConvert;
import com.wzj.soopin.transaction.convert.DivideRuleDetailConvert;
import com.wzj.soopin.transaction.domain.bo.DivideRuleBO;
import com.wzj.soopin.transaction.domain.po.DivideRule;
import com.wzj.soopin.transaction.domain.po.DivideRuleDetail;
import com.wzj.soopin.transaction.domain.vo.DivideRuleVO;
import com.wzj.soopin.transaction.enums.DivideRuleStatus;
import com.wzj.soopin.transaction.mapper.DivideRuleDetailMapper;
import com.wzj.soopin.transaction.mapper.DivideRuleMapper;
import com.wzj.soopin.transaction.service.IDivideRuleService;
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;
/**
* 分账服务实现类
*
* @author zcc
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DivideRuleServiceImpl extends ServiceImpl<DivideRuleMapper, DivideRule> 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<DivideRuleDetail> 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<DivideRuleDetail>().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<DivideRuleDetail> detailList = detailMapper.selectList(new QueryWrapper<DivideRuleDetail>().lambda()
.eq(DivideRuleDetail::getRuleId, divideId));
DivideRuleVO vo = convert.toVO(divideRule);
vo.setDetails(detailConvert.toVO(detailList));
return vo;
}
}

View File

@ -0,0 +1,98 @@
package com.wzj.soopin.transaction.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transaction.convert.DivideConvert;
import com.wzj.soopin.transaction.convert.DivideDetailConvert;
import com.wzj.soopin.transaction.domain.bo.DivideBO;
import com.wzj.soopin.transaction.domain.po.Divide;
import com.wzj.soopin.transaction.domain.po.DivideDetail;
import com.wzj.soopin.transaction.domain.vo.DivideVO;
import com.wzj.soopin.transaction.enums.DivideStatus;
import com.wzj.soopin.transaction.mapper.DivideDetailMapper;
import com.wzj.soopin.transaction.mapper.DivideMapper;
import com.wzj.soopin.transaction.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;
/**
* 分账服务实现类
*
* @author zcc
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DivideServiceImpl extends ServiceImpl<DivideMapper, Divide> 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<DivideDetail> 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<DivideDetail>().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<DivideDetail> detailList = detailMapper.selectList(new QueryWrapper<DivideDetail>().lambda().eq(DivideDetail::getDivideId, divideId));
divide.setDetails(detailConvert.toVO(detailList));
return divide;
}
}

View File

@ -1,19 +1,19 @@
package com.wzj.soopin.transation.service.impl; package com.wzj.soopin.transaction.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transation.domain.bo.WithdrawBO; import com.wzj.soopin.transaction.domain.bo.WithdrawBO;
import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.po.MemberAccount;
import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord;
import com.wzj.soopin.transation.domain.po.Withdraw; import com.wzj.soopin.transaction.domain.po.Withdraw;
import com.wzj.soopin.member.enums.MemberAccountChangeRecordChangeTypeEnum; import com.wzj.soopin.member.enums.MemberAccountChangeRecordChangeTypeEnum;
import com.wzj.soopin.member.enums.MemberAccountChangeRecordSourceEnum; import com.wzj.soopin.member.enums.MemberAccountChangeRecordSourceEnum;
import com.wzj.soopin.transation.enums.WithdrawAuditStatus; import com.wzj.soopin.transaction.enums.WithdrawAuditStatus;
import com.wzj.soopin.transation.enums.WithdrawStatus; import com.wzj.soopin.transaction.enums.WithdrawStatus;
import com.wzj.soopin.transation.mapper.WithdrawMapper; import com.wzj.soopin.transaction.mapper.WithdrawMapper;
import com.wzj.soopin.member.service.*; import com.wzj.soopin.member.service.*;
import com.wzj.soopin.transation.domain.vo.YishengAccountVO; import com.wzj.soopin.transaction.domain.vo.YishengAccountVO;
import com.wzj.soopin.transation.service.IWithdrawService; import com.wzj.soopin.transaction.service.IWithdrawService;
import com.wzj.soopin.transation.service.IYishengService; import com.wzj.soopin.transaction.service.IYishengService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;

View File

@ -1,8 +1,8 @@
package com.wzj.soopin.transation.service.impl; package com.wzj.soopin.transaction.service.impl;
import com.wzj.soopin.transation.domain.vo.YishengAccountVO; import com.wzj.soopin.transaction.domain.vo.YishengAccountVO;
import com.wzj.soopin.transation.service.IYishengService; import com.wzj.soopin.transaction.service.IYishengService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,18 +0,0 @@
package com.wzj.soopin.transation.convert;
import com.wzj.soopin.transation.domain.bo.DivideBO;
import com.wzj.soopin.transation.domain.bo.DivideDetailBO;
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.vo.DivideDetailVO;
import com.wzj.soopin.transation.domain.vo.DivideRuleVO;
import com.wzj.soopin.transation.domain.vo.DivideVO;
import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring",uses = BaseConverter.class)
public interface DivideDetailConvert extends BaseConverter<DivideDetailVO, DivideDetailBO, DivideDetail> {
}

View File

@ -1,15 +0,0 @@
package com.wzj.soopin.transation.convert;
import com.wzj.soopin.transation.domain.bo.DivideBO;
import com.wzj.soopin.transation.domain.bo.DivideRuleDetailBO;
import com.wzj.soopin.transation.domain.po.Divide;
import com.wzj.soopin.transation.domain.po.DivideRuleDetail;
import com.wzj.soopin.transation.domain.vo.DivideRuleDetailVO;
import com.wzj.soopin.transation.domain.vo.DivideVO;
import org.dromara.common.web.core.BaseConverter;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring",uses = BaseConverter.class)
public interface DivideRuleDetailConvert extends BaseConverter<DivideRuleDetailVO, DivideRuleDetailBO, DivideRuleDetail> {
}

View File

@ -1,14 +0,0 @@
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;
/**
* 意见反馈Mapper接口
*
* @author zcc
*/
public interface DivideDetailMapper extends BaseMapper<DivideDetail> {
}

View File

@ -1,13 +0,0 @@
package com.wzj.soopin.transation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wzj.soopin.transation.domain.po.Divide;
/**
* 意见反馈Mapper接口
*
* @author zcc
*/
public interface DivideMapper extends BaseMapper <Divide> {
}

View File

@ -1,14 +0,0 @@
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;
/**
* 意见反馈Mapper接口
*
* @author zcc
*/
public interface DivideRuleDetailMapper extends BaseMapper<DivideRuleDetail> {
}

View File

@ -1,9 +0,0 @@
package com.wzj.soopin.transation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transation.domain.po.Divide;
import com.wzj.soopin.transation.domain.po.DivideDetail;
public interface IDivideDetailService extends IService<DivideDetail> {
}

View File

@ -1,9 +0,0 @@
package com.wzj.soopin.transation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transation.domain.po.DivideRule;
import com.wzj.soopin.transation.domain.po.DivideRuleDetail;
public interface IDivideRuleDetailService extends IService<DivideRuleDetail> {
}

View File

@ -1,9 +0,0 @@
package com.wzj.soopin.transation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transation.domain.po.Divide;
import com.wzj.soopin.transation.domain.po.DivideRule;
public interface IDivideRuleService extends IService<DivideRule> {
}

View File

@ -1,8 +0,0 @@
package com.wzj.soopin.transation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wzj.soopin.transation.domain.po.Divide;
public interface IDivideService extends IService<Divide> {
}

View File

@ -1,24 +0,0 @@
package com.wzj.soopin.transation.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transation.domain.po.Divide;
import com.wzj.soopin.transation.domain.po.DivideRule;
import com.wzj.soopin.transation.mapper.DivideMapper;
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.springframework.stereotype.Service;
/**
* 分账服务实现类
*
* @author zcc
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DivideRuleServiceImpl extends ServiceImpl<DivideRuleMapper, DivideRule> implements IDivideRuleService {
}

View File

@ -1,21 +0,0 @@
package com.wzj.soopin.transation.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.transation.domain.po.Divide;
import com.wzj.soopin.transation.mapper.DivideMapper;
import com.wzj.soopin.transation.service.IDivideService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 分账服务实现类
*
* @author zcc
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DivideServiceImpl extends ServiceImpl<DivideMapper, Divide> implements IDivideService {
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wzj.soopin.transaction.mapper.DivideMapper">
<select id="getVOById" resultType="com.wzj.soopin.transaction.domain.vo.DivideVO">
SELECT
d.id,
d.order_sn,
d.order_money,
d.actual_money,
d.rule_id,
d.order_id,
d.fee,
d.status,
d.create_time,
dr.name as rule_name,
dr.type
FROM
trans_divide d
LEFT JOIN
trans_divide_rule dr ON d.rule_id = dr.id
WHERE
d.id = #{divideId}
</select>
</mapper>