package com.xiaopeng.operation.controller;
import com.xiaopeng.api.model.operation.XpTradingStrategy;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.operation.dto.XpTradingStrategyEditDTO;
import com.xiaopeng.operation.service.IXpTradingStrategyService;
import com.xiaopeng.api.vo.operation.XpTradingStrategyDetailVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
*
* 交易策略配置 前端控制器
*
*
* @author mitao
* @since 2026-02-03
*/
@RestController
@Api(tags = "交易策略管理")
@RequiredArgsConstructor
public class XpTradingStrategyController extends BaseController {
private final IXpTradingStrategyService tradingStrategyService;
/**
* 获取交易策略配置
*
* @return 交易策略详情
*/
@ApiOperation(value = "获取交易策略配置", tags = {"管理后台-交易管理-交易策略配置"})
@GetMapping("/api/v1/tradingStrategy/queryById")
public R queryById() {
XpTradingStrategyDetailVO detail = tradingStrategyService.queryDetail();
return R.ok(detail);
}
@ApiOperation(value = "获取交易策略配置", tags = {"inner-交易策略配置"})
@GetMapping("/logan/inner/xpOperationStrategy/getOne")
public R getOne() {
// TODO[流量接入] 这里需要判断是哪个三方车队的,获取到对应的交易策略
XpTradingStrategyDetailVO detail = tradingStrategyService.queryDetail();
return R.ok(detail);
}
/**
* 修改交易策略
*
* @param dto 交易策略编辑参数
* @return 操作结果
*/
@ApiOperation(value = "修改交易策略", tags = {"管理后台-交易管理-交易策略配置"})
@PostMapping("/api/v1/tradingStrategy/edit")
public R> edit(@Validated @RequestBody XpTradingStrategyEditDTO dto) {
tradingStrategyService.editStrategy(dto);
return R.ok();
}
@ApiOperation(value = "三方车队的交易策略", tags = {"流量接入-信息录入-设置交易策略"})
@PostMapping("/api/v1/xp-rt/strategy")
public R> add(@Validated @RequestBody XpTradingStrategy dto) {//创建只接收部分可设置的参数的dto
// 通过key认证是哪个三方车队
tradingStrategyService.save(dto);
return R.ok();
}
/**
* 根据开通城市获取交易策略
* @param cityCode
* @return
*/
@GetMapping("/logan/inner/xpOperationStrategy/getTradingStrategyByCityCode/{cityCode}")
public R getTradingStrategyByCityCode(@PathVariable String cityCode){
XpTradingStrategy detail = tradingStrategyService.getTradingStrategyByCityCode(cityCode);
return R.ok(detail);
}
}