| | |
| | | |
| | | 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.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.*; |
| | | 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.*; |
| | |
| | | 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.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 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.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; |
| | | private final MallMemberAmountMapper mallMemberAmountMapper; |
| | | |
| | | @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; |
| | | } |
| | |
| | | |
| | | @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; |
| | | } |
| | |
| | | @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(); |
| | | } |
| | |
| | | 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("参数错误"); |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @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); |
| | |
| | | throw new FebsException("申请已审核, 请勿重复操作"); |
| | | } |
| | | |
| | | MallMember member = mallMemberMapper.selectById(apply.getMemberId()); |
| | | member.setStoreMaster(1); |
| | | mallMemberMapper.updateById(member); |
| | | |
| | | apply.setStatus(MallShopApply.APPLY_AGREE); |
| | | mallShopApplyMapper.updateById(apply); |
| | | } |
| | |
| | | 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.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()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminMallMemberVo> getFcmMallMemberList(MallMember mallMember, QueryRequest request) { |
| | | Page<AdminMallMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminMallMemberVo> adminMallMemberVoIPage = this.baseMapper.getFcmMallMemberList(page, mallMember); |
| | | return adminMallMemberVoIPage; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse frozenWith(Long id, int i) { |
| | | |
| | | MallMember mallMember = mallMemberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallMember)) { |
| | | return new FebsResponse().fail().message("会员信息不存在"); |
| | | } |
| | | mallMember.setIsFrozen(i); |
| | | mallMemberMapper.updateById(mallMember); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateSystemPayInfo(MallSystemPayDto mallSystemPayDto) { |
| | | Long amountId = mallSystemPayDto.getId(); |
| | | MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectById(amountId); |
| | | MallMember mallMember = mallMemberMapper.selectById(mallMemberAmount.getMemberId()); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | throw new FebsException("会员不存在"); |
| | | } |
| | | BigDecimal bigDecimal = mallSystemPayDto.getAddBalance(); |
| | | Integer type = mallSystemPayDto.getType(); |
| | | Integer flowType = 0; |
| | | if (type == 1) { |
| | | BigDecimal add = mallMemberAmount.getTrendsNft().add(bigDecimal); |
| | | if(BigDecimal.ZERO.compareTo(add) > 0){ |
| | | throw new FebsException("输入合适的值"); |
| | | } |
| | | mallMemberAmount.setTrendsNft(add); |
| | | mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); |
| | | flowType = FlowTypeNewEnum.NFT.getValue(); |
| | | } else if (type == 2) { |
| | | BigDecimal add = mallMemberAmount.getFcmCntAva().add(bigDecimal); |
| | | if(BigDecimal.ZERO.compareTo(add) > 0){ |
| | | throw new FebsException("输入合适的值"); |
| | | } |
| | | mallMemberAmount.setFcmCntAva(add); |
| | | mallMemberAmountMapper.updateFcmCntAvaById(mallMemberAmount); |
| | | flowType = FlowTypeNewEnum.FCM_COIN.getValue(); |
| | | } else if (type == 3) { |
| | | BigDecimal add = mallMemberAmount.getTokenAva().add(bigDecimal); |
| | | if(BigDecimal.ZERO.compareTo(add) > 0){ |
| | | throw new FebsException("输入合适的值"); |
| | | } |
| | | mallMemberAmount.setTokenAva(add); |
| | | mallMemberAmountMapper.updateTokenAvaById(mallMemberAmount); |
| | | flowType = FlowTypeNewEnum.TOKEN.getValue(); |
| | | } else { |
| | | throw new FebsException("参数错误"); |
| | | } |
| | | String orderNo = MallUtils.getOrderNum("BF"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | mallMemberAmount.getMemberId(), |
| | | bigDecimal, |
| | | MoneyFlowTypeNewEnum.SYSTEM_PEY.getValue(), |
| | | orderNo, |
| | | mallMemberAmount.getMemberId(), |
| | | flowType, |
| | | MoneyFlowTypeNewEnum.SYSTEM_PEY.getDescrition()); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public MallMemberVo getMallmemberAmountByMemberId(long id) { |
| | | MallMemberVo mallMemberVo = mallMemberMapper.getMallmemberAmountByMemberId(id); |
| | | return mallMemberVo; |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | } |