浏览代码

登录用户菜单获得及其他BUG

git-svn-id: https://192.168.57.71/svn/jsgkj@1039 931142cf-59ea-a443-aa0e-51397b428577
ld_zhouk 8 年之前
父节点
当前提交
ca885dd9ca

+ 8 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/mappers/CodeModelMapper.java

@@ -39,4 +39,12 @@ public interface CodeModelMapper extends BaseMapper<CodeModel> {
      * @return
      */
     List<CodeModelDto> selectAllByCond(CodeModelDto model);
+
+    /**
+     * ²éѯ¸¸Àà×Öµä
+     * 
+     * @param pcode
+     * @return
+     */
+    List<ComboBoxDto> selectByNoLeaf();
 }

+ 2 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/mappers/GroupModelMapper.java

@@ -18,4 +18,6 @@ public interface GroupModelMapper extends BaseMapper<GroupModel> {
     List<GroupModelDto> selectAllByCond(GroupModel model);
 
     List<ComboBoxDto> selectByCombo();
+
+    GroupModelDto selectByUser(String userId);
 }

+ 3 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/mappers/MenuModelMapper.java

@@ -3,6 +3,7 @@ package com.xt.js.gkaq.frame.mappers;
 import java.util.List;
 
 import com.xt.js.gkaq.common.BaseMapper;
+import com.xt.js.gkaq.frame.model.GroupModelDto;
 import com.xt.js.gkaq.frame.model.MenuModel;
 
 public interface MenuModelMapper extends BaseMapper<MenuModel> {
@@ -33,4 +34,6 @@ public interface MenuModelMapper extends BaseMapper<MenuModel> {
     List<MenuModel> selectAllByCond(MenuModel model);
 
     List<MenuModel> selectAllBtnByCond(MenuModel model);
+
+    List<MenuModel> selectAllByUser(GroupModelDto dto);
 }

+ 8 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/service/CodeService.java

@@ -31,4 +31,12 @@ public interface CodeService extends BaseUUIDModelService<CodeModel> {
      * @return
      */
     public List<CodeModelDto> findAllByCond(CodeModelDto model);
+
+    /**
+     * ²éѯ¸¸Àà×Öµä
+     * 
+     * @param pcode
+     * @return
+     */
+    List<ComboBoxDto> findByNoLeaf();
 }

+ 2 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/service/GroupService.java

@@ -18,4 +18,6 @@ public interface GroupService extends BaseUUIDModelService<GroupModel> {
     public List<GroupModelDto> findAllByCond(GroupModel model);
 
     public List<ComboBoxDto> findByCombo();
+
+    public GroupModelDto selectByUser(String userId);
 }

+ 3 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/service/MenuService.java

@@ -3,6 +3,7 @@ package com.xt.js.gkaq.frame.service;
 import java.util.List;
 
 import com.xt.js.gkaq.common.BaseUUIDModelService;
+import com.xt.js.gkaq.frame.model.GroupModelDto;
 import com.xt.js.gkaq.frame.model.MenuModel;
 
 /**
@@ -19,4 +20,6 @@ public interface MenuService extends BaseUUIDModelService<MenuModel> {
     public List<MenuModel> findAllByCond(MenuModel model);
 
     public List<MenuModel> findAllBtnByCond(MenuModel model);
+
+    public List<MenuModel> selectAllByUser(GroupModelDto dto);
 }

+ 4 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/service/impl/CodeServiceImpl.java

@@ -39,4 +39,8 @@ public class CodeServiceImpl extends BaseUUIDModelServiceImpl<CodeModel> impleme
         return mapper.selectAllByCond(model);
     }
 
+    public List<ComboBoxDto> findByNoLeaf() {
+        return mapper.selectByNoLeaf();
+    }
+
 }

+ 4 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/service/impl/GroupServiceImpl.java

@@ -30,4 +30,8 @@ public class GroupServiceImpl extends BaseUUIDModelServiceImpl<GroupModel> imple
     public List<ComboBoxDto> findByCombo() {
         return mapper.selectByCombo();
     }
+
+    public GroupModelDto selectByUser(String userId) {
+        return mapper.selectByUser(userId);
+    }
 }

+ 6 - 0
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/service/impl/MenuServiceImpl.java

@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
 import com.xt.js.gkaq.common.BaseMapper;
 import com.xt.js.gkaq.common.BaseUUIDModelServiceImpl;
 import com.xt.js.gkaq.frame.mappers.MenuModelMapper;
+import com.xt.js.gkaq.frame.model.GroupModelDto;
 import com.xt.js.gkaq.frame.model.MenuModel;
 import com.xt.js.gkaq.frame.service.MenuService;
 
@@ -43,4 +44,9 @@ public class MenuServiceImpl extends BaseUUIDModelServiceImpl<MenuModel> impleme
         return mapper.selectAllBtnByCond(model);
     }
 
+    @Override
+    public List<MenuModel> selectAllByUser(GroupModelDto dto) {
+        return mapper.selectAllByUser(dto);
+    }
+
 }

+ 3 - 1
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/system/FrameParam.java

@@ -14,7 +14,9 @@ public class FrameParam {
 	/** session中存储授权信息的key值 */
 	public static String SESSION_KEY_AUTH = "__AUTH";
 
-	/**
+    public static final String SESSION_KEY_MENUS = "GKAQ_USER_MENUS";
+
+    /**
 	 * 重新加载系统参数
 	 */
 	public static void reloadFromCodes() {

+ 19 - 1
gkaqv2/trunk/modules/frame/src/main/java/com/xt/js/gkaq/frame/system/GkaqFormAuthenticationFilter.java

@@ -1,12 +1,21 @@
 package com.xt.js.gkaq.frame.system;
 
+import java.util.List;
+
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 
+import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationToken;
+import org.apache.shiro.session.Session;
 import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
+import org.springframework.beans.factory.annotation.Autowired;
 
+import com.xt.js.gkaq.frame.model.GroupModelDto;
+import com.xt.js.gkaq.frame.model.MenuModel;
 import com.xt.js.gkaq.frame.model.UserModel;
+import com.xt.js.gkaq.frame.service.GroupService;
+import com.xt.js.gkaq.frame.service.MenuService;
 import com.yuanxd.tools.utils.Assert;
 
 /**
@@ -16,13 +25,22 @@ import com.yuanxd.tools.utils.Assert;
  *
  */
 public class GkaqFormAuthenticationFilter extends FormAuthenticationFilter {
+    @Autowired
+    private GroupService groupService;
+    @Autowired
+    private MenuService menuService;
 
     @Override
     protected boolean onLoginSuccess(AuthenticationToken token, org.apache.shiro.subject.Subject subject,
             ServletRequest request, ServletResponse response) throws Exception {
         Object principal = subject.getPrincipal();
         Assert.isInstanceOf(UserModel.class, principal);
-        //        UserModel u = (UserModel) principal;
+        // 根据当前用户获得授权的菜单并保存到会话
+        UserModel user = (UserModel) principal;
+        GroupModelDto userGroup = groupService.selectByUser(user.getId());
+        List<MenuModel> menuList = menuService.selectAllByUser(userGroup);
+        Session session = SecurityUtils.getSubject().getSession();
+        session.setAttribute(FrameParam.SESSION_KEY_MENUS, menuList);
         return super.onLoginSuccess(token, subject, request, response);
     }
 

+ 8 - 0
gkaqv2/trunk/modules/frame/src/main/resources/com/xt/js/gkaq/frame/mappers/CodeModelMapper.xml

@@ -102,4 +102,12 @@
     and STATE != #{STATE_DEL}
 	order by SORTNO
   </select>
+  <select id="selectByNoLeaf" resultMap="ComboBoxMap" parameterType="java.lang.String" >
+  	<bind name="LEAF_NO" value="@com.xt.js.gkaq.common.GlobalData@LEAF_NO"/>
+  	<bind name="STATE_DEL" value="@com.xt.js.gkaq.common.BaseUUIDModel@STATE_DELETE"/>
+	select ID VAL, CODE, TEXT from AQ_BASIC_FRAME_CODE
+	where LEAF = #{LEAF_NO}
+    and STATE != #{STATE_DEL}
+	order by PCODE desc,SORTNO
+  </select>
 </mapper>

+ 7 - 0
gkaqv2/trunk/modules/frame/src/main/resources/com/xt/js/gkaq/frame/mappers/GroupModelMapper.xml

@@ -77,4 +77,11 @@
     where STATE != #{STATE_DEL}
     order by ORG_ID
   </select>
+  <select id="selectByUser" resultMap="BaseResultMap" parameterType="java.lang.String" >
+  	<bind name="STATE_DEL" value="@com.xt.js.gkaq.common.BaseUUIDModel@STATE_DELETE"/>
+    select G.ID, G.ORG_ID, G.ROLE_ID, G.REMARK
+    from AQ_BASIC_FRAME_GROUP G
+    left join AQ_BASIC_FRAME_USER_GROUP UG on G.ID = UG.GROUP_ID
+    where UG.USER_ID = #{userId,jdbcType=VARCHAR} and G.STATE != #{STATE_DEL} and UG.STATE != #{STATE_DEL}
+  </select>
 </mapper>

+ 12 - 0
gkaqv2/trunk/modules/frame/src/main/resources/com/xt/js/gkaq/frame/mappers/MenuModelMapper.xml

@@ -123,4 +123,16 @@
    	</where>
    	order by SORTNO
   </select>
+  <select id="selectAllByUser" resultMap="BaseResultMap" parameterType="com.xt.js.gkaq.frame.model.GroupModelDto" >
+  	<bind name="STATE_DEL" value="@com.xt.js.gkaq.common.BaseUUIDModel@STATE_DELETE"/>
+	select ID, PID, NAME, CODE, ICON, URL, LEAF, REMARK, SORTNO
+	from AQ_BASIC_FRAME_MENU
+	where ID in (
+	    select MENU_ID from AQ_BASIC_FRAME_GROUP_MENU where GROUP_ID = #{id,jdbcType=VARCHAR}
+	    union all
+	    select MENU_ID from AQ_BASIC_FRAME_ROLE_MENU where ROLE_ID = #{role,jdbcType=VARCHAR}
+	)
+	and STATE != #{STATE_DEL}
+   	order by PID, SORTNO
+  </select>
 </mapper>