Helius
2021-05-21 9d641b6dd286bb9a817d9d4e42e36d4743a4bfd6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.xcong.excoin.modules.otc.service.impl;
 
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.entity.MemberEntity;
import com.xcong.excoin.modules.otc.dao.OtcEntrustOrderDao;
import com.xcong.excoin.modules.otc.dao.OtcMarketBussinessDao;
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.mapper.OtcEntrustOrderMapper;
import com.xcong.excoin.modules.otc.mapper.OtcMarketBussinessMapper;
import com.xcong.excoin.modules.otc.service.OtcMarketBussinessService;
import com.xcong.excoin.modules.otc.vo.EntrustListInfoVo;
import com.xcong.excoin.modules.otc.vo.MarketBussinessInfoVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
 
import java.math.BigDecimal;
import java.util.List;
 
@Service
@RequiredArgsConstructor
public class OtcMarketBussinessServiceImpl extends ServiceImpl<OtcMarketBussinessDao, OtcMarketBussiness> implements OtcMarketBussinessService {
 
    private final OtcEntrustOrderDao otcEntrustOrderDao;
 
    @Override
    public void add(MbAddDto mbAddDto) {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
 
        OtcMarketBussiness mb = this.baseMapper.selectMarketBussinessByMemberId(member.getId());
        if (mb != null) {
            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);
 
        this.baseMapper.insert(otcMb);
    }
 
    @Override
    public Integer findMbStatus() {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
 
        OtcMarketBussiness mb = this.baseMapper.selectMarketBussinessByMemberId(member.getId());
        if (mb == null) {
            return 0;
        }
        return mb.getStatus();
    }
 
    @Override
    public Result findMbInfo(Long id) {
        OtcMarketBussiness mb = this.baseMapper.selectMarketBussinessByMemberId(id);
        if (mb == null) {
            return Result.fail("未找到对应信息");
        }
 
        MarketBussinessInfoVo mbVo = OtcMarketBussinessMapper.INSTANCE.entityToVo(mb);
 
        OtcEntrustOrder query = new OtcEntrustOrder();
        query.setMemberId(mb.getMemberId());
        query.setOrderType(OtcEntrustOrder.ORDER_TYPE_B);
        query.setStatus(OtcEntrustOrder.LINE_UP);
        List<OtcEntrustOrder> buysEntity = otcEntrustOrderDao.selectEntrustOrderByOrderType(query);
        List<EntrustListInfoVo> buys = OtcEntrustOrderMapper.INSTANCE.entrustToListInfoVoList(buysEntity);
 
        query.setOrderType(OtcEntrustOrder.ORDER_TYPE_S);
        List<OtcEntrustOrder> salesEntity = otcEntrustOrderDao.selectEntrustOrderByOrderType(query);
        List<EntrustListInfoVo> sales = OtcEntrustOrderMapper.INSTANCE.entrustToListInfoVoList(salesEntity);
        mbVo.setBuys(buys);
        mbVo.setSales(sales);
        return Result.ok(mbVo);
    }
}