cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
package cn.ksource.web.service.impl;
 
import cn.ksource.core.dao.BaseDao;
import cn.ksource.core.dao.SqlParameter;
import cn.ksource.core.util.ConvertUtil;
import cn.ksource.core.util.JsonUtil;
import cn.ksource.web.entity.PermissionEntity;
import cn.ksource.web.service.UserCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.*;
 
@Service("userCache")
public class UserCacheImpl implements UserCache {
 
    @Autowired
    private BaseDao baseDao;
    
 
    /**
     * 获取缓存标识
     * @param key
     * @return
     * @version V1.0.0
     * @author 杨凯
     * @date Apr 22, 2014 2:15:22 PM
     */
    private String getUserInfoCacheKey(String key){
        return "YSY_USER_"+key;
    }
    
    /**
     * 获取缓存标识
     * @param key
     * @return
     * @version V1.0.0
     * @author 杨凯
     * @date Apr 22, 2014 2:15:22 PM
     */
    private String getUserPermissionCacheKey(String key){
        return "YSY_Permission_"+key;
    }
    
    @Override
    public PermissionEntity getAccessPermission(String userid) {
        
        Object object = null;
        if (object != null) {
            return (PermissionEntity)object;
        } else {
            PermissionEntity entity = getUserPermission(userid);
            return entity;
        }
        
    }
 
    private PermissionEntity getUserPermission(String userid) {
        String qxsql="select *\n" +
        "  from GG_XTGN\n" + 
        " where exists (select 1\n" + 
        "          from AC_ROLE_QX\n" + 
        "         where exists (select 1\n" + 
        "                  from AC_USER_REF_ROLE\n" + 
        "                 where AC_ROLE_QX.JSBH = JSBH and YHBH = :yhbh) and\n" + 
        "               GG_XTGN.ID = GNBH) order by TYPE ,SXH ";
        
        List<Map> gnList = baseDao.queryForList(qxsql,new SqlParameter().addValue("yhbh", userid));
        
        List<Map> yjgnList = new LinkedList<Map>();
        Map yjCacheMap = new HashMap();
        Map qxMap = new LinkedHashMap();
        Map ejCacheMap = new HashMap();
        Map sjCacheMap = new HashMap();
        
 
        //存放所有能访问的链接
        Map<String,Map> linkMap = new HashMap<String,Map>();
        
        
        
        
        for (Map map : gnList) {
            
            String gnId = ConvertUtil.obj2StrBlank(map.get("ID"));
            String linkId = ConvertUtil.obj2StrBlank(map.get("ADDRESS"));
            
            
            
            String type = ConvertUtil.obj2StrBlank(map.get("TYPE"));
            qxMap.put(map.get("ID"), "");
            
            
            //一级菜单
            if (type.equals("1")) {
                List ls = new LinkedList<Map>();
                map.put("MENULIST", ls);
                yjgnList.add(map);
                yjCacheMap.put(gnId, map);
                
                String gnmc = ConvertUtil.obj2StrBlank(map.get("GNMC"));
 
            }
            if (type.equals("2")) {
                String sjbh = ConvertUtil.obj2StrBlank(map.get("SJBH"));
                if(yjCacheMap.get(sjbh)!=null){
                    List<Map> list = (List<Map>)((Map)yjCacheMap.get(sjbh)).get("MENULIST");
                    list.add(map);
                    List ls = new LinkedList<Map>();
                    map.put("MENULIST", ls);
                    ejCacheMap.put(gnId, map);
                    
 
                }
            }
            if (type.toString().equals("3")) {
                String sjbh    = ConvertUtil.obj2StrBlank(map.get("SJBH"));
                if(ejCacheMap.get(sjbh)!=null){
                    List<Map> list = (List<Map>)((Map)ejCacheMap.get(sjbh)).get("MENULIST");
                    list.add(map);
                    sjCacheMap.put(gnId, map);
                    
                    Map m = new HashMap();
                    m.put("gnId", gnId);
                    m.put("pId", sjbh);
 
                    linkMap.put(linkId,m);
                }
                
            }
 
        }
        
        
        PermissionEntity entity = new PermissionEntity();
        entity.setYjgnList(yjgnList);
        entity.setGnMap(yjCacheMap);
        System.out.println("yjCacheMap-------------->"+JsonUtil.map2Json(yjCacheMap));
        entity.setQxMap(qxMap);
        entity.setLinkMap(linkMap);
        entity.setEjgnMap(ejCacheMap);
        return entity;
    }
 
    @Override
    public Map getUserInfoByLoginName(String loginName) {
        
        Object object = null;
        if (null != object) {
            return (Map)object;
        } else {
            String selectsql = "SELECT A.*,B.ID AS deptid,B.JGMC AS deptName FROM GG_USER A LEFT JOIN GG_ZZJG B ON A.SSBMBH = B.ID WHERE A.LOGINNAME=:loginname ";
            Map userMap = baseDao.queryForMap(selectsql,new SqlParameter().addValue("loginname", loginName));
            return userMap;
        }
    }
 
    @Override
    public void updateUserInfoCacheByLoginName(String loginName) {
    }
 
    @Override
    public void updateUserPermission(String userid) {
    }
 
    
    
}