package com.nova.sankuai.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.nova.sankuai.domain.entity.HotCity;
|
import com.nova.sankuai.infra.config.CommonException;
|
import com.nova.sankuai.infra.mapper.HotCityMapper;
|
import com.nova.sankuai.infra.utils.PageRequest;
|
import com.nova.sankuai.service.IHotCityService;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* @author weikangdi
|
* @create 2021/11/3
|
*/
|
@Service
|
@AllArgsConstructor
|
public class HotCityServiceImpl extends ServiceImpl<HotCityMapper, HotCity> implements IHotCityService {
|
|
private final HotCityMapper hotCityMapper;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void saveHotCity(HotCity hotCity) {
|
HotCity city = lambdaQuery().eq(HotCity::getCityId, hotCity.getCityId()).one();
|
if (city != null && !city.getId().equals(hotCity.getId())) {
|
throw new CommonException("该城市已经被设置为热门城市");
|
}
|
saveOrUpdate(hotCity);
|
}
|
|
@Override
|
public List<HotCity> getHotCities() {
|
List<HotCity> hotCities = hotCityMapper.getHotCities();
|
return hotCities;
|
}
|
|
@Override
|
public IPage<HotCity> pageHotCities(PageRequest pageRequest) {
|
Page<HotCity> page = new Page<>(pageRequest.getPageNo(), pageRequest.getPageSize());
|
IPage<HotCity> result = hotCityMapper.pageModel(page);
|
return result;
|
}
|
|
@Override
|
public void invalidHotCity(Long id, Integer status) {
|
HotCity hotCity = getById(id);
|
if (hotCity == null) {
|
throw new CommonException("该热门城市不存在");
|
}
|
hotCity.setEnableFlag(status);
|
updateById(hotCity);
|
}
|
}
|