|
@@ -2,7 +2,6 @@ package com.szwl.controller;
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
-import cn.hutool.core.collection.CollUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -20,6 +19,7 @@ import com.szwl.model.bo.UserDetailBO;
|
|
|
import com.szwl.model.dto.RegisterParamDTO;
|
|
|
import com.szwl.model.entity.*;
|
|
|
import com.szwl.model.param.AddLoginUserParam;
|
|
|
+import com.szwl.model.param.LoginParam;
|
|
|
import com.szwl.model.param.UpdateLoginUserParam;
|
|
|
import com.szwl.model.utils.AdminUtils;
|
|
|
import com.szwl.service.*;
|
|
@@ -37,7 +37,6 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.validation.Valid;
|
|
|
import java.util.*;
|
|
|
import java.util.regex.Pattern;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -684,6 +683,68 @@ public class TAdminController {
|
|
|
return R.ok(userDetailBO);
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation(value = "登录")
|
|
|
+ @PostMapping("/loginSys")
|
|
|
+ @Audit(type = AuditEnum.LOGIN, content = "#username + '请求登录'")
|
|
|
+ public ResponseModel<UserDetailBO> loginSys(@RequestBody LoginParam loginParam, HttpServletRequest request) {
|
|
|
+ String username = loginParam.getUsername();
|
|
|
+ String password = loginParam.getPassword();
|
|
|
+ String hostName = loginParam.getHostName();
|
|
|
+
|
|
|
+ if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
|
|
|
+ return R.fail(ResponseCodesEnum.A0001, "参数有空");
|
|
|
+ }
|
|
|
+
|
|
|
+ //验证用户名/手机/邮箱
|
|
|
+ LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(TAdmin::getPassword, password);
|
|
|
+ query.and(wrapper -> wrapper.eq(TAdmin::getUsername, username).or().eq(TAdmin::getPhone, username).eq(TAdmin::getEmail, username));
|
|
|
+ TAdmin tAdmin = Optional.ofNullable(tAdminService.getOnly(query))
|
|
|
+ .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
|
|
|
+
|
|
|
+ // 判断是为申泽用户还是七云用户
|
|
|
+ String companyType = tAdmin.getCompanyType();
|
|
|
+ String sZ = "Sunzee";
|
|
|
+ String sC = "Sevencloud";
|
|
|
+ // 如果不为管理员
|
|
|
+ if (tAdmin.getType() >= 1) {
|
|
|
+ if (sZ.equals(hostName)) {
|
|
|
+ // 如果companyType不为空,且不等于“0”
|
|
|
+ if (StringUtils.isNotEmpty(companyType) && !companyType.equals("0")) {
|
|
|
+ return R.fail(ResponseCodesEnum.L0002);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sC.equals(hostName)) {
|
|
|
+ // 如果companyType为空,或者不等于“1”
|
|
|
+ if (StringUtils.isEmpty(companyType) || !(companyType.equals("1"))) {
|
|
|
+ return R.fail(ResponseCodesEnum.L0002);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 添加系统id
|
|
|
+ if (StringUtils.isEmpty(tAdmin.getManagerId())) {
|
|
|
+ String managerId = AdminUtils.encrypt(false, tAdmin.getId());
|
|
|
+ tAdmin.setManagerId(managerId);
|
|
|
+ }
|
|
|
+ // 设置登录时间
|
|
|
+ tAdmin.setLoginDate(new Date());
|
|
|
+ // 登录IP
|
|
|
+ String ipAddress;
|
|
|
+ // 获取通过代理服务器传递的真实IP地址
|
|
|
+ String xForwardedForHeader = request.getHeader("X-Forwarded-For");
|
|
|
+ if (xForwardedForHeader == null) {
|
|
|
+ ipAddress = request.getRemoteAddr();
|
|
|
+ } else {
|
|
|
+ // 多次反向代理后会有多个IP值,第一个IP才是真实IP
|
|
|
+ String[] ips = xForwardedForHeader.split(",");
|
|
|
+ ipAddress = ips[0].trim();
|
|
|
+ }
|
|
|
+ tAdmin.setLoginIp(ipAddress);
|
|
|
+ tAdminService.updateById(tAdmin);
|
|
|
+ UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
|
|
|
+ return R.ok(userDetailBO);
|
|
|
+ }
|
|
|
+
|
|
|
@ApiOperation(value = "切换自动登录")
|
|
|
@GetMapping("/autoLogin")
|
|
|
@Audit(type = AuditEnum.LOGIN, content = "切换登录'")
|
|
@@ -854,9 +915,26 @@ public class TAdminController {
|
|
|
oldAdmin.setPromoCodeOpen(admin.getPromoCodeOpen());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(admin.getPhone())) {
|
|
|
+ // 如果手机号不同,则验证手机号是否存在
|
|
|
+ if (!admin.getPhone().equals(oldAdmin.getPhone())) {
|
|
|
+ LambdaQueryWrapper<TAdmin> query2 = Wrappers.lambdaQuery();
|
|
|
+ query2.eq(TAdmin::getPhone, admin.getPhone());
|
|
|
+ TAdmin admin1 = tAdminService.getOne(query2);
|
|
|
+ if (admin1 != null) {
|
|
|
+ return R.fail(ResponseCodesEnum.A0001, "手机号已存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
oldAdmin.setPhone(admin.getPhone());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(admin.getEmail())) {
|
|
|
+ if (!admin.getEmail().equals(oldAdmin.getEmail())) {
|
|
|
+ LambdaQueryWrapper<TAdmin> query2 = Wrappers.lambdaQuery();
|
|
|
+ query2.eq(TAdmin::getEmail, admin.getEmail());
|
|
|
+ TAdmin admin1 = tAdminService.getOne(query2);
|
|
|
+ if (admin1 != null) {
|
|
|
+ return R.fail(ResponseCodesEnum.A0001, "邮箱已存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
oldAdmin.setEmail(admin.getEmail());
|
|
|
}
|
|
|
if (StringUtils.isNotEmpty(admin.getCurrencySymbol())) {
|