package com.xiaopeng.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.account.model.dto.SysGroupAddDTO;
import com.xiaopeng.account.model.dto.SysGroupEditDTO;
import com.xiaopeng.account.model.query.GroupUserPageQuery;
import com.xiaopeng.account.model.query.SysGroupPageQuery;
import com.xiaopeng.account.model.vo.GroupUserVO;
import com.xiaopeng.account.model.vo.SysGroupDetailVO;
import com.xiaopeng.account.model.vo.SysGroupPageVO;
import com.xiaopeng.api.model.account.SysGroup;
import com.xiaopeng.common.core.web.page.PageInfo;
/**
*
* 权限组设置 服务类
*
*
* @author mitao
* @since 2026-02-03
*/
public interface ISysGroupService extends IService {
/**
* 新增权限组
*
* @param dto 新增权限组请求
*/
void addGroup(SysGroupAddDTO dto);
/**
* 编辑权限组
*
* @param dto 编辑权限组请求
*/
void editGroup(SysGroupEditDTO dto);
/**
* 获取权限组详情(含菜单树)
*
* @param id 权限组ID
* @return 权限组详情
*/
SysGroupDetailVO getGroupDetail(Long id);
/**
* 权限组分页列表
*
* @param query 分页查询参数
* @return 分页结果
*/
PageInfo pageList(SysGroupPageQuery query);
/**
* 查询权限组绑定用户分页列表
*
* @param query 分页查询参数
* @return 分页结果
*/
PageInfo queryUserPageList(GroupUserPageQuery query);
/**
* 校验权限组名称唯一性
*
* @param groupName 权限组名称
* @param excludeId 排除的权限组ID(编辑时使用)
* @return true=唯一,false=不唯一
*/
boolean checkGroupNameUnique(String groupName, Long excludeId);
/**
* 删除权限组
* @param id
*/
void deleteById(Long id);
/**
* 获取手机号脱敏
* @param phoneNumber
* @return
*/
String getPhoneDesensitization(String phoneNumber);
boolean getPhoneDesensitization();
}