package com.uas.platform.b2b.service;

import com.uas.platform.b2b.model.*;
import com.uas.platform.core.model.PageInfo;
import com.uas.search.b2b.model.SPage;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Set;

/**
 * @since 2016-9-26 21:18:35 账户中心统一管理；部分功能保留，但转移到v2目录
 * @see com.uas.platform.b2b.v2.service.UserService
 * 
 */
@Deprecated
public interface UserService {

	/**
	 * 保存user信息
	 * 
	 * @param user
	 * @return
	 */
	User save(User user);

	/**
	 * 删除用户信息
	 * 
	 * @param uu
	 */
	void removeUser(Long uu);

	/**
	 * 按uu取用户信息
	 * 
	 * @param userUU
	 * @return
	 */
	User findUserByUserUU(Long userUU);

	/**
	 * 按企业及个人uu取用户信息
	 * 
	 * @param enUU
	 * @param userUU
	 * @return
	 */
	User findUserByEnUUAndUserUU(Long enUU, Long userUU);

	/**
	 * 按email取用户信息
	 * 
	 * @param userEmail
	 * @return
	 */
	User findUserByUserEmail(String userEmail);

	/**
	 * 按tel取用户信息
	 * 
	 * @param userTel
	 * @return
	 */
	User findUserByUserTel(String userTel);

	/**
	 * 查找所有用户资料
	 * 
	 * @return
	 */
	public List<User> findAll();

	/**
	 * 为用户分配客户(查询)
	 * 
	 * @param userUU
	 */
	public List<Vendor> findChooseVendor(Long userUU);

	/**
	 * 查询当前客户是否有客户分配，返回分配客户的UU号
	 * 
	 * @return
	 */
	public SearchFilter distribute();

	/**
	 * 当前登录用户，是否被分配当前客户权限
	 * @param custUU
	 * @return
	 */
	Boolean getDistribute(Long custUU);

	/**
	 * 分页查询用户信息
	 *
	 * @param pageInfo 分页信息
	 * @param keyword 关键词
	 * @return
	 */
	SPage<User> findByPageInfo(PageInfo pageInfo, String keyword);

	/**
	 * 同步用户信息到账户中心
	 *
	 * @param user
	 * @throws Exception
	 */
	void postToAccountCenter(User user) throws Exception ;
}
