From a31721c6deee97f54ecb1dcf6d7324433c1f9dbc Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 04 Jun 2021 11:31:07 +0800 Subject: [PATCH] 20210604 --- src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java | 157 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 147 insertions(+), 10 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 abcb588..2259c8d 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,11 @@ 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; +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; @@ -8,15 +13,11 @@ import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.member.mapper.MemberMapper; -import com.xcong.excoin.modules.otc.entity.OtcEntrustOrderEntity; -import com.xcong.excoin.modules.otc.entity.OtcMarketBussinessEntity; -import com.xcong.excoin.modules.otc.entity.OtcOrderAppealEntity; -import com.xcong.excoin.modules.otc.entity.OtcOrderEntity; -import com.xcong.excoin.modules.otc.mapper.OtcEntrustOrderMapper; -import com.xcong.excoin.modules.otc.mapper.OtcMarketBussinessMapper; -import com.xcong.excoin.modules.otc.mapper.OtcOrderAppealMapper; -import com.xcong.excoin.modules.otc.mapper.OtcOrderMapper; +import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; +import com.xcong.excoin.modules.otc.entity.*; +import com.xcong.excoin.modules.otc.mapper.*; import com.xcong.excoin.modules.otc.service.OtcService; import com.xcong.excoin.modules.otc.vo.OtcAppealInfoVo; import lombok.RequiredArgsConstructor; @@ -25,7 +26,9 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.Arrays; import java.util.Date; +import java.util.List; @Service @RequiredArgsConstructor @@ -39,6 +42,10 @@ private OtcEntrustOrderMapper otcEntrustOrderMapper; @Resource private OtcOrderMapper otcOrderMapper; + @Resource + private OtcSettingMapper otcSettingMapper; + @Resource + private MemberWalletCoinMapper memberWalletCoinMapper; @Resource private MemberMapper memberMapper; @@ -144,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(); @@ -166,7 +174,7 @@ otcAppealInfoVo.setFinishTime(finishTime); } //获取对应的商户信息 - long payMdId = otcOrderEntity.getPayMdId(); + long payMdId = otcOrderEntity.getPayMbId(); OtcMarketBussinessEntity otcMarketBussinessEntity = otcMarketBussinessMapper.selectById(payMdId); if(ObjectUtil.isNotEmpty(otcMarketBussinessEntity)){ String nikename = otcMarketBussinessEntity.getNikename(); @@ -175,4 +183,133 @@ return otcAppealInfoVo; } + @Override + public OtcOrderEntity otcOrderInfo(long id) { + OtcOrderEntity otcOrderEntity = otcOrderMapper.selectById(id); + return otcOrderEntity; + } + + @Override + @Transactional + public FebsResponse updateOrderInfo(OtcOrderEntity otcOrderEntity) { + Long id = otcOrderEntity.getId(); + OtcOrderEntity otcOrder = otcOrderMapper.selectById(id); + if(ObjectUtil.isEmpty(otcOrder)){ + return new FebsResponse().fail().message("连接超时,请刷新页面重试"); + } + Integer status = otcOrder.getStatus(); + if(OtcOrderEntity.STATUS_ONE != status){ + return new FebsResponse().fail().message("当前订单不是待付款状态"); + } + String payName = otcOrderEntity.getPayName(); + if(StrUtil.isEmpty(payName)){ + return new FebsResponse().fail().message("请输入付款人"); + } + BigDecimal coinAmount = otcOrderEntity.getCoinAmount(); + /** + * 获取订单信息--订单编号 + * 获取买单和买单 + * 更新payName字段 + * 更新订单状态 + */ + QueryWrapper<OtcOrderEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_no",otcOrder.getOrderNo()); + List<OtcOrderEntity> list = otcOrderMapper.selectList(queryWrapper); + if(CollUtil.isNotEmpty(list)){ + for(OtcOrderEntity order : list){ + order.setStatus(OtcOrderEntity.STATUS_TWO); + order.setPayName(payName); + order.setPayTime(DateUtil.date()); + otcOrderMapper.updateById(order); + } + } + return new FebsResponse().success(); + } + + @Override + public OtcMarketBussinessEntity otcHuiKuan(long id) { + return otcMarketBussinessMapper.selectById(id); + } + + @Override + @Transactional + public FebsResponse otcHuiKuan(OtcMarketBussinessEntity otcMarketBussinessEntity) { + Long id = otcMarketBussinessEntity.getId(); + OtcMarketBussinessEntity otcMarketBussiness = otcMarketBussinessMapper.selectById(id); + if(ObjectUtil.isNotEmpty(otcMarketBussiness)){ + return new FebsResponse().fail().message("连接超时,请刷新页面重试"); + } + BigDecimal coinAmount = otcMarketBussinessEntity.getCoinAmount(); + if(coinAmount.compareTo(BigDecimal.ZERO) <= 0){ + return new FebsResponse().fail().message("请输入正确的回款金额"); + } + BigDecimal waitBackMoney = otcMarketBussiness.getWaitBackMoney(); + if(coinAmount.compareTo(waitBackMoney) > 0){ + return new FebsResponse().fail().message("请输入正确的回款金额"); + } + /** + * 增加已回款金额 + * 减少待回款金额 + * 增加汇款记录 + */ + BigDecimal hasBackMoney = otcMarketBussiness.getHasBackMoney(); + BigDecimal add = hasBackMoney.add(coinAmount); + otcMarketBussiness.setHasBackMoney(add); + + BigDecimal subtract = waitBackMoney.subtract(coinAmount); + otcMarketBussiness.setWaitBackMoney(subtract); + otcMarketBussinessMapper.updateById(otcMarketBussiness); + + return new FebsResponse().success(); + } + + @Override + public IPage<OtcSettingEntity> otcSettingList(OtcSettingEntity otcSettingEntity, QueryRequest request) { + Page<OtcSettingEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<OtcSettingEntity> otcSettingEntitys = otcSettingMapper.otcSettingList(page, otcSettingEntity); + return otcSettingEntitys; + } + + @Override + public OtcSettingEntity otcSettingUpdate(long id) { + return otcSettingMapper.selectById(id); + } + + @Override + public FebsResponse updateOtcSetting(OtcSettingEntity otcSettingEntity) { + Integer orderNum = otcSettingEntity.getOrderNum(); + if(ObjectUtil.isEmpty(orderNum) || orderNum < 0){ + return new FebsResponse().fail().message("请设置正确的总单数"); + } + BigDecimal completionRate = otcSettingEntity.getCompletionRate(); + if(ObjectUtil.isEmpty(completionRate) || completionRate.compareTo(BigDecimal.ZERO) < 0){ + return new FebsResponse().fail().message("请设置正确的完成率"); + } + BigDecimal totalAmount = otcSettingEntity.getTotalAmount(); + if(ObjectUtil.isEmpty(totalAmount) || totalAmount.compareTo(BigDecimal.ZERO) < 0){ + return new FebsResponse().fail().message("请设置正确的总金额"); + } + + Integer cancellNum = otcSettingEntity.getCancellNum(); + if(ObjectUtil.isEmpty(cancellNum) || cancellNum < 0){ + return new FebsResponse().fail().message("请设置正确的取消次数"); + } + otcSettingMapper.updateById(otcSettingEntity); + 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; + } } -- Gitblit v1.9.1