package com.goafanti.user.service;

import java.util.List;
import java.util.Map;

import com.goafanti.common.bo.Result;
import com.goafanti.common.model.OrgHumanResource;
import com.goafanti.common.model.OrganizationIdentity;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.portal.bo.OrgSubscriberListBo;
import com.goafanti.user.bo.AuditorOrgIdentityDetailBo;
import com.goafanti.user.bo.OrgBasicInfoBo;
import com.goafanti.user.bo.OrgIdentityBo;
import com.goafanti.user.bo.OrgIdentityDetailAdmin;
import com.goafanti.user.bo.OrgIdentityDetailBo;
import com.goafanti.user.bo.OrgUnitNames;
import com.goafanti.user.bo.OrganizationIndentityUserBo;

public interface OrganizationIdentityService {

	OrganizationIdentity insert(OrganizationIdentity organizationIdentity);

	OrganizationIdentity selectOrgIdentityByUserId(String userId);

	int updateByPrimaryKeySelective(OrganizationIdentity organizationIdentity);

	OrgIdentityBo selectOrgIdentityBoByUserId(String uid);

	List<OrgUnitNames> selectAllOrgIndentity();

	int updateByPrimaryKey(OrganizationIdentity org);

	Map<String, String> selectContactsByUserId(String uid);

	int saveOrgIndentityProcess(Result res, OrganizationIdentity o, String uid);

	int updateOrgDetail(OrganizationIdentity orgIdentity, String saveSign, Integer level);

	OrgBasicInfoBo selectBasicInfo(String uid, int year);

	int saveBasicInfo(OrganizationIdentity oi, OrgHumanResource ohr);

	OrgIdentityDetailBo selectOrgIdentityDetailByUserId(String uid);

	AuditorOrgIdentityDetailBo selectAuditorOrgIdentityDetailByUserId(String uid);

	int updateOrgDetailByAuditAdmin(OrganizationIdentity oi, String aid, String mid, Integer level);

	Pagination<OrgSubscriberListBo> listSubscriber(String url,String name, Integer level, String field, Integer province, Integer city,
			Integer area, Integer pNo, Integer pSize);

	OrgIdentityDetailAdmin selectOrgIdentityDetailByUserIdAdmin(String uid);

	void save(OrgIdentityBo orgIdentityBo);
	
	OrganizationIndentityUserBo selectOrgIdentityUserBoByUserId(String userId);
}
