wangwei 7 سال پیش
والد
کامیت
40c545f9fc

+ 37 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/StudentFaceCloudServiceClient.java

@@ -0,0 +1,37 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.core.basic.api.StudentFaceCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentFaceInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentFaceInfoResp;
+
+/**
+ * demo 云服务客户端
+ * 
+ * @author WANGWEI
+ *
+ */
+@Service
+public class StudentFaceCloudServiceClient extends BasicCloudClientSupport
+		implements
+			StudentFaceCloudService {
+
+	private static final long serialVersionUID = -7456923008162697199L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SaveStudentFaceInfoResp saveStudentFaceInfo(SaveStudentFaceInfoReq req) {
+		return post("studentFace/saveStudentFaceInfo", req, SaveStudentFaceInfoResp.class);
+	}
+
+}

+ 62 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/StudentFaceCloudServiceProvider.java

@@ -0,0 +1,62 @@
+package cn.com.qmth.examcloud.core.basic.api.provider;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.commons.base.exception.StatusException;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.basic.api.StudentFaceCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentFaceInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentFaceInfoResp;
+import cn.com.qmth.examcloud.core.basic.dao.StudentFaceInfoRepo;
+import cn.com.qmth.examcloud.core.basic.dao.StudentRepo;
+import cn.com.qmth.examcloud.core.basic.dao.entity.Student;
+import cn.com.qmth.examcloud.core.basic.dao.entity.StudentFaceInfo;
+import io.swagger.annotations.ApiOperation;
+
+@RestController
+@RequestMapping("${$rmp.cloud.basic}" + "demo")
+public class StudentFaceCloudServiceProvider extends ControllerSupport
+		implements
+			StudentFaceCloudService {
+
+	private static final long serialVersionUID = 8674317301051207328L;
+
+	@Autowired
+	StudentFaceInfoRepo studentFaceInfoRepo;
+
+	@Autowired
+	StudentRepo studentRepo;
+
+	@ApiOperation(value = "保存学生人脸数据")
+	@PostMapping("saveStudentFaceInfo")
+	@Override
+	public SaveStudentFaceInfoResp saveStudentFaceInfo(@RequestBody SaveStudentFaceInfoReq req) {
+
+		String photoPath = req.getPhotoPath();
+
+		if (StringUtils.isBlank(photoPath)) {
+			throw new StatusException("B-412001", "photoPath is blank");
+		}
+
+		Long studentId = req.getStudentId();
+		Student student = studentRepo.findOne(studentId);
+		student.setPhotoPath(req.getPhotoPath());
+
+		StudentFaceInfo studentFaceInfo = studentFaceInfoRepo.findByStudentId(student.getId());
+		if (studentFaceInfo == null) {
+			studentFaceInfo = new StudentFaceInfo();
+			studentFaceInfo.setStudent(student);
+		}
+
+		studentFaceInfo.setFaceSetToken(req.getFaceSetToken());
+		studentFaceInfo.setFaceToken(req.getFaceToken());
+		studentFaceInfoRepo.save(studentFaceInfo);
+		return null;
+	}
+
+}

+ 18 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/StudentFaceCloudService.java

@@ -0,0 +1,18 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentFaceInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentFaceInfoResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public interface StudentFaceCloudService extends CloudService {
+
+	SaveStudentFaceInfoResp saveStudentFaceInfo(SaveStudentFaceInfoReq req);
+
+}

+ 56 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveStudentFaceInfoReq.java

@@ -0,0 +1,56 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class SaveStudentFaceInfoReq extends BaseRequest {
+
+	private static final long serialVersionUID = -8260481601116583797L;
+
+	private Long studentId;
+
+	private String faceToken;
+
+	private String faceSetToken;
+
+	private String photoPath;
+
+	public Long getStudentId() {
+		return studentId;
+	}
+
+	public void setStudentId(Long studentId) {
+		this.studentId = studentId;
+	}
+
+	public String getFaceToken() {
+		return faceToken;
+	}
+
+	public void setFaceToken(String faceToken) {
+		this.faceToken = faceToken;
+	}
+
+	public String getFaceSetToken() {
+		return faceSetToken;
+	}
+
+	public void setFaceSetToken(String faceSetToken) {
+		this.faceSetToken = faceSetToken;
+	}
+
+	public String getPhotoPath() {
+		return photoPath;
+	}
+
+	public void setPhotoPath(String photoPath) {
+		this.photoPath = photoPath;
+	}
+
+}

+ 29 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveStudentFaceInfoResp.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class SaveStudentFaceInfoResp extends BaseResponse {
+
+	/**
+	 * 属性注释
+	 */
+	private static final long serialVersionUID = 731016458089573829L;
+
+	private Long id;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+}

+ 10 - 47
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/entity/StudentFaceInfo.java

@@ -1,65 +1,47 @@
 package cn.com.qmth.examcloud.core.basic.dao.entity;
 
-import java.util.Date;
-
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-
-import org.springframework.format.annotation.DateTimeFormat;
 
-import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+import cn.com.qmth.examcloud.commons.web.jpa.JpaEntity;
 
 @Entity
 @Table(name = "ecs_core_student_face_info")
-public class StudentFaceInfo implements JsonSerializable {
+public class StudentFaceInfo extends JpaEntity {
 
 	private static final long serialVersionUID = -4192537584889662390L;
 
 	@Id
 	@GeneratedValue
 	private Long id;
-	
+
 	@OneToOne
 	private Student student;
 
 	private String faceToken;
 
 	private String faceSetToken;
-	
+
 	private String photoMD5;
-	/**
-	 * 创建时间
-	 */
-	@Temporal(value = TemporalType.TIMESTAMP)
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date createTime;
+
 	/**
 	 * 创建人
 	 */
 	private String createUser;
-	/**
-	 * 更新时间
-	 */
-	@Temporal(value = TemporalType.TIMESTAMP)
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date updateTime;
+
 	/**
 	 * 更新人
 	 */
 	private String updateUser;
+
 	/**
-	 * 创建方式
-	 * 接口-单个
-	 * 接口-ZIP批量
-	 * 照片上传工具
+	 * 创建方式 接口-单个 接口-ZIP批量 照片上传工具
 	 */
 	private String createType;
-	
+
 	public Long getId() {
 		return id;
 	}
@@ -100,24 +82,6 @@ public class StudentFaceInfo implements JsonSerializable {
 		this.photoMD5 = photoMD5;
 	}
 
-	public Date getCreateTime() {
-		return createTime;
-	}
-
-	public void setCreateTime(Date createTime) {
-		this.createTime = createTime;
-	}
-
-	public Date getUpdateTime() {
-		return updateTime;
-	}
-
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
-
-	public StudentFaceInfo() {}
-
 	public String getCreateUser() {
 		return createUser;
 	}
@@ -141,6 +105,5 @@ public class StudentFaceInfo implements JsonSerializable {
 	public void setCreateType(String createType) {
 		this.createType = createType;
 	}
-	
-	
+
 }

+ 0 - 1
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/StudentFaceInfoService.java

@@ -34,7 +34,6 @@ public class StudentFaceInfoService {
 		}
 		
     	if(old == null){
-			studentFaceInfo.setCreateTime(new Date());
 			return studentFaceInfoRepo.save(studentFaceInfo);
     	}
     	old.setUpdateTime(new Date());