package com.goafanti.user.service;

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

import com.goafanti.common.model.User;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.user.bo.OrgListBo;
import com.goafanti.user.bo.OrgUnitNames;
import com.goafanti.user.bo.StarAndExpertListBo;
import com.goafanti.user.bo.StarListBo;
import com.goafanti.user.bo.UserBasicInfo;
import com.goafanti.user.bo.UserDownLoadBo;
import com.goafanti.user.bo.UserNames;
import com.goafanti.user.bo.UserPageHomeBo;
import com.goafanti.user.bo.UserPartnerDetailBo;

public interface UserService {

	User selectByPrimaryKey(String userId);

	String selectNumberByPrimaryKey(String userId);

	int updateByPrimaryKeySelective(User u);

	User insert(User user);

	User selectByMobieAndType(String mobile, Integer type);

	User insertRegister(User user, String unitName, String contacts);


	UserDownLoadBo selectUserDownLoadBoByUserId(String userId);

	Pagination<OrgListBo> selectUserByAid(Integer number, String mobile, Integer auditStatus, String auditName,
			String email, String adminId, String startCreateTime, String endCreateTime, Integer type, Integer pNo,
			Integer pSize);

	List<OrgUnitNames> selectDemandUnitNames();

	List<UserNames> selectDemandUserNames();



	String findUserNameByNameAndMobile(String name, String mobile);

	String findOrgNameByNameAndMobile(String name, String mobile);

	UserPartnerDetailBo findUserPartnerDetail(String uid);

	Object findOrgPartnerDetail(String uid);

	Pagination<StarListBo> listStar(Integer number, String engagedField, String username, String professionalTitle,
			String workUnit, Integer pNo, Integer pSize);

	Pagination<StarAndExpertListBo> listStarAndExpert(Integer number, String engagedField, String username,
			String professionalTitle, String workUnit, Integer pNo, Integer pSize);

	List<UserPartnerDetailBo> findUserPartner();

	UserBasicInfo selectBaseInfo();
	
	User selectByNumber(String easemobName);
	
	List<User> selectUserByRoleName(String roleName1, String roleName2);
	
	
}
