CommonInterceptor.java
2.58 KB
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
package com.jflyfox.component.interceptor;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import com.jflyfox.component.util.JFlyFoxUtils;
import com.jflyfox.jfinal.base.SessionUser;
import com.jflyfox.jfinal.component.util.Attr;
import com.jflyfox.modules.admin.site.SessionSite;
import com.jflyfox.modules.admin.site.SiteConstant;
import com.jflyfox.modules.admin.site.SiteService;
import com.jflyfox.modules.admin.site.TbSite;
import com.jflyfox.system.config.ConfigCache;
/**
* 公共属性拦截器
*
* @author flyfox 2014-2-11
*/
public class CommonInterceptor implements Interceptor {
private SiteService siteSvc = new SiteService();
@SuppressWarnings("rawtypes")
public void intercept(Invocation ai) {
Controller controller = ai.getController();
// 请求路径
String tmpPath = ai.getActionKey();
tmpPath = JFlyFoxUtils.handlerPath(tmpPath);
boolean isBack = JFlyFoxUtils.isBack(tmpPath);
if (isBack) { // 后台
SessionUser user = controller.getSessionAttr(Attr.SESSION_NAME);
if (user == null) {
String title = ConfigCache.getValue("SYSTEM.TITLE");
// 设置公共属性
controller.setAttr(JFlyFoxUtils.WEBSITE_TITLE, title);
controller.setAttr(JFlyFoxUtils.TITLE_ATTR, title);
controller.setAttr(JFlyFoxUtils.KEYWORDS_ATTR, title);
controller.setAttr(JFlyFoxUtils.DESCRIPTION_ATTR, title);
} else {
TbSite site = siteSvc.getSite(user.getBackSiteId());
controller.setAttr(JFlyFoxUtils.WEBSITE_TITLE, site.getSiteTitle());
controller.setAttr(JFlyFoxUtils.TITLE_ATTR, site.getSiteTitle());
controller.setAttr(JFlyFoxUtils.KEYWORDS_ATTR, site.getSiteTitle());
controller.setAttr(JFlyFoxUtils.DESCRIPTION_ATTR, site.getSiteTitle());
}
} else {
SessionSite sessionSite = controller.getSessionAttr(SiteConstant.getSessionSite());
if (sessionSite == null) {
String title = ConfigCache.getValue("SYSTEM.TITLE");
// 设置公共属性
controller.setAttr(JFlyFoxUtils.WEBSITE_TITLE, title);
controller.setAttr(JFlyFoxUtils.TITLE_ATTR, title);
controller.setAttr(JFlyFoxUtils.KEYWORDS_ATTR, title);
controller.setAttr(JFlyFoxUtils.DESCRIPTION_ATTR, title);
} else if (sessionSite.getModel() != null) {
TbSite site = sessionSite.getModel();
controller.setAttr(JFlyFoxUtils.WEBSITE_TITLE, site.getSiteTitle());
controller.setAttr(JFlyFoxUtils.TITLE_ATTR, site.getSiteTitle());
controller.setAttr(JFlyFoxUtils.KEYWORDS_ATTR, site.getSiteTitle());
controller.setAttr(JFlyFoxUtils.DESCRIPTION_ATTR, site.getSiteTitle());
}
}
ai.invoke();
}
}