Explorar o código

Merge branch 'feature/1019-tenant' into online

yuanliang hai 1 ano
pai
achega
e5e16f4249

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -195,7 +195,7 @@ public class StudentController extends BaseController {
 
         String format = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
         OssFileWrapper.ExportFile exportFile = ossFileService.uploadFile(templateList,
-                StudentWrapper.ExportStudentTemplate.class, format, "学生");
+                StudentWrapper.ExportStudentTemplate.class, format, "学生", "student");
         return succeed(exportFile);
     }
 

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java

@@ -141,7 +141,7 @@ public class TeacherController extends BaseController {
 
         String format = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
         OssFileWrapper.ExportFile exportFile = ossFileService.uploadFile(templates,
-                TeacherWrapper.ExportTeacherTemplate.class, format, "老师");
+                TeacherWrapper.ExportTeacherTemplate.class, format, "老师", "teacher");
         return succeed(exportFile);
     }
 

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/OssFileService.java

@@ -9,9 +9,10 @@ import java.util.List;
  */
 public interface OssFileService {
 
+    OssFileWrapper.ExportFile uploadFile(List<?> dataList, Class<?> clazz, String fileName, String sheetName);
 
     OssFileWrapper.ExportFile uploadFile(List<?> dataList, Class<?> clazz,
-                                         String fileName, String sheetName);
+                                         String fileName, String sheetName, String tag);
 
     OssFileWrapper.ExportFile uploadFileWithShortUrl(List<?> dataList, Class<?> clazz,
                                                      String fileName, String sheetName);

+ 42 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/OssFileServiceImpl.java

@@ -11,6 +11,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.OssFileWrapper;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.utils.http.HttpUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -71,6 +72,47 @@ public class OssFileServiceImpl implements OssFileService {
     }
 
     @Override
+    public OssFileWrapper.ExportFile uploadFile(List<?> dataList, Class<?> clazz, String fileName, String sheetName,
+                                                String tag) {
+        if (CollectionUtils.isEmpty(dataList)) {
+            throw new BizException("导出数据为空");
+        }
+
+        // OSS上传文件目录
+        String uploadOssPath = MessageFormat.format("excel-download/{0}/{1}", DateTime.now().toString("yyyy-MM"), tag);
+
+        // 文件上传下载地址
+        String uploadPath = MessageFormat.format("{0}/{1}-{2}/{3}.xlsx", uploadOssPath,
+                String.valueOf(IdWorker.getId()),
+                DateTime.now().toString("MMddHHmmss"), fileName);
+
+        // 本地文件地址
+        String localPath = DownloadManager.getInstance().path(uploadPath);
+        log.debug("pageExport localPath={}", localPath);
+
+        EasyExcel
+                .write(localPath, clazz)
+                //.withTemplate(resource.getStream()) // 利用模板的输出流
+                .sheet(0, sheetName)
+                .doWrite(dataList);
+
+        // 上传本地文件到OSS服务器
+        String downloadPath = ossPluginContext.getPluginService(TencentOssPlugin.PLUGIN_NAME)
+                .uploadFile(uploadOssPath, new File(localPath));
+        log.debug("pageExport downloadPath={}", downloadPath);
+
+        // 删除本地缓存文件
+        DownloadManager.getInstance().deleteOnExit(localPath);
+
+        // 学生统计下载
+        return OssFileWrapper.ExportFile
+                .builder()
+                .fileName(MessageFormat.format("{0}.xlsx", fileName))
+                .downloadPath(downloadPath)
+                .build();
+    }
+
+    @Override
     public OssFileWrapper.ExportFile uploadFileWithShortUrl(List<?> dataList, Class<?> clazz,
                                                             String fileName, String sheetName) {
         if (CollectionUtils.isEmpty(dataList)) {

+ 1 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -193,7 +193,7 @@ public class StudentController extends BaseController {
 
         String format = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
         OssFileWrapper.ExportFile exportFile = ossFileService.uploadFile(templateList,
-                StudentWrapper.ExportStudentTemplate.class, format, "学生");
+                StudentWrapper.ExportStudentTemplate.class, format, "学生", "student");
         return succeed(exportFile);
     }
 

+ 1 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java

@@ -141,7 +141,7 @@ public class TeacherController extends BaseController {
 
         String format = new SimpleDateFormat("yyyyMMddHHmm").format(new Date());
         OssFileWrapper.ExportFile exportFile = ossFileService.uploadFile(templates,
-                TeacherWrapper.ExportTeacherTemplate.class, format, "老师");
+                TeacherWrapper.ExportTeacherTemplate.class, format, "老师", "teacher");
         return succeed(exportFile);
     }