package com.hnshituo.core.auth.service.impl;

import com.hnshituo.basic.service.impl.BaseServiceImpl;
import com.hnshituo.basic.spring.remoting.annotation.RemoteService;
import com.hnshituo.core.auth.service.UsersGroupService;
import com.hnshituo.core.auth.vo.UsersGroup;

@RemoteService(path = "UsersGroup")
public class UsersGroupServiceImpl extends BaseServiceImpl<UsersGroup, Object> implements UsersGroupService {

//	private Logger logger = Logger.getLogger(UsersGroupServiceImpl.class);
//
//	// 根据登录用户的id来返回该用户所在的所有分组的所有成员
//	public List<User> doQueryAll() throws Exception {
//		String userId = (String) this.getSession().getAttribute(HomeService.SESSION_USER_ID);
//		UsersGroup group1 = new UsersGroup();
//		group1.setUserId(userId);
//		List<UsersGroup> list1 = this.getMapper(UsersGroupMapper.class).find(group1, 0, 0);
//		List<String> str = new ArrayList<String>();
//		for (int i = 0; i < list1.size(); i++) {
//			String groupId = list1.get(i).getGroupId();
//			UsersGroup group2 = new UsersGroup();
//			group2.setGroupId(groupId);
//			List<UsersGroup> list2 = this.getMapper(UsersGroupMapper.class).find(group2, 0, 0);
//			for (UsersGroup g : list2) {
//				String groupUserId = g.getUserId();
//				str.add(groupUserId);
//			}
//		}
//		HashSet<String> hs = new HashSet<String>(str);
//		str.clear();
//		str.addAll(hs);
//		str.remove(userId);
//		List<User> list3 = new ArrayList<User>();
//
//		for (int k = 0; k < str.size(); k++) {
//			String userID = str.get(k);
//			list3.add(this.getBean(UserService.class).findById(userID));
//		}
//		return list3;
//	}
//
//	// 为分组新增成员
//	public ResultModel doAdd(String userId, String userName, String groupId)
//			throws Exception {
//		ResultModel rm = new ResultModel();
//		UsersGroup usersGroup = new UsersGroup();
//		String id = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) + PbMethod.RandomCreate(3);
//		usersGroup.setId(id);
//
//		UserGroup userGroup = this.getBean(UserGroupService.class).findById(groupId);
//		usersGroup.setGroupId(groupId);
//		usersGroup.setGroupName(userGroup.getGroupName());
//		usersGroup.setUserId(userId);
//		usersGroup.setUserName(userName);
//		try {
//			this.getMapper(UsersGroupMapper.class).insert(usersGroup);
//			rm.setState("200");
//		} catch (Exception e) {
//			logger.error("insert with a exception!");
//			rm.setState("500");
//		}
//		return rm;
//	}
//
//	// 删除指定组的指定成员
//	public ResultModel doDelete(String userId, String groupId) {
//		ResultModel rm = new ResultModel();
//		UsersGroup usersGroup = new UsersGroup();
//		usersGroup.setGroupId(groupId);
//		usersGroup.setUserId(userId);
//		try {
//			this.getMapper(UsersGroupMapper.class).delete(usersGroup);
//			rm.setState("200");
//		} catch (Exception e) {
//			logger.error("delete with a exception!");
//			rm.setState("500");
//		}
//		return rm;
//	}
//	
//	//============================================web=====================================
//	//新增成员
//	public ResultModel doAddWeb(UsersGroupSum usersSum)throws Exception {
//		ResultModel rm = new ResultModel();
//		List<UsersGroup> usersGroupList = usersSum.getUsersList();
//		
//		try {
//			if(usersGroupList.size() > 0){
//				this.getMapper(UsersGroupMapper.class).doDelete(usersGroupList.get(0).getGroupId());
//				int i=0;
//				for(UsersGroup ug : usersGroupList){
//					i++;
//					String user = (String) this.getSession().getAttribute(HomeService.SESSION_USER_NAME);
//					
//					ug.setCreatTime(new Date());
//					ug.setCreatMan(user);
//					ug.setId(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date())+String.format("%03d", i));
//				
//					this.getMapper(UsersGroupMapper.class).insert(ug);
//				}
//				rm.setState("200");
//			}
//		} catch (Exception e) {
//			logger.error("insert with a exception!");
//			rm.setState("500");
//		}
//		return rm;
//	}
//	
//	//根据员工ID查询所加入的所有分组
//	public ResultModel doQueryListAll(CommonPage<UsersGroup> sum){
//		ResultModel rm = new ResultModel();
//		String userId = sum.getMemo1();
//		int pageIndex = sum.getPageIndex();
//		int pageSize = sum.getPageSize();
//		int count = 0 ;
//		UsersGroup group = new UsersGroup();
//		group.setUserId(userId);
//		List<UsersGroup> list = new ArrayList<UsersGroup>();
//		List<UserGroup> groupList = new ArrayList<UserGroup>();
//		PageModel<UserGroup> pm=new PageModel<UserGroup>(pageIndex, pageSize);
//		try{
//			list = this.getMapper(UsersGroupMapper.class).find(group, (pageIndex-1)*pageSize, pageSize);
//			UserGroup g = new UserGroup();
//			//g.setStatus("0");
//			count = this.getMapper(UserGroupMapper.class).countWithCondition(g, "group_id in (select group_id from CORE_AUTH_USERS_GROUP where user_id ='"+userId+"' )");
//			for(UsersGroup usersGroup : list){
//				UserGroup userGroup = this.getMapper(UserGroupMapper.class).findById(usersGroup.getGroupId());
//				if(userGroup != null){
//					groupList.add(userGroup);
//				}
//			}
//			pm.setRows(groupList);
//			pm.setTotal(count);
//			rm.setData(pm);
//			rm.setState("200");
//		}catch(Exception e){
//			rm.setState("500");
//		}
//		return rm;
//	}
//	
//	//查询分组下的所有成员
//	public ResultModel doQueryAllMember(CommonPage<UsersGroup> sum){
//		ResultModel rm = new ResultModel();
//		String groupNo = sum.getMemo1();
//		int pageIndex = sum.getPageIndex();
//		int pageSize = sum.getPageSize();
//		int count = 0;
//		UsersGroup usersGroup = new UsersGroup();
//		List<UsersGroup> list = new ArrayList<UsersGroup>();
//		PageModel<UsersGroup> pm=new PageModel<UsersGroup>(pageIndex, pageSize);
//		if(null != groupNo){
//			usersGroup.setGroupId(groupNo);
//		}else{
//			rm.setState("500");
//			return rm;
//		}
//		try{
//			list = this.getMapper(UsersGroupMapper.class).find(usersGroup, (pageIndex-1)*pageSize, pageSize);
//			if(list.size() > 0){
//				for(UsersGroup uu : list){
//					User u=this.getMapper(UserMapper.class).findById(uu.getUserId());
//					uu.setDeptId(u.getDept_id());
//					uu.setDeptName(u.getDept_name());
//				}
//			}
//			count = this.getMapper(UsersGroupMapper.class).count(usersGroup);
//			pm.setRows(list);
//			pm.setTotal(count);
//			rm.setData(pm);
//			rm.setState("200");
//		}catch(Exception e){
//			rm.setState("500");
//		}
//		return rm;
//	}
//	
//	//删除群组成员
//	public ResultModel doDeleteMember(CommonPage<UsersGroup> sum){
//		ResultModel rm = new ResultModel();
//		String groupId = sum.getMemo1();
//		String userId= sum.getMemo2();
//		UsersGroup usersGroup = new UsersGroup();
//		if((null == groupId ||groupId.isEmpty()) && (null == userId || userId.isEmpty())){
//			rm.setMsgInfo("输入数据为空");
//			rm.setState("500");
//		}else{
//			usersGroup.setGroupId(groupId);
//			usersGroup.setUserId(userId);
//		}
//		try{
//			this.getMapper(UsersGroupMapper.class).doDeleteByGroupIdAndUserId(groupId, userId);
//			rm.setState("200");
//		}catch(Exception e){
//			rm.setMsgInfo("删除失败");
//			rm.setState("500");
//		}
//		return rm;
//	}
//	
//	// 根据登录用户的id来返回该用户所在的所有分组的所有成员
//	public ResultModel doQueryAllWeb(CommonPage<User> sum) throws Exception {
//		ResultModel rm = new ResultModel();
//		String param = sum.getMemo1();
//		int pageIndex = sum.getPageIndex();
//		int pageSize = sum.getPageSize();
//		String userId = (String) this.getSession().getAttribute(HomeService.SESSION_USER_ID);
//		PageModel<User> pm = new PageModel<User>(pageIndex, pageSize);
//		try{
//			UsersGroup group = new UsersGroup();
//			group.setUserId(userId);
//			List<UsersGroup> usersGroupList = this.getMapper(UsersGroupMapper.class).find(group, 0, 0);
//			List<String> str = new ArrayList<String>();
//			for (int i = 0; i < usersGroupList.size(); i++) {
//				String groupId = usersGroupList.get(i).getGroupId();
//				UsersGroup groups = new UsersGroup();
//				groups.setGroupId(groupId);
//				List<UsersGroup> usersGroupLists = this.getMapper(UsersGroupMapper.class).find(groups, 0, 0);
//				for (UsersGroup g : usersGroupLists) {
//					String groupUserId = g.getUserId();
//					str.add(groupUserId);
//				}
//			}
//			//去除相同的人
//			HashSet<String> hs = new HashSet<String>(str);
//			str.clear();
//			str.addAll(hs);
//			str.remove(userId);
//			List<User> userList = new ArrayList<User>();
//			List<User> userLists = new ArrayList<User>();
//			List<User> returnList = new ArrayList<User>();
//
//			for (int k = 0; k < str.size(); k++) {
//				String userID = str.get(k);
//				userList.add(this.getBean(UserService.class).findById(userID));
//			}
//			if(userList.size() > 0){
//				if(param != null && !param.isEmpty()){
//					for(User u :userList){
//						if(u.getDept_name().contains(param) || u.getUsername().contains(param)){
//							userLists.add(u);
//						}
//					}
//				}else{
//					for(User u :userList){
//						userLists.add(u);
//					}
//				}
//			}
//			int count = userLists.size();
//			returnList = paging(userLists,pageIndex,pageSize);
//			pm.setRows(returnList);
//			pm.setTotal(count);
//			rm.setData(pm);
//			rm.setState("200");
//		}catch(Exception e){
//			rm.setState("500");
//		}
//		return rm;
//	}
//	
//	//分页
//	private <T extends Object> List<T> paging(List<T> list,int pageIndex,int pageSize){
//		List<T> returnList = new ArrayList<T>();
//		int total = 0;
//		if(list.size() > 0){
//			if(list.size() > (pageIndex-1)*pageSize && list.size() <= pageIndex * pageSize){
//				total = list.size();
//			}else if(list.size() > pageIndex * pageSize){
//				total = pageIndex * pageSize;
//			}
//			for(int i = (pageIndex-1)*pageSize;i < total;i++){
//				returnList.add(list.get(i));
//			}
//		}
//		return returnList;
//	}
	
}
