From 73ca3b17a2be81720b08562c0098ebfede61a5a6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 25 May 2021 18:36:38 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java                            |    5 ++
 src/main/resources/mapper/otc/OtcSettingDao.xml                                            |    5 ++
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java    |    2 
 src/main/java/com/xcong/excoin/modules/otc/entity/OtcSetting.java                          |   13 ++++++
 src/main/resources/mapper/otc/OtcOrderDao.xml                                              |   17 ++++++++
 src/main/java/com/xcong/excoin/modules/otc/dao/OtcSettingDao.java                          |    5 ++
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java |   21 ++++++++++
 7 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
index 04413c9..e9ad2e1 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
@@ -6,6 +6,7 @@
 import com.xcong.excoin.modules.otc.entity.OtcOrder;
 import com.xcong.excoin.modules.otc.vo.OrderListVo;
 import org.apache.ibatis.annotations.Param;
+import org.web3j.abi.datatypes.Int;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -29,4 +30,8 @@
     BigDecimal selectMemberAvgPayTime(@Param("memberId") Long memberId);
 
     BigDecimal selectMemberAvgCoinTime(@Param("memberId") Long memberId);
+
+    List<OtcOrder> selectOrderListForUser(@Param("memberId") Long memberId, @Param("status") Integer status);
+
+    BigDecimal selectOrderTotalAmount(@Param("memberId") Long memberId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcSettingDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcSettingDao.java
index 5c6c4cf..62b4547 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcSettingDao.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcSettingDao.java
@@ -1,5 +1,8 @@
 package com.xcong.excoin.modules.otc.dao;
 
 
-public interface OtcSettingDao {
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xcong.excoin.modules.otc.entity.OtcSetting;
+
+public interface OtcSettingDao extends BaseMapper<OtcSetting> {
 }
diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcSetting.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcSetting.java
index a4bea0d..e428fae 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcSetting.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcSetting.java
@@ -2,8 +2,21 @@
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+import org.web3j.abi.datatypes.Int;
+
+import java.math.BigDecimal;
 
 @Data
 @TableName("otc_setting")
 public class OtcSetting {
+
+    private Long id;
+
+    private Integer orderNum;
+
+    private BigDecimal completionRate;
+
+    private BigDecimal totalAmount;
+
+    private Integer cancellNum;
 }
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java
index 6d4d740..693d224 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java
@@ -83,7 +83,7 @@
             memberWalletCoinDao.updateFrozenBalance(member.getId(), coinWallet.getId(), addDto.getAmount());
         }
 
-        if (MemberEntity.IS_TRADER_Y.equals(member.getIsTrader())) {
+        if (!MemberEntity.IS_TRADER_Y.equals(member.getIsTrader())) {
             throw new GlobalException("不是市商");
         }
 
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 66fbe07..cecad17 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,5 +1,6 @@
 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;
@@ -8,9 +9,13 @@
 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;
@@ -28,6 +33,9 @@
 
     private final OtcEntrustOrderDao otcEntrustOrderDao;
     private final MemberDao memberDao;
+    private final OtcSettingDao otcSettingDao;
+    private final OtcOrderDao otcOrderDao;
+
     @Override
     public void add() {
         MemberEntity member = LoginUserUtils.getAppLoginUser();
@@ -36,6 +44,19 @@
         if (MemberEntity.IS_TRADER_Y.equals(member.getIsTrader())) {
             throw new GlobalException("已经是市商");
         }
+        OtcSetting setting = otcSettingDao.selectById(1L);
+        // 所有已完成订单
+        List<OtcOrder> finishOrders = otcOrderDao.selectOrderListForUser(member.getId(), 0);
+        if (CollUtil.isEmpty(finishOrders) || setting.getOrderNum() > finishOrders.size()) {
+            throw new GlobalException("条件未达标");
+        }
+
+        List<OtcOrder> unFinishOrders = otcOrderDao.selectOrderListForUser(member.getId(), 4);
+        if (CollUtil.isNotEmpty(unFinishOrders)) {
+            BigDecimal.valueOf(finishOrders.size() - unFinishOrders.size()).divide(BigDecimal.valueOf(finishOrders.size()), 2, BigDecimal.ROUND_DOWN)
+        }
+
+        BigDecimal totalAmount = otcOrderDao.selectOrderTotalAmount(member.getId());
 
         OtcMarketBussiness mb = this.baseMapper.selectMarketBussinessByMemberId(member.getId());
         OtcMarketBussiness otcMb = new OtcMarketBussiness();
diff --git a/src/main/resources/mapper/otc/OtcOrderDao.xml b/src/main/resources/mapper/otc/OtcOrderDao.xml
index 8938669..7aafbd5 100644
--- a/src/main/resources/mapper/otc/OtcOrderDao.xml
+++ b/src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -85,4 +85,21 @@
         from otc_order
         where status=3 and member_id=40 and order_type='S'
     </select>
+
+    <select id="selectOrderListForUser" resultType="com.xcong.excoin.modules.otc.entity.OtcOrder">
+        select * from otc_order
+        where member_id=#{memberId}
+          <!-- 查询除完成以外所有订单 -->
+          <if test="status != null and status == 0">
+              and status != 3
+          </if>
+        <if test="status != null and status != 0">
+            and status != 3
+        </if>
+    </select>
+
+    <select id="selectOrderTotalAmount" resultType="java.math.BigDecimal">
+        select sum(total_amount) from otc_order
+        where member_id=#{memberId} and status = 3
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/otc/OtcSettingDao.xml b/src/main/resources/mapper/otc/OtcSettingDao.xml
new file mode 100644
index 0000000..85d8c5f
--- /dev/null
+++ b/src/main/resources/mapper/otc/OtcSettingDao.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xcong.excoin.modules.otc.dao.OtcSettingDao">
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.1