📄 adminmngimpl.java
字号:
package com.jeecms.core.manager.impl;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import java.util.Set;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import org.springframework.util.Assert;
import com.jeecms.core.JeeCoreManagerImpl;
import com.jeecms.core.dao.AdminDao;
import com.jeecms.core.entity.Admin;
import com.jeecms.core.entity.User;
import com.jeecms.core.entity.Website;
import com.jeecms.core.exception.AdminDisabledException;
import com.jeecms.core.manager.AdminMng;
import com.jeecms.core.manager.FunctionMng;
import com.jeecms.core.manager.UserMng;
import com.jeecms.core.manager.WebsiteMng;
import com.ponyjava.common.hibernate3.Condition;
import com.ponyjava.common.hibernate3.OrderBy;
import com.ponyjava.common.hibernate3.Updater;
import com.ponyjava.common.struts2.ContextPvd;
import com.ponyjava.common.web.PaginationSupport;
public class AdminMngImpl extends JeeCoreManagerImpl<Admin> implements AdminMng {
@Override
public PaginationSupport getAll(Long webId, int page, int countPerPage) {
Admin admin = new Admin();
if (webId != null) {
admin.setWebsite(new Website(webId));
}
return findByExample(admin, new Condition[] { OrderBy.desc("id") },
page, countPerPage);
}
@Override
public Admin getLoginAdmin(Long webId, Long adminId, Long userId) {
if (adminId == null || userId == null) {
return null;
}
Admin admin = load(adminId);
// 从其他站点跳转到当前站点
if (!admin.getUser().getId().equals(userId)) {
admin = getAdminByUserId(webId, userId);
// 设置session
contextPvd.setSessionAttr(Admin.ADMIN_KEY, admin.getId());
Set<String> fiSet = functionMng.getFunctionItems(admin.getId());
contextPvd.setSessionAttr(Admin.RIGHTS_KEY, fiSet);
}
if (admin != null && admin.isAdminDisabled()) {
throw new AdminDisabledException("管理员'" + admin.getLoginName()
+ "'已经被禁用!");
}
return admin;
}
@Override
public Admin getLoginAdmin(String domain, Long adminId, Long userId) {
Website web = websiteMng.getWebsite(domain);
if (web == null) {
return null;
} else {
return getLoginAdmin(web.getId(), adminId, userId);
}
}
@Override
public List<Admin> getListByUserId(Long userId) {
Admin example = new Admin();
example.setUser(new User(userId));
return findByExample(example);
}
@Override
public Admin getAdminByUserId(Long webId, Long userId) {
Admin admin = null;
String key = genKey(webId, userId);
Element e = adminUnitedWebCache.get(key);
if (e == null) {
admin = getAdminDao().getAdminByUnited(webId, userId);
if (admin != null) {
adminUnitedWebCache.put(new Element(key, admin.getId()));
}
} else {
Long id = (Long) e.getObjectValue();
admin = load(id);
}
return admin;
}
@Override
public Admin register(Admin admin, boolean isExist) {
Assert.notNull(admin);
Assert.notNull(admin.getUser());
Assert.notNull(admin.getWebsite());
Assert.notNull(admin.getWebsite().getId());
User user = userMng.register(admin.getUser(), isExist);
Admin oadmin = getAdminByUserId(admin.getWebsite().getId(), user
.getId());
if (oadmin != null) {
return oadmin;
} else {
admin.setUser(user);
return save(admin);
}
}
@Override
public Object updateByUpdater(Updater updater) {
Admin user = (Admin) super.updateByUpdater(updater);
Admin.funcChange();
return user;
}
@Override
public Admin save(Admin admin) {
admin.setCreateTime(new Timestamp(System.currentTimeMillis()));
if (admin.getDisabled() == null) {
admin.setDisabled(false);
}
super.save(admin);
return admin;
}
@Override
public Admin load(Serializable id) {
Admin user = super.load(id);
return user;
}
@Override
public Admin deleteById(Serializable id) {
Admin user = super.deleteById(id);
return user;
}
private String genKey(Long webId, Long unitedId) {
return webId.toString() + unitedId.toString();
}
private Cache adminUnitedWebCache;
private ContextPvd contextPvd;
private WebsiteMng websiteMng;
private FunctionMng functionMng;
private UserMng userMng;
public void setAdminDao(AdminDao dao) {
super.setDao(dao);
}
public AdminDao getAdminDao() {
return (AdminDao) super.getDao();
}
public Cache getAdminUnitedWebCache() {
return adminUnitedWebCache;
}
public void setAdminUnitedWebCache(Cache adminUnitedWebCache) {
this.adminUnitedWebCache = adminUnitedWebCache;
}
public ContextPvd getContextPvd() {
return contextPvd;
}
public void setContextPvd(ContextPvd contextPvd) {
this.contextPvd = contextPvd;
}
public WebsiteMng getWebsiteMng() {
return websiteMng;
}
public void setWebsiteMng(WebsiteMng websiteMng) {
this.websiteMng = websiteMng;
}
public FunctionMng getFunctionMng() {
return functionMng;
}
public void setFunctionMng(FunctionMng functionMng) {
this.functionMng = functionMng;
}
public UserMng getUserMng() {
return userMng;
}
public void setUserMng(UserMng userMng) {
this.userMng = userMng;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -