package com.nq.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nq.common.ServerResponse; import com.nq.dao.SiteVipRobMapper; import com.nq.dao.StockMapper; import com.nq.pojo.SiteVipRob; import com.nq.pojo.Stock; import com.nq.pojo.UserPurchaseApplication; import com.nq.service.ISiteVipRobService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Date; import java.util.List; @Service("iSiteVipRobService") public class SiteVipRobServiceImpl extends ServiceImpl implements ISiteVipRobService { private static final Logger log = LoggerFactory.getLogger(SiteVipRobServiceImpl.class); @Autowired SiteVipRobMapper siteVipRobMapper; @Autowired StockMapper stockMapper; @Override public ServerResponse insert(SiteVipRob siteVipRob) { // 构造查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SiteVipRob::getStockCode, siteVipRob.getStockCode()); if(siteVipRob.getStockChg().compareTo(new BigDecimal(0)) < 0 || siteVipRob.getStockChg().compareTo(new BigDecimal(100)) >= 0){ return ServerResponse.createByErrorMsg("涨跌幅在0~100之间"); } // 查询是否存在相同的股票代码设置 List list = list(wrapper); if (!list.isEmpty()) { return ServerResponse.createByErrorMsg("该股票代码设置已存在"); } Stock stock = stockMapper.findStockByCode(siteVipRob.getStockCode()); if(null == stock){ return ServerResponse.createByErrorMsg("股票代码不存在"); } // 设置创建时间 siteVipRob.setCreateTime(new Date()); // 执行保存操作 if (save(siteVipRob)) { return ServerResponse.createBySuccessMsg("添加成功"); } else { return ServerResponse.createByErrorMsg("添加失败"); } } @Override public ServerResponse modify(SiteVipRob siteVipRob) { // 构造查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SiteVipRob::getStockCode, siteVipRob.getStockCode()) .ne(SiteVipRob::getId, siteVipRob.getId()); if(siteVipRob.getStockChg().compareTo(new BigDecimal(0)) < 0 || siteVipRob.getStockChg().compareTo(new BigDecimal(100)) >= 0){ return ServerResponse.createByErrorMsg("涨跌幅在0~100之间"); } // 查询是否存在相同的股票代码设置 List list = list(wrapper); if (!list.isEmpty()) { return ServerResponse.createByErrorMsg("该股票代码设置已存在"); } Stock stock = stockMapper.findStockByCode(siteVipRob.getStockCode()); if(null == stock){ return ServerResponse.createByErrorMsg("股票代码不存在"); } // 更新修改时间 siteVipRob.setUpdateTime(new Date()); // 执行更新操作 if (updateById(siteVipRob)) { return ServerResponse.createBySuccessMsg("修改成功"); } else { return ServerResponse.createByErrorMsg("修改失败"); } } @Override public ServerResponse list(String keyword, Integer status, int pageNum, int pageSize) { // 创建分页对象 Page page = new Page<>(pageNum, pageSize); // 构造查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.and(q -> q.like(SiteVipRob::getStockCode, keyword).or().like(SiteVipRob::getName, keyword)); if (status != null) { wrapper.eq(SiteVipRob::getStatus, status); } wrapper.orderByDesc(SiteVipRob::getCreateTime); // 执行分页查询 IPage resultPage = page(page, wrapper); // 返回分页结果 return ServerResponse.createBySuccess(resultPage); } @Override public SiteVipRob getByStockCode(String stockCode) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper().eq(SiteVipRob::getStockCode, stockCode); return siteVipRobMapper.selectOne(wrapper); } @Override public ServerResponse updateStatus(Integer id,Integer status) { SiteVipRob siteVipRob = siteVipRobMapper.selectById(id); siteVipRob.setStatus(status); siteVipRob.setUpdateTime(new Date()); // 执行更新操作 if (updateById(siteVipRob)) { return ServerResponse.createBySuccessMsg("修改成功"); } else { return ServerResponse.createByErrorMsg("修改失败"); } } }