wangyingyang

bug fix

1 package com.infoloop.tianting.controller; 1 package com.infoloop.tianting.controller;
2 2
3 +import cn.dev33.satoken.annotation.SaIgnore;
3 import com.github.xiaoymin.knife4j.annotations.ApiSupport; 4 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
4 import com.infoloop.tianting.model.dto.MenuDbDTO; 5 import com.infoloop.tianting.model.dto.MenuDbDTO;
5 import com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsResponseDto; 6 import com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsResponseDto;
...@@ -19,7 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -19,7 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody;
19 import org.springframework.web.bind.annotation.ResponseStatus; 20 import org.springframework.web.bind.annotation.ResponseStatus;
20 import org.springframework.web.bind.annotation.RestController; 21 import org.springframework.web.bind.annotation.RestController;
21 22
22 -@Api(tags = "微信小程序发送付款通知接口") 23 +@Api(tags = "支付")
23 @ApiSupport(order = 0) 24 @ApiSupport(order = 0)
24 @Slf4j 25 @Slf4j
25 @Validated 26 @Validated
...@@ -28,13 +29,23 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -28,13 +29,23 @@ import org.springframework.web.bind.annotation.RestController;
28 public class PayController { 29 public class PayController {
29 private final PayServiceClient payServiceClient; 30 private final PayServiceClient payServiceClient;
30 31
32 + @SaIgnore
31 @ApiOperation(value = "支付通知") 33 @ApiOperation(value = "支付通知")
32 @PostMapping("/pay/inform") 34 @PostMapping("/pay/inform")
33 @ResponseStatus(HttpStatus.OK) 35 @ResponseStatus(HttpStatus.OK)
34 - public PayResponseDto batchCreateMenuRefsByCustomerId( 36 + public PayResponseDto pay(
35 @Valid @RequestBody PayDTO.PayInformRequestDto payInformRequestDto 37 @Valid @RequestBody PayDTO.PayInformRequestDto payInformRequestDto
36 ){ 38 ){
37 return payServiceClient.payInform(payInformRequestDto); 39 return payServiceClient.payInform(payInformRequestDto);
38 } 40 }
39 41
42 +
43 + @SaIgnore
44 + @ApiOperation(value = "支付通知")
45 + @PostMapping("/pay/inform/v2")
46 + @ResponseStatus(HttpStatus.OK)
47 + public void pay_v2(){
48 + payServiceClient.WxCreateOrder();
49 + }
50 +
40 } 51 }
......
...@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
9 import io.swagger.models.auth.In; 9 import io.swagger.models.auth.In;
10 import java.time.LocalDateTime; 10 import java.time.LocalDateTime;
11 import java.util.List; 11 import java.util.List;
12 +import java.util.Optional;
12 import javax.validation.Valid; 13 import javax.validation.Valid;
13 import jdk.jfr.StackTrace; 14 import jdk.jfr.StackTrace;
14 import lombok.Builder; 15 import lombok.Builder;
...@@ -260,7 +261,7 @@ public class OrderDbDTO { ...@@ -260,7 +261,7 @@ public class OrderDbDTO {
260 private String openId; 261 private String openId;
261 262
262 @ApiModelProperty(value = "状态订单;待备餐=1,备餐中=2,部分出餐=3,已出餐=4,已取消=5") 263 @ApiModelProperty(value = "状态订单;待备餐=1,备餐中=2,部分出餐=3,已出餐=4,已取消=5")
263 - private Integer status; 264 + private OrderStatusEnum status;
264 265
265 @ApiModelProperty(value = "餐单 id") 266 @ApiModelProperty(value = "餐单 id")
266 private Integer menuId; 267 private Integer menuId;
...@@ -337,10 +338,24 @@ public class OrderDbDTO { ...@@ -337,10 +338,24 @@ public class OrderDbDTO {
337 @ApiModelProperty(value = "截单类型") 338 @ApiModelProperty(value = "截单类型")
338 private Integer closeTimeType; 339 private Integer closeTimeType;
339 340
341 + @ApiModelProperty(value = "订单所属用户的信息")
342 + private CustomerDetailDto customer;
343 +
340 // @ApiModelProperty(value = "订单菜品详情列表") 344 // @ApiModelProperty(value = "订单菜品详情列表")
341 // private List<OrderDetailDto> orderDetailDtos; 345 // private List<OrderDetailDto> orderDetailDtos;
342 } 346 }
343 347
348 + @Data
349 + @Builder
350 + @ToString
351 + @ApiModel(description = "订单所属用户的信息")
352 + public static class CustomerDetailDto {
353 + @ApiModelProperty(value = "id")
354 + private Integer id;
355 + private String name;
356 + private String phone;
357 + }
358 +
344 359
345 @Data 360 @Data
346 @Builder 361 @Builder
......
...@@ -81,5 +81,4 @@ public class PayDTO { ...@@ -81,5 +81,4 @@ public class PayDTO {
81 private String TradeDesc; 81 private String TradeDesc;
82 private String Sign; 82 private String Sign;
83 } 83 }
84 -
85 } 84 }
......
...@@ -15,6 +15,8 @@ import com.infoloop.tianting.clientcustomerservice.GetClientCustomerByMobileRpcR ...@@ -15,6 +15,8 @@ import com.infoloop.tianting.clientcustomerservice.GetClientCustomerByMobileRpcR
15 import com.infoloop.tianting.clientcustomerservice.GetClientCustomerByMobileRpcResponse; 15 import com.infoloop.tianting.clientcustomerservice.GetClientCustomerByMobileRpcResponse;
16 import com.infoloop.tianting.clientcustomerservice.GetClientCustomerHospitalRecordsByCustomerIdRpcRequest; 16 import com.infoloop.tianting.clientcustomerservice.GetClientCustomerHospitalRecordsByCustomerIdRpcRequest;
17 import com.infoloop.tianting.clientcustomerservice.GetClientCustomerHospitalRecordsByCustomerIdRpcResponse; 17 import com.infoloop.tianting.clientcustomerservice.GetClientCustomerHospitalRecordsByCustomerIdRpcResponse;
18 +import com.infoloop.tianting.clientcustomerservice.GetClientCustomersByIdsRpcRequest;
19 +import com.infoloop.tianting.clientcustomerservice.GetClientCustomersByIdsRpcResponse;
18 import com.infoloop.tianting.clientcustomerservice.QueryClientCustomerLabelRefsByConditionRpcRequest; 20 import com.infoloop.tianting.clientcustomerservice.QueryClientCustomerLabelRefsByConditionRpcRequest;
19 import com.infoloop.tianting.clientcustomerservice.QueryClientCustomerLabelRefsByConditionRpcResponse; 21 import com.infoloop.tianting.clientcustomerservice.QueryClientCustomerLabelRefsByConditionRpcResponse;
20 import com.infoloop.tianting.model.dto.ClientLabelDTO.BatchCreateCustomerLabelRefDto; 22 import com.infoloop.tianting.model.dto.ClientLabelDTO.BatchCreateCustomerLabelRefDto;
...@@ -47,6 +49,14 @@ public class ClientCustomerServiceRpcClient { ...@@ -47,6 +49,14 @@ public class ClientCustomerServiceRpcClient {
47 return clientCustomerServiceRpcBlockingStub.getClientCustomerById(request); 49 return clientCustomerServiceRpcBlockingStub.getClientCustomerById(request);
48 } 50 }
49 51
52 + public GetClientCustomersByIdsRpcResponse getClientCustomersByIds(
53 + Integer enterpriseId, List<Integer> ids) {
54 + final var request = GetClientCustomersByIdsRpcRequest.newBuilder()
55 + .setEnterpriseId(enterpriseId).addAllIds(ids)
56 + .build();
57 + return clientCustomerServiceRpcBlockingStub.getClientCustomersByIds(request);
58 + }
59 +
50 public GetClientCustomerByMobileRpcResponse getClientCustomerByMobile(String phone) { 60 public GetClientCustomerByMobileRpcResponse getClientCustomerByMobile(String phone) {
51 final var request = GetClientCustomerByMobileRpcRequest.newBuilder() 61 final var request = GetClientCustomerByMobileRpcRequest.newBuilder()
52 .setMobile(phone) 62 .setMobile(phone)
......
...@@ -8,6 +8,7 @@ import com.infoloop.tianting.model.dto.PayDTO.ThirdPartyPayInformRequestDto; ...@@ -8,6 +8,7 @@ import com.infoloop.tianting.model.dto.PayDTO.ThirdPartyPayInformRequestDto;
8 import com.infoloop.tianting.model.dto.WxUserDto.WxUserPhoneResponseDto; 8 import com.infoloop.tianting.model.dto.WxUserDto.WxUserPhoneResponseDto;
9 import com.infoloop.tianting.utils.DateUtil; 9 import com.infoloop.tianting.utils.DateUtil;
10 import com.infoloop.tianting.utils.EncryptionUtil; 10 import com.infoloop.tianting.utils.EncryptionUtil;
11 +import java.io.IOException;
11 import java.time.LocalDateTime; 12 import java.time.LocalDateTime;
12 import lombok.RequiredArgsConstructor; 13 import lombok.RequiredArgsConstructor;
13 import okhttp3.FormBody; 14 import okhttp3.FormBody;
...@@ -55,6 +56,10 @@ public class PayServiceClient { ...@@ -55,6 +56,10 @@ public class PayServiceClient {
55 .post(body) 56 .post(body)
56 .build(); 57 .build();
57 Response payResponse = client.newCall(getPhoneRequest).execute(); 58 Response payResponse = client.newCall(getPhoneRequest).execute();
59 + if(payResponse.code() != 200) {
60 + System.out.println(payResponse.message());
61 + throw new IllegalArgumentException("支付通知失败");
62 + }
58 String payJsonData = payResponse.body().string(); 63 String payJsonData = payResponse.body().string();
59 System.out.println("pay json:"+payJsonData); 64 System.out.println("pay json:"+payJsonData);
60 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 65 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
......
...@@ -54,8 +54,6 @@ public class WxMiniProgramClient { ...@@ -54,8 +54,6 @@ public class WxMiniProgramClient {
54 .build(); 54 .build();
55 Response getPhoneResponse = client.newCall(getPhoneRequest).execute(); 55 Response getPhoneResponse = client.newCall(getPhoneRequest).execute();
56 String phoneJsonData = getPhoneResponse.body().string(); 56 String phoneJsonData = getPhoneResponse.body().string();
57 - System.out.println("------------------------");
58 - System.out.println("phone json:" + phoneJsonData);
59 WxUserPhoneResponseDto wxUserPhoneResponseDto = objectMapper.readValue(phoneJsonData, WxUserPhoneResponseDto.class); 57 WxUserPhoneResponseDto wxUserPhoneResponseDto = objectMapper.readValue(phoneJsonData, WxUserPhoneResponseDto.class);
60 return wxUserPhoneResponseDto; 58 return wxUserPhoneResponseDto;
61 59
......
1 package com.infoloop.tianting.service.impl; 1 package com.infoloop.tianting.service.impl;
2 2
3 +import com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse;
4 +import com.infoloop.tianting.clientcustomerservice.SingleClientCustomerRpcResponse;
3 import com.infoloop.tianting.model.common.PageResult; 5 import com.infoloop.tianting.model.common.PageResult;
4 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto; 6 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto;
5 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse; 7 import com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse;
8 +import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerDetailDto;
6 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice; 9 import com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice;
7 import com.infoloop.tianting.model.dto.OrderDbDTO.MealDetailDto; 10 import com.infoloop.tianting.model.dto.OrderDbDTO.MealDetailDto;
8 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto; 11 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto;
...@@ -10,11 +13,14 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto; ...@@ -10,11 +13,14 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto;
10 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto; 13 import com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto;
11 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto; 14 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto;
12 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto; 15 import com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto;
16 +import com.infoloop.tianting.service.ClientCustomerService;
13 import com.infoloop.tianting.service.OrderService; 17 import com.infoloop.tianting.service.OrderService;
18 +import com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient;
14 import com.infoloop.tianting.service.client.OrderServiceRpcClient; 19 import com.infoloop.tianting.service.client.OrderServiceRpcClient;
15 import com.infoloop.tianting.utils.DateUtil; 20 import com.infoloop.tianting.utils.DateUtil;
16 import com.infoloop.tianting.utils.PageUtil; 21 import com.infoloop.tianting.utils.PageUtil;
17 import java.util.List; 22 import java.util.List;
23 +import java.util.Optional;
18 import java.util.stream.Collectors; 24 import java.util.stream.Collectors;
19 import lombok.RequiredArgsConstructor; 25 import lombok.RequiredArgsConstructor;
20 import lombok.extern.slf4j.Slf4j; 26 import lombok.extern.slf4j.Slf4j;
...@@ -26,6 +32,7 @@ import org.springframework.stereotype.Service; ...@@ -26,6 +32,7 @@ import org.springframework.stereotype.Service;
26 @RequiredArgsConstructor(onConstructor = @__(@Autowired)) 32 @RequiredArgsConstructor(onConstructor = @__(@Autowired))
27 public class OrderServiceImpl implements OrderService { 33 public class OrderServiceImpl implements OrderService {
28 private final OrderServiceRpcClient orderServiceRpcClient; 34 private final OrderServiceRpcClient orderServiceRpcClient;
35 + private final ClientCustomerServiceRpcClient clientCustomerServiceRpcClient;
29 36
30 @Override 37 @Override
31 public CreateOrderResponse createOrder(CreateOrderDto createOrderDto) { 38 public CreateOrderResponse createOrder(CreateOrderDto createOrderDto) {
...@@ -87,7 +94,7 @@ public class OrderServiceImpl implements OrderService { ...@@ -87,7 +94,7 @@ public class OrderServiceImpl implements OrderService {
87 .pickupCode(r.getPickupCode()) 94 .pickupCode(r.getPickupCode())
88 .tableCode(r.getTableCode()) 95 .tableCode(r.getTableCode())
89 .roomNo(r.getRoomNo()) 96 .roomNo(r.getRoomNo())
90 - .status(r.getStatus().getNumber()) 97 + .status(r.getStatus())
91 .customerNoticeJson(CustomerNotice.builder() 98 .customerNoticeJson(CustomerNotice.builder()
92 .avoids(r.getCustomerNoticeJson().getAvoidsList()) 99 .avoids(r.getCustomerNoticeJson().getAvoidsList())
93 .doctors(r.getCustomerNoticeJson().getDoctorsList()).build()) 100 .doctors(r.getCustomerNoticeJson().getDoctorsList()).build())
...@@ -160,7 +167,7 @@ public class OrderServiceImpl implements OrderService { ...@@ -160,7 +167,7 @@ public class OrderServiceImpl implements OrderService {
160 .pickupCode(r.getPickupCode()) 167 .pickupCode(r.getPickupCode())
161 .tableCode(r.getTableCode()) 168 .tableCode(r.getTableCode())
162 .roomNo(r.getRoomNo()) 169 .roomNo(r.getRoomNo())
163 - .status(r.getStatus().getNumber()) 170 + .status(r.getStatus())
164 .customerNoticeJson(CustomerNotice.builder() 171 .customerNoticeJson(CustomerNotice.builder()
165 .avoids(r.getCustomerNoticeJson().getAvoidsList()) 172 .avoids(r.getCustomerNoticeJson().getAvoidsList())
166 .doctors(r.getCustomerNoticeJson().getDoctorsList()).build()) 173 .doctors(r.getCustomerNoticeJson().getDoctorsList()).build())
...@@ -220,6 +227,9 @@ public class OrderServiceImpl implements OrderService { ...@@ -220,6 +227,9 @@ public class OrderServiceImpl implements OrderService {
220 @Override 227 @Override
221 public PageResult<OrderDto> getOrdersByPagination(QueryOrderByPaginationDto queryOrderDto) { 228 public PageResult<OrderDto> getOrdersByPagination(QueryOrderByPaginationDto queryOrderDto) {
222 final var response = orderServiceRpcClient.queryClientCustomerOrdersByPagination(queryOrderDto); 229 final var response = orderServiceRpcClient.queryClientCustomerOrdersByPagination(queryOrderDto);
230 + final var customerIds = response.getResponsesList().stream().map(SingleClientCustomerOrderRpcResponse::getCustomerId).collect(Collectors.toList());
231 + final var customerResponse = clientCustomerServiceRpcClient.getClientCustomersByIds(
232 + queryOrderDto.getEnterpriseId(), customerIds);
223 final var results = response.getResponsesList().stream().map(r -> OrderDto.builder() 233 final var results = response.getResponsesList().stream().map(r -> OrderDto.builder()
224 .id(r.getId()) 234 .id(r.getId())
225 .enterpriseId(r.getEnterpriseId()) 235 .enterpriseId(r.getEnterpriseId())
...@@ -233,7 +243,7 @@ public class OrderServiceImpl implements OrderService { ...@@ -233,7 +243,7 @@ public class OrderServiceImpl implements OrderService {
233 .pickupCode(r.getPickupCode()) 243 .pickupCode(r.getPickupCode())
234 .tableCode(r.getTableCode()) 244 .tableCode(r.getTableCode())
235 .roomNo(r.getRoomNo()) 245 .roomNo(r.getRoomNo())
236 - .status(r.getStatus().getNumber()) 246 + .status(r.getStatus())
237 .customerNoticeJson(CustomerNotice.builder() 247 .customerNoticeJson(CustomerNotice.builder()
238 .avoids(r.getCustomerNoticeJson().getAvoidsList()) 248 .avoids(r.getCustomerNoticeJson().getAvoidsList())
239 .doctors(r.getCustomerNoticeJson().getDoctorsList()).build()) 249 .doctors(r.getCustomerNoticeJson().getDoctorsList()).build())
...@@ -254,8 +264,26 @@ public class OrderServiceImpl implements OrderService { ...@@ -254,8 +264,26 @@ public class OrderServiceImpl implements OrderService {
254 .updatedBy(r.getUpdatedBy()) 264 .updatedBy(r.getUpdatedBy())
255 .closeTimeType(r.getCloseTimeTypeValue()) 265 .closeTimeType(r.getCloseTimeTypeValue())
256 .totalNum(r.getTotalNum()) 266 .totalNum(r.getTotalNum())
267 + .customer(getCustomerDetail(r.getCustomerId(), customerResponse.getResponsesList()))
257 .build()).collect(Collectors.toList()); 268 .build()).collect(Collectors.toList());
258 return PageUtil.from(results, response.getTotal(), response.getPages(), 269 return PageUtil.from(results, response.getTotal(), response.getPages(),
259 queryOrderDto.getPn(), queryOrderDto.getPz()); 270 queryOrderDto.getPn(), queryOrderDto.getPz());
260 } 271 }
272 +
273 + private CustomerDetailDto getCustomerDetail(Integer customerId,
274 + List<SingleClientCustomerRpcResponse> customers) {
275 + final var filterCustomers = customers.stream().filter(c -> c.getId() == customerId)
276 + .collect(Collectors.toList());
277 + if (filterCustomers.isEmpty()) {
278 + return CustomerDetailDto.builder().build();
279 + } else {
280 + final var resCustomer = filterCustomers.get(0);
281 + return CustomerDetailDto.builder()
282 + .id(resCustomer.getId())
283 + .name(resCustomer.getName())
284 + .phone(resCustomer.getMobile())
285 + .build();
286 + }
287 +
288 + }
261 } 289 }
......