保誠-保戶業務員媒合平台
wayne
2021-12-02 bb9e8aad46c1667625b451b8df458a441bfc792f
[update]【todo 131433, 131432】預約單更新與刪除API

修改5個檔案
新增1個檔案
82 ■■■■ 已變更過的檔案
pamapi/src/main/java/com/pollex/pam/domain/Appointment.java 13 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java 12 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java 6 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java 20 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java 9 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java 22 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/domain/Appointment.java
@@ -5,6 +5,7 @@
import javax.persistence.*;
import com.pollex.pam.enums.AppointmentStatusEnum;
import com.pollex.pam.enums.ContactStatusEnum;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@@ -69,6 +70,10 @@
    @Column(name = "consultant_read_time")
    private Instant consultantReadTime;
    @Enumerated(value = EnumType.STRING)
    @Column(name = "status")
    private AppointmentStatusEnum status;
    public Long getId() {
        return id;
@@ -197,4 +202,12 @@
    public void setConsultantReadTime(Instant consultantReadTime) {
        this.consultantReadTime = consultantReadTime;
    }
    public AppointmentStatusEnum getStatus() {
        return status;
    }
    public void setStatus(AppointmentStatusEnum status) {
        this.status = status;
    }
}
pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java
@@ -10,6 +10,7 @@
import javax.persistence.Id;
import javax.persistence.Table;
import com.pollex.pam.enums.AppointmentStatusEnum;
import com.pollex.pam.enums.ContactStatusEnum;
@Entity
@@ -73,6 +74,10 @@
    @Column(name = "name")
    private String name;
    @Enumerated(value = EnumType.STRING)
    @Column(name = "status")
    private AppointmentStatusEnum status;
    public Long getId() {
        return id;
@@ -210,4 +215,11 @@
        this.name = name;
    }
    public AppointmentStatusEnum getStatus() {
        return status;
    }
    public void setStatus(AppointmentStatusEnum status) {
        this.status = status;
    }
}
pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java
比對新檔案
@@ -0,0 +1,6 @@
package com.pollex.pam.enums;
public enum AppointmentStatusEnum {
    AVAILABLE,
    DELETED
}
pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java
@@ -3,6 +3,8 @@
import java.time.Instant;
import java.util.List;
import com.pollex.pam.enums.AppointmentStatusEnum;
import com.pollex.pam.service.dto.AppointmentDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,8 @@
import com.pollex.pam.service.mapper.AppointmentCustomerViewMapper;
import com.pollex.pam.service.mapper.AppointmentDTOMapper;
import com.pollex.pam.web.rest.errors.AppointmentNotFoundException;
import static com.pollex.pam.enums.AppointmentStatusEnum.DELETED;
@Service
@Transactional
@@ -41,7 +45,7 @@
    @Autowired
    AppointmentCustomerViewRepository appointmentCustomerViewRepository;
    @Autowired
    SatisfactionService satisfactionService;
@@ -50,7 +54,7 @@
        appointment.setCustomerId(SecurityUtils.getCustomerDBId());
        appointment.setCommunicateStatus(ContactStatusEnum.RESERVED);
        appointmentRepository.save(appointment);
    }
    public List<Appointment> findByAgentNo(String agentNo) {
@@ -87,4 +91,16 @@
            log.debug("this appointment was read, read time = {}", appointment.getConsultantReadTime());
        }
    }
    public void updateAppointment(AppointmentDTO appointmentDTO) {
        Appointment appointment = appointmentDTOMapper.toAppointment(appointmentDTO);
        appointmentRepository.save(appointment);
    }
    public void markAppointmentDeleted(Long appointmentId) {
        Appointment appointment = appointmentRepository.findById(appointmentId).get();
        appointment.setStatus(DELETED);
        appointmentRepository.save(appointment);
    }
}
pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java
@@ -1,5 +1,6 @@
package com.pollex.pam.service.mapper;
import com.pollex.pam.service.dto.AppointmentDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -9,10 +10,16 @@
@Service
public class AppointmentDTOMapper {
    public Appointment toAppointment(AppointmentCreateDTO source) {
        Appointment target = new Appointment();
        BeanUtils.copyProperties(source, target);
        return target;
    }
    public Appointment toAppointment(AppointmentDTO source) {
        Appointment target = new Appointment();
        BeanUtils.copyProperties(source, target);
        return target;
    }
}
pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java
@@ -1,13 +1,9 @@
package com.pollex.pam.web.rest;
import com.pollex.pam.service.dto.AppointmentDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.pollex.pam.service.AppointmentService;
import com.pollex.pam.service.SatisfactionService;
@@ -20,10 +16,22 @@
    @Autowired
    AppointmentService appointmentService;
    @Autowired
    SatisfactionService satisfactionService;
    @PutMapping("")
    public ResponseEntity<Void> updateAppointment(@RequestBody AppointmentDTO appointment) {
        appointmentService.updateAppointment(appointment);
        return ResponseEntity.noContent().build();
    }
    @DeleteMapping("/{appointmentId}")
    public ResponseEntity<Void> markAppointmentDeleted(@PathVariable Long appointmentId) {
        appointmentService.markAppointmentDeleted(appointmentId);
        return ResponseEntity.noContent().build();
    }
    @PostMapping("/customer/create")
    public void clientCreateAppointment(@RequestBody AppointmentCreateDTO appointmentCreateDTO) {
        appointmentService.customerCreateAppointment(appointmentCreateDTO);