| | |
| | | @Getter |
| | | public enum MoneyFlowTypeNewEnum { |
| | | |
| | | NFT_TRANS_IN(30,"卡牌转入"), |
| | | NFT_TRANS_OUT(29,"卡牌转出"), |
| | | PERK_POINT(28,"节点收益"), |
| | | PERK_CYCLE(27,"收益"), |
| | | GSD_GFA(26,"GFD兑换GFA"), |
| | |
| | | @ApiModel(value = "TransferDto", description = "转账接收参数类") |
| | | public class TransferDto { |
| | | |
| | | @ApiModelProperty(value = "转出类型 1:FCM 2:令牌", example = "1") |
| | | @ApiModelProperty(value = "转出类型 1:FCM 2:令牌 3:卡牌", example = "1") |
| | | private int type; |
| | | |
| | | @NotBlank(message = "转出账户不能为空") |
| | |
| | | queryMallMoneyFlow.eq("is_return",AppContants.MEMBER_FLOW_ING); |
| | | queryMallMoneyFlow.eq("flow_type",FlowTypeNewEnum.NFT.getValue()); |
| | | List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(queryMallMoneyFlow); |
| | | if(CollUtil.isNotEmpty(mallMoneyFlows)){ |
| | | if(CollUtil.isEmpty(mallMoneyFlows)){ |
| | | return; |
| | | } |
| | | |
| | |
| | | queryMallMoneyFlow.eq("is_return",AppContants.MEMBER_FLOW_ING); |
| | | queryMallMoneyFlow.eq("flow_type",FlowTypeNewEnum.NFT.getValue()); |
| | | List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(queryMallMoneyFlow); |
| | | if(CollUtil.isNotEmpty(mallMoneyFlows)){ |
| | | if(CollUtil.isEmpty(mallMoneyFlows)){ |
| | | return; |
| | | } |
| | | |
| | |
| | | queryMallMoneyFlow.eq("is_return",AppContants.MEMBER_FLOW_ING); |
| | | queryMallMoneyFlow.eq("flow_type",FlowTypeNewEnum.NFT.getValue()); |
| | | List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList(queryMallMoneyFlow); |
| | | if(CollUtil.isNotEmpty(mallMoneyFlows)){ |
| | | if(CollUtil.isEmpty(mallMoneyFlows)){ |
| | | return; |
| | | } |
| | | |
| | |
| | | BigDecimal amount = transferDto.getAmount(); |
| | | int type = transferDto.getType(); |
| | | |
| | | if(1 != type && 2 != type){ |
| | | if(1 != type && 2 != type && 3 != type){ |
| | | throw new FebsException("请选择互转类型"); |
| | | } |
| | | Integer insideWith = loginMember.getInsideWith() == null ? 2 :loginMember.getInsideWith(); |
| | |
| | | throw new FebsException("交易密码错误"); |
| | | } |
| | | |
| | | BigDecimal avaAmount = transferDto.getAmount().setScale(2, BigDecimal.ROUND_DOWN); |
| | | MallMemberAmount mallMemberAmountLogin = mallMemberAmountMapper.selectByMemberId(loginMember.getId()); |
| | | MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId()); |
| | | if(1 == type){ |
| | |
| | | FlowTypeNewEnum.TOKEN.getValue(), |
| | | MoneyFlowTypeNewEnum.TOKEN_INSIDE_IN.getDescrition()); |
| | | } |
| | | if(3 == type){ |
| | | if (amount.compareTo(mallMemberAmountLogin.getTrendsNft()) > 0) { |
| | | throw new FebsException("卡牌不足"); |
| | | } |
| | | mallMemberAmountLogin.setTrendsNft(mallMemberAmountLogin.getTrendsNft().subtract(amount)); |
| | | mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountLogin); |
| | | String orderNo = MallUtils.getOrderNum("NFT"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | loginMember.getId(), |
| | | amount.negate(), |
| | | MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getValue(), |
| | | orderNo, |
| | | mallMember.getId(), |
| | | FlowTypeNewEnum.NFT.getValue(), |
| | | MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getDescrition()); |
| | | mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amount)); |
| | | mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | mallMember.getId(), |
| | | amount, |
| | | MoneyFlowTypeNewEnum.NFT_TRANS_IN.getValue(), |
| | | orderNo, |
| | | loginMember.getId(), |
| | | FlowTypeNewEnum.NFT.getValue(), |
| | | MoneyFlowTypeNewEnum.NFT_TRANS_IN.getDescrition()); |
| | | } |
| | | } |
| | | |
| | | @Override |