From 869ea72afdca9ad0f83a6f09659e4a4478012606 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 04 Apr 2023 10:59:41 +0800 Subject: [PATCH] 关于积分凭证 --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 534 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 426 insertions(+), 108 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java index b292b58..f6248e1 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java @@ -3,8 +3,12 @@ import cc.mrbird.febs.common.entity.FebsResponse; 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.AppContants; +import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; @@ -12,23 +16,29 @@ import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IAdminMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; +import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.*; +import cc.mrbird.febs.pay.model.SinglePayDto; +import cc.mrbird.febs.pay.service.UnipayService; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.xmlbeans.impl.store.Query; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author wzy @@ -53,8 +63,16 @@ private final IApiMallMemberWalletService iApiMallMemberWalletService; private final AppVersionMapper appVersionMapper; + private final MallMemberWithdrawMapper mallMemberWithdrawMapper; private final MallNewsInfoMapper mallNewsInfoMapper; + private final MallShopApplyMapper mallShopApplyMapper; + + 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) { @@ -88,6 +106,37 @@ } @Override + public void changeIdentity(Integer type, Long id, Integer value) { + MallMember mallMember = mallMemberMapper.selectById(id); + if(mallMember == null) { + throw new FebsException("参数错误"); + } + + if (type == 1) { + mallMember.setDirector(value); + } else if (type == 2){ + /** + * 线下服务商设置 + * 团队下没有线下服务商,才能成为线下服务商 + */ +// List<MallMember> mallMembers = mallMemberMapper.selectAllChildAgentListByInviteIdAndStoreMaster(mallMember.getInviteId(), 1); +// if(CollUtil.isNotEmpty(mallMembers)){ +// List<String> phoneList = mallMembers.stream().map(MallMember::getPhone).collect(Collectors.toList()); +// 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("参数错误"); + } + + this.baseMapper.updateById(mallMember); + } + + @Override public MallMemberVo getMallMemberInfoById(long id) { MallMemberVo mallMemberVo = mallMemberMapper.getMallMemberInfoById(id); return mallMemberVo; @@ -117,41 +166,85 @@ @Override @Transactional public FebsResponse chargeAgree(Long id) { - MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id); - if(ObjectUtil.isEmpty(mallMoneyFlow)){ + + MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); + if(ObjectUtil.isEmpty(mallMemberWithdraw)){ return new FebsResponse().fail().message("系统繁忙,请刷新后重试"); } - if(1 != mallMoneyFlow.getStatus()){ + if(1 != mallMemberWithdraw.getStatus()){ return new FebsResponse().fail().message("当前状态不是提现中"); } - mallMoneyFlow.setStatus(2); - mallMoneyFlowMapper.updateById(mallMoneyFlow); + + Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); +// MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); + /** + * 调用汇聚代付 + */ +// SinglePayDto singlePayDto = new SinglePayDto(); +// singlePayDto.setMerchantOrderNo(mallMemberWithdraw.getWithdrawNo()); +// singlePayDto.setReceiverAccountNoEncBankNo(mallMemberBank.getBankNo()); +// singlePayDto.setReceiverAccountNoEncName(mallMemberBank.getName()); +// singlePayDto.setReceiverAccountType("201"); +// BigDecimal paidAmount = mallMemberWithdraw.getAmount().subtract(mallMemberWithdraw.getAmountFee()).setScale(2, BigDecimal.ROUND_DOWN); +// singlePayDto.setPaidAmount(paidAmount); +// singlePayDto.setCurrency("201"); +// singlePayDto.setIsChecked("202"); +// singlePayDto.setPaidDesc("用户提现"); +// singlePayDto.setPaidUse("202"); +// String singlePayRep = unipayService.singlePay(singlePayDto); +// if(!mallMemberWithdraw.getWithdrawNo().equals(singlePayRep)){ +// return new FebsResponse().fail().message("提现失败,请稍后查看错误信息一览"); +// } + + mallMemberWithdraw.setStatus(2); + mallMemberWithdrawMapper.updateById(mallMemberWithdraw); + + QueryWrapper<MallMoneyFlow> flowQueryWrapper = new QueryWrapper<>(); + flowQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); + flowQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); + MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(flowQueryWrapper); + if(ObjectUtil.isNotEmpty(mallMoneyFlow)){ + mallMoneyFlow.setStatus(2); + mallMoneyFlowMapper.updateById(mallMoneyFlow); + } + return new FebsResponse().success(); } @Override @Transactional public FebsResponse chargeDisagree(Long id) { - MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id); - if(ObjectUtil.isEmpty(mallMoneyFlow)){ + MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); + if(ObjectUtil.isEmpty(mallMemberWithdraw)){ return new FebsResponse().fail().message("系统繁忙,请刷新后重试"); } - if(1 != mallMoneyFlow.getStatus()){ + if(1 != mallMemberWithdraw.getStatus()){ return new FebsResponse().fail().message("当前状态不是提现中"); } + + mallMemberWithdraw.setStatus(3); + mallMemberWithdrawMapper.updateById(mallMemberWithdraw); + + QueryWrapper<MallMoneyFlow> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("order_no",mallMemberWithdraw.getWithdrawNo()); + objectQueryWrapper.eq("type",MoneyFlowTypeEnum.WITHDRAWAL.getValue()); + MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOne(objectQueryWrapper); mallMoneyFlow.setStatus(3); mallMoneyFlowMapper.updateById(mallMoneyFlow); - //用户钱包增加对应的余额 - iApiMallMemberWalletService.addBalance(mallMoneyFlow.getAmount().negate(),mallMoneyFlow.getMemberId()); + //用户佣金增加对应的余额 + iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); + if(AppContants.MEMBER_WITHDRAW_VOUCHER.equals(mallMemberWithdraw.getRemark())){ + iApiMallMemberWalletService.add(mallMemberWithdraw.getAmountFee(),mallMemberWithdraw.getMemberId(),"voucher_cnt"); + } return new FebsResponse().success(); } @Override public AdminMallMemberPaymentVo getMallMemberPaymentInfoByFlowId(long id) { AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo(); - MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id); - AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMoneyFlow.getMemberId()); + MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); + AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMemberWithdraw.getMemberId()); if(ObjectUtil.isNotEmpty(adminMallMemberPaymentVoa)){ adminMallMemberPaymentVo = adminMallMemberPaymentVoa; } @@ -187,17 +280,10 @@ @Override public AdminAgentLevelUpdateInfoVo getAgentLevelUpdateInfoById(long id) { - AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = new AdminAgentLevelUpdateInfoVo(); DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(id); String value = dataDictionaryCustom.getValue(); //{"directIncome":36,"lastCnt":3,"orderCnt":500,"orderType":2,"teamIncome":6,"teamIncomeType":2} - JSONObject jsonObject = JSONObject.parseObject(value); - adminAgentLevelUpdateInfoVo.setDirectIncome(new BigDecimal((jsonObject.get("directIncome")==null?0:jsonObject.get("directIncome")).toString())); - adminAgentLevelUpdateInfoVo.setLastCnt(Integer.parseInt((jsonObject.get("lastCnt")==null?0:jsonObject.get("lastCnt")).toString())); - adminAgentLevelUpdateInfoVo.setOrderCnt(Integer.parseInt((jsonObject.get("orderCnt")==null?0:jsonObject.get("orderCnt")).toString())); - adminAgentLevelUpdateInfoVo.setOrderType(Integer.parseInt(jsonObject.get("orderType").toString())); - adminAgentLevelUpdateInfoVo.setTeamIncome(new BigDecimal((jsonObject.get("teamIncome")==null?0:jsonObject.get("teamIncome")).toString())); - adminAgentLevelUpdateInfoVo.setTeamIncomeType(Integer.parseInt(jsonObject.get("orderType").toString())); + AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = JSONObject.parseObject(value, AdminAgentLevelUpdateInfoVo.class); adminAgentLevelUpdateInfoVo.setId(id); return adminAgentLevelUpdateInfoVo; } @@ -205,15 +291,9 @@ @Override public FebsResponse agentLevelUpdate(AgentLevelUpdateDto agentLevelUpdateDto) { DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(agentLevelUpdateDto.getId()); - AgentLevelUpdateDto agentLevelUpdateDtoJson = new AgentLevelUpdateDto(); - agentLevelUpdateDtoJson.setDirectIncome(agentLevelUpdateDto.getDirectIncome()); - agentLevelUpdateDtoJson.setLastCnt(agentLevelUpdateDto.getLastCnt()); - agentLevelUpdateDtoJson.setOrderCnt(agentLevelUpdateDto.getOrderCnt()); - agentLevelUpdateDtoJson.setTeamIncome(agentLevelUpdateDto.getTeamIncome()); - agentLevelUpdateDtoJson.setOrderType(agentLevelUpdateDto.getOrderType()); - agentLevelUpdateDtoJson.setTeamIncomeType(agentLevelUpdateDto.getTeamIncomeType()); - JSONObject jsonObject = (JSONObject)JSONObject.toJSON(agentLevelUpdateDtoJson); - dataDictionaryCustom.setValue(jsonObject.toString()); + + agentLevelUpdateDto.setId(null); + dataDictionaryCustom.setValue(JSONObject.toJSONString(agentLevelUpdateDto)); dataDictionaryCustomMapper.updateById(dataDictionaryCustom); return new FebsResponse().success(); } @@ -312,75 +392,8 @@ if(StrUtil.isEmpty(level) || !AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){ return new FebsResponse().fail().message("该用户无法激活"); } - mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); + mallMember.setLevel(AgentLevelEnum.SECOND_LEVEL.name()); mallMemberMapper.updateById(mallMember); - return new FebsResponse().success(); - } - - @Override - public MallNewsInfo getNewsInfoById(long id) { - return mallNewsInfoMapper.selectById(id); - } - - @Override - public IPage<AdminMallNewsInfoVo> getNewInfoList(MallNewsInfo mallNewsInfo, QueryRequest request) { - Page<AdminMallNewsInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); - IPage<AdminMallNewsInfoVo> adminMallNewsInfoVos = mallNewsInfoMapper.getNewInfoListInPage(page, mallNewsInfo); - return adminMallNewsInfoVos; - } - - @Override - public FebsResponse addNewsInfo(MallNewsInfoDto mallNewsInfoDto) { - Integer type = mallNewsInfoDto.getType(); - if(type == 2){ - Long goodsId = mallNewsInfoDto.getGoodsId()==null?0L:mallNewsInfoDto.getGoodsId(); - if(goodsId == 0L){ - return new FebsResponse().fail().message("请选择跳转的产品"); - } - } - MallNewsInfo mallNewsInfo = new MallNewsInfo(); - mallNewsInfo.setTitle(mallNewsInfoDto.getTitle()); - mallNewsInfo.setContent(mallNewsInfoDto.getContent()); - mallNewsInfo.setType(mallNewsInfoDto.getType()); - if(mallNewsInfoDto.getType() == 2){ - mallNewsInfo.setTargetId(mallNewsInfoDto.getGoodsId()); - } - mallNewsInfoMapper.insert(mallNewsInfo); - return new FebsResponse().success(); - } - - @Override - public FebsResponse delNewsInfo(Long id) { - MallNewsInfo mallNewsInfo = mallNewsInfoMapper.selectById(id); - if(ObjectUtil.isEmpty(mallNewsInfo)){ - return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); - } - mallNewsInfoMapper.deleteById(id); - return new FebsResponse().success(); - } - - @Override - public FebsResponse updateNewsInfo(MallNewsInfoDto mallNewsInfoDto) { - MallNewsInfo mallNewsInfoBefore = mallNewsInfoMapper.selectById(mallNewsInfoDto.getId()); - if(ObjectUtil.isEmpty(mallNewsInfoBefore)){ - return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); - } - Integer type = mallNewsInfoDto.getType(); - if(type == 2){ - Long goodsId = mallNewsInfoDto.getGoodsId()==null?0L:mallNewsInfoDto.getGoodsId(); - if(goodsId == 0L){ - return new FebsResponse().fail().message("请选择跳转的产品"); - } - } - MallNewsInfo mallNewsInfo = new MallNewsInfo(); - mallNewsInfo.setTitle(mallNewsInfoDto.getTitle()); - mallNewsInfo.setContent(mallNewsInfoDto.getContent()); - mallNewsInfo.setType(mallNewsInfoDto.getType()); - if(mallNewsInfoDto.getType() == 2){ - mallNewsInfo.setTargetId(mallNewsInfoDto.getGoodsId()); - } - mallNewsInfoMapper.insert(mallNewsInfo); - mallNewsInfoMapper.deleteById(mallNewsInfoDto.getId()); return new FebsResponse().success(); } @@ -394,21 +407,33 @@ } BigDecimal bigDecimal = mallSystemPayDto.getAddBalance(); + boolean isReduce = false; if(bigDecimal.compareTo(BigDecimal.ZERO) <= 0){ - return new FebsResponse().fail().message("拨付数目需要大于0"); + isReduce = true; } - MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); - mallMemberWallet.setBalance(mallMemberWallet.getBalance().add(bigDecimal)); - mallMemberWalletMapper.updateBalanceWithId(mallMemberWallet); + Integer type = mallSystemPayDto.getType(); + String filedType = ""; + if (type == 1) { + filedType = "balance"; + } else if (type == 2) { + filedType = "score"; + } else if (type == 3) { + filedType = "prizeScore"; + } else { + throw new FebsException("参数错误"); + } - MallMoneyFlow flow = new MallMoneyFlow(); - flow.setMemberId(memberId); - flow.setAmount(bigDecimal); - flow.setType(MoneyFlowTypeEnum.SYSTEM_PAY.getValue()); - flow.setOrderNo("SYS"+MallUtils.getOrderNum()); - flow.setStatus(2); - mallMoneyFlowMapper.insert(flow); + if (isReduce) { + int i = iApiMallMemberWalletService.reduce(mallSystemPayDto.getAddBalance().negate(), mallSystemPayDto.getId(), filedType); + + if (i == 2) { + throw new FebsException("剩余数量不足"); + } + } else { + iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType); + } + mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type); return new FebsResponse().success(); } @@ -442,4 +467,297 @@ this.baseMapper.updateById(mallMember); return new FebsResponse().success().message("重置成功"); } + + @Override + public void resetPwd(String ids, Integer type) { + if (StrUtil.isEmpty(ids)) { + throw new FebsException("参数错误"); + } + List<String> idList = StrUtil.split(ids, ','); + + for (String s : idList) { + Long id = Long.parseLong(s); + MallMember member = new MallMember(); + member.setId(id); + member.setCreatedTime(null); + + // 重置交易密码 + if (type == 1) { + String payPwd = SecureUtil.md5("123456"); + member.setTradePassword(payPwd); + // 重置登录密码 + } else { + String pwd = SecureUtil.md5("a123456"); + member.setPassword(pwd); + } + this.baseMapper.updateById(member); + } + } + + @Override + public IPage<MallDataVo> getMallDataList(MallMember mallMember, QueryRequest request) { + Page<MallDataVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MallDataVo> mallDataVos = this.baseMapper.getMallDataListInPage(page, mallMember); + return mallDataVos; + } + + @Override + public IPage<MallShopApply> findShopApplyListInPage(MallShopApply mallShopApply, QueryRequest request) { + Page<MallShopApply> page = new Page<>(request.getPageNum(), request.getPageSize()); + + return mallShopApplyMapper.selectShopApplyInPage(mallShopApply, page); + } + + @Override + public MallShopApply findShopApplyById(Long id) { + return mallShopApplyMapper.selectById(id); + } + + @Override + public void applyCheckAgree(Long id) { + MallShopApply apply = mallShopApplyMapper.selectById(id); + if (!MallShopApply.APPLY_ING.equals(apply.getStatus())) { + throw new FebsException("申请已审核, 请勿重复操作"); + } + + MallMember member = mallMemberMapper.selectById(apply.getMemberId()); + member.setStoreMaster(1); + mallMemberMapper.updateById(member); + + apply.setStatus(MallShopApply.APPLY_AGREE); + mallShopApplyMapper.updateById(apply); + } + + @Override + public void applyCheckDisAgree(Long id) { + MallShopApply apply = mallShopApplyMapper.selectById(id); + if (!MallShopApply.APPLY_ING.equals(apply.getStatus())) { + throw new FebsException("申请已审核, 请勿重复操作"); + } + + apply.setStatus(MallShopApply.APPLY_DISAGREE); + mallShopApplyMapper.updateById(apply); + } + + @Override + @Transactional + public FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto) { + Long memberId = mallUpdateMemberInfoDto.getId(); + MallMember mallMember = mallMemberMapper.selectById(memberId); + if(ObjectUtil.isEmpty(mallMember)){ + return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); + } + String phone = mallUpdateMemberInfoDto.getPhone(); + if(StrUtil.isEmpty(phone)){ + throw new FebsException("请输入手机号码"); + } + if(!phone.equals(mallMember.getPhone())){ + QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("phone",phone); + List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(mallMembers)){ + throw new FebsException("手机号码已绑定过账号"); + } + } + mallMember.setPhone(phone); + mallMember.setBindPhone(phone); + mallMember.setLevel(mallUpdateMemberInfoDto.getLevelCode()); + mallMemberMapper.updateById(mallMember); + if(mallUpdateMemberInfoDto.getBalance() == null){ + throw new FebsException("请输入正确的余额"); + } + if(mallUpdateMemberInfoDto.getScore() == null){ + throw new FebsException("请输入正确的赠送积分"); + } + if(mallUpdateMemberInfoDto.getPrizeScore() == null){ + throw new FebsException("请输入正确的竞猜积分"); + } + BigDecimal balance = mallUpdateMemberInfoDto.getBalance(); + if(BigDecimal.ZERO.compareTo(balance) > 0){ + throw new FebsException("请输入正确的余额"); + } + BigDecimal score = mallUpdateMemberInfoDto.getScore(); + if(BigDecimal.ZERO.compareTo(score) > 0){ + throw new FebsException("请输入正确的赠送积分"); + } + BigDecimal prizeScore = mallUpdateMemberInfoDto.getPrizeScore(); + if(BigDecimal.ZERO.compareTo(prizeScore) > 0){ + throw new FebsException("请输入正确的竞猜积分"); + } + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); + mallMemberWallet.setBalance(balance); + mallMemberWallet.setScore(score); + mallMemberWallet.setPrizeScore(prizeScore); + mallMemberWalletMapper.updateById(mallMemberWallet); + return new FebsResponse().success(); + } + + @Override + public MallMember findByInviteId(String inviteId) { + + return this.baseMapper.selectInfoByInviteId(inviteId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void modifyReferer(MallMember member) { + MallMember referer = this.baseMapper.selectInfoByInviteId(member.getReferrerId()); + if (referer == null) { + throw new FebsException("推荐人不存在"); + } + String refererId = member.getReferrerId(); + + member = this.baseMapper.selectById(member.getId()); + + String beforeReferer = member.getReferrerId(); + member.setReferrerId(refererId); + String refererIds = refererIds(refererId); + member.setReferrerIds(refererIds); + this.baseMapper.updateById(member); + + List<MallMember> childs = this.baseMapper.selectByRefererId(member.getInviteId()); + if (CollUtil.isEmpty(childs)) { + return; + } + + for (MallMember child : childs) { + child.setReferrerIds(member.getInviteId() + "," + refererIds); + this.baseMapper.updateById(child); + } + } + + @Override + public void updateShopApply(MallShopApply apply) { + MallShopApply mallShopApply = mallShopApplyMapper.selectById(apply.getId()); + mallShopApply.setName(apply.getName()); + mallShopApply.setPhone(apply.getPhone()); + mallShopApply.setIdcard(apply.getIdcard()); + mallShopApply.setBusinessLicense(apply.getBusinessLicense()); + mallShopApply.setSaleArea(apply.getSaleArea()); + mallShopApply.setShopName(apply.getShopName()); + mallShopApplyMapper.updateById(mallShopApply); + } + + @Override + public AdminMallMemberPaymentVo getMallBankInfoById(long id) { + + MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); + Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); + MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); + AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo(); + if(ObjectUtil.isNotEmpty(mallMemberBank)){ + adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo()); + adminMallMemberPaymentVo.setBankName(mallMemberBank.getName()); + adminMallMemberPaymentVo.setDigitalNo(mallMemberBank.getDigitalNo()); + adminMallMemberPaymentVo.setBank(mallMemberBank.getBankName()); + } + 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)) { + flag = true; + } + String ids = ""; + while (!flag) { + if (StrUtil.isBlank(ids)) { + ids += parentId; + } else { + ids += ("," + parentId); + } + MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId); + if (parentMember == null) { + break; + } + parentId = parentMember.getReferrerId(); + if (StrUtil.isBlank(parentMember.getReferrerId())) { + flag = true; + } + } + + return ids; + } } -- Gitblit v1.9.1