package com.xiaopeng.operation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.api.model.operation.XpOpenCity;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.operation.dto.OpenCityAddDTO;
import com.xiaopeng.operation.dto.OpenCityEditDTO;
import com.xiaopeng.operation.query.OpenCityPageQuery;
import com.xiaopeng.operation.vo.OpenCityListVO;
import com.xiaopeng.operation.vo.XpOpenCityVo;
import javax.validation.Valid;
import java.util.List;
/**
*
* 开通城市 服务类
*
*
* @author liu
* @since 2026-02-03
*/
public interface XpOpenCityService extends IService {
XpOpenCityVo citiesList();
/**
* 获取开通城市列表(管理后台使用)
* 区/县级会拼接市名
*
* @return 开通城市列表
*/
List getOpenCityListForAdmin(Integer type);
/**
* 开通城市分页列表
* @return
*/
PageInfo getPageList(OpenCityPageQuery query);
/**
* 新增开通城市
*
* @param dto
*/
void add(@Valid OpenCityAddDTO dto);
/**
* 编辑开通城市
*
* @param dto
*/
void edit(@Valid OpenCityEditDTO dto);
/**
* 删除开通城市
* @param id
*/
void deleteById(Long id);
/**
* 管理后台-开通城市管理-启用/禁用
*
* @param id
* @param status
* @return
*/
void upDown(Long id, Integer status);
/**
* 获取开通城市名称,如果开通城市层级是区级,则返回市级名称>区名称
* @param cityId
* @return
*/
String getNameWithCityName(Long cityId);
/**
* 获取开通城市数据
* @param provinceCode
* @param cityCode
* @param districtCode
* @return
*/
XpOpenCity getXpOpenCity(String provinceCode, String cityCode, String districtCode);
}