refactor v2

This commit is contained in:
dirgantarasiahaan 2023-05-24 09:23:51 +07:00
parent ed88afcdde
commit b49a2425c1
52 changed files with 809 additions and 172 deletions

View File

@ -1,66 +1,73 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.model.entity.Roles; import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.repository.RolesRepository; import com.iconplus.smartproc.model.response.GetRolesResponse;
import org.springframework.beans.factory.annotation.Autowired; import com.iconplus.smartproc.model.response.RolesResponse;
import org.springframework.http.ResponseEntity; import com.iconplus.smartproc.service.roles.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/roles") @RequestMapping("/api/roles")
public class RolesController { public class RolesController {
@Autowired
private RolesRepository rolesRepository;
//get all data private final GetRolesService getRolesService;
private final PostCreateRoleService postCreateRoleService;
private final GetRoleByIdService getRoleByIdService;
private final PutUpdateRoleService putUpdateRoleService;
private final DeleteRoleService deleteRoleService;
public RolesController(GetRolesService getRolesService,
PostCreateRoleService postCreateRoleService,
GetRoleByIdService getRoleByIdService,
PutUpdateRoleService putUpdateRoleService,
DeleteRoleService deleteRoleService) {
this.getRolesService = getRolesService;
this.postCreateRoleService = postCreateRoleService;
this.getRoleByIdService = getRoleByIdService;
this.putUpdateRoleService = putUpdateRoleService;
this.deleteRoleService = deleteRoleService;
}
@GetMapping @GetMapping
public List<Roles> getAllRoless(){ public GetRolesResponse getRoles(@RequestParam(name = "search", required = false) String search,
return rolesRepository.findAll(); @RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
RolesRequest rolesRequest = RolesRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getRolesService.execute(rolesRequest);
} }
// create
@PostMapping @PostMapping
public Roles createRoles(@RequestBody Roles roles) { public RolesResponse createRoles(@RequestBody RolesRequest rolesRequest) {
return rolesRepository.save(roles); return postCreateRoleService.execute(rolesRequest);
} }
// get roles by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Roles> getRolesById(@PathVariable Long id) { public RolesResponse getRolesById(@PathVariable Long id) {
Roles roles = rolesRepository.findById(id) return getRoleByIdService.execute(RolesRequest.builder()
.orElseThrow(() -> new ResourceNotFoundException("Roles not exist with id :" + id)); .id(id)
return ResponseEntity.ok(roles); .build());
} }
// update roles rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Roles> updateRoles(@PathVariable Long id, @RequestBody Roles rolesDetails){ public RolesResponse updateRoles(@PathVariable Long id, @RequestBody RolesRequest rolesRequest){
Roles roles = rolesRepository.findById(id) rolesRequest.setId(id);
.orElseThrow(() -> new ResourceNotFoundException("Roles not exist with id :" + id)); return putUpdateRoleService.execute(rolesRequest);
roles.setRole(rolesDetails.getRole());
roles.setKeterangan(rolesDetails.getKeterangan());
roles.setIsActive(rolesDetails.getIsActive());
Roles updatedRoles = rolesRepository.save(roles);
return ResponseEntity.ok(updatedRoles);
} }
// delete roles rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteRoles(@PathVariable Long id){ public EmptyResponse deleteRoles(@PathVariable Long id){
Roles roles = rolesRepository.findById(id) return deleteRoleService.execute(RolesRequest.builder()
.orElseThrow(() -> new ResourceNotFoundException("Supposmatrix not exist with id :" + id)); .id(id)
.build());
rolesRepository.delete(roles);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
} }
} }

View File

@ -2,8 +2,15 @@ package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.model.entity.Users; import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.GetUsersResponse;
import com.iconplus.smartproc.repository.UsersRepository; import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.service.manajemenuser.GetListUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -18,10 +25,36 @@ public class UsersController {
@Autowired @Autowired
private UsersRepository usersRepository; private UsersRepository usersRepository;
//get all data private final GetListUserService getListUserService;
public UsersController(GetListUserService getListUserService) {
this.getListUserService = getListUserService;
}
@GetMapping @GetMapping
public List<Users> getAllUserss(){ public GetUsersResponse getUsers(@RequestParam(name = "search", required = false) String search,
return usersRepository.findAll(); @RequestParam(name = "instansi", required = false) String instansi,
@RequestParam(name = "bidang", required = false) String bidang,
@RequestParam(name = "nama", required = false) String nama,
@RequestParam(name = "jabatan", required = false) String jabatan,
@RequestParam(name = "role", required = false) String role,
@RequestParam(name = "email", required = false) String email,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
UsersRequest usersRequest = UsersRequest.builder()
.search(search)
.instansi(instansi)
.bidang(bidang)
.nama(nama)
.jabatan(jabatan)
.role(role)
.email(email)
.pageable(pageable)
.build();
return getListUserService.execute(usersRequest);
} }
// create // create
@ -45,7 +78,7 @@ public class UsersController {
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
users.setUsername(usersDetails.getUsername()); users.setUsername(usersDetails.getUsername());
users.setFullname(usersDetails.getFullname()); users.setNama(usersDetails.getNama());
users.setEmail(usersDetails.getEmail()); users.setEmail(usersDetails.getEmail());
users.setPassword(usersDetails.getPassword()); users.setPassword(usersDetails.getPassword());
// users.setInstansi(usersDetails.getInstansi()); // users.setInstansi(usersDetails.getInstansi());

View File

@ -0,0 +1,38 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import javax.persistence.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "bidang")
public class Bidang extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "bidang")
private String bidang;
@Column(name = "keterangan")
private String keterangan;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -0,0 +1,38 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import javax.persistence.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "instansi")
public class Instansi extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "instansi")
private String instansi;
@Column(name = "keterangan")
private String keterangan;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -19,7 +19,7 @@ public class JenisAnggaran extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
private long id; private Long id;
@Column(name = "jenis_anggaran") @Column(name = "jenis_anggaran")
private String jenisAnggaran; private String jenisAnggaran;
@ -27,8 +27,12 @@ public class JenisAnggaran extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,11 +13,13 @@ import javax.persistence.*;
@Table(name = "jenis_kontrak") @Table(name = "jenis_kontrak")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class JenisKontrak extends BaseEntity { public class JenisKontrak extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
private long id; private Long id;
@Column(name = "jenis_kontrak") @Column(name = "jenis_kontrak")
private String jenisKontrak; private String jenisKontrak;
@ -23,8 +27,12 @@ public class JenisKontrak extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "jenis_pengadaan") @Table(name = "jenis_pengadaan")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class JenisPengadaan extends BaseEntity { public class JenisPengadaan extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class JenisPengadaan extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,11 +13,13 @@ import javax.persistence.*;
@Table(name = "lokasi") @Table(name = "lokasi")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class Lokasi extends BaseEntity { public class Lokasi extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
private long id; private Long id;
@Column(name = "lokasi") @Column(name = "lokasi")
private String lokasi; private String lokasi;
@ -23,8 +27,12 @@ public class Lokasi extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "metode_pengadaan") @Table(name = "metode_pengadaan")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class MetodePengadaan extends BaseEntity { public class MetodePengadaan extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,8 @@ public class MetodePengadaan extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isDelete;
} }

View File

@ -2,8 +2,10 @@ package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -12,6 +14,8 @@ import javax.persistence.*;
@Table(name = "metode_penyampaian") @Table(name = "metode_penyampaian")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class MetodePenyampaian extends BaseEntity { public class MetodePenyampaian extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -24,8 +28,12 @@ public class MetodePenyampaian extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,21 +1,25 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@Entity
@Table(name = "roles")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "roles")
public class Roles extends BaseEntity { public class Roles extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
private long id; private Long id;
@Column(name = "role") @Column(name = "role")
private String role; private String role;
@ -27,8 +31,8 @@ public class Roles extends BaseEntity {
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive; private Boolean isActive;
@Column(name = "deleted") @Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "strategi_pengadaan") @Table(name = "strategi_pengadaan")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class StrategiPengadaan extends BaseEntity { public class StrategiPengadaan extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class StrategiPengadaan extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "sumber_dana") @Table(name = "sumber_dana")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class SumberDana extends BaseEntity { public class SumberDana extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class SumberDana extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "supply_positioning_matrix") @Table(name = "supply_positioning_matrix")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class SupplyPositioningMatrix extends BaseEntity { public class SupplyPositioningMatrix extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class SupplyPositioningMatrix extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -45,7 +45,7 @@ public class TokenManagement extends BaseEntity {
@Column(name = "expired_time") @Column(name = "expired_time")
private Timestamp expiredTime; private Timestamp expiredTime;
@Column(name = "deleted") @Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isDelete;
} }

View File

@ -1,8 +1,10 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "unit_inisiator") @Table(name = "unit_inisiator")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class UnitInisiator extends BaseEntity { public class UnitInisiator extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class UnitInisiator extends BaseEntity {
@Column(name = "keterangan") @Column(name = "keterangan")
private String keterangan; private String keterangan;
@Column(name = "deleted") @Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
} }

View File

@ -1,27 +1,31 @@
package com.iconplus.smartproc.model.entity; package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity; import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type; import org.hibernate.annotations.Type;
import javax.persistence.*; import javax.persistence.*;
@Entity
@Table(name = "users")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "users")
public class Users extends BaseEntity { public class Users extends BaseEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
private long id; private Long id;
@Column(name = "username") @Column(name = "username")
private String username; private String username;
@Column(name = "fullname") @Column(name = "nama")
private String fullname; private String nama;
@Column(name = "email") @Column(name = "email")
private String email; private String email;
@ -30,10 +34,10 @@ public class Users extends BaseEntity {
private String password; private String password;
@Column(name = "instansi_id") @Column(name = "instansi_id")
private String instansiId; private Long instansiId;
@Column(name = "bidang_id") @Column(name = "bidang_id")
private String bidangId; private Long bidangId;
@Column(name = "jabatan") @Column(name = "jabatan")
private String jabatan; private String jabatan;
@ -45,7 +49,7 @@ public class Users extends BaseEntity {
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive; private Boolean isActive;
@Column(name = "deleted") @Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType") @Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted; private Boolean isDelete;
} }

View File

@ -5,10 +5,12 @@ public interface JenisAnggaranView {
Long getId(); Long getId();
String getJenisAnggaran(); String getJenisAnggaran();
String getKeterangan(); String getKeterangan();
Boolean getDeleted(); String getIsActive();
Boolean getIsDelete();
void setId(Long id); void setId(Long id);
void setJenisAnggaran(String jenisAnggaran); void setJenisAnggaran(String jenisAnggaran);
void setKeterangan(String keterangan); void setKeterangan(String keterangan);
void setDeleted(Boolean deleted); void setIsActive(Boolean isActive);
void setIsDelete(Boolean isDelete);
} }

View File

@ -0,0 +1,16 @@
package com.iconplus.smartproc.model.projection;
public interface RolesView {
Long getId();
String getRole();
String getKeterangan();
Boolean getIsActive();
Boolean getIsDelete();
void setId(Long id);
void setRole(String role);
void setKeterangan(String keterangan);
void setIsActive(Boolean isActive);
void setIsDelete(Boolean isDelete);
}

View File

@ -4,16 +4,32 @@ public interface UserRoleView {
Long getId(); Long getId();
String getUsername(); String getUsername();
String getNama();
String getEmail();
Long getInstansiId();
String getInstansi();
Long getBidangId();
String getBidang();
String getJabatan();
Boolean getIsActive();
String getPassword(); String getPassword();
Long getRoleId(); Long getRoleId();
String getRole(); String getRole();
Boolean getDeleted(); Boolean getIsDelete();
void setId(Long id); void setId(Long id);
void setUsername(String username); void setUsername(String username);
void setNama(String nama);
void setEmail(String email);
void setInstatnsi(String instansi);
void setBidang(String bidang);
void setJabatan(String Jabatan);
void setInstatnsiId(Long instansiId);
void setBidangId(Long bidangId);
void setIsActive(Boolean isActive);
void setPassword(String password); void setPassword(String password);
void setRoleId(Long roleId); void setRoleId(Long roleId);
void setRole(String role); void setRole(String role);
void setDeleted(Boolean deleted); void setIsDelete(Boolean isDelete);
} }

View File

@ -13,7 +13,7 @@ public class JenisAnggaranRequest extends BaseRequest {
private String jenisAnggaran; private String jenisAnggaran;
private String keterangan; private String keterangan;
private Boolean isActive; private Boolean isActive;
private Boolean deleted; private Boolean isDelete;
private String search; private String search;
private transient Pageable pageable; private transient Pageable pageable;
} }

View File

@ -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
@ -16,6 +17,8 @@ public class RolesRequest extends BaseRequest {
private String role; private String role;
private String keterangan; private String keterangan;
private Boolean isActive; private Boolean isActive;
private Boolean deleted; private Boolean isDelete;
private String search;
private transient Pageable pageable;
} }

View File

@ -0,0 +1,27 @@
package com.iconplus.smartproc.model.request;
import com.iconplus.smartproc.helper.base.BaseRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.domain.Pageable;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UsersRequest extends BaseRequest {
private Long id;
private String username;
private String instansi;
private String bidang;
private String nama;
private String jabatan;
private String role;
private String email;
private Boolean isActive;
private String search;
private transient Pageable pageable;
}

View File

@ -0,0 +1,20 @@
package com.iconplus.smartproc.model.response;
import com.iconplus.smartproc.helper.base.BaseResponse;
import com.iconplus.smartproc.helper.model.Pagination;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GetRolesResponse extends BaseResponse {
private List<RolesResponse> data;
private Pagination pagination;
}

View File

@ -0,0 +1,20 @@
package com.iconplus.smartproc.model.response;
import com.iconplus.smartproc.helper.base.BaseResponse;
import com.iconplus.smartproc.helper.model.Pagination;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GetUsersResponse extends BaseResponse {
private List<UsersResponse> data;
private Pagination pagination;
}

View File

@ -16,6 +16,6 @@ public class JenisAnggaranResponse extends BaseResponse {
private String jenisAnggaran; private String jenisAnggaran;
private String keterangan; private String keterangan;
private Boolean isActive; private Boolean isActive;
private Boolean deleted; private Boolean isDelete;
} }

View File

@ -16,6 +16,6 @@ public class RolesResponse extends BaseResponse {
private String role; private String role;
private String keterangan; private String keterangan;
private Boolean isActive; private Boolean isActive;
private Boolean deleted; private Boolean isDelete;
} }

View File

@ -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 UsersResponse extends BaseResponse {
private Long id;
private String instansi;
private String bidang;
private String nama;
private String jabatan;
private String role;
private String email;
private Boolean isActive;
private Boolean isDelete;
}

View File

@ -16,16 +16,16 @@ public interface JenisAnggaranRepository extends JpaRepository<JenisAnggaran, Lo
@Query(value = "SELECT ja.id as id, " + @Query(value = "SELECT ja.id as id, " +
"ja.jenisAnggaran as jenisAnggaran, " + "ja.jenisAnggaran as jenisAnggaran, " +
"ja.keterangan as keterangan, " + "ja.keterangan as keterangan, " +
"ja.deleted as deleted " + "ja.isDelete as isDelete " +
"FROM JenisAnggaran ja " + "FROM JenisAnggaran ja " +
"WHERE ja.deleted = false " + "WHERE ja.isDelete = false " +
"AND (:search = '' " + "AND (:search = '' " +
"or (UPPER(ja.jenisAnggaran) like :search OR UPPER(ja.keterangan) like :search)) " + "or (UPPER(ja.jenisAnggaran) like :search OR UPPER(ja.keterangan) like :search)) " +
"ORDER BY ja.id") "ORDER BY ja.id")
Page<JenisAnggaranView> getAllJenisAnggaran(String search, Pageable pageable); Page<JenisAnggaranView> getAllJenisAnggaran(String search, Pageable pageable);
Optional<JenisAnggaran> findByIdAndDeletedFalse(Long id); Optional<JenisAnggaran> findByIdAndIsDeleteFalse(Long id);
Optional<JenisAnggaran> findByJenisAnggaranAndDeletedFalse(String jenisAnggaran); Optional<JenisAnggaran> findByJenisAnggaranAndIsDeleteFalse(String jenisAnggaran);
} }

View File

@ -1,11 +1,15 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.Roles; import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.projection.RolesView;
import com.iconplus.smartproc.model.projection.UserRoleView; import com.iconplus.smartproc.model.projection.UserRoleView;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional; import java.util.Optional;
@Repository @Repository
@ -18,13 +22,25 @@ public interface RolesRepository extends JpaRepository<Roles, Long> {
"r.role as role " + "r.role as role " +
"FROM Users u " + "FROM Users u " +
"join Roles r on r.id=u.roleId " + "join Roles r on r.id=u.roleId " +
"WHERE u.deleted = false " + "WHERE u.isDelete = false " +
"AND r.deleted = false " + "AND r.isDelete = false " +
"AND u.username = :userName ") "AND u.username = :userName ")
Optional<UserRoleView> getUserRoleByUserId(String userName); Optional<UserRoleView> getUserRoleByUserId(String userName);
Optional<Roles> findByIdAndDeletedFalse(Long id); @Query(value = "SELECT r.id as id, " +
"r.role as role, " +
"r.keterangan as keterangan, " +
"r.isActive as isActive, " +
"r.isDelete as isDelete " +
"FROM Roles r " +
"WHERE r.isDelete = false " +
"AND (:search = '' " +
"or (UPPER(r.role) like :search OR UPPER(r.keterangan) like :search)) " +
"ORDER BY r.id")
Page<RolesView> findAllRolesANdDeletedFalse(String search, Pageable pageable);
Optional<Roles> findByRoleAndDeletedFalse(Long id); Optional<Roles> findByIdAndIsDeleteFalse(Long id);
Optional<Roles> findByRoleAndIsDeleteFalse(String role);
} }

View File

@ -13,7 +13,7 @@ public interface TokenManagementRepository extends JpaRepository<TokenManagement
@Query(value = "SELECT access_token as accessToken FROM token_management " + @Query(value = "SELECT access_token as accessToken FROM token_management " +
"WHERE user_id = :userId " + "WHERE user_id = :userId " +
"AND deleted = false " + "AND isDelete = false " +
"AND expired_time >= SYSDATE", nativeQuery = true) "AND expired_time >= SYSDATE", nativeQuery = true)
List<TokenManagementView> findAccessTokenByUserIdAndDeletedFalse(String userId); List<TokenManagementView> findAccessTokenByUserIdAndDeletedFalse(String userId);
} }

View File

@ -1,7 +1,11 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.Users; import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.model.projection.UserRoleView;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
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.util.Optional; import java.util.Optional;
@ -9,6 +13,25 @@ import java.util.Optional;
@Repository @Repository
public interface UsersRepository extends JpaRepository<Users, Long> { public interface UsersRepository extends JpaRepository<Users, Long> {
Optional<Users> findByEmailAndDeletedFalse(String email); @Query("SELECT u.id as id, " +
"u.nama as nama, " +
"u.jabatan as jabatan, " +
"r.role as role, " +
"u.email as email, " +
"u.isActive as isActive, " +
"u.isDelete as isDelete " +
"FROM Users u " +
"JOIN Roles r ON r.id = u.roleId " +
"Where u.isDelete = false " +
"AND (:search='' " +
"or (UPPER(u.nama) like :search " +
" OR UPPER(u.jabatan) like :search " +
" OR UPPER(r.role) like :search " +
" OR UPPER(u.email) like :search) " +
") " +
"ORDER by u.id")
Page<UserRoleView> getAllUsersAndDeletedFase(String search, Pageable pageable);
Optional<Users> findByEmailAndIsDeleteFalse(String email);
} }

View File

@ -26,7 +26,7 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
@Override @Override
public LoginResponse execute(LoginRequest input) { public LoginResponse execute(LoginRequest input) {
var user= usersRepository.findByEmailAndDeletedFalse(input.getEmail()) var user= usersRepository.findByEmailAndIsDeleteFalse(input.getEmail())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10003, Constants.ERR_CODE_10003,
Constants.ERR_TTL_10003, Constants.ERR_TTL_10003,

View File

@ -3,7 +3,6 @@ package com.iconplus.smartproc.service.jenisanggaran;
import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse; import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.JenisAnggaran;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest; import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.repository.JenisAnggaranRepository; import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.util.Constants; import com.iconplus.smartproc.util.Constants;
@ -25,15 +24,15 @@ public class DeleteJenisAnggaranService implements BaseService<JenisAnggaranRequ
@Override @Override
public EmptyResponse execute(JenisAnggaranRequest input) { public EmptyResponse execute(JenisAnggaranRequest input) {
var jenisAnggaran = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId()) var jenisAnggaran = jenisAnggaranRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001, Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001, Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, input.getId()))); String.format(Constants.ERR_MSG_10001, input.getId())));
jenisAnggaran.setDeleted(true); jenisAnggaran.setIsDelete(true);
jenisAnggaranRepository.save(jenisAnggaran); jenisAnggaranRepository.save(jenisAnggaran);
log.info("success delete jenis anggaran id {}", jenisAnggaran.getDeleted()); log.info("success delete jenis anggaran id {}", jenisAnggaran.getIsDelete());
return new EmptyResponse(); return new EmptyResponse();
} }
} }

View File

@ -21,7 +21,7 @@ public class GetJenisAnggaranByIdService implements BaseService<JenisAnggaranReq
@Override @Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) { public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
JenisAnggaranResponse jenisAnggaranResponse = new JenisAnggaranResponse(); JenisAnggaranResponse jenisAnggaranResponse = new JenisAnggaranResponse();
var jenisAnggaranView = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId()); var jenisAnggaranView = jenisAnggaranRepository.findByIdAndIsDeleteFalse(input.getId());
if (jenisAnggaranView.isEmpty()) { if (jenisAnggaranView.isEmpty()) {
throw new BusinessException(HttpStatus.CONFLICT, throw new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001, Constants.ERR_CODE_10001,
@ -31,13 +31,13 @@ public class GetJenisAnggaranByIdService implements BaseService<JenisAnggaranReq
jenisAnggaranResponse.setJenisAnggaran(jenisAnggaranView.get().getJenisAnggaran()); jenisAnggaranResponse.setJenisAnggaran(jenisAnggaranView.get().getJenisAnggaran());
jenisAnggaranResponse.setKeterangan(jenisAnggaranView.get().getKeterangan()); jenisAnggaranResponse.setKeterangan(jenisAnggaranView.get().getKeterangan());
jenisAnggaranResponse.setDeleted(jenisAnggaranView.get().getDeleted()); jenisAnggaranResponse.setIsDelete(jenisAnggaranView.get().getIsDelete());
return JenisAnggaranResponse.builder() return JenisAnggaranResponse.builder()
.id(jenisAnggaranView.get().getId()) .id(jenisAnggaranView.get().getId())
.jenisAnggaran(jenisAnggaranView.get().getJenisAnggaran()) .jenisAnggaran(jenisAnggaranView.get().getJenisAnggaran())
.keterangan(jenisAnggaranView.get().getKeterangan()) .keterangan(jenisAnggaranView.get().getKeterangan())
.deleted(jenisAnggaranView.get().getDeleted()) .isDelete(jenisAnggaranView.get().getIsDelete())
.build(); .build();
} }
} }

View File

@ -34,7 +34,7 @@ public class GetListJenisAnggaranService implements BaseService<JenisAnggaranReq
.id(jenisAnggaranView.getId()) .id(jenisAnggaranView.getId())
.jenisAnggaran(jenisAnggaranView.getJenisAnggaran()) .jenisAnggaran(jenisAnggaranView.getJenisAnggaran())
.keterangan(jenisAnggaranView.getKeterangan()) .keterangan(jenisAnggaranView.getKeterangan())
.deleted(jenisAnggaranView.getDeleted()) .isDelete(jenisAnggaranView.getIsDelete())
.build(); .build();
jenisAnggaranResponseList.add(jenisAnggaranResponse); jenisAnggaranResponseList.add(jenisAnggaranResponse);
} }

View File

@ -8,7 +8,6 @@ import com.iconplus.smartproc.model.response.JenisAnggaranResponse;
import com.iconplus.smartproc.repository.JenisAnggaranRepository; import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.util.Constants; import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -27,18 +26,18 @@ public class PostCreateJenisAnggaranService implements BaseService<JenisAnggaran
@Override @Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) { public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
var existJenisAnggaran = jenisAnggaranRepository.findByJenisAnggaranAndDeletedFalse(input.getJenisAnggaran()); var existJenisAnggaran = jenisAnggaranRepository.findByJenisAnggaranAndIsDeleteFalse(input.getJenisAnggaran());
if (existJenisAnggaran.isPresent()) { if (existJenisAnggaran.isPresent()) {
throw new BusinessException(HttpStatus.CONFLICT, throw new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10002, Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002, Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, existJenisAnggaran.get().getId())); String.format(Constants.ERR_MSG_10002, input.getJenisAnggaran()));
} }
JenisAnggaran jenisAnggaran = JenisAnggaran.builder() JenisAnggaran jenisAnggaran = JenisAnggaran.builder()
.jenisAnggaran(input.getJenisAnggaran()) .jenisAnggaran(input.getJenisAnggaran())
.keterangan(input.getKeterangan()) .keterangan(input.getKeterangan())
.deleted(false) .isDelete(false)
.build(); .build();
jenisAnggaran.setCreatedTime(new Timestamp(System.currentTimeMillis())); jenisAnggaran.setCreatedTime(new Timestamp(System.currentTimeMillis()));

View File

@ -26,7 +26,7 @@ public class PutUpdateJenisAnggaranService implements BaseService<JenisAnggaranR
@Override @Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) { public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
var jenisAnggaran = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId()) var jenisAnggaran = jenisAnggaranRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT, .orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001, Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001, Constants.ERR_TTL_10001,
@ -34,7 +34,7 @@ public class PutUpdateJenisAnggaranService implements BaseService<JenisAnggaranR
jenisAnggaran.setJenisAnggaran(input.getJenisAnggaran()); jenisAnggaran.setJenisAnggaran(input.getJenisAnggaran());
jenisAnggaran.setKeterangan(input.getKeterangan()); jenisAnggaran.setKeterangan(input.getKeterangan());
jenisAnggaran.setDeleted(BooleanUtils.isTrue(input.getDeleted())); jenisAnggaran.setIsDelete(BooleanUtils.isTrue(input.getIsDelete()));
jenisAnggaran.setUpdatedTime(new Timestamp(System.currentTimeMillis())); jenisAnggaran.setUpdatedTime(new Timestamp(System.currentTimeMillis()));
jenisAnggaranRepository.save(jenisAnggaran); jenisAnggaranRepository.save(jenisAnggaran);
log.info("Success edit jenis anggaran id {}", jenisAnggaran.getId()); log.info("Success edit jenis anggaran id {}", jenisAnggaran.getId());

View File

@ -0,0 +1,67 @@
package com.iconplus.smartproc.service.manajemenuser;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.UserRoleView;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.GetUsersResponse;
import com.iconplus.smartproc.model.response.UsersResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class GetListUserService implements BaseService<UsersRequest, GetUsersResponse> {
private UsersRepository usersRepository;
public GetListUserService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@Override
public GetUsersResponse execute(UsersRequest input) {
validateRequest(input);
List<UsersResponse> usersResponses = new ArrayList<>();
var userRoleViews = usersRepository.getAllUsersAndDeletedFase(input.getEmail(), input.getPageable());
for (UserRoleView userRoleView : userRoleViews) {
UsersResponse usersResponse = UsersResponse.builder()
.id(userRoleView.getId())
.instansi(userRoleView.getInstansi())
.bidang(userRoleView.getBidang())
.nama(userRoleView.getNama())
.jabatan(userRoleView.getJabatan())
.role(userRoleView.getRole())
.email(userRoleView.getEmail())
.isActive(userRoleView.getIsActive())
.build();
usersResponses.add(usersResponse);
}
return GetUsersResponse.builder()
.data(usersResponses)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(userRoleViews.getTotalPages())
.totalRecords(userRoleViews.getTotalElements())
.isFirstPage(userRoleViews.isFirst())
.isLastPage(userRoleViews.isLast())
.build())
.build();
}
private void validateRequest(UsersRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@ -0,0 +1,43 @@
package com.iconplus.smartproc.service.manajemenuser;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.UsersResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import org.springframework.stereotype.Service;
@Service
public class PostCreateUserService implements BaseService<UsersRequest, UsersResponse> {
private UsersRepository usersRepository;
public PostCreateUserService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@Override
public UsersResponse execute(UsersRequest input) {
Users users = Users.builder()
// .id(input.getId())
// .username(input.getUsername())
// .email(input.getEmail())
// .nama(input.getNama())
// .bidangId(1L)
// .instansiId(1L)
// .roleId(in)
// .jabatan()
// .password()
// .isActive()
// .deleted(false)
.build();
var result = usersRepository.save(users);
return UsersResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -1,23 +0,0 @@
package com.iconplus.smartproc.service.role;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import org.springframework.stereotype.Service;
@Service
public class DeleteRoleService implements BaseService<RolesRequest, RolesResponse> {
private RolesRepository rolesRepository;
public DeleteRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
return null;
}
}

View File

@ -1,7 +0,0 @@
package com.iconplus.smartproc.service.role;
import org.springframework.stereotype.Service;
@Service
public class GetRoleByIdService {
}

View File

@ -1,7 +0,0 @@
package com.iconplus.smartproc.service.role;
import org.springframework.stereotype.Service;
@Service
public class GetRolesService {
}

View File

@ -1,7 +0,0 @@
package com.iconplus.smartproc.service.role;
import org.springframework.stereotype.Service;
@Service
public class PostCreateRoleService {
}

View File

@ -1,8 +0,0 @@
package com.iconplus.smartproc.service.role;
import com.iconplus.smartproc.helper.service.BaseService;
import org.springframework.stereotype.Service;
//@Service
//public class PutUpdateRoleService implements BaseService<> {
//}

View File

@ -0,0 +1,33 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteRoleService implements BaseService<RolesRequest, EmptyResponse> {
private RolesRepository rolesRepository;
public DeleteRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public EmptyResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
role.setIsDelete(true);
rolesRepository.save(role);
return new EmptyResponse();
}
}

View File

@ -0,0 +1,36 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class GetRoleByIdService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public GetRoleByIdService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
return RolesResponse.builder()
.id(role.getId())
.role(role.getRole())
.keterangan(role.getKeterangan())
.isActive(role.getIsActive())
.isDelete(role.getIsDelete())
.build();
}
}

View File

@ -0,0 +1,60 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.RolesView;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetRolesService implements BaseService<RolesRequest, GetRolesResponse> {
private final RolesRepository rolesRepository;
public GetRolesService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public GetRolesResponse execute(RolesRequest input) {
validateRequest(input);
List<RolesResponse> rolesResponseList = new ArrayList<>();
Page<RolesView> rolesViews = rolesRepository.findAllRolesANdDeletedFalse(input.getSearch(), input.getPageable());
for (RolesView rolesView : rolesViews) {
RolesResponse rolesResponse = RolesResponse.builder()
.id(rolesView.getId())
.role(rolesView.getRole())
.keterangan(rolesView.getKeterangan())
.isActive(rolesView.getIsActive())
.isDelete(rolesView.getIsDelete())
.build();
rolesResponseList.add(rolesResponse);
}
return GetRolesResponse.builder()
.data(rolesResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(rolesViews.getTotalPages())
.totalRecords(rolesViews.getTotalElements())
.isFirstPage(rolesViews.isFirst())
.isLastPage(rolesViews.isLast())
.build())
.build();
}
private void validateRequest(RolesRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@ -0,0 +1,44 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
public class PostCreateRoleService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public PostCreateRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Optional<Roles> role = rolesRepository.findByRoleAndIsDeleteFalse(input.getRole());
if (role.isPresent()) {
throw new BusinessException(Constants.ERR_CODE_10006,
Constants.ERR_TTL_10006,
String.format(Constants.ERR_MSG_10006, input.getRole()));
}
Roles roles = Roles.builder()
.role(input.getRole())
.keterangan(input.getKeterangan())
.isActive(input.getIsActive())
.isDelete(false)
.build();
var result = rolesRepository.save(roles);
return RolesResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -0,0 +1,38 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateRoleService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public PutUpdateRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
role.setRole(input.getRole());
role.setKeterangan(input.getKeterangan());
role.setIsActive(input.getIsActive());
rolesRepository.save(role);
return RolesResponse.builder()
.id(role.getId())
.build();
}
}

View File

@ -10,7 +10,7 @@ public class Constants {
public static final String ERR_CODE_10002 = "10002"; public static final String ERR_CODE_10002 = "10002";
public static final String ERR_TTL_10002 = "Data tersedia"; public static final String ERR_TTL_10002 = "Data tersedia";
public static final String ERR_MSG_10002 = "Jenis Anggaran dengan id : %s sudah tersedia"; public static final String ERR_MSG_10002 = "Jenis Anggaran : %s sudah tersedia";
public static final String ERR_CODE_10003 = "10003"; public static final String ERR_CODE_10003 = "10003";
public static final String ERR_TTL_10003 = "Data tidak tersedia"; public static final String ERR_TTL_10003 = "Data tidak tersedia";
@ -20,6 +20,14 @@ public class Constants {
public static final String ERR_TTL_10004 = "Gagal Authentikasi User"; public static final String ERR_TTL_10004 = "Gagal Authentikasi User";
public static final String ERR_MSG_10004 = "Silahkan Periksa kembali Email dan Password Anda"; public static final String ERR_MSG_10004 = "Silahkan Periksa kembali Email dan Password Anda";
public static final String ERR_CODE_10005 = "10005";
public static final String ERR_TTL_10005 = "Data tidak tersedia";
public static final String ERR_MSG_10005 = "Role dengan id : %s tidak ditemukan";
public static final String ERR_CODE_10006 = "10006";
public static final String ERR_TTL_10006 = "Data tersedia";
public static final String ERR_MSG_10006 = "Role : %s sudah tersedia";
public static final String ERR_CODE_40041 = "40041"; public static final String ERR_CODE_40041 = "40041";
public static final String ERR_TTL_40041 = "Terjadi Gangguan"; public static final String ERR_TTL_40041 = "Terjadi Gangguan";
public static final String ERR_MSG_40041 = "Masalah Koneksi System"; public static final String ERR_MSG_40041 = "Masalah Koneksi System";

View File

@ -11,7 +11,7 @@ spring:
driver-class-name: org.postgresql.Driver driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/smartproc url: jdbc:postgresql://localhost:5432/smartproc
username: postgres username: postgres
password: postgres password: postgre
jackson: jackson:
default-property-inclusion: NON_NULL default-property-inclusion: NON_NULL
jpa: jpa: