From f085e14d10a11c730b9831902962b72c818ae1bf Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 13 二月 2026 14:51:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java | 68 ++++++++++++++++++++++++++++++++-
1 files changed, 65 insertions(+), 3 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java
index 1d284c0..1ceef23 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpOpenCityServiceImpl.java
@@ -1,11 +1,19 @@
package com.xiaopeng.operation.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xiaopeng.common.redis.service.RedisService;
-import com.xiaopeng.operation.mapper.XpOpenCityMapper;
import com.xiaopeng.api.model.operation.XpOpenCity;
+import com.xiaopeng.common.core.exception.ServiceException;
+import com.xiaopeng.common.core.web.page.PageInfo;
+import com.xiaopeng.common.security.utils.SecurityUtils;
+import com.xiaopeng.operation.constant.I18nKeyConstant;
+import com.xiaopeng.operation.dto.OpenCityAddDTO;
+import com.xiaopeng.operation.dto.OpenCityEditDTO;
+import com.xiaopeng.operation.mapper.XpOpenCityMapper;
+import com.xiaopeng.operation.query.OpenCityPageQuery;
import com.xiaopeng.operation.service.XpOpenCityService;
import com.xiaopeng.operation.vo.OpenCityListVO;
import com.xiaopeng.operation.vo.XpOpenCityNextVo;
@@ -13,9 +21,9 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -80,4 +88,58 @@
})
.collect(Collectors.toList());
}
+
+ @Override
+ public PageInfo<XpOpenCity> getPageList(OpenCityPageQuery query) {
+ Page<XpOpenCity> page = lambdaQuery().like(StringUtils.isNotBlank(query.getCityName()), XpOpenCity::getCityName, query.getCityName())
+ .eq(Objects.nonNull(query.getStatus()), XpOpenCity::getStatus, query.getStatus())
+ .orderByDesc(XpOpenCity::getCreateTime)
+ .page(new Page<>(query.getPageNum(), query.getPageSize()));
+ PageInfo<XpOpenCity> pageInfo = new PageInfo<>();
+ pageInfo.setRecords(page.getRecords());
+ page.setTotal(page.getTotal());
+ return pageInfo;
+ }
+
+ @Override
+ public void add(OpenCityAddDTO dto) {
+ checkIfExist(dto, null);
+ XpOpenCity xpOpenCity = BeanUtil.copyProperties(dto, XpOpenCity.class);
+ xpOpenCity.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
+ save(xpOpenCity);
+ }
+
+ /**
+ * 校验开通城市是否已添加
+ * @param dto
+ * @param excludeOpenCityId
+ */
+ private void checkIfExist(OpenCityAddDTO dto, Long excludeOpenCityId) {
+ Long count = lambdaQuery().eq(XpOpenCity::getProvinceCode, dto.getProvinceCode())
+ .eq(XpOpenCity::getCityCode, dto.getCityCode())
+ .eq(StringUtils.isNotBlank(dto.getDistrictCode()), XpOpenCity::getDistrictCode, dto.getDistrictCode())
+ .ne(Objects.nonNull(excludeOpenCityId), XpOpenCity::getId, excludeOpenCityId)
+ .count();
+ if (count > 0) {
+ throw new ServiceException("该城市已存在", I18nKeyConstant.OPEN_CITY_EXISTS);
+ }
+ }
+
+ @Override
+ public void edit(OpenCityEditDTO dto) {
+ checkIfExist(dto, dto.getId());
+ XpOpenCity xpOpenCity = BeanUtil.copyProperties(dto, XpOpenCity.class);
+ xpOpenCity.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
+ updateById(xpOpenCity);
+ }
+
+ @Override
+ public void deleteById(Long id) {
+ removeById(id);
+ }
+
+ @Override
+ public void upDown(Long id, Integer status) {
+ lambdaUpdate().eq(XpOpenCity::getId, id).set(XpOpenCity::getStatus, status).update();
+ }
}
--
Gitblit v1.7.1