身份证存在并且姓名和身份证要匹配的登录

This commit is contained in:
guoshengxiong 2024-05-22 10:08:36 +08:00
parent 2e5d153db2
commit b074754829
3 changed files with 40 additions and 2 deletions

View File

@ -1,7 +1,6 @@
package com.zhgd.xmgl.modules.basicdata.controller;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zhgd.annotation.OperLog;
import com.zhgd.jeecg.common.api.vo.Result;
@ -9,6 +8,7 @@ import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.entity.dto.LoginInfoByTokenDto;
import com.zhgd.xmgl.modules.basicdata.service.ILoginService;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -22,7 +22,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
import java.util.Objects;
/**
* @program: devManage
@ -103,6 +102,18 @@ public class LoginController {
return Result.success(resultMap);
}
@OperLog(operModul = "劳务人员根据身份证号和名称登录", operType = "劳务人员根据身份证号和名称登录", operDesc = "劳务人员根据身份证号和名称登录")
@ApiOperation(value = "劳务人员根据身份证号和名称登录", notes = "劳务人员根据身份证号和名称登录", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "name", required = true, value = "姓名", paramType = "body"),
@ApiImplicitParam(name = "idCard", required = true, value = "身份证号", paramType = "body"),
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = false, dataType = "String"),
})
@PostMapping(value = "/workerInfo/login")
public Result<WorkerInfo> workerInfoLogin(@RequestBody Map<String, Object> map) {
return Result.success(systemUserService.workerInfoLogin(map));
}
@ApiOperation(value = "根据token获取用户登录信息", notes = "根据token获取用户登录信息", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "headquartersSn", required = false, value = "总公司sn", paramType = "body"),

View File

@ -7,6 +7,7 @@ import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.entity.dto.LoginInfoByTokenDto;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import java.util.HashMap;
import java.util.List;
@ -95,6 +96,8 @@ public interface ISystemUserService extends IService<SystemUser> {
Map<String, Object> deviceLogin(Map<String, Object> map);
WorkerInfo workerInfoLogin(Map<String, Object> map);
/**
* 是否项目子账号
*

View File

@ -1460,6 +1460,30 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
return result;
}
@Override
public WorkerInfo workerInfoLogin(Map<String, Object> map) {
String idCard = MapUtils.getString(map, "idCard");
String name = MapUtils.getString(map, "name");
String projectSn = MapUtils.getString(map, "projectSn");
if (StrUtil.isBlank(idCard) || StrUtil.isBlank(name)) {
throw new OpenAlertException("idCard或name不能为空");
}
List<WorkerInfo> workerInfos = workerInfoMapper.selectList(new LambdaQueryWrapper<WorkerInfo>()
.eq(WorkerInfo::getIdCard, idCard)
.eq(WorkerInfo::getWorkerName, name)
.eq(StrUtil.isNotBlank(projectSn), WorkerInfo::getProjectSn, projectSn)
);
if (CollUtil.isEmpty(workerInfos)) {
return null;
}
for (WorkerInfo dev : workerInfos) {
if (!dev.getWorkerName().equals(name)) {
throw new OpenAlertException("人员姓名错误");
}
}
return workerInfos.get(0);
}
@Override
public boolean isSubProject() {
UserInfo user = SecurityUtils.getUser();