zyy
2025-08-07 ea4dda9def8d75d5ca8796771cf22b37fcd251d1
src/main/java/com/nq/service/impl/StockAiServiceImpl.java
@@ -15,6 +15,7 @@
import com.nq.vo.stock.ai.StockAiOrderTypeVO;
import com.nq.vo.stock.ai.StockAiOrderVO;
import com.nq.vo.stock.ai.StockAiVO;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -54,11 +55,12 @@
     * @return
     */
    @Override
    public ServerResponse getStockAiList(Integer pageNum, Integer pageSize) {
    public ServerResponse getStockAiList(Integer pageNum, Integer pageSize, String stockName) {
        try {
            PageHelper.startPage(pageNum, pageSize);
            List<StockAI> stockAiList = stockAiMapper.selectList(new QueryWrapper<StockAI>()
                    .eq("status", EStockAIStatus.online.getValue()));
                    .eq("status", EStockAIStatus.online.getValue())
                    .eq(StringUtils.isNotBlank(stockName),"stock_name", stockName));
            // 获取分页信息
            PageInfo<StockAI> pageInfo = new PageInfo<>(stockAiList);
            return ServerResponse.createBySuccess(pageInfo);
@@ -104,10 +106,10 @@
                    return ServerResponse.createByErrorMsg("最低购买数量" + stockAI.getMinPrice(), request);
                }
                //获取用户账户
                UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.MX.getCode(), user.getId());
                UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(EStockType.getDefault().getCode(), user.getId());
                BigDecimal finalBuyNum = buyNum;
                //如果不是墨西哥币需要转换金额
                if (!stockAI.getStockType().equals(EStockType.MX.getCode())) {
                //如果不是默认货币需要转换金额
                if (!stockAI.getStockType().equals(EStockType.getDefault().getCode())) {
                    buyNum = userAssetsServices.exchangeAmountByRate(stockAI.getStockType(), buyNum);
                }
                if(buyNum.compareTo(userAssets.getAvailableBalance()) > 0){
@@ -117,8 +119,8 @@
                if(userAssets.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){
                    return ServerResponse.createByErrorMsg("请先缴清待补资金", request);
                }
                //已经转化 直接穿MEX类型
                iUserAssetsServices.aiAvailableBalanceChange(EStockType.MX.getCode(), user.getId(), EUserAssets.BUY_AI, buyNum);
                //已经转化 直接穿默认类型
                iUserAssetsServices.aiAvailableBalanceChange(EStockType.getDefault().getCode(), user.getId(), EUserAssets.BUY_AI, buyNum);
                StockAIOrder stockAIOrder = new StockAIOrder();
                stockAIOrder.setUserId(user.getId());
                stockAIOrder.setStockAiId(id.intValue());
@@ -197,12 +199,12 @@
            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()) {
            if (StringUtils.isBlank(model.getStockType()) || StringUtils.isBlank(model.getStockName()) || model.getMinPrice() == null
                || model.getSuccessRate() == null || model.getExpectedEarning() == null || StringUtils.isBlank(model.getStatus())) {
                return ServerResponse.createByErrorMsg("请完善必填信息");
            }
            if (!model.getStockType().equals(EStockType.US.getCode()) && !model.getStockType().equals(EStockType.MX.getCode())) {
                return ServerResponse.createByErrorMsg("只能选择美股或墨西哥股");
            if (!EStockType.isExistByCode(model.getStockType())) {
                return ServerResponse.createByErrorMsg("股票市场不存在");
            }
            //新增
            if (model.getId() == null) {