[fix]修改分账,增加主子表查询与保存
This commit is contained in:
parent
ee14312dcd
commit
1d578cbf8e
@ -57,6 +57,9 @@ public class MemberRegisterService {
|
||||
boolean exist = memberService.exists(new LambdaQueryWrapper<Member>()
|
||||
.eq(Member::getPhoneEncrypted, phoneNumber));
|
||||
if (exist) {
|
||||
|
||||
|
||||
|
||||
throw new UserException("user.register.save.error", username);
|
||||
}
|
||||
|
||||
|
@ -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<IPage<DivideVO>> 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<DivideVO> 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();
|
||||
}
|
||||
|
||||
|
@ -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<DivideRuleVO> getInfo(@PathVariable("id") Long id) {
|
||||
return R.ok(convert.toVO(service.getById(id)));
|
||||
return R.ok(service.getVOById(id));
|
||||
}
|
||||
|
||||
@Tag(name = ("修改"))
|
||||
|
@ -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<Divide> {
|
||||
@ExcelProperty(value = "订单编号", order = 9)
|
||||
private String orderSn;
|
||||
|
||||
/**
|
||||
* 分账规则明细
|
||||
*/
|
||||
|
||||
@Schema(description = "分账规则明细")
|
||||
@ExcelProperty(value = "分账规则明细", order = 10)
|
||||
private List<DivideDetailBO> details=new ArrayList<>();
|
||||
|
||||
|
||||
}
|
||||
|
@ -26,6 +26,14 @@ public class DivideDetailBO extends BaseBO<DivideDetail> {
|
||||
@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<DivideDetail> {
|
||||
* */
|
||||
|
||||
private Integer type;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Schema(description = "状态")
|
||||
@ExcelProperty(value = "状态", order = 5)
|
||||
private Integer status;
|
||||
|
||||
|
||||
@Schema(description = "账户id")
|
||||
@ExcelProperty(value = "账户id", order = 6)
|
||||
|
@ -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<DivideRule> {
|
||||
@ExcelProperty(value ="类型", order = 8)
|
||||
private Integer type;
|
||||
|
||||
private List<DivideRuleDetailBO> details=new ArrayList<>();
|
||||
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ public class DivideRuleDetailBO extends BaseBO<DivideRuleDetail> {
|
||||
|
||||
@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<DivideRuleDetail> {
|
||||
@ExcelProperty(value ="手续费分配比例", order = 5)
|
||||
private BigDecimal feePercent;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Schema(description ="状态")
|
||||
@ExcelProperty(value ="状态", order = 7)
|
||||
private Integer status;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
|
@ -18,7 +18,7 @@ import java.math.BigDecimal;
|
||||
*/
|
||||
@Schema(description = "订单分账")
|
||||
@Data
|
||||
@TableName("oms_aftersale")
|
||||
@TableName("trans_divide")
|
||||
public class Divide extends BaseEntity {
|
||||
|
||||
/**
|
||||
|
@ -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 {
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
|
@ -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 {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
|
@ -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<DivideRuleDetailVO> details=new ArrayList<>();
|
||||
}
|
||||
|
@ -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<DivideDetailVO> details;
|
||||
|
||||
}
|
||||
|
@ -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 {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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<DivideDetail> {
|
||||
public interface DivideDetailMapper extends BaseMapperPlus<DivideDetail, DivideDetailVO> {
|
||||
|
||||
}
|
||||
|
@ -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 <Divide> {
|
||||
|
||||
DivideVO getVOById( Long divideId);
|
||||
}
|
||||
|
@ -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<DivideRuleDetail> {
|
||||
public interface DivideRuleDetailMapper extends BaseMapperPlus<DivideRuleDetail, DivideRuleDetailVO> {
|
||||
|
||||
}
|
||||
|
@ -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<DivideRule> {
|
||||
|
||||
boolean save( DivideRuleBO bo);
|
||||
|
||||
DivideRuleVO getVOById(Long divideId);
|
||||
}
|
||||
|
@ -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<Divide> {
|
||||
|
||||
boolean save( DivideBO bo);
|
||||
|
||||
DivideVO getVOById( Long divideId);
|
||||
}
|
||||
|
@ -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<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;
|
||||
}
|
||||
}
|
||||
|
@ -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<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;
|
||||
}
|
||||
}
|
||||
|
@ -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.transation.mapper.DivideMapper">
|
||||
|
||||
<select id="getVOById" resultType="com.wzj.soopin.transation.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>
|
Loading…
x
Reference in New Issue
Block a user