Procházet zdrojové kódy

user menu auth api add

shjung před 3 roky
rodič
revize
777003a3af

+ 9 - 0
src/main/java/com/its/op/controller/its/database/TbUserInfrController.java

@@ -3,6 +3,7 @@ package com.its.op.controller.its.database;
 import com.its.op.dto.its.oper.TbOperSystDto;
 import com.its.op.dto.its.oper.TbUserGropInfrDto;
 import com.its.op.dto.its.oper.TbUserInfrDto;
+import com.its.op.dto.its.oper.UserMenuDto;
 import com.its.op.service.its.oper.TbOperSystService;
 import com.its.op.service.its.oper.TbUserGropInfrService;
 import com.its.op.service.its.oper.TbUserInfrService;
@@ -90,4 +91,12 @@ public class TbUserInfrController {
         return this.service.deleteByIds(ids);
     }
 
+    @ApiOperation(value = "사용자정보 접근제한 메뉴정보", response = UserMenuDto.class)
+    @GetMapping(value = "/menu-auth/{id}", produces = {"application/json; charset=utf8"})
+    public List<UserMenuDto> findByIdMenuAthr(
+            @ApiParam(name = "id", value = "사용자 ID", example = "ADMIN", required = true)
+            @PathVariable final String id) {
+        return this.service.findByIdMenuAthr(id);
+    }
+
 }

+ 7 - 1
src/main/java/com/its/op/dao/repository/its/oper/TbUserInfrRepository.java

@@ -1,5 +1,6 @@
 package com.its.op.dao.repository.its.oper;
 
+import com.its.op.dto.its.oper.UserGropMenuInf;
 import com.its.op.entity.its.oper.TbUserInfr;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -18,6 +19,11 @@ public interface TbUserInfrRepository extends JpaRepository<TbUserInfr, String>,
 
     @Modifying
     @Query("UPDATE TbUserInfr m set m.pwd = :pswd where m.userId = :userId")
-    void changePwd(@Param("pswd")String pswd, @Param("userId")String userId);
+    void changePwd(@Param("pswd") String pswd, @Param("userId")String userId);
 
+    @Query("select p.operSystMenuId as menuId from TbGropMenuAthr p " +
+           " where p.athrYn = 'N' " +
+           "   and p.gropId = (select m.gropId from TbUserInfr m " +
+           "                    where m.userId = :userId)")
+    List<UserGropMenuInf> findByIdMenuAthr(@Param("userId") String userId);
 }

+ 10 - 0
src/main/java/com/its/op/dto/its/oper/UserGropMenuInf.java

@@ -0,0 +1,10 @@
+package com.its.op.dto.its.oper;
+
+/**
+ * 사용자 메뉴조회 조회 Interface Class
+ */
+public interface UserGropMenuInf {
+
+    String getMenuId();
+
+}

+ 28 - 0
src/main/java/com/its/op/dto/its/oper/UserMenuDto.java

@@ -0,0 +1,28 @@
+package com.its.op.dto.its.oper;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 사용자메뉴정보 DTO Class
+ */
+@Data
+@Builder
+@ApiModel("UserMenuDto(사용자메뉴정보)")
+public class UserMenuDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("메뉴 ID")
+    @JsonProperty("menu_id")
+    private String menuId;
+
+    @ApiModelProperty("접근권한")
+    @JsonProperty("athr_yn")
+    private String athrYn;
+
+}

+ 21 - 1
src/main/java/com/its/op/service/its/oper/TbUserInfrService.java

@@ -1,8 +1,10 @@
 package com.its.op.service.its.oper;
 
+import com.its.op.dao.repository.its.oper.TbUserInfrRepository;
 import com.its.op.dto.its.oper.TbUserInfrDto;
+import com.its.op.dto.its.oper.UserGropMenuInf;
+import com.its.op.dto.its.oper.UserMenuDto;
 import com.its.op.entity.its.oper.TbUserInfr;
-import com.its.op.dao.repository.its.oper.TbUserInfrRepository;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -110,4 +112,22 @@ public class TbUserInfrService {
         this.repo.save(entity);
         return entity.toDto();
     }
+
+    /**
+     * 사용자 접근 제한 메뉴 목록 조회
+     * @param id
+     * @return
+     */
+    @Transactional(readOnly = true)
+    public List<UserMenuDto> findByIdMenuAthr(String id) {
+        List<UserMenuDto> result = new ArrayList<>();
+        List<UserGropMenuInf> data = this.repo.findByIdMenuAthr(id);
+        data.forEach(obj -> {
+            result.add(UserMenuDto.builder()
+                    .menuId(obj.getMenuId())
+                    .athrYn("N")
+                    .build());
+        });
+        return result;
+    }
 }