From 90241ab74d42009a6d8eedf44be0230cc2af90af Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 11 Oct 2023 21:38:41 +0700 Subject: [PATCH] Update service activity pegawai Perbaikan transient many to one karena cascade sebelum simpan data --- .../impl/ActivityPegawaiServiceImpl.java | 199 +++++------ .../entities/ActivityPegawai.java | 63 +--- .../medifirst2000/vo/custom/AuthVO.java | 49 +-- .../controller/AuthenticateController.java | 313 ++++++------------ 4 files changed, 204 insertions(+), 420 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ActivityPegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ActivityPegawaiServiceImpl.java index a9d3bafd..33478436 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ActivityPegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ActivityPegawaiServiceImpl.java @@ -1,15 +1,15 @@ package com.jasamedika.medifirst2000.service.impl; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; - +import com.google.gson.Gson; +import com.jasamedika.medifirst2000.dao.ActivityPegawaiDao; +import com.jasamedika.medifirst2000.dao.PegawaiDao; +import com.jasamedika.medifirst2000.entities.ActivityPegawai; +import com.jasamedika.medifirst2000.entities.Pegawai; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.ActivityPegawaiService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.PegawaiVO; +import io.socket.client.IO; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; @@ -19,159 +19,130 @@ import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.google.gson.Gson; -import com.jasamedika.medifirst2000.converter.BaseConverterImpl; -import com.jasamedika.medifirst2000.dao.ActivityPegawaiDao; -import com.jasamedika.medifirst2000.dao.PegawaiDao; -import com.jasamedika.medifirst2000.entities.ActivityPegawai; -import com.jasamedika.medifirst2000.entities.Pegawai; -import com.jasamedika.medifirst2000.service.ActivityPegawaiService; -import com.jasamedika.medifirst2000.util.CommonUtil; -import com.jasamedika.medifirst2000.vo.PegawaiVO; - -import io.socket.client.IO; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; +import java.net.URISyntaxException; +import java.util.*; /** * Implement class for PelayananObatService * * @author Generator - * @param */ @Service("activityPegawaiServiceImpl") -public class ActivityPegawaiServiceImpl implements ActivityPegawaiService { - +public class ActivityPegawaiServiceImpl implements ActivityPegawaiService { private static final Logger LOGGER = LoggerFactory.getLogger(ActivityPegawaiService.class); - - static io.socket.client.Socket socket =null; - + + static io.socket.client.Socket socket = null; + @PersistenceContext protected EntityManager em; - - @Override - @Transactional(readOnly=false) - public String GetSettingDataFixed(String prefix) { - StringBuffer buffer = new StringBuffer(); - buffer.append("select model.nilaiField from SettingDataFixed ") - .append(" model where model.namaField ='"+prefix+"' "); - Query query = em.createQuery(buffer.toString()); - - String result = (String)query.getSingleResult(); - return result; - } - - protected void BroadcastMessage(final String to, final Map data) { - try { - if(socket==null) - { - socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging")); - - socket.on(io.socket.client.Socket.EVENT_CONNECT, new io.socket.emitter.Emitter.Listener() { - - @Override - public void call(Object... args) { - - try { - Gson gson = new Gson(); - JSONObject item=new JSONObject("{\"to\":\""+to+"\",\"message\":"+gson.toJson(data)+"}"); - LOGGER.info("{\"to\":\""+to+"\",\"message\":"+gson.toJson(data)+"}"); - socket.emit("subscribe", item); - //socket.disconnect(); - } catch (JSONException e) { - e.printStackTrace(); - } - } - - }); - socket.connect(); - } - else{ - try { - Gson gson = new Gson(); - JSONObject item=new JSONObject("{\"to\":\""+to+"\",\"message\":"+gson.toJson(data)+"}"); - LOGGER.info("{\"to\":\""+to+"\",\"message\":"+gson.toJson(data)+"}"); - socket.emit("subscribe", item); - //socket.disconnect(); - } catch (JSONException e) { - e.printStackTrace(); - } - - - } - - } catch (URISyntaxException e) { - e.printStackTrace(); - } - } - @Autowired - private BaseConverterImpl pelayananObatConverter; @Autowired private ActivityPegawaiDao activityPegawaiDao; + @Autowired private PegawaiDao pegawaiDao; - + @Override - @Transactional(readOnly=false) + @Transactional + public String GetSettingDataFixed(String prefix) { + String buffer = "select model.nilaiField from SettingDataFixed " + " model where model.namaField ='" + prefix + + "' "; + Query query = em.createQuery(buffer); + return (String) query.getSingleResult(); + } + + protected void BroadcastMessage(final String to, final Map data) { + try { + if (socket == null) { + socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging")); + socket.on(io.socket.client.Socket.EVENT_CONNECT, args -> { + try { + Gson gson = new Gson(); + JSONObject item = new JSONObject( + "{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); + LOGGER.info("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); + socket.emit("subscribe", item); + } catch (JSONException e) { + throw new ServiceVOException(e.getMessage()); + } + }); + socket.connect(); + } else { + try { + Gson gson = new Gson(); + JSONObject item = new JSONObject("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); + LOGGER.info("{\"to\":\"" + to + "\",\"message\":" + gson.toJson(data) + "}"); + socket.emit("subscribe", item); + } catch (JSONException e) { + throw new ServiceVOException(e.getMessage()); + } + } + } catch (URISyntaxException e) { + throw new ServiceVOException(e.getMessage()); + } + } + + @Override + @Transactional public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan) { Pegawai pegawaiSave = new Pegawai(); pegawaiSave.setId(pegawai.getId()); ActivityPegawai act = new ActivityPegawai(); act.setKeterangan(keterangan); act.setPegawai(pegawaiSave); - act.setTanggalKejadian(new Date()); - - act =activityPegawaiDao.save(act); - act =activityPegawaiDao.findOne(act.getNoRec()); + act.setTanggalKejadian(new Date()); + act = activityPegawaiDao.save(act); + act = activityPegawaiDao.findOne(act.getNoRec()); act.setPegawai(pegawaiDao.findById(pegawai.getId())); try { - BroadcastMessage("IKI",act.ToMap()); + BroadcastMessage("IKI", act.ToMap()); } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); + throw new ServiceVOException(e.getMessage()); } - return act.getNoRec()!=""; + return !Objects.equals(act.getNoRec(), ""); } + @Override - @Transactional(readOnly=false) - public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan,String group) { + @Transactional + public Boolean record(PegawaiVO pegawai, Date tanggal, String keterangan, String group) { Pegawai pegawaiSave = new Pegawai(); pegawaiSave.setId(pegawai.getId()); ActivityPegawai act = new ActivityPegawai(); act.setKeterangan(keterangan); act.setGroup(group); act.setPegawai(pegawaiSave); - act.setTanggalKejadian(new Date()); - - act =activityPegawaiDao.save(act); - act =activityPegawaiDao.findOne(act.getNoRec()); + act.setTanggalKejadian(new Date()); + act = activityPegawaiDao.save(act); + act = activityPegawaiDao.findOne(act.getNoRec()); act.setPegawai(pegawaiDao.findById(pegawai.getId())); try { - BroadcastMessage("IKI",act.ToMap()); + BroadcastMessage("IKI", act.ToMap()); } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); + throw new ServiceVOException(e.getMessage()); } - return act.getNoRec()!=""; + return !Objects.equals(act.getNoRec(), ""); } + @Override public List getData() { - return (List) activityPegawaiDao.findDescending(); + return activityPegawaiDao.findDescending(); } + @Override - public List getData(Date start, Date until,Integer top) { - return (List) activityPegawaiDao.findDescending(start,until,new PageRequest(0,top)); + public List getData(Date start, Date until, Integer top) { + return activityPegawaiDao.findDescending(start, until, new PageRequest(0, top)); } @Override public List> getActivityData(String tanggal, Integer idPegawai) { - List> result = new ArrayList>(); - if (CommonUtil.isNotNullOrEmpty(tanggal) && CommonUtil.isNotNullOrEmpty(idPegawai)) { - result = activityPegawaiDao.aktivitasByDatePegawai(tanggal, idPegawai); + return activityPegawaiDao.aktivitasByDatePegawai(tanggal, idPegawai); } else if (CommonUtil.isNotNullOrEmpty(tanggal) && CommonUtil.isNullOrEmpty(idPegawai)) { - result = activityPegawaiDao.aktivitasByDate(tanggal); - } else { - result = activityPegawaiDao.aktivitasHariIni(); + return activityPegawaiDao.aktivitasByDate(tanggal); } - - return result; + return activityPegawaiDao.aktivitasHariIni(); } } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ActivityPegawai.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ActivityPegawai.java index a4fe5b60..c94c1d8d 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ActivityPegawai.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ActivityPegawai.java @@ -1,24 +1,31 @@ package com.jasamedika.medifirst2000.entities; -import java.util.Date; -import javax.persistence.*; import com.jasamedika.medifirst2000.base.BaseTransaction; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; +import javax.persistence.*; +import java.util.Date; + +import static javax.persistence.FetchType.LAZY; + +@Getter +@Setter @Entity @Table(name = "ActivityPegawai_H") public class ActivityPegawai extends BaseTransaction { + private static final long serialVersionUID = 3739050768690435138L; @Caption(value = "keterangan") - @Column(name = "Keterangan", nullable = true) + @Column(name = "Keterangan") private String keterangan; @Caption(value = "Tanggal Kejadian") - @Column(name = "tanggalKejadian", nullable = true) + @Column(name = "tanggalKejadian") private Date tanggalKejadian; - @ManyToOne + @ManyToOne(fetch = LAZY) @JoinColumn(name = "PegawaiFK") @Caption(value = "Pegawai") private Pegawai pegawai; @@ -27,48 +34,6 @@ public class ActivityPegawai extends BaseTransaction { private Integer pegawaiId; @Caption(value = "group") - @Column(name = "GroupData", nullable = true, length = 250) + @Column(name = "GroupData", length = 250) private String group; - - public String getKeterangan() { - return keterangan; - } - - public void setKeterangan(String keterangan) { - this.keterangan = keterangan; - } - - public Date getTanggalKejadian() { - return tanggalKejadian; - } - - public void setTanggalKejadian(Date tanggalKejadian) { - this.tanggalKejadian = tanggalKejadian; - } - - public Pegawai getPegawai() { - return pegawai; - } - - public void setPegawai(Pegawai pegawai) { - this.pegawai = pegawai; - } - - public Integer getPegawaiId() { - return pegawaiId; - } - - public void setPegawaiId(Integer pegawaiId) { - this.pegawaiId = pegawaiId; - } - - public String getGroup() { - return group; - } - - public void setGroup(String group) { - this.group = group; - } - - } \ No newline at end of file diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/custom/AuthVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/custom/AuthVO.java index ce673853..3a6cb7fd 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/custom/AuthVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/custom/AuthVO.java @@ -1,50 +1,19 @@ package com.jasamedika.medifirst2000.vo.custom; -import java.io.Serializable; +import lombok.Getter; +import lombok.Setter; /** * VO untuk Login */ -public class AuthVO implements Serializable { - /** - * serialVersionUID - */ - private static final long serialVersionUID = 7391557986006113925L; +@Getter +@Setter +public class AuthVO { private Integer id; + private String namaUser; - private String kdUser; + + private String kdUser; + private String kataSandi; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public String getKdUser() { - return kdUser; - } - - public void setKdUser(String kdUser) { - this.kdUser = kdUser; - } - - public String getNamaUser() { - return namaUser; - } - - public void setNamaUser(String namaUser) { - this.namaUser = namaUser; - } - - public String getKataSandi() { - return kataSandi; - } - - public void setKataSandi(String kataSandi) { - this.kataSandi = kataSandi; - } - } diff --git a/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/AuthenticateController.java b/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/AuthenticateController.java index 01628032..7cc8374b 100644 --- a/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/AuthenticateController.java +++ b/jasamedika-web/src/main/java/com/jasamedika/medifirst2000/controller/AuthenticateController.java @@ -1,29 +1,7 @@ package com.jasamedika.medifirst2000.controller; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.User; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - import com.jasamedika.medifirst2000.constants.Constants; +import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.logging.hibernate.async.LoggingSystemAsynchronous; import com.jasamedika.medifirst2000.notification.MessagePublisher; import com.jasamedika.medifirst2000.security.model.UserAuthentication; @@ -39,6 +17,19 @@ import com.jasamedika.medifirst2000.util.rest.RestUtil; import com.jasamedika.medifirst2000.vo.AgamaVO; import com.jasamedika.medifirst2000.vo.LoginUserVO; import com.jasamedika.medifirst2000.vo.custom.AuthVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.*; /** * Controller class for Authenticate Business @@ -48,68 +39,53 @@ import com.jasamedika.medifirst2000.vo.custom.AuthVO; @RestController @RequestMapping("/auth") public class AuthenticateController { + private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticateController.class); + + protected Map mapHeaderMessage = new HashMap<>(); + + @Autowired + MessagePublisher messagePublisher; + + @Autowired + LoggingSystemAsynchronous loggingSystemAsynchronous; @Autowired private LoginUserService loginUserService; - - protected Map mapHeaderMessage = new HashMap(); @Autowired public AgamaService agamaService; @Autowired - private ActivityPegawaiService activityPegawaiServiceImpl; - + private ActivityPegawaiService activityPegawaiService; + @Autowired public JadwalDokterService jadwalDokterService; - - @Autowired - MessagePublisher messagePublisher; - -// @Autowired -// private DataSource dataSource; - + @Autowired private TokenAuthenticationService tokenAuthenticationService; - -// @Autowired -// private ObjekModulAplikasiSService objekModulAplikasiSService; - - //Alter Syamsu - @Autowired - LoggingSystemAsynchronous loggingSystemAsynchronous; - private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticateController.class); - - - @RequestMapping(value = "/history", method = RequestMethod.GET) @ResponseBody public ResponseEntity GetHistory(@RequestParam(value = "dateStart", required = false) String dateStart, @RequestParam(value = "dateEnd", required = false) String dateEnd, - @RequestParam(value = "top", required = false,defaultValue="0") Integer top, HttpServletRequest request, - HttpServletResponse httpResponse) { - if(top ==0) - top =Integer.MAX_VALUE; + @RequestParam(value = "top", required = false, defaultValue = "0") Integer top, HttpServletRequest request, + HttpServletResponse httpResponse) { + if (top == 0) + top = Integer.MAX_VALUE; Date start = DateUtil.toDate(dateStart); Date until = DateUtil.toDate(dateEnd); - Object data =null; try { - data = JsonUtil.ToMaps( activityPegawaiServiceImpl.getData(start, until,top)); + Object data = JsonUtil.ToMaps(activityPegawaiService.getData(start, until, top)); + return RestUtil.getJsonResponse(data, HttpStatus.OK, mapHeaderMessage); } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); + throw new ServiceVOException(e.getMessage()); } - - - return RestUtil.getJsonResponse(data, HttpStatus.OK, mapHeaderMessage); } - // Alter Syamsu @RequestMapping(value = "/sign-in", method = RequestMethod.POST) @ResponseBody - public ResponseEntity signIn(@RequestBody AuthVO vo, HttpServletRequest request, HttpServletResponse httpResponse) { - - + public ResponseEntity signIn(@RequestBody AuthVO vo, HttpServletRequest request, + HttpServletResponse httpResponse) { if (vo.getNamaUser() == null || vo.getKataSandi() == null) { this.mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, "Username or Password is empty"); return RestUtil.getJsonHttptatus(HttpStatus.BAD_REQUEST, mapHeaderMessage); @@ -118,127 +94,65 @@ public class AuthenticateController { LOGGER.info("starting logging {}", vo.getNamaUser() + " at " + DateUtil.getIndonesianStringDate(new Date())); try { - mapHeaderMessage = new HashMap(); + mapHeaderMessage = new HashMap<>(); LoginUserVO loginUserVo = loginUserService.signIn(vo); if (loginUserVo == null) { this.mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, "Invalid Username or Password"); return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE, mapHeaderMessage); } - // GrantedAuthority authority = new - // SimpleGrantedAuthority(loginUserVo - // .getKelompokUser().getKelompokUser()); - GrantedAuthority authority = new SimpleGrantedAuthority("USER"); - - String token = tokenAuthenticationService.addAuthentication(httpResponse, new UserAuthentication( - new User(loginUserVo.getNamaUser(), loginUserVo.getKataSandi(), Arrays.asList(authority)))); - - Boolean isSupervising = request.getHeader(Constants.HttpHeader.SUPERVISING) == null ? false : true; - + String token = tokenAuthenticationService.addAuthentication(httpResponse, + new UserAuthentication(new User(loginUserVo.getNamaUser(), loginUserVo.getKataSandi(), + Collections.singletonList(authority)))); + + boolean isSupervising = request.getHeader(Constants.HttpHeader.SUPERVISING) != null; if (isSupervising) { // supervising login mapHeaderMessage.put("X-AUTH-SUPERVISOR-TOKEN", token); - activityPegawaiServiceImpl.record(loginUserVo.getPegawai(), new Date(), "Supervising Login"); - return RestUtil.getJsonResponse(loginUserVo, HttpStatus.OK, mapHeaderMessage); + activityPegawaiService.record(loginUserVo.getPegawai(), new Date(), "Supervising Login"); } else { // normal login - - Map data = new HashMap<>(); - - if (loginUserVo.getPegawai().getJenisPegawai() != null && loginUserVo.getPegawai().getJenisPegawai().getId() == Integer.parseInt(GetSettingDataFixed("KdJenisPegawaiDokter"))) { - Boolean result = jadwalDokterService.CheckJadwalDokter(new Date(), loginUserVo.getPegawai()); - //if (!result) { - // mapHeaderMessage.put("message", "Tidak memiliki Jadwal hari ini"); - //} else { - mapHeaderMessage.put("X-AUTH-TOKEN", token); - activityPegawaiServiceImpl.record(loginUserVo.getPegawai(), new Date(), "Behasil Login Ke System"); - messagePublisher.sendDirectNotification(data); - //BroadcastMessage("IKI", ""); - //} - } else { - - mapHeaderMessage.put("X-AUTH-TOKEN", token); - activityPegawaiServiceImpl.record(loginUserVo.getPegawai(), new Date(), "Behasil Login Ke System"); - messagePublisher.sendDirectNotification(data); - //BroadcastMessage("IKI", ""); - } - + Map data = new HashMap<>(); + if (loginUserVo.getPegawai().getJenisPegawai() != null && loginUserVo.getPegawai().getJenisPegawai() + .getId() == Integer.parseInt(GetSettingDataFixed("KdJenisPegawaiDokter"))) + jadwalDokterService.CheckJadwalDokter(new Date(), loginUserVo.getPegawai()); + mapHeaderMessage.put("X-AUTH-TOKEN", token); + activityPegawaiService.record(loginUserVo.getPegawai(), new Date(), "Behasil Login Ke System"); + messagePublisher.sendDirectNotification(data); Integer idPegawai = 0; - if (CommonUtil.isNotNullOrEmpty(loginUserVo.getPegawai())){ + if (CommonUtil.isNotNullOrEmpty(loginUserVo.getPegawai())) idPegawai = loginUserVo.getPegawai().getId(); - } - loggingSystemAsynchronous.saveSignInLog(0, 0, loginUserVo.getNamaUser(), idPegawai); - - return RestUtil.getJsonResponse(loginUserVo, HttpStatus.OK, mapHeaderMessage); } - + return RestUtil.getJsonResponse(loginUserVo, HttpStatus.OK, mapHeaderMessage); } catch (Exception ex) { - ex.printStackTrace(); LOGGER.error("Signing-in error {}", ex.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.UNAUTHORIZED); } } public String GetSettingDataFixed(String prefix) { - return activityPegawaiServiceImpl.GetSettingDataFixed(prefix); + return activityPegawaiService.GetSettingDataFixed(prefix); } - -// private void BroadcastMessage(final String to, final String data) { -// final Socket socket; -// try { -// socket = IO.socket(GetSettingDataFixed("UrlSocketMessaging")); -// -// socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { -// @Override -// public void call(Object... args) { -// try { -// JSONObject item= new JSONObject("{\"to\":\""+to+"\",\"message\":\""+data+"\"}"); -// socket.emit("subscribe", item); -// } catch (JSONException e) { -// LOGGER.info(e.getMessage()); -// } -// } -// -// }); -// socket.connect(); -// } catch (URISyntaxException e) { -// e.printStackTrace(); -// } -// -// } @RequestMapping(value = "/sign-out", method = RequestMethod.POST) @ResponseBody public ResponseEntity signOut(@RequestBody AuthVO vo, HttpServletResponse httpResponse) { - LoginUserVO loginUserVO = loginUserService.findById(vo.getId()); - LOGGER.info("starting logout {}", loginUserVO.getNamaUser() + " at " + DateUtil.getIndonesianStringDate(new Date())); - - Integer idPegawai = 0; - if (CommonUtil.isNotNullOrEmpty(loginUserVO.getPegawai())){ - idPegawai = loginUserVO.getPegawai().getId(); - } - - loggingSystemAsynchronous.saveSignOutLog(loginUserVO.getNamaUser(), idPegawai); -// GrantedAuthority authority = new SimpleGrantedAuthority("USER"); -// String token = tokenAuthenticationService.addAuthentication(httpResponse, new UserAuthentication( -// new User(loginUserVO.getNamaUser(), loginUserVO.getKataSandi(), Arrays.asList(authority)))); -// mapHeaderMessage.put("X-AUTH-SUPERVISOR-TOKEN", token); - - return RestUtil.getJsonResponse(vo, HttpStatus.OK); - + LOGGER.info("starting logout {}", + loginUserVO.getNamaUser() + " at " + DateUtil.getIndonesianStringDate(new Date())); - // misal call service logout dan seterusnya - // Karena Stateless tidak perlu set " session user " menjadi tidak - // aktif, return HttpStatus.OK ke client - //RestUtil.getJsonHttptatus(HttpStatus.OK); + Integer idPegawai = 0; + if (CommonUtil.isNotNullOrEmpty(loginUserVO.getPegawai())) + idPegawai = loginUserVO.getPegawai().getId(); + loggingSystemAsynchronous.saveSignOutLog(loginUserVO.getNamaUser(), idPegawai); + return RestUtil.getJsonResponse(vo, HttpStatus.OK); } - + @RequestMapping(value = "/sign-in-mobile", method = RequestMethod.POST) @ResponseBody - public ResponseEntity> signInMobile(@RequestBody AuthVO vo, HttpServletRequest request, HttpServletResponse httpResponse) { - - + public ResponseEntity> signInMobile(@RequestBody AuthVO vo, HttpServletRequest request, + HttpServletResponse httpResponse) { if (vo.getNamaUser() == null || vo.getKataSandi() == null) { this.mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, "Username or Password is empty"); return RestUtil.getJsonHttptatus(HttpStatus.BAD_REQUEST, mapHeaderMessage); @@ -247,99 +161,64 @@ public class AuthenticateController { LOGGER.info("starting logging {}", vo.getNamaUser() + " at " + DateUtil.getIndonesianStringDate(new Date())); try { - mapHeaderMessage = new HashMap(); + mapHeaderMessage = new HashMap<>(); LoginUserVO loginUserVo = loginUserService.signIn(vo); if (loginUserVo == null) { this.mapHeaderMessage.put(Constants.MessageInfo.ERROR_MESSAGE, "Invalid Username or Password"); return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE, mapHeaderMessage); } - // GrantedAuthority authority = new - // SimpleGrantedAuthority(loginUserVo - // .getKelompokUser().getKelompokUser()); - GrantedAuthority authority = new SimpleGrantedAuthority("USER"); - - String token = tokenAuthenticationService.addAuthentication(httpResponse, new UserAuthentication( - new User(loginUserVo.getNamaUser(), loginUserVo.getKataSandi(), Arrays.asList(authority)))); - - Boolean isSupervising = request.getHeader(Constants.HttpHeader.SUPERVISING) == null ? false : true; - + String token = tokenAuthenticationService.addAuthentication(httpResponse, + new UserAuthentication(new User(loginUserVo.getNamaUser(), loginUserVo.getKataSandi(), + Collections.singletonList(authority)))); + boolean isSupervising = request.getHeader(Constants.HttpHeader.SUPERVISING) != null; if (isSupervising) { // supervising login mapHeaderMessage.put("X-AUTH-SUPERVISOR-TOKEN", token); - activityPegawaiServiceImpl.record(loginUserVo.getPegawai(), new Date(), "Supervising Login"); - Map result= new HashMap<>(); - result.put("token", token); - result.put("id", loginUserVo.getId()); - result.put("idPegawai", loginUserVo.getPegawai().getId()); - result.put("name", loginUserVo.getPegawai().getNamaLengkap()); + activityPegawaiService.record(loginUserVo.getPegawai(), new Date(), "Supervising Login"); + Map result = new HashMap<>(); + result.put("token", token); + result.put("id", loginUserVo.getId()); + result.put("idPegawai", loginUserVo.getPegawai().getId()); + result.put("name", loginUserVo.getPegawai().getNamaLengkap()); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } else { // normal login - - Map data = new HashMap<>(); - - if (loginUserVo.getPegawai().getJenisPegawai() != null && loginUserVo.getPegawai().getJenisPegawai().getId() == Integer.parseInt(GetSettingDataFixed("KdJenisPegawaiDokter"))) { - Boolean result = jadwalDokterService.CheckJadwalDokter(new Date(), loginUserVo.getPegawai()); - // if (!result) { - // mapHeaderMessage.put("message", "Tidak memiliki Jadwal hari ini"); - // } else { - mapHeaderMessage.put("X-AUTH-TOKEN", token); - activityPegawaiServiceImpl.record(loginUserVo.getPegawai(), new Date(), "Behasil Login Ke System"); - messagePublisher.sendDirectNotification(data); - //BroadcastMessage("IKI", ""); - // } - } else { - - mapHeaderMessage.put("X-AUTH-TOKEN", token); - activityPegawaiServiceImpl.record(loginUserVo.getPegawai(), new Date(), "Behasil Login Ke System"); - messagePublisher.sendDirectNotification(data); - //BroadcastMessage("IKI", ""); - } - + Map data = new HashMap<>(); + if (loginUserVo.getPegawai().getJenisPegawai() != null && loginUserVo.getPegawai().getJenisPegawai() + .getId() == Integer.parseInt(GetSettingDataFixed("KdJenisPegawaiDokter"))) + jadwalDokterService.CheckJadwalDokter(new Date(), loginUserVo.getPegawai()); + mapHeaderMessage.put("X-AUTH-TOKEN", token); + activityPegawaiService.record(loginUserVo.getPegawai(), new Date(), "Behasil Login Ke System"); + messagePublisher.sendDirectNotification(data); Integer idPegawai = 0; - if (CommonUtil.isNotNullOrEmpty(loginUserVo.getPegawai())){ + if (CommonUtil.isNotNullOrEmpty(loginUserVo.getPegawai())) idPegawai = loginUserVo.getPegawai().getId(); - } - loggingSystemAsynchronous.saveSignInLog(0, 0, loginUserVo.getNamaUser(), idPegawai); - Map result= new HashMap<>(); - result.put("token", token); - result.put("id", loginUserVo.getId()); - result.put("idPegawai", loginUserVo.getPegawai().getId()); - result.put("name", loginUserVo.getPegawai().getNamaLengkap()); + Map result = new HashMap<>(); + result.put("token", token); + result.put("id", loginUserVo.getId()); + result.put("idPegawai", loginUserVo.getPegawai().getId()); + result.put("name", loginUserVo.getPegawai().getNamaLengkap()); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); } - } catch (Exception ex) { - ex.printStackTrace(); LOGGER.error("Signing-in error {}", ex.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.UNAUTHORIZED); } } + @RequestMapping(value = "/sign-out-mobile", method = RequestMethod.POST) @ResponseBody public ResponseEntity signOutMobile(@RequestBody AuthVO vo, HttpServletResponse httpResponse) { - LoginUserVO loginUserVO = loginUserService.findById(vo.getId()); - LOGGER.info("starting logout {}", loginUserVO.getNamaUser() + " at " + DateUtil.getIndonesianStringDate(new Date())); - - Integer idPegawai = 0; - if (CommonUtil.isNotNullOrEmpty(loginUserVO.getPegawai())){ - idPegawai = loginUserVO.getPegawai().getId(); - } - - loggingSystemAsynchronous.saveSignOutLog(loginUserVO.getNamaUser(), idPegawai); -// GrantedAuthority authority = new SimpleGrantedAuthority("USER"); -// String token = tokenAuthenticationService.addAuthentication(httpResponse, new UserAuthentication( -// new User(loginUserVO.getNamaUser(), loginUserVO.getKataSandi(), Arrays.asList(authority)))); -// mapHeaderMessage.put("X-AUTH-SUPERVISOR-TOKEN", token); - - return RestUtil.getJsonResponse(vo, HttpStatus.OK); - + LOGGER.info("starting logout {}", + loginUserVO.getNamaUser() + " at " + DateUtil.getIndonesianStringDate(new Date())); - // misal call service logout dan seterusnya - // Karena Stateless tidak perlu set " session user " menjadi tidak - // aktif, return HttpStatus.OK ke client - //RestUtil.getJsonHttptatus(HttpStatus.OK); + Integer idPegawai = 0; + if (CommonUtil.isNotNullOrEmpty(loginUserVO.getPegawai())) + idPegawai = loginUserVO.getPegawai().getId(); + loggingSystemAsynchronous.saveSignOutLog(loginUserVO.getNamaUser(), idPegawai); + return RestUtil.getJsonResponse(vo, HttpStatus.OK); } }