1
zj
2024-10-01 bd21cffed808eff59e330de7142c59af6b48e169
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
package com.nq.service.impl;
 
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.nq.common.ServerResponse;
import com.nq.dao.StockMapper;
import com.nq.dao.UserPositionMapper;
import com.nq.dao.UserStockSubscribeMapper;
import com.nq.pojo.Stock;
import com.nq.pojo.StockSubscribe;
import com.nq.pojo.UserPosition;
import com.nq.pojo.UserStockSubscribe;
import com.nq.service.IStockSubscribeService;
import com.nq.dao.StockSubscribeMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.xml.stream.events.EntityDeclaration;
import java.util.Date;
import java.util.List;
 
/**
 * @author 11527
 * @description 针对表【stock_subscribe(新股)】的数据库操作Service实现
 * @createDate 2022-10-24 23:27:27
 */
@Service
@Slf4j
public class StockSubscribeServiceImpl extends ServiceImpl<StockSubscribeMapper, StockSubscribe>
        implements IStockSubscribeService {
    @Resource
    StockSubscribeMapper stockSubscribeMapper;
 
    @Autowired
    UserStockSubscribeMapper userStockSubscribeMapper;
 
    @Autowired
    StockMapper stockMapper;
 
    @Autowired
    UserPositionMapper userPositionMapper;
 
    /**
     * @Description: 用户新股列表
     * @Param:
     * @return:
     * @Author: tf
     * @Date: 2022/10/25
     */
    @Override
    public ServerResponse list(String name, String code, Integer zt,Integer getType, Integer isLock, Integer type, Integer stockType,Integer postType,HttpServletRequest request) {
 
        //name和code模糊查询
        QueryWrapper<StockSubscribe> queryWrapper = new QueryWrapper();
        if (name != null && !name.equals("")) {
            queryWrapper.like("name", name);
        }
        if (code != null && !code.equals("")) {
            queryWrapper.like("code", code);
        }
        if (zt != null && !zt.equals("")) {
            queryWrapper.eq("zt", zt);
        }
        if (isLock != null && !isLock.equals("")) {
            queryWrapper.eq("is_lock", isLock);
        }
        if (type != null && !type.equals("")) {
            queryWrapper.eq("type", type);
        }
//        if(getType == 1){
//            queryWrapper.gt("list_date", new Date());
//        }
        if(stockType != null){
            queryWrapper.eq("stock_type", stockType);
        }
        queryWrapper.orderByDesc("newlist_id");
//        if(postType == 0){
//            queryWrapper.select(StockSubscribe.class, info -> !info.getColumn().equals("password"));
//        }
        List<StockSubscribe> stockSubscribeList = this.stockSubscribeMapper.selectList(queryWrapper);
 
        Date newDate = new Date();
 
        for (StockSubscribe stockSubscribe : stockSubscribeList) {
            Date startDate = stockSubscribe.getSubscribeTime();
            Date endDate = stockSubscribe.getSubscriptionTime();
 
            boolean isBetween = newDate.after(startDate) && newDate.before(endDate);
            stockSubscribe.setIsBetween(isBetween);
        }
 
        PageInfo pageInfo = new PageInfo(stockSubscribeList);
        pageInfo.setList(stockSubscribeList);
 
        return ServerResponse.createBySuccess(pageInfo);
    }
 
    /**
     * @Description: 新增新股
     * @Param:
     * @return:
     * @Author: tf
     * @Date: 2022/10/25
     */
    @Override
    public ServerResponse add(StockSubscribe model, HttpServletRequest request) {
        //判断是否已经存在
        log.info("model:{}", model);
        Stock stock = stockMapper.selectOne(new LambdaQueryWrapper<Stock>().eq(Stock::getStockCode, model.getCode()).last(" limit 1"));
        if(null == stock){
            return ServerResponse.createByErrorMsg("新股代码不存在");
        }
 
        int resultCount = this.stockSubscribeMapper.insert(model);
        if (resultCount > 0) {
            return ServerResponse.createBySuccessMsg("添加新股成功");
        }
        return ServerResponse.createByErrorMsg("添加新股失败");
    }
 
    /**
     * @Description: 修改新股
     * @Param:
     * @return:
     * @Author: tf
     * @Date: 2022/10/25
     */
    @Override
    public ServerResponse update(StockSubscribe model, HttpServletRequest request) {
        StockSubscribe stockSubscribe = this.stockSubscribeMapper.selectById(model.getNewlistId());
        if (stockSubscribe == null) {
            return ServerResponse.createByErrorMsg("新股不存在");
        }
 
        //修改新股
        int resultCount = this.stockSubscribeMapper.updateById(model);
        //修改用户申购的新股代码
        List<UserStockSubscribe> userStockSubscribes = userStockSubscribeMapper
                .selectList(new LambdaQueryWrapper<UserStockSubscribe>()
                        .eq(UserStockSubscribe::getNewStockId, stockSubscribe.getNewlistId()));
        for (UserStockSubscribe u : userStockSubscribes) {
            u.setNewCode(model.getCode());
            userStockSubscribeMapper.updateById(u);
        }
        List<UserPosition> userPositions = userPositionMapper.selectList(new LambdaQueryWrapper<UserPosition>().eq(UserPosition::getNewId, stockSubscribe.getNewlistId()));
        for (UserPosition u : userPositions) {
            u.setStockCode(model.getCode());
            userPositionMapper.updateById(u);
        }
        if (resultCount > 0) {
            return ServerResponse.createBySuccessMsg("修改新股成功");
        }
        return ServerResponse.createByErrorMsg("修改新股失败");
    }
 
    /**
     * @Description: 删除新股
     * @Param:
     * @return:
     * @Author: tf
     * @Date: 2022/10/25
     */
    @Override
    public ServerResponse del(Integer id, HttpServletRequest request) {
        StockSubscribe stockSubscribe = this.stockSubscribeMapper.selectById(id);
        if (stockSubscribe == null) {
            return ServerResponse.createByErrorMsg("新股不存在");
        }
        //删除新股
        int resultCount = this.stockSubscribeMapper.deleteById(id);
        if (resultCount > 0) {
            return ServerResponse.createBySuccessMsg("删除新股成功");
        }
        return ServerResponse.createByErrorMsg("删除新股失败");
    }
 
}