|
|
|
@ -28,97 +28,97 @@ public class AppEnfLoginController extends LoginController { |
|
|
|
private final ISysUserService sysUserService; |
|
|
|
private final ISysDeptService sysDeptService; |
|
|
|
private final IAppEnfLoginService appEnfLoginService; |
|
|
|
//
|
|
|
|
// /**
|
|
|
|
// * 执法端用户登录
|
|
|
|
// *
|
|
|
|
// * @param params 包含 secretName(登录账号)和 secretKey(AES加密后的密码)
|
|
|
|
// * @return 登录结果(token + 用户信息)
|
|
|
|
// */
|
|
|
|
// @SaIgnore
|
|
|
|
// @PostMapping("/do")
|
|
|
|
// public R<Map<String, Object>> validate(@RequestBody Map<String, String> params) {
|
|
|
|
// String loginName = params.get("secretName");
|
|
|
|
// String secretKey = params.get("secretKey");
|
|
|
|
//
|
|
|
|
// // 1. 参数校验
|
|
|
|
// R<Map<String, Object>> paramCheck = validateLoginParams(loginName, secretKey);
|
|
|
|
// if (paramCheck != null) {
|
|
|
|
// return paramCheck;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 2. 根据登录账号查询 sys_user 表
|
|
|
|
// SysUserVo user = sysUserService.selectUserByLoginName(loginName);
|
|
|
|
// if (user == null) {
|
|
|
|
// return R.fail("用户不存在");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 3. 检查用户状态(0正常 1停用)
|
|
|
|
// if ("1".equals(user.getStatus())) {
|
|
|
|
// return R.fail("该用户已被停用");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 4. AES解密前端传来的密码
|
|
|
|
// String decryptedPassword = decryptPassword(secretKey);
|
|
|
|
// if (decryptedPassword == null) {
|
|
|
|
// return R.fail("密码解密失败");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 5. MD5加盐校验密码(使用loginName作为加盐因子)
|
|
|
|
// if (!verifyPassword(loginName, decryptedPassword, user.getSalt(), user.getPassword())) {
|
|
|
|
// return R.fail("用户名或密码错误");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 6. 检查执法证件号是否为空
|
|
|
|
// if (user.getLawCertificateNum() == null || user.getLawCertificateNum().isBlank()) {
|
|
|
|
// return R.fail("该用户不是执法人员,无法登录执法端");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 7. 查询部门信息
|
|
|
|
// SrzDeptVo srzOrgan = com.zdxt.enforcementcode.common.util.DataFilterUtil.getUserOrganDept(user.getUserId());
|
|
|
|
// SysDeptVo sysDept = com.zdxt.enforcementcode.common.util.DataFilterUtil.getUserSysDept(user.getUserId());
|
|
|
|
// SysDeptVo bureauDept = com.zdxt.enforcementcode.common.util.DataFilterUtil.getUserBureauDept(user.getUserId());
|
|
|
|
//
|
|
|
|
// // 7. 构建LoginUser并生成SaToken
|
|
|
|
// String token = doSaTokenLogin(user.getUserId(), user.getUserName(), user.getNickName(),
|
|
|
|
// user.getDeptId(), "enforcement_user", "enforcement_app", "enforcement");
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// // 验证关键组织信息不能为空
|
|
|
|
// if (srzOrgan == null) {
|
|
|
|
// return R.fail("该用户未关联认证机构,无法登录执法端");
|
|
|
|
// }
|
|
|
|
// if (sysDept == null) {
|
|
|
|
// return R.fail("该用户未关联部门,无法登录执法端");
|
|
|
|
// }
|
|
|
|
// if (bureauDept == null) {
|
|
|
|
// return R.fail("该用户未关联执法单位,无法登录执法端");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// if (!sysDept.getDeptId().equals(user.getDeptId())){
|
|
|
|
// return R.fail("部门ID查找错误!");
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // 8. 构造返回数据
|
|
|
|
// Map<String, Object> data = new HashMap<>();
|
|
|
|
// data.put("token", token);
|
|
|
|
// data.put("userId", user.getUserId());
|
|
|
|
// data.put("userName", user.getUserName());
|
|
|
|
// data.put("loginName", user.getLoginName());
|
|
|
|
// data.put("nickName", user.getNickName());
|
|
|
|
// data.put("phonenumber", user.getPhonenumber() != null ? user.getPhonenumber() : "");
|
|
|
|
//
|
|
|
|
// data.put("deptId", user.getDeptId());
|
|
|
|
// data.put("deptName", sysDept.getDeptName());
|
|
|
|
//
|
|
|
|
// data.put("organId", srzOrgan.getOrganizationid());
|
|
|
|
// data.put("organName", srzOrgan.getName());
|
|
|
|
//
|
|
|
|
// data.put("bureauUnitId", bureauDept.getDeptId());
|
|
|
|
// data.put("bureauUnitName", bureauDept.getDeptId());
|
|
|
|
//
|
|
|
|
// return R.ok(data);
|
|
|
|
// }
|
|
|
|
|
|
|
|
/** |
|
|
|
* 执法端用户登录 |
|
|
|
* |
|
|
|
* @param params 包含 secretName(登录账号)和 secretKey(AES加密后的密码) |
|
|
|
* @return 登录结果(token + 用户信息) |
|
|
|
*/ |
|
|
|
@SaIgnore |
|
|
|
@PostMapping("/do") |
|
|
|
public R<Map<String, Object>> validate(@RequestBody Map<String, String> params) { |
|
|
|
String loginName = params.get("secretName"); |
|
|
|
String secretKey = params.get("secretKey"); |
|
|
|
|
|
|
|
// 1. 参数校验
|
|
|
|
R<Map<String, Object>> paramCheck = validateLoginParams(loginName, secretKey); |
|
|
|
if (paramCheck != null) { |
|
|
|
return paramCheck; |
|
|
|
} |
|
|
|
|
|
|
|
// 2. 根据登录账号查询 sys_user 表
|
|
|
|
SysUserVo user = sysUserService.selectUserByLoginName(loginName); |
|
|
|
if (user == null) { |
|
|
|
return R.fail("用户不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 检查用户状态(0正常 1停用)
|
|
|
|
if ("1".equals(user.getStatus())) { |
|
|
|
return R.fail("该用户已被停用"); |
|
|
|
} |
|
|
|
|
|
|
|
// 4. AES解密前端传来的密码
|
|
|
|
String decryptedPassword = decryptPassword(secretKey); |
|
|
|
if (decryptedPassword == null) { |
|
|
|
return R.fail("密码解密失败"); |
|
|
|
} |
|
|
|
|
|
|
|
// 5. MD5加盐校验密码(使用loginName作为加盐因子)
|
|
|
|
if (!verifyPassword(loginName, decryptedPassword, user.getSalt(), user.getPassword())) { |
|
|
|
return R.fail("用户名或密码错误"); |
|
|
|
} |
|
|
|
|
|
|
|
// 6. 检查执法证件号是否为空
|
|
|
|
if (user.getLawCertificateNum() == null || user.getLawCertificateNum().isBlank()) { |
|
|
|
return R.fail("该用户不是执法人员,无法登录执法端"); |
|
|
|
} |
|
|
|
|
|
|
|
// 7. 查询部门信息
|
|
|
|
SrzDeptVo srzOrgan = com.zdxt.enforcementcode.common.util.DataFilterUtil.getUserOrganDept(user.getUserId()); |
|
|
|
SysDeptVo sysDept = com.zdxt.enforcementcode.common.util.DataFilterUtil.getUserSysDept(user.getUserId()); |
|
|
|
SysDeptVo bureauDept = com.zdxt.enforcementcode.common.util.DataFilterUtil.getUserBureauDept(user.getUserId()); |
|
|
|
|
|
|
|
// 7. 构建LoginUser并生成SaToken
|
|
|
|
String token = doSaTokenLogin(user.getUserId(), user.getUserName(), user.getNickName(), |
|
|
|
user.getDeptId(), "enforcement_user", "enforcement_app", "f0535c2a32ab4d0496ab9a699b2a7d36"); |
|
|
|
|
|
|
|
|
|
|
|
// 验证关键组织信息不能为空
|
|
|
|
if (srzOrgan == null) { |
|
|
|
return R.fail("该用户未关联认证机构,无法登录执法端"); |
|
|
|
} |
|
|
|
if (sysDept == null) { |
|
|
|
return R.fail("该用户未关联部门,无法登录执法端"); |
|
|
|
} |
|
|
|
if (bureauDept == null) { |
|
|
|
return R.fail("该用户未关联执法单位,无法登录执法端"); |
|
|
|
} |
|
|
|
|
|
|
|
if (!sysDept.getDeptId().equals(user.getDeptId())){ |
|
|
|
return R.fail("部门ID查找错误!"); |
|
|
|
} |
|
|
|
|
|
|
|
// 8. 构造返回数据
|
|
|
|
Map<String, Object> data = new HashMap<>(); |
|
|
|
data.put("token", token); |
|
|
|
data.put("userId", user.getUserId()); |
|
|
|
data.put("userName", user.getUserName()); |
|
|
|
data.put("loginName", user.getLoginName()); |
|
|
|
data.put("nickName", user.getNickName()); |
|
|
|
data.put("phonenumber", user.getPhonenumber() != null ? user.getPhonenumber() : ""); |
|
|
|
|
|
|
|
data.put("deptId", user.getDeptId()); |
|
|
|
data.put("deptName", sysDept.getDeptName()); |
|
|
|
|
|
|
|
data.put("organId", srzOrgan.getOrganizationid()); |
|
|
|
data.put("organName", srzOrgan.getName()); |
|
|
|
|
|
|
|
data.put("bureauUnitId", bureauDept.getDeptId()); |
|
|
|
data.put("bureauUnitName", bureauDept.getDeptId()); |
|
|
|
|
|
|
|
return R.ok(data); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|