From d1d96b32a52b802968300f3d34abbecad58f31f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BA=AA=E5=AF=92?= <2533659732@qq.com> Date: Fri, 27 Oct 2023 16:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=A7=BB=E6=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NurseAppLoginController.java | 25 +++++++++++++---- .../nurseapplogin/NurseAppLoginMapper.java | 9 +++++++ .../nurseapplogin/NurseAppLoginService.java | 9 +++++++ .../impl/NurseAppLoginServiceImpl.java | 27 +++++++++++++++++++ .../nurseapplogin/NurseAppLoginMapper.xml | 17 ++++++++++++ 5 files changed, 82 insertions(+), 5 deletions(-) diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java index 8f4b3bb..8f92a18 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/nurseapplogin/NurseAppLoginController.java @@ -1,6 +1,5 @@ package com.xinelu.applet.controller.nurseapplogin; -import com.xinelu.applet.dto.appletlogin.AppletUserInfoDTO; import com.xinelu.applet.dto.appletlogin.StationItemInfoDTO; import com.xinelu.applet.service.nurseapplogin.NurseAppLoginService; import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO; @@ -8,14 +7,14 @@ import com.xinelu.common.annotation.MobileRequestAuthorization; import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; -import com.xinelu.common.custominterface.Insert; import com.xinelu.common.custominterface.Query; import com.xinelu.common.exception.ServiceException; -import com.xinelu.common.utils.regex.RegexUtil; -import org.apache.commons.lang3.StringUtils; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @@ -113,4 +112,20 @@ public class NurseAppLoginController extends BaseController { List appointmentOrderDetails = nurseAppLoginService.selectAppServiceOrderItem(patientId, orderStatus); return getDataTable(appointmentOrderDetails); } + + /** + * 小程序取消订单 + * + * @param appointmentOrderId 预约订单id主键 + * @param cancelAppointmentReason 取消预约原因 + * @return 结果 + */ + @MobileRequestAuthorization + @PostMapping("/cancellationOrder") + public AjaxResult updateAppointmentOrder(Long appointmentOrderId, String cancelAppointmentReason) { + if (Objects.isNull(appointmentOrderId)) { + return AjaxResult.error("预约订单信息不能为空!"); + } + return nurseAppLoginService.updateAppointmentOrder(appointmentOrderId, cancelAppointmentReason); + } } \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java index 9697544..b3b6897 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nurseapplogin/NurseAppLoginMapper.java @@ -3,6 +3,7 @@ package com.xinelu.applet.mapper.nurseapplogin; import com.xinelu.applet.vo.nurseapplogin.PatientAndDiseaseVO; import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO; +import com.xinelu.manage.domain.appointmentorder.AppointmentOrder; import com.xinelu.manage.domain.goodsOrder.GoodsOrder; import org.apache.ibatis.annotations.Param; @@ -71,4 +72,12 @@ public interface NurseAppLoginMapper { * @return GoodsOrder */ List selectGoodsOrderListByPatient(Long patientId); + + /** + * 预约取消 + * + * @param appointmentOrder 订单信息 + * @return 结果 + */ + int updateAppointmentByOrderId(AppointmentOrder appointmentOrder); } diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java index 7d51962..19bba40 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/NurseAppLoginService.java @@ -54,4 +54,13 @@ public interface NurseAppLoginService { * @return 结果 */ List selectAppServiceOrderItem(Long patientId, String orderStatus); + + /** + * 小程序取消订单 + * + * @param appointmentOrderId 预约订单id主键 + * @param cancelAppointmentReason 取消预约原因 + * @return 结果 + */ + AjaxResult updateAppointmentOrder(Long appointmentOrderId, String cancelAppointmentReason); } diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java index 2e16a6e..d6511b6 100644 --- a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/nurseapplogin/impl/NurseAppLoginServiceImpl.java @@ -13,8 +13,12 @@ import com.xinelu.applet.vo.nursepersonapplogin.OrderAndItemVO; import com.xinelu.applet.vo.specialdisease.WeekDaysVO; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.enums.AppointmentTimeIntervalEnum; +import com.xinelu.common.enums.ConfirmRefundStatusEnum; import com.xinelu.common.enums.GooodsOrderStatusEnum; +import com.xinelu.common.enums.OrderStatusEnum; +import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.AgeUtil; +import com.xinelu.manage.domain.appointmentorder.AppointmentOrder; import com.xinelu.manage.domain.goodsOrder.GoodsOrder; import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; import com.xinelu.manage.mapper.sysarea.SysAreaMapper; @@ -29,6 +33,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.time.LocalTime; import java.util.*; import java.util.stream.Collectors; @@ -227,4 +232,26 @@ public class NurseAppLoginServiceImpl implements NurseAppLoginService { } return nurseAppLoginMapper.selectAppointmentOrderDetailsByPatientId(patientId, orderStatus); } + + /** + * 小程序取消订单 + * + * @param appointmentOrderId 预约订单编号 + * @param cancelAppointmentReason 取消预约原因 + * @return 结果 + */ + @Override + public AjaxResult updateAppointmentOrder(Long appointmentOrderId, String cancelAppointmentReason) { + AppointmentOrder appointmentOrder = new AppointmentOrder(); + appointmentOrder.setUpdateTime(LocalDateTime.now()); + appointmentOrder.setId(appointmentOrderId); + appointmentOrder.setCancelAppointmentReason(cancelAppointmentReason); + appointmentOrder.setConfirmRefundStatus(ConfirmRefundStatusEnum.NOT_CONFIRM.getInfo()); + appointmentOrder.setOrderStatus(OrderStatusEnum.WAIT_REFUND.getInfo()); + int update = nurseAppLoginMapper.updateAppointmentByOrderId(appointmentOrder); + if (update <= 0) { + throw new ServiceException("取消订单失败,请联系管理员!"); + } + return AjaxResult.success(); + } } \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml index 3b6c73d..944cd69 100644 --- a/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/nurseapplogin/NurseAppLoginMapper.xml @@ -155,4 +155,21 @@ + + + UPDATE appointment_order a, + appointment_order_details b + SET a.order_status = #{orderStatus}, + a.cancel_appointment_reason = #{cancelAppointmentReason}, + a.confirm_refund_status = #{confirmRefundStatus}, + b.order_status = #{orderStatus}, + a.update_time = now(), + b.update_time = now() + WHERE + a.order_no = b.order_no + AND a.del_flag = 0 + AND a.order_status <> #{orderStatus} + AND b.order_status <> #{orderStatus} + AND a.id = #{id} +