package com.zym.pss.sysadmin.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.zym.pss.multiTenant.po.Tenant;
import com.zym.pss.multiTenant.service.SubsciberService;
import com.zym.pss.multiTenant.vo.SubsciberVo;
import com.zym.pss.sysadmin.po.Function;
import com.zym.pss.sysadmin.po.Role;
import com.zym.pss.sysadmin.service.FunctionService;
import com.zym.pss.sysadmin.service.RoleFuncsService;
import com.zym.pss.sysadmin.service.RoleService;
import com.zym.pss.sysadmin.vo.FunctionVO;
import com.zym.pss.sysadmin.vo.RoleFuncsVo;
import com.zym.pss.core.controller.BaseController;
import com.zym.pss.core.pargination.Page;
@Controller
@RequestMapping("/sysadmin/role")
public class RoleController extends BaseController {
@Resource
RoleService roleService ;
@Resource
RoleFuncsService roleFuncsService ; //角色权限Service
@Resource
FunctionService functionService ; //系统功能Service
@Resource
SubsciberService subsciberService ; //服务订购Service
//存放列表信息
private List<Role> dataList ;
/**
* 跳转到列表页面
*/
@RequestMapping("/list.action")
public String list(Model model,HttpSession session ){
//获取当前租户
Tenant tenant = (Tenant) session.getAttribute("CUR_TENANT");
Map<String,Object> paraMap = new HashMap<String,Object>();
paraMap.put("tenantId", tenant.getId());
dataList = roleService.find(paraMap);
model.addAttribute("dataList",dataList);
return "/sysadmin/role/jRoleList.jsp" ;
}
@RequestMapping("/toview.action")
public String toview(String id , Model model){
Role obj = this.roleService.get(id);
model.addAttribute("obj",obj);
return "/sysadmin/role/jRoleView.jsp";
}
/**
* 跳到添加页面
*/
@RequestMapping("/tocreate.action")
public String tocreate(){
return "/sysadmin/role/jRoleCreate.jsp";
}
/**
* 添加
*/
@RequestMapping("/insert.action")
public String create(Role Role){
this.roleService.insert(Role);
return "redirect:/sysadmin/role/list.action";
}
/**
* 跳到更新页面
*/
@RequestMapping("/toupdate.action")
public String toupdate(String id,Model model){
Role obj = this.roleService.get(id);
model.addAttribute("obj",obj);
return "/sysadmin/role/jRoleUpdate.jsp";
}
/**
* 更新
*/
@RequestMapping("/update.action")
public String update(Role Role){
this.roleService.update(Role);
return "redirect:/sysadmin/role/list.action";
}
/**
* 删除
*/
@RequestMapping("/deleteById.action")
public String deleteById(String id){
this.roleService.deleteById(id);
return "redirect:/sysadmin/role/list.action";
}
/**
* 批量删除
*/
@RequestMapping("/delete.action")
public String delete(@RequestParam("id")String[] ids){
this.roleService.delete(ids);
return "redirect:/sysadmin/role/list.action";
}
//--------------------------------------------------------------角色与权限的分配----------------------------------------------------
/**
* 跳转到角色权限分配页面
* @param model
* @param pageNo 功能分页参数
* @param id 角色ID
* @return`
*/
@RequestMapping(value="/{roleId}/torolefuncs.action",method=RequestMethod.GET)
public String assignPermission(Model model ,Integer pageNo,@PathVariable("roleId")String roleId){
//准备角色权限集合
Map<String,Object> paraMap = new HashMap<String,Object>();
paraMap.put("roleId", roleId);
List<RoleFuncsVo> roleFuncsList = this.roleService.findFuncs(paraMap);
model.addAttribute("roleId", roleId);
model.addAttribute("roleFuncsList", roleFuncsList);
//准备系统功能集合
Page<Function> page = new Page<Function>();
page.setPageSize(5);
if(pageNo != null){
page.setPageNo(pageNo);
}
//获取角色的租户
String tenantId = roleService.get(roleId).getTenantId();
Map<String,Object> paraMap2 = new HashMap<String,Object>();
paraMap2.put("tenantId", tenantId);
List<SubsciberVo> subsciberVoList = subsciberService.findSubsciberVoList(paraMap2);
List<FunctionVO> functionList = new ArrayList<FunctionVO>();
for(SubsciberVo sv :subsciberVoList){
functionList.add(sv.getFunction());
}
model.addAttribute("functionList", functionList);
return "/sysadmin/role/jRoleFuncs.jsp";
}
}