| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232 |
- package cn.com.lzt.common.controller;
- import java.io.BufferedInputStream;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.lang.reflect.InvocationTargetException;
- import java.net.URLEncoder;
- import java.util.*;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.beanutils.BeanUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.log4j.Logger;
- import org.jeecgframework.core.common.controller.BaseController;
- import org.jeecgframework.core.common.exception.BusinessException;
- import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
- import org.jeecgframework.core.common.model.json.AjaxJson;
- import org.jeecgframework.core.common.model.json.DataGrid;
- import org.jeecgframework.core.constant.Globals;
- import org.jeecgframework.core.util.BrowserType;
- import org.jeecgframework.core.util.BrowserUtils;
- import org.jeecgframework.core.util.ExceptionUtil;
- import org.jeecgframework.core.util.FileUtils;
- import org.jeecgframework.core.util.ListUtils;
- import org.jeecgframework.core.util.MutiLangUtil;
- import org.jeecgframework.core.util.ResourceUtil;
- import org.jeecgframework.core.util.StringUtil;
- import org.jeecgframework.core.util.oConvertUtils;
- import org.jeecgframework.poi.excel.ExcelImportUtil;
- import org.jeecgframework.poi.excel.entity.ExportParams;
- import org.jeecgframework.poi.excel.entity.ImportParams;
- import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
- import org.jeecgframework.tag.core.easyui.TagUtil;
- 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.http.HttpStatus;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.util.FileCopyUtils;
- import org.springframework.web.bind.annotation.PathVariable;
- 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 cn.com.lzt.common.entity.TSysFileEntity;
- import cn.com.lzt.common.entity.WebUploadEntity;
- import cn.com.lzt.common.service.TSysFileServiceI;
- import cn.com.lzt.common.util.CustomerConstant;
- import com.alibaba.fastjson.JSONObject;
- import com.aliyun.oss.OSSClient;
- import com.aliyun.oss.model.OSSObject;
- import com.aliyun.oss.model.ObjectMetadata;
- import com.aliyuncs.DefaultAcsClient;
- import com.aliyuncs.IAcsClient;
- import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
- import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
- import com.aliyuncs.http.MethodType;
- import com.aliyuncs.profile.DefaultProfile;
- import com.aliyuncs.profile.IClientProfile;
- import com.itextpdf.text.Document;
- import com.itextpdf.text.pdf.BaseFont;
- import com.itextpdf.text.pdf.PdfContentByte;
- import com.itextpdf.text.pdf.PdfImportedPage;
- import com.itextpdf.text.pdf.PdfReader;
- import com.itextpdf.text.pdf.PdfWriter;
- /**
- * @Title: Controller
- * @Description: 文件管理表
- * @author onlineGenerator
- * @date 2017-07-29 15:00:16
- * @version V1.0
- *
- */
- @Controller
- @RequestMapping("/tSysFileController")
- public class TSysFileController extends BaseController {
- /**
- * Logger for this class
- */
- private static final Logger logger = Logger.getLogger(TSysFileController.class);
- @Autowired
- private TSysFileServiceI tSysFileService;
- @Autowired
- private SystemService systemService;
-
- // 下载路径
- private static final String showAndDownUrl = ResourceUtil.getConfigByName("showAndDownUrl");
- /**
- * 文件管理表列表 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "list")
- public ModelAndView list(HttpServletRequest request, HttpServletRequest req,WebUploadEntity webUpload) {
- if (null == webUpload) {
- webUpload = new WebUploadEntity();
- }
- String curUserName = ResourceUtil.getSessionUser().getUserName();
- req.setAttribute("curUserName", curUserName);
- req.setAttribute("webUpload", webUpload);
- req.setAttribute("showAndDownUrl", showAndDownUrl);
- return new ModelAndView("cn/com/lzt/common/tSysFileList");
- }
- /**
- * easyui AJAX请求数据
- *
- * @param request
- * @param response
- * @param dataGrid
- */
- @RequestMapping(params = "datagrid")
- public void datagrid(TSysFileEntity tSysFile,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
- CriteriaQuery cq = new CriteriaQuery(TSysFileEntity.class, dataGrid);
- //查询条件组装器
- org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSysFile, request.getParameterMap());
- try{
- //自定义追加查询条件
- }catch (Exception e) {
- throw new BusinessException(e.getMessage());
- }
- cq.add();
- this.tSysFileService.getDataGridReturn(cq, true);
- // 设置是否预览Flg
- List<TSysFileEntity> list = new ArrayList<>();
- for(int i = 0; i < dataGrid.getResults().size(); i++) {
- TSysFileEntity dbEntity = (TSysFileEntity) dataGrid.getResults().get(i);
- TSysFileEntity tSysFileEntity = new TSysFileEntity();
- try {
- BeanUtils.copyProperties(tSysFileEntity,dbEntity);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
- String fileName = tSysFileEntity.getFileName();
- String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
- if("jpg".equals(fileType) || "jpeg".equals(fileType) ||"png".equals(fileType) || "pdf".equals(fileType)) {
- tSysFileEntity.setIsPreviewFlg("1");
- boolean aliyunflg = showAndDownUrl.indexOf("aliyun")!=-1;
- String dbpath=null;
- if("0".equals(aliyunflg)) {
- dbpath = "showOrDownByurl.do?dbPath=" + tSysFileEntity.getFileUrl();
- } else {
- dbpath = request.getContextPath()+"/tSysFileController/aliyunshowOrDownByurl.do?dbPath=" + tSysFileEntity.getFileUrl();
- }
- tSysFileEntity.setPreviewUrl(dbpath);
- } else {
- tSysFileEntity.setIsPreviewFlg("0");
- }
- String userName = tSysFileEntity.getCreateBy();
- String realName = "";
-
- // 查询主组织
- StringBuilder getRealNameByUserNameSql = new StringBuilder();
- getRealNameByUserNameSql.append(" SELECT ");
- getRealNameByUserNameSql.append(" realname ");
- getRealNameByUserNameSql.append(" FROM t_s_base_user ");
- getRealNameByUserNameSql.append(" WHERE ");
- getRealNameByUserNameSql.append(" username = '" + userName + "'");
- List<Map<String, Object>> realNameMapList = systemService.findForJdbc(getRealNameByUserNameSql.toString());
-
- if(realNameMapList.size() > 0) {
- realName = (String)realNameMapList.get(0).get("realname");
- }
-
- tSysFileEntity.setCreateBy(realName);
- list.add(tSysFileEntity);
- }
- dataGrid.setResults(list);
- TagUtil.datagrid(response, dataGrid);
- }
-
- /**
- * 删除文件管理表
- *
- * @return
- */
- @RequestMapping(params = "doDel")
- @ResponseBody
- public AjaxJson doDel(TSysFileEntity tSysFile, HttpServletRequest request) {
- String message = MutiLangUtil.getMutiLangInstance().getLang("文件删除成功");
- AjaxJson j = new AjaxJson();
- tSysFile = systemService.getEntity(TSysFileEntity.class, tSysFile.getId());
- try{
- String path = tSysFile.getFileUrl();
- // deletefile(path, j);
-
- deletefile(path, tSysFile.getBusiId(), j);
-
- //systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
- }catch(Exception e){
- e.printStackTrace();
- message = MutiLangUtil.getMutiLangInstance().getLang("文件删除失败");
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
-
- /**
- * 添加文件管理表
- *
- * @return
- */
- @RequestMapping(params = "doAdd")
- @ResponseBody
- public AjaxJson doAdd(TSysFileEntity tSysFile, HttpServletRequest request) {
- String message = null;
- AjaxJson j = new AjaxJson();
- message = "文件添加成功";
- try{
- tSysFileService.save(tSysFile);
- systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
- }catch(Exception e){
- e.printStackTrace();
- message = "文件添加失败";
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
-
- /**
- * 跳转至图片预览页面
- * @param fileUrl 文件的访问路径
- * @param req
- * @return
- */
- @RequestMapping(value="showViewFile",method = RequestMethod.GET)
- public ModelAndView showViewFile(String fileUrl, String aliyunflg, HttpServletRequest req) {
- if (FileUtils.isPicture(FileUtils.getExtend(fileUrl))) {
- return this.showPictureview(fileUrl, aliyunflg, req);
- }else{
- return this.showPdfView(fileUrl, aliyunflg, req);
- }
- }
-
- /**
- * 跳转至图片预览页面
- * @param fileUrl 文件的访问路径
- * @param req
- * @return
- */
- @RequestMapping(params = "showPictureview")
- public ModelAndView showPictureview(String fileUrl, String aliyunflg, HttpServletRequest req) {
- if (FileUtils.isPicture(FileUtils.getExtend(fileUrl))) {
- List<TSysFileEntity> tSysFiles = systemService.findByProperty(TSysFileEntity.class, "fileUrl", fileUrl);
- if (ListUtils.isNullOrEmpty(tSysFiles)) {
- req.setAttribute("errormsg",MutiLangUtil.getMutiLangInstance().getLang("文件不存在"));
- return new ModelAndView("cn/com/lzt/pdf/web/pdfviewiframe");
- }else{
- String dbpath = "";
- if("0".equals(aliyunflg)) {
- dbpath = "showOrDownByurl.do?dbPath=" + fileUrl;
- } else {
- dbpath = "aliyunshowOrDownByurl.do?dbPath=" + fileUrl;
- }
- req.setAttribute("dbpath",dbpath);
- }
- return new ModelAndView("cn/com/lzt/pdf/web/pictureview");
- }else{
- req.setAttribute("errormsg",MutiLangUtil.getMutiLangInstance().getLang("文件类型错误"));
- return new ModelAndView("cn/com/lzt/pdf/web/pdfviewiframe");
- }
- }
- /**
- * 跳转至pdf 预览页面
- * @param fileUrl 文件的访问路径
- * @param req
- * @return
- */
- @RequestMapping(params = "showpdfview")
- public ModelAndView showPdfView(String fileUrl, String aliyunflg, HttpServletRequest req) {
- String encryptpdf = req.getParameter("encryptpdf");
- boolean bEncryptpdf = StringUtils.isNotEmpty(encryptpdf) && encryptpdf.equals("1") && fileUrl.indexOf("pdf") > -1;
- if (oConvertUtils.isNotEmpty(fileUrl)&&fileUrl.toLowerCase().endsWith("pdf")) {
- List<TSysFileEntity> tSysFiles = systemService.findByProperty(TSysFileEntity.class, "fileUrl", fileUrl);
- if (ListUtils.isNullOrEmpty(tSysFiles)) {
- req.setAttribute("errormsg",MutiLangUtil.getMutiLangInstance().getLang("文件不存在"));
- return new ModelAndView("cn/com/lzt/pdf/web/pdfviewiframe");
- }
- String dbpath = "";
- if("0".equals(aliyunflg)) {
- dbpath = "showOrDownByurl.do?down=1&dbPath=" + fileUrl;
- } else {
- dbpath = "aliyunshowOrDownByurl.do?down=1&dbPath=" + fileUrl;
- if(StringUtils.isNotEmpty(tSysFiles.get(0).getUserpass()) && bEncryptpdf){
- sendPassToUser(tSysFiles.get(0).getFileName(),tSysFiles.get(0).getUserpass());
- }
- }
- req.setAttribute("dbpath",dbpath);
- return new ModelAndView("cn/com/lzt/pdf/web/pdfview");
- }else{
- req.setAttribute("errormsg",MutiLangUtil.getMutiLangInstance().getLang("文件类型错误"));
- return new ModelAndView("cn/com/lzt/pdf/web/pdfviewiframe");
- }
- // return new ModelAndView("cn/com/lzt/pdfiframe/web/pdfviewiframe");
- }
-
- /**
- * 阿里云oss存储
- * @author yulong.zhao
- * @date 2017年12月28日下午5:04:36
- *
- * @param request
- * @param response
- * @return
- */
- @RequestMapping("/aliyunfiledeal")
- @ResponseBody
- public AjaxJson aliyunfiledeal(HttpServletRequest request, HttpServletResponse response) {
- AjaxJson j = new AjaxJson();
- String msg = "";
- String key = "";
- String upFlag = oConvertUtils.getString(request.getParameter("isup"));
- String delFlag = oConvertUtils.getString(request.getParameter("isdel"));
- String busiId = oConvertUtils.getString(request.getParameter("busiId"));
- String encryptpdf = oConvertUtils.getString(request.getParameter("encryptpdf"));
- String singlemode = oConvertUtils.getString(request.getParameter("singlemode")).toLowerCase();
- try {
- //如果是上传操作
- if("1".equals(upFlag)){
- long start = System.currentTimeMillis();
- System.out.println("oss-start:"+start);
- String fileName = null;
- String bizType = request.getParameter("bizType");//上传业务名称
- if ("true".equals(singlemode)) {
- tSysFileService.deleteByBusiId(busiId, bizType);
- }
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- MultipartFile mf = multipartRequest.getFile("file");// 获取上传文件对象
- boolean bEncryptpdf = StringUtils.isNotEmpty(encryptpdf) && encryptpdf.equals("1") && mf.getContentType().indexOf("pdf") > -1;
- //zbw去除文件名中空格
- fileName = removeInternalBlank(mf.getOriginalFilename());// 获取文件名
- String extName = FileUtils.getExtend(fileName);
- String uuid = UUID.randomUUID().toString();
- // 创建上传Object的Metadata
- ObjectMetadata meta = new ObjectMetadata();
- // 设置contenttype否则上传图片在oss上预览时不显示图片
- meta.setContentType(mf.getContentType());
- key = String.format(bizType+"/%s", uuid+"."+extName);
- OSSClient ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET);
- String user_pass=null;
- String owner_pass = null;
- byte[] mfEncryptedByte = null;
- // 必须设置ContentLength
- meta.setContentLength(mf.getBytes().length);
- //加密处理
- if(bEncryptpdf) {
- user_pass = generateWord();
- owner_pass = user_pass;
- System.out.print(owner_pass+user_pass);
- mfEncryptedByte = EncryptPDF(request,mf, user_pass, owner_pass);
- // 必须设置ContentLength
- meta.setContentLength(mfEncryptedByte.length);
- }
-
- ossClient.putObject(CustomerConstant.BUCKETNAME, key, new ByteArrayInputStream(mfEncryptedByte == null || mfEncryptedByte.length == 0 ? mf.getBytes():mfEncryptedByte),meta);
- // 关闭client
- ossClient.shutdown();
- msg = MutiLangUtil.getMutiLangInstance().getLang("common.upload.success");
- j.setMsg(msg);
- long end = System.currentTimeMillis();
- System.out.println("oss-end:"+end);
- System.out.println("cost: "+(end-start)/1000);
- System.out.println("oss-start:"+System.currentTimeMillis());
- String dbpath = bizType + "/" + uuid + "." + extName;
- String busiTable = request.getParameter("busiTable");
- String remark = request.getParameter("remark");
- TSysFileEntity tSysFileEntity = new TSysFileEntity();
- tSysFileEntity.setBusiId(busiId);//业务id
- tSysFileEntity.setFileUrl(dbpath);//文件访问路径
- tSysFileEntity.setFileName(fileName);//文件名称
- tSysFileEntity.setTagetType(bizType);//文件类型
- tSysFileEntity.setBusiTable(oConvertUtils.getString(busiTable));
- tSysFileEntity.setRemark(oConvertUtils.getString(remark));
- tSysFileEntity.setUserpass(user_pass);
- tSysFileEntity.setOwnerpass(owner_pass);
- tSysFileService.save(tSysFileEntity);
- j.setObj(tSysFileEntity.getId());
- //1、将文件路径赋值给obj,前台可获取之,随表单提交,然后数据库中存储该路径
- //2、demo这里用的是AjaxJson对象,开发者可自定义返回对象,但是用t标签的时候路径属性名需为 obj或 filePath 或自己在标签内指定若在标签内指定则action返回路径的名称应保持一致
- //如果是删除操作
- }else if("1".equals(delFlag)){
- String path = oConvertUtils.getString(request.getParameter("path"));
- if(path.length()>32){//编辑时传入参数是path,新建传入fileid
- deletefile(path, busiId, j);
- }else{
- TSysFileEntity file = tSysFileService.getEntity(TSysFileEntity.class, path);
- if(file != null && !"".equals(oConvertUtils.getString(file.getFileUrl()))){
- deletefile(file.getFileUrl(), busiId, j);
- }
- }
- }else{
- throw new BusinessException("没有传参指定上传还是删除操作!");
- }
- } catch (IOException e) {
- j.setSuccess(false);
- logger.info(e.getMessage());
- }catch (BusinessException b) {
- j.setSuccess(false);
- logger.info(b.getMessage());
- } catch (Exception e) {
- j.setSuccess(false);
- logger.info(e.getMessage());
- }
- Map<String, Object> attributes = new HashMap<String, Object>();
- attributes.put("key", key);
- j.setAttributes(attributes);
- j.setMsg(msg);
- return j;
- }
- /*
- * PDF加密
- * */
- private byte[] EncryptPDF(HttpServletRequest request,MultipartFile PDFFile,String USER_PASS,String OWNER_PASS) {
- String realpath = request.getSession().getServletContext().getRealPath("").replaceAll("\\\\", "/")+"/upload/";
- String uuid = com.xcgl.utils.UUID.randomUUID().toString();
- Document document = new Document();
- FileOutputStream outputStream = null;
- String tempFile = realpath+uuid+".pdf";
- byte[] encryptedPDF= null;
- try {
- outputStream = new FileOutputStream(tempFile);
- // Create Readers for the pdfs.
- PdfReader pdfReader = new PdfReader(PDFFile.getBytes());
- // Create a writer for the outputstream
- PdfWriter writer = PdfWriter.getInstance(document, outputStream);
- writer.setEncryption(USER_PASS.getBytes(), OWNER_PASS.getBytes(), PdfWriter.ALLOW_SCREENREADERS,PdfWriter.STANDARD_ENCRYPTION_128);
- document.open();
- PdfContentByte cb = writer.getDirectContent(); // Holds the PDF
- PdfImportedPage page;
- int pageOfCurrentReaderPDF = 0;
- // Create a new page in the target for each source page.
- while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) {
- document.newPage();
- pageOfCurrentReaderPDF++;
- page = writer.getImportedPage(pdfReader, pageOfCurrentReaderPDF);
- cb.addTemplate(page, 0, 0);
- }
- outputStream.flush();
- document.close();
- outputStream.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (document.isOpen())
- document.close();
- try {
- if (outputStream != null)
- outputStream.close();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- FileInputStream is = null;
- try {
- is = new FileInputStream(tempFile);
- encryptedPDF = new byte[is.available()];
- is.read(encryptedPDF);
- is.close();
- File tempPDF = new File(tempFile);
- tempPDF.delete();
- } catch (Exception e) {
- e.printStackTrace();
- }finally {
- try {
- if (is != null)
- is.close();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- return encryptedPDF;
- }
- /*
- * 生成4位的随机密码
- * */
- private String generateWord() {
- String[] beforeShuffle = new String[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
- "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i",
- "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
- List list = Arrays.asList(beforeShuffle);
- Collections.shuffle(list);
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < list.size(); i++) {
- sb.append(list.get(i));
- }
- String afterShuffle = sb.toString();
- String result = afterShuffle.substring(5, 9);
- return result;
- }
- /**
- * 去除字符串内部空格
- */
- public static String removeInternalBlank(String s) {
- // System.out.println("bb:" + s);
- Pattern p = Pattern.compile("\\s*|\t|\r|\n");
- Matcher m = p.matcher(s);
- String after = m.replaceAll("");
- return after;
- }
- /**
- * 员工基本档案管理批量上传
- * @author zbw
- * 2018-1-15
- * @return
- */
- /*@RequestMapping("/aliyunfiledealBatch")
- @ResponseBody
- public AjaxJson aliyunfiledealBatch(HttpServletRequest request, HttpServletResponse response) {
- AjaxJson j = new AjaxJson();
- String msg = "";
- String upFlag = oConvertUtils.getString(request.getParameter("isup"));
- String delFlag = oConvertUtils.getString(request.getParameter("isdel"));
- String busiId = oConvertUtils.getString(request.getParameter("busiId"));
- String singlemode = oConvertUtils.getString(request.getParameter("singlemode")).toLowerCase();
- try {
- //如果是上传操作
- if("1".equals(upFlag)){
- String fileName = null;
- String bizType = request.getParameter("bizType");//上传业务名称
-
- // 张兵伟员工基本档案管理批量上传,重复则删除start
- if(busiId != null && Globals.busi_id_batch.equals(busiId)){// 批量上传
- Map<String, Map<String, String>> tSysFileEntityMap=this.getSysFileData(bizType);
- if(tSysFileEntityMap!=null&&tSysFileEntityMap.get(bizType) != null){
- if(tSysFileEntityMap.get(bizType).get(fileName) != null && tSysFileEntityMap.get(bizType).get(fileName).length() != 0){
- // deletefile(tSysFileEntityMap.get(bizType).get(fileName), j);
- deletefile(tSysFileEntityMap.get(bizType).get(fileName), busiId, j);
- }
- }
- }
- // 张兵伟员工基本档案管理批量上传,重复则删除start
-
-
- if ("true".equals(singlemode)) {
- tSysFileService.deleteByBusiId(busiId, bizType);
- }
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- MultipartFile mf = multipartRequest.getFile("file");// 获取上传文件对象
- fileName = mf.getOriginalFilename();// 获取文件名
- String extName = FileUtils.getExtend(fileName);
- String uuid = UUID.randomUUID().toString();
- // 创建上传Object的Metadata
- ObjectMetadata meta = new ObjectMetadata();
- // 设置contenttype否则上传图片在oss上预览时不显示图片
- meta.setContentType(mf.getContentType());
- // 必须设置ContentLength
- meta.setContentLength(mf.getBytes().length);
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET);
- String key = String.format(bizType+"/%s", uuid+"."+extName);
- ossClient.putObject(CustomerConstant.BUCKETNAME, key, new ByteArrayInputStream(mf.getBytes()),meta);
- // 关闭client
- ossClient.shutdown();
- msg = MutiLangUtil.getMutiLangInstance().getLang("common.upload.success");
- j.setMsg(msg);
- String dbpath = bizType + "/" + uuid + "." + extName;
- String busiTable = request.getParameter("busiTable");
- String remark = request.getParameter("remark");
- TSysFileEntity tSysFileEntity = new TSysFileEntity();
- tSysFileEntity.setBusiId(busiId);//业务id
- tSysFileEntity.setFileUrl(dbpath);//文件访问路径
- tSysFileEntity.setFileName(fileName);//文件名称
- tSysFileEntity.setTagetType(bizType);//文件类型
- tSysFileEntity.setBusiTable(oConvertUtils.getString(busiTable));
- tSysFileEntity.setRemark(oConvertUtils.getString(remark));
- tSysFileService.save(tSysFileEntity);
- j.setObj(tSysFileEntity.getId());
- //1、将文件路径赋值给obj,前台可获取之,随表单提交,然后数据库中存储该路径
- //2、demo这里用的是AjaxJson对象,开发者可自定义返回对象,但是用t标签的时候路径属性名需为 obj或 filePath 或自己在标签内指定若在标签内指定则action返回路径的名称应保持一致
- //如果是删除操作
- }else if("1".equals(delFlag)){
- String path = oConvertUtils.getString(request.getParameter("path"));
- if(path.length()>32){//编辑时传入参数是path,新建传入fileid
- deletefile(path, busiId, j);
- }else{
- TSysFileEntity file = tSysFileService.getEntity(TSysFileEntity.class, path);
- if(file != null && !"".equals(oConvertUtils.getString(file.getFileUrl()))){
- deletefile(file.getFileUrl(), busiId, j);
- }
- }
- }else{
- throw new BusinessException("没有传参指定上传还是删除操作!");
- }
- } catch (IOException e) {
- j.setSuccess(false);
- logger.info(e.getMessage());
- }catch (BusinessException b) {
- j.setSuccess(false);
- logger.info(b.getMessage());
- } catch (Exception e) {
- j.setSuccess(false);
- logger.info(e.getMessage());
- }
- j.setMsg(msg);
- return j;
- }*/
-
- public Map<String, Map<String, String>> getSysFileData(String tagetType) {
- Map<String, Map<String, String>> tSysFileEntityMap = null;
- StringBuffer hql = new StringBuffer(" from TSysFileEntity where busiId=? and tagetType=? ");
- List<TSysFileEntity> tSysFileEntityList = systemService.findHql(hql.toString(),Globals.busi_id_batch,tagetType);
- //获取所有文件名称 结构 Map<taget_type,Map<file_name,file_url>>
- tSysFileEntityMap = new HashMap<String, Map<String, String>>();
- for (int i = 0; i < tSysFileEntityList.size(); i++) {
- Map<String, String> tempMap = new HashMap<String, String>();
- tempMap.put(tSysFileEntityList.get(i).getFileName(),tSysFileEntityList.get(i).getFileUrl());
- if(tSysFileEntityMap.size()==0){
- tSysFileEntityMap.put(tSysFileEntityList.get(i).getTagetType(), tempMap);
- }else{
- if(!tSysFileEntityMap.containsKey(tSysFileEntityList.get(i).getTagetType())){
- tSysFileEntityMap.put(tSysFileEntityList.get(i).getTagetType(), tempMap);
- }else{
- tSysFileEntityMap.get(tSysFileEntityList.get(i).getTagetType()).putAll(tempMap);
- }
- }
- }
- return tSysFileEntityMap;
- }
-
-
-
- /**
- * WebUploader
- * 文件上传处理/删除处理
- */
- @RequestMapping("/filedeal")
- @ResponseBody
- public AjaxJson filedeal(HttpServletRequest request, HttpServletResponse response) {
- AjaxJson j = new AjaxJson();
- String msg = "";
- String upFlag = oConvertUtils.getString(request.getParameter("isup"));
- String delFlag = oConvertUtils.getString(request.getParameter("isdel"));
- String busiId = oConvertUtils.getString(request.getParameter("busiId"));
- String singlemode = oConvertUtils.getString(request.getParameter("singlemode")).toLowerCase();
- //String ctxPath = request.getSession().getServletContext().getRealPath("");
- String ctxPath = ResourceUtil.getConfigByName("webUploadpath");
-
-
- /*Map<String, Map<String, String>> tSysFileEntityMap = null;
- if(busiId != null && Globals.busi_id_batch.equals(busiId)){// 批量上传
- // 张兵伟添加的删除方法start
- StringBuffer hql = new StringBuffer(" from TSysFileEntity where busiId=? ");
- List<TSysFileEntity> tSysFileEntityList = systemService.findHql(hql.toString(),Globals.busi_id_batch);
- //获取所有文件名称 结构 Map<taget_type,Map<file_name,file_url>>
- tSysFileEntityMap = new HashMap<String, Map<String, String>>();
- for (int i = 0; i < tSysFileEntityList.size(); i++) {
- Map<String, String> tempMap = new HashMap<String, String>();
- tempMap.put(tSysFileEntityList.get(i).getFileName(),tSysFileEntityList.get(i).getFileUrl());
- if(tSysFileEntityMap.size()==0){
- tSysFileEntityMap.put(tSysFileEntityList.get(i).getTagetType(), tempMap);
- }else{
- if(!tSysFileEntityMap.containsKey(tSysFileEntityList.get(i).getTagetType())){
- tSysFileEntityMap.put(tSysFileEntityList.get(i).getTagetType(), tempMap);
- }else{
- tSysFileEntityMap.get(tSysFileEntityList.get(i).getTagetType()).putAll(tempMap);
- }
- }
- }
- // 张兵伟添加的删除方法end
- }*/
-
- try {
- //如果是上传操作
- if("1".equals(upFlag)){
- String fileName = null;
- String bizType = request.getParameter("bizType");//上传业务名称
- File file = new File(ctxPath+File.separator+bizType);
- if (!file.exists()) {
- file.mkdirs();// 创建文件根目录
- }
- if ("true".equals(singlemode)) {
- tSysFileService.deleteByBusiId(busiId, bizType);
- }
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- MultipartFile mf = multipartRequest.getFile("file");// 获取上传文件对象
- fileName = mf.getOriginalFilename();// 获取文件名
-
- // 张兵伟员工基本档案管理批量上传,重复则删除start
- if(busiId != null && Globals.busi_id_batch.equals(busiId)){// 批量上传
- Map<String, Map<String, String>> tSysFileEntityMap=this.getSysFileData(bizType);
- if(tSysFileEntityMap!=null&&tSysFileEntityMap.get(bizType) != null){
- if(tSysFileEntityMap.get(bizType).get(fileName) != null && tSysFileEntityMap.get(bizType).get(fileName).length() != 0){
- // deletefile(tSysFileEntityMap.get(bizType).get(fileName), j);
- deletefile(tSysFileEntityMap.get(bizType).get(fileName), busiId, j);
- }
- }
- }
- // 张兵伟员工基本档案管理批量上传,重复则删除start
-
- String extName = FileUtils.getExtend(fileName);
- String uuid = UUID.randomUUID().toString();
- String savePath = file.getPath() + File.separator + uuid +"." + extName;
- File savefile = new File(savePath);
- FileCopyUtils.copy(mf.getBytes(), savefile);
- msg = MutiLangUtil.getMutiLangInstance().getLang("common.upload.success");
- j.setMsg(msg);
- String dbpath = bizType + "/" + uuid + "." + extName;
- String busiTable = request.getParameter("busiTable");
- String remark = request.getParameter("remark");
- TSysFileEntity tSysFileEntity = new TSysFileEntity();
- tSysFileEntity.setBusiId(busiId);//业务id
- tSysFileEntity.setFileUrl(dbpath);//文件访问路径
- tSysFileEntity.setFileName(fileName);//文件名称
- tSysFileEntity.setTagetType(bizType);//文件类型
- tSysFileEntity.setBusiTable(oConvertUtils.getString(busiTable));
- tSysFileEntity.setRemark(oConvertUtils.getString(remark));
- tSysFileService.save(tSysFileEntity);
- j.setObj(tSysFileEntity.getId());
- //1、将文件路径赋值给obj,前台可获取之,随表单提交,然后数据库中存储该路径
- //2、demo这里用的是AjaxJson对象,开发者可自定义返回对象,但是用t标签的时候路径属性名需为 obj或 filePath 或自己在标签内指定若在标签内指定则action返回路径的名称应保持一致
- //如果是删除操作
- }else if("1".equals(delFlag)){
- String path = request.getParameter("path");
-
- if(busiId != null && Globals.busi_id_batch.equals(busiId)){//批量上传
- deletefile(path, busiId, j);
- }else{
- if(path.length()>32){//编辑时传入参数是path,新建传入fileid
- deletefile(path, busiId, j);
- }else{
- TSysFileEntity file = tSysFileService.getEntity(TSysFileEntity.class, path);
- if(file != null && !"".equals(oConvertUtils.getString(file.getFileUrl()))){
- deletefile(file.getFileUrl(), busiId, j);
- }
- }
- }
-
- }else{
- throw new BusinessException("没有传参指定上传还是删除操作!");
- }
- } catch (IOException e) {
- j.setSuccess(false);
- logger.info(e.getMessage());
- }catch (BusinessException b) {
- j.setSuccess(false);
- logger.info(b.getMessage());
- } catch (Exception e) {
- j.setSuccess(false);
- logger.info(e.getMessage());
- }
- j.setMsg(msg);
- return j;
- }
-
-
-
- /**
- * 删除物理地址文件
- * @author zhijia.wang
- * @param path
- * @param j
- * @throws Exception
- */
- private void deletefile(String path, String busiId, AjaxJson j) throws Exception {
- String msg = "";
- //不是阿里云上传
- if("tSysFileController/filedeal.do".equals(ResourceUtil.getConfigByName("fileDeal"))){
- String ctxPath = ResourceUtil.getConfigByName("webUploadpath");// demo中设置为D://upFiles,实际项目应因事制宜
- String delpath = ctxPath + File.separator + path;
- File fileDelete = new File(delpath);
- tSysFileService.deleteByUrlPath(path, busiId);
- if (!fileDelete.exists() || !fileDelete.isFile()) {
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.warn.filelost");
- // 不存在前台也给他删除
- j.setSuccess(true);
- j.setMsg(msg);
- } else {
- if (fileDelete.delete()) {
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.delete.success");
- j.setMsg(msg);
- } else {
- j.setSuccess(false);
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.delete.fail");
- j.setMsg(msg);
- }
- }
- }
- //阿里云上传
- if("tSysFileController/aliyunfiledeal.do".equals(ResourceUtil.getConfigByName("fileDeal"))){
- tSysFileService.deleteByUrlPath(path, busiId);
- if(!"".equals(oConvertUtils.getString(path))){
- String key = path;
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET);
- // Object是否存在
- boolean found = ossClient.doesObjectExist(CustomerConstant.BUCKETNAME, key);
- if(found){
- ossClient.deleteObject(CustomerConstant.BUCKETNAME, key);
- ossClient.shutdown();
- }else{
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.warn.filelost");
- // 不存在前台也给他删除
- j.setSuccess(true);
- j.setMsg(msg);
- }
- }else{
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.warn.filelost");
- // 不存在前台也给他删除
- j.setSuccess(true);
- j.setMsg(msg);
- }
- }
- }
-
-
- /**
- * 删除物理地址文件
- * @param path
- * @param j
- * @throws Exception
- */
- private void deletefile(String path, AjaxJson j) throws Exception {
- String msg = "";
- String ctxPath = ResourceUtil.getConfigByName("webUploadpath");
- String delpath = ctxPath + File.separator + path;
- File fileDelete = new File(delpath);
- tSysFileService.deleteByUrlPath(path);
- if (!fileDelete.exists() || !fileDelete.isFile()) {
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.warn.filelost");
- // 不存在前台也给他删除
- j.setSuccess(true);
- j.setMsg(msg);
- } else {
- if (fileDelete.delete()) {
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.delete.success");
- j.setMsg(msg);
- } else {
- j.setSuccess(false);
- msg = MutiLangUtil.getMutiLangInstance().getLang("file.delete.fail");
- j.setMsg(msg);
- }
- }
- }
-
- /**
- * 通过业务主键获取当前主键下 此code 下的文件列表
- * @param request
- * @param response
- * @return
- */
- @RequestMapping("/getFilelistByBusikey")
- @ResponseBody
- public AjaxJson getFilelistByBusikey(HttpServletRequest request, HttpServletResponse response){
- String bizType=request.getParameter("bizType");
- String busiId=request.getParameter("busiId");
- AjaxJson j = new AjaxJson();
- String msg = "";
- if (StringUtil.isNotEmpty(busiId)&&StringUtil.isNotEmpty(bizType)) {
- try {
- List<TSysFileEntity> entities = tSysFileService.getSysFileEntitiesByBusiId(busiId,bizType);
- StringBuffer url = new StringBuffer();
- StringBuffer filename = new StringBuffer();
- url.append("");
- filename.append("");
- for (int i = 0; i < entities.size(); i++) {
- url.append(entities.get(i).getFileUrl());
- url.append(",");
- filename.append(entities.get(i).getFileName());
- filename.append(",");
- }
- HashMap<String, String> map = new HashMap<String, String>();
- map.put("url", url.toString());
- map.put("filename", filename.toString());
- map.put("filelist", JSONObject.toJSONString(entities));
- j.setObj(map);
- } catch (Exception e) {
- e.getStackTrace();
- }
-
- }
- return j;
- }
-
- /**
- * 阿里云文件下载及查看
- * @author yulong.zhao
- * @date 2017年12月28日下午5:58:01
- * @param response
- * @param request
- * @throws Exception
- */
- @RequestMapping(value="aliyunshowOrDownByurl", method = RequestMethod.GET)
- public void getAliyunImgByurl(HttpServletResponse response, HttpServletRequest request) throws Exception{
- String flag = request.getParameter("down");//是否下载否则展示图片
- String dbpath = oConvertUtils.getString(request.getParameter("dbPath"));
- String fileName = tSysFileService.getFileNameByurlPath(dbpath);
- String singlemode = oConvertUtils.getString(request.getParameter("singlemode")).toLowerCase();
- String encryptpdf = request.getParameter("encryptpdf");
- boolean bEncryptpdf = StringUtils.isNotEmpty(encryptpdf) && encryptpdf.equals("1") && fileName.indexOf("pdf") > -1;
- if("1".equals(flag)){
- BrowserType browerType = BrowserUtils.getBrowserType(request);
- if(browerType!=null && browerType.equals(BrowserType.Safari))
- {
- response.setContentType("application/octet-stream;charset=utf-8");
- }else {
- response.setContentType("application/x-msdownload;charset=utf-8");
- }
- if (BrowserUtils.isIE(request)) {
- // IE
- fileName = URLEncoder.encode(fileName, "UTF-8");
- } else {
- // 非IE
- fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
- }
- response.setHeader("Content-disposition", "attachment; filename="+fileName);
- }else{
- int dotIndex = fileName.lastIndexOf('.');
- String suffix="";
- if(dotIndex!=-1)
- suffix = fileName.substring(dotIndex+1);
- if(suffix.equalsIgnoreCase("doc") || suffix.equalsIgnoreCase("docx")){
- response.setContentType("application/msword");
- // response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
- }else if(suffix.equalsIgnoreCase("xls") || suffix.equalsIgnoreCase("xlsx")){
- response.setContentType("application/vnd.ms-excel");
- }else if(suffix.equalsIgnoreCase("pdf")){
- response.setContentType("application/pdf");
- }else {
- response.setContentType("image/jpeg;charset=utf-8");
- }
- }
-
- String key = "";
- if(!"".equals(dbpath)){
- key = dbpath;
- }
-
- InputStream inputStream = null;
- OutputStream outputStream = null;
- try {
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET);
- OSSObject ossObject = ossClient.getObject(CustomerConstant.BUCKETNAME, key);
- inputStream = new BufferedInputStream(ossObject.getObjectContent());
- outputStream = response.getOutputStream();
- byte[] buf = new byte[1024];
- int len;
- while ((len = inputStream.read(buf)) > 0) {
- outputStream.write(buf, 0, len);
- }
- // 关闭client
- ossClient.shutdown();
- response.flushBuffer();
- List<TSysFileEntity> tSysFiles = systemService.findByProperty(TSysFileEntity.class, "fileUrl", dbpath);
- if(tSysFiles != null && tSysFiles.size() > 0 && StringUtils.isNotEmpty(tSysFiles.get(0).getUserpass()) && bEncryptpdf) {
- sendPassToUser(tSysFiles.get(0).getFileName(),tSysFiles.get(0).getUserpass());
- }
- } catch (Exception e) {
- logger.info("--通过流的方式获取文件异常--" + e.getMessage());
- }finally{
- if(inputStream != null){
- inputStream.close();
- }
- if(outputStream != null){
- outputStream.close();
- }
- }
- }
-
-
- /**
- * 获取图片流/获取文件用于下载
- * @param response
- * @param request
- * @throws Exception
- */
- @RequestMapping(value="showOrDownByurl", method = RequestMethod.GET)
- public void getImgByurl(HttpServletResponse response, HttpServletRequest request) throws Exception{
- String flag=request.getParameter("down");//是否下载否则展示图片
- String dbpath = request.getParameter("dbPath");
- if("1".equals(flag)){
- response.setContentType("application/x-msdownload;charset=utf-8");
- String fileName=tSysFileService.getFileNameByurlPath(dbpath);
- if (BrowserUtils.isIE(request)) {
- // IE
- fileName = URLEncoder.encode(fileName, "UTF-8");
- } else {
- // 非IE
- fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
- }
- response.setHeader("Content-disposition", "attachment; filename="+fileName);
- }else{
- response.setContentType("image/jpeg;charset=utf-8");
- }
-
- InputStream inputStream = null;
- OutputStream outputStream=null;
- try {
- String localPath=ResourceUtil.getConfigByName("webUploadpath");
- String imgurl = localPath + File.separator + 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();
- }
- }
- }
-
-
- /**
- * 导入功能跳转
- *
- * @return
- */
- @RequestMapping(params = "upload")
- public ModelAndView upload(HttpServletRequest req) {
- req.setAttribute("controller_name","tSysFileController");
- return new ModelAndView("common/upload/pub_excel_upload");
- }
-
- /**
- * 导出excel
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXls")
- public String exportXls(TSysFileEntity tSysFile,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- CriteriaQuery cq = new CriteriaQuery(TSysFileEntity.class, dataGrid);
- org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSysFile, request.getParameterMap());
- List<TSysFileEntity> tSysFiles = this.tSysFileService.getListByCriteriaQuery(cq,false);
- modelMap.put(NormalExcelConstants.FILE_NAME,"文件管理表");
- modelMap.put(NormalExcelConstants.CLASS,TSysFileEntity.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("文件管理表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,tSysFiles);
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
- /**
- * 导出excel 使模板
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXlsByT")
- public String exportXlsByT(TSysFileEntity tSysFile,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- modelMap.put(NormalExcelConstants.FILE_NAME,"文件管理表");
- modelMap.put(NormalExcelConstants.CLASS,TSysFileEntity.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("文件管理表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
- @SuppressWarnings("unchecked")
- @RequestMapping(params = "importExcel", method = RequestMethod.POST)
- @ResponseBody
- public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
- AjaxJson j = new AjaxJson();
-
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
- for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
- MultipartFile file = entity.getValue();// 获取上传文件对象
- ImportParams params = new ImportParams();
- params.setTitleRows(2);
- params.setHeadRows(1);
- params.setNeedSave(true);
- try {
- List<TSysFileEntity> listTSysFileEntitys = ExcelImportUtil.importExcel(file.getInputStream(),TSysFileEntity.class,params);
- for (TSysFileEntity tSysFile : listTSysFileEntitys) {
- tSysFileService.save(tSysFile);
- }
- j.setMsg("文件导入成功!");
- } catch (Exception e) {
- j.setMsg("文件导入失败!");
- logger.error(ExceptionUtil.getExceptionMessage(e));
- }finally{
- try {
- file.getInputStream().close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return j;
- }
-
- @RequestMapping(method = RequestMethod.GET)
- @ResponseBody
- public List<TSysFileEntity> list() {
- List<TSysFileEntity> listTSysFiles=tSysFileService.getList(TSysFileEntity.class);
- return listTSysFiles;
- }
-
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- @ResponseBody
- public ResponseEntity<?> get(@PathVariable("id") String id) {
- TSysFileEntity task = tSysFileService.get(TSysFileEntity.class, id);
- if (task == null) {
- return new ResponseEntity(HttpStatus.NOT_FOUND);
- }
- return new ResponseEntity(task, HttpStatus.OK);
- }
- /**
- * 删除文件管理表
- *
- * @return
- */
- @RequestMapping(params = "getPWD")
- @ResponseBody
- public AjaxJson getPWD(TSysFileEntity tSysFile, HttpServletRequest request) {
- String message = "密码成功发放,请查收";
- AjaxJson j = new AjaxJson();
- tSysFile = systemService.getEntity(TSysFileEntity.class, tSysFile.getId());
- try{
- sendPassToUser(tSysFile.getFileName(),tSysFile.getUserpass());
-
- }catch(Exception e){
- e.printStackTrace();
- message = "获取密码失败,请联系管理员";
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
- private void sendPassToUser(String filename, String pass) {
- //处理超长文件名,阿里短信平台要求参数不允许超过20个字符
- if(filename.length()>20) {
- filename = filename.substring(0, 14)+"...pdf";
- }
- TSUser user = ResourceUtil.getSessionUser();
- String mobile ;
- if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) {
- mobile = user.getMobilePhone();
- }else {
- mobile = ResourceUtil.getConfigByName(Globals.SERVER_TEST_MOBILE);
- }
- SendSmsResponse sendSmsResponse;
- try {
- // 设置超时时间-可自行调整
- System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
- System.setProperty("sun.net.client.defaultReadTimeout", "10000");
- // 初始化ascClient需要的几个参数
- final String product = "Dysmsapi";// 短信API产品名称(短信产品名固定,无需修改)
- final String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名(接口地址固定,无需修改)
- // 替换成你的AK
- final String accessKeyId = "LTAImsMOGNQTqWvX";// 你的accessKeyId,参考本文档步骤2
- final String accessKeySecret = "zdf5cux8RzTl531tQQ1rIlESTBBiBe";// 你的accessKeySecret,参考本文档步骤2
- // 初始化ascClient,暂时不支持多region(请勿修改)
- IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
- DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
- IAcsClient acsClient = new DefaultAcsClient(profile);
- // 组装请求对象
- SendSmsRequest request = new SendSmsRequest();
- // 使用post提交
- request.setMethod(MethodType.POST);
- // 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
- request.setPhoneNumbers(mobile);
- // 必填:短信签名-可在短信控制台中找到
- request.setSignName("美都环卫物业");
- // 必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
- request.setTemplateCode("SMS_165677189");
- // 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
- // 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
- request.setTemplateParam("{\"filename\":\"" + filename + "\",\"pwd\":\"" + pass + "\"}");
- // 可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
- // request.setSmsUpExtendCode("90997");
- // 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
- // request.setOutId("yourOutId");
- // 请求失败这里会抛ClientException异常
- sendSmsResponse = acsClient.getAcsResponse(request);
- systemService.addLog("密码成功发放,请查收,手机号:"+mobile, Globals.Log_Leavel_INFO,Globals.Log_Type_OTHER);
- } catch (Exception e) {
- logger.error(e);
- }
- }
- @ResponseBody
- @RequestMapping(params = "ossFileDownload")
- public String ossFileDownload(HttpServletRequest request){
- String key = request.getParameter("key");
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET);
- Calendar c = Calendar.getInstance();
- c.add(Calendar.MINUTE, 2);
- String fileUrl = ossClient.generatePresignedUrl(CustomerConstant.BUCKETNAME, key, c.getTime()).toString();
- // 关闭client
- ossClient.shutdown();
- return fileUrl;
- }
- }
|