puzhibing
2026-04-30 274422a2d5cbb8f4518c29cc1748a805f8d9a00b
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpTradingStrategyServiceImpl.java
@@ -2,13 +2,16 @@
import cn.hutool.core.bean.BeanUtil;
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.xiaopeng.api.model.operation.XpTradingStrategy;
import com.xiaopeng.api.model.operation.XpTradingStrategyCity;
import com.xiaopeng.api.model.operation.XpTradingStrategyPush;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.operation.dto.XpTradingStrategyEditDTO;
import com.xiaopeng.operation.mapper.XpTradingStrategyMapper;
import com.xiaopeng.operation.service.IXpTradingStrategyCityService;
import com.xiaopeng.operation.service.IXpTradingStrategyPushService;
import com.xiaopeng.operation.service.IXpTradingStrategyService;
import com.xiaopeng.api.vo.operation.XpTradingStrategyDetailVO;
import lombok.RequiredArgsConstructor;
@@ -18,6 +21,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
@@ -34,6 +38,9 @@
public class XpTradingStrategyServiceImpl extends ServiceImpl<XpTradingStrategyMapper, XpTradingStrategy> implements IXpTradingStrategyService {
    private final IXpTradingStrategyCityService tradingStrategyCityService;
    @Resource
    private IXpTradingStrategyPushService xpTradingStrategyPushService;
    @Override
    public XpTradingStrategyDetailVO queryDetail() {
@@ -55,7 +62,8 @@
        // 3. 组装 VO
        XpTradingStrategyDetailVO vo = BeanUtil.copyProperties(strategy, XpTradingStrategyDetailVO.class);
        vo.setCityList(cityList);
        List<XpTradingStrategyPush> tradingStrategyId = xpTradingStrategyPushService.list(new QueryWrapper<XpTradingStrategyPush>().eq("trading_strategy_id", strategy.getId()).orderByAsc("start_time"));
        vo.setTimePushStrategyList(tradingStrategyId);
        return vo;
    }
@@ -73,6 +81,14 @@
        XpTradingStrategy updateStrategy = BeanUtil.copyProperties(dto, XpTradingStrategy.class);
        this.updateById(updateStrategy);
        //更新分时段推单策略
        xpTradingStrategyPushService.remove(new QueryWrapper<XpTradingStrategyPush>().eq("trading_strategy_id", dto.getId()));
        List<XpTradingStrategyPush> pushTimeList = dto.getPushTimeList();
        for (XpTradingStrategyPush xpTradingStrategyPush : pushTimeList) {
            xpTradingStrategyPush.setTradingStrategyId(dto.getId());
            xpTradingStrategyPushService.save(xpTradingStrategyPush);
        }
        // 3. 删除旧的城市关联
        tradingStrategyCityService.remove(
                new LambdaQueryWrapper<XpTradingStrategyCity>()