43 lines
1.5 KiB
Java
43 lines
1.5 KiB
Java
package com.yunhai.userhome.service.impl;
|
|
|
|
import com.yunhai.platform.openapi.client.YschBaseOpenApi;
|
|
import com.yunhai.platform.utils.enums.ClientEnum;
|
|
import com.yunhai.platform.utils.model.BoaApp;
|
|
import com.yunhai.platform.utils.model.BoaAppType;
|
|
import com.yunhai.platform.utils.model.BoaUser;
|
|
import com.yunhai.userhome.service.AppRemoteService;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
/**
|
|
* {@link AppRemoteService} 真实实现:经 yh-platform {@code YschBaseOpenApi} 调 UserBase
|
|
* {@code GET /oapi/app/list?userId=&clientType=}(自动带 app-auth 签名)。
|
|
*/
|
|
@Service
|
|
public class OpenApiAppRemoteServiceImpl implements AppRemoteService {
|
|
|
|
@Override
|
|
public List<BoaAppType> getUserApps(BoaUser user) {
|
|
if (user == null || user.getId() == null) {
|
|
return Collections.emptyList();
|
|
}
|
|
// PC 浏览器端;UserBase 侧已按 userId 权限过滤(组开通 ∪ 角色模块所属应用,超管全量)
|
|
return YschBaseOpenApi.getUserApp(user.getId(), ClientEnum.PC_BROWSER);
|
|
}
|
|
|
|
@Override
|
|
public Optional<BoaApp> getAppById(BoaUser user, Integer appId) {
|
|
if (appId == null) {
|
|
return Optional.empty();
|
|
}
|
|
return getUserApps(user).stream()
|
|
.filter(t -> t.getApps() != null)
|
|
.flatMap(t -> t.getApps().stream())
|
|
.filter(a -> appId.equals(a.getId()))
|
|
.findFirst();
|
|
}
|
|
}
|