zhuyifan

Merge branch 'feature/order_cancel' into 'master'

Feature/order cancel



See merge request !1
Showing 171 changed files with 83 additions and 24 deletions
...@@ -16,4 +16,6 @@ public class BusinessConfig { ...@@ -16,4 +16,6 @@ public class BusinessConfig {
16 private String clientCustomerQueryUrl; 16 private String clientCustomerQueryUrl;
17 private String payUrl; 17 private String payUrl;
18 private String payClientId; 18 private String payClientId;
19 + private String cancelPayUrl;
20 + private String refundSecurityKey;
19 } 21 }
......
...@@ -7,10 +7,10 @@ import com.infoloop.tianting.intercepter.LoginInterceptor; ...@@ -7,10 +7,10 @@ import com.infoloop.tianting.intercepter.LoginInterceptor;
7 import com.infoloop.tianting.intercepter.RequestMonitor; 7 import com.infoloop.tianting.intercepter.RequestMonitor;
8 import com.infoloop.tianting.intercepter.ResourceInjector; 8 import com.infoloop.tianting.intercepter.ResourceInjector;
9 import com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient; 9 import com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient;
10 +import com.infoloop.tianting.service.client.MeiZhongYiHeServiceClient;
10 import com.infoloop.tianting.service.client.OperatorServiceRpcClient; 11 import com.infoloop.tianting.service.client.OperatorServiceRpcClient;
11 import com.infoloop.tianting.service.client.WOperatorServiceRpcClient; 12 import com.infoloop.tianting.service.client.WOperatorServiceRpcClient;
12 import com.infoloop.tianting.tracing.HttpTracingInterceptor; 13 import com.infoloop.tianting.tracing.HttpTracingInterceptor;
13 -import lombok.RequiredArgsConstructor;
14 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.boot.web.servlet.FilterRegistrationBean; 15 import org.springframework.boot.web.servlet.FilterRegistrationBean;
16 import org.springframework.context.annotation.Bean; 16 import org.springframework.context.annotation.Bean;
...@@ -37,12 +37,13 @@ public class WebMvcConfig implements WebMvcConfigurer { ...@@ -37,12 +37,13 @@ public class WebMvcConfig implements WebMvcConfigurer {
37 final ResourceInjector resourceInjector, 37 final ResourceInjector resourceInjector,
38 final ClientCustomerServiceRpcClient clientCustomerServiceRpcClient, 38 final ClientCustomerServiceRpcClient clientCustomerServiceRpcClient,
39 final OperatorServiceRpcClient operatorServiceRpcClient, 39 final OperatorServiceRpcClient operatorServiceRpcClient,
40 - final WOperatorServiceRpcClient wOperatorServiceRpcClient) { 40 + final WOperatorServiceRpcClient wOperatorServiceRpcClient,
41 + final MeiZhongYiHeServiceClient meiZhongYiHeServiceClient) {
41 this.httpInterceptors = new ArrayList<>(); 42 this.httpInterceptors = new ArrayList<>();
42 this.httpInterceptors.add(new HttpTracingInterceptor(tracing)); 43 this.httpInterceptors.add(new HttpTracingInterceptor(tracing));
43 this.httpInterceptors.add(new RequestMonitor()); 44 this.httpInterceptors.add(new RequestMonitor());
44 this.httpInterceptors.add(new ApiSignInterceptor()); 45 this.httpInterceptors.add(new ApiSignInterceptor());
45 - this.httpInterceptors.add(new LoginInterceptor(clientCustomerServiceRpcClient, operatorServiceRpcClient, wOperatorServiceRpcClient)); 46 + this.httpInterceptors.add(new LoginInterceptor(clientCustomerServiceRpcClient, meiZhongYiHeServiceClient, operatorServiceRpcClient, wOperatorServiceRpcClient));
46 this.httpInterceptors.add(resourceInjector); 47 this.httpInterceptors.add(resourceInjector);
47 48
48 } 49 }
......
...@@ -35,4 +35,11 @@ public class ClientOrderController { ...@@ -35,4 +35,11 @@ public class ClientOrderController {
35 return orderService.getOrdersByPagination(queryOrderDto); 35 return orderService.getOrdersByPagination(queryOrderDto);
36 } 36 }
37 37
38 + @ApiOperation(value = "院区端已撤销订单")
39 + @PostMapping("/client/orders/refund/pagination")
40 + @ResponseStatus(HttpStatus.OK)
41 + public OrderPageResult<OrderDto> getRefundOrderByByPagination(@Valid @RequestBody OrderDbDTO.QueryRefundOrderByPaginationDto queryOrderDto) {
42 + return orderService.getRefundOrdersByPagination(queryOrderDto);
43 + }
44 +
38 } 45 }
......
1 package com.infoloop.tianting.controller; 1 package com.infoloop.tianting.controller;
2 2
3 import com.github.xiaoymin.knife4j.annotations.ApiSupport; 3 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
4 -import com.infoloop.tianting.model.dto.ClientLabelDTO;
5 -import com.infoloop.tianting.model.dto.ClientLabelDTO.LabelDto;
6 import com.infoloop.tianting.model.dto.KdsDTO; 4 import com.infoloop.tianting.model.dto.KdsDTO;
7 import com.infoloop.tianting.model.dto.KdsDTO.KdsMealDetailDto; 5 import com.infoloop.tianting.model.dto.KdsDTO.KdsMealDetailDto;
8 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto; 6 import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderLocationDto;
...@@ -10,8 +8,6 @@ import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto; ...@@ -10,8 +8,6 @@ import com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto;
10 import com.infoloop.tianting.service.KdsService; 8 import com.infoloop.tianting.service.KdsService;
11 import io.swagger.annotations.Api; 9 import io.swagger.annotations.Api;
12 import io.swagger.annotations.ApiOperation; 10 import io.swagger.annotations.ApiOperation;
13 -import java.util.List;
14 -import javax.validation.Valid;
15 import lombok.RequiredArgsConstructor; 11 import lombok.RequiredArgsConstructor;
16 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
17 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
...@@ -22,6 +18,9 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -22,6 +18,9 @@ import org.springframework.web.bind.annotation.RequestBody;
22 import org.springframework.web.bind.annotation.ResponseStatus; 18 import org.springframework.web.bind.annotation.ResponseStatus;
23 import org.springframework.web.bind.annotation.RestController; 19 import org.springframework.web.bind.annotation.RestController;
24 20
21 +import javax.validation.Valid;
22 +import java.util.List;
23 +
25 @Api(tags = "KDS") 24 @Api(tags = "KDS")
26 @ApiSupport(order = -1) 25 @ApiSupport(order = -1)
27 @Slf4j 26 @Slf4j
......
...@@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor; ...@@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
12 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
13 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
14 import org.springframework.http.HttpStatus; 14 import org.springframework.http.HttpStatus;
15 +import org.springframework.http.MediaType;
15 import org.springframework.validation.annotation.Validated; 16 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.PathVariable; 17 import org.springframework.web.bind.annotation.PathVariable;
17 import org.springframework.web.bind.annotation.PostMapping; 18 import org.springframework.web.bind.annotation.PostMapping;
...@@ -53,4 +54,10 @@ public class PayController { ...@@ -53,4 +54,10 @@ public class PayController {
53 return payServiceClient.callback(paymentCallbackDTO); 54 return payServiceClient.callback(paymentCallbackDTO);
54 } 55 }
55 56
57 + @ApiOperation(value = "支付撤销")
58 + @PostMapping(value = "/pay/refund", produces = MediaType.TEXT_HTML_VALUE)
59 + @ResponseStatus(HttpStatus.OK)
60 + public String cancel(@Valid @RequestBody PayDTO.PayRefundRequestDto payRefundRequestDto) {
61 + return payServiceClient.orderPayRefund(payRefundRequestDto);
62 + }
56 } 63 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -34,7 +34,15 @@ public enum ErrorCodeEnum implements BaseEnum { ...@@ -34,7 +34,15 @@ public enum ErrorCodeEnum implements BaseEnum {
34 34
35 SKUS_STOCK_NO_ENOUGH_TODAY(406000008, "下单菜品: {0} 库存不足"), 35 SKUS_STOCK_NO_ENOUGH_TODAY(406000008, "下单菜品: {0} 库存不足"),
36 36
37 - ORDER_CANCEL(406000009, "订单已自动取消") 37 + ORDER_CANCEL(406000009, "订单已自动取消"),
38 +
39 + ORDER_PAY_REFUND_FAILED(406000010, "支付撤销失败"),
40 +
41 + ORDER_NOT_FOUND(406000011, "订单未找到"),
42 +
43 + ORDER_NOT_ONLINE_PAY(406000012, "该订单不是在线支付"),
44 +
45 + ORDER_NOT_SUCCESS(406000013, "该订单未支付成功")
38 ; 46 ;
39 private final int code; 47 private final int code;
40 48
......
...@@ -4,12 +4,13 @@ import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordH ...@@ -4,12 +4,13 @@ import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordH
4 import com.infoloop.tianting.clientcustomerservice.ClientCustomerSexEnum; 4 import com.infoloop.tianting.clientcustomerservice.ClientCustomerSexEnum;
5 import com.infoloop.tianting.model.dto.MenuDbDTO.MenuDto; 5 import com.infoloop.tianting.model.dto.MenuDbDTO.MenuDto;
6 import io.swagger.annotations.ApiModel; 6 import io.swagger.annotations.ApiModel;
7 -import java.util.List;
8 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
9 import lombok.Builder; 8 import lombok.Builder;
10 import lombok.Data; 9 import lombok.Data;
11 import lombok.NoArgsConstructor; 10 import lombok.NoArgsConstructor;
12 11
12 +import java.util.List;
13 +
13 @Data 14 @Data
14 @ApiModel(description = "ClientCustomerDTO") 15 @ApiModel(description = "ClientCustomerDTO")
15 public class ClientCustomerDbDTO { 16 public class ClientCustomerDbDTO {
......
...@@ -5,12 +5,12 @@ import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum; ...@@ -5,12 +5,12 @@ import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
5 import com.infoloop.tianting.deliveryruleservice.ClientDishLabelStatusEnum; 5 import com.infoloop.tianting.deliveryruleservice.ClientDishLabelStatusEnum;
6 import com.infoloop.tianting.deliveryruleservice.ClientLabelTypeEnum; 6 import com.infoloop.tianting.deliveryruleservice.ClientLabelTypeEnum;
7 import io.swagger.annotations.ApiModel; 7 import io.swagger.annotations.ApiModel;
8 -import io.swagger.models.auth.In;
9 -import java.util.List;
10 import lombok.Builder; 8 import lombok.Builder;
11 import lombok.Data; 9 import lombok.Data;
12 import lombok.ToString; 10 import lombok.ToString;
13 11
12 +import java.util.List;
13 +
14 @Data 14 @Data
15 @ApiModel(description = "标签DTO") 15 @ApiModel(description = "标签DTO")
16 public class ClientLabelDTO { 16 public class ClientLabelDTO {
......
...@@ -3,11 +3,11 @@ package com.infoloop.tianting.model.dto; ...@@ -3,11 +3,11 @@ package com.infoloop.tianting.model.dto;
3 import com.infoloop.tianting.clientinventoryservice.ClientType; 3 import com.infoloop.tianting.clientinventoryservice.ClientType;
4 import com.infoloop.tianting.clientinventoryservice.CustomerSource; 4 import com.infoloop.tianting.clientinventoryservice.CustomerSource;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 -import io.swagger.models.auth.In;
7 -import java.util.List;
8 import lombok.Builder; 6 import lombok.Builder;
9 import lombok.Data; 7 import lombok.Data;
10 8
9 +import java.util.List;
10 +
11 @Data 11 @Data
12 @ApiModel(description = "院区DTO") 12 @ApiModel(description = "院区DTO")
13 public class InventoryDbDTO { 13 public class InventoryDbDTO {
......
...@@ -6,13 +6,13 @@ import com.infoloop.tianting.model.dto.InventoryDbDTO.ClientDto; ...@@ -6,13 +6,13 @@ import com.infoloop.tianting.model.dto.InventoryDbDTO.ClientDto;
6 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerDetailDto; 6 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerDetailDto;
7 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice; 7 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice;
8 import io.swagger.annotations.ApiModel; 8 import io.swagger.annotations.ApiModel;
9 -import io.swagger.models.auth.In;
10 -import java.util.List;
11 import lombok.AllArgsConstructor; 9 import lombok.AllArgsConstructor;
12 import lombok.Builder; 10 import lombok.Builder;
13 import lombok.Data; 11 import lombok.Data;
14 import lombok.NoArgsConstructor; 12 import lombok.NoArgsConstructor;
15 13
14 +import java.util.List;
15 +
16 @Data 16 @Data
17 @ApiModel(description = "kds DTO") 17 @ApiModel(description = "kds DTO")
18 public class KdsDTO { 18 public class KdsDTO {
......
...@@ -2,11 +2,12 @@ package com.infoloop.tianting.model.dto; ...@@ -2,11 +2,12 @@ package com.infoloop.tianting.model.dto;
2 2
3 import com.infoloop.tianting.setmealscheduleservice.MealStatus; 3 import com.infoloop.tianting.setmealscheduleservice.MealStatus;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
5 -import java.util.List;
6 import lombok.Builder; 5 import lombok.Builder;
7 import lombok.Data; 6 import lombok.Data;
8 import lombok.ToString; 7 import lombok.ToString;
9 8
9 +import java.util.List;
10 +
10 @Data 11 @Data
11 @ApiModel(description = "餐别相关DTO") 12 @ApiModel(description = "餐别相关DTO")
12 public class MealDbDTO { 13 public class MealDbDTO {
......
...@@ -2,14 +2,13 @@ package com.infoloop.tianting.model.dto; ...@@ -2,14 +2,13 @@ package com.infoloop.tianting.model.dto;
2 2
3 import com.infoloop.tianting.clientcustomerorderservice.OrderOperationType; 3 import com.infoloop.tianting.clientcustomerorderservice.OrderOperationType;
4 import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum; 4 import com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum;
5 -import com.infoloop.tianting.model.dto.MenuDbDTO.DishRuleJson;
6 -import com.infoloop.tianting.model.dto.MenuDbDTO.OrderRuleJson;
7 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
8 -import java.util.List;
9 import lombok.Builder; 6 import lombok.Builder;
10 import lombok.Data; 7 import lombok.Data;
11 import lombok.ToString; 8 import lombok.ToString;
12 9
10 +import java.util.List;
11 +
13 @Data 12 @Data
14 @ApiModel(description = "操作记录DTO") 13 @ApiModel(description = "操作记录DTO")
15 public class OperationDTO { 14 public class OperationDTO {
......
...@@ -64,6 +64,17 @@ public class OrderDbDTO { ...@@ -64,6 +64,17 @@ public class OrderDbDTO {
64 } 64 }
65 65
66 @Data 66 @Data
67 + @ApiModel(description = "查询已撤销订单Dto")
68 + public static class QueryRefundOrderByPaginationDto {
69 + private Integer enterpriseId;
70 + private Integer clientId;
71 + private Integer pn;
72 + private Integer pz;
73 + private String keyword;
74 + private List<Integer> stallIds;
75 + }
76 +
77 + @Data
67 @Builder 78 @Builder
68 @ApiModel(description = "订单不同状态的数量Dto") 79 @ApiModel(description = "订单不同状态的数量Dto")
69 public static class OrderCountByStatusDto { 80 public static class OrderCountByStatusDto {
...@@ -72,6 +83,7 @@ public class OrderDbDTO { ...@@ -72,6 +83,7 @@ public class OrderDbDTO {
72 private Integer preparingCount; 83 private Integer preparingCount;
73 private Integer allServedCount; 84 private Integer allServedCount;
74 private Integer canceledCount; 85 private Integer canceledCount;
86 + private Integer refundCount;
75 } 87 }
76 88
77 @Data 89 @Data
...@@ -395,7 +407,7 @@ public class OrderDbDTO { ...@@ -395,7 +407,7 @@ public class OrderDbDTO {
395 @ApiModelProperty(value = "支付时间") 407 @ApiModelProperty(value = "支付时间")
396 private String payTime; 408 private String payTime;
397 409
398 - @ApiModelProperty(value = "支付状态,1=待支付,2=支付中,3=支付成功,4=支付失败,5=支付取消") 410 + @ApiModelProperty(value = "支付状态,1=待支付,2=支付中,3=支付成功,4=支付失败,5=支付取消, 6=支付已撤销")
399 private Integer payStatus; 411 private Integer payStatus;
400 412
401 @ApiModelProperty(value = "支付失败原因") 413 @ApiModelProperty(value = "支付失败原因")
...@@ -455,12 +467,18 @@ public class OrderDbDTO { ...@@ -455,12 +467,18 @@ public class OrderDbDTO {
455 @ApiModelProperty(value = "是否已读") 467 @ApiModelProperty(value = "是否已读")
456 private Boolean isRead; 468 private Boolean isRead;
457 469
470 + @ApiModelProperty(value = "是否已撤销")
471 + private Boolean isCanceled;
472 +
458 @ApiModelProperty(value = "截单类型") 473 @ApiModelProperty(value = "截单类型")
459 private Integer closeTimeType; 474 private Integer closeTimeType;
460 475
461 @ApiModelProperty(value = "订单所属用户的信息") 476 @ApiModelProperty(value = "订单所属用户的信息")
462 private CustomerDetailDto customer; 477 private CustomerDetailDto customer;
463 478
479 + @ApiModelProperty(value = "该订单的忌口冲突、医嘱信息")
480 + private List<String> orderNotice;
481 +
464 // @ApiModelProperty(value = "订单菜品详情列表") 482 // @ApiModelProperty(value = "订单菜品详情列表")
465 // private List<OrderDetailDto> orderDetailDtos; 483 // private List<OrderDetailDto> orderDetailDtos;
466 } 484 }
......
...@@ -26,6 +26,15 @@ public class PayDTO { ...@@ -26,6 +26,15 @@ public class PayDTO {
26 } 26 }
27 27
28 @Data 28 @Data
29 + @ApiModel(description = "支付撤销请求dto")
30 + @NoArgsConstructor
31 + @AllArgsConstructor
32 + public static class PayRefundRequestDto {
33 + private Integer orderId;
34 + private String hospitalCode;
35 + }
36 +
37 + @Data
29 @ApiModel(description = "支付MiniPay结果") 38 @ApiModel(description = "支付MiniPay结果")
30 @NoArgsConstructor 39 @NoArgsConstructor
31 @AllArgsConstructor 40 @AllArgsConstructor
...@@ -76,6 +85,15 @@ public class PayDTO { ...@@ -76,6 +85,15 @@ public class PayDTO {
76 } 85 }
77 86
78 @Data 87 @Data
88 + @ApiModel(description = "取消支付响应")
89 + @NoArgsConstructor
90 + @AllArgsConstructor
91 + public static class CancelPayResponseDto {
92 + private Integer code;
93 + private String message;
94 + }
95 +
96 + @Data
79 @Builder 97 @Builder
80 @ApiModel(description = "第三方支付平台通知请求dto") 98 @ApiModel(description = "第三方支付平台通知请求dto")
81 @NoArgsConstructor 99 @NoArgsConstructor
......
...@@ -2,13 +2,13 @@ package com.infoloop.tianting.model.dto; ...@@ -2,13 +2,13 @@ package com.infoloop.tianting.model.dto;
2 2
3 import com.infoloop.tianting.enums.SettlementDimensionEnum; 3 import com.infoloop.tianting.enums.SettlementDimensionEnum;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
5 -import java.util.ArrayList;
6 -import java.util.Map;
7 import lombok.Builder; 5 import lombok.Builder;
8 import lombok.Data; 6 import lombok.Data;
9 7
10 import java.time.LocalDateTime; 8 import java.time.LocalDateTime;
9 +import java.util.ArrayList;
11 import java.util.List; 10 import java.util.List;
11 +import java.util.Map;
12 12
13 @Data 13 @Data
14 @ApiModel(description = "统计DTO") 14 @ApiModel(description = "统计DTO")
......
1 package com.infoloop.tianting.model.dto; 1 package com.infoloop.tianting.model.dto;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 -import io.swagger.annotations.ApiModelProperty;
5 -import io.swagger.models.auth.In;
6 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
7 import lombok.Builder; 5 import lombok.Builder;
8 import lombok.Data; 6 import lombok.Data;
......
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.