wangyingyang
Committed by zhuyifan

add order cancel

......@@ -16,4 +16,5 @@ public class BusinessConfig {
private String clientCustomerQueryUrl;
private String payUrl;
private String payClientId;
private String cancelPayUrl;
}
......
......@@ -35,4 +35,11 @@ public class ClientOrderController {
return orderService.getOrdersByPagination(queryOrderDto);
}
@ApiOperation(value = "院区端已撤销订单")
@PostMapping("/client/orders/canceled/pagination")
@ResponseStatus(HttpStatus.OK)
public OrderPageResult<OrderDto> getCanceledOrderByByPagination(@Valid @RequestBody OrderDbDTO.QueryCanceledOrderByPaginationDto queryOrderDto) {
return orderService.getCanceledOrdersByPagination(queryOrderDto);
}
}
......
......@@ -53,4 +53,11 @@ public class PayController {
return payServiceClient.callback(paymentCallbackDTO);
}
@SaIgnore
@ApiOperation(value = "支付撤销")
@PostMapping(value = "/pay/cancel")
@ResponseStatus(HttpStatus.OK)
public boolean cancel(@Valid @RequestBody PayDTO.PayCancelRequestDto payCancelRequestDto) {
return payServiceClient.cancelOrder(payCancelRequestDto);
}
}
\ No newline at end of file
......
......@@ -64,6 +64,17 @@ public class OrderDbDTO {
}
@Data
@ApiModel(description = "查询已撤销订单Dto")
public static class QueryCanceledOrderByPaginationDto {
private Integer enterpriseId;
private Integer clientId;
private Integer pn;
private Integer pz;
private String keyword;
private List<Integer> stallIds;
}
@Data
@Builder
@ApiModel(description = "订单不同状态的数量Dto")
public static class OrderCountByStatusDto {
......@@ -455,12 +466,18 @@ public class OrderDbDTO {
@ApiModelProperty(value = "是否已读")
private Boolean isRead;
@ApiModelProperty(value = "是否已撤销")
private Boolean isCanceled;
@ApiModelProperty(value = "截单类型")
private Integer closeTimeType;
@ApiModelProperty(value = "订单所属用户的信息")
private CustomerDetailDto customer;
@ApiModelProperty(value = "该订单的忌口冲突、医嘱信息")
private List<String> orderNotice;
// @ApiModelProperty(value = "订单菜品详情列表")
// private List<OrderDetailDto> orderDetailDtos;
}
......
......@@ -26,6 +26,17 @@ public class PayDTO {
}
@Data
@ApiModel(description = "支付请求dto")
@NoArgsConstructor
@AllArgsConstructor
public static class PayCancelRequestDto {
// private String clientId;
private Integer orderId;
private String hospitalCode;
// private String price;
}
@Data
@ApiModel(description = "支付MiniPay结果")
@NoArgsConstructor
@AllArgsConstructor
......@@ -76,6 +87,15 @@ public class PayDTO {
}
@Data
@ApiModel(description = "取消支付响应")
@NoArgsConstructor
@AllArgsConstructor
public static class CancelPayResponseDto {
private Integer code;
private String message;
}
@Data
@Builder
@ApiModel(description = "第三方支付平台通知请求dto")
@NoArgsConstructor
......
......@@ -9,6 +9,7 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.QueryCanceledOrderByPaginationDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.UpdateOrderDto;
......@@ -21,6 +22,8 @@ public interface OrderService {
OrderAndDetailsDto getOrdersByCustomerId(Integer customerId);
OrderAndDetailsDto getOrdersByCondition(QueryOrderByConditionDto queryOrderDto);
OrderPageResult<OrderDto> getOrdersByPagination(QueryOrderByPaginationDto queryOrderDto);
OrderPageResult<OrderDto> getCanceledOrdersByPagination(
QueryCanceledOrderByPaginationDto queryOrderDto);
List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId);
CreateOrderResponse createOrder(CreateOrderDto createOrderDto);
CreateOrderResponse orderCreation(OperatorCreateOrderDto createOrderDto);
......
......@@ -64,6 +64,7 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.MealDetailDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailOperationDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.QueryCanceledOrderByPaginationDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto;
import com.infoloop.tianting.model.dto.OrderDbDTO.UpdateOrderDto;
......@@ -461,6 +462,8 @@ public class OrderServiceRpcClient {
.setKeyword(queryOrderDto.getKeyword() == null ? "" : queryOrderDto.getKeyword())
.setPageNo(queryOrderDto.getPn())
.setPageSize(queryOrderDto.getPz())
.setShouldFilterStatus(true)
.setShouldFilterIsCanceled(false)
.setStatus(queryOrderDto.getStatus())
.setEnterpriseId(queryOrderDto.getEnterpriseId())
.setClientId(queryOrderDto.getClientId())
......@@ -469,6 +472,22 @@ public class OrderServiceRpcClient {
return orderServiceRpcBlockingStub.queryClientCustomerOrdersByPagination(request);
}
public QueryClientCustomerOrdersByPaginationRpcResponse queryCanceledClientCustomerOrdersByPagination(
QueryCanceledOrderByPaginationDto queryOrderDto) {
final var request = QueryClientCustomerOrdersByPaginationRpcRequest.newBuilder()
.setKeyword(queryOrderDto.getKeyword() == null ? "" : queryOrderDto.getKeyword())
.setPageNo(queryOrderDto.getPn())
.setPageSize(queryOrderDto.getPz())
.setShouldFilterStatus(false)
.setShouldFilterIsCanceled(true)
.setIsCanceled(true)
.setEnterpriseId(queryOrderDto.getEnterpriseId())
.setClientId(queryOrderDto.getClientId())
.addAllStallIds(queryOrderDto.getStallIds())
.build();
return orderServiceRpcBlockingStub.queryClientCustomerOrdersByPagination(request);
}
public List<SingleClientCustomerOrderDetailRpcResponse> getOrderDetailsByOrderId(Integer orderId) {
return orderServiceRpcBlockingStub.getClientCustomerOrderDetailsByOrderIds(
GetClientCustomerOrderDetailsByOrderIdsRpcRequest.newBuilder()
......
......@@ -158,4 +158,8 @@ public final class DateUtil extends DateUtils {
return Instant.ofEpochMilli(timestamp).atZone(CHINA_ZONE).toLocalDate();
}
public static LocalDateTime toLocalDateTime(long timestamp) {
return Instant.ofEpochMilli(timestamp).atZone(CHINA_ZONE).toLocalDateTime();
}
}
\ No newline at end of file
......
......@@ -139,6 +139,7 @@ message SingleClientCustomerOrderRpcResponse {
bool isConfirm = 34;
bool isAllocation = 35;
string syncRoomNo = 36;
bool isCanceled = 37;
}
message GetClientCustomerOrderByIdRpcRequest {
......@@ -173,12 +174,15 @@ message GetClientCustomerOrdersByCustomerIdRpcResponse {
message QueryClientCustomerOrdersByPaginationRpcRequest {
string keyword = 1;
OrderStatusEnum status = 2;
int32 clientId = 3;
int32 enterpriseId = 4;
int32 pageNo = 5;
int32 pageSize = 6;
repeated int32 stallIds = 7;
bool shouldFilterStatus = 2;
OrderStatusEnum status = 3;
int32 clientId = 4;
int32 enterpriseId = 5;
int32 pageNo = 6;
int32 pageSize = 7;
repeated int32 stallIds = 8;
bool shouldFilterIsCanceled = 9;
bool isCanceled = 10;
}
message OrderCountByStatus {
......@@ -246,6 +250,8 @@ message QueryClientCustomerOrdersByConditionRpcRequest {
bool isAllocation = 47;
bool shouldFilterStatues = 48;
repeated OrderStatusEnum statues = 49;
bool shouldFilterIsCanceled = 50;
bool isCanceled = 51;
}
message QueryClientCustomerOrdersByConditionRpcResponse {
......@@ -375,6 +381,8 @@ message ClientCustomerOrderModification {
bool isAllocation = 53;
bool shouldUpdateSyncRoomNo = 54;
string syncRoomNo = 55;
bool shouldUpdateIsCanceled = 56;
bool isCanceled = 57;
}
message UpdateClientCustomerOrderRpcRequest {
......
......@@ -80,6 +80,7 @@ business-config.hisCustomerQueryUrl = https://nutri.amcare.com.cn/v3/hiscustomer
business-config.clientCustomerQueryUrl = https://nutri.amcare.com.cn/v3/clientcustomers/current/query
business-config.payUrl = http://10.2.5.162:21051/API/Microapp/CreateOrder?appid={0}
business-config.payClientId = Order
business-config.cancelPayUrl = http://10.2.5.162:21051/frame/requestbase64
##Actuator\u914D\u7F6E
management.server.port=8088
......