/**
 * 版权所有 ©2020 莱欧有限公司
 * 工程名：base02
 * 文件名：RoleService.java
 * 创建日期：2020年12月23日 下午3:49:24
 * 作者：mt.W
 */
package com.lion.service;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.lion.dao.AuthorityDao;
import com.lion.dao.LogDao;
import com.lion.dao.RoleDao;
import com.lion.entity.LoginUserInfo;
import com.lion.util.CheckUtil;
import com.lion.util.TokenUtil;
import com.lion.util.Util;

import jodd.util.StringUtil;

/**
 * 类描述
 * @author mt.W
 * @since 2020年12月23日
 */
@Service
public class RoleService {
	@Autowired
	private RoleDao roleDao;
	@Autowired
	private LogDao logDao;
	@Autowired
	private AuthorityDao authorityDao;
	/**
	 * 方法描述 全查角色
	 * @author chengpengfei
	 * @since 2019年2月28日
	 * @param req
	 * @return	
	 */
	public Map<String,Object> getUser(HttpServletRequest req,HttpSession session){
		List<Map<String,Object>> list=roleDao.getRole();
		return Util.responseMap("true",list);
	}
	/**
	 * 方法描述 删除角色
	 * @author chengpengfei
	 * @since 2019年2月28日
	 * @param req
	 * @param id
	 * @return	
	 */
	public String deleteRole(HttpServletRequest req,String roleId,HttpSession session){
		List<Map<String,Object>> list=roleDao.checkRoleid(roleId);
		if(list.size()>0){
				return Util.responseString("false","当前角色已被使用,禁止删除");
		}else{
			int count=roleDao.deleteRole(roleId);
			if(count>0){//删除成功
				authorityDao.deleteRole_resource(roleId+"");
				return Util.responseString("true","操作成功");
			}
				return Util.responseString("false","操作失败");
		}
	}
	/**
	 * 方法描述 添加修改用户
	 * @author ASUS
	 * @since 2019年2月28日
	 * @param req
	 * @param name
	 * @return	
	 */
	public String addAndUpdateRole(HttpServletRequest req,HttpSession session,String name,String content,String id){
		LoginUserInfo s=TokenUtil.getUserInfo(req);
		if(CheckUtil.checkStrIsName(name)){//判断名称
			 return Util.responseString("false","角色名不能存在特殊符号");
		 }
		List<Map<String,Object>> check = roleDao.checkRoleName(name, id);
		if(check.size()>0){
			return Util.responseString("false", "角色名已存在");
		}
		int count=0;
		String logType="角色添加";
		if(StringUtil.isEmpty(id)){
			count=roleDao.addRole(name,content,s.getUserId());
		}else{
			logType="角色修改";
			count=roleDao.updateRole(name, content, id);
		}
		if(count>0){
			logDao.saveLog("操作人员:"+s.getUserAccount(),logType, s.getUserId());
			return Util.responseString("true","操作成功");
		}
			return Util.responseString("false","操作失败");
	}
}
