|
|
@@ -4,9 +4,6 @@ import cn.reghao.jutil.jdk.converter.ByteConverter;
|
|
|
import cn.reghao.jutil.jdk.converter.ByteType;
|
|
|
import cn.reghao.jutil.jdk.result.Result;
|
|
|
import cn.reghao.oss.console.app.model.dto.ChannelProcessDto;
|
|
|
-import cn.reghao.oss.console.app.rpc.RemoteService;
|
|
|
-import cn.reghao.oss.console.util.AuthKeyContext;
|
|
|
-import cn.reghao.oss.api.iface.StoreService;
|
|
|
import cn.reghao.oss.api.dto.ObjectChannel;
|
|
|
import cn.reghao.oss.console.account.service.UserContext;
|
|
|
import cn.reghao.oss.console.app.db.repository.UploadChannelRepository;
|
|
|
@@ -14,7 +11,9 @@ import cn.reghao.oss.console.app.model.dto.ChannelScopeDto;
|
|
|
import cn.reghao.oss.console.app.model.dto.UploadChannelDto;
|
|
|
import cn.reghao.oss.console.app.model.po.StoreNode;
|
|
|
import cn.reghao.oss.console.app.model.po.UploadChannel;
|
|
|
+import cn.reghao.oss.console.app.model.po.UserNode;
|
|
|
import cn.reghao.oss.console.app.model.vo.UploadChannelVo;
|
|
|
+import cn.reghao.oss.console.store.rpc.StoreRpcService;
|
|
|
import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.PageImpl;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
@@ -30,24 +29,29 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Service
|
|
|
public class UploadChannelService {
|
|
|
+ private final ByteConverter byteConverter = new ByteConverter();
|
|
|
private final UploadChannelRepository uploadChannelRepository;
|
|
|
+ private final UserNodeService userNodeService;
|
|
|
private final StoreNodeService storeNodeService;
|
|
|
- private final ByteConverter byteConverter = new ByteConverter();
|
|
|
+ private final StoreRpcService storeRpcService;
|
|
|
|
|
|
- public UploadChannelService(UploadChannelRepository uploadChannelRepository, StoreNodeService storeNodeService) {
|
|
|
+ public UploadChannelService(UploadChannelRepository uploadChannelRepository, UserNodeService userNodeService,
|
|
|
+ StoreNodeService storeNodeService, StoreRpcService storeRpcService) {
|
|
|
this.uploadChannelRepository = uploadChannelRepository;
|
|
|
+ this.userNodeService = userNodeService;
|
|
|
this.storeNodeService = storeNodeService;
|
|
|
+ this.storeRpcService = storeRpcService;
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public synchronized Result add(UploadChannelDto uploadChannelDto) {
|
|
|
+ int createBy = UserContext.getUser().getId();
|
|
|
int nodeId = uploadChannelDto.getNodeId();
|
|
|
- StoreNode storeNode = storeNodeService.getById(nodeId);
|
|
|
- if (storeNode == null) {
|
|
|
+ UserNode userNode = userNodeService.getUserNode(nodeId, createBy);
|
|
|
+ if (userNode == null) {
|
|
|
return Result.fail(String.format("store_node with id %s not exist", nodeId));
|
|
|
}
|
|
|
|
|
|
- int createBy = UserContext.getUser().getId();
|
|
|
//int createBy = 410;
|
|
|
String channelPrefix = uploadChannelDto.getChannelPrefix();
|
|
|
UploadChannel uploadChannel = uploadChannelRepository.findByPrefixAndCreateByAndNodeId(channelPrefix, createBy, nodeId);
|
|
|
@@ -64,7 +68,7 @@ public class UploadChannelService {
|
|
|
uploadChannel = new UploadChannel(channelId, uploadChannelDto, createBy);
|
|
|
uploadChannelRepository.save(uploadChannel);
|
|
|
|
|
|
- String domain = storeNode.getDomain();
|
|
|
+ String domain = userNode.getDomain();
|
|
|
String name = uploadChannel.getName();
|
|
|
long maxSize = uploadChannel.getMaxSize();
|
|
|
int fileType = uploadChannel.getFileType();
|
|
|
@@ -72,11 +76,8 @@ public class UploadChannelService {
|
|
|
int scope = uploadChannel.getScope();
|
|
|
ObjectChannel channel = new ObjectChannel(channelId, name, channelPrefix, maxSize, fileType, seturl, scope, domain, createBy);
|
|
|
|
|
|
- String host = storeNode.getNodeAddr();
|
|
|
- int port = storeNode.getRpcPort();
|
|
|
- RemoteService<StoreService> remoteService = new RemoteService<>();
|
|
|
- StoreService storeService = remoteService.getService(host, port, StoreService.class);
|
|
|
- storeService.createChannel(createBy, channel);
|
|
|
+ StoreNode storeNode = storeNodeService.getById(nodeId);
|
|
|
+ storeRpcService.createChannel(storeNode, createBy, channel);
|
|
|
return Result.success();
|
|
|
}
|
|
|
|
|
|
@@ -119,19 +120,14 @@ public class UploadChannelService {
|
|
|
List<UploadChannelVo> list = page.stream().map(uploadChannel -> {
|
|
|
long maxSize = uploadChannel.getMaxSize();
|
|
|
String maxSizeStr = byteConverter.convert(ByteType.Bytes, maxSize);
|
|
|
- String bindDomain = storeNodeService.getById(uploadChannel.getNodeId()).getDomain();
|
|
|
+ UserNode userNode = userNodeService.getUserNode(uploadChannel.getNodeId(), loginUser);
|
|
|
+ String bindDomain = userNode.getDomain();
|
|
|
return new UploadChannelVo(uploadChannel, maxSizeStr, bindDomain);
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
return new PageImpl<>(list, pageRequest, page.getTotalElements());
|
|
|
}
|
|
|
|
|
|
- public List<UploadChannel> getByDomain(String domain) {
|
|
|
- StoreNode storeNode = storeNodeService.getByDomain(domain);
|
|
|
- int nodeId = storeNode.getId();
|
|
|
- return uploadChannelRepository.findByNodeId(nodeId);
|
|
|
- }
|
|
|
-
|
|
|
public UploadChannel getUploadChannel(int id) {
|
|
|
return uploadChannelRepository.findById(id).orElse(null);
|
|
|
}
|
|
|
@@ -153,8 +149,10 @@ public class UploadChannelService {
|
|
|
int fileType = uploadChannel.getFileType();
|
|
|
boolean seturl = uploadChannel.getSeturl();
|
|
|
int scope = uploadChannel.getScope();
|
|
|
- String domain = storeNodeService.getById(uploadChannel.getNodeId()).getDomain();
|
|
|
int createBy = uploadChannel.getCreateBy();
|
|
|
+
|
|
|
+ UserNode userNode = userNodeService.getUserNode(uploadChannel.getNodeId(), createBy);
|
|
|
+ String domain = userNode.getDomain();
|
|
|
return new ObjectChannel(channelId, name, channelPrefix, maxSize, fileType, seturl, scope, domain, createBy);
|
|
|
}
|
|
|
|
|
|
@@ -165,7 +163,8 @@ public class UploadChannelService {
|
|
|
throw new Exception(errMsg);
|
|
|
}
|
|
|
|
|
|
- String domain = storeNodeService.getById(uploadChannel.getNodeId()).getDomain();
|
|
|
+ UserNode userNode = userNodeService.getUserNode(uploadChannel.getNodeId(), uploadChannel.getCreateBy());
|
|
|
+ String domain = userNode.getDomain();
|
|
|
String ossUrl = String.format("//%s", domain);
|
|
|
long maxSize = uploadChannel.getMaxSize();
|
|
|
|