| | |
| | | import cc.mrbird.febs.dapp.service.DappMemberService; |
| | | import cc.mrbird.febs.dapp.utils.CaptchaUtil; |
| | | import cc.mrbird.febs.dapp.utils.UUIDUtil; |
| | | import cc.mrbird.febs.dapp.vo.ApiAmountChangeListVo; |
| | | import cc.mrbird.febs.dapp.vo.MemberInfoVo; |
| | | import cc.mrbird.febs.dapp.vo.TeamListVo; |
| | | import cc.mrbird.febs.dapp.vo.*; |
| | | import cc.mrbird.febs.system.entity.User; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | private final PlatformBannerMapper platformBannerMapper; |
| | | private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao; |
| | | private final DappBankDao dappBankDao; |
| | | // private final DappMemberService dappMemberService; |
| | | private final DappMemberAddressDao dappMemberAddressDao; |
| | | |
| | | private final RedisTemplate<String, Object> redisTemplate; |
| | | |
| | |
| | | DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId); |
| | | if(ObjectUtil.isEmpty(dappMemberEntity)){ |
| | | memberInfoVo.setTotalAmount(AppContants.INIT_MONEY); |
| | | memberInfoVo.setAvailableAmount(AppContants.INIT_MONEY); |
| | | memberInfoVo.setFrozenAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | BigDecimal totalAmount = dappWalletCoinEntity.getTotalAmount(); |
| | | BigDecimal frozenAmount = dappWalletCoinEntity.getFrozenAmount(); |
| | | BigDecimal availableAmount = dappWalletCoinEntity.getAvailableAmount(); |
| | | if(BigDecimal.ZERO.compareTo(totalAmount) > 0){ |
| | | memberInfoVo.setTotalAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | memberInfoVo.setTotalAmount(totalAmount.setScale(2,BigDecimal.ROUND_DOWN)); |
| | | memberInfoVo.setTotalAmount(totalAmount.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | if(BigDecimal.ZERO.compareTo(frozenAmount) > 0){ |
| | | memberInfoVo.setFrozenAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | memberInfoVo.setFrozenAmount(frozenAmount.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | if(BigDecimal.ZERO.compareTo(availableAmount) > 0){ |
| | | memberInfoVo.setAvailableAmount(AppContants.INIT_MONEY); |
| | | }else{ |
| | | memberInfoVo.setAvailableAmount(availableAmount.setScale(4,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | } |
| | | return memberInfoVo; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<ApiAmountChangeListVo> findAmountInPage(ApiAmountChangeDto apiAmountChangeDto) { |
| | | public IPage<ApiAmountChangeListVo> findAmountInPage(ApiAmountChangeDto apiAmountChangeDto) { |
| | | Page<ApiAmountChangeListVo> page = new Page<>(apiAmountChangeDto.getPageNum(), apiAmountChangeDto.getPageSize()); |
| | | |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | |
| | | } |
| | | dappAccountMoneyChangeEntity.setMemberId(member.getId()); |
| | | IPage<ApiAmountChangeListVo> records = dappAccountMoneyChangeDao.selectChangeListInPage(page, dappAccountMoneyChangeEntity); |
| | | return records.getRecords(); |
| | | return records; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse addTeammate(ApiAddTeammateDto apiAddTeammateDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | //验证验证码是否正确 |
| | | // 根据前端传回的token在redis中找对应的value |
| | | ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue(); |
| | | if(ObjectUtil.isEmpty(apiAddTeammateDto.getCodeToken()) || ObjectUtil.isEmpty(apiAddTeammateDto.getCodeValue())){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("verification_code_err_001")); |
| | | } |
| | | String codeToken = apiAddTeammateDto.getCodeToken(); |
| | | String codeValue = apiAddTeammateDto.getCodeValue(); |
| | | if (redisTemplate.hasKey(codeToken)) { |
| | | //验证通过, 删除对应的key |
| | | if (valueOperations.get(codeToken).equals(codeValue)) { |
| | | redisTemplate.delete(codeToken); |
| | | } else { |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("verification_code_err_002")); |
| | | } |
| | | } else { |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("verification_code_err_003")); |
| | | } |
| | | |
| | | // 查询是否存在该账号用户 |
| | | DappMemberEntity memberExit = dappMemberDao.selectMemberInfoByUsername(apiAddTeammateDto.getAccount()); |
| | | if (ObjectUtil.isNotEmpty(memberExit)) { |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("register_err_004")); |
| | | } |
| | | DappMemberEntity refererMember = dappMemberDao.selectMemberInfoByInviteId(member.getInviteId()); |
| | | if (ObjectUtil.isEmpty(refererMember)) { |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("register_err_005")); |
| | | } |
| | | DappMemberEntity memberadd = new DappMemberEntity(); |
| | | memberadd.setUsername(apiAddTeammateDto.getAccount()); |
| | | memberadd.setPassword(SecureUtil.md5(apiAddTeammateDto.getPassword())); |
| | | memberadd.setIdentity(DataDictionaryEnum.LEVEL_MB.getCode()); |
| | | memberadd.setRefererId(member.getInviteId()); |
| | | dappMemberDao.insert(memberadd); |
| | | |
| | | //更新用户信息 |
| | | String inviteId = ShareCodeUtil.toSerialCode(memberadd.getId()); |
| | | memberadd.setInviteId(inviteId); |
| | | boolean flag = false; |
| | | String parentId = memberadd.getRefererId(); |
| | | String ids = ""; |
| | | while (!flag) { |
| | | ids += ("," + parentId); |
| | | DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId); |
| | | if (parentMember == null) { |
| | | break; |
| | | } |
| | | parentId = parentMember.getRefererId(); |
| | | if (parentMember.getRefererId().equals(parentMember.getInviteId())) { |
| | | flag = true; |
| | | } |
| | | } |
| | | memberadd.setRefererIds(ids); |
| | | dappMemberDao.updateById(memberadd); |
| | | //初始化账户信息 |
| | | DappWalletCoinEntity dappWalletCoinEntity = new DappWalletCoinEntity(); |
| | | dappWalletCoinEntity.setMemberId(memberadd.getId()); |
| | | dappWalletCoinEntity.setAvailableAmount(AppContants.INIT_MONEY); |
| | | dappWalletCoinEntity.setFrozenAmount(AppContants.INIT_MONEY); |
| | | dappWalletCoinEntity.setTotalAmount(AppContants.INIT_MONEY); |
| | | dappWalletCoinDao.insert(dappWalletCoinEntity); |
| | | |
| | | return new FebsResponse().success().message(MessageSourceUtils.getString("register_err_006")); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<ApiMyTeammateInfoListVo> myTeammateInfo(ApiMyTeammateInfoDto apiMyTeammateInfoDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | Page<ApiMyTeammateInfoListVo> page = new Page<>(apiMyTeammateInfoDto.getPageNum(), apiMyTeammateInfoDto.getPageSize()); |
| | | if(ObjectUtil.isEmpty(apiMyTeammateInfoDto.getInviteId())){ |
| | | apiMyTeammateInfoDto.setInviteId(member.getInviteId()); |
| | | }else{ |
| | | apiMyTeammateInfoDto.setInviteId(apiMyTeammateInfoDto.getInviteId()); |
| | | } |
| | | IPage<ApiMyTeammateInfoListVo> apiMyTeammateInfoListVos = dappMemberDao.selectMyTeammateInfoInPage(apiMyTeammateInfoDto, page); |
| | | if(CollUtil.isNotEmpty(apiMyTeammateInfoListVos.getRecords())){ |
| | | for(ApiMyTeammateInfoListVo apiMyTeammateInfoListVo : apiMyTeammateInfoListVos.getRecords()){ |
| | | String identity = apiMyTeammateInfoListVo.getIdentity(); |
| | | if(DataDictionaryEnum.LEVEL_TM.getCode().equals(identity)){ |
| | | apiMyTeammateInfoListVo.setLevelName("游客"); |
| | | }else{ |
| | | apiMyTeammateInfoListVo.setLevelName("会员"); |
| | | } |
| | | } |
| | | } |
| | | return apiMyTeammateInfoListVos; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse amountType() { |
| | | ArrayList<ApiAmountTypeVo> apiAmountTypeVos = new ArrayList<>(); |
| | | List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.WITHDRAW_OUT.getType()); |
| | | if(CollUtil.isNotEmpty(dataDictionaryCustoms)){ |
| | | for(DataDictionaryCustom dataDictionaryCustom : dataDictionaryCustoms){ |
| | | ApiAmountTypeVo apiAmountTypeVo = new ApiAmountTypeVo(); |
| | | apiAmountTypeVo.setDescription(dataDictionaryCustom.getDescription()); |
| | | apiAmountTypeVo.setCodeValue(dataDictionaryCustom.getValue()); |
| | | apiAmountTypeVos.add(apiAmountTypeVo); |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(apiAmountTypeVos); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<ApiMyTeammateAmountChangeListVo> findTeammateChangeListInPage(ApiAmountChangeDto apiAmountChangeDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | Page<ApiMyTeammateAmountChangeListVo> page = new Page<>(apiAmountChangeDto.getPageNum(), apiAmountChangeDto.getPageSize()); |
| | | apiAmountChangeDto.setInviteId(member.getInviteId()); |
| | | IPage<ApiMyTeammateAmountChangeListVo> amountChangeList = dappAccountMoneyChangeDao.selectTeammateChangeListInPage(apiAmountChangeDto,page); |
| | | return amountChangeList; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse getBankListInPage(ApiBankListDto apiBankListDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | List<ApiBankListVo> apiBankListVos = dappBankDao.selectBankListByMemberId(member.getId()); |
| | | return new FebsResponse().success().data(apiBankListVos); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addBank(ApiAddBankDto addBankDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | if(ObjectUtil.isEmpty(addBankDto.getTransferCode())){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("member_err_006")); |
| | | } |
| | | //验证资金密码 |
| | | Boolean aBoolean = validateTransferCodeInside(addBankDto.getTransferCode(), member.getId()); |
| | | if(!aBoolean){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("member_err_006")); |
| | | } |
| | | DappBank dappBank = new DappBank(); |
| | | dappBank.setMemberId(member.getId()); |
| | | dappBank.setType(addBankDto.getType()); |
| | | dappBank.setMemberName(addBankDto.getMemberName()); |
| | | dappBank.setCardCode(addBankDto.getCardCode()); |
| | | dappBank.setBankName(addBankDto.getBankName()); |
| | | dappBank.setBankOtherName(addBankDto.getBankOtherName()); |
| | | dappBank.setCountry(addBankDto.getCountry()); |
| | | dappBank.setProvince(addBankDto.getProvince()); |
| | | dappBank.setAddress(addBankDto.getAddress()); |
| | | dappBank.setIdentifyCode(addBankDto.getIdentifyCode()); |
| | | dappBank.setSwiftBicCode(addBankDto.getSwiftBicCode()); |
| | | dappBank.setIbanCode(addBankDto.getIbanCode()); |
| | | dappBankDao.insert(dappBank); |
| | | return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_001")); |
| | | } |
| | | |
| | | private Boolean validateTransferCodeInside(String transferCode, Long memberId) { |
| | | boolean flag = false; |
| | | DappMemberEntity member = dappMemberDao.selectById(memberId); |
| | | if (ObjectUtil.isEmpty(member)) { |
| | | return flag; |
| | | } |
| | | String transferCodeMember = member.getTransferCode(); |
| | | String transferCodeMd5Pwd = SecureUtil.md5(transferCode); |
| | | if(transferCodeMd5Pwd.equals(transferCodeMember)){ |
| | | flag = true; |
| | | }else{ |
| | | return flag; |
| | | } |
| | | return flag; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse getBankListInPage() { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | ApiAddressInfoVo apiAddressInfoVo = dappMemberAddressDao.selectByMemberId(member.getId()); |
| | | return new FebsResponse().success().data(apiAddressInfoVo); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addAddress(ApiAddAddressDto apiAddAddressDto) { |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | if(ObjectUtil.isEmpty(apiAddAddressDto.getTransferCode())){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("member_err_006")); |
| | | } |
| | | //验证资金密码 |
| | | Boolean aBoolean = validateTransferCodeInside(apiAddAddressDto.getTransferCode(), member.getId()); |
| | | if(!aBoolean){ |
| | | return new FebsResponse().fail().message(MessageSourceUtils.getString("member_err_006")); |
| | | } |
| | | ApiAddressInfoVo apiAddressInfoVo = dappMemberAddressDao.selectByMemberId(member.getId()); |
| | | if(ObjectUtil.isNotEmpty(apiAddressInfoVo)){ |
| | | return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_002")); |
| | | } |
| | | DappMemberAddress dappMemberAddress = new DappMemberAddress(); |
| | | dappMemberAddress.setType(apiAddAddressDto.getType()); |
| | | dappMemberAddress.setMemberId(member.getId()); |
| | | dappMemberAddress.setAddress(apiAddAddressDto.getAddress()); |
| | | dappMemberAddressDao.insert(dappMemberAddress); |
| | | return new FebsResponse().success().message(MessageSourceUtils.getString("Operation_001")); |
| | | } |
| | | |
| | | public String generateAsaToken(String token) { |