瀏覽代碼

1,新增设备号获取token

2,添加一些输出日志
tags/B.2.6.10_20240126_release
yk 1 年之前
父節點
當前提交
7159fc56e1
共有 13 個文件被更改,包括 132 次插入24 次删除
  1. +3
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/authority/feign/RemoteLoginService.java
  2. +5
    -0
      xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/authority/feign/factory/RemoteLoginFallbackFactory.java
  3. +7
    -0
      xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java
  4. +11
    -0
      xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java
  5. +25
    -0
      xueyi-auth/src/main/java/com/xueyi/auth/controller/TokenController.java
  6. +13
    -1
      xueyi-auth/src/main/java/com/xueyi/auth/service/SysLoginService.java
  7. +2
    -2
      xueyi-common/xueyi-common-web/src/main/java/com/xueyi/common/web/config/WebApiMvcConfig.java
  8. +4
    -3
      xueyi-common/xueyi-common-web/src/main/java/com/xueyi/common/web/entity/domain/provider/DeviceTenantSqlProvider.java
  9. +27
    -13
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/authority/controller/SysLoginController.java
  10. +2
    -0
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/authority/service/ISysLoginService.java
  11. +8
    -3
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/authority/service/impl/SysLoginServiceImpl.java
  12. +2
    -1
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/pass/controller/api/DmRecognizedRecordsInnerApiController.java
  13. +23
    -1
      xueyi-modules/xueyi-tenant/src/main/java/com/xueyi/tenant/tenant/controller/TeTenantController.java

+ 3
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/authority/feign/RemoteLoginService.java 查看文件

@@ -33,4 +33,7 @@ public interface RemoteLoginService {
@GetMapping("/login/inner/loginByPhone/{phone}")
R<LoginUser> getLoginInfoInnerByPhone(@PathVariable("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

@GetMapping("/login/inner/loginByTenant/{tenantId}")
R<LoginUser> getLoginInfoInnerByTenant(@PathVariable("tenantId") Long tenantId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

}

+ 5
- 0
xueyi-api/xueyi-api-system/src/main/java/com/xueyi/system/api/authority/feign/factory/RemoteLoginFallbackFactory.java 查看文件

@@ -29,6 +29,11 @@ public class RemoteLoginFallbackFactory implements FallbackFactory<RemoteLoginSe
public R<LoginUser> getLoginInfoInnerByPhone(String phone, String source) {
return R.fail("获取登录信息失败:" + throwable.getMessage());
}

@Override
public R<LoginUser> getLoginInfoInnerByTenant(Long tenantId, String source) {
return R.fail("获取登录信息失败:" + throwable.getMessage());
}
};
}
}

+ 7
- 0
xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/RemoteTenantService.java 查看文件

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
import com.xueyi.common.core.constant.basic.SecurityConstants;
import com.xueyi.common.core.constant.basic.ServiceConstants;
import com.xueyi.common.core.web.result.R;
import com.xueyi.common.core.web.vo.DeviceTenantSourceMergeVo;
import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto;
import com.xueyi.tenant.api.tenant.domain.po.SysEnterpriseStaff;
import com.xueyi.tenant.api.tenant.domain.po.TeTenantPo;
@@ -41,6 +42,12 @@ public interface RemoteTenantService {
@GetMapping("/tenant/one")
R<TeTenantPo> tenant(@RequestParam ("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

@GetMapping("/tenant/query-tenant-by-id")
R<TeTenantPo> selectById(@RequestParam ("tenantId") Long tenantId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

@GetMapping("/tenant/query-tenant-source")
DeviceTenantSourceMergeVo selectTenantSourceMerge(@RequestParam ("deviceId") String deviceId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);


@GetMapping("/tenant/query-tenant-by-staff-phone")
R<TeTenantPo> queryTenantByStaffPhone(@RequestParam ("phone") String phone, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);


+ 11
- 0
xueyi-api/xueyi-api-tenant/src/main/java/com/xueyi/tenant/api/tenant/feign/factory/RemoteTenantFallbackFactory.java 查看文件

@@ -2,6 +2,7 @@ package com.xueyi.tenant.api.tenant.feign.factory;

import com.alibaba.fastjson2.JSONObject;
import com.xueyi.common.core.web.result.R;
import com.xueyi.common.core.web.vo.DeviceTenantSourceMergeVo;
import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto;
import com.xueyi.tenant.api.tenant.domain.po.SysEnterpriseStaff;
import com.xueyi.tenant.api.tenant.domain.po.TeTenantPo;
@@ -43,6 +44,16 @@ public class RemoteTenantFallbackFactory implements FallbackFactory<RemoteTenant
return R.fail("获取租户失败:" + throwable.getMessage());
}

@Override
public R<TeTenantPo> selectById(Long tenantId, String source) {
return R.fail("获取租户失败:" + throwable.getMessage());
}

@Override
public DeviceTenantSourceMergeVo selectTenantSourceMerge(String deviceId, String source) {
return null;
}

@Override
public R<TeTenantPo> queryTenantByStaffPhone(String phone, String source) {
return null;


+ 25
- 0
xueyi-auth/src/main/java/com/xueyi/auth/controller/TokenController.java 查看文件

@@ -1,5 +1,6 @@
package com.xueyi.auth.controller;

import com.alibaba.csp.sentinel.util.StringUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.xueyi.auth.form.LoginBody;
@@ -13,6 +14,7 @@ import com.xueyi.common.core.utils.core.ObjectUtil;
import com.xueyi.common.core.utils.core.StrUtil;
import com.xueyi.common.core.web.result.AjaxResult;
import com.xueyi.common.core.web.result.R;
import com.xueyi.common.core.web.vo.DeviceTenantSourceMergeVo;
import com.xueyi.common.redis.service.RedisService;
import com.xueyi.common.security.auth.AuthUtil;
import com.xueyi.common.security.service.TokenService;
@@ -99,6 +101,29 @@ public class TokenController {
return AjaxResult.success(map);
}

@PostMapping("deviceLogin")
public AjaxResult loginByDevice(@RequestBody Map<String, String> params) {
String deviceId = params.get("deviceId");
if (StringUtil.isNotBlank(deviceId)) {
DeviceTenantSourceMergeVo vo = tenantService.selectTenantSourceMerge(deviceId, SecurityConstants.INNER);// 查询设备与租户、来源的关联关系
if (null == vo || null == vo.getTenantId()) {
return AjaxResult.error("设备不正确,清查验");
}
LoginUser userInfo = sysLoginService.loginByTenant(vo.getTenantId());
if (null == userInfo) {
return AjaxResult.error("手机号不正确,清查验");
}
// 获取登录token
Map<String, Object> map = tokenService.createToken(userInfo);
map.put("deviceId", deviceId);//塞入对应staffId
return AjaxResult.success(map);

}

return AjaxResult.error("设备号不正确,清查验");
}


@DeleteMapping("logout")
public AjaxResult logout(HttpServletRequest request) {
String token = SecurityUtils.getToken(request);


+ 13
- 1
xueyi-auth/src/main/java/com/xueyi/auth/service/SysLoginService.java 查看文件

@@ -170,16 +170,28 @@ public class SysLoginService {
remoteLogService.saveLoginInfo(loginInfo, enterpriseId, sourceName, SecurityConstants.INNER);
}




public LoginUser loginByPhone(String phone) {
logger.info("phone:{}", phone);
R<LoginUser> loginInfoResult = remoteLoginService.getLoginInfoInnerByPhone(phone, SecurityConstants.INNER);


if (ObjectUtil.isNull(loginInfoResult.getData())) {
AjaxResult.warn("手机号可能输错,请查证后重试!");
}
return loginInfoResult.getData();
}

public LoginUser loginByTenant(Long tenantId) {
logger.info("tenantId:{}", tenantId);
R<LoginUser> loginInfoResult = remoteLoginService.getLoginInfoInnerByTenant(tenantId, SecurityConstants.INNER);

if (ObjectUtil.isNull(loginInfoResult.getData())) {
AjaxResult.warn("租户号错误,请查证后重试!");
}
return loginInfoResult.getData();
}


}

+ 2
- 2
xueyi-common/xueyi-common-web/src/main/java/com/xueyi/common/web/config/WebApiMvcConfig.java 查看文件

@@ -21,10 +21,10 @@ public class WebApiMvcConfig implements WebMvcConfigurer {

@Override
public void addInterceptors(InterceptorRegistry registry) {
System.err.println("WebMvcConfig.addInterceptors======================hshshkbb");
System.err.println("===graphql======================addInterceptors===");

registry.addInterceptor(getApiInterceptor())
.addPathPatterns("/**/graphql/**")
.addPathPatterns("/**/api/**")
// .addPathPatterns("/**")
.excludePathPatterns(excludeUrls)
.order(1);


+ 4
- 3
xueyi-common/xueyi-common-web/src/main/java/com/xueyi/common/web/entity/domain/provider/DeviceTenantSqlProvider.java 查看文件

@@ -1,6 +1,6 @@
package com.xueyi.common.web.entity.domain.provider;

import org.apache.ibatis.annotations.Param;
import java.util.Map;

/**
* @author yk
@@ -8,7 +8,8 @@ import org.apache.ibatis.annotations.Param;
* @date 2023-11-25 11:15
*/
public class DeviceTenantSqlProvider {
public String selectDeviceTenant(@Param("deviceId") String deviceId) {
return "SELECT ddtm.dev_id, ddtm.tenant_id, s.source_slave FROM dm_device_tenant_merge ddtm JOIN te_tenant t ON t.id=ddtm.tenant_id JOIN te_strategy s ON s.id=t.strategy_id AND dev_id= #{deviceId}";
public String selectDeviceTenant(Map<String, Object> param) {
String deviceId = (String) param.get("deviceId");
return "SELECT ddtm.dev_id, ddtm.tenant_id, s.source_slave FROM dm_device_tenant_merge ddtm JOIN te_tenant t ON t.id=ddtm.tenant_id JOIN te_strategy s ON s.id=t.strategy_id AND dev_id= '"+deviceId+"'";
}
}

+ 27
- 13
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/authority/controller/SysLoginController.java 查看文件

@@ -103,18 +103,8 @@ public class SysLoginController extends BasisController {
@Autowired
RemoteTenantService tenantService;

/**
* 获取登录信息 | 内部调用, 手机号登录
*/
@InnerAuth
@GetMapping("/inner/loginByPhone/{phone}")
public R<LoginUser> getLoginInfoByMobile(@PathVariable("phone") String phone) {
log.info("获取登录信息 | 内部调用, 手机号登录 | phone: {}", phone);
R<TeTenantPo> po = tenantService.tenant(phone, SecurityConstants.INNER);
log.info("获取登录信息 | 内部调用, 手机号登录 | po:{}, {}, {}", po.getMsg(),po.getCode(),po.isFail());
if (po.getData() == null)
return R.fail("指定手机号不存在记录");
SysEnterpriseDto enterprise = loginService.loginByEnterpriseName(po.getData().getName());
public R<LoginUser> getLoginInfo(String enterpriseName) {
SysEnterpriseDto enterprise = loginService.loginByEnterpriseName(enterpriseName);
// 不存在直接返回空数据 | 与网络调用错误区分
if (ObjectUtil.isNull(enterprise))
return R.ok(null, "企业账号不存在");
@@ -133,7 +123,7 @@ public class SysLoginController extends BasisController {
loginUser.setIsLessor(enterprise.getIsLessor());
loginUser.setSource(source);
loginUser.setSourceName(source.getMaster());
SysUserDto user = loginService.loginByStaff(phone);
SysUserDto user = loginService.loginByTenantId(enterprise.getId());

if (ObjectUtil.isNull(user))
return R.ok(null, "用户账号不存在");
@@ -165,4 +155,28 @@ public class SysLoginController extends BasisController {
loginUser.setRouteURL(routeMap);
return R.ok(loginUser);
}

/**
* 获取登录信息 | 内部调用, 手机号登录
*/
@InnerAuth
@GetMapping("/inner/loginByPhone/{phone}")
public R<LoginUser> getLoginInfoByMobile(@PathVariable("phone") String phone) {
log.info("获取登录信息 | 内部调用, 手机号登录 | phone: {}", phone);
R<TeTenantPo> po = tenantService.tenant(phone, SecurityConstants.INNER);
log.info("获取登录信息 | 内部调用, 手机号登录 | po:{}, {}, {}", po.getMsg(),po.getCode(),po.isFail());
if (po.getData() == null)
return R.fail("指定手机号不存在记录");
return this.getLoginInfo(po.getData().getName());
}


@GetMapping("/inner/loginByTenant/{tenantId}")
public R<LoginUser> getLoginInfoByTenant(@PathVariable("tenantId") Long tenantId) {
R<TeTenantPo> po = tenantService.selectById(tenantId, SecurityConstants.INNER);
log.info("获取登录信息 | 内部调用, 租户号登录 | po:{}, {}, {}", po.getMsg(),po.getCode(),po.isFail());
if (po.getData() == null)
return R.fail("指定租户号不存在记录");
return this.getLoginInfo(po.getData().getName());
}
}

+ 2
- 0
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/authority/service/ISysLoginService.java 查看文件

@@ -70,4 +70,6 @@ public interface ISysLoginService {
Map<String, String> getMenuRouteMap(Set<Long> roleIds, String userType);

SysUserDto loginByStaff(String phone);

SysUserDto loginByTenantId(Long tenantId);
}

+ 8
- 3
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/authority/service/impl/SysLoginServiceImpl.java 查看文件

@@ -247,8 +247,13 @@ public class SysLoginServiceImpl implements ISysLoginService {
if (po == null) {
return null;
}
SqlField field = new SqlField(SqlConstants.OperateType.EQ, "tenant_id", po.getTenantId());
SysUserDto dto = sysUserConverter.mapperDto(userMapper.selectByField(field)) ;
return dto;
return loginByTenantId(po.getTenantId());
}


@Override
public SysUserDto loginByTenantId(Long tenantId) {
SqlField field = new SqlField(SqlConstants.OperateType.EQ, "tenant_id", tenantId);
return sysUserConverter.mapperDto(userMapper.selectByField(field)) ;
}
}

+ 2
- 1
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/pass/controller/api/DmRecognizedRecordsInnerApiController.java 查看文件

@@ -146,7 +146,8 @@ public class DmRecognizedRecordsInnerApiController extends MyBaseApiController {
String deviceId = recognizedMultiRecordsDto.getDevId();
BigDecimal timestamp = recognizedMultiRecordsDto.getTimestamp();
String sign = recognizedMultiRecordsDto.getSign();
logger.info("recognizedMultiRecordsDto :{}",recognizedMultiRecordsDto);
//去掉recognizedMultiRecordsDto输出日志
// logger.info("recognizedMultiRecordsDto :{}",recognizedMultiRecordsDto);

MyResponse myResponse = commonCheck(deviceId, timestamp.doubleValue(), sign);
if (myResponse.getStatus() != 0) {


+ 23
- 1
xueyi-modules/xueyi-tenant/src/main/java/com/xueyi/tenant/tenant/controller/TeTenantController.java 查看文件

@@ -1,6 +1,7 @@
package com.xueyi.tenant.tenant.controller;

import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson2.JSON;
import com.xueyi.common.core.constant.basic.BaseConstants;
import com.xueyi.common.core.constant.system.OrganizeConstants;
import com.xueyi.common.core.utils.core.CollUtil;
@@ -9,6 +10,7 @@ import com.xueyi.common.core.web.result.AjaxResult;
import com.xueyi.common.core.web.result.R;
import com.xueyi.common.core.web.validate.V_A;
import com.xueyi.common.core.web.validate.V_E;
import com.xueyi.common.core.web.vo.DeviceTenantSourceMergeVo;
import com.xueyi.common.log.annotation.Log;
import com.xueyi.common.log.enums.BusinessType;
import com.xueyi.common.security.annotation.InnerAuth;
@@ -17,6 +19,7 @@ import com.xueyi.common.security.annotation.RequiresPermissions;
import com.xueyi.common.security.auth.Auth;
import com.xueyi.common.web.annotation.TenantIgnore;
import com.xueyi.common.web.entity.controller.BaseController;
import com.xueyi.common.web.entity.domain.mapper.DeviceTenantMergeMapper;
import com.xueyi.tenant.api.tenant.domain.dto.TeTenantDto;
import com.xueyi.tenant.api.tenant.domain.po.SysEnterpriseStaff;
import com.xueyi.tenant.api.tenant.domain.po.TeTenantPo;
@@ -83,11 +86,30 @@ public class TeTenantController extends BaseController<TeTenantQuery, TeTenantDt
@InnerAuth
@GetMapping("/one")
R<TeTenantPo> tenant(@RequestParam("phone") String phone) {
log.info("tenant one方法,手机号查询SysEnterpriseStaff:{}", phone);
log.info("tenant one方法,tenant phone:{}", phone);
TeTenantPo po = enterpriseStaffMapper.selectTenantByPhone(phone);
log.info("tenant one方法,手机号查询SysEnterpriseStaff:{}", JSON.toJSONString(po));
return R.ok(po);
}

@InnerAuth
@GetMapping("/query-tenant-by-id")
R<TeTenantPo> selectById(@RequestParam ("tenantId") Long tenantId) {
log.info("selectById方法,查询TeTenantPo:{}", tenantId);
TeTenantPo po = super.baseService.selectById(tenantId);
return R.ok(po);
}


@Autowired
private DeviceTenantMergeMapper mergeMapper;
@InnerAuth
@GetMapping("/query-tenant-source")
DeviceTenantSourceMergeVo selectTenantSourceMerge(@RequestParam ("deviceId") String deviceId) {
log.info("selectTenantSourceMerge方法,deviceId:{}", deviceId);
return mergeMapper.selectByDeviceId(deviceId);
}

@InnerAuth
@GetMapping("/query-tenant-by-staff-phone")
R<TeTenantPo> queryTenantByStaffPhone(@RequestParam("phone") String phone) {


Loading…
取消
儲存