package com.dgtly.system.service;

import com.dgtly.system.domain.SysUserAuthorRel;
import com.dgtly.system.domain.SysUserOrderAuthor;
import java.util.List;
import com.dgtly.common.core.domain.Ztree;

/**
 * 权限Service接口
 *
 * @author dgtly
 * @date 2022-03-22
 */
public interface ISysUserOrderAuthorService
{
    /**
     * 查询权限
     *
     * @param authorId 权限ID
     * @return 权限
     */
    public SysUserOrderAuthor selectSysUserOrderAuthorById(Long authorId);

    /**
     * 查询权限列表
     *
     * @param sysUserOrderAuthor 权限
     * @return 权限集合
     */
    public List<SysUserOrderAuthor> selectSysUserOrderAuthorList(SysUserOrderAuthor sysUserOrderAuthor);

    /**
     * 新增权限
     *
     * @param sysUserOrderAuthor 权限
     * @return 结果
     */
    public int insertSysUserOrderAuthor(SysUserOrderAuthor sysUserOrderAuthor);

    /**
     * 修改权限
     *
     * @param sysUserOrderAuthor 权限
     * @return 结果
     */
    public int updateSysUserOrderAuthor(SysUserOrderAuthor sysUserOrderAuthor);

    /**
     * 批量删除权限
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysUserOrderAuthorByIds(String ids);

    /**
     * 删除权限信息
     *
     * @param authorId 权限ID
     * @return 结果
     */
    public int deleteSysUserOrderAuthorById(Long authorId);

    public int insertRel(SysUserAuthorRel role);

    /**
     * 查询权限树列表
     *
     * @return 所有权限信息
     */
    public List<Ztree> selectSysUserOrderAuthorTree();

    /**
     * 查询用户权限
     * @param userId
     * @return
     */
    public List<Ztree> userAuthorTreeData(Long userId);

    /**
     * 查询用户权限 接口
     * @param userId
     * @return
     */
    public List<Ztree> userAuthorTreeDataFmt(Long userId);

    /**
     * 初始化用户权限
     */
    void initUserAuthor();

    /**
     *
     * 离职用户标识
     * **/
    void quitUser();

    void updateCustomers();

    void sendmailUnionUser();

    void sendMailHanaWarning(String HanaName);

    void unionCustomerUser();

    /**
     *
     * 无tms工厂的交货单更新状态和订单
     */
    void tmsPlantByOrder();

    /**
     * @description: 经销商自动上线
     * @param: []
     * @return: void
     * @author: njs
     * @date: 2023/2/23 13:28
     */
    void customersStart();

    int insertCus(String customer);

    int selectCus(String  customer);

}
