فهرست منبع

酷乐秀优化

zouxuan 4 ماه پیش
والد
کامیت
c49e984d18

+ 26 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.teacher.controller;
 
+import com.alibaba.excel.EasyExcel;
 import com.alibaba.fastjson.JSON;
+import com.microsvc.toolkit.middleware.oss.OssPluginContext;
+import com.microsvc.toolkit.middleware.oss.impl.TencentOssPlugin;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.PianoRoomTimeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeStatisticalVo;
@@ -10,13 +13,21 @@ import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.utils.date.DateUtil;
 import com.yonge.toolset.utils.easyexcel.ExcelUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+import org.apache.commons.io.FileUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.io.File;
 import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -42,6 +53,8 @@ public class TeacherHomeController extends BaseController {
     private UserAccountRecordService userAccountRecordService;
     @Resource
     private HomeService homeService;
+    @Resource
+    private OssPluginContext ossPluginContext;
 
     @ApiOperation(value = "首页统计数据")
     @GetMapping(value="/count")
@@ -142,14 +155,24 @@ public class TeacherHomeController extends BaseController {
 
     @PostMapping("/exportStudentPractice")
     @ApiOperation(value = "查询导出首页练习数据学员列表")
-    public void exportExcel(@RequestBody TeacherIndexWrapper.StudentSearch studentSearch) {
+    public HttpResponseResult<String> exportExcel(@RequestBody TeacherIndexWrapper.StudentSearch studentSearch) {
         studentSearch.setTeacherId(sysUserService.getUserId());
         studentSearch.setLimit(10000);
         List<TeacherIndexWrapper.StudentPracticeSummaryDto> teacherHomeStudent = homeService.getTeacherHomeStudent(studentSearch);
         List<TeacherIndexWrapper.StudentPracticeSummaryExportDto> list =
                 JSON.parseArray(JSON.toJSONString(teacherHomeStudent), TeacherIndexWrapper.StudentPracticeSummaryExportDto.class);
-        ExcelUtils.exportExcel(list, "学员练习统计" + System.currentTimeMillis(),
-                "列表数据");
+        DateFormat dateFormat1 = new SimpleDateFormat("yyMMddHHmmss");
+        Date date = new Date();
+        String filePath = "/tmp/klx/studentPractice/" + dateFormat1.format(date) + "/"  + studentSearch.getTeacherId() + "_" + LocalDateTime.now().getSecond() + ".xlsx";
+        File srcFile = new File(filePath);
+        EasyExcel.write(filePath,TeacherIndexWrapper.StudentPracticeSummaryExportDto.class).sheet("学员练习统计").doWrite(list);
+        //上传到oss
+        DateFormat dateFormatOss = new SimpleDateFormat("yyyy/MM/dd");
+        String dateStrOss = dateFormatOss.format(date);
+        dateStrOss = "klx/studentPractice/" + dateStrOss + "/" + DateUtil.getHour(date);
+        String excelFilePath = ossPluginContext.getPluginService(TencentOssPlugin.PLUGIN_NAME).uploadFile(dateStrOss, srcFile);
+        FileUtils.deleteQuietly(srcFile);
+        return HttpResponseResult.succeed(excelFilePath);
     }
 
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TeacherIndexWrapper.java

@@ -109,6 +109,9 @@ public class TeacherIndexWrapper {
     @AllArgsConstructor
     public static class StudentPracticeSummaryDto{
 
+        @ApiModelProperty("学员编号")
+        private Long userId;
+
         @ApiModelProperty("学员姓名")
         private String studentName;
 

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -635,7 +635,7 @@
 	</select>
 	<select id="getStudentTrainOverViewList"
 			resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$StudentPracticeSummaryDto">
-		select su.username_ studentName,su.avatar_ avatar,sb.name_ subjectName,SUM(smcr.play_time_) totalPracticeTime,
+		select smcr.user_id_ userId,su.username_ studentName,su.avatar_ avatar,sb.name_ subjectName,SUM(smcr.play_time_) totalPracticeTime,
 		       COUNT(DISTINCT DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')) practiceDays,
 		       SUM(smcr.play_time_) / COUNT(DISTINCT DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')) averagePracticeTime
 		from sys_music_compare_record smcr