You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jeecg/src/main/java/com/jeecg/demo/controller/JeecgFormDemoController.java

1015 lines
34 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.jeecg.demo.controller;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.jeecgframework.core.common.controller.BaseController;
import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
import org.jeecgframework.core.common.model.common.UploadFile;
import org.jeecgframework.core.common.model.json.AjaxJson;
import org.jeecgframework.core.common.model.json.ComboTree;
import org.jeecgframework.core.common.model.json.DataGrid;
import org.jeecgframework.core.common.model.json.TreeGrid;
import org.jeecgframework.core.constant.Globals;
import org.jeecgframework.core.enums.StoreUploadFilePathEnum;
import org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil;
import org.jeecgframework.core.util.DateUtils;
import org.jeecgframework.core.util.HttpRequest;
import org.jeecgframework.core.util.JSONHelper;
import org.jeecgframework.core.util.MutiLangUtil;
import org.jeecgframework.core.util.MyClassLoader;
import org.jeecgframework.core.util.NumberComparator;
import org.jeecgframework.core.util.ResourceUtil;
import org.jeecgframework.core.util.StringUtil;
import org.jeecgframework.core.util.oConvertUtils;
import org.jeecgframework.tag.core.easyui.TagUtil;
import org.jeecgframework.tag.vo.datatable.SortDirection;
import org.jeecgframework.tag.vo.easyui.ComboTreeModel;
import org.jeecgframework.tag.vo.easyui.TreeGridModel;
import org.jeecgframework.web.system.pojo.base.TSAttachment;
import org.jeecgframework.web.system.pojo.base.TSDepart;
import org.jeecgframework.web.system.pojo.base.TSFunction;
import org.jeecgframework.web.system.pojo.base.TSType;
import org.jeecgframework.web.system.pojo.base.TSTypegroup;
import org.jeecgframework.web.system.pojo.base.TSUser;
import org.jeecgframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSONObject;
import com.jeecg.demo.dao.JeecgMinidaoDao;
import com.jeecg.demo.entity.TSDocument;
/**
* @ClassName: JeecgFormDemoController
* @Description: TODO(演示例子处理类)
* @author jeecg
*/
@Controller
@RequestMapping("/jeecgFormDemoController")
public class JeecgFormDemoController extends BaseController {
private static final Logger logger = Logger.getLogger(JeecgFormDemoController.class);
@Autowired
private SystemService systemService;
@Autowired
private JeecgMinidaoDao jeecgMinidaoDao;
@RequestMapping(params = "uitag")
public ModelAndView uitag(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/form_uitag");
}
/**
* 二维码生成功能
* @param request
* @return
*/
@RequestMapping(params = "qrcode")
public ModelAndView qrcode(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/form_QRCode");
}
@RequestMapping(params = "formValidDemo")
public ModelAndView formValidDemo(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/form_valid");
}
@RequestMapping(params = "testsubmit=1",method ={RequestMethod.GET, RequestMethod.POST})
public ModelAndView testsubmit(HttpServletRequest request) {
logger.info("请求成功byebye");
return new ModelAndView("com/jeecg/demo/form_valid");
}
@RequestMapping(params = "nature")
public ModelAndView easyDemo(HttpServletRequest request) {
logger.info("demo-nature");
//ztree同步加载
JSONArray jsonArray=JSONArray.fromObject(getZtreeData());
request.setAttribute("regions", jsonArray.toString().replaceAll("pid","pId"));
return new ModelAndView("com/jeecg/demo/form_nature");
}
@RequestMapping(params = "natures")
public ModelAndView topjuiDemo(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/form_natures");
}
/**
* 动态创建多tab demo参考截图效果
* @param request
* @return
*/
@RequestMapping(params = "ueditor")
public ModelAndView ueditor(HttpServletRequest request) {
logger.info("ueditor");
return new ModelAndView("com/jeecg/demo/ueditor");
}
/**
* popup赋多个值 demo
* @param request
* @return
*/
@RequestMapping(params = "popupMultiValue")
public ModelAndView popupMultiValue(HttpServletRequest request) {
logger.info("popupMultiValue");
return new ModelAndView("com/jeecg/demo/form_popupMultiValue");
}
/**
*下拉联动数据---省市区
*/
@RequestMapping(params="regionSelect",method = RequestMethod.GET)
@ResponseBody
public List<Map<String, String>> cityselect(HttpServletRequest req) throws Exception{
logger.info("----省市区联动-----");
String pid=req.getParameter("pid");
List<Map<String, String>> list=jeecgMinidaoDao.getProCity(pid);
return jeecgMinidaoDao.getProCity(pid);
}
/**
* Ztree
* 获取所有的省市区数据
* @return
*/
public List<Map<String, String>> getZtreeData(){
return jeecgMinidaoDao.getAllRegions();
}
/**
* 父级DEMO下拉菜单
*/
@RequestMapping(params = "getComboTreeData")
@ResponseBody
public List<ComboTree> getComboTreeData(HttpServletRequest request, ComboTree comboTree) {
CriteriaQuery cq = new CriteriaQuery(TSDepart.class);
if (comboTree.getId() != null) {
cq.eq("TSPDepart.id", comboTree.getId());
}
if (comboTree.getId() == null) {
cq.isNull("TSPDepart");
}
cq.add();
List<TSDepart> demoList = systemService.getListByCriteriaQuery(cq, false);
List<ComboTree> comboTrees = new ArrayList<ComboTree>();
ComboTreeModel comboTreeModel = new ComboTreeModel("id", "departname", "TSDeparts");
comboTrees = systemService.ComboTree(demoList, comboTreeModel, null, false);
return comboTrees;
}
/**
* 加载ztree
* @param response
* @param request
* @return
*/
@RequestMapping(params="getTreeData",method ={RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public AjaxJson getTreeData(TSDepart depatr,HttpServletResponse response,HttpServletRequest request ){
AjaxJson j = new AjaxJson();
try{
List<TSDepart> depatrList = new ArrayList<TSDepart>();
StringBuffer hql = new StringBuffer(" from TSDepart t");
//hql.append(" and (parent.id is null or parent.id='')");
depatrList = this.systemService.findHql(hql.toString());
List<Map<String,Object>> dataList = new ArrayList<Map<String,Object>>();
Map<String,Object> map = null;
for (TSDepart tsdepart : depatrList) {
String sqls = null;
Object[] paramss = null;
map = new HashMap<String,Object>();
map.put("id", tsdepart.getId());
map.put("name", tsdepart.getDepartname());
if (tsdepart.getTSPDepart() != null) {
map.put("pId", tsdepart.getTSPDepart().getId());
map.put("open",false);
}else {
map.put("pId", "1");
map.put("open",false);
}
sqls = "select count(1) from t_s_depart t where t.parentdepartid = ?";
paramss = new Object[]{tsdepart.getId()};
long counts = this.systemService.getCountForJdbcParam(sqls, paramss);
if(counts>0){
dataList.add(map);
}else{
TSDepart de = this.systemService.get(TSDepart.class, tsdepart.getId());
if (de != null) {
map.put("id", de.getId());
map.put("name", de.getDepartname());
if(tsdepart.getTSPDepart()!=null){
map.put("pId", tsdepart.getTSPDepart().getId());
map.put("open",false);
}else{
map.put("pId", "1");
map.put("open",false);
}
dataList.add(map);
}else{
map.put("open",false);
dataList.add(map);
}
}
}
j.setObj(dataList);
}catch(Exception e){
e.printStackTrace();
}
return j;
}
/**
* 自动完成请求返回数据
* @param request
* @param responss
*/
@RequestMapping(params = "getAutocompleteData",method ={RequestMethod.GET, RequestMethod.POST})
public void getAutocompleteData(HttpServletRequest request, HttpServletResponse response) {
String searchVal = request.getParameter("q");
String hql = "from TSUser where userName like '%"+searchVal+"%'";
List autoList = systemService.findHql(hql);
try {
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.getWriter().write(JSONHelper.listtojson(new String[]{"userName"},1,autoList));
response.getWriter().flush();
} catch (Exception e1) {
e1.printStackTrace();
}finally{
try {
response.getWriter().close();
} catch (IOException e) {
}
}
}
/**
* 【demo】电子签章
* @param request
* @return
*/
@RequestMapping(params = "eSign")
public ModelAndView eSignDemo(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/zsign");
}
/**
* 左右布局demo
* @param request
* @return
*/
@RequestMapping(params = "siteSelect")
public ModelAndView siteSelect(HttpServletRequest request) {
logger.info("----左右布局 demo转入页面-----");
return new ModelAndView("com/jeecg/demo/siteSelect");
}
/**
* 上下特殊布局
*/
@RequestMapping(params = "specialLayout")
public ModelAndView rowListDemo(HttpServletRequest request) {
logger.info("----上下特殊布局 demo转入页面-----");
return new ModelAndView("com/jeecg/demo/specialLayout");
}
/**
* 通用上传demo
* @return
*/
@RequestMapping(params = "commonUpload")
public ModelAndView commonUploadDemo(){
return new ModelAndView("system/commonupload/commonUploadFile");
}
/**
*
* @return
*/
@RequestMapping(params = "saveUploadFile")
@ResponseBody
public AjaxJson saveUploadFile(String documentTitle,String filename,String swfpath){
AjaxJson ajaxJson = new AjaxJson();
try {
if(StringUtil.isEmpty(filename)){
ajaxJson.setSuccess(false);
ajaxJson.setMsg("未上传文件");
return ajaxJson;
}
TSTypegroup tsTypegroup=systemService.getTypeGroup("fieltype","文档分类");
TSType tsType = systemService.getType("files","附件", tsTypegroup);
TSDocument document = new TSDocument();
document.setDocumentTitle(documentTitle);
document.setRealpath(filename);
document.setSubclassname(MyClassLoader.getPackPath(document));
document.setCreatedate(DateUtils.gettimestamp());
document.setTSType(tsType);
document.setSwfpath(swfpath);
String fileName = filename.substring(filename.lastIndexOf("/")+1,filename.lastIndexOf("."));
document.setAttachmenttitle(fileName);
document.setExtend(filename.substring(filename.lastIndexOf(".") + 1));
systemService.save(document);
} catch (Exception e) {
e.printStackTrace();
ajaxJson.setSuccess(false);
ajaxJson.setMsg("失败:"+e.getMessage());
}
return ajaxJson;
}
/**
* 文件添加跳转
*
* @param req
* @return
*/
@RequestMapping(params = "addFiles")
public ModelAndView addFiles(HttpServletRequest req) {
return new ModelAndView("system/document/files");
}
/**
* 文件编辑跳转
*
* @return
*/
@RequestMapping(params = "editFiles")
public ModelAndView editFiles(TSDocument doc, ModelMap map,HttpServletRequest request) {
if (StringUtil.isNotEmpty(doc.getId())) {
doc = systemService.getEntity(TSDocument.class, doc.getId());
map.put("doc", doc);
TSAttachment attachment = systemService.get(TSAttachment.class, doc.getId());
map.put("attachment",attachment);
}
return new ModelAndView("system/document/files");
}
/**
* 保存文件
*
* @param document
* @return
* @throws Exception
*/
@RequestMapping(params = "saveFiles", method = RequestMethod.POST)
@ResponseBody
public AjaxJson saveFiles(HttpServletRequest request, HttpServletResponse response, TSDocument document) {
AjaxJson j = new AjaxJson();
Map<String, Object> attributes = new HashMap<String, Object>();
TSTypegroup tsTypegroup=systemService.getTypeGroup("fieltype","文档分类");
TSType tsType = systemService.getType("files","附件", tsTypegroup);
String documentId = oConvertUtils.getString(request.getParameter("documentId"));// 文件ID
String documentTitle = oConvertUtils.getString(request.getParameter("documentTitle"));// 文件标题
if (StringUtil.isNotEmpty(documentId)) {
document.setId(documentId);
document = systemService.getEntity(TSDocument.class, documentId);
document.setDocumentTitle(documentTitle);
}
document.setSubclassname(MyClassLoader.getPackPath(document));
document.setCreatedate(DateUtils.gettimestamp());
document.setTSType(tsType);
UploadFile uploadFile = new UploadFile(request, document);
uploadFile.setCusPath("files");
//设置weboffice转化【不设置该字段则不做在线预览转化】
uploadFile.setSwfpath("swfpath");
document = systemService.uploadFile(uploadFile);
attributes.put("url", document.getRealpath());
attributes.put("fileKey", document.getId());
attributes.put("name", document.getAttachmenttitle());
attributes.put("viewhref", "commonController.do?objfileList&fileKey=" + document.getId());
attributes.put("delurl", "commonController.do?delObjFile&fileKey=" + document.getId());
j.setMsg("文件添加成功");
j.setAttributes(attributes);
return j;
}
/**
* 新闻法规文件列表
*/
@RequestMapping(params = "documentList")
public void documentList(TSDocument document,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSDocument.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, document,request.getParameterMap());
String typecode = oConvertUtils.getString(request.getParameter("typecode"));
cq.createAlias("TSType", "TSType");
cq.eq("TSType.typecode", typecode);
cq.add();
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
* 删除文档
*
* @param document
* @return
*/
@RequestMapping(params = "delDocument")
@ResponseBody
public AjaxJson delDocument(TSDocument document, HttpServletRequest request) {
String message = null;
AjaxJson j = new AjaxJson();
document = systemService.getEntity(TSDocument.class, document.getId());
message = "" + document.getDocumentTitle() + "被删除成功";
systemService.delete(document);
systemService.addLog(message, Globals.Log_Type_DEL,
Globals.Log_Leavel_INFO);
j.setSuccess(true);
j.setMsg(message);
return j;
}
/**
* 修改文件标题
* @author taoYan
* @since 2018年8月2日
*/
@RequestMapping(params = "updateDoc")
@ResponseBody
public AjaxJson updateDoc(HttpServletRequest request) {
AjaxJson j = new AjaxJson();
try {
String id = request.getParameter("id");
String title = request.getParameter("title");
TSDocument document = systemService.getEntity(TSDocument.class,id);
document.setDocumentTitle(title);
systemService.updateEntitie(document);
j.setSuccess(true);
j.setMsg("文件标题修改成功!");
} catch (Exception e) {
j.setSuccess(false);
j.setMsg("文件标题修改失败!");
}
return j;
}
/**
* 权限列表
*/
@RequestMapping(params = "functionGrid")
@ResponseBody
public Object functionGrid(HttpServletRequest request,TreeGrid treegrid, Integer type,HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSFunction.class,dataGrid);
boolean pageflag=true;
String selfId = request.getParameter("selfId");
if (selfId != null) {
cq.notEq("id", selfId);
}
if (treegrid.getId() != null) {
pageflag=false;
cq.eq("TSFunction.id", treegrid.getId());
}
if (treegrid.getId() == null) {
cq.isNull("TSFunction");
}
if(type != null){
cq.eq("functionType", type.shortValue());
}
cq.addOrder("functionOrder", SortDirection.asc);
cq.add();
//--手工加载数据权限条件--------
//获取装载数据权限的条件HQL
cq = HqlGenerateUtil.getDataAuthorConditionHql(cq, new TSFunction());
cq.add();
List<TSFunction> functionList = systemService.getListByCriteriaQuery(cq, pageflag);
Long total=systemService.getCountForJdbc("select count(*) from t_s_function where functionlevel=0");
//菜单管理页面:菜单排序
Collections.sort(functionList, new NumberComparator());
List<TreeGrid> treeGrids = new ArrayList<TreeGrid>();
TreeGridModel treeGridModel = new TreeGridModel();
treeGridModel.setIcon("TSIcon_iconPath");
treeGridModel.setTextField("functionName");
treeGridModel.setParentText("TSFunction_functionName");
treeGridModel.setParentId("TSFunction_id");
treeGridModel.setSrc("functionUrl");
treeGridModel.setIdField("id");
treeGridModel.setChildList("TSFunctions");
// 添加排序字段
treeGridModel.setOrder("functionOrder");
//添加菜单图标样式
treeGridModel.setIconStyle("functionIconStyle");
treeGridModel.setFunctionType("functionType");
treeGrids = systemService.treegrid(functionList, treeGridModel);
MutiLangUtil.setMutiTree(treeGrids);
JSONObject jsonObject=new JSONObject();
jsonObject.put("rows",treeGrids);
jsonObject.put("total",total);
if (pageflag){
return jsonObject;
}
return treeGrids;
}
/**
* 权限列表页面跳转
*
* @return
*/
@RequestMapping(params = "function")
public ModelAndView function(ModelMap model) {
return new ModelAndView("com/jeecg/demo/functionList");
}
/**
* 菜单进入可排序多选界面
*/
@RequestMapping(params = "selectSort")
public ModelAndView selectSort() {
return new ModelAndView("com/jeecg/demo/form_selectSort");
}
/**
* 跳转可排序多选用户选择界面
* @return
*/
@RequestMapping(params = "gridSelectdemo")
public ModelAndView gridSelectdemo() {
return new ModelAndView("com/jeecg/demo/gridSelectdemo");
}
/**
* 可排序多选界面查用户表放在Datagrid中
* @param user
* @param request
* @param response
* @param dataGrid
* @throws ServletException
* @throws IOException
*/
@RequestMapping(params = "easyUIGrid", method = RequestMethod.POST)
@ResponseBody
public void getEasyUIGrid(TSUser user,HttpServletRequest request,HttpServletResponse response,DataGrid dataGrid)throws Exception{
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid);
//查询条件组装器
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, user);
Short[] userstate = new Short[]{Globals.User_Normal, Globals.User_ADMIN, Globals.User_Forbidden};
cq.in("status", userstate);
cq.eq("deleteFlag", Globals.Delete_Normal);
cq.add();
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
@RequestMapping(params = "ztreeDemo")
public ModelAndView ztreeDemo(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/ztreeDemo");
}
@RequestMapping(params="getTreeDemoData",method ={RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public AjaxJson getTreeDemoData(TSDepart depatr,HttpServletResponse response,HttpServletRequest request ){
AjaxJson j = new AjaxJson();
try{
List<TSDepart> depatrList = new ArrayList<TSDepart>();
StringBuffer hql = new StringBuffer(" from TSDepart t");
depatrList = this.systemService.findHql(hql.toString());
List<Map<String,Object>> dataList = new ArrayList<Map<String,Object>>();
Map<String,Object> map = null;
for (TSDepart tsdepart : depatrList) {
map = new HashMap<String,Object>();
map.put("chkDisabled",false);
map.put("click", true);
map.put("id", tsdepart.getId());
map.put("name", tsdepart.getDepartname());
map.put("nocheck", false);
map.put("struct","TREE");
map.put("title",tsdepart.getDepartname());
if (tsdepart.getTSPDepart() != null) {
map.put("parentId",tsdepart.getTSPDepart().getId());
}else {
map.put("parentId","0");
}
dataList.add(map);
}
j.setObj(dataList);
}catch(Exception e){
e.printStackTrace();
}
return j;
}
/**
* 删除部门
* @param depart
* @param request
* @return
*/
@RequestMapping(params = "del")
@ResponseBody
public AjaxJson del(TSDepart depart, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
depart = systemService.getEntity(TSDepart.class, depart.getId());
Long childCount = systemService.getCountForJdbcParam("select count(1) from t_s_depart where parentdepartid = ?", depart.getId());
if(childCount>0){
j.setSuccess(false);
j.setMsg("有下级,不能删除");
return j;
}
systemService.executeSql("delete from t_s_role_org where org_id=?", depart.getId());
j.setMsg("删除成功");
return j;
}
/**
* 多选项卡demo
*/
@RequestMapping(params = "tabsDemo")
public ModelAndView tabsDemo(HttpServletRequest request) {
logger.info("----多选项卡demo转入页面-----");
return new ModelAndView("com/jeecg/demo/tabsDemo");
}
@RequestMapping(params = "tabDemo")
public ModelAndView tabDemo(HttpServletRequest request) {
logger.info("----选项卡demo转入页面-----");
return new ModelAndView("com/jeecg/demo/tabDemo");
}
/**
* 常用示例Demo:接口测试页面跳转
* @param request
* @return
*/
@RequestMapping(params = "interfaceTestDemo")
public ModelAndView interfaceTestDemo(HttpServletRequest request) {
logger.info("----接口测试demo转入页面-----");
return new ModelAndView("com/jeecg/demo/form_interfaceTestDemo");
}
/**
* 常用示例Demo:接口测试
* @param request
* @param response
* @return AjaxJson
*/
@RequestMapping(params = "interfaceTest")
@ResponseBody
public AjaxJson testInterface(HttpServletRequest request,HttpServletResponse response) {
AjaxJson j=new AjaxJson();
try {
String serverUrl = request.getParameter("serverUrl");//请求的地址
String requestBody = request.getParameter("requestBody");//请求的参数
String requestMethod = request.getParameter("requestMethod");//请求的方式
if(requestMethod.equals("POST")){
if(requestBody !=""){
logger.info("----请求接口开始-----");
JSONObject sendPost = HttpRequest.sendPost(serverUrl, requestBody);
logger.info("----请求接口结束-----"+sendPost);
j.setSuccess(true);
j.setObj(sendPost.toJSONString());
}else{
j.setSuccess(false);
j.setObj("请填写请求参数");
}
}
if(requestMethod.equals("GET")){
logger.info("----请求接口开始-----");
JSONObject sendGet = HttpRequest.sendGet(serverUrl, requestBody);
logger.info("----请求接口结束-----"+sendGet.toJSONString());
j.setSuccess(true);
j.setObj(sendGet);
}
} catch (Exception e) {
j.setSuccess(false);
j.setObj("服务器请求失败");
e.printStackTrace();
}
return j;
}
/**
* Webupload上传
* @param request
* @return
*/
@RequestMapping(params = "webuploader")
public ModelAndView webuploader(HttpServletRequest request) {
logger.info("----webuploaderdemo-----");
return new ModelAndView("com/jeecg/demo/form_webuploader");
}
/**
* WebUploader
* 文件上传处理
*/
@RequestMapping("/filedeal")
@ResponseBody
public AjaxJson filedeal(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
String msg="";
String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//demo中设置为D://upFiles,实际项目应因事制宜
try {
String fileName = null;
String bizType=request.getParameter("bizType");//上传业务名称
String bizPath=StoreUploadFilePathEnum.getPath(bizType);//根据业务名称判断上传路径
String nowday=new SimpleDateFormat("yyyyMMdd").format(new Date());
File file = new File(ctxPath+"/"+bizPath+"/"+nowday);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile mf=multipartRequest.getFile("file");// 获取上传文件对象
String orgName = mf.getOriginalFilename();// 获取文件名
fileName = String.valueOf(UUID.randomUUID().getMostSignificantBits()).replace("-", "")+ orgName.substring(orgName.lastIndexOf("."));
String savePath = file.getPath() + "/" + fileName;
File savefile = new File(savePath);
FileCopyUtils.copy(mf.getBytes(), savefile);
msg="上传成功";
j.setMsg(msg);
String dbpath=bizPath+"/"+nowday+"/"+fileName;
Map<String,Object> info = new HashMap<String,Object>();
info.put("filename", orgName.substring(0,orgName.lastIndexOf(".")));
info.put("filesize", mf.getSize());
info.put("filetype", orgName.substring(orgName.lastIndexOf(".")));
info.put("filepath", dbpath);
j.setAttributes(info);
} catch (IOException e) {
j.setSuccess(false);
logger.info(e.getMessage());
}
j.setMsg(msg);
return j;
}
/**
* 删除处理
* @param request
* @param response
* @return
*/
@RequestMapping("/filedelete")
@ResponseBody
public AjaxJson filedelete(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
String msg="";
String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//demo中设置为D://upFiles,实际项目应因事制宜
String path=request.getParameter("filepath");
String delpath=ctxPath+"/"+path;
File fileDelete = new File(delpath);
if (!fileDelete.exists() || !fileDelete.isFile()) {
msg="警告: " + delpath + "不存在!";
logger.info(msg);
j.setSuccess(true);//不存在前台也给他删除
}else{
if(fileDelete.delete()){
msg="--------成功删除文件---------"+delpath;
logger.info(msg);
}else{
j.setSuccess(false);
msg="没删除成功--jdk的问题还是你文件的问题请重新试试";
logger.info(msg);
}
}
j.setMsg(msg);
return j;
}
@RequestMapping("/filedown")
public void getImgByurl(HttpServletResponse response,HttpServletRequest request) throws Exception{
String dbpath = request.getParameter("filepath");
if(oConvertUtils.isNotEmpty(dbpath)&&dbpath.endsWith(",")){
dbpath = dbpath.substring(0, dbpath.length()-1);
}
response.setContentType("application/x-msdownload;charset=utf-8");
String fileType = dbpath.substring(dbpath.lastIndexOf("."));
String fileName=request.getParameter("filename")+fileType;
String userAgent = request.getHeader("user-agent").toLowerCase();
if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {
fileName = URLEncoder.encode(fileName, "UTF-8");
}else {
fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
}
response.setHeader("Content-disposition", "attachment; filename="+ fileName);
InputStream inputStream = null;
OutputStream outputStream=null;
try {
String localPath=ResourceUtil.getConfigByName("webUploadpath");
String imgurl = localPath+"/"+dbpath;
inputStream = new BufferedInputStream(new FileInputStream(imgurl));
outputStream = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
while ((len = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, len);
}
response.flushBuffer();
} catch (Exception e) {
logger.info("--通过流的方式获取文件异常--"+e.getMessage());
}finally{
if(inputStream!=null){
inputStream.close();
}
if(outputStream!=null){
outputStream.close();
}
}
}
@RequestMapping(params = "dropDownDatagrid",method ={RequestMethod.GET, RequestMethod.POST})
public ModelAndView dropDownDatagrid(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/dropDownDatagrid");
}
/**
* bootstrap树形列表页面跳转
*
* @return
*/
@RequestMapping(params = "bootstrapTreeListDemo")
public ModelAndView bootstrapTreeListDemo(ModelMap model) {
return new ModelAndView("com/jeecg/demo/bootstrapTreeList");
}
/**
* bootstrap树形列表获取数据
*
* @return
*/
@RequestMapping(params = "bootstrapDemoDatagrid",method ={RequestMethod.GET, RequestMethod.POST})
public void bootstrapDemoDatagrid(HttpServletRequest request,HttpServletResponse response) {
try {
String text1="[{\"id\":1,\"pid\":0,\"status\":1,\"name\":\"系统管理\",\"permissionValue\":\"系统\"},{\"id\":2,\"pid\":0,\"status\":1,\"name\":\"字典管理\",\"permissionValue\":\"字典\"},{\"id\":20,\"pid\":1,\"status\":1,\"name\":\"新增系统\",\"permissionValue\":\"新增\"},{\"id\":21,\"pid\":1,\"status\":1,\"name\":\"编辑系统\",\"permissionValue\":\"编辑\"},{\"id\":22,\"pid\":1,\"status\":1,\"name\":\"删除系统\",\"permissionValue\":\"删除\"},{\"id\":33,\"pid\":2,\"status\":1,\"name\":\"系统环境\",\"permissionValue\":\"环境\"},{\"id\":333,\"pid\":33,\"status\":1,\"name\":\"新增环境\",\"permissionValue\":\"新增\"},{\"id\":3333,\"pid\":33,\"status\":1,\"name\":\"编辑环境\",\"permissionValue\":\"编辑\"},{\"id\":233332,\"pid\":33,\"status\":0,\"name\":\"删除环境\",\"permissionValue\":\"删除\"}]";
response.getWriter().println(text1);
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping(params = "plupload1")
public ModelAndView plupload(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/plupload/plupload1");
}
@RequestMapping(params = "plupload2")
public ModelAndView plupload3(HttpServletRequest request) {
return new ModelAndView("com/jeecg/demo/plupload/plupload3");
}
@RequestMapping(params = "goPlupload")
public ModelAndView goPlupload(HttpServletRequest request) {
request.setAttribute("chunk", request.getParameter("chunk"));
return new ModelAndView("com/jeecg/demo/plupload/plupload5");
}
/**
* 文件分割 请求处理
* 尚存bug List<FileItem> items = upload.parseRequest(request); 因为mvc已有已文件处理配置此处获取不到值了
* 后期可修改
* @param request
* @param response
* @throws IOException
*/
@RequestMapping("/doupload")
public void doupload(HttpServletRequest request, HttpServletResponse response) throws IOException {
String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//demo中设置为D://upFiles,实际项目应因事制宜
String tempFileDir = ctxPath+File.separator+"temp";
response.setCharacterEncoding("UTF-8");
Integer schunk = null;//分割块数
Integer schunks = null;//总分割数
String name = null;//文件名
BufferedOutputStream outputStream=null;
if (ServletFileUpload.isMultipartContent(request)) {
try {
String bizType=request.getParameter("bizType");//上传业务名称
String bizPath=StoreUploadFilePathEnum.getPath(bizType);//根据业务名称判断上传路径
String nowday=new SimpleDateFormat("yyyyMMdd").format(new Date());
String fileDir = ctxPath+File.separator+bizPath+File.separator+nowday;
File file = new File(fileDir);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
File tempFile = new File(tempFileDir);
if (!tempFile.exists()) {
tempFile.mkdirs();// 创建文件临时目录
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024);
factory.setRepository(tempFile);//设置临时目录
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
upload.setSizeMax(5*1024*1024);//设置附近大小??
List<FileItem> items = upload.parseRequest(request);
//生成新的文件名
String newFilename = null;
for(FileItem item : items){
if(!item.isFormField()){
//如果是文件类型
name = item.getName();//获取文件名
System.out.println("name:"+name);
newFilename = UUID.randomUUID().toString().replace("-","").concat(".").concat(FilenameUtils.getExtension(name));
System.out.println("newFilename:"+newFilename);
if(name!=null){
String nFname = newFilename;
if(schunk!=null){
nFname = schunk+"_"+name;
}
File savedFile = new File(fileDir, nFname);
item.write(savedFile);
}
}else{
//判断是否带分割信息
if(item.getFieldName().equals("chunk")){
schunk = Integer.parseInt(item.getString());
}
if(item.getFieldName().equals("chunks")){
schunks = Integer.parseInt(item.getString());
}
}
}
System.out.println("chunk:"+schunk+"-"+schunks);
if(schunk!=null && schunk+1 == schunks){
outputStream = new BufferedOutputStream(new FileOutputStream(new File(fileDir,newFilename)));
for(int i=0;i<schunks;i++){
File itempFile = new File(fileDir,i+"_"+name);
byte[] bytes = FileUtils.readFileToByteArray(itempFile);
outputStream.write(bytes);
outputStream.flush();
itempFile.delete();
}
outputStream.flush();
}
response.getWriter().write("{\"status\":true,\"newName\":\""+newFilename+"\"}");
} catch (FileUploadException e) {
e.printStackTrace();
response.getWriter().write("{\"status\":false}");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("{\"status\":false}");
}finally{
try {
if(outputStream!=null)
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
*打印demo页面跳转
*
* @return
*/
@RequestMapping(params = "printingDemo")
public ModelAndView printingDemo(ModelMap model) {
return new ModelAndView("com/jeecg/demo/printingDemo");
}
}