From 19c3da86d8c6adcb91baccac6981c63307e3dba1 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 20 Dec 2024 13:01:12 +0800 Subject: [PATCH] fix(mall): 修复会员提现状态更新逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminRunVipServiceImpl.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 103 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminRunVipServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminRunVipServiceImpl.java index 2dc37af..855e4ac 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminRunVipServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminRunVipServiceImpl.java @@ -1,9 +1,23 @@ package cc.mrbird.febs.mall.service.impl; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.enumerates.RunVipMoneyFlowTypeEnum; +import cc.mrbird.febs.common.enumerates.YesOrNoEnum; +import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.mall.entity.MallCharge; +import cc.mrbird.febs.mall.entity.MallMemberWithdraw; +import cc.mrbird.febs.mall.entity.MallMoneyFlow; import cc.mrbird.febs.mall.entity.RunVip; +import cc.mrbird.febs.mall.mapper.MallChargeMapper; +import cc.mrbird.febs.mall.mapper.MallMemberWithdrawMapper; +import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper; import cc.mrbird.febs.mall.mapper.RunVipMapper; import cc.mrbird.febs.mall.service.IAdminRunVipService; +import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.rabbit.producter.AgentProducer; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -12,13 +26,20 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.List; + @Slf4j @Service @RequiredArgsConstructor @Transactional public class AdminRunVipServiceImpl extends ServiceImpl<RunVipMapper, RunVip> implements IAdminRunVipService { - private final RunVipMapper runVipMapper; + private final MallChargeMapper mallChargeMapper; + private final MallMemberWithdrawMapper mallMemberWithdrawMapper; + private final MallMoneyFlowMapper mallMoneyFlowMapper; + private final AgentProducer agentProducer; + private final IApiMallMemberWalletService walletService; @Override public IPage<RunVip> runVipListInPage(RunVip runVip,QueryRequest request) { Page<RunVip> page = new Page<>(request.getPageNum(), request.getPageSize()); @@ -34,4 +55,85 @@ public void editVip(RunVip config) { this.baseMapper.updateById(config); } + + @Override + public IPage<MallCharge> buyList(MallCharge mallCharge, QueryRequest request) { + Page<MallCharge> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallCharge> adminChargeListVoIPage = mallChargeMapper.selectAdminChargeListInPage(page, mallCharge); + return adminChargeListVoIPage; + } + + @Override + public FebsResponse chargeAgree(Integer state, Long id) { + MallCharge mallCharge = mallChargeMapper.selectById(id); + + if(ObjectUtil.isEmpty(mallCharge)){ + throw new FebsException("记录不存在"); + } + if(YesOrNoEnum.ING.getValue() != mallCharge.getState()){ + throw new FebsException("记录不是进行中状态"); + } + if(YesOrNoEnum.YES.getValue() == state){ + mallCharge.setState(YesOrNoEnum.YES.getValue()); + } + if(YesOrNoEnum.NO.getValue() == state){ + mallCharge.setState(YesOrNoEnum.NO.getValue()); + } + mallCharge.setRevision(mallCharge.getRevision()+1); + mallChargeMapper.updateById(mallCharge); + + if(mallCharge.getState() == YesOrNoEnum.YES.getValue()){ + agentProducer.sendBuyVipSuccessMsg(mallCharge.getId()); + } + return new FebsResponse().success().message("操作成功"); + } + + @Override + public FebsResponse sellAgree(Integer state, Long id) { + MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); + if(ObjectUtil.isEmpty(mallMemberWithdraw)){ + throw new FebsException("记录不存在"); + } + if(YesOrNoEnum.ING.getValue() != mallMemberWithdraw.getStatus()){ + throw new FebsException("记录不是进行中状态"); + } + if(YesOrNoEnum.YES.getValue() == state){ + mallMemberWithdraw.setStatus(YesOrNoEnum.YES.getValue()); + } + if(YesOrNoEnum.NO.getValue() == state){ + mallMemberWithdraw.setStatus(YesOrNoEnum.NO.getValue()); + } + mallMemberWithdraw.setRevision(mallMemberWithdraw.getRevision()+1); + mallMemberWithdrawMapper.updateById(mallMemberWithdraw); + + MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(new LambdaQueryWrapper<MallMoneyFlow>().eq(MallMoneyFlow::getOrderNo, mallMemberWithdraw.getWithdrawNo())); + mallMoneyFlow.setStatus(mallMemberWithdraw.getStatus()); + mallMoneyFlowMapper.updateById(mallMoneyFlow); + if(mallMemberWithdraw.getStatus() == YesOrNoEnum.NO.getValue()){ + walletService.addBalance(mallMemberWithdraw.getAmount(), mallMemberWithdraw.getMemberId()); + } + return new FebsResponse().success().message("操作成功"); + } + + @Override + public IPage<MallMemberWithdraw> sellList(MallMemberWithdraw mallMemberWithdraw, QueryRequest request) { + Page<MallMemberWithdraw> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallMemberWithdraw> adminChargeListVoIPage = mallChargeMapper.selectAdminWithdrawListInPage(page, mallMemberWithdraw); + return adminChargeListVoIPage; + } + + @Override + public List<MallMoneyFlow> allMoneyType() { + List<MallMoneyFlow> mallMoneyFlows = new ArrayList<>(); + RunVipMoneyFlowTypeEnum[] values = RunVipMoneyFlowTypeEnum.values(); + for (RunVipMoneyFlowTypeEnum value : values) { + MallMoneyFlow mallMoneyFlow = new MallMoneyFlow(); + mallMoneyFlow.setType(value.getValue()); + mallMoneyFlow.setDescription(value.getDescription()); + mallMoneyFlow.setRemark(value.getTypeDec()); + mallMoneyFlows.add(mallMoneyFlow); + } + + return mallMoneyFlows; + } } -- Gitblit v1.9.1