学生认领新增按学号认领(不校验姓名)
学号已在认证平台持密码验过,属可信来源,不必再用姓名二次校验 (名册姓名与平台姓名格式不一致时会误伤)。名册无此学号、已被他人 认领仍返回 false。
This commit is contained in:
@@ -34,6 +34,18 @@ public interface StudentClaimService {
|
||||
*/
|
||||
ClaimResult claimByXhAndName(User user, String xh, String xm);
|
||||
|
||||
/**
|
||||
* 按学号认领,<b>不校验姓名</b>。
|
||||
*
|
||||
* <p>供统一身份认证登录使用:学号是持密码在认证平台验过的,属可信来源,
|
||||
* 不再需要姓名二次校验(名册姓名与平台姓名格式不一致时会误伤)。
|
||||
*
|
||||
* @param user 登录用户
|
||||
* @param xh 学号
|
||||
* @return 是否认领成功(名册无此学号、已被他人认领都返回 false)
|
||||
*/
|
||||
boolean claimByXh(User user, String xh);
|
||||
|
||||
/**
|
||||
* 人工认领/改绑。
|
||||
*
|
||||
|
||||
@@ -88,6 +88,28 @@ public class StudentClaimServiceImpl implements StudentClaimService {
|
||||
: ClaimResult.fail("认领失败");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean claimByXh(User user, String xh) {
|
||||
if (user == null || user.getUserId() == null) {
|
||||
return false;
|
||||
}
|
||||
String studentNo = StrUtil.trimToNull(xh);
|
||||
if (studentNo == null) {
|
||||
return false;
|
||||
}
|
||||
GxmuStudent student = studentMapper.selectOne(new LambdaQueryWrapper<GxmuStudent>()
|
||||
.eq(GxmuStudent::getTenantId, OpenplatSyncConstants.TENANT_ID)
|
||||
.eq(GxmuStudent::getXh, studentNo)
|
||||
.last("limit 1"));
|
||||
if (student == null) {
|
||||
return false;
|
||||
}
|
||||
if (student.getUserId() != null) {
|
||||
return student.getUserId().equals(user.getUserId());
|
||||
}
|
||||
return doClaim(user, student);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean bind(Integer studentId, Integer userId, String phone, Integer tenantId) {
|
||||
GxmuStudent student = getStudent(studentId, tenantId);
|
||||
|
||||
Reference in New Issue
Block a user