RoleServiceImpl.java 2.01 KB
package com.bsth.service.sys.impl;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bsth.common.ResponseCode;
import com.bsth.entity.sys.Module;
import com.bsth.entity.sys.Role;
import com.bsth.repository.sys.ModuleRepository;
import com.bsth.repository.sys.RoleRepository;
import com.bsth.service.impl.BaseServiceImpl;
import com.bsth.service.sys.RoleService;

@Service
public class RoleServiceImpl extends BaseServiceImpl<Role, Integer> implements
		RoleService {

	Logger logger = LoggerFactory.getLogger(this.getClass());

	@Autowired
	RoleRepository roleRepository;

	@Autowired
	ModuleRepository moduleRepository;

	@Override
	public Map<String, Object> save(Role t) {
		if (t.getId() != null) {
			// 更新
			Map<String, Object> map = new HashMap<>();
			try {
				roleRepository.update(t.getCodeName(), t.getRoleName(),
						t.isEnable(), t.getDescriptions(), t.getId());
				map.put("status", ResponseCode.SUCCESS);
			} catch (Exception e) {
				map.put("status", ResponseCode.ERROR);
			}
			return map;
		}
		return super.save(t);
	}

	@Override
	public Map<String, Object> settRoleModules(Integer roleId, String mIds) {

		Map<String, Object> map = new HashMap<>();
		try {
			Role role = roleRepository.findOne(roleId);

			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));
			}

			Set<Module> mList = moduleRepository.findByIds(idList);
			role.setModules(mList);
			roleRepository.save(role);
			map.put("status", ResponseCode.SUCCESS);
		} catch (Exception e) {
			logger.error("", e);
			map.put("status", ResponseCode.ERROR);
		}
		return map;
	}
}