fix telepon and init lupas
This commit is contained in:
		| @@ -3,11 +3,9 @@ package com.iconplus.smartproc.controller; | ||||
| import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.model.EmptyRequest; | ||||
| import com.iconplus.smartproc.helper.model.EmptyResponse; | ||||
| import com.iconplus.smartproc.model.request.ChangePasswordRequest; | ||||
| import com.iconplus.smartproc.model.request.ForgotPasswordRequest; | ||||
| import com.iconplus.smartproc.model.request.LoginRequest; | ||||
| import com.iconplus.smartproc.model.request.RefreshTokenRequest; | ||||
| import com.iconplus.smartproc.model.request.*; | ||||
| import com.iconplus.smartproc.model.response.GlobalResponse; | ||||
| import com.iconplus.smartproc.model.response.InitForgotPasswordResponse; | ||||
| import com.iconplus.smartproc.model.response.RefreshTokenResponse; | ||||
| import com.iconplus.smartproc.service.authentication.*; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| @@ -22,17 +20,20 @@ public class AuthenticationController { | ||||
|     private final LogoutService logoutService; | ||||
|     private final ChangePasswordService changePasswordService; | ||||
|     private final ForgotPasswordService forgotPasswordService; | ||||
|     private final InitForgotPasswordService initForgotPasswordService; | ||||
|  | ||||
|     public AuthenticationController(LoginService loginService, | ||||
|                                     TokenManagementService tokenManagementService, | ||||
|                                     LogoutService logoutService, | ||||
|                                     ChangePasswordService changePasswordService, | ||||
|                                     ForgotPasswordService forgotPasswordService) { | ||||
|                                     ForgotPasswordService forgotPasswordService, | ||||
|                                     InitForgotPasswordService initForgotPasswordService) { | ||||
|         this.loginService = loginService; | ||||
|         this.tokenManagementService = tokenManagementService; | ||||
|         this.logoutService = logoutService; | ||||
|         this.changePasswordService = changePasswordService; | ||||
|         this.forgotPasswordService = forgotPasswordService; | ||||
|         this.initForgotPasswordService = initForgotPasswordService; | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/login") | ||||
| @@ -73,4 +74,10 @@ public class AuthenticationController { | ||||
|         return forgotPasswordService.execute(forgotPasswordRequest); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     @PostMapping("/init/forgot-password") | ||||
|     public InitForgotPasswordResponse initForgotPassword(@RequestBody InitForgotPasswordRequest initForgotPasswordRequest) { | ||||
|         return initForgotPasswordService.execute(initForgotPasswordRequest); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package com.iconplus.smartproc.controller; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.model.EmptyResponse; | ||||
| import com.iconplus.smartproc.model.request.DrpPengadaanRequest; | ||||
| import com.iconplus.smartproc.model.request.DrpRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpPengadaanResponse; | ||||
| @@ -54,6 +55,14 @@ public class DrpController { | ||||
|                 .build()); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/tahun/{id}") | ||||
|     public EmptyResponse getExistDrp(@PathVariable(name = "id") Integer tahun) { | ||||
|         postCreateDrpService.validateTahunDrp(DrpRequest.builder() | ||||
|                  .tahun(tahun) | ||||
|                  .build()); | ||||
|          return new EmptyResponse(); | ||||
|     } | ||||
|  | ||||
|     @PostMapping | ||||
|     public DrpResponse createDrp(@RequestBody DrpRequest drpRequest) { | ||||
|         return postCreateDrpService.execute(drpRequest); | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Date; | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @@ -63,10 +64,10 @@ public class DrpPengadaan extends BaseEntity { | ||||
|     private Long strategiPengadaanId; | ||||
|  | ||||
|     @Column(name = "rencana_tanggal") | ||||
|     private Timestamp rencanaTanggal; | ||||
|     private Date rencanaTanggal; | ||||
|  | ||||
|     @Column(name = "target_tanggal") | ||||
|     private Timestamp targetTanggal; | ||||
|     private Date targetTanggal; | ||||
|  | ||||
|     @Column(name = "hpe") | ||||
|     private BigDecimal hpe; | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @@ -30,6 +31,9 @@ public class Users extends BaseEntity { | ||||
|     @Column(name = "email") | ||||
|     private String email; | ||||
|  | ||||
|     @Column(name = "telepon") | ||||
|     private String telepon; | ||||
|  | ||||
|     @Column(name = "password") | ||||
|     private String password; | ||||
|  | ||||
| @@ -45,6 +49,12 @@ public class Users extends BaseEntity { | ||||
|     @Column(name = "role_id") | ||||
|     private Long roleId; | ||||
|  | ||||
|     @Column(name = "remember_id") | ||||
|     private String rememberId; | ||||
|  | ||||
|     @Column(name = "expired_time") | ||||
|     private Timestamp expiredTime; | ||||
|  | ||||
|     @Column(name = "is_active") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isActive; | ||||
|   | ||||
| @@ -0,0 +1,64 @@ | ||||
| package com.iconplus.smartproc.model.projection; | ||||
|  | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Date; | ||||
|  | ||||
| public interface DrpPengadaanView { | ||||
|  | ||||
|     Long getId(); | ||||
|     void setId(Long id); | ||||
|  | ||||
|     Long getDrpId(); | ||||
|     void setDrpId(Long drpId); | ||||
|  | ||||
|     String getNomor(); | ||||
|     void setNomor(String nomor); | ||||
|  | ||||
|     String getNamaPengadaan(); | ||||
|     void setNamaPengadaan(String namaPengadaan); | ||||
|  | ||||
|     Long getLokasiId(); | ||||
|     void setLokasiId(Long lokasiId); | ||||
|  | ||||
|     Long getJenisPengadaanId(); | ||||
|     void setJenisPengadaanId(Long jenisPengadaanId); | ||||
|  | ||||
|     Long getUnitInisiatorId(); | ||||
|     void setUnitInisiatorId(Long unitInisiatorId); | ||||
|  | ||||
|     BigDecimal getHpe(); | ||||
|     void setHpe(BigDecimal hpe); | ||||
|  | ||||
|     BigDecimal getPagu(); | ||||
|     void setPagu(BigDecimal pagu); | ||||
|  | ||||
|     Long getSumberDanaId(); | ||||
|     void setSumberDanaId(Long sumberDanaId); | ||||
|  | ||||
|     Long getMetodePengadaanId(); | ||||
|     void setMetodePengadaanId(Long metodePengadaanId); | ||||
|  | ||||
|     Long getSupplyPositioningMatrix(); | ||||
|     void setSupplyPositioningMatrix(Long supplyPositioningMatrix); | ||||
|  | ||||
|     Long getMetodePenyampaianId(); | ||||
|     void setMetodePenyampaianId(Long metodePenyampaianId); | ||||
|  | ||||
|     Long getJenisKontrakId(); | ||||
|     void setJenisKontrakId(Long jenisKontrakId); | ||||
|  | ||||
|     Long getStrategiPengadaanId(); | ||||
|     void setStrategiPengadaanId(Long strategiPengadaanId); | ||||
|  | ||||
|     Date getRencanaTanggal(); | ||||
|     void setRencanaTanggal(Date rencanaTanggal); | ||||
|  | ||||
|     Date getTargetTanggal(); | ||||
|     void setTargetTanggal(Date targetTanggal); | ||||
|  | ||||
|     Boolean getIsActive(); | ||||
|     void setIsActive(Boolean isActive); | ||||
|  | ||||
|     Boolean getIsDelete(); | ||||
|     void setIsDelete(Boolean isDelete); | ||||
| } | ||||
| @@ -17,6 +17,7 @@ public interface UserRoleView { | ||||
|     Long getRoleId(); | ||||
|     String getRole(); | ||||
|     Boolean getIsDelete(); | ||||
|     String getTelepon(); | ||||
|  | ||||
|     void setId(Long id); | ||||
|     void setUsername(String username); | ||||
| @@ -33,5 +34,6 @@ public interface UserRoleView { | ||||
|     void setRoleId(Long roleId); | ||||
|     void setRole(String role); | ||||
|     void setIsDelete(Boolean isDelete); | ||||
|     void setTelepon(String telepon); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -14,7 +14,6 @@ public class DrpDokumenRequest extends BaseRequest { | ||||
|  | ||||
|     private Long jenisDokumenId; | ||||
|     private String filename; | ||||
|     private byte[] file; | ||||
|     private String keterangan; | ||||
|     private Boolean isDelete; | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,6 @@ public class DrpPengadaanDokumenRequest extends BaseRequest { | ||||
|     private Long drpId; | ||||
|     private Long jenisDokumenId; | ||||
|     private String filename; | ||||
|     private byte[] file; | ||||
|     private String keterangan; | ||||
|     private Boolean isDelete; | ||||
| } | ||||
|   | ||||
| @@ -5,14 +5,10 @@ import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
| import org.springframework.data.domain.Pageable; | ||||
|  | ||||
| import javax.persistence.Column; | ||||
| import javax.persistence.GeneratedValue; | ||||
| import javax.persistence.GenerationType; | ||||
| import javax.persistence.Id; | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Date; | ||||
| import java.sql.Timestamp; | ||||
| import java.util.List; | ||||
|  | ||||
| @@ -36,8 +32,8 @@ public class DrpPengadaanRequest extends BaseRequest { | ||||
|     private Long metodePenyampaianId; | ||||
|     private Long jenisKontrakId; | ||||
|     private Long strategiPengadaanId; | ||||
|     private Timestamp rencanaTanggal; | ||||
|     private Timestamp targetTanggal; | ||||
|     private Date rencanaTanggal; | ||||
|     private Date targetTanggal; | ||||
|     private BigDecimal hpe; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
|   | ||||
| @@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class ForgotPasswordRequest extends BaseRequest { | ||||
|     private String email; | ||||
|     private String rememberId; | ||||
|     private String newPassword; | ||||
|     private String confirmationPassword; | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,16 @@ | ||||
| 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; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class InitForgotPasswordRequest extends BaseRequest { | ||||
|  | ||||
|     private String email; | ||||
| } | ||||
| @@ -26,6 +26,7 @@ public class UsersRequest extends BaseRequest { | ||||
|     private Long roleId; | ||||
|     private String role; | ||||
|     private String email; | ||||
|     private String telepon; | ||||
|     private Boolean isActive; | ||||
|     private String search; | ||||
|     private transient Pageable pageable; | ||||
|   | ||||
| @@ -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 DrpPengadaanDokumenResponse extends BaseResponse { | ||||
|  | ||||
|     private Long id; | ||||
|     private Long drpId; | ||||
|     private Long jenisDokumenId; | ||||
|     private String filename; | ||||
|     private String keterangan; | ||||
|     private Boolean isDelete; | ||||
|  | ||||
| } | ||||
| @@ -7,6 +7,7 @@ import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Date; | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @@ -29,8 +30,8 @@ public class DrpPengadaanResponse extends BaseResponse { | ||||
|     private Long metodePenyampaianId; | ||||
|     private Long jenisKontrakId; | ||||
|     private Long strategiPengadaanId; | ||||
|     private Timestamp rencanaTanggal; | ||||
|     private Timestamp targetTanggal; | ||||
|     private Date rencanaTanggal; | ||||
|     private Date targetTanggal; | ||||
|     private BigDecimal hpe; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
|   | ||||
| @@ -21,5 +21,7 @@ public class DrpResponse extends BaseResponse { | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
|  | ||||
|     private List<DrpDokumenResponse> data; | ||||
|     private List<DrpDokumenResponse> dataDrpDokumen; | ||||
|  | ||||
|     private List<DrpPengadaanDokumenResponse> dataDrpPengadaanDokumen; | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,17 @@ | ||||
| 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 | ||||
| @NoArgsConstructor | ||||
| @AllArgsConstructor | ||||
| public class InitForgotPasswordResponse extends BaseResponse { | ||||
|  | ||||
|     private String rememberId; | ||||
|  | ||||
| } | ||||
| @@ -28,6 +28,7 @@ public class UsersResponse extends BaseResponse { | ||||
|     private String role; | ||||
|  | ||||
|     private String email; | ||||
|     private String telepon; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
| } | ||||
|   | ||||
| @@ -4,6 +4,11 @@ import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpPengadaanDokumenRepository extends JpaRepository<DrpPengadaanDokumen, Long> { | ||||
|  | ||||
|     List<DrpPengadaanDokumen> findByDrpIdAndIsDeleteFalse(Long drpId); | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,9 +1,13 @@ | ||||
| package com.iconplus.smartproc.repository; | ||||
|  | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaan; | ||||
| import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.data.jpa.repository.Query; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpPengadaanRepository extends JpaRepository<DrpPengadaan, Long> { | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -25,6 +25,7 @@ public interface UsersRepository extends JpaRepository<Users, Long> { | ||||
|             "u.instansiId as instansiId, " + | ||||
|             "i.instansi as instansi, " + | ||||
|             "u.email as email, " + | ||||
|             "u.telepon as telepon, " + | ||||
|             "u.isActive as isActive, " + | ||||
|             "u.isDelete as isDelete " + | ||||
|             "FROM Users u " + | ||||
| @@ -94,5 +95,11 @@ public interface UsersRepository extends JpaRepository<Users, Long> { | ||||
|             "Where u.isDelete = false " + | ||||
|             "AND u.id = :id") | ||||
|     Optional<UserRoleView> getUserByIdAndDeletedFase(Long id); | ||||
|  | ||||
|     @Query(value = "SELECT * FROM users " + | ||||
|             "WHERE remember_id = :rememberId " + | ||||
|             "AND is_delete = 0 " + | ||||
|             "AND expired_time >= CURRENT_TIMESTAMP", nativeQuery = true) | ||||
|     Optional<Users> getUsersByEmailAndExpiredTime(String rememberId); | ||||
|      | ||||
| } | ||||
|   | ||||
| @@ -42,7 +42,7 @@ public class CommonService { | ||||
|             throw new BusinessException(HttpStatus.CONFLICT, | ||||
|                     Constants.ERR_CODE_10001, | ||||
|                     Constants.ERR_TTL_10001, | ||||
|                     String.format(Constants.ERR_MSG_10001, "Role", input.getId())); | ||||
|                     String.format(Constants.ERR_MSG_10001, "Role", input.getRoleId())); | ||||
|         } | ||||
|  | ||||
|         var bidang= bidangRepository.findByIdAndIsDeleteFalse(input.getBidangId()); | ||||
| @@ -50,7 +50,7 @@ public class CommonService { | ||||
|             throw new BusinessException(HttpStatus.CONFLICT, | ||||
|                     Constants.ERR_CODE_10001, | ||||
|                     Constants.ERR_TTL_10001, | ||||
|                     String.format(Constants.ERR_MSG_10001, "Bidang", input.getId())); | ||||
|                     String.format(Constants.ERR_MSG_10001, "Bidang", input.getBidangId())); | ||||
|         } | ||||
|  | ||||
|         var instansi= instansiRepository.findByIdAndIsDeleteFalse(input.getInstansiId()); | ||||
| @@ -58,7 +58,7 @@ public class CommonService { | ||||
|             throw new BusinessException(HttpStatus.CONFLICT, | ||||
|                     Constants.ERR_CODE_10001, | ||||
|                     Constants.ERR_TTL_10001, | ||||
|                     String.format(Constants.ERR_MSG_10001, "Instansi", input.getId())); | ||||
|                     String.format(Constants.ERR_MSG_10001, "Instansi", input.getInstansiId())); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -26,15 +26,14 @@ public class ForgotPasswordService implements BaseService<ForgotPasswordRequest, | ||||
|     @Override | ||||
|     public EmptyResponse execute(ForgotPasswordRequest input) { | ||||
|  | ||||
|         var users = usersRepository.findByEmailAndIsDeleteFalse(input.getEmail()) | ||||
|         var users = usersRepository.getUsersByEmailAndExpiredTime(input.getRememberId()) | ||||
|                 .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, | ||||
|                         Constants.ERR_TTL_10001, | ||||
|                         String.format(Constants.ERR_MSG_10001, "User", input.getEmail()))); | ||||
|                         String.format(Constants.ERR_MSG_10001, "Remember-id", input.getRememberId()))); | ||||
|  | ||||
|         String newPassword = commonService.getPassword(input.getNewPassword()); | ||||
|         String confirmationPassword = commonService.getPassword(input.getConfirmationPassword()); | ||||
|  | ||||
|  | ||||
|         if (!StringUtils.equalsIgnoreCase(newPassword, confirmationPassword)) { | ||||
|             throw new BusinessException(HttpStatus.CONFLICT, | ||||
|                     Constants.ERR_CODE_10007, | ||||
|   | ||||
| @@ -0,0 +1,46 @@ | ||||
| package com.iconplus.smartproc.service.authentication; | ||||
|  | ||||
| import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.request.InitForgotPasswordRequest; | ||||
| import com.iconplus.smartproc.model.response.InitForgotPasswordResponse; | ||||
| import com.iconplus.smartproc.repository.UsersRepository; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.sql.Timestamp; | ||||
| import java.time.Instant; | ||||
| import java.util.UUID; | ||||
|  | ||||
| @Service | ||||
| public class InitForgotPasswordService implements BaseService<InitForgotPasswordRequest, InitForgotPasswordResponse> { | ||||
|  | ||||
|     @Value("${config.forgot-password.expired-time:1440}") | ||||
|     private Integer expiredTime; | ||||
|  | ||||
|     private final UsersRepository usersRepository; | ||||
|  | ||||
|     public InitForgotPasswordService(UsersRepository usersRepository) { | ||||
|         this.usersRepository = usersRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public InitForgotPasswordResponse execute(InitForgotPasswordRequest input) { | ||||
|  | ||||
|         var users = usersRepository.findByEmailAndIsDeleteFalse(input.getEmail()) | ||||
|                 .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, | ||||
|                         Constants.ERR_TTL_10001, | ||||
|                         String.format(Constants.ERR_MSG_10001, "User", input.getEmail()))); | ||||
|  | ||||
|         var expirationTime = Timestamp.from(Instant.now().plusMillis(expiredTime * (long) 60000)); | ||||
|  | ||||
|         users.setRememberId(UUID.randomUUID().toString()); | ||||
|         users.setExpiredTime(expirationTime); | ||||
|         usersRepository.save(users); | ||||
|  | ||||
|         return InitForgotPasswordResponse.builder() | ||||
|                 .rememberId(users.getRememberId()) | ||||
|                 .build(); | ||||
|     } | ||||
| } | ||||
| @@ -3,10 +3,14 @@ package com.iconplus.smartproc.service.drp; | ||||
| import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.entity.DrpDokumen; | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen; | ||||
| import com.iconplus.smartproc.model.request.DrpRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpDokumenResponse; | ||||
| import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse; | ||||
| import com.iconplus.smartproc.model.response.DrpPengadaanResponse; | ||||
| import com.iconplus.smartproc.model.response.DrpResponse; | ||||
| import com.iconplus.smartproc.repository.DrpDokumenRepository; | ||||
| import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository; | ||||
| import com.iconplus.smartproc.repository.DrpRepository; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import org.springframework.stereotype.Service; | ||||
| @@ -19,11 +23,14 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> { | ||||
|  | ||||
|     private final DrpRepository drpRepository; | ||||
|     private final DrpDokumenRepository drpDokumenRepository; | ||||
|     private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository; | ||||
|  | ||||
|     public GetDrpService(DrpRepository drpRepository, | ||||
|                          DrpDokumenRepository drpDokumenRepository) { | ||||
|                          DrpDokumenRepository drpDokumenRepository, | ||||
|                          DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) { | ||||
|         this.drpRepository = drpRepository; | ||||
|         this.drpDokumenRepository = drpDokumenRepository; | ||||
|         this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -33,8 +40,41 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> { | ||||
|                         Constants.ERR_TTL_10001, | ||||
|                         String.format(Constants.ERR_MSG_10001, "DRP", input.getId()))); | ||||
|  | ||||
|         var drpDokumenList = drpDokumenRepository.findByDrpIdAndIsDeleteFalse(input.getId()); | ||||
|         List<DrpDokumenResponse> drpDokumenResponseList = new ArrayList<>(); | ||||
|         setDrpDokumen(input, drpDokumenResponseList); | ||||
|  | ||||
|         List<DrpPengadaanDokumenResponse> drpPengadaanDokumenResponseList = new ArrayList<>(); | ||||
|         setDrpPengadaanDokumen(input, drpPengadaanDokumenResponseList); | ||||
|  | ||||
|  | ||||
|         return DrpResponse.builder() | ||||
|                 .id(drp.getId()) | ||||
|                 .tahun(drp.getTahun()) | ||||
|                 .approveStatus(drp.getApproveStatus()) | ||||
|                 .approveDate(drp.getApproveDate()) | ||||
|                 .isActive(drp.getIsActive()) | ||||
|                 .isDelete(drp.getIsDelete()) | ||||
|                 .dataDrpDokumen(drpDokumenResponseList) | ||||
|                 .dataDrpPengadaanDokumen(drpPengadaanDokumenResponseList) | ||||
|                 .build(); | ||||
|     } | ||||
|  | ||||
|     private void setDrpPengadaanDokumen(DrpRequest input, List<DrpPengadaanDokumenResponse> drpPengadaanDokumenResponseList) { | ||||
|         var drpPengadaanDokumenList = drpPengadaanDokumenRepository.findByDrpIdAndIsDeleteFalse(input.getId()); | ||||
|  | ||||
|         for (DrpPengadaanDokumen drpPengadaanDokumen : drpPengadaanDokumenList) { | ||||
|             DrpPengadaanDokumenResponse drpPengadaanDokumenResponse = DrpPengadaanDokumenResponse.builder() | ||||
|                     .id(drpPengadaanDokumen.getId()) | ||||
|                     .drpId(drpPengadaanDokumen.getDrpId()) | ||||
|                     .jenisDokumenId(drpPengadaanDokumen.getJenisDokumenId()) | ||||
|                     .filename(drpPengadaanDokumen.getFilename()) | ||||
|                     .build(); | ||||
|             drpPengadaanDokumenResponseList.add(drpPengadaanDokumenResponse); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void setDrpDokumen(DrpRequest input, List<DrpDokumenResponse> drpDokumenResponseList) { | ||||
|         var drpDokumenList = drpDokumenRepository.findByDrpIdAndIsDeleteFalse(input.getId()); | ||||
|  | ||||
|         for (DrpDokumen drpDokumen : drpDokumenList) { | ||||
|             DrpDokumenResponse drpDokumenResponse = DrpDokumenResponse.builder() | ||||
| @@ -45,15 +85,5 @@ public class GetDrpService implements BaseService<DrpRequest, DrpResponse> { | ||||
|                     .build(); | ||||
|             drpDokumenResponseList.add(drpDokumenResponse); | ||||
|         } | ||||
|  | ||||
|         return DrpResponse.builder() | ||||
|                 .id(drp.getId()) | ||||
|                 .tahun(drp.getTahun()) | ||||
|                 .approveStatus(drp.getApproveStatus()) | ||||
|                 .approveDate(drp.getApproveDate()) | ||||
|                 .isActive(drp.getIsActive()) | ||||
|                 .isDelete(drp.getIsDelete()) | ||||
|                 .data(drpDokumenResponseList) | ||||
|                 .build(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,23 @@ | ||||
| package com.iconplus.smartproc.service.drp; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.request.DrpPengadaanRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpPengadaanResponse; | ||||
| import com.iconplus.smartproc.repository.DrpPengadaanRepository; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| @Service | ||||
| public class GetListDrpPengadaanService implements BaseService<DrpPengadaanRequest, DrpPengadaanResponse> { | ||||
|  | ||||
|     private final DrpPengadaanRepository drpPengadaanRepository; | ||||
|  | ||||
|     public GetListDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository) { | ||||
|         this.drpPengadaanRepository = drpPengadaanRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public DrpPengadaanResponse execute(DrpPengadaanRequest input) { | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
| } | ||||
| @@ -38,12 +38,7 @@ public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse | ||||
|     @Override | ||||
|     public DrpResponse execute(DrpRequest input) { | ||||
|  | ||||
|         Optional<Drp> drpOptional = drpRepository.findByTahunAndIsDeleteFalse(input.getTahun()); | ||||
|         if (drpOptional.isPresent()) { | ||||
|             throw new BusinessException(Constants.ERR_CODE_10010, | ||||
|                     Constants.ERR_TTL_10010, | ||||
|                     Constants.ERR_MSG_10010); | ||||
|         } | ||||
|         validateTahunDrp(input); | ||||
|  | ||||
|         Drp drp = Drp.builder() | ||||
|                 .tahun(input.getTahun()) | ||||
| @@ -90,4 +85,13 @@ public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse | ||||
|                 .id(drpSaved.getId()) | ||||
|                 .build(); | ||||
|     } | ||||
|  | ||||
|     public void validateTahunDrp(DrpRequest input) { | ||||
|         Optional<Drp> drpOptional = drpRepository.findByTahunAndIsDeleteFalse(input.getTahun()); | ||||
|         if (drpOptional.isPresent()) { | ||||
|             throw new BusinessException(Constants.ERR_CODE_10010, | ||||
|                     Constants.ERR_TTL_10010, | ||||
|                     Constants.ERR_MSG_10010); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -44,6 +44,7 @@ public class GetListUserService implements BaseService<UsersRequest, GetUsersRes | ||||
|                     .instansiId(userRoleView.getInstansiId()) | ||||
|                     .instansi(userRoleView.getInstansi()) | ||||
|                     .email(userRoleView.getEmail()) | ||||
|                     .telepon(userRoleView.getTelepon()) | ||||
|                     .isActive(userRoleView.getIsActive()) | ||||
|                     .build(); | ||||
|             usersResponses.add(usersResponse); | ||||
|   | ||||
| @@ -40,6 +40,7 @@ public class GetUserByIdService implements BaseService<UsersRequest, UsersRespon | ||||
|                 .instansiId(userRoleView.getInstansiId()) | ||||
|                 .instansi(userRoleView.getInstansi()) | ||||
|                 .email(userRoleView.getEmail()) | ||||
|                 .telepon(userRoleView.getTelepon()) | ||||
|                 .isActive(userRoleView.getIsActive()) | ||||
|                 .build(); | ||||
|     } | ||||
|   | ||||
| @@ -9,7 +9,8 @@ import com.iconplus.smartproc.model.response.UsersResponse; | ||||
| import com.iconplus.smartproc.repository.UsersRepository; | ||||
| import com.iconplus.smartproc.service.CommonService; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import com.iconplus.smartproc.util.EncryptDecryptUtils; | ||||
| import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.http.HttpStatus; | ||||
| import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; | ||||
| import org.springframework.stereotype.Service; | ||||
| @@ -17,6 +18,9 @@ import org.springframework.stereotype.Service; | ||||
| @Service | ||||
| public class PostCreateUserService implements BaseService<UsersRequest, UsersResponse> { | ||||
|  | ||||
|     @Value("${config.default-password:plgg123}") | ||||
|     private String defaultPassword; | ||||
|  | ||||
|     private UsersRepository usersRepository; | ||||
|     private CommonService commonService; | ||||
|  | ||||
| @@ -39,7 +43,12 @@ public class PostCreateUserService implements BaseService<UsersRequest, UsersRes | ||||
|  | ||||
|         commonService.validateUserRequst(input); | ||||
|  | ||||
|         String password = commonService.getPassword(input.getPassword()); | ||||
|         String password = null; | ||||
|         if (StringUtils.isNotBlank(input.getPassword())) { | ||||
|             password = commonService.getPassword(input.getPassword()); | ||||
|         } else { | ||||
|             password = defaultPassword; | ||||
|         } | ||||
|  | ||||
|         BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); | ||||
|         String encryptedPassword = encoder.encode(password); | ||||
| @@ -53,6 +62,7 @@ public class PostCreateUserService implements BaseService<UsersRequest, UsersRes | ||||
|                 .jabatanId(input.getJabatanId()) | ||||
|                 .roleId(input.getRoleId()) | ||||
|                 .email(input.getEmail()) | ||||
|                 .telepon(input.getTelepon()) | ||||
|                 .password(input.getPassword()) | ||||
|                 .isActive(input.getIsActive()) | ||||
|                 .isDelete(false) | ||||
|   | ||||
| @@ -39,6 +39,7 @@ public class PutUpdateUserService implements BaseService<UsersRequest, UsersResp | ||||
|         users.setJabatanId(input.getJabatanId()); | ||||
|         users.setRoleId(input.getRoleId()); | ||||
|         users.setEmail(input.getEmail()); | ||||
|         users.setTelepon(input.getTelepon()); | ||||
|         users.setPassword(input.getPassword()); | ||||
|         users.setIsActive(input.getIsActive()); | ||||
|         users.setIsDelete(false); | ||||
|   | ||||
| @@ -41,7 +41,7 @@ public class Constants { | ||||
|     public static final String ERR_MSG_10009 = "Periksa kembali password sekrang anda"; | ||||
|  | ||||
|     public static final String ERR_CODE_10010 = "10010"; | ||||
|     public static final String ERR_TTL_10010 = "Data tidak ditemukan"; | ||||
|     public static final String ERR_TTL_10010 = "Data tersedia"; | ||||
|     public static final String ERR_MSG_10010 = "Maaf, Tahun DRP yang anda pilih sudah ada sebelumnya. silahkan pilih Tahun DRP lain untuk menambah DRP baru."; | ||||
|  | ||||
|     public static final String ERR_CODE_10011 = "10011"; | ||||
|   | ||||
| @@ -10,6 +10,8 @@ config: | ||||
|   password: | ||||
|     private-key: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCRyUePQWkg+IH5dAvQ/+YlVR1htFdhL2+NJtWWXNW15mBUOEr+yvJsOYAzY9KfxmVqRRr1uQEAaaKjNpxwNEnHkMn8LzSEhRxCd4Mqpa5jquCdPfMqGO3cwdkrQjZVfm3tCBYd2HkOeL8PTwlbBORucf6qHPxZvjGVXQeiRAHTlgHTR1647T1+vlDDcaOBJIrwcD566hqOCKMxtE+5F4DieSYEuHJMyvJf/WH2+LxbP2t4Z6IV0tksQKtwyZstEXd3yIL8chKoFh2p3KO8aFfMa7X0aiDVC3z+o2Hh8+YHQt7cSl+NGRxasuqLbY3twZEC9qAIkkDOpBUp7lLZ9NVHAgMBAAECggEACd0GXGjehf6KPKhfTEqj9Y6mqD+dUdP1xiUEemHZi68EgW41lLuCX1Qcml18mJbBscjvJATaTn7XJBfDycuf2kKvh8Jh2T1wRgbz9uSywceD3t+cHhMFtNPgr46RQoOFSG4toONOfW4p7w034tKX6ekIg9XmNOQrUqGyrIXRYdFADB68HaLxlgS0zKrkhp14+wH/krihfS3H7Z+wBVozWSgyHCVbov68l764w3UWZYEEe2mFl31HqhD5KEo8QXODWuemUTROaXKF/iOsPEMC8Qz4Jdqme+iAlV4b2LNaSTEP/NG/kFIE443RlyFo9YfVNw7/osgAksXAPdOZd8qt8QKBgQDYHLX2HVaGj9zvAlqSKjf6VuuxgdRUYW4rqQjm97YmAJNp4udjKLUgD7yDuImYh/E/IWjDxf1Hf3fTjcc98iPMsvP3lkXxdOxMLLlnMv0Ewxof8gATQndU/w+/XuuAZ9cy3vtheo59i4rFpik8XFAH6kPk/gWI9DAE/IbXuOSNUwKBgQCssaxMwfrB9nwQ9eDXv2z+Ce4sZbtZEJYD3a29OGshLw8AH//z/BxPzZRTFy63IfmmIyYSGaC7ZdkrakLhlBXrhi/P0wafp7xEsONb8uNYWDDWoDewH75GX/SPhx7bX0GSeiX6X5XAUg97j0xlfYllIieMLCw4rLU+97ge5xalvQKBgQDXJjYtEGYczsqYFBLRI0DZdIFvFZ6qZtkElGMtdf0b9kTMDL5pZJR1l9UImcY6WVRekkc3aDvQW2GS9rodvJvRZXMm0K9PRCUfbQMjb4qfnBC9LvLOOcSNlOQ7lCcGjdqbZYyELjv/VtXQEa1Jz2lJh/sR1abzAo9v12vzBbpbywKBgQCkdEZKimeLknivhhbqHgdjHH3NlcuFk3/oipBLI5ERdsjoK5EI/crQTEu1nNwF1brx9YLptbIVA3Z+G6E5RFZjhdO+K42hOJDXMUQyaekKVmGb4dNmS7RdPD+e9uPxsJK3NM850RDApuTLm7j65UOUJaRXnjE2f3HSVwDlnNc6WQKBgQCccgyIJx5HnxdkYYFJBnuwo1aDNo2TOqiy9wPXHzxuR8TsvqmbbYoxT0kJkqOjkbQII08nLyHJ3KL7XK3dCEGmdRArHjo0PCLMzKqBZdhtfxN413HxmwXIF5zM6mhS4g8XrDyNW7EhLp/putnpmE6XI9VnEFx/LxAd8nJ9tUd39A== | ||||
|     public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkclHj0FpIPiB+XQL0P/mJVUdYbRXYS9vjSbVllzVteZgVDhK/srybDmAM2PSn8ZlakUa9bkBAGmiozaccDRJx5DJ/C80hIUcQneDKqWuY6rgnT3zKhjt3MHZK0I2VX5t7QgWHdh5Dni/D08JWwTkbnH+qhz8Wb4xlV0HokQB05YB00deuO09fr5Qw3GjgSSK8HA+euoajgijMbRPuReA4nkmBLhyTMryX/1h9vi8Wz9reGeiFdLZLECrcMmbLRF3d8iC/HISqBYdqdyjvGhXzGu19Gog1Qt8/qNh4fPmB0Le3EpfjRkcWrLqi22N7cGRAvagCJJAzqQVKe5S2fTVRwIDAQAB | ||||
|   forgot-password: | ||||
|     expired-time: 1440 | ||||
|  | ||||
| spring: | ||||
|   datasource: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user