deason 1 vuosi sitten
vanhempi
commit
12e95e88e3

+ 67 - 0
src/main/java/cn/com/qmth/examcloud/tool/service/export_student_photo/ExportStudentPhotoTask.java

@@ -0,0 +1,67 @@
+package cn.com.qmth.examcloud.tool.service.export_student_photo;
+
+import cn.com.qmth.examcloud.tool.config.SysProperty;
+import cn.com.qmth.examcloud.tool.service.CommonService;
+import cn.com.qmth.examcloud.tool.service.export_student_photo.vo.StudentVO;
+import cn.com.qmth.examcloud.tool.utils.HttpHelper;
+import cn.com.qmth.examcloud.tool.utils.JsonMapper;
+import cn.com.qmth.examcloud.tool.vo.PageInfo;
+import cn.com.qmth.examcloud.tool.vo.user.User;
+import com.fasterxml.jackson.core.type.TypeReference;
+import org.apache.commons.collections4.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class ExportStudentPhotoTask {
+
+    private final static Logger log = LoggerFactory.getLogger(ExportStudentPhotoTask.class);
+
+    @Autowired
+    private SysProperty sysProperty;
+
+    @Autowired
+    private CommonService commonService;
+
+    public void start(User user, Long rootOrgId) {
+        this.execute(user, rootOrgId);
+    }
+    
+    private void execute(User user, Long rootOrgId) {
+        Map<String, String> headers = new HashMap<>();
+        headers.put("key", user.getKey());
+        headers.put("token", user.getToken());
+
+        JsonMapper jsonMapper = new JsonMapper();
+        int sum = 0, pageNo = 0, pageSize = 100;
+
+        String url = user.getServerUrl()
+                + "/api/ecs_core/student/studentPage/%s/%s?rootOrgId=%s&identityNumber=&studentCode=&name=";
+        while (true) {
+            String json = HttpHelper.get(String.format(url, pageNo, pageSize, rootOrgId), headers, null);
+
+            PageInfo<StudentVO> page = jsonMapper.parseJson(json, new TypeReference<PageInfo<StudentVO>>() {
+
+            });
+            if (page == null || CollectionUtils.isEmpty(page.getList())) {
+                break;
+            }
+
+            for (StudentVO student : page.getList()) {
+                // 下载底照
+
+            }
+
+            pageNo++;
+            sum += page.getList().size();
+            float rate = sum * 100f / page.getTotal();
+            log.info("rootOrgId:{} 已下载学生底照数:{} 进度:{}%", rootOrgId, sum, rate);
+        }
+    }
+
+}

+ 43 - 0
src/main/java/cn/com/qmth/examcloud/tool/service/export_student_photo/vo/StudentVO.java

@@ -0,0 +1,43 @@
+package cn.com.qmth.examcloud.tool.service.export_student_photo.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+@Setter
+@Getter
+public class StudentVO implements Serializable {
+
+    private static final long serialVersionUID = -4647126917276922968L;
+
+    private Long rootOrgId;
+
+    private Long id;
+
+    /**
+     * 学生姓名
+     */
+    private String name;
+
+    /**
+     * 学号
+     */
+    private String studentCodesStr;
+
+    /**
+     * 身份证号
+     */
+    private String identityNumber;
+
+    /**
+     * 照片
+     */
+    private String photoPath;
+
+    /**
+     * 是否启用
+     */
+    private Boolean enable;
+
+}

+ 8 - 2
src/test/java/cn/com/qmth/examcloud/tool/ToolTest.java

@@ -6,6 +6,7 @@ import cn.com.qmth.examcloud.tool.config.SysProperty;
 import cn.com.qmth.examcloud.tool.entity.TaskEntity;
 import cn.com.qmth.examcloud.tool.service.CommonService;
 import cn.com.qmth.examcloud.tool.service.create_random_paper_template.CreateRandomPaperTemplateTask;
+import cn.com.qmth.examcloud.tool.service.export_student_photo.ExportStudentPhotoTask;
 import cn.com.qmth.examcloud.tool.service.query_paper_struct.QueryPaperStructTask;
 import cn.com.qmth.examcloud.tool.service.reset_student_password.ResetStudentPasswordTask;
 import cn.com.qmth.examcloud.tool.utils.JsonMapper;
@@ -32,6 +33,9 @@ public class ToolTest {
     @Autowired
     private ResetStudentPasswordTask resetStudentPasswordTask;
 
+    @Autowired
+    private ExportStudentPhotoTask exportStudentPhotoTask;
+
     @Autowired
     private QueryPaperStructTask queryPaperStructTask;
 
@@ -41,6 +45,7 @@ public class ToolTest {
 
         // resetStudentPasswordTask.start(user, 0L);
         // queryPaperStructTask.start(user, 0L);
+        // exportStudentPhotoTask.start(user, 0L);
         // createRandomPaperTemplate(user);
     }
 
@@ -61,8 +66,9 @@ public class ToolTest {
     }
 
     private User doLogin() {
-        String serverUrl = "org0.dev39.qmth.com.cn";
-        String loginName = "admin9";
+        // String serverUrl = "org0.dev39.qmth.com.cn";
+        String serverUrl = "ecs-test.ea100.com.cn";
+        String loginName = "admin5";
         String password = "0";
         String smsCode = "5220";