From cd59cd93b4eceee7b5f948a19d4e78371348fcd0 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 27 Jun 2024 10:29:27 +0800
Subject: [PATCH] 后台
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 383 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 219 insertions(+), 164 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 0f0df8e..d0c47dd 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -24,6 +24,7 @@
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
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;
@@ -36,6 +37,7 @@
import java.math.BigDecimal;
import java.util.*;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@@ -64,11 +66,25 @@
private final MallProductBuyRecordMapper mallProductBuyRecordMapper;
private final MallProductBuyMapper mallProductBuyMapper;
private final MallMemberSpeakMapper mallMemberSpeakMapper;
+ private final MallMemberChargeMapper mallMemberChargeMapper;
@Value("${spring.profiles.active}")
private String active;
+ private static final String ACCOUNT_PATTERN = "^[a-zA-Z0-9]{8,16}$";
+ private static final Pattern pattern = Pattern.compile(ACCOUNT_PATTERN);
+
+
+ public static boolean validateAccount(String account) {
+ return pattern.matcher(account).matches();
+ }
+
+ public static void main(String[] args) {
+ String account = "example"; // 示例账号,可以根据需要替换
+ boolean isValid = validateAccount(account);
+ System.out.println("账号是否有效: " + isValid);
+ }
@Transactional(rollbackFor = Exception.class)
@Override
public FebsResponse register(RegisterDto registerDto) {
@@ -79,11 +95,16 @@
* 返回账号和密钥给前端
*/
String accountLogin = registerDto.getAccountLogin();
+ boolean isValid = validateAccount(accountLogin);
+ if(!isValid){
+ throw new FebsException("账号不规范。");
+ }
MallMember mallMember = this.baseMapper.selectByAccountLogin(accountLogin);
if (mallMember != null) {
throw new FebsException("账号已使用,请重新注册。");
}
- String userKey = registerDto.getUserKey();
+ Integer selectCount = this.baseMapper.selectCount(null);
+ String userKey = ShareCodeUtil.toSerialNumberCode(selectCount);
MallMember mallMemberKey = this.baseMapper.selectByUserKey(userKey);
if (mallMemberKey != null) {
throw new FebsException("账号已使用,请重新注册。");
@@ -93,7 +114,6 @@
mallMember.setAccountLogin(accountLogin);
mallMember.setPassword(SecureUtil.md5(registerDto.getPassword()));
mallMember.setUserKey(userKey);
- mallMember.setTradePassword(SecureUtil.md5(registerDto.getTradePassword()));
Integer count = this.baseMapper.selectCount(null);
if (count != null && count != 0) {
@@ -103,15 +123,11 @@
}
mallMember.setReferrerId(registerDto.getInviteId());
}
-// mallMember.setName(registerDto.getName());
-// mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.getCode());
mallMember.setIsFrozen(ProductEnum.MEMBER_UNFROZEN.getValue());
-// mallMember.setSex("男");
-// mallMember.setBindPhone(registerDto.getAccount());
-
+ mallMember.setPartner(2);
this.baseMapper.insert(mallMember);
String inviteId = ShareCodeUtil.toSerialNumberCodeTwo(mallMember.getId());
@@ -148,17 +164,10 @@
MallMemberWallet wallet = new MallMemberWallet();
wallet.setMemberId(mallMember.getId());
mallMemberWalletMapper.insert(wallet);
- MallMemberAmount mallMemberAmount = new MallMemberAmount();
- mallMemberAmount.setMemberId(mallMember.getId());
- mallMemberAmountMapper.insert(mallMemberAmount);
-
- MallMemberPayment mallMemberPayment = new MallMemberPayment();
- mallMemberPayment.setMemberId(mallMember.getId());
- mallMemberPaymentMapper.insert(mallMemberPayment);
ApiRegisterVo apiRegisterVo = new ApiRegisterVo();
apiRegisterVo.setAccount(mallMember.getAccountLogin());
- apiRegisterVo.setUserKey(mallMember.getUserKey());
+ apiRegisterVo.setUserKey(registerDto.getPassword());
return new FebsResponse().success().data(apiRegisterVo);
}
@@ -231,83 +240,14 @@
MallMember mallMember = this.baseMapper.selectById(id);
MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember);
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(mallMember.getId());
+ mallMemberVo.setBalance(mallMemberWallet.getBalance());
- MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
- if (referMember != null) {
- mallMemberVo.setReferrerName(referMember.getName());
- }
-
- MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id);
- if (payment != null) {
- mallMemberVo.setHasPayment(1);
- }
-
- DataDictionaryCustom nftMinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.NFT_MIN.getType(),
- DataDictionaryEnum.NFT_MIN.getCode());
- mallMemberVo.setNftMin(ObjectUtil.isEmpty(nftMinDic) ? new BigDecimal(100) : new BigDecimal(nftMinDic.getValue()));
-
- DataDictionaryCustom outFcmMinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.OUT_FCM_MIN.getType(),
- DataDictionaryEnum.OUT_FCM_MIN.getCode());
- mallMemberVo.setOutFcmMin(ObjectUtil.isEmpty(outFcmMinDic) ? new BigDecimal(100) : new BigDecimal(outFcmMinDic.getValue()));
-
- DataDictionaryCustom fcmPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.FCM_PRICE.getType(),
- DataDictionaryEnum.FCM_PRICE.getCode());
- mallMemberVo.setFcmPrice(ObjectUtil.isEmpty(fcmPriceDic) ? new BigDecimal(2) : new BigDecimal(fcmPriceDic.getValue()));
-
- DataDictionaryCustom outFcmFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.OUT_FCM_FEE.getType(),
- DataDictionaryEnum.OUT_FCM_FEE.getCode());
- mallMemberVo.setOutFcmFee(ObjectUtil.isEmpty(outFcmFeeDic) ? new BigDecimal(20) : new BigDecimal(outFcmFeeDic.getValue()));
-
- DataDictionaryCustom nftFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.NFT_FEE.getType(),
- DataDictionaryEnum.NFT_FEE.getCode());
- BigDecimal nftFeePercent = ObjectUtil.isEmpty(nftFeeDic) ? new BigDecimal(20) : new BigDecimal(nftFeeDic.getValue());
- mallMemberVo.setNftFee(nftFeePercent);
-
- DataDictionaryCustom memberFrozenFcmCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.MEMBER_FROZEN_FCM_CNT.getType(),
- DataDictionaryEnum.MEMBER_FROZEN_FCM_CNT.getCode()
+ DataDictionaryCustom chargeAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.CHARGE_ADDRESS.getType(),
+ DataDictionaryEnum.CHARGE_ADDRESS.getCode()
);
- BigDecimal memberFrozenFcmCnt = ObjectUtil.isEmpty(memberFrozenFcmCntDic) ? new BigDecimal(100) : new BigDecimal(memberFrozenFcmCntDic.getValue());
- mallMemberVo.setUnfrozenCnt(memberFrozenFcmCnt);
-
- DataDictionaryCustom insureMinuteDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.INSURE_END_MINUTE.getType(),
- DataDictionaryEnum.INSURE_END_MINUTE.getCode()
- );
- Integer insureMinute = Integer.parseInt(ObjectUtil.isEmpty(insureMinuteDic) ? "60" : insureMinuteDic.getValue());
- mallMemberVo.setMinuteCnt(insureMinute);
-
- DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel());
- if (dic != null) {
- mallMemberVo.setLevelName(dic.getDescription());
- }
- MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId());
- mallMemberVo.setGsd(mallMemberAmount.getGsd());
- mallMemberVo.setStaticNft(mallMemberAmount.getStaticNft());
- mallMemberVo.setTrendsNft(mallMemberAmount.getTrendsNft());
- mallMemberVo.setFrozenNft(mallMemberAmount.getFrozenNft());
- mallMemberVo.setFcmCntAva(mallMemberAmount.getFcmCntAva());
- mallMemberVo.setFcmCntFrozen(mallMemberAmount.getFcmCntFrozen());
- mallMemberVo.setTokenAva(mallMemberAmount.getTokenAva());
- mallMemberVo.setTokenFrozen(mallMemberAmount.getTokenFrozen());
- DataDictionaryCustom startTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.YU_YUE_START_TIME.getType(),
- DataDictionaryEnum.YU_YUE_START_TIME.getCode()
- );
- mallMemberVo.setStartTime(startTimeDic.getValue());
- DataDictionaryCustom endTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.YU_YUE_END_TIME.getType(),
- DataDictionaryEnum.YU_YUE_END_TIME.getCode()
- );
- mallMemberVo.setEndTime(endTimeDic.getValue());
-
- Integer pickCount = mallProductBuyMapper.selectListByMemberIdAndState(id);
- mallMemberVo.setPickCount(pickCount);
+ mallMemberVo.setSysAddress(chargeAddressDic.getValue());
return new FebsResponse().success().data(mallMemberVo);
}
@@ -362,77 +302,98 @@
}
@Override
- public FebsResponse teamList(TeamListDto teamListDto) {
- Long memberId = null;
- if (teamListDto.getId() == null) {
- memberId = LoginUserUtil.getLoginUser().getId();
- } else {
- memberId = teamListDto.getId();
- }
-
+ public FebsResponse teamList() {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
MallMember mallMember = this.baseMapper.selectById(memberId);
- List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
-
MyTeamVo myTeamVo = new MyTeamVo();
- myTeamVo.setTeam(list);
- myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1));
- myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2));
- myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
+ /**
+ * 团队人数,只有直属两级
+ */
+ ArrayList<Long> memberIdList = new ArrayList<>();
+ memberIdList.add(memberId);
+
+ QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("referrer_id",mallMember.getInviteId());
+ List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(mallMembers)){
+ for(MallMember directMember : mallMembers){
+ //第一代
+ memberIdList.add(directMember.getId());
+
+ QueryWrapper<MallMember> directWrapper = new QueryWrapper<>();
+ directWrapper.eq("referrer_id",directMember.getInviteId());
+ List<MallMember> refMembers = this.baseMapper.selectList(directWrapper);
+ if(CollUtil.isNotEmpty(refMembers)){
+ for(MallMember refMember : refMembers){
+ //第二代
+ memberIdList.add(refMember.getId());
+ }
+ }
+ }
+ }
+ BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumAmountByMemberIdAndType(memberIdList,GameFlowTypeEnum.PLAYER_CHARGE.getValue());
+
+ myTeamVo.setMyTeamCnt(memberIdList.size());
+ myTeamVo.setMyAchieve(chargeAmount);
return new FebsResponse().success().data(myTeamVo);
}
@Override
- public FebsResponse teamFcmList(TeamListDto teamListDto) {
- Long memberId = null;
- if (ObjectUtil.isEmpty(teamListDto.getId())) {
- memberId = LoginUserUtil.getLoginUser().getId();
- } else {
- memberId = teamListDto.getId();
- }
-
+ public FebsResponse teamFcmList() {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
MallMember mallMember = this.baseMapper.selectById(memberId);
- MyFcmTeamVo myTeamVo = new MyFcmTeamVo();
- myTeamVo.setMemberId(mallMember.getId());
- myTeamVo.setAccountLogin(mallMember.getAccountLogin());
- myTeamVo.setIsFrozen(mallMember.getIsFrozen());
- myTeamVo.setLevelName(MemberLevelNewEnum.ZERO_LEVEL.getLevelName(mallMember.getLevel()));
- myTeamVo.setMyAchieveBuy(this.baseMapper.selectAchieveBuyByMemberId(mallMember.getInviteId(), 1));
- myTeamVo.setMyAchieveSell(this.baseMapper.selectAchieveSellByMemberId(mallMember.getInviteId(), 1));
- myTeamVo.setMyTeamAchieveBuy(this.baseMapper.selectAchieveBuyByMemberId(mallMember.getInviteId(), 2));
- myTeamVo.setMyTeamAchieveSell(this.baseMapper.selectAchieveSellByMemberId(mallMember.getInviteId(), 2));
- myTeamVo.setMyTeamMemberCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
- Integer buyCnt = this.baseMapper.selectAchieveBuyOrderCntByMemberId(mallMember.getInviteId());
- Integer sellCnt = this.baseMapper.selectAchieveSellOrderCntByMemberId(mallMember.getInviteId());
- myTeamVo.setMyTeamOrderCnt(buyCnt+sellCnt);
+ ArrayList<MyFcmTeamVo> myFcmTeamVos = new ArrayList<>();
+ /**
+ * 团队人数,只有直属两级
+ */
+ ArrayList<Long> memberIdList = new ArrayList<>();
+ memberIdList.add(memberId);
- List<MallMember> mallMembersDirects = this.baseMapper.selectChildAgentListByInviteId(mallMember.getInviteId());
- List<MyFcmTeamVo> list = new ArrayList<>();
- if(CollUtil.isNotEmpty(mallMembersDirects)){
- for(MallMember mallMembersDirect : mallMembersDirects){
- MyFcmTeamVo myTeamDirectVo = new MyFcmTeamVo();
- myTeamDirectVo.setMemberId(mallMembersDirect.getId());
- myTeamDirectVo.setAccountLogin(mallMembersDirect.getAccountLogin());
- myTeamDirectVo.setIsFrozen(mallMembersDirect.getIsFrozen());
- myTeamDirectVo.setLevelName(MemberLevelNewEnum.ZERO_LEVEL.getLevelName(mallMembersDirect.getLevel()));
- myTeamDirectVo.setMyAchieveBuy(this.baseMapper.selectAchieveBuyByMemberId(mallMembersDirect.getInviteId(), 1));
- myTeamDirectVo.setMyAchieveSell(this.baseMapper.selectAchieveSellByMemberId(mallMembersDirect.getInviteId(), 1));
- myTeamDirectVo.setMyTeamAchieveBuy(this.baseMapper.selectAchieveBuyByMemberId(mallMembersDirect.getInviteId(), 2));
- myTeamDirectVo.setMyTeamAchieveSell(this.baseMapper.selectAchieveSellByMemberId(mallMembersDirect.getInviteId(), 2));
- myTeamDirectVo.setMyTeamMemberCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMembersDirect.getInviteId()).size());
- Integer buyCntDirect = this.baseMapper.selectAchieveBuyOrderCntByMemberId(mallMembersDirect.getInviteId());
- Integer sellCntDirect = this.baseMapper.selectAchieveSellOrderCntByMemberId(mallMembersDirect.getInviteId());
- myTeamDirectVo.setMyTeamOrderCnt(buyCntDirect+sellCntDirect);
- list.add(myTeamDirectVo);
+ QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("referrer_id",mallMember.getInviteId());
+ List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(mallMembers)){
+ for(MallMember directMember : mallMembers){
+ //第一代
+ memberIdList.add(directMember.getId());
+
+ QueryWrapper<MallMember> directWrapper = new QueryWrapper<>();
+ directWrapper.eq("referrer_id",directMember.getInviteId());
+ List<MallMember> refMembers = this.baseMapper.selectList(directWrapper);
+ if(CollUtil.isNotEmpty(refMembers)){
+ for(MallMember refMember : refMembers){
+ //第二代
+ memberIdList.add(refMember.getId());
+ }
+ }
}
}
- myTeamVo.setTeam(list);
+ for(Long id : memberIdList){
+ MyFcmTeamVo myFcmTeamVo = new MyFcmTeamVo();
+ MallMember member = this.baseMapper.selectById(id);
+ myFcmTeamVo.setAccountLogin(member.getAccountLogin());
+ BigDecimal chargeAmount = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_CHARGE.getValue());
+ myFcmTeamVo.setChargeAmount(chargeAmount);
- return new FebsResponse().success().data(myTeamVo);
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(id);
+ myFcmTeamVo.setBalance(mallMemberWallet.getBalance());
+
+ BigDecimal amountBuy = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PICK_NUM.getValue());
+ myFcmTeamVo.setAmountBuy(amountBuy);
+
+ BigDecimal playerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.PLAYER_PERK.getValue());
+ BigDecimal ownerPerk = mallMoneyFlowMapper.selectSumByMemberIdAndType(id,GameFlowTypeEnum.OWNER_PERK.getValue());
+ myFcmTeamVo.setAmountPerk(amountBuy.add(playerPerk).add(ownerPerk));
+
+ myFcmTeamVos.add(myFcmTeamVo);
+ }
+
+ return new FebsResponse().success().data(myFcmTeamVos);
}
@Override
@@ -445,7 +406,6 @@
IPage<MoneyFlowVo> page = new Page<>(moneyFlowDto.getPageNum(), moneyFlowDto.getPageSize());
Long id = LoginUserUtil.getLoginUser().getId();
moneyFlowDto.setMemberId(id);
-// IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiFcmMoneyFlowInPage(page, moneyFlowDto);
return new FebsResponse().success().data(pages);
}
@@ -473,7 +433,7 @@
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();
@@ -498,7 +458,6 @@
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){
@@ -529,7 +488,7 @@
}
if(2 == type){
if (amount.compareTo(mallMemberAmountLogin.getTokenAva()) > 0) {
- throw new FebsException("门票不足");
+ throw new FebsException("宝石不足");
}
mallMemberAmountLogin.setTokenAva(mallMemberAmountLogin.getTokenAva().subtract(amount));
mallMemberAmountMapper.updateTokenAvaById(mallMemberAmountLogin);
@@ -552,6 +511,47 @@
loginMember.getId(),
FlowTypeNewEnum.TOKEN.getValue(),
MoneyFlowTypeNewEnum.TOKEN_INSIDE_IN.getDescrition());
+ }
+ if(3 == type){
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getType(),
+ DataDictionaryEnum.FCM_INSIDE_NFT_PERCENT.getCode()
+ );
+ BigDecimal feePercent = new BigDecimal("0.01").multiply(new BigDecimal(dataDictionaryCustom.getValue()));
+ if (amount.compareTo(mallMemberAmountLogin.getTrendsNft()) > 0) {
+ throw new FebsException("卡牌不足");
+ }
+ BigDecimal fee = amount.multiply(feePercent).setScale(2,BigDecimal.ROUND_DOWN);
+ BigDecimal amountReal = amount.subtract(fee);
+ mallMemberAmountLogin.setTrendsNft(mallMemberAmountLogin.getTrendsNft().subtract(amount));
+ mallMemberAmountMapper.updateTrendsNftById(mallMemberAmountLogin);
+ String orderNo = MallUtils.getOrderNum("NFT");
+ mallMoneyFlowService.addMoneyFlow(
+ loginMember.getId(),
+ amountReal.negate(),
+ MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getValue(),
+ orderNo,
+ mallMember.getId(),
+ FlowTypeNewEnum.NFT.getValue(),
+ MoneyFlowTypeNewEnum.NFT_TRANS_OUT.getDescrition());
+ mallMoneyFlowService.addMoneyFlow(
+ loginMember.getId(),
+ fee.negate(),
+ MoneyFlowTypeNewEnum.NFT_TRANS_OUT_FEE.getValue(),
+ orderNo,
+ mallMember.getId(),
+ FlowTypeNewEnum.NFT.getValue(),
+ MoneyFlowTypeNewEnum.NFT_TRANS_OUT_FEE.getDescrition());
+ mallMemberAmount.setTrendsNft(mallMemberAmount.getTrendsNft().add(amountReal));
+ mallMemberAmountMapper.updateTrendsNftById(mallMemberAmount);
+ mallMoneyFlowService.addMoneyFlow(
+ mallMember.getId(),
+ amountReal,
+ MoneyFlowTypeNewEnum.NFT_TRANS_IN.getValue(),
+ orderNo,
+ loginMember.getId(),
+ FlowTypeNewEnum.NFT.getValue(),
+ MoneyFlowTypeNewEnum.NFT_TRANS_IN.getDescrition());
}
}
@@ -842,13 +842,19 @@
@Override
public FebsResponse updatePayment(UpdatePaymentDto updatePaymentDto) {
Long memberId = LoginUserUtil.getLoginUser().getId();
+ QueryWrapper<MallProductBuy> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("member_id",memberId);
+ List<MallProductBuy> mallProductBuys = mallProductBuyMapper.selectList(objectQueryWrapper);
+ if(ObjectUtil.isNotEmpty(mallProductBuys)){
+ throw new FebsException("信息无法修改");
+ }
MallMemberPayment mallMemberPayment = mallMemberPaymentMapper.selectByMemberId(memberId);
mallMemberPayment.setWxQrcode(updatePaymentDto.getWxQrcode());
mallMemberPayment.setAliQrcode(updatePaymentDto.getAliQrcode());
mallMemberPayment.setBankName(updatePaymentDto.getBankName());
- mallMemberPayment.setBankNo(updatePaymentDto.getBankNo());
- mallMemberPayment.setBank(updatePaymentDto.getBank());
+// mallMemberPayment.setBankNo(updatePaymentDto.getBankNo());
+// mallMemberPayment.setBank(updatePaymentDto.getBank());
mallMemberPayment.setPhone(updatePaymentDto.getPhone());
mallMemberPayment.setUsdtTongdao(updatePaymentDto.getUsdtTongdao());
mallMemberPayment.setUsdtAddress(updatePaymentDto.getUsdtAddress());
@@ -881,9 +887,9 @@
);
BigDecimal memberFrozenFcmCnt = new BigDecimal(memberFrozenFcmCntDic.getValue());
MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(memberId);
- BigDecimal fcmCntAva = mallMemberAmount.getFcmCntAva();
+ BigDecimal fcmCntAva = mallMemberAmount.getTokenAva();
if(memberFrozenFcmCnt.compareTo(fcmCntAva) > 0){
- throw new FebsException("解除冻结需要GFA的数量为:" + fcmCntAva);
+ throw new FebsException("激活需要宝石的数量为:" + fcmCntAva);
}
if(2 == unfreezeDto.getType()){
List<MallMember> mallMembers = this.baseMapper.selectByRefererId(loginMember.getInviteId());
@@ -893,7 +899,7 @@
}
}
BigDecimal fcmCntAvaSub = fcmCntAva.subtract(memberFrozenFcmCnt);
- mallMemberAmount.setFcmCntAva(fcmCntAvaSub);
+ mallMemberAmount.setTokenAva(fcmCntAvaSub);
mallMemberAmountMapper.updateById(mallMemberAmount);
mallMember.setIsFrozen(ProductEnum.MEMBER_UNFROZEN.getValue());
this.baseMapper.updateById(mallMember);
@@ -904,7 +910,7 @@
MoneyFlowTypeNewEnum.UNFREEZE_USER.getValue(),
MallUtils.getOrderNum(),
memberId,
- FlowTypeNewEnum.FCM_COIN.getValue(),
+ FlowTypeNewEnum.TOKEN.getValue(),
MoneyFlowTypeNewEnum.UNFREEZE_USER.getDescrition());
return new FebsResponse().success().message("操作成功");
@@ -931,16 +937,65 @@
return new FebsResponse().success().data(pages);
}
- public static void main(String[] args) {
- Set<String> objectsAccount = new HashSet<>();
- Set<String> objects = new HashSet<>();
- int j = 100;
- for(int i =0;i < 100 ; i++){
- String s = ShareCodeUtil.toSerialNumberCodeTwo(j);
- objects.add(s);
+ @Override
+ public FebsResponse chargeBalance(ApiChargeBalanceDto apiChargeBalanceDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ MallMember mallMember = this.baseMapper.selectById(memberId);
+ if(ObjectUtil.isEmpty(mallMember.getBindPhone())){
+ throw new FebsException("请绑定充值提取地址");
+ }
+ String address = mallMember.getBindPhone();
+ BigDecimal amount = apiChargeBalanceDto.getAmount();
+ DataDictionaryCustom chargeAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.CHARGE_AMOUNT.getType(),
+ DataDictionaryEnum.CHARGE_AMOUNT.getCode()
+ );
+ BigDecimal chargeAmount = new BigDecimal(chargeAmountDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+ if(chargeAmount.compareTo(amount) > 0){
+ throw new FebsException("充值金额需要大于"+chargeAmount);
}
- System.out.println(objects);
- System.out.println(objects.size());
+ MallMemberCharge mallMemberCharge = new MallMemberCharge();
+ mallMemberCharge.setMemberId(memberId);
+ mallMemberCharge.setAmount(amount);
+ mallMemberCharge.setAddress(address);
+ mallMemberCharge.setState(1);
+ mallMemberChargeMapper.insert(mallMemberCharge);
+
+ return new FebsResponse().success().message("操作成功");
}
+
+ @Override
+ public FebsResponse bindAddress(ApiBindAddressDto apiBindAddressDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+
+ MallMember mallMember = this.baseMapper.selectById(memberId);
+ if(ObjectUtil.isNotEmpty(mallMember.getBindPhone())){
+ throw new FebsException("账号已绑定,请勿重复提交");
+ }
+
+ String address = apiBindAddressDto.getAddress().toLowerCase();
+ QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("bind_phone",address);
+ List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(mallMembers)){
+ throw new FebsException("请使用未绑定的地址");
+ }
+ mallMember.setBindPhone(address);
+ this.baseMapper.updateById(mallMember);
+ return new FebsResponse().success().message("操作成功");
+ }
+
+// public static void main(String[] args) {
+// Set<String> objectsAccount = new HashSet<>();
+// Set<String> objects = new HashSet<>();
+// int j = 100;
+// for(int i =0;i < 100 ; i++){
+// String s = ShareCodeUtil.toSerialNumberCodeTwo(j);
+// objects.add(s);
+// }
+//
+// System.out.println(objects);
+// System.out.println(objects.size());
+// }
}
--
Gitblit v1.9.1