Explorar o código

酷乐秀优化

zouxuan hai 7 meses
pai
achega
0c1dd4c074

+ 20 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherHomeController.java

@@ -1,20 +1,28 @@
 package com.yonge.cooleshow.teacher.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.dto.excel.UserWithdrawalExport;
+import com.yonge.cooleshow.biz.dal.dto.search.TeacherWithdrawalSearch;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.PianoRoomTimeVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeStatisticalVo;
+import com.yonge.cooleshow.biz.dal.vo.UserWithdrawalVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherHomeWrapper;
 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.easyexcel.ExcelUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -138,4 +146,16 @@ public class TeacherHomeController extends BaseController {
         return succeed(teacherIncomePageInfo);
     }
 
+    @PostMapping("/exportStudentPractice")
+    @ApiOperation(value = "查询导出首页练习数据学员列表")
+    public void 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(),
+                "列表数据");
+    }
+
 }

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -53,6 +54,9 @@ public class TeacherIndexWrapper {
 
         @ApiModelProperty("排序方式 ,ASC升序,DESC降序")
         private String sortType;
+
+        @ApiModelProperty("查询条数")
+        private Integer limit = 10;
     }
 
     @Data
@@ -69,9 +73,6 @@ public class TeacherIndexWrapper {
 
         @ApiModelProperty("练习人数")
         private List<PracticeTimeDto> practiceCounts;
-
-        @ApiModelProperty("学员练习统计")
-        private List<StudentPracticeSummaryDto> studentPracticeSummary;
     }
 
     @Data
@@ -127,6 +128,28 @@ public class TeacherIndexWrapper {
     @Data
     @Builder
     @NoArgsConstructor
+    @AllArgsConstructor
+    public static class StudentPracticeSummaryExportDto{
+
+        @ExcelProperty(value = "学员姓名",index = 0)
+        private String studentName;
+
+        @ExcelProperty(value = "乐器",index = 1)
+        private String subjectName;
+
+        @ExcelProperty(value = "练习总时长",index = 2)
+        private Long totalPracticeTime;
+
+        @ExcelProperty(value = "练习天数",index = 3)
+        private Integer practiceDays;
+
+        @ExcelProperty(value = "平均练习时长",index = 4)
+        private Long averagePracticeTime;
+    }
+
+    @Data
+    @Builder
+    @NoArgsConstructor
     public static class CourseExposureTotal{
 
         @ApiModelProperty("日期")

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

@@ -656,7 +656,7 @@
 		<if test="param.sortField == null or param.sortField == ''">
 			ORDER BY totalPracticeTime DESC
 		</if>
-		LIMIT 10
+		LIMIT ${param.limit}
 	</select>
 	<!--曲目练习统计-->