UserLineServiceImpl.java 4 KB
package com.bsth.service.sys.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.catalina.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.bsth.common.ResponseCode;
import com.bsth.entity.Line;
import com.bsth.entity.search.CustomerSpecs;
import com.bsth.entity.sys.Role;
import com.bsth.entity.sys.SysUser;
import com.bsth.entity.sys.UserLine;
import com.bsth.repository.LineRepository;
import com.bsth.repository.sys.RoleRepository;
import com.bsth.repository.sys.SysUserRepository;
import com.bsth.repository.sys.UserLineRepository;
import com.bsth.service.impl.BaseServiceImpl;
import com.bsth.service.sys.UserLineService;


/**
 * Created by xu on 16/5/31.
 */
@Service
public class UserLineServiceImpl extends BaseServiceImpl<UserLine, Integer> implements UserLineService {
	
	@Autowired
	private UserLineRepository repository;
	
	@Autowired
	private SysUserRepository userRepository;
	
	@Autowired
	private RoleRepository roleRepository;
	
	@Autowired
	private LineRepository lineRepository;
	
	Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public List<Map<String, Object>> userRoleTree(Map<String, Object> map) {
		
		CustomerSpecs spec  =  new CustomerSpecs<Role>(map);
		 
		List<Role> roleLine = roleRepository.findAll(spec);
		
		int size = roleLine.size();
		
		List<Map<String, Object>> list = new ArrayList<>();
		
		if(size>0){
			
			for(int i = 0; i <size;i++) {
				
				Map<String, Object> tempM = new HashMap<String, Object>();
				int roleId = roleLine.get(i).getId();
				String roleName = roleLine.get(i).getRoleName();
				tempM.put("name", roleName);
				tempM.put("text", roleName);
				tempM.put("icon", "fa fa-database");
				tempM.put("pId",null);
				tempM.put("id", 100+roleId);
				tempM.put("groupType", "1");
				tempM.put("enable", true);
				Set<SysUser> user = roleLine.get(i).getUsers();
				Iterator<SysUser> it =  user.iterator();
				List<Map<String, Object>> roleChildren = new ArrayList<>();
				while(it.hasNext()) {
					Map<String, Object> userMap = new HashMap<String, Object>();
					SysUser tempU = it.next();
					String userName = tempU.getUserName();
					int userId = tempU.getId();
					userMap.put("name", userName);
					userMap.put("text", userName);
					userMap.put("icon", "fa fa-user");
					userMap.put("pId",100+roleId);
					userMap.put("id", 1000+userId);
					userMap.put("userId", userId);
					userMap.put("groupType", "2");
					userMap.put("enable", true);
					roleChildren.add(userMap);
					
				}
				tempM.put("children", roleChildren);
				list.add(tempM);
			}
			
		}
		
		return list;
	}

	@Override
	@Transactional
	public Map<String, Object> setLineCasts(Integer userId, String mIds) {
		Map<String, Object> map = new HashMap<>();
		
		try {
			
			repository.del(userId);
			
			SysUser user = userRepository.findById(userId).get();
			
			List<Integer> idList = new ArrayList<>();
			String[] array = mIds.split(",");
			for (String id : array) {
				if (null == id || id.trim().equals(""))
					continue;
				idList.add(Integer.parseInt(id));
			}
			
			int size  = idList.size();
			
			if(size>0) {
				
				for(int i = 0 ; i<size;i++) {
					
					UserLine entity = new UserLine();
					
					int lineId = idList.get(i);
					
					Line line =  lineRepository.findById(lineId).get();
					
					entity.setUser(user);
					
					entity.setLine(line);
					
					repository.save(entity);
				}
				
			}
			
			map.put("status", ResponseCode.SUCCESS);
			
		} catch (Exception e) {
			
			logger.error("", e);
			map.put("status", ResponseCode.ERROR);
		}
		
		return map;
	}
}