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 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 getHotCities() { List hotCities = hotCityMapper.getHotCities(); return hotCities; } @Override public IPage pageHotCities(PageRequest pageRequest) { Page page = new Page<>(pageRequest.getPageNo(), pageRequest.getPageSize()); IPage 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); } }