diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 265d9e4..266fc13 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,6 +2,7 @@ + diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 4bbcf6d..acadce4 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,13 +1,25 @@ - + mariadb true true $PROJECT_DIR$/java/src/main/resources/application.properties org.mariadb.jdbc.Driver - jdbc:mariadb://leejk0523.com:3306/profile + jdbc:mariadb://localhost:3306/pub + + + + + + $ProjectFileDir$ + + + mariadb + true + org.mariadb.jdbc.Driver + jdbc:mariadb://192.168.3.233:3306/pub diff --git a/.idea/encodings.xml b/.idea/encodings.xml index d862369..6206326 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index ec7edb1..bca9e6e 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,7 @@ + \ No newline at end of file diff --git a/java/pom.xml b/java/pom.xml index 1725712..c9e7803 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -1,36 +1,27 @@ - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 + org.springframework.boot spring-boot-starter-parent 3.3.5 + com.leejk0523 javavue 0.0.1-SNAPSHOT war javavue javavue - - - - - - - - - - - - - + 17 + + org.springframework.boot spring-boot-starter-data-jpa @@ -39,24 +30,48 @@ org.springframework.boot spring-boot-starter-web - - org.springframework.boot - spring-boot-starter-web-services - - org.mariadb.jdbc mariadb-java-client - runtime + - org.springframework.boot - spring-boot-starter-tomcat + jakarta.validation + jakarta.validation-api + + + + org.projectlombok + lombok + provided + + + + + com.querydsl + querydsl-jpa + 5.0.0 + jakarta + + + + com.querydsl + querydsl-apt + 5.0.0 + jakarta + provided + + + + + package + ${basedir}/target + javavue org.springframework.boot @@ -64,5 +79,4 @@ - - + \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java b/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java index 40acb5f..6dfaaaf 100644 --- a/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java +++ b/java/src/main/java/com/leejk0523/javavue/JavavueApplication.java @@ -5,9 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class JavavueApplication { - public static void main(String[] args) { SpringApplication.run(JavavueApplication.class, args); } - -} +} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/config/WebConfig.java b/java/src/main/java/com/leejk0523/javavue/config/WebConfig.java deleted file mode 100644 index b03c15b..0000000 --- a/java/src/main/java/com/leejk0523/javavue/config/WebConfig.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.leejk0523.javavue.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.lang.Nullable; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -public class WebConfig { -// @Bean -// public WebMvcConfigurer corsConfigurer() { -// return new WebMvcConfigurer() { -// @Override -// public void addCorsMappings(@Nullable CorsRegistry registry) { -// if (registry != null) { -// registry.addMapping("/api/**") -// .allowedOrigins("http://localhost:8080") -// .allowedMethods("GET", "POST", "PUT", "DELETE") -// .allowedHeaders("*") -// .allowCredentials(true); -// } -// } -// }; -// } -} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java b/java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java deleted file mode 100644 index e2eabf4..0000000 --- a/java/src/main/java/com/leejk0523/javavue/controller/UserProfileController.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.leejk0523.javavue.controller; - -import com.leejk0523.javavue.entity.UserProfile; -import com.leejk0523.javavue.repository.UserProfileRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/api") -public class UserProfileController { - - @Autowired - private UserProfileRepository userProfileRepository; - - @GetMapping("") - public String test() { - return "Hello World!"; - } - - @GetMapping("/all") - public List getAllUsers() { - - return userProfileRepository.findAll(); - } - - // 특정 ID로 사용자 조회 - @GetMapping("/{id}") - public UserProfile getUserById(@PathVariable String id) { - - return userProfileRepository.findById(id) - .orElseThrow(() -> new RuntimeException("사용자를 찾을 수 없습니다.")); - } - - // 이름으로 사용자 조회 - @GetMapping("/name/{name}") - public List getUsersByName(@PathVariable String name) { - - return userProfileRepository.findByName(name); - } - - @PostMapping - public UserProfile createUser(@RequestBody UserProfile user) { - - return userProfileRepository.save(user); - } - - @PutMapping("/{id}") - public UserProfile updateUser(@PathVariable String id, @RequestBody UserProfile userDetails) { - UserProfile userProfile = userProfileRepository.findById(id).orElseThrow(); - userProfile.setName(userDetails.getName()); - userProfile.setPhone(userDetails.getPhone()); - userProfile.setAddress(userDetails.getAddress()); - - return userProfileRepository.save(userProfile); - } - - @DeleteMapping("/{id}") - public void deleteUser(@PathVariable String id) { - - userProfileRepository.deleteById(id); - } -} diff --git a/java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java b/java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java deleted file mode 100644 index 09cf193..0000000 --- a/java/src/main/java/com/leejk0523/javavue/entity/UserProfile.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.leejk0523.javavue.entity; - -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; - -@Entity -@Table(name = "UserProfile") // 테이블 이름을 명시적으로 설정 -public class UserProfile { - @Id - @Column(name = "id", length = 100) - private String id; - - @Column(name = "name", length = 100) - private String name; - - @Column(name = "phone", length = 100) - private String phone; - - @Column(name = "address", length = 100) - private String address; - - @Column(name = "filepath", length = 100) - private String filepath; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getFilepath() { - return filepath; - } - - public void setFilepath(String filepath) { - this.filepath = filepath; - } -} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java b/java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java new file mode 100644 index 0000000..78819a5 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/controller/UserLoginController.java @@ -0,0 +1,35 @@ +package com.leejk0523.javavue.login.controller; + +import com.leejk0523.javavue.login.service.UserLoginService; +import com.leejk0523.javavue.login.vo.In; +import com.leejk0523.javavue.login.vo.Member; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +@RestController +@RequiredArgsConstructor +public class UserLoginController { + private final UserLoginService userLoginService; + + @PostMapping("/api/login") + private ResponseEntity login(@RequestBody In in) { + final var authorization = userLoginService.login(in); + + if (Objects.isNull(authorization)) { + return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); + } + + return ResponseEntity.ok(authorization); + } + + @GetMapping("/api/test") + public String test() { + return "Hello World!"; + } + + +} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java b/java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java new file mode 100644 index 0000000..feedf23 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/dao/UserLoginDao.java @@ -0,0 +1,43 @@ +package com.leejk0523.javavue.login.dao; + +import com.leejk0523.javavue.login.vo.AdminMember; +import com.leejk0523.javavue.login.vo.DefaultMember; +import com.leejk0523.javavue.login.vo.In; +import com.leejk0523.javavue.login.vo.Member; +import com.leejk0523.javavue.model.AsaAdminMember; +import com.leejk0523.javavue.model.QAsaAdminMember; +import com.leejk0523.javavue.model.QIstInst; +import com.querydsl.core.types.Projections; + +import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; +import org.springframework.stereotype.Component; + + +@Component +public class UserLoginDao extends QuerydslRepositorySupport { + public UserLoginDao() { + super(AsaAdminMember.class); + } + + public Member findByMemberId(In in) { + QAsaAdminMember asaAdminMember = QAsaAdminMember.asaAdminMember; + QIstInst inst = QIstInst.istInst; + + return from(asaAdminMember) + .innerJoin(inst).on(asaAdminMember.instNo.eq(inst.instNo)) + .select(Projections.bean( + AdminMember.class, + asaAdminMember.adminId.as("memberId"), + asaAdminMember.adminName.as("memberName"), + asaAdminMember.adminPassword.as("memberPassword"), + asaAdminMember.useYn.as("memberEnabled"), + asaAdminMember.adminLoginFailCount.as("memberFailureCount"), + asaAdminMember.adminLock.as("memberLocked"), + asaAdminMember.instNo.as("instNo"), + asaAdminMember.adminDepartment.as("deptNm"), + inst.instNm + )) + .where(asaAdminMember.adminId.eq(in.getMemberId())) + .fetchOne(); + } +} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java new file mode 100644 index 0000000..5f95032 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginService.java @@ -0,0 +1,11 @@ +package com.leejk0523.javavue.login.service; + +import ch.qos.logback.core.net.SyslogOutputStream; +import com.leejk0523.javavue.login.dao.UserLoginDao; +import com.leejk0523.javavue.login.vo.In; +import com.leejk0523.javavue.login.vo.Member; +import com.leejk0523.javavue.login.vo.Out; + +public interface UserLoginService { + Member login(In in); +} diff --git a/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java new file mode 100644 index 0000000..5d8cb87 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/service/UserLoginServiceImpl.java @@ -0,0 +1,18 @@ +package com.leejk0523.javavue.login.service; + +import com.leejk0523.javavue.login.dao.UserLoginDao; +import com.leejk0523.javavue.login.vo.In; +import com.leejk0523.javavue.login.vo.Member; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserLoginServiceImpl implements UserLoginService { + private final UserLoginDao userLoginDAO; + + @Override + public Member login(In in) { + return userLoginDAO.findByMemberId(in); + } +} diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java b/java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java new file mode 100644 index 0000000..cc732cb --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/vo/AdminMember.java @@ -0,0 +1,27 @@ +package com.leejk0523.javavue.login.vo; + +import com.leejk0523.javavue.model.AsaAdminMember; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AdminMember implements Member { + private AsaAdminMember member; + private Long memberNo; + private String memberId; + private String memberName; + private String memberPassword; + private String instNo; + private Type type; + private Boolean memberEnabled; + private Boolean memberLocked; + private Integer memberFailureCount; + private String plainPassword; + private String deptNm; + private Integer roleLvl; +} diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java b/java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java new file mode 100644 index 0000000..b709928 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/vo/DefaultMember.java @@ -0,0 +1,27 @@ +package com.leejk0523.javavue.login.vo; + +import com.leejk0523.javavue.model.AsaUserMember; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DefaultMember implements Member { + private AsaUserMember member; + private Long memberNo; + private String memberId; + private String memberName; + private String memberPassword; + private String instNo; + private Type type; + private Boolean memberEnabled; + private Boolean memberLocked; + private Integer memberFailureCount; + private String plainPassword; + private String deptNm; + private Integer roleLvl; +} diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/In.java b/java/src/main/java/com/leejk0523/javavue/login/vo/In.java new file mode 100644 index 0000000..ee780c8 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/vo/In.java @@ -0,0 +1,17 @@ +package com.leejk0523.javavue.login.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class In implements Serializable { + private String memberId; + private String password; +} diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/Member.java b/java/src/main/java/com/leejk0523/javavue/login/vo/Member.java new file mode 100644 index 0000000..0dbfb94 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/vo/Member.java @@ -0,0 +1,22 @@ +package com.leejk0523.javavue.login.vo; + +public interface Member { + String getMemberName(); + Long getMemberNo(); + String getMemberId(); + String getMemberPassword(); + Type getType(); + Boolean getMemberEnabled(); + Boolean getMemberLocked(); + Integer getMemberFailureCount(); + void setPlainPassword(String plainPassword); + String getPlainPassword(); + String getInstNo(); + String getDeptNm(); + Integer getRoleLvl(); + + enum Type { + USER, + ADMIN + } +} diff --git a/java/src/main/java/com/leejk0523/javavue/login/vo/Out.java b/java/src/main/java/com/leejk0523/javavue/login/vo/Out.java new file mode 100644 index 0000000..c677e3a --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/login/vo/Out.java @@ -0,0 +1,77 @@ +package com.leejk0523.javavue.login.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.leejk0523.javavue.model.AsaRole; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +public class Out implements Serializable { + private static final long serialVersionUID = 1L; + + @JsonIgnore + private Long memberNo; + + @JsonIgnore + private String memberId; + + @JsonIgnore + private String instNo; + + private String instNm; + + @JsonIgnore + private List roles; + + @JsonIgnore + private List orgList; + + @JsonIgnore + private String accessIpAddress; + + @JsonIgnore + private Integer roleLvl; + + private String memberName; + + private String deptNm; + + private List menuList; + private List permitApiList; + + private boolean authenticated; + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class Menu implements Serializable { + private static final long serialVersionUID = -6699279565175110630L; + + private String menuId; + private String upMenuId; + private Integer menuDepth; + private String menuName; +// private AsaMenu.Type menuType; + private String menuUrl; + private Integer bcId; + private Integer contentId; + + private List children; + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class PermitApi implements Serializable { + private static final long serialVersionUID = 385854228342672220L; + private String menuUrl; + } + +} diff --git a/java/src/main/java/com/leejk0523/javavue/model/AsaAdminMember.java b/java/src/main/java/com/leejk0523/javavue/model/AsaAdminMember.java new file mode 100644 index 0000000..fd75253 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/model/AsaAdminMember.java @@ -0,0 +1,160 @@ +package com.leejk0523.javavue.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.GenericGenerator; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "ASA_ADMIN_MEMBER") +public class AsaAdminMember { + + @Id + @GenericGenerator(name = "uuid", strategy = "org.hibernate.id.UUIDGenerator") + @GeneratedValue(generator = "uuid") + @Column(name = "ADMIN_NO", nullable = false) + private String adminNo; + + @Size(max = 50) + @Column(name = "ADMIN_ID", nullable = false, length = 50) + private String adminId; + + @Size(max = 10) + @Column(name = "INST_NO", length = 10) + private String instNo; + + @Enumerated(EnumType.STRING) + @Column(name = "CERT_TYPE", length = 20) + private CertType certType; + + @Column(name = "CERT_VL", length = 100) + private String certVl; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + @Size(max = 200) + @NotNull + @Column(name = "ADMIN_PASSWORD", nullable = false, length = 200) + private String adminPassword; + + @Size(max = 200) + @Column(name = "ADMIN_NAME", length = 200) + private String adminName; + + @Size(max = 10) + @Column(name = "ADMIN_SEX", length = 10) + private String adminSex; + + @Size(max = 200) + @Column(name = "ADMIN_EMAIL", length = 200) + private String adminEmail; + + @Size(max = 100) + @Column(name = "ADMIN_TEL", length = 100) + private String adminTel; + + @Size(max = 100) + @Column(name = "ADMIN_MOBILE", length = 100) + private String adminMobile; + + @Size(max = 50) + @Column(name = "ADMIN_FAX", length = 50) + private String adminFax; + + @Size(max = 100) + @Column(name = "ADMIN_ZIPCODE", length = 100) + private String adminZipcode; + + @Size(max = 200) + @Column(name = "ADMIN_ADDRESS", length = 200) + private String adminAddress; + + @Size(max = 200) + @Column(name = "ADMIN_ADDRESS_DETAIL", length = 200) + private String adminAddressDetail; + + @Column(name = "ADMIN_LOGIN_LAST_DATE") + private LocalDateTime adminLoginLastDate; + + @Column(name = "ADMIN_PW_LAST_UPDATE") + private LocalDateTime adminPwLastUpdate; + + @Size(max = 100) + @Deprecated + @Column(name = "ADMIN_DEPARTMENT", length = 100) + private String adminDepartment; + + @Column(name = "ADMIN_LOGIN_FAIL_COUNT") + private Integer adminLoginFailCount; + + @Column(name = "ADMIN_LOGIN_FAIL_DATE") + private LocalDateTime adminLoginFailDate; + + @Column(name = "ADMIN_LOCK") + private Boolean adminLock; + + @Enumerated(EnumType.STRING) + @Column(name = "ADMIN_STATUS", length = 20, nullable = false) + private AdminStatus adminStatus; + + @Column(name = "APRV_DT") + private LocalDateTime aprvDt; + + @Column(name = "RJCT_DT") + private LocalDateTime rjctDt; + + @Column(name = "RJCT_RSN", length = 200) + private String rjctRsn; + + @Column(name = "USE_YN", length = 1, nullable = false) + private Boolean useYn; + + @Column(name = "DEL_YN", length = 1, nullable = false) + private Boolean delYn; + + @Column(name = "FRST_RGTR_ID", length = 50, nullable = false) + private String frstRgtrId; + + @Column(name = "FRST_REG_DT", nullable = false) + private LocalDateTime frstRegDt; + + @Column(name = "LAST_MDFR_ID", length = 50) + private String lastMdfrId; + + @Column(name = "LAST_MDFCN_DT") + private LocalDateTime lastMdfcnDt; + + @Transient + private List roleList; + + @Data + public static class Role { + private String adminId; + private String roleCode; + private String roleName; + private Boolean roleJoin; + } + + public enum CertType { + IPIN, + PHONE + } + + public enum AdminStatus { + NONE, + APRV, + RJCT + } +} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/model/AsaRole.java b/java/src/main/java/com/leejk0523/javavue/model/AsaRole.java new file mode 100644 index 0000000..dc4691f --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/model/AsaRole.java @@ -0,0 +1,64 @@ +package com.leejk0523.javavue.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +import java.io.Serializable; +import java.time.LocalDateTime; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Entity +@Table(name = "asa_role") +public class AsaRole implements Serializable { + private static final long serialVersionUID = 690922257948242364L; + + @Id + @Size(max = 100) + @Column(name = "ROLE_CODE", nullable = false, length = 100) + private String roleCode; + + @Size(max = 20) + @Column(name = "SITE_ID", nullable = false, length = 20) + private String siteId; + + @Size(max = 100) + @Column(name = "ROLE_NAME", length = 100) + private String roleName; + + @Column(name = "ROLE_LVL", precision = 2) + private Integer roleLvl; + + @Size(max = 1000) + @Column(name = "ROLE_DESCRIPTION", length = 1000) + private String roleDescription; + + @Column(name = "ROLE_JOIN") + private Boolean roleJoin; + + @Column(name = "USE_YN", length = 1, nullable = false) + private Boolean useYn; + + @Column(name = "DEL_YN", length = 1, nullable = false) + private Boolean delYn; + + @Column(name = "FRST_RGTR_ID", length = 50, nullable = false) + private String frstRgtrId; + + @Column(name = "FRST_REG_DT", nullable = false) + private LocalDateTime frstRegDt; + + @Column(name = "LAST_MDFR_ID", length = 50) + private String lastMdfrId; + + @Column(name = "LAST_MDFCN_DT") + private LocalDateTime lastMdfcnDt; + +} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/model/AsaUserMember.java b/java/src/main/java/com/leejk0523/javavue/model/AsaUserMember.java new file mode 100644 index 0000000..21d0248 --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/model/AsaUserMember.java @@ -0,0 +1,155 @@ +package com.leejk0523.javavue.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.GenericGenerator; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; + +import java.time.LocalDateTime; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "ASA_USER_MEMBER") +public class AsaUserMember { + + @Id + @GenericGenerator(name = "uuid", strategy = "org.hibernate.id.UUIDGenerator") + @GeneratedValue(generator = "uuid") + @Column(name = "USER_NO", nullable = false) + private String userNo; + + @Size(max = 50) + @Column(name = "USER_ID", length = 50) + private String userId; + + @Size(max = 200) + @NotNull + @Column(name = "USER_PASSWORD", nullable = false, length = 200) + private String userPassword; + + @Size(max = 50) + @Column(name = "USER_LOGIN_TYPE", length = 50) + private String userLoginType; + + @Size(max = 200) + @Column(name = "USER_NAME", length = 200) + private String userName; + + @Size(max = 20) + @Column(name = "USER_THUMBNAIL_IMAGE", length = 20) + private String userThumbnailImage; + + @Size(max = 100) + @Column(name = "USER_TEL", length=100) + private String userTel; + + @Size(max = 100) + @Column(name = "USER_MOBILE", length=100) + private String userMobile; + + @Size(max = 20) + @Column(name = "USER_SEX", length = 20) + private String userSex; + + @Size(max = 200) + @Column(name = "USER_EMAIL", length = 200) + private String userEmail; + + @Size(max = 100) + @Column(name = "USER_ZIPCODE", length = 100) + private String userZipcode; + + @Size(max = 200) + @Column(name = "USER_ADDRESS", length = 200) + private String userAddress; + + @Size(max = 200) + @Column(name = "USER_ADDRESS_DETAIL", length = 200) + private String userAddressDetail; + + @Column(name = "USER_LOGIN_LAST_DATE") + private LocalDateTime userLoginLastDate; + + @Column(name = "USER_PW_LAST_UPDATED") + private LocalDateTime userPwLastUpdated; + + @Column(name = "USER_MAILING") + private Boolean userMailing; + + @Column(name = "USER_SMS") + private Boolean userSms; + + @Column(name = "PUSH_SEND") + private Boolean pushSend; + + @Column(name = "USE_TERMS_AGREE") + private Boolean useTermsAgree; + + @Column(name = "PRIVACY_TERMS_AGREE") + private Boolean privacyTermsAgree; + + @Column(name = "LOCATION_TERMS_AGREE") + private Boolean locationTermsAgree; + + @Column(name = "MARKETING_TERMS_AGREE") + private Boolean marketingTermsAgree; + + @Size(max = 100) + @Column(name = "USER_SIGN_UP_KEY", length = 100) + private String userSignUpKey; + + @Size(max = 500) + @Column(name = "USER_SIGN_UP_KEY_CHECKED", length = 500) + private String userSignUpKeyChecked; + + @Size(max = 20) + @Column(name = "USER_SNS", length = 20) + private String userSns; + + @Size(max = 50) + @Column(name = "USER_SNS_ID", length = 50) + private String userSnsId; + + @Size(max = 100) + @Column(name = "USER_SNS_HOME", length = 100) + private String userSnsHome; + + @Column(name = "TERM_CHECK_DATE") + private LocalDateTime termCheckDate; + + @Column(name = "TERM_CHECK_EMAIL_SENDED") + private Boolean termCheckEmailSended; + + @Column(name = "USER_LOCK") + private Boolean userLock; + + @Column(name = "USER_LOGIN_FAIL_COUNT") + private Integer userLoginFailCount; + + @Column(name = "USER_LOGIN_FAIL_DATE") + private LocalDateTime userLoginFailDate; + + @Column(name = "USE_YN", length = 1, nullable = false) + private Boolean useYn; + + @Column(name = "DEL_YN", length = 1, nullable = false) + private Boolean delYn; + + @Column(name = "FRST_RGTR_ID", length = 50, nullable = false) + private String frstRgtrId; + + @Column(name = "FRST_REG_DT", nullable = false) + private LocalDateTime frstRegDt; + + @Column(name = "LAST_MDFR_ID", length = 50) + private String lastMdfrId; + + @Column(name = "LAST_MDFCN_DT") + private LocalDateTime lastMdfcnDt; +} \ No newline at end of file diff --git a/java/src/main/java/com/leejk0523/javavue/model/IstInst.java b/java/src/main/java/com/leejk0523/javavue/model/IstInst.java new file mode 100644 index 0000000..d189a8b --- /dev/null +++ b/java/src/main/java/com/leejk0523/javavue/model/IstInst.java @@ -0,0 +1,76 @@ +package com.leejk0523.javavue.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import jakarta.persistence.*; + +import java.time.LocalDateTime; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Entity +@Table(name = "IST_INST") +public class IstInst { + + @Id + @Column(name = "INST_NO", length = 10, nullable = false) + private String instNo; + + @Column(name = "INST_CLSF_CD", length = 6, nullable = false) + private String instClsfCd; + + @Column(name = "INST_NM", length = 200, nullable = false) + private String instNm; + + @Column(name = "INST_ENG_NM", length = 100) + private String instEngNm; + + @Column(name = "INST_ABBR_NM", length = 300) + private String instAbbrNm; + + @Column(name = "INST_EML_ADDR", length = 320) + private String instEmlAddr; + + @Column(name = "INST_TELNO", length = 11) + private String instTelno; + + @Column(name = "INST_FXNO", length = 11) + private String instFxno; + + @Column(name = "INST_ZIP", length = 5) + private String instZip; + + @Column(name = "INST_ADDR", length = 200) + private String instAddr; + + @Column(name = "INST_DADDR", length = 200) + private String instDaddr; + + @Column(name = "INST_BRNO", length = 10) + private String instBrno; + + @Column(name = "INST_RPRSV_NM", length = 100) + private String instRprsvNm; + + @Column(name = "INST_EXPLN", length = 4000) + private String instExpln; + + @Column(name = "USE_YN", length = 1, nullable = false) + private Boolean useYn; + + @Column(name = "FRST_RGTR_ID", length = 50, nullable = false) + private String frstRgtrId; + + @Column(name = "FRST_REG_DT", nullable = false) + private LocalDateTime frstRegDt; + + @Column(name = "LAST_MDFR_ID", length = 50) + private String lastMdfrId; + + @Column(name = "LAST_MDFCN_DT") + private LocalDateTime lastMdfcnDt; +} diff --git a/java/src/main/java/com/leejk0523/javavue/repository/UserProfileRepository.java b/java/src/main/java/com/leejk0523/javavue/repository/UserProfileRepository.java deleted file mode 100644 index 4d45257..0000000 --- a/java/src/main/java/com/leejk0523/javavue/repository/UserProfileRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.leejk0523.javavue.repository; - -import com.leejk0523.javavue.entity.UserProfile; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface UserProfileRepository extends JpaRepository { - - // 이름으로 검색 - List findByName(String name); - - // 전화번호로 검색 - List findByPhone(String phone); - - // 주소에 특정 키워드가 포함된 사용자 검색 - List findByAddressContaining(String keyword); - - // 파일 경로가 특정 값과 일치하는 사용자 검색 - UserProfile findByFilepath(String filepath); -} diff --git a/java/src/main/resources/application.properties b/java/src/main/resources/application.properties index 7be0c2e..d2a14ab 100644 --- a/java/src/main/resources/application.properties +++ b/java/src/main/resources/application.properties @@ -1,28 +1,10 @@ spring.application.name=javavue -spring.datasource.url=jdbc:mariadb://leejk0523.com:3306/profile -spring.datasource.username=leejk0523 +spring.datasource.url=jdbc:mariadb://localhost:3306/pub +spring.datasource.username=daniel spring.datasource.password=Ghtkssk0325 -# none: ???? ???? ??? (???? DB?? ?????) -# create-drop: SessionFactory? ??? ? drop? ??? ????, SessionFactory? ??? ? drop? ???? (in-memory DB? ?? ?????) -# create: SessionFactory? ??? ? ?????? drop? ???? ??? DDL? ???? -# update: ??? ???? ???? -# validate: ??? ???? ??? ???? ???? ??????? ???? -spring.jpa.hibernate.ddl-auto=none - -# DB? ??? ?? ??? ???? +spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.show-sql=true - -# ???? ??? ??? ??? ??? spring.jpa.properties.hibernate.format_sql=true - -# ?? ?? ???? ?? ???? -logging.level.org.hibernate.type.descriptor.sql=DEBUG - -# ?? ?? ?? -logging.level.org.hibernate.SQL=DEBUG - -#UserProfile? ???? ????? ???? ??? ?? -spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl \ No newline at end of file