2017-12-29 16:18:40 +08:00
|
|
|
|
package com.nis.web.controller;
|
|
|
|
|
|
|
|
|
|
|
|
import java.beans.PropertyEditorSupport;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringEscapeUtils;
|
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
|
import org.springframework.ui.Model;
|
|
|
|
|
|
import org.springframework.web.bind.WebDataBinder;
|
|
|
|
|
|
import org.springframework.web.bind.annotation.InitBinder;
|
|
|
|
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
|
|
|
|
|
|
import com.nis.util.DateUtils;
|
|
|
|
|
|
import com.nis.util.JsonMapper;
|
|
|
|
|
|
import com.nis.web.service.ArchiveServcie;
|
|
|
|
|
|
import com.nis.web.service.AreaService;
|
|
|
|
|
|
import com.nis.web.service.DictService;
|
|
|
|
|
|
import com.nis.web.service.LogService;
|
|
|
|
|
|
import com.nis.web.service.MenuService;
|
|
|
|
|
|
import com.nis.web.service.OfficeService;
|
|
|
|
|
|
import com.nis.web.service.RoleService;
|
|
|
|
|
|
import com.nis.web.service.SystemService;
|
|
|
|
|
|
import com.nis.web.service.UserService;
|
2018-01-09 16:50:39 +08:00
|
|
|
|
import com.nis.web.service.configuration.AppCfgService;
|
|
|
|
|
|
import com.nis.web.service.configuration.FtpCfgService;
|
|
|
|
|
|
import com.nis.web.service.configuration.IpCfgService;
|
|
|
|
|
|
import com.nis.web.service.configuration.MailCfgService;
|
|
|
|
|
|
import com.nis.web.service.configuration.MediaCfgService;
|
2018-02-23 09:16:32 +08:00
|
|
|
|
import com.nis.web.service.configuration.ServiceDictInfoService;
|
2018-01-09 16:50:39 +08:00
|
|
|
|
import com.nis.web.service.configuration.SslCfgService;
|
2018-02-23 09:16:32 +08:00
|
|
|
|
import com.nis.web.service.configuration.SysDictInfoService;
|
2018-01-09 16:50:39 +08:00
|
|
|
|
import com.nis.web.service.configuration.TunnelCfgService;
|
|
|
|
|
|
import com.nis.web.service.configuration.WebCfgService;
|
2018-02-23 09:16:32 +08:00
|
|
|
|
import com.nis.web.service.systemService.ServiceConfigInfoService;
|
2018-02-09 16:50:27 +08:00
|
|
|
|
import com.nis.web.service.systemService.SystemServiceService;
|
2017-12-29 16:18:40 +08:00
|
|
|
|
|
|
|
|
|
|
public class BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected UserService userService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected SystemService systemService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected OfficeService officeService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected AreaService areaService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected RoleService roleService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected MenuService menuService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected LogService logService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected ArchiveServcie archiveServcie;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected DictService dictService;
|
|
|
|
|
|
|
2018-01-09 16:50:39 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
protected IpCfgService ipCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected WebCfgService webCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected MailCfgService mailCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected FtpCfgService ftpCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected TunnelCfgService tunnCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected SslCfgService sslCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected MediaCfgService mediaCfgService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected AppCfgService appCfgService;
|
2017-12-29 16:18:40 +08:00
|
|
|
|
|
2018-02-09 16:50:27 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
protected SystemServiceService systemServiceService;
|
|
|
|
|
|
|
2018-02-23 09:16:32 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
protected ServiceDictInfoService serviceDictInfoService;
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
protected SysDictInfoService sysDictInfoService;
|
2017-12-29 16:18:40 +08:00
|
|
|
|
|
2018-02-23 09:16:32 +08:00
|
|
|
|
protected final Logger logger = Logger.getLogger(this.getClass());
|
2017-12-29 16:18:40 +08:00
|
|
|
|
|
2018-02-23 09:16:32 +08:00
|
|
|
|
@Autowired
|
|
|
|
|
|
protected ServiceConfigInfoService serviceConfigInfoService;
|
2017-12-29 16:18:40 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 管理基础路径
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Value("${adminPath}")
|
|
|
|
|
|
protected String adminPath;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 前端基础路径
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Value("${frontPath}")
|
|
|
|
|
|
protected String frontPath;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 前端URL后缀
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Value("${urlSuffix}")
|
|
|
|
|
|
protected String urlSuffix;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 客户端返回JSON字符串
|
|
|
|
|
|
* @param response
|
|
|
|
|
|
* @param object
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected String renderString(HttpServletResponse response, Object object) {
|
|
|
|
|
|
return renderString(response, JsonMapper.toJsonString(object), "application/json");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 客户端返回字符串
|
|
|
|
|
|
* @param response
|
|
|
|
|
|
* @param string
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected String renderString(HttpServletResponse response, String string, String type) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
response.reset();
|
|
|
|
|
|
response.setContentType(type);
|
|
|
|
|
|
response.setCharacterEncoding("utf-8");
|
|
|
|
|
|
response.getWriter().print(string);
|
|
|
|
|
|
return null;
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 添加Model消息
|
|
|
|
|
|
* @param message
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected void addMessage(Model model, String... messages) {
|
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
for (String message : messages){
|
|
|
|
|
|
sb.append(message).append(messages.length>1?"<br/>":"");
|
|
|
|
|
|
}
|
|
|
|
|
|
model.addAttribute("message", sb.toString());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 添加Flash消息
|
|
|
|
|
|
* @param message
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected void addMessage(RedirectAttributes redirectAttributes, String... messages) {
|
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
for (String message : messages){
|
|
|
|
|
|
sb.append(message).append(messages.length>1?"<br/>":"");
|
|
|
|
|
|
}
|
|
|
|
|
|
redirectAttributes.addFlashAttribute("message", sb.toString());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 初始化数据绑定
|
|
|
|
|
|
* 1. 将所有传递进来的String进行HTML编码,防止XSS攻击
|
|
|
|
|
|
* 2. 将字段中Date类型转换为String类型
|
|
|
|
|
|
*/
|
|
|
|
|
|
@InitBinder
|
|
|
|
|
|
protected void initBinder(WebDataBinder binder) {
|
|
|
|
|
|
// String类型转换,将所有传递进来的String进行HTML编码,防止XSS攻击
|
|
|
|
|
|
binder.registerCustomEditor(String.class, new PropertyEditorSupport() {
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void setAsText(String text) {
|
|
|
|
|
|
setValue(text == null ? null : StringEscapeUtils.escapeHtml4(text.trim()));
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String getAsText() {
|
|
|
|
|
|
Object value = getValue();
|
|
|
|
|
|
return value != null ? value.toString() : "";
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
// Date 类型转换
|
|
|
|
|
|
binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void setAsText(String text) {
|
|
|
|
|
|
setValue(DateUtils.parseDate(text));
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|