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.ResponseCode; import com.nq.common.ServerResponse; import com.nq.dao.SiteTaskLogMapper; import com.nq.dao.StockMapper; import com.nq.dao.UserPurchaseApplicationMapper; import com.nq.pojo.*; import com.nq.service.IUserPositionService; import com.nq.service.IUserPurchaseApplicationService; import com.nq.utils.timeutil.DateTimeUtil; import com.nq.utils.translate.GoogleTranslateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.util.Date; @Service("purchaseApplicationService") public class UserPurchaseApplicationServiceImpl extends ServiceImpl implements IUserPurchaseApplicationService { @Autowired private UserPurchaseApplicationMapper purchaseApplicationMapper; @Autowired private SiteTaskLogMapper siteTaskLogMapper; @Autowired private IUserPositionService userPositionService; @Autowired private StockMapper stockMapper; @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(UserPurchaseApplication::getStockCode, keyword).or().like(UserPurchaseApplication::getUserId, keyword)); if (status != null) { wrapper.eq(UserPurchaseApplication::getStatus, status); } wrapper.orderByDesc(UserPurchaseApplication::getAddTime); // 执行分页查询 IPage resultPage = page(page, wrapper); // 返回分页结果 return ServerResponse.createBySuccess(resultPage); } @Override @Transactional public ServerResponse examine(Integer id, HttpServletRequest request) { try{ UserPurchaseApplication purchaseApplication = getById(id); if(null != purchaseApplication && purchaseApplication.getStatus() != 0){ return ServerResponse.createByErrorMsg("当前状态无法操作"); } purchaseApplication.setStatus(1); SiteTaskLog siteTaskLog = new SiteTaskLog(); siteTaskLog.setTaskType("涨停板购买审核"); String tasktarget = "此次买入id:" + purchaseApplication.getId(); siteTaskLog.setTaskTarget(tasktarget); siteTaskLog.setAddTime(new Date()); siteTaskLog.setIsSuccess(0); siteTaskLog.setErrorMsg(""); //购买 Stock stock = stockMapper.findStockByCode(purchaseApplication.getStockCode()); ServerResponse serverResponse = userPositionService.buy(stock.getId(),purchaseApplication.getBuyNum(), purchaseApplication.getBuyType(),purchaseApplication.getLever(),purchaseApplication.getProfitTarget(),purchaseApplication.getStopTarget(), request,purchaseApplication.getUserId()); if(serverResponse.getStatus() == ResponseCode.SUCCESS.getCode()){ this.purchaseApplicationMapper.updateById(purchaseApplication); this.siteTaskLogMapper.insert(siteTaskLog); return ServerResponse.createBySuccessMsg("审核成功,已转持仓"); }else { return ServerResponse.createByErrorMsg(serverResponse.getMsg(),"en","zh"); } }catch (Exception e){ log.error("挂单失败"); } return ServerResponse.createByErrorMsg("操作失败"); } }