enhance menu response
This commit is contained in:
parent
3a29c63659
commit
d67d8b715e
@ -0,0 +1,38 @@
|
|||||||
|
package com.iconplus.smartproc.model.projection;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
|
||||||
|
public interface DrpApprovalView {
|
||||||
|
|
||||||
|
Long getId();
|
||||||
|
void setId(Long id);
|
||||||
|
|
||||||
|
Long getDrpId();
|
||||||
|
void setDrpId(Long drpId);
|
||||||
|
|
||||||
|
Integer getTahun();
|
||||||
|
void setTahun();
|
||||||
|
|
||||||
|
String getApproveStatus();
|
||||||
|
void setApproveStatus(String approveStatus);
|
||||||
|
|
||||||
|
Date getApproverVpDate();
|
||||||
|
void setApproveVpDate(Date approveVpDate);
|
||||||
|
|
||||||
|
Date getApproverKomite1Date();
|
||||||
|
void setApproveKomite1Date(Date approveKomite1Date);
|
||||||
|
|
||||||
|
Date getApproverKomite2Date();
|
||||||
|
void setApproveKomite2Date(Date approveKomite2Date);
|
||||||
|
|
||||||
|
Date getApproverKomite3Date();
|
||||||
|
void setApproveKomite3Date(Date approveKomite3Date);
|
||||||
|
|
||||||
|
Date getApproverKomite4Date();
|
||||||
|
void setApproveKomite4Date(Date approveKomite4Date);
|
||||||
|
|
||||||
|
Date getApproverDirekturDate();
|
||||||
|
void setApproveDirekturDate(Date approveDirekturDate);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@ -19,4 +20,5 @@ public class DrpApprovalRequest extends BaseRequest {
|
|||||||
private Long approverKomite3Id;
|
private Long approverKomite3Id;
|
||||||
private Long approverKomite4Id;
|
private Long approverKomite4Id;
|
||||||
private Long approverDirekturId;
|
private Long approverDirekturId;
|
||||||
|
private transient Pageable pageable;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ import lombok.Builder;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@ -13,4 +15,13 @@ import lombok.NoArgsConstructor;
|
|||||||
public class DrpApprovalResponse extends BaseResponse {
|
public class DrpApprovalResponse extends BaseResponse {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
|
private Long drpId;
|
||||||
|
private Integer tahun;
|
||||||
|
private String approveStatus;
|
||||||
|
private Date approverVpDate;
|
||||||
|
private Date approverKomite1Date;
|
||||||
|
private Date approverKomite2Date;
|
||||||
|
private Date approverKomite3Date;
|
||||||
|
private Date approverKomite4Date;
|
||||||
|
private Date approverDirekturDate;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,6 @@ public class LoginResponse extends BaseResponse {
|
|||||||
private String email;
|
private String email;
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
private String role;
|
private String role;
|
||||||
private List<MenusPermissionResponse> menus;
|
private List<ParentMenusResponse> menus;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.iconplus.smartproc.model.response;
|
||||||
|
|
||||||
|
import com.iconplus.smartproc.helper.base.BaseResponse;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class MenusResponse extends BaseResponse {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private String text;
|
||||||
|
private String path;
|
||||||
|
private Boolean canView;
|
||||||
|
private Boolean canCreate;
|
||||||
|
private Boolean canRead;
|
||||||
|
private Boolean canDelete;
|
||||||
|
private Boolean canUpdate;
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.iconplus.smartproc.model.response;
|
||||||
|
|
||||||
|
import com.iconplus.smartproc.helper.base.BaseResponse;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ParentMenusResponse extends BaseResponse {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private String text;
|
||||||
|
private String icon;
|
||||||
|
private List<MenusResponse> items;
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package com.iconplus.smartproc.repository;
|
package com.iconplus.smartproc.repository;
|
||||||
|
|
||||||
import com.iconplus.smartproc.model.entity.Drp;
|
import com.iconplus.smartproc.model.entity.Drp;
|
||||||
|
import com.iconplus.smartproc.model.projection.DrpApprovalView;
|
||||||
import com.iconplus.smartproc.model.projection.DrpView;
|
import com.iconplus.smartproc.model.projection.DrpView;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
@ -31,4 +32,19 @@ public interface DrpRepository extends JpaRepository<Drp, Long> {
|
|||||||
"ORDER BY d.id")
|
"ORDER BY d.id")
|
||||||
Page<DrpView> findByIsDeleteFalse(Timestamp approveDate,
|
Page<DrpView> findByIsDeleteFalse(Timestamp approveDate,
|
||||||
Pageable pageable);
|
Pageable pageable);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(value = "SELECT d.id as id, " +
|
||||||
|
"d.tahun as tahun, " +
|
||||||
|
"d.approveStatus as approveStatus, " +
|
||||||
|
"da.approverVpDate as approverVpDate, " +
|
||||||
|
"da.approverKomite1Date as approverKomite1Date, " +
|
||||||
|
"da.approverKomite2Date as approverKomite2Date, " +
|
||||||
|
"da.approverKomite3Date as approverKomite3Date, " +
|
||||||
|
"da.approverKomite4Date as approverKomite4Date, " +
|
||||||
|
"da.approverDirekturDate as approverDirekturDate " +
|
||||||
|
"FROM Drp d " +
|
||||||
|
"JOIN DrpApproval da ON da.drpId = d.id " +
|
||||||
|
"WHERE d.isDelete = false")
|
||||||
|
Page<DrpApprovalView> getListApprovalDrp(Pageable pageable);
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,10 @@ package com.iconplus.smartproc.repository;
|
|||||||
|
|
||||||
import com.iconplus.smartproc.model.entity.Menus;
|
import com.iconplus.smartproc.model.entity.Menus;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@ -13,4 +15,17 @@ public interface MenusRepository extends JpaRepository<Menus, Long> {
|
|||||||
List<Menus> findByIsDeleteFalse();
|
List<Menus> findByIsDeleteFalse();
|
||||||
Optional<Menus> findByIdAndIsDeleteFalse(Long id);
|
Optional<Menus> findByIdAndIsDeleteFalse(Long id);
|
||||||
|
|
||||||
|
@Query(value = "SELECT m " +
|
||||||
|
"FROM Menus m " +
|
||||||
|
"WHERE m.id in (SELECT DISTINCT(s.parentId) from Menus s " +
|
||||||
|
"order by s.parentId) " +
|
||||||
|
"AND m.isDelete = false")
|
||||||
|
List<Menus> findAllParentMenu();
|
||||||
|
|
||||||
|
|
||||||
|
@Query(value = "SELECT m " +
|
||||||
|
"FROM Menus m " +
|
||||||
|
"ORDER BY m.parentId, m.urutan")
|
||||||
|
List<Menus> findAllOrderByParentAndUrutan();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,7 @@ public interface PermissionRepository extends JpaRepository<Permission, Long> {
|
|||||||
"JOIN Menus m ON m.id = p.menuId " +
|
"JOIN Menus m ON m.id = p.menuId " +
|
||||||
"WHERE m.isDelete = false " +
|
"WHERE m.isDelete = false " +
|
||||||
"AND p.isDelete = false " +
|
"AND p.isDelete = false " +
|
||||||
"AND p.roleId = :roleId")
|
"AND p.roleId = :roleId " +
|
||||||
|
"ORDER BY m.parentId, m.urutan")
|
||||||
List<MenusPermissionView> getListMenusPermission(Long roleId);
|
List<MenusPermissionView> getListMenusPermission(Long roleId);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,52 @@
|
|||||||
|
package com.iconplus.smartproc.service.approval;
|
||||||
|
|
||||||
|
import com.iconplus.smartproc.helper.service.BaseService;
|
||||||
|
import com.iconplus.smartproc.model.projection.DrpApprovalView;
|
||||||
|
import com.iconplus.smartproc.model.request.DrpApprovalRequest;
|
||||||
|
import com.iconplus.smartproc.model.response.DrpApprovalResponse;
|
||||||
|
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
||||||
|
import com.iconplus.smartproc.repository.DrpRepository;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class GetListApprovalDrpServie implements BaseService<DrpApprovalRequest, DrpApprovalResponse> {
|
||||||
|
|
||||||
|
private final DrpRepository drpRepository;
|
||||||
|
private final DrpApprovalRepository drpApprovalRepository;
|
||||||
|
|
||||||
|
public GetListApprovalDrpServie(DrpRepository drpRepository,
|
||||||
|
DrpApprovalRepository drpApprovalRepository) {
|
||||||
|
this.drpApprovalRepository = drpApprovalRepository;
|
||||||
|
this.drpRepository = drpRepository;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DrpApprovalResponse execute(DrpApprovalRequest input) throws IOException {
|
||||||
|
|
||||||
|
List<DrpApprovalResponse> drpApprovalResponseList = new ArrayList<>();
|
||||||
|
var drpApprovalViews = drpRepository.getListApprovalDrp(input.getPageable());
|
||||||
|
for (DrpApprovalView drpApprovalView : drpApprovalViews) {
|
||||||
|
DrpApprovalResponse drpApprovalResponse = DrpApprovalResponse.builder()
|
||||||
|
.id(drpApprovalView.getId())
|
||||||
|
.drpId(drpApprovalView.getDrpId())
|
||||||
|
.tahun(drpApprovalView.getTahun())
|
||||||
|
.approverVpDate(drpApprovalView.getApproverVpDate())
|
||||||
|
.approverKomite1Date(drpApprovalView.getApproverKomite1Date())
|
||||||
|
.approverKomite2Date(drpApprovalView.getApproverKomite2Date())
|
||||||
|
.approverKomite3Date(drpApprovalView.getApproverKomite3Date())
|
||||||
|
.approverKomite4Date(drpApprovalView.getApproverKomite4Date())
|
||||||
|
.approverDirekturDate(drpApprovalView.getApproverDirekturDate())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -3,11 +3,14 @@ package com.iconplus.smartproc.service.authentication;
|
|||||||
import com.iconplus.smartproc.configuration.JwtTokenUtil;
|
import com.iconplus.smartproc.configuration.JwtTokenUtil;
|
||||||
import com.iconplus.smartproc.exception.BusinessException;
|
import com.iconplus.smartproc.exception.BusinessException;
|
||||||
import com.iconplus.smartproc.helper.service.BaseService;
|
import com.iconplus.smartproc.helper.service.BaseService;
|
||||||
|
import com.iconplus.smartproc.model.entity.Menus;
|
||||||
import com.iconplus.smartproc.model.entity.TokenManagement;
|
import com.iconplus.smartproc.model.entity.TokenManagement;
|
||||||
import com.iconplus.smartproc.model.projection.MenusPermissionView;
|
import com.iconplus.smartproc.model.projection.MenusPermissionView;
|
||||||
import com.iconplus.smartproc.model.request.LoginRequest;
|
import com.iconplus.smartproc.model.request.LoginRequest;
|
||||||
import com.iconplus.smartproc.model.response.LoginResponse;
|
import com.iconplus.smartproc.model.response.LoginResponse;
|
||||||
import com.iconplus.smartproc.model.response.MenusPermissionResponse;
|
import com.iconplus.smartproc.model.response.MenusPermissionResponse;
|
||||||
|
import com.iconplus.smartproc.model.response.MenusResponse;
|
||||||
|
import com.iconplus.smartproc.model.response.ParentMenusResponse;
|
||||||
import com.iconplus.smartproc.model.token.TokenContent;
|
import com.iconplus.smartproc.model.token.TokenContent;
|
||||||
import com.iconplus.smartproc.repository.MenusRepository;
|
import com.iconplus.smartproc.repository.MenusRepository;
|
||||||
import com.iconplus.smartproc.repository.PermissionRepository;
|
import com.iconplus.smartproc.repository.PermissionRepository;
|
||||||
@ -75,6 +78,20 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
|
|||||||
}
|
}
|
||||||
Set<String> accessMenu = new HashSet<>();
|
Set<String> accessMenu = new HashSet<>();
|
||||||
List<MenusPermissionResponse> menusPermissionResponseList = new ArrayList<>();
|
List<MenusPermissionResponse> menusPermissionResponseList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
List<ParentMenusResponse> parentMenusResponseList = new ArrayList<>();
|
||||||
|
var parentMenu = menusRepository.findAllParentMenu();
|
||||||
|
for (Menus menus : parentMenu) {
|
||||||
|
ParentMenusResponse parentMenusResponse = ParentMenusResponse.builder()
|
||||||
|
.id(menus.getId())
|
||||||
|
.text(menus.getNama())
|
||||||
|
.icon(menus.getIcon())
|
||||||
|
.items(new ArrayList<>())
|
||||||
|
.build();
|
||||||
|
parentMenusResponseList.add(parentMenusResponse);
|
||||||
|
}
|
||||||
|
|
||||||
var listMenusPermission = permissionRepository.getListMenusPermission(userRoleView.getRoleId());
|
var listMenusPermission = permissionRepository.getListMenusPermission(userRoleView.getRoleId());
|
||||||
for (MenusPermissionView menusPermissionView : listMenusPermission) {
|
for (MenusPermissionView menusPermissionView : listMenusPermission) {
|
||||||
if (BooleanUtils.isTrue(menusPermissionView.getCanView()) ||
|
if (BooleanUtils.isTrue(menusPermissionView.getCanView()) ||
|
||||||
@ -83,7 +100,6 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
|
|||||||
BooleanUtils.isTrue(menusPermissionView.getCanDelete()) ||
|
BooleanUtils.isTrue(menusPermissionView.getCanDelete()) ||
|
||||||
BooleanUtils.isTrue(menusPermissionView.getCanRead())) {
|
BooleanUtils.isTrue(menusPermissionView.getCanRead())) {
|
||||||
accessMenu.add(menusPermissionView.getNama());
|
accessMenu.add(menusPermissionView.getNama());
|
||||||
}
|
|
||||||
|
|
||||||
MenusPermissionResponse menusPermissionResponse = MenusPermissionResponse.builder()
|
MenusPermissionResponse menusPermissionResponse = MenusPermissionResponse.builder()
|
||||||
.id(menusPermissionView.getId())
|
.id(menusPermissionView.getId())
|
||||||
@ -100,7 +116,26 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
menusPermissionResponseList.add(menusPermissionResponse);
|
menusPermissionResponseList.add(menusPermissionResponse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ParentMenusResponse parentMenusResponse : parentMenusResponseList) {
|
||||||
|
for (MenusPermissionResponse menusPermissionResponse : menusPermissionResponseList) {
|
||||||
|
if (parentMenusResponse.getId().equals(menusPermissionResponse.getParentId())) {
|
||||||
|
MenusResponse menusResponse = MenusResponse.builder()
|
||||||
|
.id(menusPermissionResponse.getId())
|
||||||
|
.text(menusPermissionResponse.getNama())
|
||||||
|
.path(menusPermissionResponse.getLink())
|
||||||
|
.canView(menusPermissionResponse.getCanView())
|
||||||
|
.canRead(menusPermissionResponse.getCanRead())
|
||||||
|
.canCreate(menusPermissionResponse.getCanCreate())
|
||||||
|
.canUpdate(menusPermissionResponse.getCanUpdate())
|
||||||
|
.canDelete(menusPermissionResponse.getCanDelete())
|
||||||
|
.build();
|
||||||
|
parentMenusResponse.getItems().add(menusResponse);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var tokenContent = TokenContent.builder()
|
var tokenContent = TokenContent.builder()
|
||||||
@ -146,7 +181,7 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
|
|||||||
.email(userRoleView.getEmail())
|
.email(userRoleView.getEmail())
|
||||||
.roleId(userRoleView.getRoleId())
|
.roleId(userRoleView.getRoleId())
|
||||||
.role(userRoleView.getRole())
|
.role(userRoleView.getRole())
|
||||||
.menus(menusPermissionResponseList)
|
.menus(parentMenusResponseList)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user