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; } }