package com.jwipc.sys.logic;


import cn.hutool.core.lang.Pair;
import com.jwipc.page.PageView;
import com.jwipc.sys.dto.*;
import com.jwipc.sys.model.query.UserListQuery;

import java.util.List;

/**
 * <p> </p>
 *
 * @author ZhangJie
 * @version 1.0
 * @since JDK 1.8
 */

public interface UserLogic {


    UserPageAttrDTO renderHanlder();


    PageView findByPage(UserListQuery query);
    List<UserPageListDTO> findForExport(UserListQuery query);

    List<UserPageListDTO> listAll(UserListQuery query);

    void add(UserAddDTO userAddDTO);

    UserEditPageDTO getForEditPage(Long id);

    void update(UserEditDTO userEditDTO);

    Pair<List<RoleDTO>, List<RoleDTO>> getForUserRoleAdd(Long userId);

    void updateRoleRel(Long userId, String roleIds);

    void updateOrgRel(Long userId, String orgIds);

    void updatePurchaseGroupRel(List<UserPurchaseGroupUpdateDTO> purchaseGroupUpdateDTOS);

    void updateFactoryRel(Long userId, String factoryCodes);

    void updatePurchaseOrgRel(Long userId, String purchaseOrgCodes);

    void updateStatus(Long userId, Integer status);

    void restPassword(Long userId);

    UserEditPageDTO getForCurrentUserDetail();


    void updatePassword(UpdatePasswordDTO updatePasswordDTO);


    Long createSupplierUser(CreateUserDTO createUserDTO);

    void updatePasswordFirstLogin(UpdatePasswordDTO updatePasswordDTO);

    String getPwdReg();

}
