package com.iamberry.wechat.face.sys;

import com.iamberry.sys.Admin;
import com.iamberry.sys.Menu;
import com.iamberry.sys.SysRule;
import com.iamberry.wechat.core.entity.page.PageRequest;
import com.iamberry.wechat.core.entity.page.PagedResult;

import java.util.List;

/**
 * 管理员 Service
 * @author 献
 * @company 深圳爱贝源科技有限公司
 * @website www.iamberry.com
 * @tel 18271840547
 * @date 2017/5/12
 */
public interface SysService {

    /**
     * 根据登陆名称，获取用户的加密salt
     * @param loginName
     * @return
     */
    String getSaltByLoginName(String loginName);

    /**
     *  查询管理员信息
     * @param admin
     * @return
     */
    Admin get(Admin admin);

    /**
     * 更新管理员信息
     * @param admin
     * @return
     */
    Integer editAdmin(Admin admin);

    /**
     * 分页查询管理员
     * @param pageRequest
     * @return
     */
    PagedResult<Admin> listAdmin(PageRequest<Admin> pageRequest);

    /**
     * 添加管理员信息
     * @param admin
     * @return
     */
    Integer saveAdmin(Admin admin);

    /**
     * 根据角色id，查询菜单信息
     * @param ruleId
     * @return
     */
    List<Menu> listMenuByRule(Integer ruleId);

    /**
     * 根据角色id，查询权限信息
     * @param ruleId
     * @return
     */
    List<String> listSymbolByRule(Integer ruleId);

    /**
     * 查询供应商所有的角色
     * @param supplierId
     * @return
     */
    List<SysRule> listRule(Integer supplierId);

    /**
     * 查询单个角色的信息
     * @param ruleId
     * @return
     */
    SysRule getRule(Integer ruleId);

    /**
     * 查询所有再用的菜单
     * @return
     */
    List<Menu> listMenu();

    /**
     * 添加角色
     * @param supplierId
     * @param ruleName
     * @param subMenuId
     * @return
     */
    int addRule(Integer supplierId, String ruleName, Integer[] subMenuId);

    /**
     * 编辑角色
     * @param ruleId
     * @param ruleName
     * @param subMenuId
     * @return
     */
    int editRule(Integer ruleId, String ruleName, Integer[] subMenuId);
}
