| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | }) |
| | | .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(); |
| | | } |
| | | } |