|  |  |  | 
|---|
|  |  |  | 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.service.IApiMallMemberWalletService; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.service.IMallMoneyFlowService; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.vo.*; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.model.NBYHResponse; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.model.SinglePayDto; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.service.NBYHService; | 
|---|
|  |  |  | 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 lombok.RequiredArgsConstructor; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.xmlbeans.impl.store.Query; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | private final MallMemberWalletMapper mallMemberWalletMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMoneyFlowMapper mallMoneyFlowMapper; | 
|---|
|  |  |  | private final IMallMoneyFlowService mallMemberService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMemberPaymentMapper mallMemberPaymentMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | private final NBYHService nbyhService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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; | 
|---|
|  |  |  | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); | 
|---|
|  |  |  | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); | 
|---|
|  |  |  | String bankName = mallMemberBank.getBankName(); | 
|---|
|  |  |  | NBYHResponse nbyhResponse = new NBYHResponse(); | 
|---|
|  |  |  | if("宁波银行".equals(bankName)){ | 
|---|
|  |  |  | nbyhResponse = nbyhService.tradeSinge(mallMemberWithdraw.getId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | nbyhResponse = nbyhService.tradeSingeOuterTransfer(mallMemberWithdraw.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(nbyhResponse.isFlag()){ | 
|---|
|  |  |  | 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().message(nbyhResponse.getMsg()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return new FebsResponse().fail().message(nbyhResponse.getMsg()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | if(AppContants.MEMBER_WITHDRAW_NORMAL.equals(mallMemberWithdraw.getRemark())){ | 
|---|
|  |  |  | //用户佣金增加对应的余额 | 
|---|
|  |  |  | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); | 
|---|
|  |  |  | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | mallMemberWithdraw.getAmount(), | 
|---|
|  |  |  | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), | 
|---|
|  |  |  | mallMemberWithdraw.getWithdrawNo(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | 2, | 
|---|
|  |  |  | FlowTypeEnum.BALANCE.getValue(), | 
|---|
|  |  |  | 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(AppContants.MEMBER_WITHDRAW_VOUCHER.equals(mallMemberWithdraw.getRemark())){ | 
|---|
|  |  |  | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"balance"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //用户钱包增加对应的余额 | 
|---|
|  |  |  | iApiMallMemberWalletService.addBalance(mallMoneyFlow.getAmount().negate(),mallMoneyFlow.getMemberId()); | 
|---|
|  |  |  | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | mallMemberWithdraw.getAmount(), | 
|---|
|  |  |  | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), | 
|---|
|  |  |  | mallMemberWithdraw.getWithdrawNo(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | 2, | 
|---|
|  |  |  | FlowTypeEnum.BALANCE.getValue(), | 
|---|
|  |  |  | 1); | 
|---|
|  |  |  | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmountFee(),mallMemberWithdraw.getMemberId(),"voucherFireCnt"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | mallMemberWithdraw.getAmountFee(), | 
|---|
|  |  |  | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), | 
|---|
|  |  |  | mallMemberWithdraw.getWithdrawNo(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | 2, | 
|---|
|  |  |  | FlowTypeEnum.COMMISSION.getValue(), | 
|---|
|  |  |  | 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(AppContants.MEMBER_WITHDRAW_VOUCHER_AMOUNT.equals(mallMemberWithdraw.getRemark())){ | 
|---|
|  |  |  | iApiMallMemberWalletService.add(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId(),"voucherAmount"); | 
|---|
|  |  |  | mallMemberService.addMoneyFlow(mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | mallMemberWithdraw.getAmount(), | 
|---|
|  |  |  | MoneyFlowTypeEnum.WITHDRAWAL.getValue(), | 
|---|
|  |  |  | mallMemberWithdraw.getWithdrawNo(), | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | 2, | 
|---|
|  |  |  | FlowTypeEnum.VOUCHER_AMOUNT.getValue(), | 
|---|
|  |  |  | 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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("参数错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, FlowTypeEnum.BALANCE.getValue()); | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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("请输入正确的余额"); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.setSubbranchName(mallMemberBank.getSubbranchName()); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse insideWithType(Long id, int i) { | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)) { | 
|---|
|  |  |  | return new FebsResponse().fail().message("会员信息不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMember.setInsideWith(i); | 
|---|
|  |  |  | mallMemberMapper.updateById(mallMember); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse searchInfo(Long id) { | 
|---|
|  |  |  | NBYHResponse nbyhResponse1 = nbyhService.transferResultInfoQuery(id); | 
|---|
|  |  |  | return new FebsResponse().success().message(nbyhResponse1.getMsg()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse accountInfo(Long id) { | 
|---|
|  |  |  | boolean b = nbyhService.accountInfoQuery(id); | 
|---|
|  |  |  | if(!b){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("银行账户余额不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new FebsResponse().success().message("可以转账"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse outsideWithType(Long id, int i) { | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)) { | 
|---|
|  |  |  | return new FebsResponse().fail().message("会员信息不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMember.setOutsideWith(i); | 
|---|
|  |  |  | mallMemberMapper.updateById(mallMember); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse chargeAgreeWithType(MallMemberWithdraw mallMemberWithdrawInfo) { | 
|---|
|  |  |  | MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(mallMemberWithdrawInfo.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMemberWithdraw)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("系统繁忙,请刷新后重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(1 != mallMemberWithdraw.getStatus()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("当前状态不是提现中"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); | 
|---|
|  |  |  | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMemberBank)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("提现银行卡已删除"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String agreeType = mallMemberWithdrawInfo.getAgreeType(); | 
|---|
|  |  |  | if("1".equals(agreeType)){ | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | String bankName = mallMemberBank.getBankName(); | 
|---|
|  |  |  | NBYHResponse nbyhResponse = new NBYHResponse(); | 
|---|
|  |  |  | if("宁波银行".equals(bankName)){ | 
|---|
|  |  |  | nbyhResponse = nbyhService.tradeSinge(mallMemberWithdraw.getId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | nbyhResponse = nbyhService.tradeSingeOuterTransfer(mallMemberWithdraw.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(nbyhResponse.isFlag()){ | 
|---|
|  |  |  | 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().message(nbyhResponse.getMsg()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | return new FebsResponse().fail().message(nbyhResponse.getMsg()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|