WANG 6 年之前
父节点
当前提交
2da8ce290a

+ 26 - 2
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/StudentCloudServiceProvider.java

@@ -14,15 +14,17 @@ import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
 import cn.com.qmth.examcloud.core.basic.api.bean.StudentBean;
 import cn.com.qmth.examcloud.core.basic.api.request.GetStudentReq;
 import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentReq;
+import cn.com.qmth.examcloud.core.basic.api.request.UnbindStudentCodeReq;
 import cn.com.qmth.examcloud.core.basic.api.response.GetStudentResp;
 import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentResp;
+import cn.com.qmth.examcloud.core.basic.api.response.UnbindStudentCodeResp;
 import cn.com.qmth.examcloud.core.basic.dao.OrgRepo;
 import cn.com.qmth.examcloud.core.basic.dao.StudentRepo;
 import cn.com.qmth.examcloud.core.basic.dao.UserRepo;
 import cn.com.qmth.examcloud.core.basic.dao.entity.OrgEntity;
 import cn.com.qmth.examcloud.core.basic.dao.entity.StudentEntity;
+import cn.com.qmth.examcloud.core.basic.service.StudentService;
 import cn.com.qmth.examcloud.core.basic.service.bean.StudentInfo;
-import cn.com.qmth.examcloud.core.basic.service.impl.StudentServiceImpl;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -46,7 +48,7 @@ public class StudentCloudServiceProvider extends ControllerSupport implements St
 	UserRepo userRepo;
 
 	@Autowired
-	StudentServiceImpl studentService;
+	StudentService studentService;
 
 	@Autowired
 	StudentRepo studentRepo;
@@ -144,4 +146,26 @@ public class StudentCloudServiceProvider extends ControllerSupport implements St
 		return resp;
 	}
 
+	@ApiOperation(value = "解绑学号")
+	@PostMapping("unbindStudentCode")
+	@Override
+	public UnbindStudentCodeResp unbindStudentCode(@RequestBody UnbindStudentCodeReq req) {
+		Long rootOrgId = req.getRootOrgId();
+		String studentCode = req.getStudentCode();
+
+		if (null == rootOrgId) {
+			throw new StatusException("B-160001", "rootOrgId is null");
+		}
+		if (StringUtils.isBlank(studentCode)) {
+			throw new StatusException("B-160002", "studentCode is blank");
+		}
+
+		int affected = studentService.unbindStudentCodeByStudentCode(rootOrgId, studentCode);
+
+		UnbindStudentCodeResp resp = new UnbindStudentCodeResp();
+		resp.setAffected(affected);
+
+		return resp;
+	}
+
 }

+ 8 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/StudentService.java

@@ -35,4 +35,12 @@ public interface StudentService {
 	StudentInfo getStudentInfo(Long rootOrgId, Long studentId, String identityNumber,
 			String studentCode, String securityPhone);
 
+	/**
+	 * 解绑学号
+	 *
+	 * @author WANGWEI
+	 * @param studentCode
+	 */
+	int unbindStudentCodeByStudentCode(Long rootOrgId, String studentCode);
+
 }

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

@@ -268,4 +268,41 @@ public class StudentServiceImpl implements StudentService {
 		return info;
 	}
 
+	@Override
+	public int unbindStudentCodeByStudentCode(Long rootOrgId, String studentCode) {
+
+		StudentEntity studentEntity = studentRepo.findByStudentCodeAndRootOrgId(studentCode,
+				rootOrgId);
+
+		if (null == studentEntity) {
+			return 0;
+		}
+
+		studentEntity.setStudentCode(null);
+		StudentEntity saved = studentRepo.save(studentEntity);
+
+		SyncStudentReq req = new SyncStudentReq();
+		req.setEnable(saved.getEnable());
+		req.setId(saved.getId());
+		req.setIdentityNumber(saved.getIdentityNumber());
+		req.setName(saved.getName());
+
+		req.setOrgId(saved.getOrgId());
+		OrgEntity org = orgRepo.findOne(saved.getOrgId());
+		req.setOrgCode(org.getCode());
+		req.setOrgName(org.getName());
+
+		req.setPhoneNumber(saved.getPhoneNumber());
+		req.setPhotoPath(saved.getPhotoPath());
+		req.setRootOrgId(saved.getRootOrgId());
+		req.setSecurityPhone(saved.getSecurityPhone());
+		req.setStudentCode(saved.getStudentCode());
+
+		req.setSyncType("update");
+
+		dataSyncCloudService.syncStudent(req);
+
+		return 1;
+	}
+
 }