package com.qxueyou.scc.base.service.impl; import java.io.File; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.IFileUploadService; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.base.util.UUIDUtils; import com.qxueyou.scc.sys.model.SysFileUploadTrace; import com.qxueyou.scc.sys.model.SysLog; import com.qxueyou.scc.sys.service.IOssService; import com.qxueyou.scc.sys.service.IOssVideoService; import com.qxueyou.scc.sys.service.ISysLogService; /** * ËùÓÐÎļþÉÏ´«µÄ²Ù×÷£¬µ¥¶Àµ½ÎļþÉÏ´«¹¤³Ìºó£¬ºóÐøÒµÎñ²Ù×÷ÐèÒªÏÂÔØÎļþµ÷Óõķ½·¨ * @author ody.yuan * */ @Service(value = "FileUploadService") public class FileUploadService extends CommonAppService implements IFileUploadService { private final Logger log = LogManager.getLogger(FileUploadService.class); @Autowired ISysLogService syslogService; @Autowired IOssService ossService; @Autowired IOssVideoService ossVideoService; @Autowired ISysLogService logService ; @Override public File doGetOssFile(String key, String directory,String module,String userId) { File file = null ; try{ file = ossService.getObject(key, directory); return file; }catch( Exception e ){ log.error(userId + "ʧ°Ü£ºOSSÏÂÔØÂ·¾¶£º" + key + " ;Ó¦Ó÷þÎñÆ÷·¾¶£º" + directory + " ; errMsg=" + e.getMessage() , e ); return file ; } } @Override public File doGetOssVideoFile(String key, String directory,String module,String userId) { File file = null ; try{ file = ossVideoService.getObject(key, directory); return file; }catch( Exception e ){ log.error(userId + "ʧ°Ü£ºOSSVideoÏÂÔØÂ·¾¶£º" + key + " ;Ó¦Ó÷þÎñÆ÷·¾¶£º" + directory + " ; errMsg=" + e.getMessage() , e ); return file ; } } @Override public Result doDeleteTempOssFile(String directory,String module,String userId) { Boolean result = FileUtils.deleteQuietly(new File(directory)); if( result ){ this.insertUploadLog(userId,"³É¹¦É¾³ý£ºOSS-OSSVideo0£º" + directory , module ); return new Result(true); }else{ return new Result(false); } } @Override public Result doDeleteTempOssFile(File file,String module,String userId) { Boolean result = FileUtils.deleteQuietly(file); if( result ){ this.insertUploadLog(userId,"³É¹¦É¾³ý£ºOSS-OSSVideo1£º" + file.getAbsolutePath() , module ); return new Result(true); }else{ log.error(userId + "ʧ°Ü£ºOSS-OSSVideoɾ³ý±¾µØÎļþ1:" + file.getAbsolutePath() ); this.insertUploadLog(userId,"ʧ°Üɾ³ý£ºOSS-OSSVideo1£º" + file.getAbsolutePath() , module ); return new Result(false); } } /** * ²åÈë±¾µØÎļþÏÂÔØÈÕÖ¾ * @param content ÄÚÈÝ * @param desp ÉÏ´«Ä£¿é * @return */ private Result insertUploadLog(String userId ,String content, String desp ){ SysLog log = new SysLog(); TraceUtils.setCreateTrace(log); log.setUserId(userId); log.setContent(content); log.setModule("FILE_UPLOAD_APPLICATION"); log.setDesp(desp.length() > 120 ? desp.substring(0,120) : desp); log.setDeleteFlag(false); log.setType(SysLog.LOG_TYPE_BUSINESS); this.syslogService.insertLog(log); return new Result(true); } /** * ¸üÐÂÉÏ´«ÎļþʹÓù켣 * @param fullPath ·¾¶ * @param module * @param useFlag ʹÓÃ״̬ * @param bussinessId ÒµÎñID * @return */ public Result updateUploadTrace(String fullPath,String module,int useFlag,String bussinessId){ String hql = " from SysFileUploadTrace where fullPath = ? and module = ?"; SysFileUploadTrace trace = findUnique(hql, CollectionUtils.newList(fullPath,module), SysFileUploadTrace.class); if(trace == null){ return new Result(false); } TraceUtils.setUpdateTrace(trace); trace.setBussinessId(bussinessId); trace.setUseFlag(useFlag); return save(trace); } /** * ͨ¹ý·¾¶ÏÂÔØÎ¢ÐÅͼÏñµ½·þÎñÆ÷ * @return */ @SuppressWarnings("unused") @Override public String downloadWxImg(String strUrl,String openId){ if(StringUtils.isBlank(strUrl)){ return null; } try { URL url = new URL(strUrl); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); InputStream inStream = conn.getInputStream();//ͨ¹ýÊäÈëÁ÷»ñȡͼƬÊý¾Ý String uuid = UUIDUtils.generateUUID(); String imgPath = "/web/res/img/user/"+uuid+"/" + openId + ".png"; // Result result = ossService.uplpadImage(inStream, "png", imgPath); // if (result.isSuccess()) { // return imgPath; // } } catch (Exception e) { e.printStackTrace(); log.error("΢ÐÅÍ·ÏñÉÏ´«Ê§°Ü" + e); } return null; } }