package com.fs.qywx.mapper;

import java.util.List;
import com.fs.qywx.domain.QywxUser;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

/**
 * 企业微信三方应用授权人员Mapper接口
 *
 * @author fs
 * @date 2023-07-24
 */
public interface QywxUserMapper
{
    /**
     * 查询企业微信三方应用授权人员
     *
     * @param id 企业微信三方应用授权人员主键
     * @return 企业微信三方应用授权人员
     */
    public QywxUser selectQywxUserById(Integer id);

    /**
     * 查询企业微信三方应用授权人员列表
     *
     * @param qywxUser 企业微信三方应用授权人员
     * @return 企业微信三方应用授权人员集合
     */
    public List<QywxUser> selectQywxUserList(QywxUser qywxUser);

    /**
     * 新增企业微信三方应用授权人员
     *
     * @param qywxUser 企业微信三方应用授权人员
     * @return 结果
     */
    public int insertQywxUser(QywxUser qywxUser);

    /**
     * 修改企业微信三方应用授权人员
     *
     * @param qywxUser 企业微信三方应用授权人员
     * @return 结果
     */
    public int updateQywxUser(QywxUser qywxUser);

    /**
     * 删除企业微信三方应用授权人员
     *
     * @param id 企业微信三方应用授权人员主键
     * @return 结果
     */
    public int deleteQywxUserById(Integer id);

    /**
     * 批量删除企业微信三方应用授权人员
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQywxUserByIds(Integer[] ids);
    @Update("update qywx_user set status=-1 where corp_id = #{corp_id} and status=1")
    Integer deleteUserByCorpId(String corpId);

    @Delete("delete from qywx_user where corp_id=#{authCorpId} and user_id=#{userId}")
    int deleteQywxUserByCorpIdAndCorpId(@Param("authCorpId") String authCorpId,@Param("userId") String userId);

    @Update("update qywx_user set company_id=#{companyId} and  company_user_id=#{companyUserId} where corp_id=#{corpId}")
    int updateQywxUserCompanyIdAndUserIdByCorpId(@Param("companyId") Long companyId,@Param("companyUserId") Long companyUserId,@Param("corpId") String corpId);

    @Update("update qywx_user set status=#{status} where corp_id=#{corpId} and user_id=#{userId}")
    int updateQywxUserByUserIdAndCorpId(QywxUser q);
}
