| src/main/java/com/nq/controller/ExchangeRateController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/controller/backend/AdminExchangeRateController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/controller/backend/AdminStockAiController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/dao/StockAiMapper.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/IStockAiService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/ExchangeRateServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/StockAiServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/vo/stock/StockAiVO.java | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/mapper/StockAiMapper.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/com/nq/controller/ExchangeRateController.java
File was deleted src/main/java/com/nq/controller/backend/AdminExchangeRateController.java
New file @@ -0,0 +1,55 @@ package com.nq.controller.backend; import com.nq.common.ServerResponse; import com.nq.enums.EStockType; import com.nq.pojo.ExchangeRate; import com.nq.service.ExchangeRateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; /** * 汇率管理 */ @Controller @RequestMapping({"/admin/rate"}) public class AdminExchangeRateController { @Autowired ExchangeRateService exchangeRateService; //查询汇率列表 @RequestMapping({"getInfo.do"}) @ResponseBody public ServerResponse getInfo(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "15") int pageSize) { return exchangeRateService.getInfo(pageNum, pageSize); } //修改汇率 @RequestMapping({"editRate.do"}) @ResponseBody public ServerResponse editRate(ExchangeRate model, HttpServletRequest request) { if (model == null) { return ServerResponse.createByErrorMsg("editRate model is null"); } if (model.getRata() == null || model.getCurrency().isEmpty() || model.getConversionCurrency().isEmpty()) { return ServerResponse.createByErrorMsg("请输入货币和汇率参数不能为空"); } if (model.getCurrency().equals(model.getConversionCurrency())) { return ServerResponse.createByErrorMsg("原始货币和转换货币不能相同"); } //货币只能为US或MX if (!model.getCurrency().equals(EStockType.US.getSymbol()) && !model.getCurrency().equals(EStockType.MX.getSymbol())) { return ServerResponse.createByErrorMsg("货币只能为:" + EStockType.US.getSymbol() + " 或 " + EStockType.MX.getSymbol()); } if (!model.getConversionCurrency().equals(EStockType.US.getSymbol()) && !model.getConversionCurrency().equals(EStockType.MX.getSymbol())) { return ServerResponse.createByErrorMsg("转换货币只能为:" + EStockType.US.getSymbol() + " 或 " + EStockType.MX.getSymbol()); } return exchangeRateService.updateRate(model, request); } } src/main/java/com/nq/controller/backend/AdminStockAiController.java
New file @@ -0,0 +1,47 @@ package com.nq.controller.backend; import com.nq.common.ServerResponse; import com.nq.pojo.Stock; import com.nq.pojo.StockAI; import com.nq.service.IStockAiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; /** * 后台AI产品api */ @Controller @RequestMapping({"/admin/stockAi/"}) public class AdminStockAiController { @Autowired IStockAiService stockAiService; /** * 获取ai交易产品列表 * @return */ @RequestMapping("getStockAiList.do") @ResponseBody public ServerResponse getStockAiList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "5") int pageSize, @RequestParam(value = "stockType") String stockType, @RequestParam(value = "status") String status, @RequestParam(value = "name") String name) { return stockAiService.getAdminStockAiList(pageNum, pageSize, stockType, status, name); } //修改票信息 @RequestMapping({"editStockAi.do"}) @ResponseBody public ServerResponse editStockAi(StockAI model) { return stockAiService.editStockAi(model); } } src/main/java/com/nq/dao/StockAiMapper.java
@@ -2,9 +2,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nq.pojo.StockAI; import com.nq.vo.stock.StockAiVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface StockAiMapper extends BaseMapper<StockAI> { List<StockAiVO> getStockAiList(@Param("stockType") String stockType, @Param("status") String status, @Param("name") String name); } src/main/java/com/nq/service/IStockAiService.java
@@ -1,6 +1,7 @@ package com.nq.service; import com.nq.common.ServerResponse; import com.nq.pojo.StockAI; import org.springframework.web.bind.annotation.RequestParam; import javax.servlet.http.HttpServletRequest; @@ -14,4 +15,7 @@ ServerResponse getStockAiOrderList(Integer pageNum, Integer pageSize, String status, HttpServletRequest request); ServerResponse getAdminStockAiList(Integer pageNum, Integer pageSize, String stockType, String status, String name); ServerResponse editStockAi(StockAI model); } src/main/java/com/nq/service/impl/ExchangeRateServiceImpl.java
@@ -45,22 +45,6 @@ @Override public ServerResponse updateRate(ExchangeRate model, HttpServletRequest request) { try { if (model == null) { return ServerResponse.createByErrorMsg("model is null"); } if (model.getRata() == null || model.getCurrency().isEmpty() || model.getConversionCurrency().isEmpty()) { return ServerResponse.createByErrorMsg("请输入货币和汇率参数不能为空"); } if (model.getCurrency().equals(model.getConversionCurrency())) { return ServerResponse.createByErrorMsg("原始货币和转换货币不能相同"); } //货币只能为US或MX if (!model.getCurrency().equals(EStockType.US.getSymbol()) && !model.getCurrency().equals(EStockType.MX.getSymbol())) { return ServerResponse.createByErrorMsg("货币只能为:" + EStockType.US.getSymbol() + " 或 " + EStockType.MX.getSymbol()); } if (!model.getConversionCurrency().equals(EStockType.US.getSymbol()) && !model.getConversionCurrency().equals(EStockType.MX.getSymbol())) { return ServerResponse.createByErrorMsg("转换货币只能为:" + EStockType.US.getSymbol() + " 或 " + EStockType.MX.getSymbol()); } //新增 if (model.getId() == null) { //查询该货币汇率是否存在 src/main/java/com/nq/service/impl/StockAiServiceImpl.java
@@ -10,6 +10,7 @@ import com.nq.enums.*; import com.nq.pojo.*; import com.nq.service.*; import com.nq.vo.stock.StockAiVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -48,7 +49,8 @@ public ServerResponse getStockAiList(Integer pageNum, Integer pageSize) { try { PageHelper.startPage(pageNum, pageSize); List<StockAI> stockAiList = stockAiMapper.selectList(new QueryWrapper<StockAI>().eq("status", EStockAIStatus.online.getValue())); List<StockAI> stockAiList = stockAiMapper.selectList(new QueryWrapper<StockAI>() .eq("status", EStockAIStatus.online.getValue())); // 获取分页信息 PageInfo<StockAI> pageInfo = new PageInfo<>(stockAiList); return ServerResponse.createBySuccess(pageInfo); @@ -158,4 +160,67 @@ } return ServerResponse.createByError(); } @Override public ServerResponse getAdminStockAiList(Integer pageNum, Integer pageSize, String stockType, String status, String name) { try { PageHelper.startPage(pageNum, pageSize); List<StockAiVO> stockAiList = stockAiMapper.getStockAiList(stockType, status, name); // 获取分页信息 PageInfo<StockAiVO> pageInfo = new PageInfo<>(stockAiList); if (!pageInfo.getList().isEmpty()) { List<StockAiVO> newStockAiList = pageInfo.getList(); newStockAiList.forEach(stockAiVO -> { EStockType eStockType = EStockType.getEStockTypeByCode(stockAiVO.getStockType()); stockAiVO.setStockTypeName(eStockType.getSymbol1()); stockAiVO.setSymbol(stockType); }); pageInfo.setList(newStockAiList); } return ServerResponse.createBySuccess(pageInfo); } catch (Exception ex) { log.error("StockAiService getAdminStockAiList error", ex); } return ServerResponse.createByError(); } /** * 新增或修改 * @param model * @return */ @Override public ServerResponse editStockAi(StockAI model) { try { if (model == null) { return ServerResponse.createByErrorMsg("editStockAi model is null"); } if (model.getStockType().isEmpty() || model.getStockName().isEmpty() || model.getMinPrice() == null || model.getSuccessRate() == null || model.getExpectedEarning() == null || model.getStatus().isEmpty()) { return ServerResponse.createByErrorMsg("请完善必填信息"); } if (!model.getStockType().equals(EStockType.US.getCode()) && !model.getStockType().equals(EStockType.MX.getCode())) { return ServerResponse.createByErrorMsg("只能选择美股或墨西哥股"); } //新增 if (model.getId() == null) { //查询是否存在 StockAI stockAI = stockAiMapper.selectOne(new QueryWrapper<StockAI>().eq("stock_name", model.getStockName())); if (stockAI != null) { return ServerResponse.createByErrorMsg("当前股票已添加"); } model.setCreateDate(new Date()); stockAiMapper.insert(model); } else { //修改 stockAiMapper.updateById(model); } return ServerResponse.createBySuccess("操作成功"); } catch (Exception e) { log.error(e.getMessage(), e); } return ServerResponse.createByError(); } } src/main/java/com/nq/vo/stock/StockAiVO.java
New file @@ -0,0 +1,15 @@ package com.nq.vo.stock; import com.nq.pojo.StockAI; import lombok.Data; @Data public class StockAiVO extends StockAI { //股票类型名 private String stockTypeName; //货币符号 private String symbol; } src/main/resources/mapper/StockAiMapper.xml
New file @@ -0,0 +1,26 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.nq.dao.StockAiMapper" > <sql id="Base_Column_List" > id, stock_type, stock_name, min_price, success_rate, expected_earning, cycle, status, create_date </sql> <select id="getStockAiList" resultType="com.nq.vo.stock.StockAiVO"> SELECT <include refid="Base_Column_List" /> from stock_ai <where> <if test="stockType != null and stockType != ''"> and stock_type = #{stockType} </if> <if test="status != null and status != ''"> and status = #{status} </if> <if test="name != null and name != ''"> and stock_name like concat('%',#{name},'%') </if> </where> ORDER BY create_date DESC </select> </mapper>