/**
* BaseController.java
* 2014-4-14
*/
package com.mtools.core.plugin.auth.web;
import java.util.concurrent.Executor;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import com.mtools.core.plugin.auth.AuthPlugin;
import com.mtools.core.plugin.auth.MenuPlugin;
import com.mtools.core.plugin.auth.service.UserService;
import com.mtools.core.plugin.constant.CoreConstans;
import com.mtools.core.plugin.entity.PageInfo;
import com.mtools.core.plugin.entity.UserInfo;
import com.mtools.core.plugin.helper.SpringUtil;
import com.mtools.core.plugin.helper.XStreamIg;
import com.mtools.core.plugin.properties.CoreParams;
import com.mtools.core.plugin.sys.SysConfigPlugin;
/**
* @author zhang
* 控制层基类
* 2014-4-14
*/
public abstract class BaseController {
public Log log= null;
@Resource(name="userService")
public UserService userSv;
@Resource(name="menuPlugin")
public MenuPlugin menuPlugin;
@Resource(name="auth")
public AuthPlugin authPlugin;
@Resource(name="sysPlugin")
public SysConfigPlugin sysPlugin;;
@Resource(name="coreParams")
public CoreParams coreParams;;
@Resource(name = "taskExecutor")
public Executor executor;
public PageInfo page;
public String menuType;//=SpringUtil.getApplicationContext().getApplicationName().substring(1);
public String permType;
public static final String URL="http://127.0.0.1:8282/techsp/helperServlet";
public String backUri;
public BaseController() {
super();
menuType=SpringUtil.getApplicationContext().getApplicationName().substring(1);
permType=SpringUtil.getApplicationContext().getApplicationName().substring(1);
log=LogFactory.getLog(this.getClass());
}
/**
* 获取回话用户对象
* @param session
* @return
*/
public UserInfo getUser(HttpSession session){
UserInfo user=(UserInfo) session.getAttribute(CoreConstans.LOGINGUSER);
return user;
}
/**
* 获取回话用户名
* @param session
* @return
*/
public String getUsername(HttpSession session){
UserInfo user=(UserInfo) session.getAttribute(CoreConstans.LOGINGUSER);
return user.getUsername();
}
/**
* 获取回话用户号
* @param session
* @return
*/
public String getUserid(HttpSession session){
UserInfo user=(UserInfo) session.getAttribute(CoreConstans.LOGINGUSER);
return user.getUserid();
}
@ModelAttribute("page")
public PageInfo initPage(HttpServletRequest request, HttpServletResponse response,PageInfo pageinfo,String pageIndex,String pageSize){
//获取原请求URI
getCtxPath(request, response);
backUri= request.getHeader("Referer");
request.setAttribute(CoreConstans.BACK_URL,backUri);
//初始化翻页
page=pageinfo;
this.page.setPageIndex(pageIndex);
this.page.setPageSize(pageSize);
log.info(XStreamIg.toXml(this.page));
return page;
}
public String getCtxPath(HttpServletRequest request, HttpServletResponse response){
//定义一些常用变量
String path = request.getContextPath();
String ctx = request.getScheme()+"://" + request.getServerName() + ":" + request.getServerPort() + path;
request.setAttribute("ctx",path);
request.setAttribute("curOnline",currentOnline(request));
return ctx;
}
/**
* 当前在线人数
* @param request
* @return
*/
public String currentOnline(HttpServletRequest request){
int totalCount = (Integer) request.getSession().getServletContext().getAttribute(CoreConstans.ACESS_COUNT);
return String.valueOf(totalCount);
}
public void setCommonData(Model model){} ;
public String toView(HttpServletRequest request,ModelMap model,String uri){
String cxt=(String) request.getAttribute("ctx");
request.setAttribute(CoreConstans.ERROR_MESSAGE,model.get(CoreConstans.OPTRESULT));
request.setAttribute(CoreConstans.BACK_URL,cxt+uri);
return "front/msgdialog";
}
}