package com.gic.haoban.manage.service.service;

import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;

import java.util.List;

public interface WxEnterpriseService {
	
	String add(WxEnterpriseDTO wxDTO);

	WxEnterpriseDTO selectById(String wxEnterpriseId);
	
	/**
	 * 
	* @Title: getQwInfo
	* @Description: 获取商户企微信息
	* @author xugh
	* @param wxEnterpriseId
	* @return
	* @throws
	 */
	WxEnterpriseQwDTO getQwInfo(String wxEnterpriseId);
	

	/**
	 * 通过微信企业ID查询好办企业ID
	 * @param corpId
	 * @return
     */
	TabHaobanWxEnterprise getEnterpriseBycorpId(String corpId);

	void update(WxEnterpriseDTO enterpriseDTO);

	int unbind(String wxEnterpriseId);

	/**
	 * 所有企业微信
	 *
	 * @return
	 */
	List<TabHaobanWxEnterprise> listAll();


	/**
	 * 列出所有企业(已关联gic企业)
	 *
	 * @return {@link List }<{@link WxEnterpriseDTO }>
	 * @author mozhu
	 * @date 2022-08-08 13:38:31
	 */
	List<WxEnterpriseDTO> listAllEnterprise();

	/**
	 * 更新是否开启自动激活
	 *
	 * @param autoActiveFlag
	 * @param wxEnterpriseId wx企业标识
	 * @return int
	 * @author mozhu
	 * @date 2022-08-03 17:28:01
	 */
	int updateAutoActiveFlagById(Integer autoActiveFlag, String wxEnterpriseId);

	void updateWxSecurityType(String wxEnterpriseId) ;
	
	public int calcSecretType(String wxEnterpriseId) ;
	
    void stopHaoban(String enterpriseId);

	/**
	 * 查询企业下关联的微信企业id
	 * @param enterpriseId
	 * @return
	 */
	List<String> queryWxEnterpriseWithEnterpriseId(String enterpriseId);
	/**
	 * 根据appidList查询appidList
	 */
	List<String> getWxAppidListByList(List<String> wxAppidList);

	/**
	 * 根据好办app类型所有企业微信
	 *
	 * @return
	 */
	List<TabHaobanWxEnterprise> listAllByWxSecurityType(Integer wxSecurityType);

	/**
	 * 删除
	 * @param wxEnterpriseId
	 */
	void deleteByWxEnterpriseId(String wxEnterpriseId,String wxaAppid) ;

	/**
	 * 根据是否配置回调地址查询所有企业微信
	 * @return
	 */
	List<String> listWxEnterpriseByCallbackFlag(Integer callbackFlag);

}
