package com.fs.qw.mapper;

import com.fs.qw.domain.QwCompany;
import com.fs.qw.vo.QwOptionsVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 企微主体Mapper接口
 *
 * @author fs
 * @date 2024-10-09
 */
public interface QwCompanyMapper
{
    /**
     * 查询企微主体
     *
     * @param id 企微主体主键
     * @return 企微主体
     */
    public QwCompany selectQwCompanyById(Long id);

    /**
     * 查询企微主体列表
     *
     * @param qwCompany 企微主体
     * @return 企微主体集合
     */
    public List<QwCompany> selectQwCompanyList(QwCompany qwCompany);

    /**
     * 新增企微主体
     *
     * @param qwCompany 企微主体
     * @return 结果
     */
    public int insertQwCompany(QwCompany qwCompany);

    /**
     * 修改企微主体
     *
     * @param qwCompany 企微主体
     * @return 结果
     */
    public int updateQwCompany(QwCompany qwCompany);

    /**
     * 删除企微主体
     *
     * @param id 企微主体主键
     * @return 结果
     */
    public int deleteQwCompanyById(Long id);

    /**
     * 批量删除企微主体
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQwCompanyByIds(Long[] ids);
    @Select("SELECT corp_id from qw_company where FIND_IN_SET(#{companyId}, company_ids)")
    List<String> selectQwCompanyCorpIdListByCompanyId(Long companyId);

    @Select("SELECT * from qw_company where corp_id=#{corpId} limit 1")
    QwCompany selectQwCompanyByCorpId(String corpId);
    @Select("SELECT * from qw_company ")
    List<QwOptionsVO> selectQwCompanyListOptionsVO();

    @Select("select count(1) from qw_company where mini_app_id = #{appid} and mini_app_param is null")
    int countNotParamByMiniAppId(@Param("appid") String appid);

    @Update("update qw_company set mini_app_param = #{json} where mini_app_id = #{appid}")
    void updateParamByMiniAppId(@Param("appid") String appid, @Param("json") String json);
}
