“mitao”
2026-02-24 20e82837af9ba23d1a3bdb50d41b8eb1164129b1
feat(management):内容中心-乘车指南接口
2个文件已添加
5个文件已修改
158 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpAgreementUserController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpRideGuideController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/dto/XpRideGuideDTO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpRideGuideService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRideGuideServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MybatisPlusConfig.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -8,10 +8,12 @@
import com.xiaopeng.account.model.query.XpOperationsUserPageQuery;
import com.xiaopeng.account.service.IXpOperationsUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.account.service.IXpQualificationAuditService;
import com.xiaopeng.api.feignClient.maintenance.XpClockInClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.vo.account.FleetInfoVO;
import com.xiaopeng.api.vo.account.XpOperationsUserProfileVO;
@@ -24,6 +26,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.*;
@@ -52,6 +55,9 @@
    @Autowired
    private XpClockInClient xpClockInClient;
    @Autowired
    private IXpQualificationAuditService xpQualificationAuditService;
    @Override
    public List<XpOperationsUser> listByName(String nickName) {
@@ -152,9 +158,14 @@
        return vo;
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void saveCertificate(XpOperationsUserDTO dto) {
        XpOperationsUser xpOperationsUser = BeanUtil.copyProperties(dto, XpOperationsUser.class);
        updateById(xpOperationsUser);
        //保存审核记录
        XpQualificationAudit xpQualificationAudit = BeanUtil.copyProperties(dto, XpQualificationAudit.class, "id");
        xpQualificationAudit.setAuditStatus(1);
        xpQualificationAuditService.save(xpQualificationAudit);
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpAgreementUserController.java
@@ -4,7 +4,6 @@
import com.xiaopeng.api.model.maintenance.XpAgreementAppUser;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.common.core.web.domain.AjaxResult;
import com.xiaopeng.operation.dto.XpAgreementAppUserDto;
import com.xiaopeng.operation.service.XpAgreementAppUserService;
import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
@@ -34,7 +33,7 @@
    /**
     * 用户同意隐私协议/法律条款操作
     */
    @ApiOperation(value = "用户同意隐私协议/法律条款",tags = {"小程序-用户协议"})
    @ApiOperation(value = "用户同意隐私协议法律条款",tags = {"小程序-用户协议"})
    @PostMapping("/privacy/agreement")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<?> privacyAgreement(@RequestBody XpAgreementAppUserDto dto, HttpServletRequest request) {
@@ -48,7 +47,7 @@
    /**
     * 用户获取隐私协议/法律条款操作
     */
    @ApiOperation(value = "用户获取隐私协议/法律条款操作",tags = {"小程序-用户协议"})
    @ApiOperation(value = "用户获取隐私协议法律条款操作",tags = {"小程序-用户协议"})
    @PostMapping("/privacy/getAgreement")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<Boolean> getPrivacyAgreement(HttpServletRequest request) {
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpRideGuideController.java
@@ -1,22 +1,25 @@
package com.xiaopeng.operation.controller;
import com.xiaopeng.api.model.operation.XpRideGuide;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.common.core.web.domain.AjaxResult;
import com.xiaopeng.operation.dto.XpRideGuideDTO;
import com.xiaopeng.operation.service.XpRideGuideService;
import com.xiaopeng.operation.vo.XpAgreementVo;
import com.xiaopeng.operation.vo.XpRideGuideVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@Validated
@Slf4j
@RestController
@RequestMapping("/base/v1/mini-program")
@Api(tags = "乘车指南模块")
public class XpRideGuideController extends BaseController {
    private final XpRideGuideService xpRideGuideService;
@@ -27,12 +30,21 @@
    @ApiOperation(value = "获取乘车指南",tags = {"小程序首页"},response = XpAgreementVo.class)
    @GetMapping("/guide/list")
    @GetMapping("/base/v1/mini-program/guide/list")
    public AjaxResult<XpRideGuideVo> getList() {
        return success(xpRideGuideService.getXpRideGuideList());
    }
    @ApiOperation(value = "获取乘车指南",tags = {"管理后台-内容中心"},response = XpRideGuide.class)
    @GetMapping("/api/v1/guide/list")
    public R<List<XpRideGuide>> getGideList() {
        return R.ok(xpRideGuideService.getGideList());
    }
    @ApiOperation(value = "保存乘车指南",tags = {"管理后台-内容中心"})
    @PostMapping("/api/v1/guide/save")
    public R<?> saveGuide(@Valid @RequestBody XpRideGuideDTO dto) {
        xpRideGuideService.saveGuide(dto);
        return R.ok();
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/dto/XpRideGuideDTO.java
New file
@@ -0,0 +1,23 @@
package com.xiaopeng.operation.dto;
import com.xiaopeng.api.model.operation.XpRideGuide;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
 * @author MiTao
 * @date 2026-02-24 18:47
 *
 */
@Data
@ApiModel("乘车指南DTO")
public class XpRideGuideDTO {
    @NotEmpty(message = "乘车指南列表不能为空")
    @ApiModelProperty(value = "乘车指南列表")
    private List<XpRideGuide> guideList;
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpRideGuideService.java
@@ -3,7 +3,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.api.model.operation.XpRideGuide;
import com.xiaopeng.operation.dto.XpRideGuideDTO;
import com.xiaopeng.operation.vo.XpRideGuideVo;
import java.util.List;
/**
 * <p>
@@ -21,6 +24,15 @@
     */
    XpRideGuideVo getXpRideGuideList();
    /**
     * 获取rideGuide列表
     * @return
     */
    List<XpRideGuide> getGideList();
    /**
     * 保存乘车指南
     * @param dto
     */
    void saveGuide(XpRideGuideDTO dto);
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRideGuideServiceImpl.java
@@ -1,14 +1,18 @@
package com.xiaopeng.operation.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.operation.dto.XpRideGuideDTO;
import com.xiaopeng.operation.mapper.XpRideGuideMapper;
import com.xiaopeng.api.model.operation.XpRideGuide;
import com.xiaopeng.operation.service.XpRideGuideService;
import com.xiaopeng.operation.vo.XpRideGuideNextVo;
import com.xiaopeng.operation.vo.XpRideGuideVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
/**
@@ -36,4 +40,24 @@
        return xpRideGuideVo;
    }
    /**
     * 获取rideGuide列表
     * @return
     */
    @Override
    public List<XpRideGuide> getGideList() {
        return list();
    }
    /**
     * 保存乘车指南
     * @param dto
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void saveGuide(XpRideGuideDTO dto) {
        List<XpRideGuide> guideList = dto.getGuideList();
        List<XpRideGuide> xpRideGuides = BeanUtil.copyToList(guideList, XpRideGuide.class);
        saveOrUpdateBatch(xpRideGuides);
    }
}
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MybatisPlusConfig.java
New file
@@ -0,0 +1,51 @@
package com.xiaopeng.vehicleConvoy.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @author xiaochen
 * @ClassName MybatisPlusConfig
 * @Description MybatisPlus相关配置
 * @date 2020-09-22 11:22、
 * 直接以实现类作为bean的注入(有事务管理的类)
 * @EnableTransactionManagement(proxyTargetClass = true)
 */
@Configuration
public class MybatisPlusConfig {
    private final DataUpdateHandlerConfig dataUpdateHandler;
    @Autowired
    public MybatisPlusConfig(DataUpdateHandlerConfig dataUpdateHandler) {
        this.dataUpdateHandler = dataUpdateHandler;
    }
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
    /**
     * 自动填充功能
     *
     * @return
     */
    @Bean
    public GlobalConfig globalConfig() {
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setMetaObjectHandler(dataUpdateHandler);
        return globalConfig;
    }
}