ting.yin преди 8 години
родител
ревизия
2bc7183036

+ 18 - 1
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/CourseApi.java

@@ -3,9 +3,12 @@ package cn.com.qmth.examcloud.service.core.api;
 import io.swagger.annotations.ApiOperation;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -21,9 +24,12 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import cn.com.qmth.examcloud.common.util.excel.ExcelError;
+import cn.com.qmth.examcloud.service.core.assemble.CourseAssembler;
+import cn.com.qmth.examcloud.service.core.dto.CourseDTO;
 import cn.com.qmth.examcloud.service.core.entity.Course;
 import cn.com.qmth.examcloud.service.core.repo.CourseRepo;
 import cn.com.qmth.examcloud.service.core.service.CourseService;
+import cn.com.qmth.examcloud.service.core.util.ExportUtils;
 
 /**
  * 课程服务API
@@ -35,9 +41,10 @@ public class CourseApi {
 
     @Autowired
     CourseRepo courseRepo;
-
     @Autowired
     CourseService courseService;
+    @Autowired
+    CourseAssembler courseAssembler;
 
     @ApiOperation(value="查询所有课程",notes="enable为查询条件,可为空")
     @GetMapping
@@ -88,4 +95,14 @@ public class CourseApi {
 			return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
 		}
     }
+    
+    @ApiOperation(value="导出课程",notes = "导出")
+    @GetMapping("/export")
+    public void exportCourse(@RequestParam Long orgId,HttpServletResponse response){
+    	List<CourseDTO> list = new ArrayList<CourseDTO>();
+    	courseRepo.findByOrgId(orgId).forEach(c -> {
+    		list.add(courseAssembler.toDTO(c));
+        });
+    	ExportUtils.exportEXCEL("课程列表", CourseDTO.class, list, response);
+    }
 }

+ 5 - 5
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/OrgApi.java

@@ -39,11 +39,11 @@ public class OrgApi {
     @Autowired
     OrgService orgService;
 
-    @ApiOperation(value="查询所有机构")
-    @GetMapping
-    public ResponseEntity getAllOrg(){
-        return new ResponseEntity(orgRepo.findAll(), HttpStatus.OK);
-    }
+//    @ApiOperation(value="查询所有机构")
+//    @GetMapping
+//    public ResponseEntity getAllOrg(){
+//        return new ResponseEntity(orgRepo.findAll(), HttpStatus.OK);
+//    }
 
     @ApiOperation(value="按ID查询机构",notes="ID查询")
     @GetMapping("/{id}")

+ 11 - 11
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/StudentApi.java

@@ -39,17 +39,17 @@ public class StudentApi {
     @Autowired
     StudentService studentService;
 
-    @ApiOperation(value="查询所有学生",notes="分页")
-    @GetMapping("/{curPage}/{pageSize}")
-    public ResponseEntity getAllStudent(@ModelAttribute Student studentCriteria, @PathVariable Integer curPage, @PathVariable Integer pageSize){
-        return new ResponseEntity(studentService.getAllStudent(studentCriteria,new PageRequest(curPage - 1,pageSize)),HttpStatus.OK);
-    }
-
-    @ApiOperation(value="查询所有学生",notes="不分页")
-    @GetMapping
-    public ResponseEntity getAllStudent(@ModelAttribute Student studentCriteria){
-        return new ResponseEntity(studentService.getAllStudent(studentCriteria),HttpStatus.OK);
-    }
+//    @ApiOperation(value="查询所有学生",notes="分页")
+//    @GetMapping("/{curPage}/{pageSize}")
+//    public ResponseEntity getAllStudent(@ModelAttribute Student studentCriteria, @PathVariable Integer curPage, @PathVariable Integer pageSize){
+//        return new ResponseEntity(studentService.getAllStudent(studentCriteria,new PageRequest(curPage - 1,pageSize)),HttpStatus.OK);
+//    }
+//
+//    @ApiOperation(value="查询所有学生",notes="不分页")
+//    @GetMapping
+//    public ResponseEntity getAllStudent(@ModelAttribute Student studentCriteria){
+//        return new ResponseEntity(studentService.getAllStudent(studentCriteria),HttpStatus.OK);
+//    }
 
     @ApiOperation(value="按ID查询学生",notes="ID查询")
     @GetMapping("/{id}")

+ 7 - 7
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/UserApi.java

@@ -31,11 +31,11 @@ public class UserApi {
     UserRepo userRepo;
 
 
-    @ApiOperation(value="查询所有用户")
-    @GetMapping
-    public ResponseEntity getAllUser(){
-        return new ResponseEntity(userRepo.findAll(), HttpStatus.OK);
-    }
+//    @ApiOperation(value="查询所有用户")
+//    @GetMapping
+//    public ResponseEntity getAllUser(){
+//        return new ResponseEntity(userRepo.findAll(), HttpStatus.OK);
+//    }
 
     @ApiOperation(value="按id查询用户",notes="id查询")
     @GetMapping("/{id}")
@@ -43,14 +43,14 @@ public class UserApi {
         return new ResponseEntity(userRepo.findOne(id), HttpStatus.OK);
     }
 
-    @ApiOperation(value="按orgId查询用户",notes="机构id查询")
+    @ApiOperation(value="按orgId查询用户",notes="机构id查询机构用户")
     @GetMapping("/org/{orgId}")
     public ResponseEntity getUserByOrgId(@PathVariable long orgId){
         List<User> userList = userRepo.findByOrgIdAndType(orgId, UserType.NOT_STUDENT.name());
         return new ResponseEntity(userList, HttpStatus.OK);
     }
 
-    @ApiOperation(value="按rootOrgId查询用户",notes="根机构id查询")
+    @ApiOperation(value="按rootOrgId查询用户",notes="根机构id查询机构用户")
     @GetMapping("/rootOrg/{rootOrgId}")
     public ResponseEntity getUserByRootOrgId(@PathVariable long rootOrgId){
         List<User> userList = userRepo.findByRootOrgIdAndType(rootOrgId, UserType.NOT_STUDENT.name());

+ 36 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/util/ExportUtils.java

@@ -0,0 +1,36 @@
+package cn.com.qmth.examcloud.service.core.util;
+
+import java.net.URLEncoder;
+import java.util.Collection;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+
+import cn.com.qmth.examcloud.common.util.excel.ExcelWriter;
+
+/*
+ * excel导出工具
+ */
+public class ExportUtils {
+
+    private static final String DEFALUT_CONTENT_TYPE = "application/vnd.ms-excel";
+
+    private static final String DEFALUT_EXT = ".xlsx";
+
+    public static void exportEXCEL(String fileName,Class<?> dataClass,
+                             Collection<?> dataset,HttpServletResponse response) {
+        try {
+        	
+            response.setHeader("Content-Disposition", "inline; filename="
+                    +URLEncoder.encode(fileName, "UTF-8") + DEFALUT_EXT);
+            response.setContentType(DEFALUT_CONTENT_TYPE);
+            ServletOutputStream outputStream = response.getOutputStream();
+            ExcelWriter excelExporter = new ExcelWriter(dataClass);
+            excelExporter.write("sheet1",dataset,outputStream);
+            outputStream.flush();
+            outputStream.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 22 - 0
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/assemble/CourseAssembler.java

@@ -0,0 +1,22 @@
+package cn.com.qmth.examcloud.service.core.assemble;
+
+import org.springframework.stereotype.Component;
+
+import cn.com.qmth.examcloud.service.core.dto.CourseDTO;
+import cn.com.qmth.examcloud.service.core.entity.Course;
+
+@Component
+public class CourseAssembler {
+	
+	public CourseDTO toDTO(Course course){
+		CourseDTO dto = null;
+		if(dto == null){
+			dto = new CourseDTO();
+			dto.setName(course.getName());
+			dto.setCode(course.getCode());
+			dto.setLevel(course.getLevel().getName());
+		}
+		return dto;
+	}
+	
+}

+ 4 - 3
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/dto/CourseDTO.java

@@ -11,14 +11,15 @@ import cn.com.qmth.examcloud.common.util.excel.ExcelProperty;
 public class CourseDTO{
 
 
-    @ExcelProperty(index = 1)
+    @ExcelProperty(index = 1,name = "课程代码")
 	private String code;
 
-	@ExcelProperty(index = 0)
+	@ExcelProperty(index = 0,name = "课程名称")
     private String name;
 
 	private Long orgId;
-    @ExcelProperty(index = 2)
+	
+    @ExcelProperty(index = 2,name = "层次")
 	private String level;
 
 	public String getCode() {

+ 0 - 2
core-domain/src/main/java/cn/com/qmth/examcloud/service/core/entity/Course.java

@@ -48,11 +48,9 @@ public class Course implements Serializable{
 	@Enumerated(EnumType.STRING)
 	private CourseLevel level;
 
-	@Temporal(value = TemporalType.DATE)
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createTime;
 
-	@Temporal(value = TemporalType.DATE)
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date updateTime;