From a8ed6c8a55a3c594716a6ff02d5997c4bbbad09a Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 23 Feb 2022 11:36:50 +0800 Subject: [PATCH] 20222223 --- src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java | 95 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 89 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java index 0b76dfb..7692d4a 100644 --- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java @@ -1,11 +1,14 @@ package com.xcong.excoin.modules.coin.service.impl; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; import javax.annotation.Resource; -import javax.validation.Valid; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.date.DateUtil; +import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao; +import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity; import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -60,6 +63,8 @@ MemberAccountMoneyChangeDao memberAccountMoneyChangeDao; @Resource MemberWalletAgentDao memberWalletAgentDao; + @Resource + ZhiYaRecordDao zhiYaRecordDao; @Resource RedisUtils redisUtils; @@ -612,11 +617,11 @@ BigDecimal available = availableBalance.subtract(balance); if (available.compareTo(BigDecimal.ZERO) < 0) { - return Result.fail(MessageSourceUtils.getString("member_service_0008")); + 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_0008")); + return Result.fail(MessageSourceUtils.getString("member_service_0005")); } memberWalletCoinEntity.setAvailableBalance(available); @@ -649,7 +654,85 @@ memberAccountRecord.setAmount(balance); memberAccountMoneyChangeDao.insert(memberAccountRecord); - return Result.ok(MessageSourceUtils.getString("member_service_0006")); + return Result.ok(MessageSourceUtils.getString("member_service_0024")); + } + + @Override + public Result zhiYaGusd(BigDecimal balance) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + if (balance.compareTo(new BigDecimal(100)) < 0) { + return Result.fail(MessageSourceUtils.getString("member_service_0005")); + } + //质押Gusd,质押数量进入冻结余额, + String gusdName = CoinTypeEnum.GUSD.name(); + MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName); + BigDecimal gusdAvailableBalance = gusdMemberWalletCoinEntity.getAvailableBalance(); + BigDecimal gusdTotalBalance = gusdMemberWalletCoinEntity.getTotalBalance(); + BigDecimal gusdfrozenBalance = gusdMemberWalletCoinEntity.getFrozenBalance(); + + BigDecimal available = gusdAvailableBalance.subtract(balance); + if (available.compareTo(BigDecimal.ZERO) < 0) { + return Result.fail(MessageSourceUtils.getString("member_service_0005")); + } + BigDecimal total = gusdTotalBalance.subtract(balance); + if (total.compareTo(BigDecimal.ZERO) < 0) { + return Result.fail(MessageSourceUtils.getString("member_service_0005")); + } + gusdMemberWalletCoinEntity.setFrozenBalance(gusdfrozenBalance.add(gusdfrozenBalance)); + gusdMemberWalletCoinEntity.setAvailableBalance(gusdAvailableBalance.subtract(balance)); + + int updateById = memberWalletCoinDao.updateById(gusdMemberWalletCoinEntity); + if (updateById < 1) { + return Result.fail(MessageSourceUtils.getString("member_service_0095")); + } + //产生质押单,当前有的话,累加质押数量 + ZhiYaRecordEntity zhiYaRecord = zhiYaRecordDao.selectByMemberIdAndOrderStatus(memberId,1); + if(ObjectUtil.isEmpty(zhiYaRecord)){ + //产生一条质押记录 + ZhiYaRecordEntity zhiYaRecordEntity = new ZhiYaRecordEntity(); + zhiYaRecordEntity.setMemberId(memberId); + zhiYaRecordEntity.setOrderNo(generateSimpleSerialno(memberId.toString())); + zhiYaRecordEntity.setSymbol(gusdName); + 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); + } + + return Result.ok(MessageSourceUtils.getString("member_service_0024")); + } + + 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(); } } -- Gitblit v1.9.1