|
@@ -0,0 +1,123 @@
|
|
|
|
+package com.hb.proj.auth.service;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import com.hb.xframework.dao.core.PreparedSQLArgs;
|
|
|
|
+import com.hb.xframework.dao.core.SpringJdbcDAO;
|
|
|
|
+import com.hb.xframework.dao.core.UpdateHandler;
|
|
|
|
+import com.hb.xframework.dao.util.UUIDHexGenerator;
|
|
|
|
+import com.hb.xframework.util.SessionThreadLocal;
|
|
|
|
+import com.hb.xframework.util.SessionUser;
|
|
|
|
+
|
|
|
|
+@Service
|
|
|
|
+public class AuthService {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SpringJdbcDAO dao;
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadMyMenus(String usId){
|
|
|
|
+ StringBuilder sql=new StringBuilder();
|
|
|
|
+
|
|
|
|
+ sql.append("select distinct tm.* from tsys_menu tm inner join ( ");
|
|
|
|
+ sql.append("select m.assist_code from tsys_menu m ");
|
|
|
|
+ sql.append("inner join tsys_user_menu um on um.menu_id=m.menu_id ");
|
|
|
|
+ sql.append("where um.user_id=? ");
|
|
|
|
+ sql.append(") tf on tf.assist_code like concat(tm.assist_code,'%') ");
|
|
|
|
+ sql.append("order by display_num ");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return dao.queryForList(sql.toString(), usId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadMyRoleMenus(String usId){
|
|
|
|
+ StringBuilder sql=new StringBuilder();
|
|
|
|
+
|
|
|
|
+ sql.append("select distinct tm.* from tsys_menu tm inner join ( ");
|
|
|
|
+ sql.append("select rm.menu_id,m.menu_name,m.assist_code from tsys_user_role ur ");
|
|
|
|
+ sql.append("inner join tsys_role_menu rm on ur.role_id=rm.role_id ");
|
|
|
|
+ sql.append("inner join tsys_menu m on rm.menu_id=m.menu_id ");
|
|
|
|
+ sql.append("where ur.user_id=? ");
|
|
|
|
+ sql.append(") tf on tf.assist_code like concat(tm.assist_code,'%') ");
|
|
|
|
+ sql.append(" where tm.del_if=false");
|
|
|
|
+ sql.append("order by display_num ");
|
|
|
|
+
|
|
|
|
+ return dao.queryForList(sql.toString(), usId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadAllMenus(){
|
|
|
|
+ StringBuilder sql=new StringBuilder();
|
|
|
|
+ sql.append("select * from tsys_menu m where del_if=false order by m.display_num");
|
|
|
|
+ return dao.queryForList(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadAllMenuNodes(){
|
|
|
|
+ StringBuilder sql=new StringBuilder();
|
|
|
|
+ sql.append("select menu_id id,menu_name name,father_menu_id p_id,'menu' node_type,length(menu_link) link_tag from tsys_menu m where del_if=false order by display_num");
|
|
|
|
+ return dao.queryForList(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadAllFunNodes(){
|
|
|
|
+ StringBuilder sql=new StringBuilder();
|
|
|
|
+ sql.append("select fun_id id,fun_name name,menu_id p_id,'fun' node_type from tsys_fun f where del_if=false");
|
|
|
|
+ return dao.queryForList(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadUserAuth(String userId){
|
|
|
|
+ String sql="select menu_id id from tsys_user_menu where user_id=? and del_if=false";
|
|
|
|
+ return dao.queryForList(sql,userId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void saveUserAuth(String userId,String authIds){
|
|
|
|
+ String sql="delete from tsys_user_menu where user_id=?";
|
|
|
|
+ dao.exeUpdate(sql, userId);
|
|
|
|
+ String[] ids=authIds.split(",");
|
|
|
|
+ List<Map<String,Object>> datas=new ArrayList<Map<String,Object>>(ids.length);
|
|
|
|
+ UUIDHexGenerator uuid=UUIDHexGenerator.getInstance();
|
|
|
|
+ Map<String,Object> d=null;
|
|
|
|
+ SessionUser su=SessionThreadLocal.getSessionUser();
|
|
|
|
+ for(String id : ids){
|
|
|
|
+ d=new HashMap<String,Object>();
|
|
|
|
+ d.put("recordId", uuid.generate());
|
|
|
|
+ d.put("userId", userId);
|
|
|
|
+ d.put("menuId", id);
|
|
|
|
+ d.put("createTime", new Date());
|
|
|
|
+ d.put("createBy", su!=null?su.getUserName():null);
|
|
|
|
+ datas.add(d);
|
|
|
|
+ }
|
|
|
|
+ PreparedSQLArgs preSQL=UpdateHandler.getInsertPreparedSQL(datas.get(0), "tsys_user_menu");
|
|
|
|
+ dao.executeBatchUpdate(datas, preSQL);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> loadRoleAuth(String roleId){
|
|
|
|
+ String sql="select menu_id id from tsys_role_menu where role_id=? and del_if=false";
|
|
|
|
+ return dao.queryForList(sql,roleId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void saveRoleAuth(String roleId,String authIds){
|
|
|
|
+ String sql="delete from tsys_role_menu where role_id=?";
|
|
|
|
+ dao.getJdbcTemplate().update(sql, roleId);
|
|
|
|
+ String[] ids=authIds.split(",");
|
|
|
|
+ List<Map<String,Object>> datas=new ArrayList<Map<String,Object>>(ids.length);
|
|
|
|
+ UUIDHexGenerator uuid=UUIDHexGenerator.getInstance();
|
|
|
|
+ Map<String,Object> d=null;
|
|
|
|
+ SessionUser su=SessionThreadLocal.getSessionUser();
|
|
|
|
+ for(String id : ids){
|
|
|
|
+ d=new HashMap<String,Object>();
|
|
|
|
+ d.put("recordId", uuid.generate());
|
|
|
|
+ d.put("roleId", roleId);
|
|
|
|
+ d.put("menuId", id);
|
|
|
|
+ d.put("modifyTime", new Date());
|
|
|
|
+ d.put("modifyBy", su!=null?su.getUserName():null);
|
|
|
|
+ datas.add(d);
|
|
|
|
+ }
|
|
|
|
+ PreparedSQLArgs preSQL=UpdateHandler.getInsertPreparedSQL(datas.get(0), "tsys_role_menu");
|
|
|
|
+ dao.executeBatchUpdate(datas, preSQL);
|
|
|
|
+ }
|
|
|
|
+}
|