diff --git a/pom.xml b/pom.xml index edc5d2aec..ebc2af323 100644 --- a/pom.xml +++ b/pom.xml @@ -370,7 +370,12 @@ ${revision} - + + + org.dromara + ruoyi-transaction + ${revision} + org.dromara @@ -440,6 +445,7 @@ springdoc-openapi-starter-webmvc-ui ${springdoc.version} + @@ -501,7 +507,7 @@ -Dfile.encoding=UTF-8 - ${profiles.active} + dev exclude diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 0c58f9ef0..2b15e8609 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -107,6 +107,12 @@ ruoyi-workflow + + + org.dromara + ruoyi-transaction + + de.codecentric diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/CaptchaController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/CaptchaController.java index 03a628ad9..964f2bb76 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/CaptchaController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/CaptchaController.java @@ -58,7 +58,7 @@ public class CaptchaController { */ // @RateLimiter(key = "#phonenumber", time = 60, count = 1) @GetMapping("/resource/sms/code") - public R smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { + public R smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) { String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber; String code = RandomUtil.randomNumbers(4); RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION)); @@ -72,7 +72,7 @@ public class CaptchaController { // log.error("验证码短信发送异常 => {}", smsResponse); // return R.fail(smsResponse.getData().toString()); // } - return R.ok(); + return R.ok(code); } /** diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index 07d13655e..ce31f495e 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java @@ -52,6 +52,7 @@ import java.util.function.Supplier; @Service public class SysLoginService { + @Value("${user.password.maxRetryCount}") private Integer maxRetryCount; @@ -74,6 +75,8 @@ public class SysLoginService { */ @Lock4j public void socialRegister(AuthUser authUserData) { + + String authId = authUserData.getSource() + authUserData.getUuid(); // 第三方用户信息 SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class); diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index a39a68e61..7af35dcf1 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -258,8 +258,8 @@ springdoc: packages-to-scan: com.wzj.soopin.goods - group: 4.内容模块 packages-to-scan: com.wzj.soopin.content - - group: 5.结算模块 - packages-to-scan: com.wzj.soopin.pay + - group: 5.交易模块 + packages-to-scan: com.wzj.soopin.transaction - group: 6.IM模块 packages-to-scan: com.wzj.soopin.im - group: 7.系统模块 diff --git a/ruoyi-extend/ruoyi-snailjob-server/src/main/resources/application-dev.yml b/ruoyi-extend/ruoyi-snailjob-server/src/main/resources/application-dev.yml index 70ea80832..1cc2a370a 100644 --- a/ruoyi-extend/ruoyi-snailjob-server/src/main/resources/application-dev.yml +++ b/ruoyi-extend/ruoyi-snailjob-server/src/main/resources/application-dev.yml @@ -2,9 +2,9 @@ spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true - username: root - password: 123 + url: jdbc:mysql://82.156.121.2:23306/wzj?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true + username: wzj + password: A085F27A43B0 hikari: connection-timeout: 30000 validation-timeout: 5000 diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index ffd1dc24f..341099bdf 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -21,6 +21,7 @@ ruoyi-content ruoyi-im ruoyi-auth + ruoyi-transaction ruoyi-modules diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java index dc5f0c417..fb409828e 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java @@ -378,6 +378,8 @@ public class VlogServiceImpl extends BaseInfoProperties implements VlogService { } @Override + + public Map getVlogStatistics(String fileId) { Map result = new HashMap<>(); diff --git a/ruoyi-modules/ruoyi-member/pom.xml b/ruoyi-modules/ruoyi-member/pom.xml index 84c541590..4bd40fbc6 100644 --- a/ruoyi-modules/ruoyi-member/pom.xml +++ b/ruoyi-modules/ruoyi-member/pom.xml @@ -21,6 +21,7 @@ ruoyi-common-core + org.dromara ruoyi-common-doc @@ -98,21 +99,22 @@ org.dromara ruoyi-common-sse + - + - + - + diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java index bd5a9f58e..7bd60afdf 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FeedbackController.java @@ -3,6 +3,7 @@ package com.wzj.soopin.member.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +//import com.wzj.soopin.content.service.VlogService; import com.wzj.soopin.member.convert.FeedbackConvert; import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.bo.FeedbackBO; @@ -40,6 +41,8 @@ public class FeedbackController { private final IMemberService memberService; +// private final VlogService vlogService; + @Tag(name = "查询意见反馈列表") @PostMapping("/list") diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/ChargeConvert.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/ChargeConvert.java deleted file mode 100644 index 5616731ef..000000000 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/ChargeConvert.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.wzj.soopin.member.convert; - -import com.wzj.soopin.member.domain.bo.ChargeBO; -import com.wzj.soopin.member.domain.bo.FansBO; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.po.Fans; -import com.wzj.soopin.member.domain.vo.ChargeVO; -import com.wzj.soopin.member.domain.vo.FansVO; -import org.dromara.common.web.core.BaseConverter; -import org.mapstruct.Mapper; - -/** - * 充值 - * - * @author zcc - */ -@Mapper(componentModel = "spring",uses = BaseConverter.class) -public interface ChargeConvert extends BaseConverter { -} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/YishengAccountVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/YishengAccountVO.java deleted file mode 100644 index 570071dcd..000000000 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/YishengAccountVO.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.wzj.soopin.member.domain.vo; - - -import com.alibaba.excel.annotation.ExcelProperty; -import com.wzj.soopin.member.annotation.MemberFillField; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Builder; -import lombok.Data; -import org.dromara.common.core.domain.model.BaseAudit; - -import java.math.BigDecimal; -import java.time.LocalDateTime; - -/** - * 易生平台账户信息 - * - * @author wzj - * @date 2023-03-07 - */ -@Schema(description="易生") -@Data -@Builder(toBuilder = true) -public class YishengAccountVO extends BaseAudit { - - /** - * 主键 - */ - @Schema(description ="主键") - @ExcelProperty(value = "主键", order = 1) - private Long id; - - /** - * 会员id - */ - @Schema(description ="会员id") - @ExcelProperty(value ="会员id", order = 3) - private Long memberId; - - - /** - * 金额 - */ - @Schema(description ="金额") - @ExcelProperty(value ="金额", order = 4) - private BigDecimal balance; - - -} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/WithdrawMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/WithdrawMapper.java deleted file mode 100644 index cd8de3c45..000000000 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/WithdrawMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.wzj.soopin.member.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.wzj.soopin.member.domain.po.Withdraw; -import org.apache.ibatis.annotations.Select; - -public interface WithdrawMapper extends BaseMapper { - -} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IWithdrawService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IWithdrawService.java deleted file mode 100644 index c666c6132..000000000 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IWithdrawService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.wzj.soopin.member.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.wzj.soopin.member.domain.bo.WithdrawBO; -import com.wzj.soopin.member.domain.po.Feedback; -import com.wzj.soopin.member.domain.po.Withdraw; -import com.wzj.soopin.member.domain.vo.FeedbackVO; - -import java.io.Serializable; - -public interface IWithdrawService extends IService { - boolean audit(WithdrawBO bo); - - boolean withdraw(Long id); -} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IYishengService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IYishengService.java deleted file mode 100644 index 50dd109da..000000000 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IYishengService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.wzj.soopin.member.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.wzj.soopin.member.domain.po.Withdraw; -import com.wzj.soopin.member.domain.vo.YishengAccountVO; - -import java.math.BigDecimal; - -/** - * 易生支付的service - */ -public interface IYishengService { - YishengAccountVO getYishengAccount(Long memberId); - - boolean withdraw(Long memberId, BigDecimal money); - - - boolean syncMemberAccount(); -} 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-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java index 032c206ec..5aebaad54 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java @@ -26,6 +26,7 @@ import org.dromara.common.core.exception.ServiceException; import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.satoken.utils.LoginHelper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; import org.springframework.scheduling.annotation.Scheduled; @@ -66,7 +67,7 @@ public class MemberServiceImpl extends ServiceImpl implemen @Override - @CachePut(value = CacheConstants.MEMBER, key = "#id") + @CacheEvict(value = CacheConstants.MEMBER, key = "#id") public boolean save(Member entity) { super.save(entity); @@ -95,8 +96,7 @@ public class MemberServiceImpl extends ServiceImpl implemen return true; } - @CachePut(value = CacheConstants.MEMBER, key = "#id") - + @CacheEvict(value = CacheConstants.MEMBER, key = "#id") public int updateMark(MemberBO member) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.set("mark",member.getMark()) @@ -107,6 +107,7 @@ public class MemberServiceImpl extends ServiceImpl implemen + @CacheEvict(value = CacheConstants.MEMBER, key = "#id") public Integer changeStatus(MemberBO bo) { UpdateWrapper wrapper = new UpdateWrapper<>(); wrapper.eq("id", bo.getId()); @@ -251,13 +252,14 @@ public class MemberServiceImpl extends ServiceImpl implemen @Override -// @Cacheable (cacheNames = CacheConstants.MEMBER, key = "#id") + public Member getById(Serializable id) { return super.getById(id); } @Override + @Cacheable (cacheNames = CacheConstants.MEMBER, key = "#id") public MemberVO getMemberInfo(Serializable id) { return memberConvert.toVO(getById(id)); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java index 974e7da1c..860ae05a5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java @@ -66,7 +66,8 @@ public class OrderServiceImpl extends ServiceImpl implements private final VerificationCodeService verificationCodeService; private final SysTenantMapper sysTenantMapper; - public OrderServiceImpl(OrderMapper orderMapper, OrderItemMapper orderItemMapper, SkuMapper skuMapper, OrderOperateHistoryMapper orderOperateHistoryMapper, MemberMapper memberMapper, OrderDeliveryHistoryMapper orderDeliveryHistoryMapper, VerificationCodeService verificationCodeService, SysTenantMapper sysTenantMapper) { + public OrderServiceImpl(OrderMapper orderMapper, OrderItemMapper orderItemMapper, SkuMapper skuMapper, + OrderOperateHistoryMapper orderOperateHistoryMapper, MemberMapper memberMapper, OrderDeliveryHistoryMapper orderDeliveryHistoryMapper, VerificationCodeService verificationCodeService, SysTenantMapper sysTenantMapper) { this.orderMapper = orderMapper; this.orderItemMapper = orderItemMapper; this.skuMapper = skuMapper; diff --git a/ruoyi-modules/ruoyi-transaction/pom.xml b/ruoyi-modules/ruoyi-transaction/pom.xml new file mode 100644 index 000000000..583de9996 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/pom.xml @@ -0,0 +1,108 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + + 4.0.0 + + ruoyi-transaction + + + 交易模块 + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-translation + + + + + org.dromara + ruoyi-common-oss + + + + org.dromara + ruoyi-common-log + + + + + org.dromara + ruoyi-common-excel + + + + + org.dromara + ruoyi-common-sms + + + + org.dromara + ruoyi-common-tenant + + + + org.dromara + ruoyi-common-security + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-idempotent + + + + org.dromara + ruoyi-common-sensitive + + + + org.dromara + ruoyi-common-encrypt + + + + org.dromara + ruoyi-common-websocket + + + + org.dromara + ruoyi-order + + + org.dromara + ruoyi-member + + + diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/ChargeController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/ChargeController.java similarity index 76% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/ChargeController.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/ChargeController.java index 15c4af9ca..abc67c4ff 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/ChargeController.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/ChargeController.java @@ -1,18 +1,13 @@ -package com.wzj.soopin.member.controller; +package com.wzj.soopin.transaction.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.annotation.MemberFillMethod; -import com.wzj.soopin.member.convert.ChargeConvert; -import com.wzj.soopin.member.convert.MemberForbiddenConvert; -import com.wzj.soopin.member.domain.bo.ChargeBO; -import com.wzj.soopin.member.domain.bo.MemberForbiddenBO; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.po.MemberForbidden; -import com.wzj.soopin.member.domain.vo.ChargeVO; -import com.wzj.soopin.member.domain.vo.MemberForbiddenVO; -import com.wzj.soopin.member.service.IChargeService; -import com.wzj.soopin.member.service.IMemberForbiddenService; +import com.wzj.soopin.transaction.convert.ChargeConvert; +import com.wzj.soopin.transaction.domain.bo.ChargeBO; +import com.wzj.soopin.transaction.domain.po.Charge; +import com.wzj.soopin.transaction.domain.vo.ChargeVO; +import com.wzj.soopin.transaction.service.IChargeService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; @@ -25,7 +20,7 @@ import org.springframework.web.bind.annotation.*; */ @Tag(name = "用户封禁") @RestController -@RequestMapping("/ums/charge") +@RequestMapping("/trans/charge") @RequiredArgsConstructor public class ChargeController { diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideController.java new file mode 100644 index 000000000..c4dca8dcf --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideController.java @@ -0,0 +1,65 @@ +package com.wzj.soopin.transaction.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wzj.soopin.transaction.convert.DivideConvert; +import com.wzj.soopin.transaction.domain.bo.DivideBO; +import com.wzj.soopin.transaction.domain.po.Divide; +import com.wzj.soopin.transaction.domain.vo.DivideVO; +import com.wzj.soopin.transaction.service.IDivideService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.springframework.web.bind.annotation.*; + +/** + * 用户封禁 + */ +@Tag(name = "分账") +@RestController +@RequestMapping("/trans/divide") +@RequiredArgsConstructor +public class DivideController { + + private final IDivideService service; + private final DivideConvert convert; + + + @Tag(name = "查询列表") + @PostMapping("/list") + public R> list(@RequestBody DivideBO bo, @RequestBody Page page) { + Page pages = service.page(page, bo.toWrapper()); + return R.ok(convert.toVO(pages)); + } + + @Tag(name = "新增") + @Log(title = "新增 ", businessType = BusinessType.INSERT) + @PostMapping("/add") + public R add(@RequestBody DivideBO bo) { + return R.ok(service.save(bo)); + } + + @Tag(name = "详情") + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") Long id) { + return R.ok(service.getVOById(id)); + } + + @Tag(name = ("回调更新")) + @Log(title = "回调更新", businessType = BusinessType.UPDATE) + @PostMapping("/callback") + public R callback(@RequestBody DivideBO bo) { + service.updateById(convert.toPo(bo)); + return R.ok(); + } + + + @Tag(name = "删除") + @Log(title = "删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public R remove(@PathVariable Long id) { + return R.ok(service.removeById(id)); + } +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java new file mode 100644 index 000000000..c9b1d0aa5 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java @@ -0,0 +1,73 @@ +package com.wzj.soopin.transaction.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wzj.soopin.transaction.convert.DivideRuleConvert; +import com.wzj.soopin.transaction.domain.bo.DivideRuleBO; +import com.wzj.soopin.transaction.domain.po.DivideRule; +import com.wzj.soopin.transaction.domain.vo.DivideRuleVO; +import com.wzj.soopin.transaction.service.IDivideRuleService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.springframework.web.bind.annotation.*; + +/** + * 用户封禁 + */ +@Tag(name = "分账") +@RestController +@RequestMapping("/trans/divide/rule") +@RequiredArgsConstructor +public class DivideRuleController { + + private final IDivideRuleService service; + private final DivideRuleConvert convert; + + @Tag(name = "查询列表") + @PostMapping("/list") + public R> list(@RequestBody DivideRuleBO bo, @RequestBody Page page) { + Page pages = service.page(page, bo.toWrapper()); + return R.ok(convert.toVO(pages)); + } + + @Tag(name = "新增") + @Log(title = "新增 ", businessType = BusinessType.INSERT) + @PostMapping("/add") + public R add(@RequestBody DivideRuleBO bo) { + return R.ok(service.save(bo)); + } + + @Tag(name = "详情") + @GetMapping(value = "/{id}") + public R getInfo(@PathVariable("id") Long id) { + return R.ok(service.getVOById(id)); + } + + @Tag(name = ("修改")) + @Log(title = "修改", businessType = BusinessType.UPDATE) + @PostMapping("/update") + public R update(@RequestBody DivideRuleBO bo) { + service.save(convert.toPo(bo)); + return R.ok(); + } + + @Tag(name = ("启用停用")) + @Log(title = "启用停用", businessType = BusinessType.UPDATE) + @PostMapping("/change") + public R change(@RequestBody DivideRuleBO bo) { + service.save(convert.toPo(bo)); + return R.ok(); + } + + + + @Tag(name = "删除") + @Log(title = "删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public R remove(@PathVariable Long id) { + return R.ok(service.removeById(id)); + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/WithdrawController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/WithdrawController.java similarity index 74% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/WithdrawController.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/WithdrawController.java index 02a78dcf7..2be39f67b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/WithdrawController.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/WithdrawController.java @@ -1,18 +1,13 @@ -package com.wzj.soopin.member.controller; +package com.wzj.soopin.transaction.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.member.annotation.MemberFillMethod; -import com.wzj.soopin.member.convert.MemberForbiddenConvert; -import com.wzj.soopin.member.convert.WithdrawConvert; -import com.wzj.soopin.member.domain.bo.MemberForbiddenBO; -import com.wzj.soopin.member.domain.bo.WithdrawBO; -import com.wzj.soopin.member.domain.po.MemberForbidden; -import com.wzj.soopin.member.domain.po.Withdraw; -import com.wzj.soopin.member.domain.vo.MemberForbiddenVO; -import com.wzj.soopin.member.domain.vo.WithdrawVO; -import com.wzj.soopin.member.service.IMemberForbiddenService; -import com.wzj.soopin.member.service.IWithdrawService; +import com.wzj.soopin.transaction.convert.WithdrawConvert; +import com.wzj.soopin.transaction.domain.bo.WithdrawBO; +import com.wzj.soopin.transaction.domain.po.Withdraw; +import com.wzj.soopin.transaction.domain.vo.WithdrawVO; +import com.wzj.soopin.transaction.service.IWithdrawService; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; @@ -25,7 +20,7 @@ import org.springframework.web.bind.annotation.*; */ @Tag(name = "提现") @RestController -@RequestMapping("/ums/withdraw") +@RequestMapping("/trans/withdraw") @RequiredArgsConstructor public class WithdrawController { diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/ChargeConvert.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/ChargeConvert.java new file mode 100644 index 000000000..3cf16f1cc --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/ChargeConvert.java @@ -0,0 +1,16 @@ +package com.wzj.soopin.transaction.convert; + +import com.wzj.soopin.transaction.domain.bo.ChargeBO; +import com.wzj.soopin.transaction.domain.po.Charge; +import com.wzj.soopin.transaction.domain.vo.ChargeVO; +import org.dromara.common.web.core.BaseConverter; +import org.mapstruct.Mapper; + +/** + * 充值 + * + * @author zcc + */ +@Mapper(componentModel = "spring",uses = BaseConverter.class) +public interface ChargeConvert extends BaseConverter { +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideConvert.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideConvert.java new file mode 100644 index 000000000..9bbfd3732 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideConvert.java @@ -0,0 +1,12 @@ +package com.wzj.soopin.transaction.convert; + + +import com.wzj.soopin.transaction.domain.bo.DivideBO; +import com.wzj.soopin.transaction.domain.po.Divide; +import com.wzj.soopin.transaction.domain.vo.DivideVO; +import org.dromara.common.web.core.BaseConverter; +import org.mapstruct.Mapper; + +@Mapper(componentModel = "spring",uses = BaseConverter.class) +public interface DivideConvert extends BaseConverter { +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideDetailConvert.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideDetailConvert.java new file mode 100644 index 000000000..b192cc5a8 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideDetailConvert.java @@ -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 { +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideRuleConvert.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideRuleConvert.java new file mode 100644 index 000000000..f965b9ddc --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideRuleConvert.java @@ -0,0 +1,12 @@ +package com.wzj.soopin.transaction.convert; + + +import com.wzj.soopin.transaction.domain.bo.DivideRuleBO; +import com.wzj.soopin.transaction.domain.po.DivideRule; +import com.wzj.soopin.transaction.domain.vo.DivideRuleVO; +import org.dromara.common.web.core.BaseConverter; +import org.mapstruct.Mapper; + +@Mapper(componentModel = "spring",uses = BaseConverter.class) +public interface DivideRuleConvert extends BaseConverter { +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideRuleDetailConvert.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideRuleDetailConvert.java new file mode 100644 index 000000000..16e02a1b8 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/DivideRuleDetailConvert.java @@ -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 { +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/WithdrawConvert.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/WithdrawConvert.java similarity index 56% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/WithdrawConvert.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/WithdrawConvert.java index 3abb98d77..ba00b25fc 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/convert/WithdrawConvert.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/convert/WithdrawConvert.java @@ -1,8 +1,8 @@ -package com.wzj.soopin.member.convert; +package com.wzj.soopin.transaction.convert; -import com.wzj.soopin.member.domain.bo.WithdrawBO; -import com.wzj.soopin.member.domain.po.Withdraw; -import com.wzj.soopin.member.domain.vo.WithdrawVO; +import com.wzj.soopin.transaction.domain.bo.WithdrawBO; +import com.wzj.soopin.transaction.domain.po.Withdraw; +import com.wzj.soopin.transaction.domain.vo.WithdrawVO; import org.dromara.common.web.core.BaseConverter; import org.mapstruct.Mapper; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/ChargeBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/ChargeBO.java similarity index 93% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/ChargeBO.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/ChargeBO.java index 3182146d5..ea93b198d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/ChargeBO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/ChargeBO.java @@ -1,9 +1,8 @@ -package com.wzj.soopin.member.domain.bo; +package com.wzj.soopin.transaction.domain.bo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.po.Withdraw; +import com.wzj.soopin.transaction.domain.po.Charge; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideBO.java new file mode 100644 index 000000000..a66a0cb05 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideBO.java @@ -0,0 +1,93 @@ +package com.wzj.soopin.transaction.domain.bo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.wzj.soopin.transaction.domain.po.Divide; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.BaseBO; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * 订单分账 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description = "订单分账") +@Data +public class DivideBO extends BaseBO { + + /** + * 主键 + */ + @Schema(description = "主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + /** + * 分账规则id + */ + @Schema(description = "分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + + + /** + * 金额 + */ + @Schema(description = "订单总金额") + @ExcelProperty(value = "订单总金额", order = 4) + private BigDecimal orderMoney; + + /** + * 手续费 + */ + @Schema(description = "手续费") + @ExcelProperty(value = "手续费", order = 5) + private BigDecimal fee; + /** + * 金额分配比例 + */ + @Schema(description = "实际分账金额") + @ExcelProperty(value = "实际分账金额", order = 5) + private BigDecimal actualMoney; + + @Schema(description = "适用订单类型") + private Integer type; + /** + * 状态 + */ + @Schema(description = "状态") + @ExcelProperty(value = "状态", order = 5) + private Integer status; + + + /** + * 订单id + * */ + @Schema(description = "订单id") + @ExcelProperty(value = "订单id", order = 8) + private Long orderId; + + /** + * 订单编号 + * */ + @Schema(description = "订单编号") + @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/transaction/domain/bo/DivideDetailBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideDetailBO.java new file mode 100644 index 000000000..bb959267c --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideDetailBO.java @@ -0,0 +1,109 @@ +package com.wzj.soopin.transaction.domain.bo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.wzj.soopin.transaction.domain.po.DivideDetail; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.BaseBO; + +import java.math.BigDecimal; + +/** + * 分账规则明细 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description = "订单分账明细") +@Data +public class DivideDetailBO extends BaseBO { + + /** + * 主键 + */ + @Schema(description = "主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + + /** + * 分账id + */ + @Schema(description = "分账id") + @ExcelProperty(value = "分账id", order = 2) + private Long divideId; + + /** + * 分账规则id + */ + @Schema(description = "分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + /** + * 分账规则明细id + */ + @Schema(description = "分账规则明细id") + @ExcelProperty(value = "分账规则明细id", order = 3) + private Long ruleDetailId; + + /** + * 金额 + */ + @Schema(description = "金额") + @ExcelProperty(value = "金额", order = 4) + private BigDecimal money; + + /** + * 手续费 + */ + @Schema(description = "手续费") + @ExcelProperty(value = "手续费", order = 5) + private BigDecimal fee; + /** + * 金额分配比例 + */ + @Schema(description = "金额分配比例") + @ExcelProperty(value = "金额分配比例", order = 5) + + private BigDecimal moneyPercent; + /** + * 手续费分配比例 + */ + @Schema(description = "手续费分配比例") + @ExcelProperty(value = "手续费分配比例", order = 5) + + private BigDecimal feePercent; + /** + * 账户类型 1 平台 2 商户 3 代理人 + * */ + + private Integer type; + + + @Schema(description = "账户id") + @ExcelProperty(value = "账户id", order = 6) + private Long accountId; + /** + * 账户名称 + * */ + @Schema(description = "账户名称") + @ExcelProperty(value = "账户名称", order = 7) + private String accountName; + /** + * 订单id + * */ + @Schema(description = "订单id") + @ExcelProperty(value = "订单id", order = 8) + private Long orderId; + + /** + * 订单编号 + * */ + @Schema(description = "订单编号") + @ExcelProperty(value = "订单编号", order = 9) + private String orderSn; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideRuleBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideRuleBO.java new file mode 100644 index 000000000..b35ce9756 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideRuleBO.java @@ -0,0 +1,66 @@ +package com.wzj.soopin.transaction.domain.bo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.wzj.soopin.transaction.domain.po.DivideRule; +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; + +/** + * 分账规则 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description="分账规则") +@Data +public class DivideRuleBO extends BaseBO { + + /** + * 主键 + */ + @Schema(description ="主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + /** + * 提现码 + */ + + @Schema(description ="编号") + @ExcelProperty(value = "编号", order = 2) + private String code; + + + @Schema(description ="名称") + @ExcelProperty(value ="名称", order = 3) + private String name; + + @Schema(description ="是否分配手续费") + @ExcelProperty(value ="是否分配手续费", order = 4) + private Integer divideFeeFlag; + + @Schema(description ="手续费分配方式") + @ExcelProperty(value ="手续费分配方式", order = 5) + private Integer feeType; + + /** + * 状态 + */ + @Schema(description ="状态") + @ExcelProperty(value ="状态", order = 7) + private Integer status; + /** + * 类型 + */ + @Schema(description ="适用订单类型") + @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/transaction/domain/bo/DivideRuleDetailBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideRuleDetailBO.java new file mode 100644 index 000000000..dc712d7cf --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/DivideRuleDetailBO.java @@ -0,0 +1,54 @@ +package com.wzj.soopin.transaction.domain.bo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.wzj.soopin.transaction.domain.po.DivideRuleDetail; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.core.domain.BaseBO; + +import java.math.BigDecimal; + +/** + * 分账规则明细 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description="分账规则明细") +@Data +public class DivideRuleDetailBO extends BaseBO { + + /** + * 主键 + */ + @Schema(description ="主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + /** + * 提现码 + */ + + @Schema(description ="分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + + @Schema(description ="金额分配比例") + @ExcelProperty(value ="金额分配比例", order = 4) + private BigDecimal moneyPercent; + + @Schema(description ="手续费分配比例") + @ExcelProperty(value ="手续费分配比例", order = 5) + private BigDecimal feePercent; + + /** + * 类型 + */ + @Schema(description ="账户类型 1 平台 2 商户 3 代理人") + @ExcelProperty(value ="类型", order = 8) + private Integer type; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/WithdrawBO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/WithdrawBO.java similarity index 89% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/WithdrawBO.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/WithdrawBO.java index 6643b3c14..db64bc9c3 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/bo/WithdrawBO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/WithdrawBO.java @@ -1,14 +1,11 @@ -package com.wzj.soopin.member.domain.bo; +package com.wzj.soopin.transaction.domain.bo; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.wzj.soopin.member.domain.po.Withdraw; +import com.wzj.soopin.transaction.domain.po.Withdraw; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.BaseBO; -import org.dromara.common.core.domain.model.BaseAudit; import java.math.BigDecimal; import java.time.LocalDateTime; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Charge.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Charge.java similarity index 94% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Charge.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Charge.java index 537a09150..908fb08e0 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Charge.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Charge.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.member.domain.po; +package com.wzj.soopin.transaction.domain.po; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -14,7 +14,7 @@ import java.time.LocalDateTime; */ @Schema(description="充值") @Data -@TableName("ums_charge") +@TableName("trans_charge") public class Charge extends BaseAudit { /** diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Divide.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Divide.java new file mode 100644 index 000000000..7655c84de --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Divide.java @@ -0,0 +1,84 @@ +package com.wzj.soopin.transaction.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; + +import java.math.BigDecimal; + +/** + * 订单分账 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description = "订单分账") +@Data +@TableName("trans_divide") +public class Divide extends BaseEntity { + + /** + * 主键 + */ + @Schema(description = "主键") + @ExcelProperty(value = "主键", order = 1) + @TableId + private Long id; + + /** + * 分账规则id + */ + @Schema(description = "分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + /** + * 金额 + */ + @Schema(description = "订单总金额") + @ExcelProperty(value = "订单总金额", order = 4) + private BigDecimal orderMoney; + + /** + * 手续费 + */ + @Schema(description = "手续费") + @ExcelProperty(value = "手续费", order = 5) + private BigDecimal fee; + /** + * 金额分配比例 + */ + @Schema(description = "实际分账金额") + @ExcelProperty(value = "实际分账金额", order = 5) + private BigDecimal actualMoney; + + + /** + * 状态 + */ + @Schema(description = "状态") + @ExcelProperty(value = "状态", order = 5) + private Integer status; + + + /** + * 订单id + * */ + @Schema(description = "订单id") + @ExcelProperty(value = "订单id", order = 8) + private Long orderId; + + + /** + * 订单编号 + * */ + @Schema(description = "订单编号") + @ExcelProperty(value = "订单编号", order = 9) + private String orderSn; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideDetail.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideDetail.java new file mode 100644 index 000000000..cbb69fce6 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideDetail.java @@ -0,0 +1,110 @@ +package com.wzj.soopin.transaction.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; + +import java.math.BigDecimal; + +/** + * 分账规则明细 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description = "订单分账明细") +@Data +@TableName("trans_divide_detail") +public class DivideDetail extends BaseEntity { + + /** + * 主键 + */ + @Schema(description = "主键") + @ExcelProperty(value = "主键", order = 1) + @TableId + private Long id; + + + /** + * 分账规则id + */ + @Schema(description = "分账id") + @ExcelProperty(value = "分账id", order = 2) + private Long divideId; + + /** + * 分账规则明细id + */ + @Schema(description = "分账规则明细id") + @ExcelProperty(value = "分账规则明细id", order = 3) + private Long ruleDetailId; + + /** + * 金额 + */ + @Schema(description = "金额") + @ExcelProperty(value = "金额", order = 4) + private BigDecimal money; + + /** + * 手续费 + */ + @Schema(description = "手续费") + @ExcelProperty(value = "手续费", order = 5) + private BigDecimal fee; + /** + * 金额分配比例 + */ + @Schema(description = "金额分配比例") + @ExcelProperty(value = "金额分配比例", order = 5) + + private BigDecimal moneyPercent; + /** + * 手续费分配比例 + */ + @Schema(description = "手续费分配比例") + @ExcelProperty(value = "手续费分配比例", order = 5) + + private BigDecimal feePercent; + /** + * 账户类型 1 平台 2 商户 3 代理人 + * */ + + private Integer type; + /** + * 状态 + */ + @Schema(description = "状态 0 未分账 1 分账成功 2 分账失败") + @ExcelProperty(value = "状态", order = 5) + private Integer status; + + @Schema(description = "账户id") + @ExcelProperty(value = "账户id", order = 6) + private Long accountId; + /** + * 账户名称 + * */ + @Schema(description = "账户名称") + @ExcelProperty(value = "账户名称", order = 7) + private String accountName; + /** + * 订单id + * */ + @Schema(description = "订单id") + @ExcelProperty(value = "订单id", order = 8) + private Long orderId; + + /** + * 订单编号 + * */ + @Schema(description = "订单编号") + @ExcelProperty(value = "订单编号", order = 9) + private String orderSn; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideRule.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideRule.java new file mode 100644 index 000000000..2ac2ba9cc --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideRule.java @@ -0,0 +1,65 @@ +package com.wzj.soopin.transaction.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; + +/** + * 分账规则 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description="分账规则") +@Data +@TableName("trans_divide_rule") +public class DivideRule extends BaseEntity { + + /** + * 主键 + */ + @Schema(description ="主键") + @ExcelProperty(value = "主键", order = 1) + @TableId + private Long id; + + /** + * 提现码 + */ + + @Schema(description ="编号") + @ExcelProperty(value = "编号", order = 2) + private String code; + + + @Schema(description ="名称") + @ExcelProperty(value ="名称", order = 3) + private String name; + + @Schema(description ="是否分配手续费") + @ExcelProperty(value ="是否分配手续费", order = 4) + private Integer divideFeeFlag; + + @Schema(description ="手续费分配方式") + @ExcelProperty(value ="手续费分配方式", order = 5) + private Integer feeType; + + /** + * 状态 + */ + @Schema(description ="状态") + @ExcelProperty(value ="状态", order = 7) + private Integer status; + /** + * 类型 + */ + @Schema(description ="适用订单类型") + @ExcelProperty(value ="类型", order = 8) + private Integer type; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideRuleDetail.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideRuleDetail.java new file mode 100644 index 000000000..182c2711b --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/DivideRuleDetail.java @@ -0,0 +1,55 @@ +package com.wzj.soopin.transaction.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; + +import java.math.BigDecimal; + +/** + * 分账规则明细 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description="分账规则明细") +@Data +@TableName("trans_divide_rule_detail") +public class DivideRuleDetail extends BaseEntity { + + /** + * 主键 + */ + @Schema(description ="主键") + @ExcelProperty(value = "主键", order = 1) + @TableId + private Long id; + + + + @Schema(description ="分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + + @Schema(description ="金额分配比例") + @ExcelProperty(value ="金额分配比例", order = 4) + private BigDecimal moneyPercent; + + @Schema(description ="手续费分配比例") + @ExcelProperty(value ="手续费分配比例", order = 5) + private BigDecimal feePercent; + + /** + * 类型 + */ + @Schema(description ="账户类型 1 平台 2 商户 3 代理人") + @ExcelProperty(value ="类型", order = 8) + private Integer type; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Withdraw.java similarity index 93% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Withdraw.java index 99d0e8e29..003a50d17 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/po/Withdraw.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/po/Withdraw.java @@ -1,7 +1,6 @@ -package com.wzj.soopin.member.domain.po; +package com.wzj.soopin.transaction.domain.po; -import com.alibaba.excel.annotation.format.DateTimeFormat; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/ChargeVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/ChargeVO.java similarity index 92% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/ChargeVO.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/ChargeVO.java index 2a1787ae4..131f00e28 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/ChargeVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/ChargeVO.java @@ -1,11 +1,13 @@ -package com.wzj.soopin.member.domain.vo; +package com.wzj.soopin.transaction.domain.vo; import com.alibaba.excel.annotation.ExcelProperty; import com.wzj.soopin.member.annotation.MemberFillField; +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; @@ -18,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/transaction/domain/vo/DivideDetailVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideDetailVO.java new file mode 100644 index 000000000..64b26cfd7 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideDetailVO.java @@ -0,0 +1,101 @@ +package com.wzj.soopin.transaction.domain.vo; + + +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; + +/** + * 分账规则明细 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description = "订单分账明细") +@Data +public class DivideDetailVO extends BaseEntity { + + /** + * 主键 + */ + @Schema(description = "主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + /** + * 分账规则id + */ + @Schema(description = "分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + /** + * 分账规则明细id + */ + @Schema(description = "分账规则明细id") + @ExcelProperty(value = "分账规则明细id", order = 3) + private Long ruleDetailId; + + /** + * 金额 + */ + @Schema(description = "金额") + @ExcelProperty(value = "金额", order = 4) + private BigDecimal money; + + /** + * 手续费 + */ + @Schema(description = "手续费") + @ExcelProperty(value = "手续费", order = 5) + private BigDecimal fee; + /** + * 金额分配比例 + */ + @Schema(description = "金额分配比例") + @ExcelProperty(value = "金额分配比例", order = 5) + + private BigDecimal moneyPercent; + /** + * 手续费分配比例 + */ + @Schema(description = "手续费分配比例") + @ExcelProperty(value = "手续费分配比例", order = 5) + + private BigDecimal feePercent; + /** + * 账户类型 1 平台 2 商户 3 代理人 + * */ + + private Integer type; + + + @Schema(description = "账户id") + @ExcelProperty(value = "账户id", order = 6) + private Long accountId; + /** + * 账户名称 + * */ + @Schema(description = "账户名称") + @ExcelProperty(value = "账户名称", order = 7) + private String accountName; + /** + * 订单id + * */ + @Schema(description = "订单id") + @ExcelProperty(value = "订单id", order = 8) + private Long orderId; + + /** + * 订单编号 + * */ + @Schema(description = "订单编号") + @ExcelProperty(value = "订单编号", order = 9) + private String orderSn; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideRuleDetailVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideRuleDetailVO.java new file mode 100644 index 000000000..26ca81b8b --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideRuleDetailVO.java @@ -0,0 +1,55 @@ +package com.wzj.soopin.transaction.domain.vo; + + +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; + +/** + * 分账规则明细 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description="分账规则明细") +@Data +public class DivideRuleDetailVO extends BaseEntity { + + /** + * 主键 + */ + @Schema(description ="主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + /** + * 提现码 + */ + + @Schema(description ="分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + + @Schema(description ="金额分配比例") + @ExcelProperty(value ="金额分配比例", order = 4) + private BigDecimal moneyPercent; + + @Schema(description ="手续费分配比例") + @ExcelProperty(value ="手续费分配比例", order = 5) + private BigDecimal feePercent; + + + /** + * 类型 + */ + @Schema(description ="账户类型 1 平台 2 商户 3 代理人") + @ExcelProperty(value ="类型", order = 8) + private Integer type; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideRuleVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideRuleVO.java new file mode 100644 index 000000000..651365247 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideRuleVO.java @@ -0,0 +1,72 @@ +package com.wzj.soopin.transaction.domain.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.util.ArrayList; +import java.util.List; + +/** + * 分账规则 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description="分账规则") +@Data +public class DivideRuleVO extends BaseEntity { + + /** + * 主键 + */ + @Schema(description ="主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + + + @Schema(description ="分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + /** + * 提现码 + */ + + @Schema(description ="编号") + @ExcelProperty(value = "编号", order = 2) + private String code; + + + @Schema(description ="名称") + @ExcelProperty(value ="名称", order = 3) + private String name; + + @Schema(description ="是否分配手续费") + @ExcelProperty(value ="是否分配手续费", order = 4) + private Integer divideFeeFlag; + + @Schema(description ="手续费分配方式") + @ExcelProperty(value ="手续费分配方式", order = 5) + private Integer feeType; + + /** + * 状态 + */ + @Schema(description ="状态") + @ExcelProperty(value ="状态", order = 7) + private Integer status; + /** + * 类型 + */ + @Schema(description ="适用订单类型") + @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/transaction/domain/vo/DivideVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideVO.java new file mode 100644 index 000000000..ea353829c --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/DivideVO.java @@ -0,0 +1,86 @@ +package com.wzj.soopin.transaction.domain.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 订单分账 + * + * @author wzj + * @date 2023-03-07 + */ +@Schema(description = "订单分账") +@Data +public class DivideVO extends BaseEntity { + + /** + * 主键 + */ + @Schema(description = "主键") + @ExcelProperty(value = "主键", order = 1) + private Long id; + + /** + * 分账规则id + */ + @Schema(description = "分账规则id") + @ExcelProperty(value = "分账规则id", order = 2) + private Long ruleId; + + private String ruleName; + + + + /** + * 金额 + */ + @Schema(description = "订单总金额") + @ExcelProperty(value = "订单总金额", order = 4) + private BigDecimal orderMoney; + + /** + * 手续费 + */ + @Schema(description = "手续费") + @ExcelProperty(value = "手续费", order = 5) + private BigDecimal fee; + /** + * 金额分配比例 + */ + @Schema(description = "实际分账金额") + @ExcelProperty(value = "实际分账金额", order = 5) + private BigDecimal actualMoney; + + @Schema(description = "适用订单类型") + private Integer type; + /** + * 状态 + */ + @Schema(description = "状态") + @ExcelProperty(value = "状态", order = 5) + private Integer status; + + + /** + * 订单id + * */ + @Schema(description = "订单id") + @ExcelProperty(value = "订单id", order = 8) + private Long orderId; + + /** + * 订单编号 + * */ + @Schema(description = "订单编号") + @ExcelProperty(value = "订单编号", order = 9) + private String orderSn; + + private List details; + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/WithdrawVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/WithdrawVO.java similarity index 92% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/WithdrawVO.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/WithdrawVO.java index eb24ade16..4332e1493 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/WithdrawVO.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/WithdrawVO.java @@ -1,13 +1,13 @@ -package com.wzj.soopin.member.domain.vo; +package com.wzj.soopin.transaction.domain.vo; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import com.wzj.soopin.member.annotation.MemberFillField; +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; @@ -20,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/transaction/domain/vo/YishengAccountVO.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/YishengAccountVO.java new file mode 100644 index 000000000..93a687f23 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/vo/YishengAccountVO.java @@ -0,0 +1,37 @@ +package com.wzj.soopin.transaction.domain.vo; + + + +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 易生平台账户信息 + * + * @author wzj + * @date 2023-03-07 + */ +@Builder(toBuilder = true) +@Data +public class YishengAccountVO { + + /** + * 主键 + */ + private Long id; + + /** + * 会员id + */ + private Long memberId; + + + /** + * 金额 + */ + private BigDecimal balance; + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/DivideRuleStatus.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/DivideRuleStatus.java new file mode 100644 index 000000000..ff3da1400 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/DivideRuleStatus.java @@ -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; + } + + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/DivideStatus.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/DivideStatus.java new file mode 100644 index 000000000..5a3b62439 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/DivideStatus.java @@ -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; + } +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/WithdrawAuditStatus.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/WithdrawAuditStatus.java similarity index 91% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/WithdrawAuditStatus.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/WithdrawAuditStatus.java index 8f9cb8fd2..e6b365076 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/WithdrawAuditStatus.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/WithdrawAuditStatus.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.member.enums; +package com.wzj.soopin.transaction.enums; public enum WithdrawAuditStatus { PENDING(0, "待审核"), diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/WithdrawStatus.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/WithdrawStatus.java similarity index 91% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/WithdrawStatus.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/WithdrawStatus.java index b99979231..71d275005 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/enums/WithdrawStatus.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/enums/WithdrawStatus.java @@ -1,4 +1,4 @@ -package com.wzj.soopin.member.enums; +package com.wzj.soopin.transaction.enums; public enum WithdrawStatus { WAITING(0, "等待转账"), diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/ChargeMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/ChargeMapper.java similarity index 56% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/ChargeMapper.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/ChargeMapper.java index 442ca5ddc..604752a6b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/mapper/ChargeMapper.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/ChargeMapper.java @@ -1,8 +1,7 @@ -package com.wzj.soopin.member.mapper; +package com.wzj.soopin.transaction.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.po.Withdraw; +import com.wzj.soopin.transaction.domain.po.Charge; /** * 意见反馈Mapper接口 diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideDetailMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideDetailMapper.java new file mode 100644 index 000000000..a9088cf7f --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideDetailMapper.java @@ -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 { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideMapper.java new file mode 100644 index 000000000..d5118eda3 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideMapper.java @@ -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 { + + DivideVO getVOById( Long divideId); +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java new file mode 100644 index 000000000..56fd58f2a --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java @@ -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 { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleMapper.java new file mode 100644 index 000000000..d166062e7 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleMapper.java @@ -0,0 +1,13 @@ +package com.wzj.soopin.transaction.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wzj.soopin.transaction.domain.po.DivideRule; + +/** + * 意见反馈Mapper接口 + * + * @author zcc + */ +public interface DivideRuleMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/WithdrawMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/WithdrawMapper.java new file mode 100644 index 000000000..6f81c8eac --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/WithdrawMapper.java @@ -0,0 +1,8 @@ +package com.wzj.soopin.transaction.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wzj.soopin.transaction.domain.po.Withdraw; + +public interface WithdrawMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IChargeService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IChargeService.java similarity index 55% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IChargeService.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IChargeService.java index ca41a598c..f0f4002eb 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IChargeService.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IChargeService.java @@ -1,8 +1,7 @@ -package com.wzj.soopin.member.service; +package com.wzj.soopin.transaction.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.po.Withdraw; +import com.wzj.soopin.transaction.domain.po.Charge; public interface IChargeService extends IService { diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideDetailService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideDetailService.java new file mode 100644 index 000000000..17b7d8ed9 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideDetailService.java @@ -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 { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleDetailService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleDetailService.java new file mode 100644 index 000000000..90578f623 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleDetailService.java @@ -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 { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java new file mode 100644 index 000000000..5f3b03d80 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java @@ -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 { + + boolean save( DivideRuleBO bo); + + DivideRuleVO getVOById(Long divideId); +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideService.java new file mode 100644 index 000000000..203aa570a --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideService.java @@ -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 { + + boolean save( DivideBO bo); + + DivideVO getVOById( Long divideId); +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IWithdrawService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IWithdrawService.java new file mode 100644 index 000000000..e7c7ece34 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IWithdrawService.java @@ -0,0 +1,11 @@ +package com.wzj.soopin.transaction.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.transaction.domain.bo.WithdrawBO; +import com.wzj.soopin.transaction.domain.po.Withdraw; + +public interface IWithdrawService extends IService { + boolean audit(WithdrawBO bo); + + boolean withdraw(Long id); +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IYishengService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IYishengService.java new file mode 100644 index 000000000..915d88197 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IYishengService.java @@ -0,0 +1,52 @@ +package com.wzj.soopin.transaction.service; + + +import com.wzj.soopin.transaction.domain.vo.YishengAccountVO; + +import java.math.BigDecimal; + +public interface IYishengService { + /** + * 获取易生账户 + * @param memberId + * @return + */ + YishengAccountVO getYishengAccount(Long memberId); + + /** + * 提现 + * @param memberId + * @param money + * @return + */ + boolean withdraw(Long memberId, BigDecimal money); + + + /** + * 同步会员账户 + * @return + */ + boolean syncMemberAccount(); + + /** + * 开通商户 + */ + void openMerchant(Long memberId); + + /** + * 获取商户账户 + */ + YishengAccountVO getMerchantAccount(Long memberId); + + /** + * 分账 + */ + boolean split(Long memberId, BigDecimal money); + + + /** + * 商户审核通知 + * */ + + boolean merchantAuditNotice(String request); +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/ChargeServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java similarity index 63% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/ChargeServiceImpl.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java index c40cb76d8..e8741da46 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/ChargeServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/ChargeServiceImpl.java @@ -1,12 +1,9 @@ -package com.wzj.soopin.member.service.impl; +package com.wzj.soopin.transaction.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.po.MemberForbidden; -import com.wzj.soopin.member.mapper.ChargeMapper; -import com.wzj.soopin.member.mapper.MemberForbiddenMapper; -import com.wzj.soopin.member.service.IChargeService; -import com.wzj.soopin.member.service.IMemberForbiddenService; +import com.wzj.soopin.transaction.domain.po.Charge; +import com.wzj.soopin.transaction.mapper.ChargeMapper; +import com.wzj.soopin.transaction.service.IChargeService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideDetailServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideDetailServiceImpl.java new file mode 100644 index 000000000..76628fee1 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideDetailServiceImpl.java @@ -0,0 +1,21 @@ +package com.wzj.soopin.transaction.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.transaction.domain.po.DivideDetail; +import com.wzj.soopin.transaction.mapper.DivideDetailMapper; +import com.wzj.soopin.transaction.service.IDivideDetailService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 分账服务实现类 + * + * @author zcc + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DivideDetailServiceImpl extends ServiceImpl implements IDivideDetailService { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleDetailServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleDetailServiceImpl.java new file mode 100644 index 000000000..242b0c96e --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleDetailServiceImpl.java @@ -0,0 +1,21 @@ +package com.wzj.soopin.transaction.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.transaction.domain.po.DivideRuleDetail; +import com.wzj.soopin.transaction.mapper.DivideRuleDetailMapper; +import com.wzj.soopin.transaction.service.IDivideRuleDetailService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 分账服务实现类 + * + * @author zcc + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DivideRuleDetailServiceImpl extends ServiceImpl implements IDivideRuleDetailService { + +} diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java new file mode 100644 index 000000000..4962d8cfc --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java @@ -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 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/transaction/service/impl/DivideServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideServiceImpl.java new file mode 100644 index 000000000..cc62aaf10 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideServiceImpl.java @@ -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 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-member/src/main/java/com/wzj/soopin/member/service/impl/WithdrawServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java similarity index 89% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/WithdrawServiceImpl.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java index d91f25422..dca8a8bf6 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/WithdrawServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/WithdrawServiceImpl.java @@ -1,20 +1,19 @@ -package com.wzj.soopin.member.service.impl; +package com.wzj.soopin.transaction.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.wzj.soopin.member.domain.bo.WithdrawBO; -import com.wzj.soopin.member.domain.po.Charge; +import com.wzj.soopin.transaction.domain.bo.WithdrawBO; import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.po.MemberAccountChangeRecord; -import com.wzj.soopin.member.domain.po.Withdraw; -import com.wzj.soopin.member.domain.vo.YishengAccountVO; +import com.wzj.soopin.transaction.domain.po.Withdraw; import com.wzj.soopin.member.enums.MemberAccountChangeRecordChangeTypeEnum; import com.wzj.soopin.member.enums.MemberAccountChangeRecordSourceEnum; -import com.wzj.soopin.member.enums.WithdrawAuditStatus; -import com.wzj.soopin.member.enums.WithdrawStatus; -import com.wzj.soopin.member.mapper.ChargeMapper; -import com.wzj.soopin.member.mapper.MemberAccountMapper; -import com.wzj.soopin.member.mapper.WithdrawMapper; +import com.wzj.soopin.transaction.enums.WithdrawAuditStatus; +import com.wzj.soopin.transaction.enums.WithdrawStatus; +import com.wzj.soopin.transaction.mapper.WithdrawMapper; import com.wzj.soopin.member.service.*; +import com.wzj.soopin.transaction.domain.vo.YishengAccountVO; +import com.wzj.soopin.transaction.service.IWithdrawService; +import com.wzj.soopin.transaction.service.IYishengService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.satoken.utils.LoginHelper; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/YishengServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/YishengServiceImpl.java similarity index 54% rename from ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/YishengServiceImpl.java rename to ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/YishengServiceImpl.java index d34b5005a..a4a7af28a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/YishengServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/YishengServiceImpl.java @@ -1,11 +1,8 @@ -package com.wzj.soopin.member.service.impl; +package com.wzj.soopin.transaction.service.impl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.wzj.soopin.member.domain.po.Charge; -import com.wzj.soopin.member.domain.vo.YishengAccountVO; -import com.wzj.soopin.member.mapper.ChargeMapper; -import com.wzj.soopin.member.service.IChargeService; -import com.wzj.soopin.member.service.IYishengService; + +import com.wzj.soopin.transaction.domain.vo.YishengAccountVO; +import com.wzj.soopin.transaction.service.IYishengService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -37,4 +34,24 @@ public class YishengServiceImpl implements IYishengService { public boolean syncMemberAccount() { return true; } + + @Override + public void openMerchant(Long memberId) { + + } + + @Override + public YishengAccountVO getMerchantAccount(Long memberId) { + return null; + } + + @Override + public boolean split(Long memberId, BigDecimal money) { + return false; + } + + @Override + public boolean merchantAuditNotice(String request) { + return false; + } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/transaction/DivideMapper.xml b/ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/transaction/DivideMapper.xml new file mode 100644 index 000000000..c5d30acd8 --- /dev/null +++ b/ruoyi-modules/ruoyi-transaction/src/main/resources/mapper/transaction/DivideMapper.xml @@ -0,0 +1,28 @@ + + + + + +