package com.jshoperx.action.backstage.authority; import com.jshoperx.action.backstage.base.BaseTAction; import com.jshoperx.entity.FunctionT; import com.jshoperx.entity.RoleFunctionM; import com.jshoperx.entity.RoleM; import com.jshoperx.entity.UserRoleM; import com.jshoperx.service.FunctionTService; import com.jshoperx.service.RoleFunctionMService; import com.jshoperx.service.RoleMService; import com.jshoperx.service.UserRoleMService; import org.apache.commons.lang3.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @Namespace("") @ParentPackage("jshoperx") @Controller("userRoleMAction") public class UserRoleMAction extends BaseTAction { private static final long serialVersionUID = 1L; @Resource private UserRoleMService userRoleMService; @Resource private FunctionTService functionMService; @Resource private RoleFunctionMService roleFunctionMService; @Resource private RoleMService roleMService; private String userid; private String roleid; private UserRoleM urm=new UserRoleM(); private RoleM bean=new RoleM(); private boolean sucflag; public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public boolean isSucflag() { return sucflag; } public void setSucflag(boolean sucflag) { this.sucflag = sucflag; } public String getRoleid() { return roleid; } public void setRoleid(String roleid) { this.roleid = roleid; } public UserRoleM getUrm() { return urm; } public void setUrm(UserRoleM urm) { this.urm = urm; } public RoleM getBean() { return bean; } public void setBean(RoleM bean) { this.bean = bean; } /** * 清理错误 */ @Override public void validate() { this.clearErrorsAndMessages(); } /** * 增加用户的角色 * @return */ @Action(value = "addUserRoleM", results = { @Result(name = "json",type="json") }) public String addUserRoleM(){ if(StringUtils.isNotBlank(this.getUserid())){ UserRoleM urm=new UserRoleM(); urm.setId(this.getUserid()); urm.setRoleid(this.getRoleid()); urm.setUserid(this.getUserid()); this.userRoleMService.saveOrUpdate(urm); this.setSucflag(true); return "json"; } this.setSucflag(false); return "json"; } /** * 根据用户id获取角色列表,用于查看用户角色 * @return */ @Action(value = "findUserRoleMByuserid", results = { @Result(name = "json",type="json") }) public String findUserRoleMByuserid(){ if(StringUtils.isNotBlank(this.getUserid())){ Criterion criterion=Restrictions.eq("userid", this.getUserid()); Order order=Order.asc("userid"); List<UserRoleM>list=this.userRoleMService.findByCriteria(UserRoleM.class, criterion,order); if(!list.isEmpty()){ urm=list.get(0); Criterion criterion2=Restrictions.eq("roleid", urm.getRoleid()); Order order2=Order.asc("roleid"); List<RoleM>uList=this.roleMService.findByCriteria(RoleM.class, criterion2,order2); if(!uList.isEmpty()){ bean=uList.get(0); this.setSucflag(true); return "json"; } } this.setSucflag(false); return "json"; } this.setSucflag(false); return "json"; } /** * 获取用户可操作的权限 * @param userid * @return */ public List<FunctionT> findUserRoleFunctionList(String userid){ Criterion criterion=Restrictions.eq("userid", this.getUserid()); Order order=Order.asc("userid"); List<UserRoleM>umlist=this.userRoleMService.findByCriteria(UserRoleM.class, criterion,order); Criterion criterion2=Restrictions.eq("roleid", urm.getRoleid()); Order order2=Order.asc("roleid"); List<RoleFunctionM>list=this.roleFunctionMService.findByCriteria(RoleFunctionM.class, criterion2,order2); List<FunctionT>userfunctionlist=new ArrayList<FunctionT>(); for(Iterator<RoleFunctionM> it=list.iterator();it.hasNext();){ FunctionT fm=new FunctionT(); RoleFunctionM rfm=it.next(); Criterion criterion3=Restrictions.eq("functionid", rfm.getFunctionid()); Order order3=Order.asc("functionid"); List<FunctionT>fmlist=this.functionMService.findByCriteria(FunctionT.class, criterion3,order3); if(fmlist!=null&&fmlist.size()>0){ fm=fmlist.get(0); } userfunctionlist.add(fm); } return userfunctionlist; } }