package com.xcong.excoin.modules.coin.service.impl;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.date.DateUtil;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.xcong.excoin.common.LoginUserUtils;
|
import com.xcong.excoin.common.enumerates.CoinTypeEnum;
|
import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
|
import com.xcong.excoin.common.response.Result;
|
import com.xcong.excoin.modules.coin.dao.*;
|
import com.xcong.excoin.modules.coin.entity.*;
|
import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
|
import com.xcong.excoin.modules.coin.parameter.dto.ZhiyaRewardRecordsPageDto;
|
import com.xcong.excoin.modules.coin.parameter.dto.ZhiyaRewardRecordsTypePageDto;
|
import com.xcong.excoin.modules.coin.parameter.vo.MemberGusdInfoVo;
|
import com.xcong.excoin.modules.coin.parameter.vo.UsdtToGusdVo;
|
import com.xcong.excoin.modules.coin.parameter.vo.ZhiyaInfoVo;
|
import com.xcong.excoin.modules.coin.parameter.vo.ZhiyaRewardVo;
|
import com.xcong.excoin.modules.coin.service.ZhiyaService;
|
import com.xcong.excoin.modules.member.dao.MemberDao;
|
import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
|
import com.xcong.excoin.modules.member.entity.MemberEntity;
|
import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
|
import com.xcong.excoin.utils.MessageSourceUtils;
|
import com.xcong.excoin.utils.RedisUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
@Service
|
public class ZhiyaServiceImpl extends ServiceImpl<ZhiYaDao, ZhiYaEntity> implements ZhiyaService {
|
|
@Resource
|
MemberWalletCoinDao memberWalletCoinDao;
|
@Resource
|
MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
|
@Resource
|
ZhiYaRecordDao zhiYaRecordDao;
|
@Resource
|
ZhiyaRewardDao zhiyaRewardDao;
|
@Resource
|
ZhiYaDao zhiYaDao;
|
@Resource
|
ZhiyaTeamDao zhiyaTeamDao;
|
@Resource
|
MemberDao memberdao;
|
@Resource
|
RedisUtils redisUtils;
|
@Override
|
@Transactional
|
public Result usdtToGusd(BigDecimal balance, Integer type) {
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
if (balance.compareTo(BigDecimal.ZERO) <= 0) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0004"));
|
}
|
if(1 == type){
|
// 扣币
|
String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
|
MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
|
BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
|
BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
|
|
BigDecimal available = availableBalance.subtract(balance);
|
if (available.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
}
|
BigDecimal total = totalBalance.subtract(balance);
|
if (total.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
}
|
|
memberWalletCoinEntity.setAvailableBalance(available);
|
memberWalletCoinEntity.setTotalBalance(total);
|
int i = memberWalletCoinDao.updateById(memberWalletCoinEntity);
|
if (i < 1) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0096"));
|
}
|
//添加资金划转历史记录
|
MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
|
//获取usdt兑换gusd的兑换比例
|
BigDecimal usdtToGusd = new BigDecimal(redisUtils.getString("USDTTOGSD"));
|
BigDecimal gusdBalance = balance.multiply(usdtToGusd);
|
|
ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
|
BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
|
zhiya.setAvailableBalance(gusdAvailableBalance.add(gusdBalance));
|
zhiya.setTotalBalance(gusdTotalBalance.add(gusdBalance));
|
|
int updateById = zhiYaDao.updateById(zhiya);
|
if (updateById < 1) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0096"));
|
}
|
|
//添加资金划转历史记录
|
memberAccountRecord.setMemberId(memberId);
|
memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
|
memberAccountRecord.setSymbol(walletCode);
|
memberAccountRecord.setContent(MemberWalletCoinEnum.ZHIYATOGUSD.getValue());
|
memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
|
memberAccountRecord.setAmount(gusdBalance);
|
memberAccountMoneyChangeDao.insert(memberAccountRecord);
|
}else if(2 == type){
|
// 扣币
|
ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
BigDecimal availableBalance = zhiya.getAvailableBalance();
|
BigDecimal totalBalance = zhiya.getTotalBalance();
|
|
BigDecimal available = availableBalance.subtract(balance);
|
if (available.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
}
|
BigDecimal total = totalBalance.subtract(balance);
|
if (total.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
}
|
|
zhiya.setAvailableBalance(available);
|
zhiya.setTotalBalance(total);
|
int i = zhiYaDao.updateById(zhiya);
|
if (i < 1) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0096"));
|
}
|
//添加资金划转历史记录
|
MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
|
//获取usdt兑换gusd的兑换比例
|
BigDecimal usdtToGusd = new BigDecimal(redisUtils.getString("USDTTOGSD"));
|
BigDecimal usdtBalance = balance.divide(usdtToGusd);
|
|
String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
|
MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
|
|
BigDecimal gusdAvailableBalance = memberWalletCoinEntity.getAvailableBalance();
|
BigDecimal gusdTotalBalance = memberWalletCoinEntity.getTotalBalance();
|
memberWalletCoinEntity.setAvailableBalance(gusdAvailableBalance.add(usdtBalance));
|
memberWalletCoinEntity.setTotalBalance(gusdTotalBalance.add(usdtBalance));
|
|
int updateById = memberWalletCoinDao.updateById(memberWalletCoinEntity);
|
if (updateById < 1) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0096"));
|
}
|
|
//添加资金划转历史记录
|
memberAccountRecord.setMemberId(memberId);
|
memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
|
memberAccountRecord.setSymbol(walletCode);
|
memberAccountRecord.setContent(MemberWalletCoinEnum.ZHIYATOUSDT.getValue());
|
memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
|
memberAccountRecord.setAmount(usdtBalance);
|
memberAccountMoneyChangeDao.insert(memberAccountRecord);
|
|
}else{
|
return Result.fail("member_controller_0005");
|
}
|
|
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
|
}
|
|
@Override
|
@Transactional
|
public Result zhiYaGusd(BigDecimal balance) {
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
if (balance.compareTo(new BigDecimal(100)) < 0) {
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0006"));
|
}
|
|
//质押Gusd,质押数量进入冻结余额,
|
ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
|
BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
|
BigDecimal gusdfrozenBalance = zhiya.getFrozenBalance();
|
|
BigDecimal available = gusdAvailableBalance.subtract(balance);
|
if (available.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0005"));
|
}
|
BigDecimal total = gusdTotalBalance.subtract(balance);
|
if (total.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0005"));
|
}
|
zhiya.setFrozenBalance(gusdfrozenBalance.add(balance));
|
zhiya.setAvailableBalance(gusdAvailableBalance.subtract(balance));
|
|
int updateById = zhiYaDao.updateById(zhiya);
|
if (updateById < 1) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0096"));
|
}
|
//产生质押单,当前有的话,累加质押数量
|
// ZhiYaRecordEntity zhiYaRecord = zhiYaRecordDao.selectByMemberIdAndOrderStatus(memberId,1);
|
// if(ObjectUtil.isEmpty(zhiYaRecord)){
|
//产生一条质押记录
|
ZhiYaRecordEntity zhiYaRecordEntity = new ZhiYaRecordEntity();
|
zhiYaRecordEntity.setMemberId(memberId);
|
zhiYaRecordEntity.setOrderNo(generateSimpleSerialno(memberId.toString()));
|
zhiYaRecordEntity.setSymbol(MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue());
|
zhiYaRecordEntity.setZhiyaCnt(balance);
|
zhiYaRecordEntity.setOrderStatus(1);
|
Date date = new Date();
|
Date newDate = DateUtil.offsetDay(date, 1);
|
zhiYaRecordEntity.setEffectDate(newDate);
|
zhiYaRecordDao.insert(zhiYaRecordEntity);
|
// }else{
|
// zhiYaRecord.setZhiyaCnt(zhiYaRecord.getZhiyaCnt().add(balance));
|
// Date date = new Date();
|
// Date newDate = DateUtil.offsetDay(date, 1);
|
// zhiYaRecord.setEffectDate(newDate);
|
// zhiYaRecordDao.updateById(zhiYaRecord);
|
// }
|
//更新团队算力表
|
MemberEntity memberEntity = memberdao.selectById(memberId);
|
String refererIds = memberEntity.getRefererIds();
|
if(StrUtil.isNotEmpty(refererIds)){
|
BigDecimal gricetoagent = new BigDecimal(redisUtils.getString("GRICETOAGENT"));
|
String[] split = refererIds.split(",");
|
List<String> strings = Arrays.asList(split);
|
if(CollUtil.isNotEmpty(Arrays.asList(split))){
|
for(String str : strings){
|
if(StrUtil.isNotEmpty(str)){
|
BigDecimal isAgent = BigDecimal.ZERO;
|
MemberEntity memberShangJi = memberdao.selectMemberInfoByInviteId(str);
|
ZhiYaTeam zhiyaTeamByMemberId = zhiYaRecordDao.selectZhiyaTeamRecordByMemberId(memberShangJi.getId());
|
if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
|
//更新数据
|
zhiyaTeamByMemberId.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().add(balance));
|
if(isAgent.compareTo(gricetoagent) >= 0){
|
zhiyaTeamByMemberId.setIsAgent(1);
|
}
|
zhiyaTeamDao.updateById(zhiyaTeamByMemberId);
|
}else{
|
//新增数据
|
ZhiYaTeam zhiYaTeam = new ZhiYaTeam();
|
zhiYaTeam.setRefererId(memberShangJi.getRefererId());
|
zhiYaTeam.setRefererIds(memberShangJi.getRefererIds());
|
zhiYaTeam.setMemberId(memberShangJi.getId());
|
if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
|
zhiYaTeam.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().add(balance));
|
isAgent = zhiyaTeamByMemberId.getZhiyaCnt().add(balance);
|
}else{
|
zhiYaTeam.setZhiyaCnt(balance);
|
isAgent = balance;
|
}
|
if(isAgent.compareTo(gricetoagent) >= 0){
|
zhiYaTeam.setIsAgent(1);
|
}
|
zhiyaTeamDao.insert(zhiYaTeam);
|
}
|
}
|
}
|
}
|
}
|
|
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
|
}
|
|
@Override
|
@Transactional
|
public Result shuhuiGusd(BigDecimal balance,Long id) {
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
if (balance.compareTo(BigDecimal.ZERO) <= 0) {
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0004"));
|
}
|
//赎回Gusd,获取质押单据,
|
ZhiYaRecordEntity zhiYaRecordEntity = zhiYaRecordDao.selectByIdAndMemberId(id,memberId);
|
if(ObjectUtil.isEmpty(zhiYaRecordEntity)){
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0002"));
|
}
|
if(1 != zhiYaRecordEntity.getOrderStatus()){
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0003"));
|
}
|
BigDecimal zhiyaCnt = zhiYaRecordEntity.getZhiyaCnt();
|
if(balance.compareTo(zhiyaCnt) > 0){
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0004"));
|
}
|
// zhiYaRecordEntity.setZhiyaCnt(zhiyaCnt.subtract(balance));
|
if(zhiyaCnt.compareTo(balance) != 0){
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0001"));
|
}
|
zhiYaRecordEntity.setOrderStatus(2);
|
zhiYaRecordDao.updateById(zhiYaRecordEntity);
|
//赎回Gusd,质押数量进入可用余额,
|
ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
|
BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
|
BigDecimal gusdfrozenBalance = zhiya.getFrozenBalance();
|
|
BigDecimal frozen = gusdfrozenBalance.subtract(balance);
|
if (frozen.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("zhiya_service_0001"));
|
}
|
BigDecimal total = gusdTotalBalance.subtract(balance);
|
if (total.compareTo(BigDecimal.ZERO) < 0) {
|
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
}
|
zhiya.setFrozenBalance(gusdfrozenBalance.subtract(balance));
|
zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
|
zhiYaDao.updateById(zhiya);
|
//更新团队算力表
|
MemberEntity memberEntity = memberdao.selectById(memberId);
|
String refererIds = memberEntity.getRefererIds();
|
if(StrUtil.isNotEmpty(refererIds)){
|
BigDecimal gricetoagent = new BigDecimal(redisUtils.getString("GRICETOAGENT"));
|
String[] split = refererIds.split(",");
|
List<String> strings = Arrays.asList(split);
|
if(CollUtil.isNotEmpty(Arrays.asList(split))){
|
for(String str : strings){
|
if(StrUtil.isNotEmpty(str)){
|
BigDecimal isAgent = BigDecimal.ZERO;
|
MemberEntity memberShangJi = memberdao.selectMemberInfoByInviteId(str);
|
ZhiYaTeam zhiyaTeamByMemberId = zhiYaRecordDao.selectZhiyaTeamRecordByMemberId(memberShangJi.getId());
|
if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
|
//更新数据
|
zhiyaTeamByMemberId.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance));
|
isAgent = zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance);
|
if(isAgent.compareTo(gricetoagent) >= 0){
|
zhiyaTeamByMemberId.setIsAgent(1);
|
}
|
zhiyaTeamDao.updateById(zhiyaTeamByMemberId);
|
}else{
|
//新增数据
|
ZhiYaTeam zhiYaTeam = new ZhiYaTeam();
|
zhiYaTeam.setRefererId(memberShangJi.getRefererId());
|
zhiYaTeam.setRefererIds(memberShangJi.getRefererIds());
|
zhiYaTeam.setMemberId(memberShangJi.getId());
|
if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
|
zhiYaTeam.setZhiyaCnt(zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance));
|
isAgent = zhiyaTeamByMemberId.getZhiyaCnt().subtract(balance);
|
}else{
|
zhiYaTeam.setZhiyaCnt(balance);
|
isAgent = balance;
|
}
|
if(isAgent.compareTo(gricetoagent) >= 0){
|
zhiYaTeam.setIsAgent(1);
|
}
|
zhiyaTeamDao.insert(zhiYaTeam);
|
}
|
}
|
}
|
}
|
}
|
return Result.ok(MessageSourceUtils.getString("member_service_0024"));
|
}
|
|
@Override
|
public Result findMemberGusdInfo() {
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
ZhiYaEntity zhiYaEntity = zhiYaDao.selectByMemberId(memberId);
|
MemberGusdInfoVo memberGusdInfoVo = new MemberGusdInfoVo();
|
memberGusdInfoVo.setMemberId(memberId);
|
memberGusdInfoVo.setFrozenBalance(zhiYaEntity.getFrozenBalance());
|
memberGusdInfoVo.setTotalBalance(zhiYaEntity.getTotalBalance());
|
memberGusdInfoVo.setAvailableBalance(zhiYaEntity.getAvailableBalance());
|
return Result.ok(memberGusdInfoVo);
|
}
|
|
@Override
|
public Result getZhiyaRecords(RecordsPageDto recordsPageDto) {
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
|
Page<ZhiyaInfoVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
|
ZhiYaEntity zhiya = new ZhiYaEntity();
|
zhiya.setMemberId(memberId);
|
IPage<ZhiyaInfoVo> lists = zhiYaRecordDao.selectByMemberIdInPage(page, zhiya);
|
return Result.ok(lists);
|
}
|
|
@Override
|
public Result getusdtToGusdRecords(RecordsPageDto recordsPageDto) {
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
|
Page<UsdtToGusdVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
|
MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
|
memberAccountMoneyChange.setMemberId(memberId);
|
IPage<UsdtToGusdVo> lists = memberAccountMoneyChangeDao.selectByMemberIdInPage(page, memberAccountMoneyChange);
|
return Result.ok(lists);
|
}
|
|
@Override
|
@Transactional
|
public void grantZhiyaAmount() {
|
//获取GUSD质押比例
|
BigDecimal gusdReward = new BigDecimal(redisUtils.getString("GUSDREWARD"));
|
BigDecimal fixedGusdReward = gusdReward.multiply(new BigDecimal(0.8));
|
if(fixedGusdReward.compareTo(BigDecimal.ZERO) > 0){
|
//获取今天之前满足发放奖励的全部质押单
|
//生效时间小于当前时间
|
//状态为生效中
|
List<ZhiYaRecordEntity> lists = zhiYaRecordDao.selectZhiYaRewardByStatueAndTime(1,new Date());
|
if(CollUtil.isNotEmpty(lists)){
|
for(ZhiYaRecordEntity zhiYaRecordEntity : lists){
|
ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
|
//查询今天有没有发送过了
|
String orderNo = zhiYaRecordEntity.getOrderNo();
|
Long memberId = zhiYaRecordEntity.getMemberId();
|
Date date = new Date();
|
List<ZhiyaRewardEntity> zhiyaRewardEntityDone = zhiYaRecordDao.selectZhiyaTeamRecordByMemberIdAndOrderNo(orderNo,memberId,date);
|
if(ObjectUtil.isEmpty(zhiyaRewardEntityDone)){
|
zhiyaRewardEntity.setRecordId(zhiYaRecordEntity.getId());
|
zhiyaRewardEntity.setRecordNo(zhiYaRecordEntity.getOrderNo());
|
zhiyaRewardEntity.setMemberId(zhiYaRecordEntity.getMemberId());
|
zhiyaRewardEntity.setType(1);
|
MemberEntity member = memberdao.selectById(zhiYaRecordEntity.getMemberId());
|
//获取当前人的上两级
|
BigDecimal multiplyReward = BigDecimal.ZERO;
|
MemberEntity memberEntity = memberdao.selectMemberInfoByInviteId(member.getRefererId());
|
if(ObjectUtil.isNotEmpty(memberEntity)){
|
//以及1代理的比例
|
BigDecimal agetShangji = new BigDecimal(redisUtils.getString("GUSDREWARDAGENTONE"));
|
BigDecimal multiply = zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward).multiply(agetShangji);
|
multiplyReward = (zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward).subtract(multiply));
|
ZhiyaRewardEntity zhiyaRewardEntitySJ = new ZhiyaRewardEntity();
|
zhiyaRewardEntitySJ.setRecordId(zhiYaRecordEntity.getId());
|
zhiyaRewardEntitySJ.setRecordNo(zhiYaRecordEntity.getOrderNo());
|
zhiyaRewardEntitySJ.setMemberId(memberEntity.getId());
|
zhiyaRewardEntitySJ.setType(2);
|
zhiyaRewardEntitySJ.setRewardAmout(multiply);
|
zhiyaRewardDao.insert(zhiyaRewardEntitySJ);
|
|
MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberEntity.getId(), CoinTypeEnum.GRICE.toString());
|
memberWalletCoinEntity.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().add(multiply));
|
memberWalletCoinEntity.setTotalBalance(memberWalletCoinEntity.getAvailableBalance().add(multiply));
|
memberWalletCoinDao.updateById(memberWalletCoinEntity);
|
|
MemberEntity memberEntitySSJ = memberdao.selectMemberInfoByInviteId(memberEntity.getRefererId());
|
if(ObjectUtil.isNotEmpty(memberEntitySSJ)){
|
BigDecimal agetSSJ = new BigDecimal(redisUtils.getString("GUSDREWARDAGENTTWO"));
|
BigDecimal multiplySSJ = zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward).multiply(agetSSJ);
|
multiplyReward = (zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward).subtract(multiply).subtract(multiplySSJ));
|
|
MemberWalletCoinEntity memberWalletCoinEntitySSJ = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberEntity.getId(), CoinTypeEnum.GRICE.toString());
|
memberWalletCoinEntitySSJ.setAvailableBalance(memberWalletCoinEntitySSJ.getAvailableBalance().add(multiply));
|
memberWalletCoinEntitySSJ.setTotalBalance(memberWalletCoinEntitySSJ.getAvailableBalance().add(multiply));
|
memberWalletCoinDao.updateById(memberWalletCoinEntitySSJ);
|
|
ZhiyaRewardEntity zhiyaRewardEntitySSJ = new ZhiyaRewardEntity();
|
zhiyaRewardEntitySSJ.setRecordId(zhiYaRecordEntity.getId());
|
zhiyaRewardEntitySSJ.setRecordNo(zhiYaRecordEntity.getOrderNo());
|
zhiyaRewardEntitySSJ.setMemberId(memberEntitySSJ.getId());
|
zhiyaRewardEntitySSJ.setType(2);
|
zhiyaRewardEntitySSJ.setRewardAmout(multiplySSJ);
|
zhiyaRewardDao.insert(zhiyaRewardEntitySSJ);
|
}
|
}else{
|
multiplyReward = (zhiYaRecordEntity.getZhiyaCnt().multiply(gusdReward));
|
}
|
zhiyaRewardEntity.setRewardAmout(multiplyReward);
|
zhiyaRewardDao.insert(zhiyaRewardEntity);
|
|
String refererIds = member.getRefererIds();
|
if(StrUtil.isNotEmpty(refererIds)){
|
String[] split = refererIds.split(",");
|
List<String> strings = Arrays.asList(split);
|
if(CollUtil.isNotEmpty(strings)){
|
for(String str : strings){
|
if(StrUtil.isNotEmpty(str)){
|
MemberEntity memberShangJi = memberdao.selectMemberInfoByInviteId(str);
|
ZhiYaTeam zhiyaTeamByMemberId = zhiYaRecordDao.selectZhiyaTeamRecordByMemberId(memberShangJi.getId());
|
if(ObjectUtil.isNotEmpty(zhiyaTeamByMemberId)){
|
//更新数据
|
zhiyaTeamByMemberId.setRewardCnt(
|
(zhiyaTeamByMemberId.getRewardCnt() == null ? BigDecimal.ZERO:zhiyaTeamByMemberId.getRewardCnt()).add(multiplyReward));
|
zhiyaTeamDao.updateById(zhiyaTeamByMemberId);
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
|
@Override
|
public Result getZhiyaReward(ZhiyaRewardRecordsPageDto recordsPageDto) {
|
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
|
Page<ZhiyaRewardVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
|
ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
|
zhiyaRewardEntity.setMemberId(memberId);
|
zhiyaRewardEntity.setRecordNo(recordsPageDto.getOrderNo());
|
IPage<ZhiyaRewardVo> lists = zhiYaRecordDao.selectZhiyaRewardByMemberIdInPage(page, zhiyaRewardEntity);
|
return Result.ok(lists);
|
}
|
|
@Override
|
public Result getZhiyaRewardTypeTo(ZhiyaRewardRecordsTypePageDto recordsPageDto) {
|
|
//获取用户ID
|
Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
|
Page<ZhiyaRewardVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
|
ZhiyaRewardEntity zhiyaRewardEntity = new ZhiyaRewardEntity();
|
zhiyaRewardEntity.setMemberId(memberId);
|
IPage<ZhiyaRewardVo> lists = zhiYaRecordDao.selectZhiyaRewardTypeToByMemberIdInPage(page, zhiyaRewardEntity);
|
return Result.ok(lists);
|
}
|
|
public String generateSimpleSerialno(String userId) {
|
StringBuilder sb = new StringBuilder();
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sd = new SimpleDateFormat("yyyyMMdd");
|
Date now = new Date();
|
sb.append(sd.format(now));
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTime(now);
|
calendar.add(calendar.DATE, 1);
|
Date nextDate = calendar.getTime();
|
if (StrUtil.isNotEmpty(userId)) {
|
sb.append(userId);
|
}
|
sb.append(RandomUtil.randomInt(2));
|
long count = zhiYaRecordDao.getOrderCountByToday(sdf.format(now), sdf.format(nextDate));
|
count++;
|
int size = 4;
|
for (int i = 0; i < size - String.valueOf(count).length(); i++) {
|
sb.append("0");
|
}
|
sb.append(count);
|
return sb.toString();
|
}
|
}
|