| | |
| | | import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao;
|
| | | import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
|
| | | import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.*;
|
| | | import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
| | | import com.xcong.excoin.modules.coin.entity.OrderCoinsDealEntity;
|
| | | import com.xcong.excoin.modules.coin.mapper.MemberAccountMoneyChangeMapper;
|
| | | import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.AllWalletCoinVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberAccountMoneyChangeInfoVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberAgentIntoInfoVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletAgentInfoVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinInfoVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinVo;
|
| | | import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletContractInfoVo;
|
| | | import com.xcong.excoin.modules.coin.service.CoinService;
|
| | | import com.xcong.excoin.modules.member.dao.MemberWalletAgentDao;
|
| | | import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
|
| | |
| | | @Resource
|
| | | MemberWalletCoinDao memberWalletCoinDao;
|
| | | @Resource
|
| | | ZhiYaDao zhiYaDao;
|
| | | @Resource
|
| | | MemberWalletContractDao memberWalletContractDao;
|
| | | @Resource
|
| | | MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
|
| | |
| | | MemberWalletAgentDao memberWalletAgentDao;
|
| | | @Resource
|
| | | ZhiYaRecordDao zhiYaRecordDao;
|
| | | @Resource
|
| | | ZhiYaDao zhiYaDao;
|
| | | @Resource
|
| | | RedisUtils redisUtils;
|
| | |
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public Result usdtToGusd(BigDecimal balance) {
|
| | | 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();
|
| | |
|
| | | // 扣币
|
| | | 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"));
|
| | | }
|
| | |
|
| | | BigDecimal available = availableBalance.subtract(balance);
|
| | | if (available.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");
|
| | | }
|
| | | 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的兑换比例
|
| | | ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
| | |
|
| | | // String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
|
| | | // MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
|
| | | BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
|
| | | BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
|
| | | zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
|
| | | zhiya.setTotalBalance(gusdTotalBalance.add(balance));
|
| | |
|
| | | 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(balance);
|
| | | memberAccountMoneyChangeDao.insert(memberAccountRecord);
|
| | |
|
| | | return Result.ok(MessageSourceUtils.getString("member_service_0024"));
|
| | | }
|
| | |
| | | //获取用户ID
|
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
| | | if (balance.compareTo(new BigDecimal(100)) < 0) {
|
| | | return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
| | | return Result.fail(MessageSourceUtils.getString("zhiya_service_0006"));
|
| | | }
|
| | | //质押Gusd,质押数量进入冻结余额,
|
| | | // String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
|
| | | // MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
|
| | |
|
| | | //质押Gusd,质押数量进入冻结余额,
|
| | | ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
| | | BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
|
| | | BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
|
| | |
| | |
|
| | | BigDecimal available = gusdAvailableBalance.subtract(balance);
|
| | | if (available.compareTo(BigDecimal.ZERO) < 0) {
|
| | | return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
| | | return Result.fail(MessageSourceUtils.getString("zhiya_service_0005"));
|
| | | }
|
| | | BigDecimal total = gusdTotalBalance.subtract(balance);
|
| | | if (total.compareTo(BigDecimal.ZERO) < 0) {
|
| | | return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
| | | return Result.fail(MessageSourceUtils.getString("zhiya_service_0005"));
|
| | | }
|
| | | zhiya.setFrozenBalance(gusdfrozenBalance.add(gusdfrozenBalance));
|
| | | zhiya.setFrozenBalance(gusdfrozenBalance.add(balance));
|
| | | zhiya.setAvailableBalance(gusdAvailableBalance.subtract(balance));
|
| | |
|
| | | int updateById = zhiYaDao.updateById(zhiya);
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public Result shuhuiGusd(BigDecimal balance) {
|
| | | public Result shuhuiGusd(BigDecimal balance,Long id) {
|
| | | //获取用户ID
|
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId();
|
| | | if (balance.compareTo(BigDecimal.ZERO) <= 0) {
|
| | | return Result.fail(MessageSourceUtils.getString("order_service_0010"));
|
| | | return Result.fail(MessageSourceUtils.getString("zhiya_service_0004"));
|
| | | }
|
| | | //质押Gusd,质押数量进入冻结余额,
|
| | | // String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
|
| | | // MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
|
| | | //赎回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){
|
| | | zhiYaRecordEntity.setOrderStatus(2);
|
| | | }
|
| | | zhiYaRecordDao.updateById(zhiYaRecordEntity);
|
| | | //赎回Gusd,质押数量进入可用余额,
|
| | | ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
|
| | | BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
|
| | | BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
|
| | |
| | | if (total.compareTo(BigDecimal.ZERO) < 0) {
|
| | | return Result.fail(MessageSourceUtils.getString("member_service_0005"));
|
| | | }
|
| | | return null;
|
| | | zhiya.setFrozenBalance(gusdfrozenBalance.subtract(balance));
|
| | | zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
|
| | | zhiYaDao.updateById(zhiya);
|
| | | 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);
|
| | | }
|
| | |
|
| | | public String generateSimpleSerialno(String userId) {
|