“mitao”
2026-02-25 353eda75ffbcbab4bbe1f89980b225b5f213c731
feat(management):管理后台-系统-热修复、系统配置接口
1个文件已添加
12个文件已修改
132 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpPricing.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpSystemSetting.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpFrequentlyAskedQuestionsController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPricingController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpSystemSettingController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/dto/PricingEditDTO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpOpenCityService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpPricingService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpSystemSettingService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpFrequentlyAskedQuestionsServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpSystemSettingServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpPricing.java
@@ -41,7 +41,7 @@
    @ApiModelProperty(value = "城市id")
    @TableField("city_id")
    private Integer cityId;
    private Long cityId;
    @ApiModelProperty(value = "城市名称")
    @TableField(exist = false)
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpSystemSetting.java
@@ -46,6 +46,7 @@
    private Integer minOrderDistance;
    @ApiModelProperty(value = "到达目的地后X分钟后自动结束行程")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("arrive_time")
    private Integer arriveTime;
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpFrequentlyAskedQuestionsController.java
@@ -48,23 +48,17 @@
    }
    @GetMapping("/api/v1/frequently-asked-questions/getList")
    @ApiOperation(value = "获取常见问题列表",tags = {"管理后台-内容中心"},response = XpFrequentlyAskedQuestions.class)
    @ApiOperation(value = "获取常见问题列表", tags = {"管理后台-内容中心"}, response = XpFrequentlyAskedQuestions.class)
    public R<List<XpFrequentlyAskedQuestions>> getQuestionList() {
        List<XpFrequentlyAskedQuestions> list = xpFrequentlyAskedQuestionsService.list();
        return R.ok(list);
    }
    @ApiOperation(value = "保存常见问题")
    @ApiOperation(value = "保存常见问题", tags = {"管理后台-内容中心"})
    @PostMapping("/api/v1/frequently-asked-questions/save")
    public R<?> saveQuestion(@RequestBody XpFrequentlyAskedQuestionsDTO dto) {
        xpFrequentlyAskedQuestionsService.saveQuestion(dto);
        return R.ok();
    }
    @ApiOperation(value = "删除常见问题")
    @DeleteMapping("/api/v1/frequently-asked-questions/delete/{id}")
    public R<?> deleteQuestion(@PathVariable Long id) {
        xpFrequentlyAskedQuestionsService.removeById(id);
        return R.ok();
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPricingController.java
@@ -15,10 +15,7 @@
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.operation.constant.I18nKeyConstant;
import com.xiaopeng.operation.dto.PricingAddDTO;
import com.xiaopeng.operation.dto.PricingSetPriceDTO;
import com.xiaopeng.operation.dto.PricingSetRuleDTO;
import com.xiaopeng.operation.dto.XpOrderDto;
import com.xiaopeng.operation.dto.*;
import com.xiaopeng.operation.query.PricingPageListQuery;
import com.xiaopeng.operation.service.*;
import com.xiaopeng.operation.vo.PricingPageListVO;
@@ -181,9 +178,14 @@
    @PostMapping("/api/v1/pricing/add")
    @ApiOperation(value = "管理后台-新增定价", tags = {"管理后台-定价管理"})
    public R<?> add(@Valid @RequestBody PricingAddDTO dto) {
        xpPricingService.add(dto);
        return R.ok();
    public R<Long> add(@Valid @RequestBody PricingAddDTO dto) {
        return R.ok(xpPricingService.add(dto));
    }
    @PostMapping("/api/v1/pricing/edit")
    @ApiOperation(value = "管理后台-编辑定价", tags = {"管理后台-定价管理"})
    public R<?> edit(@Valid @RequestBody PricingEditDTO dto) {
        return R.ok(xpPricingService.edit(dto));
    }
    @PostMapping("/api/v1/pricing/setPrice")
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpSystemSettingController.java
@@ -13,6 +13,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -79,4 +80,10 @@
        return R.ok(xpSystemSettingService.lambdaQuery().last("limit 1").one());
    }
    @ApiOperation(value = "保存系统配置、热修复", tags = {"管理后台-系统"})
    @GetMapping("/api/v1/systemSetting/save")
    public R<?> saveSystemSetting(@RequestBody XpSystemSetting xpSystemSetting){
        xpSystemSettingService.saveSystemSetting(xpSystemSetting);
        return R.ok();
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/dto/PricingEditDTO.java
New file
@@ -0,0 +1,24 @@
package com.xiaopeng.operation.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
 * 定价新增数据传输对象
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "定价新增数据传输对象")
public class PricingEditDTO extends PricingAddDTO{
    @ApiModelProperty(value = "id", required = true)
    @NotNull(message = "id不能为空")
    private Long id;
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpOpenCityService.java
@@ -73,5 +73,5 @@
     * @param cityId
     * @return
     */
    String getNameWithCityName(Integer cityId);
    String getNameWithCityName(Long cityId);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpPricingService.java
@@ -6,12 +6,11 @@
import com.xiaopeng.api.model.operation.XpPricing;
import com.xiaopeng.api.vo.operation.RouteAndFareVo;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.operation.dto.PricingAddDTO;
import com.xiaopeng.operation.dto.PricingSetPriceDTO;
import com.xiaopeng.operation.dto.PricingSetRuleDTO;
import com.xiaopeng.operation.dto.XpOrderDto;
import com.xiaopeng.operation.dto.*;
import com.xiaopeng.operation.query.PricingPageListQuery;
import com.xiaopeng.operation.vo.PricingPageListVO;
import javax.validation.Valid;
/**
 * <p>
@@ -64,7 +63,14 @@
     *
     * @param dto 新增参数
     */
    void add(PricingAddDTO dto);
    Long add(PricingAddDTO dto);
    /**
     * 编辑定价
     * @param dto
     * @return
     */
    Long edit(@Valid PricingEditDTO dto);
    /**
     * 管理后台-定价管理-设置价格
@@ -80,4 +86,5 @@
     */
    void setRule(PricingSetRuleDTO dto);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpSystemSettingService.java
@@ -33,5 +33,9 @@
     */
    Integer getOrderFinishTime();
    /**
     * 保存系统配置、热修复
     * @param xpSystemSetting
     */
    void saveSystemSetting(XpSystemSetting xpSystemSetting);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpFrequentlyAskedQuestionsServiceImpl.java
@@ -23,7 +23,9 @@
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void saveQuestion(XpFrequentlyAskedQuestionsDTO dto) {
        //先删除原有的常见问题
        remove(null);
        List<XpFrequentlyAskedQuestions> frequentlyAskedQuestionsList = dto.getFrequentlyAskedQuestionsList();
        saveOrUpdateBatch(frequentlyAskedQuestionsList);
        saveBatch(frequentlyAskedQuestionsList);
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java
@@ -144,7 +144,7 @@
    }
    @Override
    public String getNameWithCityName(Integer cityId) {
    public String getNameWithCityName(Long cityId) {
        String cityName = "";
        XpOpenCity openCity = getById(cityId);
        if (Objects.nonNull(openCity)) {
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.dto.account.GetUserCouponDto;
@@ -31,10 +32,7 @@
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.redis.service.RedisService;
import com.xiaopeng.operation.constant.I18nKeyConstant;
import com.xiaopeng.operation.dto.PricingAddDTO;
import com.xiaopeng.operation.dto.PricingSetPriceDTO;
import com.xiaopeng.operation.dto.PricingSetRuleDTO;
import com.xiaopeng.operation.dto.XpOrderDto;
import com.xiaopeng.operation.dto.*;
import com.xiaopeng.operation.mapper.*;
import com.xiaopeng.operation.query.PricingPageListQuery;
import com.xiaopeng.operation.service.IXpGeoQueryEntityService;
@@ -685,7 +683,7 @@
    }
    @Override
    public void add(PricingAddDTO dto) {
    public Long add(PricingAddDTO dto) {
        XpOpenCity openCity = xpOpenCityMapper.selectById(dto.getCityId());
        if (openCity == null) {
            throw new ServiceException("开通城市不存在");
@@ -703,7 +701,7 @@
        XpPricing pricing = new XpPricing();
        pricing.setVehicleModel(dto.getVehicleModel());
        pricing.setChannel(dto.getChannel());
        pricing.setCityId(dto.getCityId().intValue());
        pricing.setCityId(dto.getCityId());
        pricing.setRemark(dto.getRemark());
        pricing.setPricingType(dto.getPricingType());
        pricing.setBasicPricingJson("{}");
@@ -711,6 +709,30 @@
        pricing.setDynamicPricingJson("{}");
        pricing.setIsDynamicPrice(0);
        this.save(pricing);
        return pricing.getId();
    }
    @Override
    public Long edit(PricingEditDTO dto) {
        //1.查询定价
        XpPricing pricing = getById(dto.getId());
        if (Objects.nonNull(pricing)) {
            LambdaUpdateWrapper<XpPricing> updateWrapper = new LambdaUpdateWrapper<>();
            //2.判断定价类型是否改变
            if (!pricing.getPricingType().equals(dto.getPricingType())) {
                updateWrapper.set(XpPricing::getBasicPricingJson, null);
                updateWrapper.set(XpPricing::getStartingFareJson, null);
                updateWrapper.set(XpPricing::getDynamicPricingJson, null);
            }
            updateWrapper.set(XpPricing::getVehicleModel, dto.getVehicleModel());
            updateWrapper.set(XpPricing::getChannel, dto.getChannel());
            updateWrapper.set(XpPricing::getCityId, dto.getCityId());
            updateWrapper.set(StringUtils.isNotBlank(dto.getRemark()), XpPricing::getRemark, dto.getRemark());
            updateWrapper.set(XpPricing::getPricingType, dto.getPricingType());
            updateWrapper.eq(XpPricing::getId, dto.getId());
            update(updateWrapper);
        }
        return dto.getId();
    }
    @Override
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpSystemSettingServiceImpl.java
@@ -6,6 +6,7 @@
import com.xiaopeng.api.model.operation.XpSystemSetting;
import com.xiaopeng.operation.service.XpSystemSettingService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * <p>
@@ -44,4 +45,10 @@
        }
        return 15;
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void saveSystemSetting(XpSystemSetting xpSystemSetting) {
        saveOrUpdate(xpSystemSetting);
    }
}