[server] server app relation accomplished

This commit is contained in:
zeaslity
2022-11-27 15:26:09 +08:00
parent bf7d0f9501
commit 7868e299ba
4 changed files with 130 additions and 48 deletions

View File

@@ -1,11 +1,12 @@
package io.wdd.server.beans.po; package io.wdd.server.beans.po;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
/** /**
@@ -44,12 +45,13 @@ public class AppInfoPO implements Serializable {
/** /**
* *
*/ */
private Date createTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
* @TableField(fill = FieldFill.INSERT_UPDATE)
*/ private LocalDateTime updateTime;
private Date updateTime;
/** /**
* *

View File

@@ -6,6 +6,7 @@ import io.wdd.wddcommon.utils.R;
import io.wdd.server.beans.po.ServerInfoPO; import io.wdd.server.beans.po.ServerInfoPO;
import io.wdd.server.beans.vo.ServerInfoVO; import io.wdd.server.beans.vo.ServerInfoVO;
import io.wdd.server.coreService.CoreServerService; import io.wdd.server.coreService.CoreServerService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -21,52 +22,52 @@ public class ServerController {
CoreServerService coreServerService; CoreServerService coreServerService;
@GetMapping("/all") @GetMapping("/all")
public R<List> getAllServerInfo() { public R<List> serverGetAll() {
return R.ok(coreServerService.getServerInfoList()); return R.ok(coreServerService.serverGetAll());
} }
@GetMapping("/allIncludeDelete") @GetMapping("/allIncludeDelete")
public R<List> getAllServerInfoIncludeDelete() { public R<List> serverGetAllIncludeDelete() {
return R.ok(coreServerService.getServerInfoListIncludeDelete()); return R.ok(coreServerService.serverGetAllIncludeDelete());
} }
@PostMapping("/single") @PostMapping("/single")
public R getSingleServerInfo( public R serverGetSingle(
@RequestParam(value = "serverIPv4") @Nullable String ipv4, @RequestParam(value = "serverIPv4") @Nullable String ipv4,
@RequestParam(value = "serverName") @Nullable String serverName, @RequestParam(value = "serverName") @Nullable String serverName,
@RequestParam(value = "serverLocation") @Nullable String serverLocation @RequestParam(value = "serverLocation") @Nullable String serverLocation
) { ) {
return R.ok(coreServerService.getServerInfoSingle(serverName, ipv4, serverLocation)); return R.ok(coreServerService.serverGetSingle(serverName, ipv4, serverLocation));
} }
@PostMapping("/newServer") @PostMapping("/serverCreate")
public R createServerInfo(@RequestBody @Validated ServerInfoVO serverInfoVO) { public R serverCreate(@RequestBody @Validated ServerInfoVO serverInfoVO) {
if (coreServerService.createServerInfo(serverInfoVO)) { if (coreServerService.serverCreate(serverInfoVO)) {
return R.ok("Create Server Success !"); return R.ok("Create Server Success !");
} }
return R.failed("Create Server Failed !"); return R.failed("Create Server Failed !");
} }
@PostMapping("/updateServerInfo") @PostMapping("/serverUpdate")
public R updateServerInfo(@RequestBody ServerInfoPO serverInfoPO) { public R serverUpdate(@RequestBody ServerInfoPO serverInfoPO) {
if (coreServerService.updateServerInfo(serverInfoPO)) { if (coreServerService.serverUpdate(serverInfoPO)) {
return R.ok("Server info update successfully !"); return R.ok("Server info update successfully !");
} }
return R.failed("Server info update failed !"); return R.failed("Server info update failed !");
} }
@PostMapping("/deleteServer") @PostMapping("/serverDelete")
public R deleteServer( public R<String> serverDelete(
@RequestParam(value = "serverId") @Nullable Long serverId, @RequestParam(value = "serverId") @Nullable Long serverId,
@RequestParam(value = "serverName") @Nullable String serverName) { @RequestParam(value = "serverName") @Nullable String serverName) {
if (coreServerService.deleteServer(serverId, serverName)) { if (coreServerService.serverDelete(serverId, serverName)) {
R.ok("Delete Server Successfully !"); R.ok("Delete Server Successfully !");
} }
@@ -75,17 +76,55 @@ public class ServerController {
/* /*
* Associated with appInfo * Associated with appInfo
* server 1______n app * server 1______n app
* */ * */
@GetMapping("/getAllApp") // get
public R<List<AppInfoVO>> getAllAppInfo( @GetMapping("/appGetAll")
public R<List<AppInfoVO>> appGetAll(
@RequestParam(value = "serverId", required = true) Long serverId @RequestParam(value = "serverId", required = true) Long serverId
){ ) {
return R.ok(coreServerService.getAllAppInfo(serverId)); return R.ok(coreServerService.appGetAll(serverId));
} }
// create
@PostMapping("/appCreate")
public R<AppInfoVO> appCreate(
@RequestParam(value = "serverId", required = true) Long serverId,
@RequestBody @Validated AppInfoVO appInfoVO
) {
AppInfoVO newAppForServer = coreServerService.appCreate(serverId, appInfoVO);
if (ObjectUtils.isNotEmpty(newAppForServer)) {
return R.ok(newAppForServer);
}
System.out.println("create new app failed !");
return R.failed(null);
}
// delete
@PostMapping("/appDelete")
public R<String> appDelete(
@RequestParam(value = "serverId", required = true) Long serverId,
@RequestParam(value = "appId", required = true) Long appId
) {
if (coreServerService.appDelete(serverId, appId)) {
return R.ok("delete app successfully!");
}
return R.failed("delete app unsuccessful");
}
// modify -- just modify the appInfo is ok
} }

View File

@@ -8,17 +8,21 @@ import java.util.List;
public interface CoreServerService { public interface CoreServerService {
List<ServerInfoPO> getServerInfoSingle(String serverName, String ipv4, String serverLocation); List<ServerInfoPO> serverGetSingle(String serverName, String ipv4, String serverLocation);
List<ServerInfoVO> getServerInfoList(); List<ServerInfoVO> serverGetAll();
List<ServerInfoVO> getServerInfoListIncludeDelete(); List<ServerInfoVO> serverGetAllIncludeDelete();
boolean createServerInfo(ServerInfoVO serverInfoVO); boolean serverCreate(ServerInfoVO serverInfoVO);
boolean updateServerInfo(ServerInfoPO serverInfoPO); boolean serverUpdate(ServerInfoPO serverInfoPO);
boolean deleteServer(Long serverId, String serverName); boolean serverDelete(Long serverId, String serverName);
List<AppInfoVO> getAllAppInfo(Long serverId); List<AppInfoVO> appGetAll(Long serverId);
AppInfoVO appCreate(Long serverId, AppInfoVO appInfoVO);
boolean appDelete(Long serverId, Long appId);
} }

View File

@@ -18,10 +18,13 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -40,7 +43,7 @@ public class CoreServerServiceImpl implements CoreServerService {
@Override @Override
public List<ServerInfoPO> getServerInfoSingle(String serverName, String ipv4, String serverLocation) { public List<ServerInfoPO> serverGetSingle(String serverName, String ipv4, String serverLocation) {
// ignore if deleted ! // ignore if deleted !
return new LambdaQueryChainWrapper<>(serverInfoService.getBaseMapper()) return new LambdaQueryChainWrapper<>(serverInfoService.getBaseMapper())
@@ -52,7 +55,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} }
@Override @Override
public List<ServerInfoVO> getServerInfoList() { public List<ServerInfoVO> serverGetAll() {
List<ServerInfoPO> serverInfoPOWithOutDelete = serverInfoService.list(); List<ServerInfoPO> serverInfoPOWithOutDelete = serverInfoService.list();
@@ -61,7 +64,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} }
@Override @Override
public List<ServerInfoVO> getServerInfoListIncludeDelete() { public List<ServerInfoVO> serverGetAllIncludeDelete() {
// todo how to solve the problem? // todo how to solve the problem?
// this.covertServerPOtoVO(serverInfoService.getAll()); // this.covertServerPOtoVO(serverInfoService.getAll());
@@ -70,7 +73,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} }
@Override @Override
public boolean createServerInfo(ServerInfoVO serverInfoVO) { public boolean serverCreate(ServerInfoVO serverInfoVO) {
ServerInfoPO serverInfoPO = new ServerInfoPO(); ServerInfoPO serverInfoPO = new ServerInfoPO();
BeanUtils.copyProperties(serverInfoVO, serverInfoPO); BeanUtils.copyProperties(serverInfoVO, serverInfoPO);
@@ -79,7 +82,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} }
@Override @Override
public boolean updateServerInfo(ServerInfoPO serverInfoPO) { public boolean serverUpdate(ServerInfoPO serverInfoPO) {
if (serverInfoPO.getServerId() == null) { if (serverInfoPO.getServerId() == null) {
return false; return false;
@@ -91,7 +94,7 @@ public class CoreServerServiceImpl implements CoreServerService {
} }
@Override @Override
public boolean deleteServer(Long serverId, String serverName) { public boolean serverDelete(Long serverId, String serverName) {
if (serverId == null && StringUtils.isBlank(serverName)) { if (serverId == null && StringUtils.isBlank(serverName)) {
return false; return false;
@@ -107,24 +110,58 @@ public class CoreServerServiceImpl implements CoreServerService {
} }
@Override @Override
public List<AppInfoVO> getAllAppInfo(Long serverId) { public List<AppInfoVO> appGetAll(Long serverId) {
// serverInfo --- server_app_relation --- appInfo // serverInfo --- server_app_relation --- appInfo
List<ServerAppRelationPO> serverAppRelationPOList = new LambdaQueryChainWrapper<ServerAppRelationPO>(serverAppRelationService.getBaseMapper()).eq(ServerAppRelationPO::getServerId, serverId).list(); List<ServerAppRelationPO> serverAppRelationPOList = new LambdaQueryChainWrapper<ServerAppRelationPO>(serverAppRelationService.getBaseMapper()).eq(ServerAppRelationPO::getServerId, serverId).list();
Assert.notEmpty(serverAppRelationPOList,"No server find");
// query the app info with specific server id // query the app info with specific server id
List<AppInfoPO> appInfoPOList = appInfoService.listByIds(serverAppRelationPOList.stream().map( List<AppInfoPO> appInfoPOList = appInfoService.listByIds(serverAppRelationPOList.stream().map(
serverAppRelationPO -> { serverAppRelationPO -> serverAppRelationPO.getAppId()
return serverAppRelationPO.getAppId();
}
).collect(Collectors.toList())); ).collect(Collectors.toList()));
return EntityUtils.cvToTarget(appInfoPOList,AppInfoVO.class); return EntityUtils.cvToTarget(appInfoPOList,AppInfoVO.class);
} }
@Override
@Transactional
public AppInfoVO appCreate(Long serverId, AppInfoVO appInfoVO) {
Assert.notNull(serverInfoService.getById(serverId),"server not find, can't create a app");
// 1- save appInfo itself
AppInfoPO appInfoPO = EntityUtils.cvToTarget(appInfoVO, AppInfoPO.class);
appInfoService.save(appInfoPO);
// 2. create the relation
ServerAppRelationPO relationPO = new ServerAppRelationPO();
relationPO.setServerId(serverId);
relationPO.setAppId(appInfoPO.getAppId());
serverAppRelationService.save(relationPO);
return EntityUtils.cvToTarget(appInfoPO, AppInfoVO.class);
}
@Override
@Transactional
public boolean appDelete(Long serverId, Long appId) {
Assert.notNull(serverInfoService.getById(serverId),"server not find, can't delete a app");
Assert.notNull(appInfoService.getById(appId),"app not find, can't delete a app");
// 1. delete the relation
serverAppRelationService.removeById(serverId);
// 2. delete the app
appInfoService.removeById(appId);
return true;
}
private List<ServerInfoVO> covertServerPOtoVO(List<ServerInfoPO> serverInfoPOList) { private List<ServerInfoVO> covertServerPOtoVO(List<ServerInfoPO> serverInfoPOList) {
if (null == serverInfoPOList || serverInfoPOList.size() == 0) { if (null == serverInfoPOList || serverInfoPOList.size() == 0) {