package com.ytpm.middle.dao;

import com.ytpm.middle.model.YtMiddleUser;
import com.ytpm.middle.model.YtMiddleUserRole;
import com.ytpm.middle.param.MiddleUserListParam;
import com.ytpm.middle.view.MiddleRoleVO;
import com.ytpm.middle.view.MiddleUserInfo;
import com.ytpm.oauth.model.YtPlatformUser;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;

import java.util.List;

@Mapper
public interface MiddleUserMapper {
    /**
     * 登录名查询用户
     */
    MiddleUserInfo getByLoginName(@Param("userName") String userName);

    /**
     * 手机号查询用户
     */
    MiddleUserInfo getByPhone(@Param("phone") String phone);

    /**
     * 主键查询
     */
    MiddleUserInfo selectPrimary(@Param("userId") String userId);

    /**
     * 根据用户ID查询用户角色
     */
    List<MiddleRoleVO> getRoleList(@Param("userId") String userId);

    List<MiddleRoleVO> getSuperAdmin();

    /**
     * 查询用户列表
     */
    List<MiddleUserInfo> queryList(MiddleUserListParam param);

    /**
     * 新增用户
     */
    void insertOne(YtPlatformUser user);

    /**
     * 修改用户
     */
    void updateById(YtPlatformUser user);

    /**
     * 新增用户角色
     */
    void addUserRoleList(@Param("userId")String userId, @Param("roleIdList") List<Integer> roleIdList,@Param("operatorId")String operatorId);

    /**
     * 根据用户ID删除用户角色
     */
    void deleteByUserId(@Param("userId")String userId);

    /**
     * 根据用户ID 查询用户
     */
    List<YtMiddleUser> getByIds(@Param("userIds") List<String> userIds);
}
