From cf200a1f92c01ba22c326c49391f748ffb006910 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 05 Jul 2021 17:28:35 +0800 Subject: [PATCH] 20210617 开售开关 --- src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java | 64 +++++++++++++++++++++++++++++++ 1 files changed, 63 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java index 483779c..a90136b 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java @@ -1,6 +1,7 @@ package com.xcong.excoin.modules.otc.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -25,6 +26,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -149,7 +151,8 @@ String reason = otcOrderAppealEntity.getReason(); otcAppealInfoVo.setReason(reason); String content = otcOrderAppealEntity.getContent(); - otcAppealInfoVo.setContent(content); + List arr = Arrays.asList(content.split(",")); + otcAppealInfoVo.setContent(arr); } //获取对应的订单详情 long orderId = otcOrderAppealEntity.getOrderId(); @@ -295,4 +298,63 @@ return new FebsResponse().success(); } + @Override + @Transactional(rollbackFor = Exception.class) + public int reduceCoin(Long id) { + OtcOrderEntity order = otcOrderMapper.selectById(id); + + MemberWalletCoinEntity saleWallet = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(order.getMemberId(), "USDT"); + MemberWalletCoinEntity buyWallet = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(order.getOppositeMemberId(), "USDT"); + + memberWalletCoinMapper.updateBlockBalance(order.getCoinAmount(), buyWallet.getId()); + memberWalletCoinMapper.reduceFrozenBalance(order.getCoinAmount(), saleWallet.getId()); + + otcOrderMapper.updateOrderStatusByOrderNo(OtcOrderEntity.STATUS_THREE, order.getOrderNo()); + return 1; + } + + @Override + public OtcEntrustOrderEntity otcEntrustListUpdate(long id) { + return otcEntrustOrderMapper.selectById(id); + } + + @Override + public FebsResponse otcEntrustConfirm(OtcEntrustOrderEntity otcEntrustOrderEntity) { + Long id = otcEntrustOrderEntity.getId(); + OtcEntrustOrderEntity otcEntrustOrder = otcEntrustOrderMapper.selectById(id); + BigDecimal unitPrice = otcEntrustOrderEntity.getUnitPrice(); + if(ObjectUtil.isEmpty(unitPrice) || unitPrice.compareTo(BigDecimal.ZERO) < 0){ + return new FebsResponse().fail().message("请设置正确的单价"); + } + otcEntrustOrder.setUnitPrice(unitPrice); + BigDecimal coinAmount = otcEntrustOrderEntity.getCoinAmount(); + if(ObjectUtil.isEmpty(coinAmount) || coinAmount.compareTo(BigDecimal.ZERO) < 0){ + return new FebsResponse().fail().message("请设置正确的数量"); + } + otcEntrustOrder.setCoinAmount(coinAmount); + BigDecimal totalAmount = coinAmount.multiply(unitPrice); + otcEntrustOrder.setTotalAmount(totalAmount); + + BigDecimal remainCoinAmount = otcEntrustOrderEntity.getRemainCoinAmount(); + if(ObjectUtil.isEmpty(remainCoinAmount) || remainCoinAmount.compareTo(BigDecimal.ZERO) < 0 + || totalAmount.compareTo(remainCoinAmount) < 0){ + return new FebsResponse().fail().message("请设置正确的剩余数量"); + } + otcEntrustOrder.setRemainCoinAmount(remainCoinAmount); + BigDecimal limitMinAmount = otcEntrustOrderEntity.getLimitMinAmount(); + if(ObjectUtil.isEmpty(limitMinAmount) || limitMinAmount.compareTo(BigDecimal.ZERO) < 0){ + return new FebsResponse().fail().message("请设置正确的最小限额"); + } + otcEntrustOrder.setLimitMinAmount(limitMinAmount); + BigDecimal limitMaxAmount = otcEntrustOrderEntity.getLimitMaxAmount(); + if(ObjectUtil.isEmpty(limitMaxAmount) || limitMaxAmount.compareTo(BigDecimal.ZERO) < 0 + || limitMaxAmount.compareTo(limitMinAmount) < 0 || totalAmount.compareTo(limitMaxAmount) < 0){ + return new FebsResponse().fail().message("请设置正确的最大限额"); + } + otcEntrustOrder.setLimitMaxAmount(limitMaxAmount); + otcEntrustOrder.setStatus(otcEntrustOrderEntity.getStatus()); + otcEntrustOrderMapper.updateById(otcEntrustOrder); + + return new FebsResponse().success(); + } } -- Gitblit v1.9.1