package com.insoul.ti; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.shiro.SecurityUtils; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.web.context.ServletContextAware; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.ModelAndView; import com.insoul.copartner.constant.GlobalProperties; import com.insoul.copartner.dao.AdminDAO; import com.insoul.copartner.dao.IAnswerDao; import com.insoul.copartner.dao.ICampaignDao; import com.insoul.copartner.dao.IContentDao; import com.insoul.copartner.dao.IContestDAO; import com.insoul.copartner.dao.IContestEntryDAO; import com.insoul.copartner.dao.ICourseDao; import com.insoul.copartner.dao.IDemandCommentsDao; import com.insoul.copartner.dao.IDemandDao; import com.insoul.copartner.dao.IFeedbackDao; import com.insoul.copartner.dao.IFinancingDao; import com.insoul.copartner.dao.IFinancingPhaseDao; import com.insoul.copartner.dao.IIndustryDomainDao; import com.insoul.copartner.dao.IInvestOrgDAO; import com.insoul.copartner.dao.INewsDao; import com.insoul.copartner.dao.IPioneerParkDAO; import com.insoul.copartner.dao.IProjectCommentsDao; import com.insoul.copartner.dao.IProjectDao; import com.insoul.copartner.dao.IProjectPhaseDao; import com.insoul.copartner.dao.IQuestionCategoryDao; import com.insoul.copartner.dao.IQuestionDao; import com.insoul.copartner.dao.IRequirementDao; import com.insoul.copartner.dao.IServiceArchDAO; import com.insoul.copartner.dao.IStartupRoleDao; import com.insoul.copartner.dao.IStartupStatusDao; import com.insoul.copartner.dao.ISystemSettingDao; import com.insoul.copartner.dao.ITeamSizeDao; import com.insoul.copartner.dao.IUserDao; import com.insoul.copartner.domain.Admin; import com.insoul.copartner.domain.ServiceArch; import com.insoul.copartner.domain.StartupRole; import com.insoul.ti.req.ViewRequest; import com.insoul.ti.utils.Utils; /** * @author 刘飞 E-mail:liufei_it@126.com * * @version 1.0.0 * @since 2015年7月4日 下午11:38:04 */ public class WebBase implements ServletContextAware { protected Log log = LogFactory.getLog(getClass()); @Resource protected IContentDao contentDAO; @Resource protected INewsDao newsDAO; @Resource protected ISystemSettingDao systemSettingDAO; @Resource protected IUserDao userDAO; @Resource protected IIndustryDomainDao industryDomainDAO; @Resource protected IStartupRoleDao startupRoleDAO; @Resource protected IStartupStatusDao startupStatusDAO; @Resource protected IFeedbackDao feedbackDAO; @Resource protected IProjectPhaseDao projectPhaseDAO; @Resource protected IProjectDao projectDAO; @Resource protected AdminDAO adminDAO; @Resource protected ITeamSizeDao teamSizeDAO; @Resource protected IProjectCommentsDao projectCommentsDao; @Resource protected IDemandCommentsDao demandCommentsDao; @Resource protected IFinancingPhaseDao financingPhaseDAO; @Resource protected IDemandDao demandDAO; @Resource protected IFinancingDao financingDAO; @Resource protected IQuestionDao questionDAO; @Resource protected IQuestionCategoryDao questionCategoryDAO; @Resource protected IAnswerDao answerDAO; @Autowired @Qualifier("multipartResolver") protected CommonsMultipartResolver multipartResolver; private ServletContext servletContext; @Autowired protected HttpServletRequest request; @Autowired protected HttpServletResponse response; @Resource protected ICourseDao courseDAO; @Resource protected IPioneerParkDAO pioneerParkDAO; @Resource protected IInvestOrgDAO investOrgDAO; @Resource protected IContestDAO contestDAO; @Resource protected IContestEntryDAO contestEntryDAO; @Resource protected IRequirementDao requireDAO; @Resource protected ICampaignDao campaignDAO; @Resource protected IServiceArchDAO serviceArchDAO; protected static final String COMMONS_RESOURCES_MANAGER_VIEW_NAME = "resources_manager"; protected List<ServiceArch> getSrvArchList() { return serviceArchDAO.findAll(); } protected Map<Long, String> getStartupRoleMap() { List<StartupRole> list = startupRoleDAO.findAll(); Map<Long, String> map = new HashMap<Long, String>(); for (StartupRole startupRole : list) { map.put(startupRole.getId(), startupRole.getName()); } return map; } protected ModelAndView createModelView(String viewName) { ModelAndView mv = new ModelAndView(viewName); mv.addObject("cdn", "/assets/"); mv.addObject("cdnDomain", GlobalProperties.CDN_DOMAIN); mv.addObject("viewname", viewName); return mv; } protected ModelAndView createModelView(String viewName, ViewRequest req) { ModelAndView mv = new ModelAndView(viewName); mv.addObject("cdn", "/assets/"); mv.addObject("cdnDomain", GlobalProperties.CDN_DOMAIN); mv.addObject("utils", new Utils()); mv.addObject("viewname", StringUtils.defaultIfBlank(req.getV(), viewName)); return mv; } protected void returnJson(JSONObject json) { PrintWriter out = null; try { response.setContentType("application/json; charset=UTF-8"); out = response.getWriter(); out.write(json.toString()); out.flush(); } catch (IOException e) { log.error("Return JSON Error.", e); } finally { if (out != null) { out.close(); out = null; } } } protected void returnJson(boolean success, String code, String message) { try { JSONObject json = new JSONObject(); json.accumulate("success", success); json.accumulate("code", code); json.accumulate("message", message); returnJson(json); } catch (Throwable e) { log.error("Return JSON Error.", e); } } protected long getAdminId() { Object admin = SecurityUtils.getSubject().getPrincipal(); if (admin == null) { return 0L; } return ((Admin) admin).getId(); } public ServletContext getServletContext() { return servletContext; } @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } }