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.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.nq.common.ResponseCode;
|
import com.nq.common.ServerResponse;
|
import com.nq.dao.StockMapper;
|
import com.nq.dao.UserPositionMapper;
|
import com.nq.dao.UserStockSubscribeMapper;
|
import com.nq.pojo.*;
|
import com.nq.service.IStockSubscribeService;
|
import com.nq.dao.StockSubscribeMapper;
|
import com.nq.service.IUserService;
|
import com.nq.vo.stock.ai.StockAiOrderTypeVO;
|
import com.nq.vo.subscribe.StockSubscribeVO;
|
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;
|
@Autowired
|
IUserService iUserService;
|
|
/**
|
* @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("新股代码不存在");
|
// }
|
Long count = stockSubscribeMapper.selectCount(new LambdaQueryWrapper<StockSubscribe>()
|
.eq(StockSubscribe::getCode, model.getCode()));
|
if(count > 0){
|
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("新股不存在");
|
}
|
Long count = stockSubscribeMapper.selectCount(new LambdaQueryWrapper<StockSubscribe>()
|
.eq(StockSubscribe::getCode, model.getCode())
|
.ne(StockSubscribe::getNewlistId,model.getNewlistId()));
|
if(count > 0){
|
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("删除新股失败");
|
}
|
|
@Override
|
public ServerResponse listPageInfo(int pageNum, int pageSize, HttpServletRequest request) {
|
try {
|
/*QueryWrapper<StockSubscribe> queryWrapper = new QueryWrapper();
|
//显示 0
|
queryWrapper.eq("zt", 0);
|
queryWrapper.eq("type", 1);
|
queryWrapper.orderByDesc("list_date");
|
|
PageHelper.startPage(pageNum, pageSize);
|
List<StockSubscribe> stockSubscribeList = this.stockSubscribeMapper.selectList(queryWrapper);
|
// 获取分页信息
|
PageInfo<StockSubscribe> pageInfo = new PageInfo<>(stockSubscribeList);*/
|
User user = this.iUserService.getCurrentRefreshUser(request);
|
if (user == null) {
|
return ServerResponse.createByErrorCodeMsg(ResponseCode.NEED_LOGIN.getCode(),"请先登录", request);
|
}
|
PageHelper.startPage(pageNum, pageSize);
|
List<StockSubscribeVO> subscribeVOs = stockSubscribeMapper.selectStockSubscribeVO(0 ,1 ,user.getId());
|
PageInfo<StockSubscribeVO> pageInfo = new PageInfo<>(subscribeVOs);
|
|
Date newDate = new Date();
|
pageInfo.getList().forEach(stockSubscribe -> {
|
Date startDate = stockSubscribe.getSubscribeTime();
|
Date endDate = stockSubscribe.getSubscriptionTime();
|
|
boolean isBetween = newDate.after(startDate) && newDate.before(endDate);
|
stockSubscribe.setIsBetween(isBetween);
|
});
|
return ServerResponse.createBySuccess(pageInfo);
|
} catch (Exception e) {
|
log.error("IStockSubscribeService listPageInfo error", e);
|
}
|
return ServerResponse.createByError();
|
}
|
|
}
|