From d600487e750cb2017fc3828fbea6bddf91733c66 Mon Sep 17 00:00:00 2001 From: keymasroy Date: Tue, 21 Dec 2021 20:49:14 +0900 Subject: [PATCH] Sample Update --- .../java/bo/sample/SampleController.java | 28 ---- .../java/bo/sample/SampleModel.java | 48 ------- .../java/bo/sample/SampleRepository.java | 13 -- .../java/bo/sample/SampleResVo.java | 8 -- .../java/bo/sample/SampleService.java | 19 --- .../bo/sample/crud/SampleCrudController.java | 59 ++++++++ .../java/bo/sample/crud/SampleCrudMapper.java | 57 ++++++++ .../java/bo/sample/crud/SampleCrudModel.java | 97 +++++++++++++ .../bo/sample/crud/SampleCrudService.java | 96 +++++++++++++ .../bo/src/main/resources/application.yml | 15 +- .../resources/mapper/SampleCrudMapper.xml | 134 ++++++++++++++++++ .../resources/mapper/SampleRepository.xml | 28 ---- back/root/build.gradle | 32 ++++- 13 files changed, 471 insertions(+), 163 deletions(-) delete mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleController.java delete mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleModel.java delete mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleRepository.java delete mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleResVo.java delete mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleService.java create mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudController.java create mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudMapper.java create mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudModel.java create mode 100644 back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudService.java create mode 100644 back/root/bo/src/main/resources/mapper/SampleCrudMapper.xml delete mode 100644 back/root/bo/src/main/resources/mapper/SampleRepository.xml diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleController.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleController.java deleted file mode 100644 index f750786..0000000 --- a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleController.java +++ /dev/null @@ -1,28 +0,0 @@ -package sample.ustraframework.java.bo.sample; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.gsitm.ustra.java.data.domains.PaginationList; -import com.gsitm.ustra.java.mvc.rest.utils.UstraRestUtils; - -@RestController -public class SampleController { - - @Autowired SampleService service; - -// @GetMapping("/api/test") -// public SampleResVo test() { -// SampleResVo vo = new SampleResVo(); -// vo.setTest("test"); -// return vo; -// } - - @PostMapping("/api/sample/paging") - PaginationList getCodeList(@RequestBody SampleModel.Criteria criteria) { - return service.getCodes(UstraRestUtils.getCurrentApiHeader(), criteria); - } - -} \ No newline at end of file diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleModel.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleModel.java deleted file mode 100644 index 9968c2d..0000000 --- a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleModel.java +++ /dev/null @@ -1,48 +0,0 @@ -package sample.ustraframework.java.bo.sample; - -import java.time.LocalDateTime; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; - -@Data -@SuperBuilder -@EqualsAndHashCode(callSuper=false) -@NoArgsConstructor -@AllArgsConstructor -public class SampleModel { - - private String grpCd; - private String dtlCd; - private String cdNm; - private String cdDesc; - private String useYn; - private String rmk; - private LocalDateTime regDttm; - private String regUsrId; - private String regUsrIp; - private LocalDateTime updDttm; - private String updUsrId; - private String updUsrIp; - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class Criteria { - private SearchValue searchValue; - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - public static class SearchValue { - private String grpCd; - private String dtlCd; - } - } -} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleRepository.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleRepository.java deleted file mode 100644 index 1ce045c..0000000 --- a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package sample.ustraframework.java.bo.sample; - -import org.apache.ibatis.annotations.Mapper; - -import com.gsitm.ustra.java.data.domains.PaginationList; -import com.gsitm.ustra.java.data.domains.PaginationRequest; - -@Mapper -public interface SampleRepository { - - PaginationList select(PaginationRequest pagination, SampleModel.Criteria criteria); - -} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleResVo.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleResVo.java deleted file mode 100644 index 1acd89d..0000000 --- a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleResVo.java +++ /dev/null @@ -1,8 +0,0 @@ -package sample.ustraframework.java.bo.sample; - -import lombok.Data; - -@Data -public class SampleResVo { - private String test; -} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleService.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleService.java deleted file mode 100644 index 2248b44..0000000 --- a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/SampleService.java +++ /dev/null @@ -1,19 +0,0 @@ -package sample.ustraframework.java.bo.sample; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.gsitm.ustra.java.data.domains.PaginationList; -import com.gsitm.ustra.java.data.domains.PaginationRequest; - -@Service -@Transactional -public class SampleService { - - @Autowired private SampleRepository sampleRepository; - - public PaginationList getCodes(PaginationRequest pagination, SampleModel.Criteria criteria) { - return sampleRepository.select(pagination, criteria); - }; -} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudController.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudController.java new file mode 100644 index 0000000..f541232 --- /dev/null +++ b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudController.java @@ -0,0 +1,59 @@ +package sample.ustraframework.java.bo.sample.crud; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.gsitm.ustra.java.data.domains.PaginationList; +import com.gsitm.ustra.java.mvc.handler.resolver.JsonStringParameter; + +@RestController +@RequestMapping("/api/sample/crud-code") +public class SampleCrudController { + + @Autowired private SampleCrudService sampleCrudService; + + @GetMapping("") + PaginationList getCodeList(@JsonStringParameter SampleCrudModel.Criteria criteria) { + return sampleCrudService.getList(criteria); + } + + @GetMapping("/groups") + List getCodeGroups() { + return sampleCrudService.getGroups(); + } + + @GetMapping("/{grpCd}/{dtlCd}") + SampleCrudModel getCode(@PathVariable String grpCd, @PathVariable String dtlCd) { + return sampleCrudService.get( + SampleCrudModel.builder() + .grpCd(grpCd) + .dtlCd(dtlCd) + .build()); + } + + + @PostMapping("") + SampleCrudModel add(@RequestBody SampleCrudModel code) { + return sampleCrudService.add(code); + } + + @PutMapping("") + SampleCrudModel edit(@RequestBody SampleCrudModel code) { + return sampleCrudService.edit(code); + } + + @DeleteMapping("") + SampleCrudModel remove(@RequestBody SampleCrudModel code) { + return sampleCrudService.remove(code); + } + +} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudMapper.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudMapper.java new file mode 100644 index 0000000..1b5f600 --- /dev/null +++ b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudMapper.java @@ -0,0 +1,57 @@ +package sample.ustraframework.java.bo.sample.crud; + +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; + +import com.gsitm.ustra.java.data.domains.PaginationList; +import com.gsitm.ustra.java.data.domains.PaginationRequest; + +@Mapper +public interface SampleCrudMapper { + + /** + * 코드 목록 조회 + * @param pagination 페이징 요청 정보 + * @param criteria 검색 조건 + * @return 코드 목록 + */ + PaginationList select(PaginationRequest pagination, SampleCrudModel.Criteria criteria); + + /** + * 코드 그룹 목록 조회 + * @return 코드 목록 + */ + List selectGroups(); + + /** + * 코드 상세 조회 + * @param criteria 검색 조건 + * @return 코드 정보 + */ + SampleCrudModel selectDetail(SampleCrudModel criteria); + + + /** + * 코드 입력 + * @param code 코드 정보 + * @return 입력 건수 + */ + int insert(SampleCrudModel code); + + /** + * 코드 수정 + * @param code 코드 정보 + * @return 수정 건수 + */ + int update(SampleCrudModel code); + + + /** + * 코드 삭제 + * @param code 코드 정보 + * @return 삭제 건수 + */ + int delete(SampleCrudModel code); + +} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudModel.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudModel.java new file mode 100644 index 0000000..967cabc --- /dev/null +++ b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudModel.java @@ -0,0 +1,97 @@ +package sample.ustraframework.java.bo.sample.crud; + +import javax.validation.constraints.NotEmpty; + +import com.gsitm.ustra.java.data.domains.PaginationRequest; +import com.gsitm.ustra.java.data.validation.CrudGroups; +import com.gsitm.ustra.java.management.models.base.UstraManagementBaseModel; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +@Data +@EqualsAndHashCode(callSuper = false) +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SampleCrudModel extends UstraManagementBaseModel { + + /** + * 그룹 코드 + */ + @NotEmpty(message = "그룹코드는 필수 값입니다.", groups = { + CrudGroups.Detail.class, + CrudGroups.Add.class, + CrudGroups.Edit.class, + CrudGroups.Remove.class + }) + private String grpCd; + + /** + * 상세 코드 + */ + @NotEmpty(message = "상세코드는 필수 값입니다.", groups = { + CrudGroups.Detail.class, + CrudGroups.Add.class, + CrudGroups.Edit.class, + CrudGroups.Remove.class + }) + private String dtlCd; + + /** + * 코드 명 + */ + @NotEmpty(message = "코드명은 필수 값입니다.", groups = { + CrudGroups.Add.class, + CrudGroups.Edit.class + }) + private String cdNm; + + /** + * 코드 상세 내용 + */ + private String cdDesc; + + /** + * 사용 여부 + */ + @NotEmpty(message = "사용여부는 필수 값입니다.", groups = { + CrudGroups.Add.class, + CrudGroups.Edit.class + }) + private String useYn; + + /** + * 비고 + */ + private String rmk; + + + /** + * 조건 + * @author keymasroy + * + */ + @Data + public static class Criteria { + /** + * 사용 여부 + */ + private String useYn; + + /** + * 그룹 코드 + */ + private String grpCd; + + /** + * 페이징 요청 정보 + */ + private PaginationRequest paginationRequest; + } + + +} diff --git a/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudService.java b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudService.java new file mode 100644 index 0000000..3091f46 --- /dev/null +++ b/back/root/bo/src/main/java/sample/ustraframework/java/bo/sample/crud/SampleCrudService.java @@ -0,0 +1,96 @@ +package sample.ustraframework.java.bo.sample.crud; + +import java.util.List; + +import javax.validation.Valid; +import javax.validation.groups.ConvertGroup; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import com.gsitm.ustra.java.data.domains.PaginationList; +import com.gsitm.ustra.java.data.exception.UstraDataResponseCode; +import com.gsitm.ustra.java.data.validation.CrudGroups; + +@Service +@Validated +@Transactional +public class SampleCrudService { + + @Autowired private SampleCrudMapper sampleCrudMapper; + + /** + * 코드 페이징 목록 조회 + * @param pagination 페이징 요청 정보 + * @param criteria 검색 조건 + * @return 코드 목록 + */ + public PaginationList getList(SampleCrudModel.Criteria criteria) { + return sampleCrudMapper.select(criteria.getPaginationRequest(), criteria); + } + + /** + * 코드 그룹 목록 조회 + * @return 코드 목록 + */ + public List getGroups() { + return sampleCrudMapper.selectGroups(); + } + + /** + * 코드 상세 정보 조회 + * @param criteria 검색 조건 + * @return 코드 정보 + */ + public SampleCrudModel get(@ConvertGroup(to=CrudGroups.Detail.class) @Valid SampleCrudModel criteria) { + return sampleCrudMapper.selectDetail(criteria); + } + + /** + * 코드 입력 + * @param code 입력 정보 + * @return 입력 코드 정보 + */ + public SampleCrudModel add(@ConvertGroup(to=CrudGroups.Add.class) @Valid SampleCrudModel code) { + int result = sampleCrudMapper.insert(code); + + if (result < 1) { + throw UstraDataResponseCode.CANNOT_SAVE_RECORD.exception(); + } + + return code; + } + + /** + * 코드 수정 + * @param code 수정 정보 + * @return 수정 코드 정보 + */ + public SampleCrudModel edit(@ConvertGroup(to=CrudGroups.Edit.class) @Valid SampleCrudModel code) { + int result = sampleCrudMapper.update(code); + + if (result < 1) { + throw UstraDataResponseCode.CANNOT_SAVE_RECORD.exception(); + } + + return code; + } + + /** + * 코드 삭제 + * @param code 삭제 정보 + * @return 삭제 코드 정보 + */ + public SampleCrudModel remove(@ConvertGroup(to=CrudGroups.Remove.class) @Valid SampleCrudModel code) { + int result = sampleCrudMapper.delete(code); + + if (result < 1) { + throw UstraDataResponseCode.CANNOT_DELETE_RECORD.exception(); + } + + return code; + } + +} diff --git a/back/root/bo/src/main/resources/application.yml b/back/root/bo/src/main/resources/application.yml index 66e5f78..0168376 100644 --- a/back/root/bo/src/main/resources/application.yml +++ b/back/root/bo/src/main/resources/application.yml @@ -10,7 +10,7 @@ spring: mybatis: - mapperLocations: classpath:/mapper/**/*.xml,classpath:/mapper2/**/*.xml + mapperLocations: classpath:/mapper/**/*.xml type-aliases-package: com.gsitm.ustra.java.management.models configuration: jdbc-type-for-null: "NULL" @@ -24,19 +24,6 @@ ustra: core: process-info: default-system-code: BO - cache: - map: - additional-cache-names: USTRA-TEST-CACHE - caffeine: - caffeine-test: - maximum-size: 200 - initial-capacity: 100 - # refresh-seconds: 600 - expire-after-write-seconds: 1800 - expire-after-access-seconds: 1800 - #eh: - # eh-test: - # config-location: classpath:/ehcache.xml data: procedure-manager: enabled: true diff --git a/back/root/bo/src/main/resources/mapper/SampleCrudMapper.xml b/back/root/bo/src/main/resources/mapper/SampleCrudMapper.xml new file mode 100644 index 0000000..8999317 --- /dev/null +++ b/back/root/bo/src/main/resources/mapper/SampleCrudMapper.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + INSERT INTO USTRA_SAMPLE_CMM_CD ( + GRP_CD, + DTL_CD, + CD_NM, + CD_DESC, + RMK, + USE_YN, + REG_DTTM, + REG_USR_ID, + REG_USR_IP, + UPD_DTTM, + UPD_USR_ID, + UPD_USR_IP + ) VALUES ( + #{grpCd}, + #{dtlCd}, + #{cdNm}, + #{cdDesc}, + #{rmk}, + #{useYn}, + CURRENT_TIMESTAMP, + #{regUsrId}, + #{regUsrIp}, + CURRENT_TIMESTAMP, + #{updUsrId}, + #{updUsrIp} + ) + + + + UPDATE USTRA_SAMPLE_CMM_CD SET + CD_NM = #{cdNm}, + CD_DESC = #{cdDesc}, + RMK = #{rmk}, + USE_YN = #{useYn}, + UPD_DTTM = CURRENT_TIMESTAMP, + UPD_USR_ID = #{updUsrId}, + UPD_USR_IP = #{updUsrIp} + WHERE GRP_CD = #{grpCd} + AND DTL_CD = #{dtlCd} + + + + + DELETE USTRA_SAMPLE_CMM_CD + WHERE GRP_CD = #{grpCd} + AND DTL_CD = #{dtlCd} + + + \ No newline at end of file diff --git a/back/root/bo/src/main/resources/mapper/SampleRepository.xml b/back/root/bo/src/main/resources/mapper/SampleRepository.xml deleted file mode 100644 index 9c7dad4..0000000 --- a/back/root/bo/src/main/resources/mapper/SampleRepository.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/back/root/build.gradle b/back/root/build.gradle index d0d1a48..ff6134b 100644 --- a/back/root/build.gradle +++ b/back/root/build.gradle @@ -1,8 +1,10 @@ buildscript { ext { springBootVersion = '2.2.5.RELEASE' - ustraVersion = '2.0.41.RELEASE' set('springCloudVersion', "Hoxton.SR3") + + // log4j2 버전 변경 + set('log4j2.version', '2.15.0') } repositories { @@ -18,6 +20,19 @@ buildscript { } } +// configuration setting version +configurations.all { + resolutionStrategy.eachDependency { DependencyResolveDetails details -> + if (details.requested.group == 'ch.qos.logback') { + details.useVersion '1.2.9' + } + + if (details.requested.group == 'org.apache.logging.log4j') { + details.useVersion '2.15.0' + } + } +} + allprojects { group = 'sample.ustraframework.java' version = '0.0.1-SNAPSHOT' @@ -34,13 +49,14 @@ subprojects { sourceCompatibility = 1.8 targetCompatibility = 1.8 - eclipse { - classpath { downloadSources=true } - } + eclipse { + classpath { downloadSources=true } + } ext { set('springCloudVersion', "Hoxton.SR3") + ustraVersion = '2.0.50.8-SNAPSHOT' } @@ -71,12 +87,18 @@ subprojects { } dependencies { + + implementation 'ch.qos.logback:logback-core:1.2.9' + implementation 'ch.qos.logback:logback-classic:1.2.9' + + implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.15.0' + implementation 'org.apache.logging.log4j:log4j-api:2.15.0' + implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' compileOnly 'org.projectlombok:lombok' - compileOnly 'org.springframework.boot:spring-boot-devtools' compile 'org.springframework.boot:spring-boot-starter-aop' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'