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;
|
}
|
}
|