diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java index 7f82bed87..b12ad693b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxCouponOrderReservation; import com.iformall.domain.po.base.BaseEntity; +import com.iformall.enums.EnumCouponOrderReservationStatus; import com.iformall.service.WxCouponOrderReservationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -60,6 +61,16 @@ public class WxCouponOrderReservationController extends BaseController { if(reservation.getId() == null || reservation.getStatus() == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } + if(EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(reservation.getStatus())){ + WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortByCouponOrder(reservation.getId(), getTenantInfo().getTenantId()); + if(sortReservation == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error"); + } + if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(sortReservation.getStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持派单"); + } + } + WxCouponOrderReservation updReservation = new WxCouponOrderReservation(); updReservation.updateTenantInfo(getTenantInfo()); updReservation.setId(reservation.getId()); diff --git a/mallinkAdmin/src/main/resources/db/migration/V2023060500002_wx_coupon_order_reservation.sql b/mallinkAdmin/src/main/resources/db/migration/V2023060500002_wx_coupon_order_reservation.sql index 82680bd14..f4f8271c8 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V2023060500002_wx_coupon_order_reservation.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V2023060500002_wx_coupon_order_reservation.sql @@ -25,7 +25,7 @@ CREATE TABLE `wx_coupon_order_reservation` ( `merchant_id` bigint(20) DEFAULT NULL, `create_date` datetime(0) DEFAULT CURRENT_TIMESTAMP, `update_date` datetime(0) DEFAULT CURRENT_TIMESTAMP, - `is_del` smallint(1) NOT NULL, + `is_del` smallint(1) NOT NULL DEFAULT 0, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `id_UNIQUE`(`id`) USING BTREE, UNIQUE INDEX `coupon_order_id`(`coupon_order_id`) USING BTREE diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java index d2fb6564b..bb7c56866 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java @@ -14,6 +14,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/api/wxCouponOrderReservation") @Api(description = "查询预约接口") @@ -60,7 +62,8 @@ public class WxCouponOrderReservationController extends BaseController { @ApiImplicitParams({ }) public ResultData saveOrUpdate(@RequestBody WxCouponOrderReservation reservation) { - + reservation.updateTenantInfo(getTenantInfo()); + reservation.setcUserId(getMemberId()); if(reservation.getId() == null){ if(reservation.getStartDate() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"startDate is null"); @@ -68,12 +71,22 @@ public class WxCouponOrderReservationController extends BaseController { if(reservation.getEndDate() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"endDate is null"); } + }else{ + WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortByCouponOrder(reservation.getId(), reservation.getTenantId()); + if(sortReservation == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error"); + } + if(EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单进行中"); + } + if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成"); + } } if(reservation.getCouponOrderId() == null){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"couponOrderId is null"); } - reservation.updateTenantInfo(getTenantInfo()); - reservation.setcUserId(getMemberId()); + return wxCouponOrderReservationService.saveOrUpdate(reservation); } @@ -87,6 +100,17 @@ public class WxCouponOrderReservationController extends BaseController { if(reservation.getId() == null) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } + WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortByCouponOrder(reservation.getId(), reservation.getTenantId()); + if(sortReservation == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error"); + } + if(EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单进行中"); + } + if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成"); + } + WxCouponOrderReservation updReservation = new WxCouponOrderReservation(); updReservation.updateTenantInfo(getTenantInfo()); updReservation.setId(reservation.getId()); diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java index a1e68529c..07ed7f741 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java @@ -1,11 +1,14 @@ package com.iformall.enums; +import java.util.ArrayList; +import java.util.List; + /** * Created by Stormeye on 2018/08/09. */ public enum EnumCouponOrderReservationStatus { - // 0-可投放;1-已作废; + // reservation(0, "预约"), reservation_user_cancellation(1, "用户取消"), reservation_expire_cancellation(2, "过期取消"), @@ -13,9 +16,9 @@ public enum EnumCouponOrderReservationStatus { reservation_refuse_cancellation(4, "拒绝服务"), reservation_dispatch(5, "已派单"), reservation_refuse_dispatch(6, "派单被拒绝"), - reservation_accept_cancellation(7, "派单已接受"), - reservation_finish_cancellation(8, "服务已完成"), - reservation_evaluate_cancellation(9, "服务已评价"), + reservation_accept_dispatch(7, "派单已接受"), + reservation_finish(8, "服务已完成"), + reservation_evaluate(9, "服务已评价"), ; public static EnumCouponOrderReservationStatus getEnum(Integer code) { @@ -42,4 +45,18 @@ public enum EnumCouponOrderReservationStatus { public String getMessage() { return message; } + + public static List getReservationIng(){ + List list = new ArrayList<>(); + list.add(reservation_dispatch.code); + list.add(reservation_accept_dispatch.code); + return list; + } + + public static List getReservationFinish(){ + List list = new ArrayList<>(); + list.add(reservation_finish.code); + list.add(reservation_evaluate.code); + return list; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderReservationService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderReservationService.java index a74affdfc..122cf5d8b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderReservationService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderReservationService.java @@ -25,6 +25,9 @@ public interface WxCouponOrderReservationService { * @return */ WxCouponOrderReservation getById(Long id,String tenantId); + + + WxCouponOrderReservation getSortByCouponOrder(Long id,String tenantId); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java index 42a41f4d2..9375b0587 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java @@ -43,6 +43,11 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva return wxCouponOrderReservationMapper.selectById(id,tenantId); } + @Override + public WxCouponOrderReservation getSortByCouponOrder(Long id, String tenantId) { + return wxCouponOrderReservationMapper.getSortByCouponOrder(id,tenantId); + } + @Override public ResultData saveOrUpdate(WxCouponOrderReservation record) { if(record.getCouponOrderId() != null){ @@ -132,7 +137,7 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva WxCouponOrderReservation updReservation = new WxCouponOrderReservation(); updReservation.setId(id); updReservation.updateTenantInfo(couponOrder); - updReservation.setStatus(EnumCouponOrderReservationStatus.reservation_finish_cancellation.getCode()); + updReservation.setStatus(EnumCouponOrderReservationStatus.reservation_finish.getCode()); if(couponOrder.getBUserId() != null && couponOrder.getBMerchantId() != 0){ updReservation.setBuserId(couponOrder.getBMerchantId()); }