diff --git a/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java b/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java index 7f6bd4fa..8ce8a78c 100644 --- a/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java +++ b/cash-api/market-server/src/main/java/com/czg/controller/admin/DistributionController.java @@ -5,6 +5,7 @@ import com.czg.annotation.SaCheckMainShop; import com.czg.market.dto.MkDistributionConfigDTO; import com.czg.market.service.MkDistributionAmountFlowService; import com.czg.market.service.MkDistributionConfigService; +import com.czg.market.service.MkDistributionUserService; import com.czg.market.vo.*; import com.czg.order.dto.MkDistributionPayDTO; import com.czg.resp.CzgResult; @@ -30,6 +31,8 @@ public class DistributionController { @Resource private MkDistributionConfigService configService; @Resource + private MkDistributionUserService distributionUserService; + @Resource private MkDistributionAmountFlowService distributionAmountFlowService; /** @@ -64,7 +67,7 @@ public class DistributionController { AssertUtil.isNull(payParam.getShopId(), "店铺id不能为空"); AssertUtil.isNull(payParam.getAmount(), "充值金额不能为空"); AssertUtil.isTrue(payParam.getAmount().compareTo(BigDecimal.ZERO) == 0, "金额不为0"); - return CzgResult.success(configService.cashPayOrder(StpKit.USER.getLoginIdAsLong(), payParam)); + return CzgResult.success(distributionUserService.cashPayOrder(StpKit.USER.getLoginIdAsLong(), payParam)); } /** diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java index 698bf0b3..29018d4f 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java @@ -19,16 +19,4 @@ public interface MkDistributionConfigService extends IService pay(long userId, MkDistributionPayDTO payDTO); - - Boolean cashPayOrder(long adminId, MkDistributionPayDTO payParam); - - /** - * 分销员开通 - * @param userId 用户 - * @param amount 金额 - * @param shopId 店铺id - */ - void open(Long userId, BigDecimal amount, Long shopId, Long sourceId); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java index acc90152..afd7769a 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionUserService.java @@ -2,9 +2,13 @@ package com.czg.market.service; import com.czg.market.dto.MkDistributionUserDTO; import com.czg.market.entity.MkDistributionUser; +import com.czg.order.dto.MkDistributionPayDTO; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; +import java.math.BigDecimal; +import java.util.Map; + /** * 分销员表 服务层。 * @@ -37,4 +41,17 @@ public interface MkDistributionUserService extends IService */ void deleteDistributionUser(Long id); + + Map pay(long userId, MkDistributionPayDTO payDTO); + + Boolean cashPayOrder(long adminId, MkDistributionPayDTO payParam); + + /** + * 分销员开通 + * @param userId 用户 + * @param amount 金额 + * @param shopId 店铺id + */ + void open(Long userId, BigDecimal amount, Long shopId, Long sourceId); + } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java index 95901a4d..21ac2b14 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionConfigServiceImpl.java @@ -49,19 +49,8 @@ public class MkDistributionConfigServiceImpl extends ServiceImpl pay(long userId, MkDistributionPayDTO payDTO) { - MkDistributionConfigVO detail = detail(payDTO.getShopId()); - AssertUtil.isTrue(detail.getIsEnable() != 1, "分销未开启"); - if (!TableValueConstant.DistributionConfig.OpenType.PAY.getCode().equals(detail.getOpenType())) { - throw new CzgException("当前未开启购买分销配置"); - } - - OrderPayment orderPayment = new OrderPayment().setShopId(payDTO.getShopId()).setSourceId(userId) - .setPayType("distribution").setOrderNo(payDTO.getPlatformType() + IdUtil.getSnowflakeNextId()).setAmount(detail.getPayAmount()); - orderPaymentService.save(orderPayment); - - return Map.of(); - } - - @Override - public Boolean cashPayOrder(long adminId, MkDistributionPayDTO payParam) { - ShopInfo shopInfo = shopInfoService.getById(payParam.getShopId()); - AssertUtil.isNull(shopInfo, "店铺不存在"); - BigDecimal amount = shopInfoService.updateAmount(shopInfo.getId(), payParam.getAmount()); - Long mainShopId = shopInfoService.getMainIdByShopId(shopInfo.getId()); - - distributionAmountFlowService.save(new MkDistributionAmountFlow() - .setType(payParam.getAmount().compareTo(BigDecimal.ZERO) < 0 ? TableValueConstant.DistributionAmountFlow.Type.MANUAL_SUB.getCode() : - TableValueConstant.DistributionAmountFlow.Type.MANUAL_RECHARGE.getCode()) - .setMainShopId(mainShopId).setShopId(shopInfo.getId()).setAmount(amount).setChangeAmount(payParam.getAmount()) - .setRemark(payParam.getRemark()).setOpAccount(StpKit.USER.getAccount())); - return true; - } - - @Override - public void open(Long userId, BigDecimal amount, Long shopId, Long sourceId) { - ShopUser shopUserInfo = shopUserService.getShopUserInfo(shopId, userId); - Long mainShopId = shopInfoService.getMainIdByShopId(shopId); - BigDecimal finalAmount = shopInfoService.updateAmount(shopId, amount); - distributionAmountFlowService.save(new MkDistributionAmountFlow() - .setType(TableValueConstant.DistributionAmountFlow.Type.OPEN.getCode()) - .setMainShopId(mainShopId).setShopId(shopId).setAmount(finalAmount).setChangeAmount(amount).setSourceId(sourceId) - .setRemark("分销员购买").setOpAccount(StpKit.USER.getAccount())); - distributionUserService.addDistributionUser(new MkDistributionUser().setParentId(null).setShopId(shopId) - .setShopUserId(shopUserInfo.getId()).setOpeningMethod("付费开通")); - } } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java index 21877e42..24690c3b 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkDistributionUserServiceImpl.java @@ -2,16 +2,29 @@ package com.czg.service.market.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; +import com.czg.account.entity.ShopInfo; import com.czg.account.entity.ShopUser; +import com.czg.account.service.ShopInfoService; import com.czg.account.service.ShopUserService; +import com.czg.constant.TableValueConstant; +import com.czg.exception.CzgException; import com.czg.market.dto.MkDistributionUserDTO; +import com.czg.market.entity.MkDistributionAmountFlow; import com.czg.market.entity.MkDistributionConfig; import com.czg.market.entity.MkDistributionLevelConfig; import com.czg.market.entity.MkDistributionUser; +import com.czg.market.service.MkDistributionAmountFlowService; import com.czg.market.service.MkDistributionConfigService; import com.czg.market.service.MkDistributionLevelConfigService; import com.czg.market.service.MkDistributionUserService; +import com.czg.market.vo.MkDistributionConfigVO; +import com.czg.order.dto.MkDistributionPayDTO; +import com.czg.order.entity.OrderPayment; +import com.czg.order.service.OrderPaymentService; +import com.czg.sa.StpKit; import com.czg.service.market.mapper.MkDistributionUserMapper; +import com.czg.system.service.WxService; import com.czg.utils.AssertUtil; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; @@ -20,6 +33,7 @@ import jakarta.annotation.Resource; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -41,6 +55,17 @@ public class MkDistributionUserServiceImpl extends ServiceImpl getDistributionUser(MkDistributionUserDTO param) { @@ -111,4 +136,48 @@ public class MkDistributionUserServiceImpl extends ServiceImpl pay(long userId, MkDistributionPayDTO payDTO) { + MkDistributionConfigVO detail = mkDistributionConfigService.detail(payDTO.getShopId()); + AssertUtil.isTrue(detail.getIsEnable() != 1, "分销未开启"); + if (!TableValueConstant.DistributionConfig.OpenType.PAY.getCode().equals(detail.getOpenType())) { + throw new CzgException("当前未开启购买分销配置"); + } + + OrderPayment orderPayment = new OrderPayment().setShopId(payDTO.getShopId()).setSourceId(userId) + .setPayType("distribution").setOrderNo(payDTO.getPlatformType() + IdUtil.getSnowflakeNextId()).setAmount(detail.getPayAmount()); + orderPaymentService.save(orderPayment); + + return Map.of(); + } + + @Override + public Boolean cashPayOrder(long adminId, MkDistributionPayDTO payParam) { + ShopInfo shopInfo = shopInfoService.getById(payParam.getShopId()); + AssertUtil.isNull(shopInfo, "店铺不存在"); + BigDecimal amount = shopInfoService.updateAmount(shopInfo.getId(), payParam.getAmount()); + Long mainShopId = shopInfoService.getMainIdByShopId(shopInfo.getId()); + + distributionAmountFlowService.save(new MkDistributionAmountFlow() + .setType(payParam.getAmount().compareTo(BigDecimal.ZERO) < 0 ? TableValueConstant.DistributionAmountFlow.Type.MANUAL_SUB.getCode() : + TableValueConstant.DistributionAmountFlow.Type.MANUAL_RECHARGE.getCode()) + .setMainShopId(mainShopId).setShopId(shopInfo.getId()).setAmount(amount).setChangeAmount(payParam.getAmount()) + .setRemark(payParam.getRemark()).setOpAccount(StpKit.USER.getAccount())); + return true; + } + + @Override + public void open(Long userId, BigDecimal amount, Long shopId, Long sourceId) { + ShopUser shopUserInfo = shopUserService.getShopUserInfo(shopId, userId); + Long mainShopId = shopInfoService.getMainIdByShopId(shopId); + BigDecimal finalAmount = shopInfoService.updateAmount(shopId, amount); + distributionAmountFlowService.save(new MkDistributionAmountFlow() + .setType(TableValueConstant.DistributionAmountFlow.Type.OPEN.getCode()) + .setMainShopId(mainShopId).setShopId(shopId).setAmount(finalAmount).setChangeAmount(amount).setSourceId(sourceId) + .setRemark("分销员购买").setOpAccount(StpKit.USER.getAccount())); + distributionUserService.addDistributionUser(new MkDistributionUser().setParentId(null).setShopId(shopId) + .setShopUserId(shopUserInfo.getId()).setOpeningMethod("付费开通")); + } } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index cf1e958f..6c02e13a 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -137,7 +137,7 @@ public class OrderInfoServiceImpl extends ServiceImpl