From 5575818556096be1dadaf5ff356b5db4c832aaa2 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 26 May 2021 19:27:09 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java |   70 ++++++++++++++++++++++++++++-------
 1 files changed, 56 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java
index ceb5fc2..363eaff 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java
@@ -1,15 +1,21 @@
 package com.xcong.excoin.modules.otc.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.exception.GlobalException;
 import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.member.dao.MemberDao;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.modules.otc.dao.OtcEntrustOrderDao;
 import com.xcong.excoin.modules.otc.dao.OtcMarketBussinessDao;
+import com.xcong.excoin.modules.otc.dao.OtcOrderDao;
+import com.xcong.excoin.modules.otc.dao.OtcSettingDao;
 import com.xcong.excoin.modules.otc.dto.MbAddDto;
 import com.xcong.excoin.modules.otc.entity.OtcEntrustOrder;
 import com.xcong.excoin.modules.otc.entity.OtcMarketBussiness;
+import com.xcong.excoin.modules.otc.entity.OtcOrder;
+import com.xcong.excoin.modules.otc.entity.OtcSetting;
 import com.xcong.excoin.modules.otc.mapper.OtcEntrustOrderMapper;
 import com.xcong.excoin.modules.otc.mapper.OtcMarketBussinessMapper;
 import com.xcong.excoin.modules.otc.service.OtcMarketBussinessService;
@@ -26,27 +32,61 @@
 public class OtcMarketBussinessServiceImpl extends ServiceImpl<OtcMarketBussinessDao, OtcMarketBussiness> implements OtcMarketBussinessService {
 
     private final OtcEntrustOrderDao otcEntrustOrderDao;
+    private final MemberDao memberDao;
+    private final OtcSettingDao otcSettingDao;
+    private final OtcOrderDao otcOrderDao;
 
     @Override
-    public void add(MbAddDto mbAddDto) {
+    public void add() {
         MemberEntity member = LoginUserUtils.getAppLoginUser();
+        member = memberDao.selectById(member.getId());
+//        long memberId = 444L;
+//        MemberEntity member = memberDao.selectById(memberId);
 
-        OtcMarketBussiness mb = this.baseMapper.selectMarketBussinessByMemberId(member.getId());
-        if (mb != null) {
-            throw new GlobalException("该用户已经是市商或正在审核");
+        if (MemberEntity.IS_TRADER_Y.equals(member.getIsTrader())) {
+            throw new GlobalException("已经是市商");
+        }
+        OtcSetting setting = otcSettingDao.selectById(1L);
+        // 所有已完成订单
+        List<OtcOrder> finishOrders = otcOrderDao.selectOrderListForUser(member.getId(), 3);
+        if (CollUtil.isEmpty(finishOrders) || setting.getOrderNum() > finishOrders.size()) {
+            throw new GlobalException("条件未达标");
         }
 
-        OtcMarketBussiness otcMb = new OtcMarketBussiness();
-        otcMb.setNikename(mbAddDto.getNickname());
-        otcMb.setMemberId(member.getId());
-        otcMb.setAvgCoinTime(0);
-        otcMb.setAvgPayTime(0);
-        otcMb.setTotalOrderCnt(0);
-        otcMb.setBuyCnt(0);
-        otcMb.setFinishRatio(BigDecimal.ZERO);
-        otcMb.setStatus(OtcMarketBussiness.CHECK_WAIT);
+        List<OtcOrder> allOrders = otcOrderDao.selectOrderListForUser(member.getId(), null);
+        if (CollUtil.isNotEmpty(allOrders)) {
+            BigDecimal finishRatio = BigDecimal.valueOf(finishOrders.size()).divide(BigDecimal.valueOf(allOrders.size()), 4, BigDecimal.ROUND_DOWN).multiply(BigDecimal.valueOf(100));
+            if (setting.getCompletionRate().compareTo(finishRatio) > 0) {
+                throw new GlobalException("条件未达标");
+            }
+        }
 
-        this.baseMapper.insert(otcMb);
+        BigDecimal totalAmount = otcOrderDao.selectOrderTotalAmount(member.getId());
+        if (setting.getTotalAmount().compareTo(totalAmount) > 0) {
+            throw new GlobalException("条件未达标");
+        }
+
+        OtcMarketBussiness mb = this.baseMapper.selectMarketBussinessByMemberId(member.getId());
+        OtcMarketBussiness otcMb = new OtcMarketBussiness();
+        if (mb != null) {
+            if (OtcMarketBussiness.CHECK_PASS.equals(mb.getStatus()) || OtcMarketBussiness.CHECK_WAIT.equals(mb.getStatus())) {
+                throw new GlobalException("已经是市商或正在审核");
+            }
+
+            otcMb = mb;
+            otcMb.setStatus(OtcMarketBussiness.CHECK_WAIT);
+            this.baseMapper.updateById(otcMb);
+        } else {
+            otcMb.setMemberId(member.getId());
+            otcMb.setAvgCoinTime(0);
+            otcMb.setAvgPayTime(0);
+            otcMb.setTotalOrderCnt(0);
+            otcMb.setBuyCnt(0);
+            otcMb.setFinishRatio(BigDecimal.ZERO);
+            otcMb.setStatus(OtcMarketBussiness.CHECK_WAIT);
+
+            this.baseMapper.insert(otcMb);
+        }
     }
 
     @Override
@@ -69,6 +109,7 @@
 
         MarketBussinessInfoVo mbVo = OtcMarketBussinessMapper.INSTANCE.entityToVo(mb);
 
+        MemberEntity member = memberDao.selectById(mb.getMemberId());
         OtcEntrustOrder query = new OtcEntrustOrder();
         query.setMemberId(mb.getMemberId());
         query.setOrderType(OtcEntrustOrder.ORDER_TYPE_B);
@@ -81,6 +122,7 @@
         List<EntrustListInfoVo> sales = OtcEntrustOrderMapper.INSTANCE.entrustToListInfoVoList(salesEntity);
         mbVo.setBuys(buys);
         mbVo.setSales(sales);
+        mbVo.setNikename(member.getName());
         return Result.ok(mbVo);
     }
 }

--
Gitblit v1.9.1