xiaoyong931011
2023-04-03 d5a96c3122c136d4b0c585d08e61b42e8a123743
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.enumerates.GreenScoreEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.LoginUserUtil;
@@ -69,6 +70,8 @@
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final UnipayService unipayService;
    private final MallMemberBankMapper mallMemberBankMapper;
    private final MallScoreRecordMapper mallScoreRecordMapper;
    private final MallScoreAchieveReleaseMapper mallScoreAchieveReleaseMapper;
    @Override
    public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -121,6 +124,10 @@
//                throw new FebsException("团队存在线下服务中心,账号为【"+phoneList.toString()+"】");
//            }
            mallMember.setStoreMaster(value);
        }else if (type == 3){
            mallMember.setCreater(value);
        } else if (type == 4){
            mallMember.setPartner(value);
        } else {
            throw new FebsException("参数错误");
        }
@@ -629,6 +636,88 @@
        return adminMallMemberPaymentVo;
    }
    @Override
    public FebsResponse updateVoucher(MallSystemPayDto mallSystemPayDto) {
        Long memberId = mallSystemPayDto.getId();
        MallMember mallMember = mallMemberMapper.selectById(memberId);
        if(ObjectUtil.isEmpty(mallMember)){
            return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
        }
        BigDecimal addBalance = mallSystemPayDto.getAddBalance();
        if(addBalance.compareTo(BigDecimal.ZERO) <= 0){
            return new FebsResponse().fail().message("请输入正确的数量");
        }
        DataDictionaryCustom totalCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                GreenScoreEnum.TOTAL_CNT.getType(),
                GreenScoreEnum.TOTAL_CNT.getCode()
        );
        BigDecimal totalCnt = new BigDecimal(totalCntDic.getValue());
        //凭证占总数的10%
        BigDecimal roleCnt = totalCnt.multiply(new BigDecimal(0.1));
        //获取已卖出的凭证数量
        BigDecimal roleCntSale = mallScoreRecordMapper.selectSumScoreCnt().setScale(2,BigDecimal.ROUND_DOWN);
        roleCntSale = roleCntSale.add(addBalance);
        if(roleCnt.compareTo(roleCntSale) < 0){
            return new FebsResponse().fail().message("已拨付:"+roleCntSale);
        }
        /**
         * 增加一条会员购买记录
         * mall_score_record
         */
        MallScoreRecord mallScoreRecord = new MallScoreRecord();
        mallScoreRecord.setMemberId(memberId);
        mallScoreRecord.setScoreNo(MallUtils.getOrderNum("MSR"));
        mallScoreRecord.setScoreCnt(addBalance);
        mallScoreRecord.setSurplusCnt(addBalance);
        mallScoreRecordMapper.insert(mallScoreRecord);
        /**
         * 减少剩余绿色凭证数量
         */
        DataDictionaryCustom surplusCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                GreenScoreEnum.SURPLUS_CNT.getType(),
                GreenScoreEnum.SURPLUS_CNT.getCode()
        );
        BigDecimal surplusCnt = new BigDecimal(surplusCntDic.getValue());
        surplusCnt = surplusCnt.subtract(addBalance);
        surplusCntDic.setValue(surplusCnt.toString());
        dataDictionaryCustomMapper.updateById(surplusCntDic);
        return new FebsResponse().success();
    }
    @Override
    public IPage<MallScoreRecord> gerRoleReleaseList(AdminRoleReleaseDto roleReleaseDto, QueryRequest request) {
        Page<MallScoreRecord> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MallScoreRecord> mallScoreRecordIPage = mallScoreRecordMapper.gerRoleReleaseListInPage(page, roleReleaseDto);
        return mallScoreRecordIPage;
    }
    @Override
    public IPage<MallMoneyFlow> roleReleaseChild(QueryRequest request, MallScoreRecord mallScoreRecord) {
        Page<MallMoneyFlow> page = new Page<>(request.getPageNum(), request.getPageSize());
        MallScoreRecord mallScore = mallScoreRecordMapper.selectById(mallScoreRecord.getId());
        IPage<MallMoneyFlow> mallMoneyFlowIPage = mallScoreRecordMapper.gerRoleReleaseChildInPage(page, mallScore);
        return mallMoneyFlowIPage;
    }
    @Override
    public IPage<MallScoreAchieveRelease> gerAchieveReleaseList(AdminRoleReleaseDto roleReleaseDto, QueryRequest request) {
        Page<MallScoreAchieveRelease> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MallScoreAchieveRelease> MallScoreAchieveReleases = mallScoreAchieveReleaseMapper.gerAchieveReleaseListInPage(page, roleReleaseDto);
        return MallScoreAchieveReleases;
    }
    @Override
    public IPage<MallMoneyFlow> achieveReleaseChild(QueryRequest request, MallScoreAchieveRelease mallScoreAchieveRelease) {
        Page<MallMoneyFlow> page = new Page<>(request.getPageNum(), request.getPageSize());
        MallScoreAchieveRelease mallScoreAchieve = mallScoreAchieveReleaseMapper.selectById(mallScoreAchieveRelease.getId());
        IPage<MallMoneyFlow> mallMoneyFlowIPage = mallScoreAchieveReleaseMapper.gerAchieveReleaseChildInPage(page, mallScoreAchieve);
        return mallMoneyFlowIPage;
    }
    private String refererIds(String parentId) {
        boolean flag = false;
        if (StrUtil.isBlank(parentId)) {