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 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 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 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().eq(Stock::getStockCode, model.getCode()).last(" limit 1")); // if(null == stock){ // return ServerResponse.createByErrorMsg("新股代码不存在"); // } Long count = stockSubscribeMapper.selectCount(new LambdaQueryWrapper() .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() .eq(StockSubscribe::getCode, model.getCode()) .ne(StockSubscribe::getNewlistId,model.getNewlistId())); if(count > 0){ return ServerResponse.createByErrorMsg("新股代码已存在"); } //修改新股 int resultCount = this.stockSubscribeMapper.updateById(model); //修改用户申购的新股代码 List userStockSubscribes = userStockSubscribeMapper .selectList(new LambdaQueryWrapper() .eq(UserStockSubscribe::getNewStockId, stockSubscribe.getNewlistId())); for (UserStockSubscribe u : userStockSubscribes) { u.setNewCode(model.getCode()); userStockSubscribeMapper.updateById(u); } List userPositions = userPositionMapper.selectList(new LambdaQueryWrapper().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("删除新股失败"); } }