Explorar o código

stream ice server add

HANTE hai 3 meses
pai
achega
70d76ace48

+ 1 - 2
src/main/java/com/its/op/controller/its/LoginController.java

@@ -76,7 +76,6 @@ public class LoginController {
      * 로그인
      * @param login
      * @param model
-     * @return
      */
     @PostMapping("/login.do")
     public String postLogin(@ModelAttribute LoginDto.LoginReqDto login, Model model) {
@@ -100,7 +99,7 @@ public class LoginController {
     }
 
     public String getSessionUserId(HttpServletRequest request) {
-        String userId = "";
+        String userId;
         UserInfoDto userInfo = getSessionUserInfo(request);
         userId = userInfo.getUserId();
 //        if (userInfo != null) {

+ 71 - 0
src/main/java/com/its/op/controller/its/database/TbStrmIceSvrInfoController.java

@@ -0,0 +1,71 @@
+package com.its.op.controller.its.database;
+
+import com.its.op.dto.its.database.TbStrmIceSvrInfoDto;
+import com.its.op.service.its.database.TbStrmIceSvrInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@Api(tags = "09.기초데이터관리-15.스트리밍 ICE 서버 정보")
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/api/database/strm_ice_svr")
+public class TbStrmIceSvrInfoController {
+
+    private final TbStrmIceSvrInfoService service;
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 전체조회(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+    public List<TbStrmIceSvrInfoDto> findAll() {
+        return this.service.findAll();
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 전체조회(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/list", produces = {"application/json; charset=utf8"})
+    public List<TbStrmIceSvrInfoDto> findAllList() {
+        return this.service.findAllList();
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 개별조회(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class)
+    @GetMapping(value = "/{svrIp}", produces = {"application/json; charset=utf8"})
+    public TbStrmIceSvrInfoDto findById(@PathVariable("svrIp") final String svrIp) {
+        return this.service.findById(svrIp);
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 정보변경(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class)
+    @PutMapping(value = "/{svrIp}", produces = {"application/json; charset=utf8"})
+    public TbStrmIceSvrInfoDto updateById(@PathVariable("svrIp") final String svrIp, final @RequestBody @Valid TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq req) {
+        return this.service.updateById(svrIp, req);
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 정보변경/생성-목록(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class, responseContainer = "ArrayList")
+    @PostMapping(value = "", produces = {"application/json; charset=utf8"})
+    public List<TbStrmIceSvrInfoDto> mergeInfoList(final @RequestBody @Valid List<TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq> listReq) {
+        return this.service.mergeInfoList(listReq);
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 정보변경/생성-개별(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class)
+    @PostMapping(value = "/{svrIp}", produces = {"application/json; charset=utf8"})
+    public TbStrmIceSvrInfoDto mergeInfo(@PathVariable("svrIp") final String svrIp, final @RequestBody @Valid TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq req) {
+        return this.service.mergeInfo(req);
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 정보삭제-개별(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class)
+    @DeleteMapping(value = "/{svrIp}", produces = {"application/json; charset=utf8"})
+    public TbStrmIceSvrInfoDto deleteDataById(@PathVariable("svrIp") final String svrIp) {
+        return this.service.deleteById(svrIp);
+    }
+
+    @ApiOperation(value = "스트리밍 ICE 서버 정보 정보삭제-목록(TB_STRM_ICE_SVR_INFO)", response = TbStrmIceSvrInfoDto.class, responseContainer = "ArrayList")
+    @DeleteMapping(value = "", produces = {"application/json; charset=utf8"})
+    public List<TbStrmIceSvrInfoDto> deleteDataByIds(final @RequestBody @Valid List<String> ids) {
+        return this.service.deleteByIds(ids);
+    }
+
+}

+ 20 - 0
src/main/java/com/its/op/dao/repository/its/database/TbStrmIceSvrInfoRepository.java

@@ -0,0 +1,20 @@
+package com.its.op.dao.repository.its.database;
+
+import com.its.op.entity.its.database.TbStrmIceSvrInfo;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface TbStrmIceSvrInfoRepository extends JpaRepository<TbStrmIceSvrInfo, String>, JpaSpecificationExecutor<TbStrmIceSvrInfo> {
+
+    @Query("select p from TbStrmIceSvrInfo p")
+    List<TbStrmIceSvrInfo> findAll();
+
+    @Query("select p from TbStrmIceSvrInfo p")
+    List<TbStrmIceSvrInfo> findAllList();
+
+}

+ 96 - 0
src/main/java/com/its/op/dto/its/database/TbStrmIceSvrInfoDto.java

@@ -0,0 +1,96 @@
+package com.its.op.dto.its.database;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.its.op.entity.its.database.TbStrmIceSvrInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import javax.validation.constraints.PositiveOrZero;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+/**
+ * 스트리밍 ICE 서버 정보 DTO Class
+ */
+@Data
+@Builder
+@ApiModel("TbStrmIceSvrInfoDto(스트리밍 ICE 서버 정보)")
+public class TbStrmIceSvrInfoDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("ICE 서버 IP")  // N VARCHAR2(30)
+    @JsonProperty("svr_ip")
+    private String svrIp;
+
+    @ApiModelProperty("ICE 서버 프로토콜")  // N VARCHAR2(7)
+    @JsonProperty("svr_prot")
+    private String svrProt;
+
+    @ApiModelProperty("ICE 서버 포트")  // N NUMBER(5)
+    @JsonProperty("svr_port")
+    private Integer svrPort;
+
+    @ApiModelProperty("ICE 서버 ID")  // N VARCHAR2(30)
+    @JsonProperty("svr_id")
+    private String svrId;
+
+    @ApiModelProperty("ICE 서버 PSWD")  // N VARCHAR2(60)
+    @JsonProperty("svr_pswd")
+    private String svrPswd;
+
+    // Code Description Field
+    @ApiModel("TbStrmIceSvrInfoUpdReq(스트리밍 ICE 서버 정보 정보변경)")
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor//(access = AccessLevel.PROTECTED)
+    public static class TbStrmIceSvrInfoUpdReq {
+
+        @ApiModelProperty("ICE 서버 IP, Nullable = N, VARCHAR2(30)")  // N VARCHAR2(30)
+        @JsonProperty("svr_ip")
+        @Size(min=1, max=30)
+        private String svrIp;
+
+        @ApiModelProperty("ICE 서버 프로토콜, Nullable = N, VARCHAR2(7)")  // N VARCHAR2(7)
+        @JsonProperty("svr_prot")
+        @Size(min=1, max=7)
+        private String svrProt;
+
+        @ApiModelProperty("ICE 서버 포트, Nullable = N, NUMBER(5)")  // N NUMBER(5)
+        @JsonProperty("svr_port")
+        @PositiveOrZero
+        private Integer svrPort;
+
+        @ApiModelProperty("ICE 서버 ID, Nullable = N, VARCHAR2(30)")  // N VARCHAR2(30)
+        @JsonProperty("svr_id")
+        @Size(min=1, max=30)
+        private String svrId;
+
+        @ApiModelProperty("ICE 서버 PSWD, Nullable = N, VARCHAR2(60)")  // N VARCHAR2(60)
+        @JsonProperty("svr_pswd")
+        @Size(min=1, max=60)
+        private String svrPswd;
+
+        @Builder
+        public TbStrmIceSvrInfoUpdReq(String svr_ip, String svr_prot, Integer svr_port, String svr_id, String svr_pswd) {
+            this.svrIp = svr_ip;
+            this.svrProt = svr_prot;
+            this.svrPort = svr_port;
+            this.svrId = svr_id;
+            this.svrPswd = svr_pswd;
+        }
+
+        public TbStrmIceSvrInfo toEntity() {
+            return TbStrmIceSvrInfo.builder()
+                    .svrIp(this.svrIp)
+                    .svrProt(this.svrProt)
+                    .svrPort(this.svrPort)
+                    .svrId(this.svrId)
+                    .svrPswd(this.svrPswd)
+                    .build();
+        }
+
+    }
+
+}

+ 72 - 0
src/main/java/com/its/op/entity/its/database/TbStrmIceSvrInfo.java

@@ -0,0 +1,72 @@
+package com.its.op.entity.its.database;
+
+import com.its.op.dto.its.database.TbStrmIceSvrInfoDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+
+/**
+ * 스트리밍 ICE 서버 정보 Entity Class
+ */
+@ApiModel("스트리밍 ICE 서버 정보")
+@Getter
+@Builder
+@NoArgsConstructor//(access = AccessLevel.PROTECTED)
+@AllArgsConstructor
+@Entity
+@Table(name = "TB_STRM_ICE_SVR_INFO")
+public class TbStrmIceSvrInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("ICE 서버 IP")  // N VARCHAR2(30)
+    @Id
+    @Column(name = "SVR_IP", nullable = false, length = 30)
+    private String svrIp;
+
+    @ApiModelProperty("ICE 서버 프로토콜")  // N VARCHAR2(7)
+    @Column(name = "SVR_PROT", nullable = false, length = 7)
+    private String svrProt;
+
+    @ApiModelProperty("ICE 서버 포트")  // N NUMBER(5)
+    @Column(name = "SVR_PORT", nullable = false, columnDefinition = "NUMBER", length = 5)
+    private Integer svrPort;
+
+    @ApiModelProperty("ICE 서버 ID")  // N VARCHAR2(30)
+    @Column(name = "SVR_ID", nullable = false, length = 30)
+    private String svrId;
+
+    @ApiModelProperty("ICE 서버 PSWD")  // N VARCHAR2(60)
+    @Column(name = "SVR_PSWD", nullable = false, length = 60)
+    private String svrPswd;
+
+    public TbStrmIceSvrInfoDto toDto() {
+        return TbStrmIceSvrInfoDto.builder()
+                .svrIp(this.svrIp)
+                .svrProt(this.svrProt)
+                .svrPort(this.svrPort)
+                .svrId(this.svrId)
+                .svrPswd(this.svrPswd)
+                .build();
+    }
+
+    public TbStrmIceSvrInfo(String svrIp) {
+        this.svrIp = svrIp;
+    }
+
+    public void updateInfo(TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq req) {
+        this.svrProt = req.getSvrProt();
+        this.svrPort = req.getSvrPort();
+        this.svrId = req.getSvrId();
+        this.svrPswd = req.getSvrPswd();
+    }
+
+}

+ 114 - 0
src/main/java/com/its/op/service/its/database/TbStrmIceSvrInfoService.java

@@ -0,0 +1,114 @@
+package com.its.op.service.its.database;
+
+import com.its.op.dao.repository.its.database.TbStrmIceSvrInfoRepository;
+import com.its.op.dto.its.database.TbStrmIceSvrInfoDto;
+import com.its.op.entity.its.database.TbStrmIceSvrInfo;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Optional;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class TbStrmIceSvrInfoService {
+
+    private final TbStrmIceSvrInfoRepository repo;
+
+    // 데이터 1건 조회, 없으면 exception
+    private TbStrmIceSvrInfo requireOne(String svrIp) throws NoSuchElementException {
+        Optional<TbStrmIceSvrInfo> info = this.repo.findById(svrIp);
+        if (info.isPresent()) {
+            return info.get();
+        }
+        else {
+            throw new NoSuchElementException("데이터가 존재하지 않습니다: " + svrIp);
+        }
+    }
+
+    // 전체 데이터 조회
+    @Transactional(readOnly = true)
+    public List<TbStrmIceSvrInfoDto> findAll() {
+        List<TbStrmIceSvrInfoDto> result = new ArrayList<>();
+        List<TbStrmIceSvrInfo> data = this.repo.findAll();
+        for (TbStrmIceSvrInfo entity : data) {
+            result.add(entity.toDto());
+        }
+        return result;
+    }
+
+    // 전체 데이터 조회
+    @Transactional(readOnly = true)
+    public List<TbStrmIceSvrInfoDto> findAllList() {
+        List<TbStrmIceSvrInfoDto> result = new ArrayList<>();
+        List<TbStrmIceSvrInfo> data = this.repo.findAllList();
+        for (TbStrmIceSvrInfo entity : data) {
+            result.add(entity.toDto());
+        }
+        return result;
+    }
+
+    // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
+    @Transactional(readOnly = true)
+    public TbStrmIceSvrInfoDto findById(String svrIp) {
+        TbStrmIceSvrInfo entity = requireOne(svrIp);
+        return entity.toDto();
+    }
+
+    // 데이터 변경
+    @Transactional
+    public TbStrmIceSvrInfoDto updateById(String svrIp, TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq req) {
+        TbStrmIceSvrInfo entity = requireOne(svrIp);
+        entity.updateInfo(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
+
+    // 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
+    @Transactional
+    public List<TbStrmIceSvrInfoDto> mergeInfoList(List<TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq> reqList) {
+        List<TbStrmIceSvrInfoDto> result = new ArrayList<>();
+        for (TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq req : reqList) {
+            TbStrmIceSvrInfo obj = req.toEntity();
+            this.repo.save(obj);
+            result.add(obj.toDto());
+        }
+        return result;
+    }
+
+    // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
+    @Transactional
+    public TbStrmIceSvrInfoDto mergeInfo(TbStrmIceSvrInfoDto.TbStrmIceSvrInfoUpdReq req) {
+        TbStrmIceSvrInfo obj = req.toEntity();
+        this.repo.save(obj);
+        return obj.toDto();
+    }
+
+    // 정보 삭제-개별, 데이터 존재하지 않으면 Exception
+    @Transactional
+    public TbStrmIceSvrInfoDto deleteById(String svrIp) {
+        TbStrmIceSvrInfo entity = requireOne(svrIp);
+        this.repo.deleteById(svrIp);
+        return entity.toDto();
+    }
+
+    // 정보 삭제-목록, 존재하는 데이터 만 삭제
+    @Transactional
+    public List<TbStrmIceSvrInfoDto> deleteByIds(List<String> ids) {
+        List<TbStrmIceSvrInfoDto> result = new ArrayList<>();
+        for (String id : ids) {
+            Optional<TbStrmIceSvrInfo> obj = this.repo.findById(id);
+            if (obj.isPresent()) {
+                this.repo.deleteById(id);
+                result.add(obj.get().toDto());
+            }
+        }
+        return result;
+    }
+
+}