package com.nq.service.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DateUtil;
|
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.ServerResponse;
|
import com.nq.dao.StockDzMapper;
|
import com.nq.dao.StockMapper;
|
import com.nq.dao.UserPositionMapper;
|
import com.nq.pojo.Stock;
|
import com.nq.pojo.StockDz;
|
import com.nq.pojo.UserPosition;
|
import com.nq.service.StockDzService;
|
import com.nq.utils.timeutil.DateTimeUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author Administrator
|
* @description 针对表【stock_dz】的数据库操作Service实现
|
* @createDate 2022-12-03 17:09:01
|
*/
|
@Service
|
@Slf4j
|
public class StockDzServiceImpl extends ServiceImpl<StockDzMapper, StockDz>
|
implements StockDzService{
|
@Autowired
|
private StockDzMapper stockDzMapper;
|
@Autowired
|
private StockMapper stockMapper;
|
@Autowired
|
private UserPositionMapper userPositionMapper;
|
|
@Override
|
public ServerResponse getDzList(int pageNum, int pageSize, String orderBy, String keyWords, HttpServletRequest request) {
|
String formatDate = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
|
PageHelper.startPage(pageNum, pageSize);
|
/*if (keyWords == null || keyWords.trim().isEmpty()) {
|
// 如果 keyWords 为空,则直接返回空分页结果
|
return ServerResponse.createBySuccess(new RPageInfo());
|
}*/
|
List<StockDz> stockTypeDz = stockMapper.findStockTypeDz(orderBy, keyWords,formatDate);
|
PageInfo<StockDz> pageInfo = new PageInfo<>(stockTypeDz);
|
return ServerResponse.createBySuccess(pageInfo);
|
}
|
|
@Override
|
public ServerResponse addByAdmin(String stockCode, String stockNum, String password, String startTime, String endTime, String discount,Integer period,String nowPrice,Integer switchType) {
|
if (stockCode == null || stockCode.equals("")||stockNum == null || stockNum.equals("")|| startTime == null || startTime.equals("")||endTime == null || endTime.equals("") || period == null || nowPrice == null){
|
return ServerResponse.createByErrorMsg("参数不能为空");
|
}
|
|
Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
|
.eq(StockDz::getStockCode,stockCode));
|
if(count > 0){
|
return ServerResponse.createByErrorMsg("股票代码已存在");
|
}
|
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("stock_code",stockCode);
|
|
Stock stock = stockMapper.selectOne(queryWrapper);
|
if (stock == null){
|
return ServerResponse.createByErrorMsg("股票代码不存在");
|
}
|
|
StockDz stockDz = new StockDz();
|
stockDz.setStockName(stock.getStockName());
|
stockDz.setStockCode(stock.getStockCode());
|
stockDz.setStockType(stock.getStockType());
|
stockDz.setStockGid(stock.getStockGid());
|
stockDz.setStockSpell(stock.getStockSpell());
|
stockDz.setIsLock(stock.getIsLock());
|
stockDz.setIsShow(1);
|
stockDz.setAddTime(new Date());
|
stockDz.setSpreadRate(stock.getSpreadRate());
|
stockDz.setIncreaseRatio(BigDecimal.ZERO);
|
stockDz.setStockNum(Integer.valueOf(stockNum));
|
stockDz.setPassword(password);
|
stockDz.setStartTime(DateTimeUtil.strToDate(startTime));
|
stockDz.setEndTime(DateTimeUtil.strToDate(endTime));
|
// stockDz.setDiscount(new BigDecimal(discount));
|
stockDz.setPeriod(period);
|
stockDz.setSwitchType(switchType);
|
stockDz.setNowPrice(new BigDecimal(nowPrice));
|
int res = stockDzMapper.insert(stockDz);
|
if (res > 0) {
|
return ServerResponse.createBySuccessMsg("添加成功");
|
}
|
return ServerResponse.createByErrorMsg("添加失败");
|
}
|
|
@Override
|
public ServerResponse getDzListByAdmin(String Keywords) {
|
List<StockDz> list = null;
|
// log.info("Keywords:{}",Keywords);
|
if (Keywords != null && !"".equals(Keywords)){
|
list = stockDzMapper.selectList(new QueryWrapper<StockDz>().like("stock_name", Keywords).or().like("stock_code", Keywords).or().like("stock_type", Keywords));
|
}else {
|
list = stockDzMapper.selectList(new QueryWrapper<StockDz>().orderByDesc("id"));
|
}
|
log.info("list:{}",list);
|
return ServerResponse.createBySuccess(list);
|
}
|
|
@Override
|
public ServerResponse updByAdmin(StockDz model) {
|
Long count = stockDzMapper.selectCount(new LambdaQueryWrapper<StockDz>()
|
.eq(StockDz::getStockCode, model.getStockCode())
|
.ne(StockDz::getId,model.getId()));
|
if(count > 0){
|
return ServerResponse.createByErrorMsg("股票代码已存在");
|
}
|
return stockDzMapper.updateById(model) > 0 ? ServerResponse.createBySuccess("修改成功") : ServerResponse.createByErrorMsg("修改失败");
|
}
|
|
@Override
|
public ServerResponse deleteByAdmin(String id) {
|
List<UserPosition> userPositions = userPositionMapper.selectList(new LambdaQueryWrapper<>(UserPosition.class).eq(UserPosition::getDzId, id).isNull(UserPosition::getSellOrderId));
|
if(CollectionUtil.isNotEmpty(userPositions)){
|
return ServerResponse.createByErrorMsg("删除失败,当前大宗还有用户持有仓位");
|
}
|
int res = stockDzMapper.deleteById(id);
|
if (res > 0) {
|
return ServerResponse.createBySuccess("删除成功");
|
}
|
return ServerResponse.createByErrorMsg("删除失败");
|
}
|
}
|