Browse Source

更新oidc用户管理中心相关(接入高速,航道等业务平台),修改机场接口对调方式

tags/v2.4.1
xiaoying 1 year ago
parent
commit
d7a5aa3f8d
7 changed files with 122 additions and 107 deletions
  1. +6
    -1
      tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/AirportConstant.java
  2. +14
    -0
      tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/FreeWayConstant.java
  3. +2
    -2
      tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/HhzUrlConstant.java
  4. +15
    -0
      tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/WateWayConstant.java
  5. +1
    -0
      tuoheng_oidc_admin/src/main/java/com/tuoheng/controller/TenantController.java
  6. +2
    -2
      tuoheng_oidc_admin/src/main/java/com/tuoheng/model/dto/OidcTenantDto.java
  7. +82
    -102
      tuoheng_oidc_admin/src/main/java/com/tuoheng/service/impl/ClientUserServiceImpl.java

+ 6
- 1
tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/AirportConstant.java View File

import lombok.Data; import lombok.Data;


/** /**
*机场平台接口常量类
* 机场平台接口常量类
*
* @Author xiaoying * @Author xiaoying
* @Date 2023/1/31 17:45 * @Date 2023/1/31 17:45
*/ */
public class AirportConstant { public class AirportConstant {


public static final String AIRPORT_CLIENT = "tuoheng-airport";

public static final String AIRPORT_NAME = "机场业务平台";

/** /**
* 创建租户 * 创建租户
*/ */

+ 14
- 0
tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/FreeWayConstant.java View File

package com.tuoheng.constant;

/**
* 高速平台接口常量类
* @Author xiaoying
* @Date 2023/2/23 9:32
*/
public class FreeWayConstant {


public static final String FREEWAY_CLIENT="tuoheng-freeway";

public static final String FREEWAY_NAME="高速业务平台";
}

+ 2
- 2
tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/HhzUrlConstant.java View File

*/ */
public class HhzUrlConstant { public class HhzUrlConstant {


public static String HHZ_CLIENT="tuoheng-hhz";
public static final String HHZ_CLIENT="tuoheng-hhz";


public static String HHZ_NAME="河湖长业务平台";
public static final String HHZ_NAME="河湖长业务平台";


/** /**
* 创建租户 * 创建租户

+ 15
- 0
tuoheng_oidc_admin/src/main/java/com/tuoheng/constant/WateWayConstant.java View File

package com.tuoheng.constant;

/**
* 航道平台接口常量类
*
* @Author xiaoying
* @Date 2023/2/23 9:34
*/
public class WateWayConstant {


public static final String WATEWAY_CLIENT = "tuoheng-wateway";

public static final String WATEWAY_NAME = "航道业务平台";
}

+ 1
- 0
tuoheng_oidc_admin/src/main/java/com/tuoheng/controller/TenantController.java View File

package com.tuoheng.controller; package com.tuoheng.controller;


import com.tuoheng.constant.CommonConstant;
import com.tuoheng.model.dto.LoginUser; import com.tuoheng.model.dto.LoginUser;
import com.tuoheng.model.dto.OidcTenantDto; import com.tuoheng.model.dto.OidcTenantDto;
import com.tuoheng.model.param.CreateClientTenantDto; import com.tuoheng.model.param.CreateClientTenantDto;

+ 2
- 2
tuoheng_oidc_admin/src/main/java/com/tuoheng/model/dto/OidcTenantDto.java View File

/** /**
* 租户名称 * 租户名称
*/ */
private String name;
private String tenantName;
/** /**
* 平台 * 平台
*/ */
/** /**
* 租户code * 租户code
*/ */
private String code;
private String tenantCode;
/** /**
* 省级编码 * 省级编码
*/ */

+ 82
- 102
tuoheng_oidc_admin/src/main/java/com/tuoheng/service/impl/ClientUserServiceImpl.java View File

import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.tuoheng.common.CommonConfig; import com.tuoheng.common.CommonConfig;
import com.tuoheng.common.ServiceException; import com.tuoheng.common.ServiceException;
import com.tuoheng.constant.AirportConstant;
import com.tuoheng.constant.CommonConstant;
import com.tuoheng.constant.HhzUrlConstant;
import com.tuoheng.constant.*;
import com.tuoheng.mapper.*; import com.tuoheng.mapper.*;
import com.tuoheng.model.dto.*; import com.tuoheng.model.dto.*;
import com.tuoheng.model.param.*; import com.tuoheng.model.param.*;
return JsonResult.error("该租户账号已存在!"); return JsonResult.error("该租户账号已存在!");
} }


if (ObjectUtil.isEmpty(dto.getCode())) {
if (ObjectUtil.isEmpty(dto.getTenantCode())) {
return JsonResult.error("租户code不能为空"); return JsonResult.error("租户code不能为空");
} }
TTenant tTenant = tenantMapper.getByCode(dto.getCode());
TTenant tTenant = tenantMapper.getByCode(dto.getTenantCode());
if (ObjectUtil.isNotNull(tTenant)) { if (ObjectUtil.isNotNull(tTenant)) {
return JsonResult.error("该租户code已存在,请重新输入"); return JsonResult.error("该租户code已存在,请重新输入");
} }
if (result.getCode() != JsonResult.SUCCESS) { if (result.getCode() != JsonResult.SUCCESS) {
return result; return result;
} }
//TODO ->会导致循环终止(后期改进)
return requestAirport(dto, loginUser, CommonConstant.ONE);
} }
} else { } else {
JsonResult result = getResult(dto, dto.getClientId(), loginUser); JsonResult result = getResult(dto, dto.getClientId(), loginUser);
if (result.getCode() != JsonResult.SUCCESS) { if (result.getCode() != JsonResult.SUCCESS) {
return result; return result;
} }
return requestAirport(dto, loginUser, CommonConstant.ONE);
} }
return JsonResult.success(); return JsonResult.success();
} }
} }
List<BusinessSystemVo> businessSystemVoList = new ArrayList<>(); List<BusinessSystemVo> businessSystemVoList = new ArrayList<>();
for (AuthoritiesPo authoritiesPo : poList) { for (AuthoritiesPo authoritiesPo : poList) {
BusinessSystemVo businessSystemVo = new BusinessSystemVo();
//TODO 后期维护各个业务平台 //TODO 后期维护各个业务平台
if (authoritiesPo.getAuthority().contains("hhz")) { if (authoritiesPo.getAuthority().contains("hhz")) {
BusinessSystemVo businessSystemVo = new BusinessSystemVo();
businessSystemVo.setClientId(HhzUrlConstant.HHZ_CLIENT); businessSystemVo.setClientId(HhzUrlConstant.HHZ_CLIENT);
businessSystemVo.setName(HhzUrlConstant.HHZ_NAME); businessSystemVo.setName(HhzUrlConstant.HHZ_NAME);
businessSystemVoList.add(businessSystemVo); businessSystemVoList.add(businessSystemVo);
} }
if (authoritiesPo.getAuthority().contains("airport")) {
BusinessSystemVo businessSystemVo = new BusinessSystemVo();
businessSystemVo.setClientId(AirportConstant.AIRPORT_CLIENT);
businessSystemVo.setName(AirportConstant.AIRPORT_NAME);
businessSystemVoList.add(businessSystemVo);
}
if (authoritiesPo.getAuthority().contains("wateway")) {
BusinessSystemVo businessSystemVo = new BusinessSystemVo();
businessSystemVo.setClientId(WateWayConstant.WATEWAY_CLIENT);
businessSystemVo.setName(WateWayConstant.WATEWAY_NAME);
businessSystemVoList.add(businessSystemVo);
}
if (authoritiesPo.getAuthority().contains("freeway")) {
BusinessSystemVo businessSystemVo = new BusinessSystemVo();
businessSystemVo.setClientId(FreeWayConstant.FREEWAY_CLIENT);
businessSystemVo.setName(FreeWayConstant.FREEWAY_NAME);
businessSystemVoList.add(businessSystemVo);
}
} }
businessSystemVoList = businessSystemVoList.stream().distinct().collect(Collectors.toList()); businessSystemVoList = businessSystemVoList.stream().distinct().collect(Collectors.toList());
vo.setList(businessSystemVoList); vo.setList(businessSystemVoList);
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public JsonResult editTenant(OidcTenantDto dto, LoginUser loginUser) { public JsonResult editTenant(OidcTenantDto dto, LoginUser loginUser) {


if (ObjectUtil.isEmpty(dto.getCode())) {
if (ObjectUtil.isEmpty(dto.getTenantCode())) {
return JsonResult.error("租户code不能为空"); return JsonResult.error("租户code不能为空");
} }
if (dto.getClientId().contains(",")) { if (dto.getClientId().contains(",")) {
if (jsonResult.getCode() != JsonResult.SUCCESS) { if (jsonResult.getCode() != JsonResult.SUCCESS) {
return jsonResult; return jsonResult;
} }
//TODO ->会导致循环终止(后期改进)
requestAirport(dto, loginUser, CommonConstant.TWO);
} }
} else { } else {
JsonResult jsonResult = editResult(dto, dto.getClientId(), loginUser); JsonResult jsonResult = editResult(dto, dto.getClientId(), loginUser);
if (jsonResult.getCode() != JsonResult.SUCCESS) { if (jsonResult.getCode() != JsonResult.SUCCESS) {
return jsonResult; return jsonResult;
} }
requestAirport(dto, loginUser, CommonConstant.TWO);
} }
TTenant tTenant = tenantMapper.getByCode(dto.getCode());
TTenant tTenant = tenantMapper.getByCode(dto.getTenantCode());
dto.setId(tTenant.getId()); dto.setId(tTenant.getId());


TenantPo tenantPo = new TenantPo(); TenantPo tenantPo = new TenantPo();
tenantPo.setName(dto.getName())
tenantPo.setName(dto.getTenantName())
.setId(dto.getId()) .setId(dto.getId())
.setCityCode(dto.getCityCode()) .setCityCode(dto.getCityCode())
.setCityName(dto.getCityName()) .setCityName(dto.getCityName())
HttpEntity httpEntity = new HttpEntity(dto, resultRequestHeader); HttpEntity httpEntity = new HttpEntity(dto, resultRequestHeader);
//设置地址(hhz平台) //设置地址(hhz平台)
String url = platform.getPlatformUrl(); String url = platform.getPlatformUrl();

//根据不同业务平台进行动态匹配 //根据不同业务平台进行动态匹配
//TODO 后期维护各个业务平台
if (url.contains("hhz")) {
url = url + HhzUrlConstant.CREATE_TENANT;
switch (url){
//河湖长
case HhzUrlConstant.HHZ_CLIENT:
url = url + HhzUrlConstant.CREATE_TENANT;
break;
//机场
case AirportConstant.AIRPORT_CLIENT:
url = url + AirportConstant.CREATE_TENANT;
break;
//case AirportConstant.AIRPORT_CLIENT:
// url = url + AirportConstant.CREATE_TENANT;
// break;
//case AirportConstant.AIRPORT_CLIENT:
// url = url + AirportConstant.CREATE_TENANT;
// break;
default:
break;
} }
log.info("请求url:{}",url);
ResponseEntity<JsonResult> response; ResponseEntity<JsonResult> response;
try { try {
response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class); response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class);
//设置地址(hhz平台) //设置地址(hhz平台)
String url = platform.getPlatformUrl(); String url = platform.getPlatformUrl();
//根据不同业务平台进行动态匹配 //根据不同业务平台进行动态匹配
if (url.contains("hhz")) {
url = url + HhzUrlConstant.UPDATE_TENANT;
}
//else if (url.contains("lc")) {
// url = url + HhzUrlConstant.UPDATE_TENANT;
//} else if (url.contains("gs")) {
// url = url + HhzUrlConstant.UPDATE_TENANT;
//}
switch (url){
//河湖长
case HhzUrlConstant.HHZ_CLIENT:
url = url + HhzUrlConstant.UPDATE_TENANT;
break;
//机场
case AirportConstant.AIRPORT_CLIENT:
url = url + AirportConstant.EDIT_TENANT;
break;
//case AirportConstant.AIRPORT_CLIENT:
// url = url + AirportConstant.CREATE_TENANT;
// break;
//case AirportConstant.AIRPORT_CLIENT:
// url = url + AirportConstant.CREATE_TENANT;
// break;
default:
break;
}
log.info("请求url:{}",url);
ResponseEntity<JsonResult> response; ResponseEntity<JsonResult> response;
try { try {
response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class); response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class);
//设置地址(hhz平台) //设置地址(hhz平台)
String url = platform.getPlatformUrl(); String url = platform.getPlatformUrl();
//根据不同业务平台进行动态匹配 //根据不同业务平台进行动态匹配
if (url.contains("hhz")) {
url = url + HhzUrlConstant.DELETE_TENANT;
}
//else if (url.contains("lc")) {
// url = url + HhzUrlConstant.UPDATE_TENANT;
//} else if (url.contains("gs")) {
// url = url + HhzUrlConstant.UPDATE_TENANT;
//}
switch (url){
//河湖长
case HhzUrlConstant.HHZ_CLIENT:
url = url + HhzUrlConstant.DELETE_TENANT;
break;
//机场
case AirportConstant.AIRPORT_CLIENT:
url = url + AirportConstant.DELETE_TENANT;
break;
//case AirportConstant.AIRPORT_CLIENT:
// url = url + AirportConstant.CREATE_TENANT;
// break;
//case AirportConstant.AIRPORT_CLIENT:
// url = url + AirportConstant.CREATE_TENANT;
// break;
default:
break;
}
log.info("请求url:{}",url);
ResponseEntity<JsonResult> response; ResponseEntity<JsonResult> response;
try { try {
response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class); response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class);
} }
return JsonResult.success(); return JsonResult.success();
} }

/**
* 向机场发送请求-创建租户
*
* @param dto
* @param loginUser
* @return
*/
private JsonResult requestAirport(OidcTenantDto dto, LoginUser loginUser, Integer type) {

//type 1 创建 2 修改 3 删除

//填充请求类
AirportRequest request = new AirportRequest();
request.setPassword(dto.getPassword());
request.setUsername(dto.getUsername());
request.setTenantName(dto.getName());
request.setTenantCode(dto.getCode());

//设置请求头
HttpHeaders resultRequestHeader = new HttpHeaders();
resultRequestHeader.add("Authorization", "Bearer " + loginUser.getThToken());
HttpEntity httpEntity = new HttpEntity(request, resultRequestHeader);
//设置地址(机场平台->配置文件)
String url = "";
switch (type) {
case 1:
url = CommonConfig.airportURL + AirportConstant.CREATE_TENANT;
break;
case 2:
url = CommonConfig.airportURL + AirportConstant.EDIT_TENANT;
break;
//case 3:
// url = CommonConfig.airportURL + AirportConstant.DELETE_TENANT+"/"+request.getTenantCode();
// break;
default:
break;
}

ResponseEntity<JsonResult> response = null;
try {
switch (type) {
case 1:
response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, JsonResult.class);
break;
case 2:
response = restTemplate.exchange(url, HttpMethod.PUT, httpEntity, JsonResult.class);
break;
//case 3:
// response = restTemplate.exchange(url, HttpMethod.DELETE, httpEntity, JsonResult.class);
// break;
default:
break;
}
} catch (Exception e) {
throw new ServiceException(HttpStatus.BAD_REQUEST.value(), "机场业务发送请求失败");
}
if (null == response || !response.hasBody()) {
log.error("机场业务发送请求失败响应失败");
throw new ServiceException(HttpStatus.BAD_REQUEST.value(), "机场业务发送请求失败");
}
if (response.getBody().getCode() != JsonResult.SUCCESS) {
log.error("机场业务发送请求失败响应失败" + response.getBody());
throw new ServiceException(HttpStatus.BAD_REQUEST.value(), response.getBody().getMsg());
}
return JsonResult.success();

}
} }

Loading…
Cancel
Save