Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
wangyingyang
2024-11-11 12:31:46 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
0029e475e31cda8f7dbccd07cf8147c8271b1e1d
0029e475
1 parent
5c23b8cc
update orderand bug fix
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1148 additions
and
110 deletions
src/main/java/com/infoloop/tianting/config/GrpcConfig.java
src/main/java/com/infoloop/tianting/config/WebMvcConfig.java
src/main/java/com/infoloop/tianting/constant/ConfigConstants.java
src/main/java/com/infoloop/tianting/context/LoginContextHolder.java
src/main/java/com/infoloop/tianting/controller/ClientCustomerController.java
src/main/java/com/infoloop/tianting/controller/ClientOrderController.java
src/main/java/com/infoloop/tianting/controller/InventoryController.java
src/main/java/com/infoloop/tianting/controller/LoginController.java
src/main/java/com/infoloop/tianting/controller/MenuController.java
src/main/java/com/infoloop/tianting/controller/MiniProgramController.java
src/main/java/com/infoloop/tianting/controller/OrderController.java
src/main/java/com/infoloop/tianting/controller/PayController.java
src/main/java/com/infoloop/tianting/enums/LoginSourceEnum.java
src/main/java/com/infoloop/tianting/intercepter/LoginInterceptor.java
src/main/java/com/infoloop/tianting/model/dto/MenuDbDTO.java
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
src/main/java/com/infoloop/tianting/model/dto/PayDTO.java
src/main/java/com/infoloop/tianting/model/dto/PermissionDTO.java
src/main/java/com/infoloop/tianting/model/dto/WxUserDto.java
src/main/java/com/infoloop/tianting/service/MenuService.java
src/main/java/com/infoloop/tianting/service/OrderService.java
src/main/java/com/infoloop/tianting/service/client/MenuServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/OperatorServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/PayServiceClient.java
src/main/java/com/infoloop/tianting/service/client/WxMiniProgramClient.java
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/MenuServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
src/main/java/com/infoloop/tianting/utils/EncryptionUtil.java
src/main/proto/COperatorServiceProtoRpc.proto
src/main/proto/ClientCustomerOrderService.proto
src/main/resources/application.properties
src/main/java/com/infoloop/tianting/config/GrpcConfig.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
config
;
import
com.infoloop.tianting.COperatorServiceProtoRpcGrpc
;
import
com.infoloop.tianting.CategoriesServiceProtoRpcGrpc
;
import
com.infoloop.tianting.SkuServiceProtoRpcGrpc
;
import
com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderServiceRpcGrpc
;
...
...
@@ -45,6 +46,9 @@ import static com.infoloop.tianting.constant.ConfigConstants.MEAL_SERVICE_RPC_UR
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
MENU_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
MENU_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
MENU_SERVICE_RPC_URL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
OPERATOR_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
OPERATOR_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
OPERATOR_SERVICE_RPC_URL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
ORDER_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
ORDER_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
ORDER_SERVICE_RPC_URL
;
...
...
@@ -209,4 +213,21 @@ public class GrpcConfig {
public
TiantingDeliveryRuleServiceRpcGrpc
.
TiantingDeliveryRuleServiceRpcBlockingStub
deliveryServiceRpcBlockingStub
(
@Autowired
@Qualifier
(
DELIVERY_SERVICE_CHANNEL
)
final
ManagedChannel
channel
)
{
return
TiantingDeliveryRuleServiceRpcGrpc
.
newBlockingStub
(
channel
);
}
@Bean
(
OPERATOR_SERVICE_CHANNEL
)
public
ManagedChannel
operatorServiceChannel
(
@Value
(
OPERATOR_SERVICE_RPC_URL
)
final
String
url
,
@Value
(
OPERATOR_SERVICE_RPC_PORT
)
final
int
port
,
@Autowired
final
ClientInterceptor
clientInterceptor
)
{
return
NettyChannelBuilder
.
forAddress
(
url
,
port
)
.
idleTimeout
(
DEFAULT_TIMEOUT_DAYS
,
TimeUnit
.
DAYS
)
.
intercept
(
clientInterceptor
)
.
usePlaintext
()
.
maxInboundMessageSize
(
Integer
.
MAX_VALUE
)
.
build
();
}
@Bean
public
COperatorServiceProtoRpcGrpc
.
COperatorServiceProtoRpcBlockingStub
operatorServiceRpcBlockingStub
(
@Autowired
@Qualifier
(
OPERATOR_SERVICE_CHANNEL
)
final
ManagedChannel
channel
)
{
return
COperatorServiceProtoRpcGrpc
.
newBlockingStub
(
channel
);
}
}
...
...
src/main/java/com/infoloop/tianting/config/WebMvcConfig.java
View file @
0029e47
...
...
@@ -7,6 +7,7 @@ import com.infoloop.tianting.intercepter.LoginInterceptor;
import
com.infoloop.tianting.intercepter.RequestMonitor
;
import
com.infoloop.tianting.intercepter.ResourceInjector
;
import
com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient
;
import
com.infoloop.tianting.service.client.OperatorServiceRpcClient
;
import
com.infoloop.tianting.tracing.HttpTracingInterceptor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -33,12 +34,13 @@ public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
public
WebMvcConfig
(
final
Tracing
tracing
,
final
ResourceInjector
resourceInjector
,
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
)
{
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
,
final
OperatorServiceRpcClient
operatorServiceRpcClient
)
{
this
.
httpInterceptors
=
new
ArrayList
<>();
this
.
httpInterceptors
.
add
(
new
HttpTracingInterceptor
(
tracing
));
this
.
httpInterceptors
.
add
(
new
RequestMonitor
());
this
.
httpInterceptors
.
add
(
new
ApiSignInterceptor
());
this
.
httpInterceptors
.
add
(
new
LoginInterceptor
(
clientCustomerServiceRpcClient
));
this
.
httpInterceptors
.
add
(
new
LoginInterceptor
(
clientCustomerServiceRpcClient
,
operatorServiceRpcClient
));
this
.
httpInterceptors
.
add
(
resourceInjector
);
}
...
...
src/main/java/com/infoloop/tianting/constant/ConfigConstants.java
View file @
0029e47
...
...
@@ -60,10 +60,14 @@ public interface ConfigConstants {
String
DELIVERY_SERVICE_RPC_PORT
=
"${grpc.delivery-service.port}"
;
String
DELIVERY_SERVICE_CHANNEL
=
"delivery-service-channel"
;
String
OPERATOR_SERVICE_RPC_URL
=
"${grpc.operator-service.url}"
;
String
OPERATOR_SERVICE_RPC_PORT
=
"${grpc.operator-service.port}"
;
String
OPERATOR_SERVICE_CHANNEL
=
"operator-service-channel"
;
String
ASYNC_EXECUTOR
=
"asyncExecutor"
;
String
SCHEDULED_TASK_EXECUTOR
=
"scheduledTaskExecutor"
;
String
MINI_PROGRAM_APP_ID
=
"${miniprogram.app
-i
d}"
;
String
MINI_PROGRAM_APP_SECRET
=
"${miniprogram.app
-s
ecret}"
;
String
MINI_PROGRAM_APP_ID
=
"${miniprogram.app
I
d}"
;
String
MINI_PROGRAM_APP_SECRET
=
"${miniprogram.app
S
ecret}"
;
}
...
...
src/main/java/com/infoloop/tianting/context/LoginContextHolder.java
View file @
0029e47
...
...
@@ -54,6 +54,8 @@ public class LoginContextHolder {
private
String
name
;
private
String
openid
;
}
}
...
...
src/main/java/com/infoloop/tianting/controller/ClientCustomerController.java
View file @
0029e47
...
...
@@ -22,8 +22,6 @@ import org.springframework.http.HttpStatus;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -36,7 +34,6 @@ import org.springframework.web.bind.annotation.RestController;
public
class
ClientCustomerController
{
private
final
ClientCustomerService
clientCustomerService
;
private
final
WxMiniProgramService
wxMiniProgramService
;
private
final
LoginService
loginService
;
@ApiOperation
(
value
=
"根据hisCustomerId获取ClientCustomer"
)
@GetMapping
(
"/customers/his/{hisCustomerId}"
)
...
...
@@ -61,26 +58,6 @@ public class ClientCustomerController {
enterpriseId
,
customerId
);
}
@ApiOperation
(
value
=
"小程序:根据code获取openId"
)
@GetMapping
(
"/wx/miniprogram/customers/openid/{code}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
WxUserOpenIdDto
getOpenIdByCode
(
@PathVariable
String
code
)
{
return
wxMiniProgramService
.
getWxUserOpenIdByCode
(
code
);
}
@ApiOperation
(
value
=
"小程序:根据code获取手机号"
)
@GetMapping
(
"/wx/miniprogram/customers/phone/{code}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
WxUserPhoneResponseDto
getPhoneByCode
(
@PathVariable
String
code
)
{
return
wxMiniProgramService
.
getUserPhoneInfoByCode
(
code
);
}
@SaIgnore
@ApiOperation
(
value
=
"登陆"
)
@PostMapping
(
"/login"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
SaTokenInfo
login
(
@Valid@RequestBody
LoginDto
loginDto
)
{
return
loginService
.
login
(
loginDto
);
}
}
...
...
src/main/java/com/infoloop/tianting/controller/ClientOrderController.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
controller
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderDto
;
import
com.infoloop.tianting.service.OrderService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -28,11 +30,12 @@ import org.springframework.web.bind.annotation.RestController;
public
class
ClientOrderController
{
private
final
OrderService
orderService
;
@ApiOperation
(
value
=
"根据状态获取用户订单"
)
@PostMapping
(
"/orders/condition"
)
@SaIgnore
@ApiOperation
(
value
=
"院区端分页获取用户订单"
)
@PostMapping
(
"/client/orders/pagination"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
List
<
OrderDto
>
getOrderByCondition
(
@Valid@RequestBody
QueryOrder
Dto
queryOrderDto
)
{
return
orderService
.
getOrdersBy
Condi
tion
(
queryOrderDto
);
public
PageResult
<
OrderDto
>
getOrderByByPagination
(
@Valid@RequestBody
OrderDbDTO
.
QueryOrderByPagination
Dto
queryOrderDto
)
{
return
orderService
.
getOrdersBy
Pagina
tion
(
queryOrderDto
);
}
}
...
...
src/main/java/com/infoloop/tianting/controller/InventoryController.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
controller
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.InventoryDbDTO.ClientDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDto
;
...
...
@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
public
class
InventoryController
{
private
final
InventoryService
inventoryService
;
@SaIgnore
@ApiOperation
(
value
=
"根据Id获取Client"
)
@GetMapping
(
"/enterprises/{enterpriseId}/clients/{clientId}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
src/main/java/com/infoloop/tianting/controller/LoginController.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
controller
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
cn.dev33.satoken.stp.SaTokenInfo
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.PermissionDTO
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserOpenIdDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserOpenIdDto1
;
import
com.infoloop.tianting.service.LoginService
;
import
com.infoloop.tianting.utils.JsonUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.LinkedHashMap
;
import
javax.validation.Valid
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"登陆"
)
@ApiSupport
(
order
=
-
1
)
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
LoginController
{
private
final
LoginService
loginService
;
@SaIgnore
@ApiOperation
(
value
=
"登陆"
)
@PostMapping
(
"/login"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
SaTokenInfo
login
(
@Valid
@RequestBody
PermissionDTO
.
LoginDto
loginDto
)
{
return
loginService
.
login
(
loginDto
);
}
}
src/main/java/com/infoloop/tianting/controller/MenuController.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsResponseDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDetailDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuRefDto
;
...
...
@@ -10,6 +12,7 @@ import io.swagger.annotations.ApiOperation;
import
java.util.List
;
import
javax.validation.Valid
;
import
lombok.RequiredArgsConstructor
;
import
lombok.Value
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
...
...
@@ -56,4 +59,13 @@ public class MenuController {
return
menuService
.
getClientCustomerMenuRefsByCustomerId
(
enterpriseId
,
customerId
);
}
@ApiOperation
(
value
=
"批量创建餐单绑定"
)
@PostMapping
(
"/menuRefs/creation"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
BatchCreateMenuRefsResponseDto
batchCreateMenuRefsByCustomerId
(
@Valid@RequestBody
BatchCreateMenuRefsDto
batchCreateMenuRefsDto
){
return
menuService
.
batchCreateMenuRefs
(
batchCreateMenuRefsDto
);
}
}
...
...
src/main/java/com/infoloop/tianting/controller/MiniProgramController.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
controller
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserOpenIdDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserPhoneResponseDto
;
import
com.infoloop.tianting.service.WxMiniProgramService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"小程序个人信息"
)
@ApiSupport
(
order
=
-
1
)
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
MiniProgramController
{
private
final
WxMiniProgramService
wxMiniProgramService
;
@ApiOperation
(
value
=
"小程序:根据code获取openId"
)
@GetMapping
(
"/wx/miniprogram/customers/openid/{code}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
WxUserOpenIdDto
getOpenIdByCode
(
@PathVariable
String
code
)
{
return
wxMiniProgramService
.
getWxUserOpenIdByCode
(
code
);
}
@SaIgnore
@ApiOperation
(
value
=
"小程序:根据code获取手机号"
)
@GetMapping
(
"/wx/miniprogram/customers/phone/{code}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
WxUserPhoneResponseDto
getPhoneByCode
(
@PathVariable
String
code
)
{
return
wxMiniProgramService
.
getUserPhoneInfoByCode
(
code
);
}
}
src/main/java/com/infoloop/tianting/controller/OrderController.java
View file @
0029e47
...
...
@@ -3,8 +3,10 @@ package com.infoloop.tianting.controller;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.service.OrderService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -34,10 +36,22 @@ public class OrderController {
@ApiOperation
(
value
=
"根据customerId获取用户订单"
)
@GetMapping
(
"/orders/{customerId}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
List
<
OrderDto
>
getOrderByCustomerId
(
@PathVariable
Integer
customerId
)
{
public
OrderAndDetailsDto
getOrderByCustomerId
(
@PathVariable
Integer
customerId
)
{
return
orderService
.
getOrdersByCustomerId
(
customerId
);
}
@ApiOperation
(
value
=
"根据openId获取用户订单"
)
@GetMapping
(
"/enterprises/{enterpriseId}/orders/open/{openId}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
OrderAndDetailsDto
getOrderByOpenId
(
@PathVariable
Integer
enterpriseId
,
@PathVariable
String
openId
)
{
return
orderService
.
getOrdersByCondition
(
QueryOrderByConditionDto
.
builder
()
.
shouldFilterOpenId
(
true
)
.
enterpriseId
(
enterpriseId
)
.
openId
(
openId
)
.
build
());
}
@ApiOperation
(
value
=
"根据orderId获取订单详情"
)
@GetMapping
(
"/orderDetails/{orderId}"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
src/main/java/com/infoloop/tianting/controller/PayController.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.MenuDbDTO
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsResponseDto
;
import
com.infoloop.tianting.model.dto.PayDTO
;
import
com.infoloop.tianting.model.dto.PayDTO.PayResponseDto
;
import
com.infoloop.tianting.service.client.PayServiceClient
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.validation.Valid
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"微信小程序发送付款通知接口"
)
@ApiSupport
(
order
=
0
)
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
PayController
{
private
final
PayServiceClient
payServiceClient
;
@ApiOperation
(
value
=
"支付通知"
)
@PostMapping
(
"/pay/inform"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
PayResponseDto
batchCreateMenuRefsByCustomerId
(
@Valid
@RequestBody
PayDTO
.
PayInformRequestDto
payInformRequestDto
){
return
payServiceClient
.
payInform
(
payInformRequestDto
);
}
}
src/main/java/com/infoloop/tianting/enums/LoginSourceEnum.java
View file @
0029e47
...
...
@@ -9,7 +9,7 @@ import lombok.Getter;
public
enum
LoginSourceEnum
{
CUSTOMER
(
1
,
"小程序住院客户"
),
MINI_PROGRAM
(
2
,
"小程序非住院客户"
),
CLIENT
(
3
,
"院区端"
),
OPERATOR
(
3
,
"院区端"
),
KDS
(
4
,
"KDS"
),
;
...
...
src/main/java/com/infoloop/tianting/intercepter/LoginInterceptor.java
View file @
0029e47
...
...
@@ -13,6 +13,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum;
import
com.infoloop.tianting.model.common.ResponseResult
;
import
com.infoloop.tianting.service.ClientCustomerService
;
import
com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient
;
import
com.infoloop.tianting.service.client.OperatorServiceRpcClient
;
import
com.infoloop.tianting.utils.ResponseUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -32,8 +33,9 @@ import java.io.IOException;
@SuppressWarnings
(
"all"
)
@RequiredArgsConstructor
public
class
LoginInterceptor
extends
HandlerInterceptorAdapter
{
// private final ClientCustomerService clientCustomerService;
private
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
;
private
final
OperatorServiceRpcClient
operatorServiceRpcClient
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
IOException
{
...
...
@@ -63,20 +65,34 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
private
boolean
handleLogin
(
HttpServletRequest
request
,
HttpServletResponse
response
,
LoginContextHolder
.
LoginInfo
.
LoginInfoBuilder
builder
)
throws
SaTokenException
{
StpUtil
.
checkLogin
();
final
var
loginId
=
StpUtil
.
getLoginIdAsInt
();
final
var
enterpriseId
=
Convert
.
toInt
(
StpUtil
.
getExtra
(
CommonConstants
.
ENTERPRISE_ID
));
final
var
loginSource
=
Convert
.
toInt
(
StpUtil
.
getExtra
(
CommonConstants
.
LOGIN_SOURCE
));
// if (loginSource.equals(LoginSourceEnum.CUSTOMER.getValue())) {
if
(
loginSource
.
equals
(
LoginSourceEnum
.
CUSTOMER
.
getValue
()))
{
final
var
loginId
=
StpUtil
.
getLoginIdAsInt
();
final
var
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerById
(
loginId
);
if
(
customer
==
null
)
{
response
.
setStatus
(
HttpStatus
.
FORBIDDEN
.
value
());
ResponseUtil
.
write
(
response
,
ResponseResult
.
failed
(
ErrorCodeEnum
.
VALIDATE_FAILED
));
return
false
;
}
builder
.
id
(
loginId
)
.
enterpriseId
(
enterpriseId
)
.
name
(
customer
.
getResponse
().
getName
());
builder
.
id
(
loginId
).
enterpriseId
(
enterpriseId
).
name
(
customer
.
getResponse
().
getName
());
return
true
;
}
else
if
(
loginSource
.
equals
(
LoginSourceEnum
.
OPERATOR
.
getValue
())){
final
var
loginId
=
StpUtil
.
getLoginIdAsInt
();
final
var
opeartor
=
operatorServiceRpcClient
.
getCOperatorById
(
loginId
);
if
(
opeartor
==
null
)
{
response
.
setStatus
(
HttpStatus
.
FORBIDDEN
.
value
());
ResponseUtil
.
write
(
response
,
ResponseResult
.
failed
(
ErrorCodeEnum
.
VALIDATE_FAILED
));
return
false
;
}
builder
.
id
(
loginId
).
enterpriseId
(
enterpriseId
).
name
(
opeartor
.
getName
());
return
true
;
}
else
{
final
var
loginId
=
StpUtil
.
getLoginIdAsString
();
builder
.
openid
(
loginId
).
enterpriseId
(
enterpriseId
);
return
true
;
}
}
...
...
src/main/java/com/infoloop/tianting/model/dto/MenuDbDTO.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum
;
import
com.infoloop.tianting.menuservice.CloseTimeTypeEnum
;
import
com.infoloop.tianting.menuservice.DishSelectRuleEnum
;
import
com.infoloop.tianting.menuservice.DishTypeEnum
;
import
com.infoloop.tianting.menuservice.ModeOfPaymentEnum
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.CreateMenuRefsDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
lombok.Builder
;
...
...
@@ -75,6 +78,9 @@ public class MenuDbDTO {
@ApiModelProperty
(
value
=
"更新来源"
)
private
Integer
updateSource
;
@ApiModelProperty
(
value
=
"发布时间"
)
private
String
publishAt
;
}
@Data
...
...
@@ -116,4 +122,34 @@ public class MenuDbDTO {
private
Integer
creationSource
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"批量餐单绑定数据"
)
public
static
class
CreateMenuRefsDto
{
private
Integer
menuId
;
private
Integer
customerId
;
private
boolean
isTop
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"批量餐单绑定数据"
)
public
static
class
BatchCreateMenuRefsDto
{
private
Integer
createdBy
;
private
OrderSourceEnum
creationSource
;
private
Integer
enterpriseId
;
private
List
<
CreateMenuRefsDto
>
creations
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"批量餐单绑定数据"
)
public
static
class
BatchCreateMenuRefsResponseDto
{
private
Boolean
isCreated
;
private
List
<
Integer
>
ids
;
}
}
...
...
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
com.infoloop.tianting.clientcustomerorderservice.CloseTimeType
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum
;
import
com.infoloop.tianting.menuservice.CloseTimeTypeEnum
;
import
com.infoloop.tianting.model.common.PageInfo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -43,10 +45,22 @@ public class OrderDbDTO {
@Data
@ApiModel
(
description
=
"查询订单Dto"
)
public
static
class
QueryOrderDto
{
public
static
class
QueryOrder
ByPagination
Dto
{
private
Integer
enterpriseId
;
private
boolean
shouldFilterStatus
;
private
Integer
clientId
;
private
OrderStatusEnum
status
;
private
Integer
pn
;
private
Integer
pz
;
private
String
keyword
;
}
@Data
@Builder
@ApiModel
(
description
=
"查询订单Dto"
)
public
static
class
QueryOrderByConditionDto
{
private
Integer
enterpriseId
;
private
Boolean
shouldFilterOpenId
;
private
String
openId
;
}
@Data
...
...
@@ -120,12 +134,6 @@ public class OrderDbDTO {
@Builder
@ApiModel
(
description
=
"创建订单视图"
)
public
static
class
CreateOrderDto
{
// @ApiModelProperty(value = "订单表主键,自增整数")
// private Integer id;
// @ApiModelProperty(value = "订单号")
// private String orderCode;
@ApiModelProperty
(
value
=
"企业 ID"
)
private
Integer
enterpriseId
;
...
...
@@ -135,9 +143,15 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"档口 ID"
)
private
Integer
stallId
;
@ApiModelProperty
(
value
=
"需要创建客户 ID"
)
public
Boolean
shouldCreateCustomerId
;
@ApiModelProperty
(
value
=
"客户 ID"
)
private
Integer
customerId
;
@ApiModelProperty
(
value
=
"需要创建阳光厅点餐客户open ID"
)
private
Boolean
shouldCreateOpenId
;
@ApiModelProperty
(
value
=
"阳光厅点餐客户 ID"
)
private
String
openId
;
...
...
@@ -180,9 +194,6 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"点餐桌码"
)
private
String
tableCode
;
@ApiModelProperty
(
value
=
"取餐码"
)
private
String
pickupCode
;
@ApiModelProperty
(
value
=
"订单类型 购买类型:1=堂食,2=外送"
)
private
Integer
orderType
;
...
...
@@ -205,10 +216,22 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"更新来源:小程序点餐=1;院区端=2;kds=3;业务中台 = 4"
)
private
Integer
updateSource
;
@ApiModelProperty
(
value
=
"截单类型"
)
private
CloseTimeType
closeTimeType
;
@ApiModelProperty
(
value
=
"订单菜品详情列表"
)
private
List
<
CreateOrderDetailDto
>
orderDetailDtos
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"订单与订单详情视图"
)
public
static
class
OrderAndDetailsDto
{
private
List
<
OrderDto
>
orders
;
private
List
<
OrderDetailDto
>
orderDetails
;
}
@Data
@Builder
...
...
@@ -383,6 +406,9 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"调整配料备注"
)
private
String
adjustSkuRemark
;
@ApiModelProperty
(
value
=
"订单详情"
)
private
List
<
OrderDetailDto
>
orderDetails
;
}
@Data
...
...
src/main/java/com/infoloop/tianting/model/dto/PayDTO.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModel
;
import
javax.print.DocFlavor.STRING
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.context.annotation.Primary
;
@Data
@ApiModel
(
description
=
"支付DTO"
)
public
class
PayDTO
{
@Data
@Builder
@ApiModel
(
description
=
"支付通知请求dto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
PayInformRequestDto
{
private
String
clientId
;
private
String
orderId
;
private
String
openId
;
private
String
hospitalCode
;
private
String
price
;
}
@Data
@Builder
@ApiModel
(
description
=
"支付通知结果dto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
MiniPayRequest
{
private
String
timeStamp
;
@JsonProperty
(
"package"
)
private
String
packageInfo
;
private
String
paySign
;
private
String
appId
;
private
String
signType
;
private
String
nonceStr
;
}
@Data
@Builder
@ApiModel
(
description
=
"支付通知结果dto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
PayResult
{
private
Boolean
TransSN
;
private
String
MsgId
;
private
MiniPayRequest
miniPayRequest
;
}
@Data
@Builder
@ApiModel
(
description
=
"支付通知响应dto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
PayResponseDto
{
private
Boolean
success
;
private
String
error
;
private
PayResult
result
;
}
@Data
@Builder
@ApiModel
(
description
=
"第三方支付平台通知请求dto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
ThirdPartyPayInformRequestDto
{
private
String
ClientId
;
private
String
TradeId
;
private
String
RequestDate
;
private
String
RequestSource
;
private
String
PayerOpenId
;
private
String
HospitalCode
;
private
String
PID
;
private
String
Remark
;
private
String
TransAmount
;
private
String
TradeDesc
;
private
String
Sign
;
}
}
src/main/java/com/infoloop/tianting/model/dto/PermissionDTO.java
View file @
0029e47
...
...
@@ -16,10 +16,11 @@ public class PermissionDTO {
private
LoginSourceEnum
loginSourceEnum
;
private
boolean
shouldLoginWithHisCustomerId
;
private
String
hisCustomerId
;
private
boolean
shouldLoginWithCustomerId
;
private
Integer
customerId
;
private
boolean
shouldLoginWithOpenId
;
private
String
openId
;
private
boolean
shouldLoginWithOperatorPhone
;
private
String
operatorPhone
;
private
boolean
shouldLoginWithOpenCode
;
private
String
openCode
;
private
Integer
enterpriseId
;
}
}
...
...
src/main/java/com/infoloop/tianting/model/dto/WxUserDto.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@ApiModel
(
description
=
"WxUserDto"
)
...
...
@@ -12,13 +15,24 @@ public class WxUserDto {
@Data
@Builder
@ApiModel
(
description
=
"WxUserOpenIdDto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
WxUserOpenIdDto
{
public
String
openid
;
}
@Data
@Builder
@ApiModel
(
description
=
"WxUserOpenIdDto"
)
public
static
class
WxUserOpenIdDto1
{
public
String
openId
;
}
@Data
@Builder
@ApiModel
(
description
=
"WxUserOpenIdDto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
WxUserTokenDto
{
public
String
access_token
;
}
...
...
@@ -26,14 +40,19 @@ public class WxUserDto {
@Data
@Builder
@ApiModel
(
description
=
"WxUserPhoneDto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
WxUserPhoneInfoDto
{
public
String
phoneNumber
;
public
String
countryCode
;
}
@Data
@Builder
@ApiModel
(
description
=
"WxUserPhoneDto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
WxUserPhoneResponseDto
{
public
Integer
errcode
;
public
String
errmsg
;
...
...
@@ -41,4 +60,13 @@ public class WxUserDto {
public
WxUserPhoneInfoDto
phone_info
;
}
@Data
@Builder
@ApiModel
(
description
=
"WxUserCodeDto"
)
@NoArgsConstructor
@AllArgsConstructor
public
static
class
WxUserCodeDto
{
public
String
code
;
}
}
...
...
src/main/java/com/infoloop/tianting/service/MenuService.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsResponseDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDetailDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuRefDto
;
...
...
@@ -13,4 +15,6 @@ public interface MenuService {
List
<
MenuDetailDto
>
queryMenuDetailsByMenuId
(
Integer
enterpriseId
,
Integer
menuId
);
List
<
MenuRefDto
>
getClientCustomerMenuRefsByCustomerId
(
Integer
enterpriseId
,
Integer
customerId
);
BatchCreateMenuRefsResponseDto
batchCreateMenuRefs
(
BatchCreateMenuRefsDto
batchCreateMenuRefsDto
);
}
...
...
src/main/java/com/infoloop/tianting/service/OrderService.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto
;
import
java.util.List
;
public
interface
OrderService
{
List
<
OrderDto
>
getOrdersByCustomerId
(
Integer
customerId
);
List
<
OrderDto
>
getOrdersByCondition
(
QueryOrderDto
queryOrderDto
);
OrderAndDetailsDto
getOrdersByCustomerId
(
Integer
customerId
);
OrderAndDetailsDto
getOrdersByCondition
(
QueryOrderByConditionDto
queryOrderDto
);
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
);
List
<
OrderDetailDto
>
getOrderDetailsByOrderId
(
Integer
orderId
);
CreateOrderResponse
createOrder
(
CreateOrderDto
createOrderDto
);
}
...
...
src/main/java/com/infoloop/tianting/service/client/MenuServiceRpcClient.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.infoloop.tianting.menuservice.BatchCreateClientCustomerMenuRefsRpcRequest
;
import
com.infoloop.tianting.menuservice.BatchCreateClientCustomerMenuRefsRpcResponse
;
import
com.infoloop.tianting.menuservice.ClientCustomerMenuRefCreation
;
import
com.infoloop.tianting.menuservice.GetClientCustomerMenuRefsByCustomerIdRpcRequest
;
import
com.infoloop.tianting.menuservice.GetClientCustomerMenuRefsByCustomerIdRpcResponse
;
import
com.infoloop.tianting.menuservice.GetMenuDetailsByMenuIdsRpcRequest
;
...
...
@@ -7,7 +10,12 @@ import com.infoloop.tianting.menuservice.GetMenuDetailsByMenuIdsRpcResponse;
import
com.infoloop.tianting.menuservice.GetMicroPublishedMenusByStallIdsRpcRequest
;
import
com.infoloop.tianting.menuservice.GetMicroPublishedMenusByStallIdsRpcResponse
;
import
com.infoloop.tianting.menuservice.MenuServiceRpcGrpc
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsDto
;
import
com.infoloop.tianting.utils.DateUtil
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -49,4 +57,23 @@ public class MenuServiceRpcClient {
return
menuServiceRpcBlockingStub
.
getClientCustomerMenuRefsByCustomerId
(
request
);
}
public
BatchCreateClientCustomerMenuRefsRpcResponse
batchCreateClientCustomerMenuRefs
(
BatchCreateMenuRefsDto
batchCreateMenuRefsDto
)
{
final
var
creations
=
batchCreateMenuRefsDto
.
getCreations
().
stream
().
map
(
mr
->
ClientCustomerMenuRefCreation
.
newBuilder
()
.
setIsTop
(
mr
.
isTop
())
.
setMenuId
(
mr
.
getMenuId
())
.
setCustomerId
(
mr
.
getCustomerId
())
.
setBindAt
(
LocalDateTime
.
now
().
toEpochSecond
(
ZoneOffset
.
UTC
))
.
build
())
.
collect
(
Collectors
.
toList
());
final
var
request
=
BatchCreateClientCustomerMenuRefsRpcRequest
.
newBuilder
()
.
setCreatedBy
(
batchCreateMenuRefsDto
.
getCreatedBy
())
.
setEnterpriseId
(
batchCreateMenuRefsDto
.
getEnterpriseId
())
.
addAllCreations
(
creations
)
.
setCreationSource
(
batchCreateMenuRefsDto
.
getCreationSource
().
getNumber
())
.
build
();
return
menuServiceRpcBlockingStub
.
batchCreateClientCustomerMenuRefs
(
request
);
}
}
...
...
src/main/java/com/infoloop/tianting/service/client/OperatorServiceRpcClient.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.infoloop.tianting.COperatorServiceProtoRpcGrpc
;
import
com.infoloop.tianting.GetCOperatorByIdRpcRequest
;
import
com.infoloop.tianting.GetCOperatorByMobileOrEmailRpcRequest
;
import
com.infoloop.tianting.GetCOperatorByMobileOrEmailRpcResponse
;
import
com.infoloop.tianting.SingleCOperatorRpcResponse
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
OperatorServiceRpcClient
{
private
final
COperatorServiceProtoRpcGrpc
.
COperatorServiceProtoRpcBlockingStub
cOperatorServiceProtoRpcBlockingStub
;
public
SingleCOperatorRpcResponse
getCOperatorByMobileOrEmail
(
String
keyword
)
{
final
var
request
=
GetCOperatorByMobileOrEmailRpcRequest
.
newBuilder
()
.
setKeyword
(
keyword
)
.
build
();
return
cOperatorServiceProtoRpcBlockingStub
.
getCOperatorByMobileOrEmail
(
request
).
getResponse
();
}
public
SingleCOperatorRpcResponse
getCOperatorById
(
Integer
id
)
{
final
var
request
=
GetCOperatorByIdRpcRequest
.
newBuilder
().
setId
(
id
).
build
();
return
cOperatorServiceProtoRpcBlockingStub
.
getCOperatorById
(
request
).
getResponse
();
}
}
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
client
;
//import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcRequest;
//import com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderAndDetailsRpcResponse;
import
com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderDetailsRpcRequest
;
import
com.infoloop.tianting.clientcustomerorderservice.BatchCreateClientCustomerOrderDetailsRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderCreation
;
import
com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderDetailCreation
;
import
com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderServiceRpcGrpc
;
import
com.infoloop.tianting.clientcustomerorderservice.CloseTimeType
;
import
com.infoloop.tianting.clientcustomerorderservice.CreateClientCustomerOrderRpcRequest
;
import
com.infoloop.tianting.clientcustomerorderservice.CreateClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.CustomerNotice
;
...
...
@@ -16,15 +13,20 @@ import com.infoloop.tianting.clientcustomerorderservice.GetClientCustomerOrdersB
import
com.infoloop.tianting.clientcustomerorderservice.MealDetail
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.PayStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByConditionRpcRequest
;
import
com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByPaginationRpcRequest
;
import
com.infoloop.tianting.clientcustomerorderservice.QueryClientCustomerOrdersByPaginationRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.enums.OrderTypeEnum
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByPaginationDto
;
import
io.swagger.models.auth.In
;
import
java.time.ZoneOffset
;
import
java.util.ArrayList
;
...
...
@@ -43,15 +45,29 @@ public class OrderServiceRpcClient {
GetClientCustomerOrdersByCustomerIdRpcRequest
.
newBuilder
().
setCustomerId
(
customerId
).
build
()).
getResponsesList
();
}
public
List
<
SingleClientCustomerOrderRpcResponse
>
getOrdersByCondition
(
QueryOrderDto
queryOrderDto
)
{
public
List
<
SingleClientCustomerOrderRpcResponse
>
getOrdersByCondition
(
QueryOrderByConditionDto
queryOrderDto
)
{
final
var
request
=
QueryClientCustomerOrdersByConditionRpcRequest
.
newBuilder
()
.
setEnterpriseId
(
queryOrderDto
.
getEnterpriseId
())
.
setShouldFilter
Status
(
queryOrderDto
.
isShouldFilterStatus
())
.
setStatus
(
queryOrderDto
.
getStatus
(
))
.
setShouldFilter
OpenIds
(
queryOrderDto
.
getShouldFilterOpenId
())
.
addAllOpenIds
(
List
.
of
(
queryOrderDto
.
getOpenId
()
))
.
build
();
return
orderServiceRpcBlockingStub
.
queryClientCustomerOrdersByCondition
(
request
).
getResponsesList
();
}
public
QueryClientCustomerOrdersByPaginationRpcResponse
queryClientCustomerOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
)
{
final
var
request
=
QueryClientCustomerOrdersByPaginationRpcRequest
.
newBuilder
()
.
setKeyword
(
queryOrderDto
.
getKeyword
())
.
setPageNo
(
queryOrderDto
.
getPn
())
.
setPageSize
(
queryOrderDto
.
getPz
())
.
setStatus
(
queryOrderDto
.
getStatus
())
.
setEnterpriseId
(
queryOrderDto
.
getEnterpriseId
())
.
setClientId
(
queryOrderDto
.
getClientId
())
.
build
();
return
orderServiceRpcBlockingStub
.
queryClientCustomerOrdersByPagination
(
request
);
}
public
List
<
SingleClientCustomerOrderDetailRpcResponse
>
getOrderDetailsByOrderId
(
Integer
orderId
)
{
return
orderServiceRpcBlockingStub
.
getClientCustomerOrderDetailsByOrderIds
(
GetClientCustomerOrderDetailsByOrderIdsRpcRequest
.
newBuilder
()
...
...
@@ -59,6 +75,14 @@ public class OrderServiceRpcClient {
.
addAllOrderIds
(
List
.
of
(
orderId
))
.
build
()).
getResponsesList
();
}
public
List
<
SingleClientCustomerOrderDetailRpcResponse
>
getOrderDetailsByOrderIds
(
List
<
Integer
>
orderIds
)
{
return
orderServiceRpcBlockingStub
.
getClientCustomerOrderDetailsByOrderIds
(
GetClientCustomerOrderDetailsByOrderIdsRpcRequest
.
newBuilder
()
.
setIncludeDeleted
(
false
)
.
addAllOrderIds
(
orderIds
)
.
build
()).
getResponsesList
();
}
// public GetOrdersByOpenIdRpcResponse queryOrdersByOpenId(Integer openId) {
// return orderServiceRpcBlockingStub.getOrdersByCustomerId(
// GetOrdersByOpenIdRpcRequest.newBuilder().setOpenId(openId).build());
...
...
@@ -106,26 +130,31 @@ public class OrderServiceRpcClient {
.
build
();
final
var
creation
=
ClientCustomerOrderCreation
.
newBuilder
()
.
setShouldCreateCustomerId
(
true
)
.
setShouldCreateCustomerId
(
createOrderDto
.
getShouldCreateCustomerId
()
)
.
setCustomerId
(
createOrderDto
.
getCustomerId
())
.
setStallId
(
createOrderDto
.
getStallId
())
.
setAddress
(
createOrderDto
.
getAddress
())
.
setClientId
(
createOrderDto
.
getClientId
())
.
setShouldCreateOpenId
(
!
createOrderDto
.
getOpenId
().
isEmpty
())
.
setShouldCreateOpenId
(
createOrderDto
.
getShouldCreateOpenId
())
.
setOpenId
(
createOrderDto
.
getOpenId
())
.
setShouldCreateRoomNo
(!
createOrderDto
.
getRoomNo
().
isEmpty
())
.
setRoomNo
(
createOrderDto
.
getRoomNo
())
.
setShouldCreateTableCode
(
createOrderDto
.
getOrderType
().
equals
(
OrderTypeEnum
.
DINE_IN
.
getValue
()))
.
setTableCode
(
createOrderDto
.
getTableCode
())
.
setOnlinePay
(
createOrderDto
.
getOnlinePay
())
.
setShouldCreatePayStatus
(
createOrderDto
.
getOnlinePay
())
.
setPayStatus
(
PayStatusEnum
.
TO_PAY
)
.
setMenuId
(
createOrderDto
.
getMenuId
())
.
setTotalNum
(
createOrderDto
.
getTotalNum
())
.
setPayPrice
(
createOrderDto
.
getPayPrice
())
.
setMealTime
(
createOrderDto
.
getMealTime
().
toInstant
(
ZoneOffset
.
UTC
).
toEpochMilli
())
.
setShouldCreatePickupCode
(
createOrderDto
.
getOrderType
().
equals
(
OrderTypeEnum
.
DINE_IN
.
getValue
()))
.
setPickupCode
(
createOrderDto
.
getPickupCode
())
.
setShouldCreateTableCode
(
createOrderDto
.
getCloseTimeType
().
equals
(
CloseTimeType
.
IMMEDIATELY
))
.
setTableCode
(
createOrderDto
.
getTableCode
())
.
setShouldCreatePickupCode
(
createOrderDto
.
getCloseTimeType
().
equals
(
CloseTimeType
.
IMMEDIATELY
))
// .setPickupCode(createOrderDto.getPickupCode())
.
setRemark
(
createOrderDto
.
getRemark
())
.
setCustomerNoticeJson
(
customerNotice
)
.
setCloseTimeType
(
createOrderDto
.
getCloseTimeType
())
.
setShouldCreateOrderDetails
(
true
)
.
addAllOrderDetails
(
orderDetails
)
.
build
();
...
...
@@ -136,12 +165,6 @@ public class OrderServiceRpcClient {
.
setEnterpriseId
(
createOrderDto
.
getEnterpriseId
())
.
setCreatedBy
(
createOrderDto
.
getCreatedBy
())
.
build
());
// BatchCreateClientCustomerOrderDetailsRpcResponse orderDetailsRpcResponse = orderServiceRpcBlockingStub.batchCreateClientCustomerOrderDetails(
// BatchCreateClientCustomerOrderDetailsRpcRequest.newBuilder()
// .addAllCreations(orderDetails)
// .setCreatedBy(createOrderDto.getCreatedBy())
// .setEnterpriseId(createOrderDto.getEnterpriseId())
// .setCreationSource(OrderSourceEnum.forNumber(createOrderDto.getCreationSource())).build());
return
CreateOrderResponse
.
builder
().
id
(
orderResponse
.
getId
()).
isCreated
(
true
).
build
();
}
...
...
src/main/java/com/infoloop/tianting/service/client/PayServiceClient.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.infoloop.tianting.model.dto.PayDTO.PayInformRequestDto
;
import
com.infoloop.tianting.model.dto.PayDTO.PayResponseDto
;
import
com.infoloop.tianting.model.dto.PayDTO.ThirdPartyPayInformRequestDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserPhoneResponseDto
;
import
com.infoloop.tianting.utils.DateUtil
;
import
com.infoloop.tianting.utils.EncryptionUtil
;
import
java.time.LocalDateTime
;
import
lombok.RequiredArgsConstructor
;
import
okhttp3.FormBody
;
import
okhttp3.MediaType
;
import
okhttp3.OkHttpClient
;
import
okhttp3.Request
;
import
okhttp3.RequestBody
;
import
okhttp3.Response
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
PayServiceClient
{
private
final
OkHttpClient
client
=
new
OkHttpClient
();
public
PayResponseDto
payInform
(
PayInformRequestDto
payRequestDto
)
{
try
{
String
url
=
"http://10.2.1.166:21051/API/Microapp/CreateOrder?appid=Order0001"
;
String
clientId
=
"Order0001"
;
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ThirdPartyPayInformRequestDto
jsonData
=
new
ThirdPartyPayInformRequestDto
();
jsonData
.
setClientId
(
clientId
);
jsonData
.
setTradeId
(
payRequestDto
.
getOrderId
());
String
requestDate
=
DateUtil
.
formatDate
(
LocalDateTime
.
now
(),
DateUtil
.
YMDHMS
);
jsonData
.
setRequestDate
(
requestDate
);
jsonData
.
setRequestSource
(
""
);
jsonData
.
setPayerOpenId
(
payRequestDto
.
getOpenId
());
jsonData
.
setHospitalCode
(
payRequestDto
.
getHospitalCode
());
jsonData
.
setPID
(
""
);
jsonData
.
setRemark
(
""
);
jsonData
.
setTransAmount
(
payRequestDto
.
getPrice
());
jsonData
.
setTradeDesc
(
""
);
String
signStr
=
EncryptionUtil
.
sha1Encryption
(
clientId
+
payRequestDto
.
getOrderId
()+
requestDate
+
"Order0001"
);
jsonData
.
setSign
(
signStr
);
String
jsonDataString
=
objectMapper
.
writeValueAsString
(
jsonData
);
// 设置请求体的媒体类型为JSON
MediaType
mediaType
=
MediaType
.
parse
(
"application/json; charset=utf-8"
);
RequestBody
body
=
RequestBody
.
create
(
mediaType
,
jsonDataString
);
Request
getPhoneRequest
=
new
Request
.
Builder
()
.
url
(
url
)
.
post
(
body
)
.
build
();
Response
payResponse
=
client
.
newCall
(
getPhoneRequest
).
execute
();
String
payJsonData
=
payResponse
.
body
().
string
();
System
.
out
.
println
(
"pay json:"
+
payJsonData
);
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
PayResponseDto
payResponseDto
=
objectMapper
.
readValue
(
payJsonData
,
PayResponseDto
.
class
);
return
payResponseDto
;
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
e
.
getStackTrace
().
toString
());
throw
new
IllegalArgumentException
(
"支付通知失败"
);
}
}
}
src/main/java/com/infoloop/tianting/service/client/WxMiniProgramClient.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.infoloop.tianting.constant.ConfigConstants
;
import
com.infoloop.tianting.model.dto.WxUserDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserCodeDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserOpenIdDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserOpenIdDto1
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserPhoneResponseDto
;
import
com.infoloop.tianting.model.dto.WxUserDto.WxUserTokenDto
;
import
com.infoloop.tianting.utils.JsonUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.Value
;
import
okhttp3.FormBody
;
import
okhttp3.MediaType
;
import
okhttp3.OkHttpClient
;
import
okhttp3.Request
;
import
okhttp3.RequestBody
;
...
...
@@ -24,29 +30,37 @@ public class WxMiniProgramClient {
public
WxUserPhoneResponseDto
getUserPhoneInfoByCode
(
String
code
)
{
try
{
String
getTokenUrl
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+
ConfigConstants
.
MINI_PROGRAM_APP_ID
+
"&secret="
+
ConfigConstants
.
MINI_PROGRAM_APP_SECRET
;
String
getTokenUrl
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=
wx40ec496d73b58ec6
"
+
"&secret=5b309517bf918abf760b2195e91b99f3"
;
Request
getTokenRequest
=
new
Request
.
Builder
()
.
url
(
getTokenUrl
)
.
build
();
Response
getTokenResponse
=
client
.
newCall
(
getTokenRequest
).
execute
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
String
tokenJsonData
=
getTokenResponse
.
body
().
string
();
WxUserTokenDto
wxUserTokenDto
=
JsonUtil
.
readJsonAs
(
tokenJsonData
,
WxUserTokenDto
.
class
);
WxUserTokenDto
wxUserTokenDto
=
objectMapper
.
readValue
(
tokenJsonData
,
WxUserTokenDto
.
class
);
System
.
out
.
println
(
"token:"
+
wxUserTokenDto
.
getAccess_token
());
String
getPhoneUrl
=
"https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="
+
wxUserTokenDto
.
getAccess_token
();
FormBody
.
Builder
formBuilder
=
new
FormBody
.
Builder
();
formBuilder
.
add
(
"code"
,
code
);
RequestBody
requestBody
=
formBuilder
.
build
();
WxUserCodeDto
jsonData
=
new
WxUserCodeDto
();
jsonData
.
setCode
(
code
);
String
jsonDataString
=
objectMapper
.
writeValueAsString
(
jsonData
);
MediaType
mediaType
=
MediaType
.
parse
(
"application/json; charset=utf-8"
);
RequestBody
body
=
RequestBody
.
create
(
mediaType
,
jsonDataString
);
Request
getPhoneRequest
=
new
Request
.
Builder
()
.
url
(
getPhoneUrl
)
.
post
(
requestB
ody
)
.
post
(
b
ody
)
.
build
();
Response
getPhoneResponse
=
client
.
newCall
(
getPhoneRequest
).
execute
();
String
phoneJsonData
=
getPhoneResponse
.
body
().
string
();
WxUserPhoneResponseDto
wxUserPhoneResponseDto
=
JsonUtil
.
readJsonAs
(
phoneJsonData
,
WxUserPhoneResponseDto
.
class
);
System
.
out
.
println
(
"------------------------"
);
System
.
out
.
println
(
"phone json:"
+
phoneJsonData
);
WxUserPhoneResponseDto
wxUserPhoneResponseDto
=
objectMapper
.
readValue
(
phoneJsonData
,
WxUserPhoneResponseDto
.
class
);
return
wxUserPhoneResponseDto
;
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
e
.
getMessage
());
throw
new
IllegalArgumentException
(
"获取用户手机号失败"
);
}
}
...
...
@@ -55,8 +69,8 @@ public class WxMiniProgramClient {
try
{
String
url
=
"https://api.weixin.qq.com/sns/jscode2session"
+
"?appid=
"
+
ConfigConstants
.
MINI_PROGRAM_APP_ID
+
"&secret="
+
ConfigConstants
.
MINI_PROGRAM_APP_SECRET
+
"&js_code="
+
code
+
"&grant_type=authorization_code"
;
"?appid=
wx40ec496d73b58ec6"
+
"&secret=5b309517bf918abf760b2195e91b99f3"
+
"&js_code="
+
code
+
"&grant_type=authorization_code"
;
System
.
out
.
println
(
"url:"
+
url
);
Request
request
=
new
Request
.
Builder
()
.
url
(
url
)
.
build
();
...
...
@@ -64,13 +78,11 @@ public class WxMiniProgramClient {
Response
response
=
client
.
newCall
(
request
).
execute
();
String
jsonData
=
response
.
body
().
string
();
WxUserOpenIdDto
res
=
JsonUtil
.
readJsonAs
(
jsonData
,
WxUserOpenIdDto
.
class
);
return
res
;
// String openid = data.getOpenid();
//
// return WxUserLoginResponseDto.builder().openId(openid).build();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
return
objectMapper
.
readValue
(
jsonData
,
WxUserOpenIdDto
.
class
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"error"
+
e
.
getMessage
());
throw
new
IllegalArgumentException
(
"获取用户openid失败"
);
}
}
...
...
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
View file @
0029e47
...
...
@@ -3,6 +3,7 @@ package com.infoloop.tianting.service.impl;
import
cn.dev33.satoken.stp.SaLoginModel
;
import
cn.dev33.satoken.stp.SaTokenInfo
;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.infoloop.tianting.COperatorServiceProtoRpcGrpc
;
import
com.infoloop.tianting.clientcustomerservice.GetClientCustomerByIdRpcRequest
;
import
com.infoloop.tianting.clientcustomerservice.SingleClientCustomerRpcResponse
;
import
com.infoloop.tianting.constant.CommonConstants
;
...
...
@@ -11,7 +12,10 @@ import com.infoloop.tianting.exception.ErrorCodeEnum;
import
com.infoloop.tianting.model.dto.PermissionDTO.LoginDto
;
import
com.infoloop.tianting.service.ClientCustomerService
;
import
com.infoloop.tianting.service.LoginService
;
import
com.infoloop.tianting.service.WxMiniProgramService
;
import
com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient
;
import
com.infoloop.tianting.service.client.OperatorServiceRpcClient
;
import
com.infoloop.tianting.service.client.WxMiniProgramClient
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -23,20 +27,22 @@ import org.springframework.stereotype.Service;
public
class
LoginServiceImpl
implements
LoginService
{
private
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
;
private
final
OperatorServiceRpcClient
operatorServiceRpcClient
;
private
final
WxMiniProgramClient
wxMiniProgramClient
;
@Override
public
SaTokenInfo
login
(
LoginDto
loginDto
)
{
if
(
loginDto
.
isShouldLoginWithOpenId
())
{
if
(
loginDto
.
isShouldLoginWithOpenCode
())
{
final
var
wxUserOpenIdDto
=
wxMiniProgramClient
.
getUserOpenIdByCode
(
loginDto
.
getOpenCode
());
StpUtil
.
login
(
wxUserOpenIdDto
.
getOpenid
(),
SaLoginModel
.
create
()
.
setExtra
(
CommonConstants
.
ENTERPRISE_ID
,
loginDto
.
getEnterpriseId
())
.
setExtra
(
CommonConstants
.
LOGIN_SOURCE
,
loginDto
.
getLoginSourceEnum
().
getValue
())
.
build
());
return
StpUtil
.
getTokenInfo
();
}
else
{
final
SingleClientCustomerRpcResponse
customer
;
if
(
loginDto
.
isShouldLoginWithHisCustomerId
()){
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerByHISCustomerId
(
loginDto
.
getHisCustomerId
()).
getResponse
();
}
else
{
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerById
(
loginDto
.
getCustomerId
()).
getResponse
();
}
else
if
(
loginDto
.
isShouldLoginWithHisCustomerId
()){
final
var
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerByHISCustomerId
(
loginDto
.
getHisCustomerId
()).
getResponse
();
if
(
customer
.
getId
()
==
0
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
...
...
@@ -46,6 +52,18 @@ public class LoginServiceImpl implements LoginService {
.
build
());
return
StpUtil
.
getTokenInfo
();
}
else
{
final
var
operator
=
operatorServiceRpcClient
.
getCOperatorByMobileOrEmail
(
loginDto
.
getOperatorPhone
());
if
(
operator
.
getId
()
==
0
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
StpUtil
.
login
(
operator
.
getId
(),
SaLoginModel
.
create
()
.
setExtra
(
CommonConstants
.
ENTERPRISE_ID
,
operator
.
getEnterpriseId
())
.
setExtra
(
CommonConstants
.
LOGIN_SOURCE
,
loginDto
.
getLoginSourceEnum
().
getValue
())
.
build
());
return
StpUtil
.
getTokenInfo
();
}
}
}
...
...
src/main/java/com/infoloop/tianting/service/impl/MenuServiceImpl.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
impl
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.BatchCreateMenuRefsResponseDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.DishRuleJson
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDetailDto
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.MenuDto
;
...
...
@@ -60,6 +62,7 @@ public class MenuServiceImpl implements MenuService {
.
updatedBy
(
menu
.
getUpdatedBy
())
.
updateSource
(
menu
.
getUpdateSource
())
.
updatedAt
(
DateUtil
.
formatDate
(
menu
.
getUpdatedAt
()))
.
publishAt
(
DateUtil
.
formatDate
(
menu
.
getPublishAt
()))
.
build
()).
collect
(
Collectors
.
toList
());
}
...
...
@@ -106,4 +109,13 @@ public class MenuServiceImpl implements MenuService {
}
@Override
public
BatchCreateMenuRefsResponseDto
batchCreateMenuRefs
(
BatchCreateMenuRefsDto
batchCreateMenuRefsDto
)
{
final
var
response
=
menuServiceRpcClient
.
batchCreateClientCustomerMenuRefs
(
batchCreateMenuRefsDto
);
return
BatchCreateMenuRefsResponseDto
.
builder
()
.
ids
(
response
.
getIdsList
())
.
isCreated
(
response
.
getIsCreated
())
.
build
();
}
}
...
...
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
View file @
0029e47
package
com
.
infoloop
.
tianting
.
service
.
impl
;
import
com.infoloop.tianting.model.
dto.OrderDbDTO
;
import
com.infoloop.tianting.model.
common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CustomerNotice
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.MealDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderDto
;
import
com.infoloop.tianting.model.
vo.TestExampleDbVO
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrder
ByCondition
Dto
;
import
com.infoloop.tianting.model.
dto.OrderDbDTO.QueryOrderByPaginationDto
;
import
com.infoloop.tianting.service.OrderService
;
import
com.infoloop.tianting.service.client.OrderServiceRpcClient
;
import
com.infoloop.tianting.utils.DateUtil
;
import
com.infoloop.tianting.utils.PageUtil
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -70,9 +72,9 @@ public class OrderServiceImpl implements OrderService {
}
@Override
public
List
<
OrderDto
>
getOrdersByCustomerId
(
Integer
customerId
)
{
public
OrderAndDetailsDto
getOrdersByCustomerId
(
Integer
customerId
)
{
final
var
responseList
=
orderServiceRpcClient
.
getOrdersByCustomerId
(
customerId
);
return
responseList
.
stream
().
map
(
r
->
OrderDto
.
builder
()
final
var
orders
=
responseList
.
stream
().
map
(
r
->
OrderDto
.
builder
()
.
id
(
r
.
getId
())
.
enterpriseId
(
r
.
getEnterpriseId
())
.
clientId
(
r
.
getClientId
())
...
...
@@ -103,12 +105,122 @@ public class OrderServiceImpl implements OrderService {
.
updatedAt
(
DateUtil
.
formatDate
(
r
.
getUpdatedAt
()))
.
updatedBy
(
r
.
getUpdatedBy
())
.
build
()).
collect
(
Collectors
.
toList
());
final
var
ids
=
orders
.
stream
().
map
(
OrderDto:
:
getId
).
collect
(
Collectors
.
toList
());
final
var
detailsResponse
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
ids
);
final
var
detailDtos
=
detailsResponse
.
stream
().
map
(
d
->
OrderDetailDto
.
builder
()
.
id
(
d
.
getId
())
.
count
(
d
.
getCount
())
.
categoryId
(
d
.
getCategoryId
())
.
mealId
(
d
.
getMealId
())
.
menuDetailId
(
d
.
getMenuDetailId
())
.
orderId
(
d
.
getOrderId
())
.
price
(
d
.
getPrice
())
.
showName
(
d
.
getShowName
())
.
mealDetailJson
(
MealDetailDto
.
builder
()
.
allergies
(
d
.
getMealDetailJson
().
getAllergiesList
())
.
basicMaterials
(
d
.
getMealDetailJson
().
getBasicMaterials
())
.
dockers
(
d
.
getMealDetailJson
().
getDockersList
())
.
efficacies
(
d
.
getMealDetailJson
().
getEfficaciesList
())
.
fat
(
d
.
getMealDetailJson
().
getFat
())
.
tastes
(
d
.
getMealDetailJson
().
getTastesList
())
.
protein
(
d
.
getMealDetailJson
().
getProtein
())
.
carbohydrate
(
d
.
getMealDetailJson
().
getCarbohydrate
())
.
energy
(
d
.
getMealDetailJson
().
getEnergy
())
.
avoids
(
d
.
getMealDetailJson
().
getAvoidsList
())
.
skus
(
d
.
getMealDetailJson
().
getSkusList
())
.
build
())
.
adjustSkuRemark
(
d
.
getAdjustSkuRemark
())
.
enterpriseId
(
d
.
getEnterpriseId
())
.
skuId
(
d
.
getSkuId
())
.
notServe
(
d
.
getNotServe
())
.
creationSource
(
d
.
getCreationSource
().
getNumber
())
.
createdBy
(
d
.
getCreatedBy
())
.
createdAt
(
DateUtil
.
formatDate
(
d
.
getCreatedAt
()))
.
updateSource
(
d
.
getUpdateSource
().
getNumber
())
.
updatedAt
(
DateUtil
.
formatDate
(
d
.
getUpdatedAt
()))
.
updatedBy
(
d
.
getUpdatedBy
())
.
build
()).
collect
(
Collectors
.
toList
());
return
OrderAndDetailsDto
.
builder
().
orderDetails
(
detailDtos
).
orders
(
orders
).
build
();
}
@Override
public
List
<
OrderDto
>
getOrdersByCondition
(
QueryOrder
Dto
queryOrderDto
)
{
public
OrderAndDetailsDto
getOrdersByCondition
(
QueryOrderByCondition
Dto
queryOrderDto
)
{
final
var
responseList
=
orderServiceRpcClient
.
getOrdersByCondition
(
queryOrderDto
);
return
responseList
.
stream
().
map
(
r
->
OrderDto
.
builder
()
final
var
orders
=
responseList
.
stream
().
map
(
r
->
OrderDto
.
builder
()
.
id
(
r
.
getId
())
.
enterpriseId
(
r
.
getEnterpriseId
())
.
clientId
(
r
.
getClientId
())
.
stallId
(
r
.
getStallId
())
.
customerId
(
r
.
getCustomerId
())
.
openId
(
r
.
getOpenId
())
.
address
(
r
.
getAddress
())
.
orderCode
(
r
.
getOrderCode
())
.
menuId
(
r
.
getMenuId
())
.
pickupCode
(
r
.
getPickupCode
())
.
tableCode
(
r
.
getTableCode
())
.
roomNo
(
r
.
getRoomNo
())
.
status
(
r
.
getStatus
().
getNumber
())
.
customerNoticeJson
(
CustomerNotice
.
builder
()
.
avoids
(
r
.
getCustomerNoticeJson
().
getAvoidsList
())
.
doctors
(
r
.
getCustomerNoticeJson
().
getDoctorsList
()).
build
())
.
onlinePay
(
r
.
getOnlinePay
())
.
payStatus
(
r
.
getPayStatusValue
())
.
payPrice
(
r
.
getPayPrice
())
.
payTime
(
DateUtil
.
formatDate
(
r
.
getPayTime
()))
.
mealTime
(
DateUtil
.
formatDate
(
r
.
getMealTime
()))
.
orderType
(
r
.
getOrderTypeValue
())
.
remark
(
r
.
getRemark
())
.
creationSource
(
r
.
getCreationSource
().
getNumber
())
.
createdBy
(
r
.
getCreatedBy
())
.
createdAt
(
DateUtil
.
formatDate
(
r
.
getCreatedAt
()))
.
updateSource
(
r
.
getUpdateSource
().
getNumber
())
.
updatedAt
(
DateUtil
.
formatDate
(
r
.
getUpdatedAt
()))
.
updatedBy
(
r
.
getUpdatedBy
())
.
build
()).
collect
(
Collectors
.
toList
());
final
var
ids
=
orders
.
stream
().
map
(
OrderDto:
:
getId
).
collect
(
Collectors
.
toList
());
final
var
detailsResponse
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
ids
);
final
var
detailDtos
=
detailsResponse
.
stream
().
map
(
d
->
OrderDetailDto
.
builder
()
.
id
(
d
.
getId
())
.
count
(
d
.
getCount
())
.
categoryId
(
d
.
getCategoryId
())
.
mealId
(
d
.
getMealId
())
.
menuDetailId
(
d
.
getMenuDetailId
())
.
orderId
(
d
.
getOrderId
())
.
price
(
d
.
getPrice
())
.
showName
(
d
.
getShowName
())
.
mealDetailJson
(
MealDetailDto
.
builder
()
.
allergies
(
d
.
getMealDetailJson
().
getAllergiesList
())
.
basicMaterials
(
d
.
getMealDetailJson
().
getBasicMaterials
())
.
dockers
(
d
.
getMealDetailJson
().
getDockersList
())
.
efficacies
(
d
.
getMealDetailJson
().
getEfficaciesList
())
.
fat
(
d
.
getMealDetailJson
().
getFat
())
.
tastes
(
d
.
getMealDetailJson
().
getTastesList
())
.
protein
(
d
.
getMealDetailJson
().
getProtein
())
.
carbohydrate
(
d
.
getMealDetailJson
().
getCarbohydrate
())
.
energy
(
d
.
getMealDetailJson
().
getEnergy
())
.
avoids
(
d
.
getMealDetailJson
().
getAvoidsList
())
.
skus
(
d
.
getMealDetailJson
().
getSkusList
())
.
build
())
.
adjustSkuRemark
(
d
.
getAdjustSkuRemark
())
.
enterpriseId
(
d
.
getEnterpriseId
())
.
skuId
(
d
.
getSkuId
())
.
notServe
(
d
.
getNotServe
())
.
creationSource
(
d
.
getCreationSource
().
getNumber
())
.
createdBy
(
d
.
getCreatedBy
())
.
createdAt
(
DateUtil
.
formatDate
(
d
.
getCreatedAt
()))
.
updateSource
(
d
.
getUpdateSource
().
getNumber
())
.
updatedAt
(
DateUtil
.
formatDate
(
d
.
getUpdatedAt
()))
.
updatedBy
(
d
.
getUpdatedBy
())
.
build
()).
collect
(
Collectors
.
toList
());
return
OrderAndDetailsDto
.
builder
().
orderDetails
(
detailDtos
).
orders
(
orders
).
build
();
}
@Override
public
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
)
{
final
var
response
=
orderServiceRpcClient
.
queryClientCustomerOrdersByPagination
(
queryOrderDto
);
final
var
results
=
response
.
getResponsesList
().
stream
().
map
(
r
->
OrderDto
.
builder
()
.
id
(
r
.
getId
())
.
enterpriseId
(
r
.
getEnterpriseId
())
.
clientId
(
r
.
getClientId
())
...
...
@@ -132,12 +244,18 @@ public class OrderServiceImpl implements OrderService {
.
mealTime
(
DateUtil
.
formatDate
(
r
.
getMealTime
()))
.
orderType
(
r
.
getOrderTypeValue
())
.
remark
(
r
.
getRemark
())
.
isDeleted
(
r
.
getIsDeleted
())
.
isRead
(
r
.
getIsRead
())
.
creationSource
(
r
.
getCreationSource
().
getNumber
())
.
createdBy
(
r
.
getCreatedBy
())
.
createdAt
(
DateUtil
.
formatDate
(
r
.
getCreatedAt
()))
.
updateSource
(
r
.
getUpdateSource
().
getNumber
())
.
updatedAt
(
DateUtil
.
formatDate
(
r
.
getUpdatedAt
()))
.
updatedBy
(
r
.
getUpdatedBy
())
.
closeTimeType
(
r
.
getCloseTimeTypeValue
())
.
totalNum
(
r
.
getTotalNum
())
.
build
()).
collect
(
Collectors
.
toList
());
return
PageUtil
.
from
(
results
,
response
.
getTotal
(),
response
.
getPages
(),
queryOrderDto
.
getPn
(),
queryOrderDto
.
getPz
());
}
}
...
...
src/main/java/com/infoloop/tianting/utils/EncryptionUtil.java
0 → 100644
View file @
0029e47
package
com
.
infoloop
.
tianting
.
utils
;
import
java.security.MessageDigest
;
public
class
EncryptionUtil
{
public
static
String
sha1Encryption
(
String
input
)
{
try
{
// 获取SHA1算法的MessageDigest实例
MessageDigest
md
=
MessageDigest
.
getInstance
(
"SHA1"
);
// 将输入字符串转换为字节数组并更新MessageDigest
md
.
update
(
input
.
getBytes
());
// 计算哈希值,得到字节数组形式的结果
byte
[]
digest
=
md
.
digest
();
// 将字节数组转换为十六进制字符串表示
StringBuilder
hexString
=
new
StringBuilder
();
for
(
byte
b
:
digest
)
{
String
hex
=
Integer
.
toHexString
(
0xff
&
b
);
if
(
hex
.
length
()
==
1
)
{
hexString
.
append
(
'0'
);
}
hexString
.
append
(
hex
);
}
return
hexString
.
toString
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
}
src/main/proto/COperatorServiceProtoRpc.proto
0 → 100644
View file @
0029e47
syntax
=
"proto3"
;
option
java_multiple_files
=
true
;
option
java_package
=
"com.infoloop.tianting"
;
option
java_outer_classname
=
"COperatorsServiceProto"
;
option
objc_class_prefix
=
"OP"
;
package
com
.
infoloop.tianting
;
service
COperatorServiceProtoRpc
{
rpc
GetCOperatorById
(
GetCOperatorByIdRpcRequest
)
returns
(
GetCOperatorByIdRpcResponse
)
{}
rpc
GetCOperatorByIds
(
GetCOperatorByIdsRpcRequest
)
returns
(
GetCOperatorByIdsRpcResponse
)
{}
rpc
GetCOperatorsByClientIds
(
GetCOperatorsByIdsRpcRequest
)
returns
(
GetCOperatorsByIdsRpcResponse
)
{}
rpc
GetCOperatorByCondition
(
GetCOperatorByConditionRpcRequest
)
returns
(
GetCOperatorByConditionRpcResponse
)
{}
rpc
GetCOperatorByEmail
(
GetCOperatorByEmailRpcRequest
)
returns
(
GetCOperatorByEmailRpcResponse
)
{}
rpc
UpdateCOperatorStatusByClientIds
(
UpdateCOperatorStatusByClientIdsRpcRequest
)
returns
(
UpdateCOperatorStatusByClientIdsRpcResponse
)
{}
rpc
GetCOperatorOnlyById
(
GetOperatorOnlyByIdRpcRequest
)
returns
(
GetOperatorOnlyByIdRpcResponse
)
{}
rpc
GetCOperatorByMobile
(
GetCOperatorByMobileRpcRequest
)
returns
(
GetCOperatorByMobileRpcResponse
)
{}
rpc
UpdateCOperatorPasswordById
(
UpdateCOperatorPasswordByIdRpcRequest
)
returns
(
UpdateCOperatorPasswordByIdRpcResponse
)
{}
rpc
UpdateCOperatorMobileById
(
UpdateCOperatorMobileByIdRpcRequest
)
returns
(
UpdateCOperatorMobileByIdRpcResponse
)
{}
rpc
UpdateCOperatorAliasById
(
UpdateCOperatorAliasByIdRpcRequest
)
returns
(
UpdateCOperatorAliasByIdRpcResponse
)
{}
rpc
CreateCOperator
(
CreateCOperatorRpcRequest
)
returns
(
CreateCOperatorRpcResponse
)
{}
rpc
UpdateCOperator
(
UpdateCOperatorRpcRequest
)
returns
(
UpdateCOperatorRpcResponse
)
{}
rpc
DeleteCOperatorByIds
(
DeleteCOperatorByIdsRpcRequest
)
returns
(
DeleteCOperatorByIdsRpcResponse
)
{}
rpc
GetRoleIdsByOperatorId
(
GetRoleIdsByOperatorIdRpcRequest
)
returns
(
GetRoleIdsByOperatorIdRpcResponse
)
{}
rpc
CreateCRoles
(
CreateCRolesRpcRequest
)
returns
(
CreateCRolesRpcResponse
)
{}
rpc
CreateCRole
(
CreateCRoleRpcRequest
)
returns
(
CreateCRoleRpcResponse
)
{}
rpc
GetCOperatorByMobileOrEmail
(
GetCOperatorByMobileOrEmailRpcRequest
)
returns
(
GetCOperatorByMobileOrEmailRpcResponse
)
{}
}
enum
COperatorStatus
{
UN_KNOW_COPERATOR
=
0
;
ENABLE
=
1
;
DISABLE
=
3
;
}
message
UpdateCOperatorStatusByClientIdsRpcRequest
{
repeated
int32
clientIds
=
1
;
int32
enterpriseId
=
2
;
COperatorStatus
status
=
3
;
}
message
UpdateCOperatorStatusByClientIdsRpcResponse
{
bool
isUpdated
=
1
;
}
message
GetOperatorOnlyByIdRpcRequest
{
int32
id
=
1
;
}
message
GetOperatorOnlyByIdRpcResponse
{
SingleCOperatorRpcResponse
response
=
1
;
}
message
GetCOperatorByMobileRpcRequest
{
string
mobile
=
1
;
}
message
GetCOperatorByMobileRpcResponse
{
SingleCOperatorRpcResponse
response
=
1
;
}
message
GetCOperatorByIdRpcRequest
{
int32
enterpriseId
=
1
;
int32
id
=
2
;
}
message
GetCOperatorByIdsRpcRequest
{
repeated
int32
ids
=
1
;
bool
includeDeleted
=
2
;
}
message
GetCOperatorsByIdsRpcRequest
{
repeated
int32
ids
=
1
;
bool
includeDeleted
=
2
;
bool
isPrimary
=
3
;
bool
shouldFilerIsPrimary
=
4
;
}
message
GetCOperatorByConditionRpcResponse
{
repeated
SingleCOperatorRpcResponse
responses
=
1
;
}
message
GetCOperatorByConditionRpcRequest
{
int32
enterpriseId
=
1
;
repeated
int32
ids
=
2
;
repeated
int32
clientIds
=
3
;
string
name
=
4
;
string
email
=
5
;
string
password
=
6
;
COperatorStatus
status
=
7
;
repeated
int32
stallIds
=
8
;
string
mobile
=
9
;
bool
isPrimary
=
10
;
bool
shouldFilerIds
=
11
;
bool
shouldFilerClientIds
=
12
;
bool
shouldFilerName
=
13
;
bool
shouldFilerEmail
=
14
;
bool
shouldFilerPassword
=
15
;
bool
shouldFilerStatus
=
16
;
bool
shouldFilerStallIds
=
17
;
bool
shouldFilerMobile
=
18
;
bool
shouldFilerIsPrimary
=
19
;
}
message
UpdateCOperatorPasswordByIdRpcRequest
{
int32
id
=
1
;
string
password
=
2
;
}
message
UpdateCOperatorPasswordByIdRpcResponse
{
bool
isUpdated
=
1
;
}
message
UpdateCOperatorMobileByIdRpcRequest
{
int32
id
=
1
;
string
mobile
=
2
;
}
message
UpdateCOperatorAliasByIdRpcRequest
{
int32
id
=
1
;
string
alias
=
2
;
}
message
UpdateCOperatorMobileByIdRpcResponse
{
bool
isUpdated
=
1
;
}
message
UpdateCOperatorAliasByIdRpcResponse
{
bool
isUpdated
=
1
;
}
message
SingleCOperatorRpcResponse
{
int32
id
=
1
;
int32
enterpriseId
=
2
;
int32
clientId
=
3
;
string
name
=
4
;
bool
isEmailSet
=
5
;
string
email
=
6
;
string
password
=
7
;
int32
status
=
8
;
int64
createdAt
=
9
;
int64
updatedAt
=
10
;
bool
isDeleted
=
11
;
bool
isStallIdSet
=
12
;
int32
stallId
=
13
;
bool
isPrimary
=
14
;
bool
isMobileSet
=
15
;
string
mobile
=
16
;
string
phone
=
17
;
string
alias
=
18
;
}
message
GetCOperatorByIdRpcResponse
{
SingleCOperatorRpcResponse
response
=
1
;
}
message
GetCOperatorsByIdsRpcResponse
{
repeated
SingleCOperatorRpcResponse
responses
=
1
;
}
message
GetCOperatorByIdsRpcResponse
{
repeated
SingleCOperatorRpcResponse
responses
=
1
;
}
message
GetCOperatorByEmailRpcRequest
{
string
email
=
1
;
}
message
GetCOperatorByEmailRpcResponse
{
SingleCOperatorRpcResponse
response
=
1
;
}
message
GetRoleIdsByOperatorIdRpcRequest
{
int32
enterpriseId
=
1
;
int32
operatorId
=
2
;
}
message
GetRoleIdsByOperatorIdRpcResponse
{
repeated
int32
roleIds
=
1
;
}
message
SingleCRoleCreationRpcRequest
{
int32
clientId
=
1
;
string
code
=
2
;
string
name
=
3
;
string
description
=
4
;
int32
status
=
5
;
}
message
CreateCRolesRpcRequest
{
int32
enterpriseId
=
1
;
repeated
SingleCRoleCreationRpcRequest
creations
=
2
;
}
message
CreateCRolesRpcResponse
{
bool
isCreated
=
1
;
repeated
int32
ids
=
2
;
}
message
CreateCOperatorRpcResponse
{
bool
isCreated
=
1
;
int32
id
=
2
;
}
message
UpdateCOperatorRpcResponse
{
bool
isUpdated
=
1
;
}
message
CreateCOperatorRpcRequest
{
int32
enterpriseId
=
1
;
int32
clientId
=
2
;
string
code
=
3
;
string
name
=
4
;
string
email
=
5
;
string
password
=
6
;
string
phone
=
7
;
string
note
=
8
;
string
openId
=
9
;
int32
stallId
=
10
;
bool
isSuper
=
11
;
bool
isPrimary
=
12
;
int32
bookingMode
=
13
;
int32
canWriteRealPurchasePrice
=
14
;
string
mobile
=
15
;
int32
canWriteSkuBarcode
=
16
;
string
description
=
17
;
int32
status
=
18
;
int32
creationSource
=
19
;
int32
createdBy
=
20
;
}
message
DeleteCOperatorByIdsRpcRequest
{
int32
enterpriseId
=
1
;
int32
clientId
=
2
;
repeated
int32
ids
=
3
;
int32
updateSource
=
19
;
int32
updatedBy
=
20
;
}
message
DeleteCOperatorByIdsRpcResponse
{
bool
isDeleted
=
1
;
}
message
UpdateCOperatorRpcRequest
{
int32
id
=
38
;
int32
enterpriseId
=
1
;
int32
clientId
=
2
;
string
code
=
3
;
string
name
=
4
;
string
email
=
5
;
string
password
=
6
;
string
phone
=
7
;
string
note
=
8
;
string
openId
=
9
;
int32
stallId
=
10
;
bool
isSuper
=
11
;
bool
isPrimary
=
12
;
int32
bookingMode
=
13
;
int32
canWriteRealPurchasePrice
=
14
;
string
mobile
=
15
;
int32
canWriteSkuBarcode
=
16
;
string
description
=
17
;
int32
status
=
18
;
int32
updatedSource
=
19
;
int32
updatedBy
=
20
;
bool
shouldUpdateClientId
=
21
;
bool
shouldUpdateCode
=
22
;
bool
shouldUpdateName
=
23
;
bool
shouldUpdateEmail
=
24
;
bool
shouldUpdatePassword
=
25
;
bool
shouldUpdatePhone
=
26
;
bool
shouldUpdateNote
=
27
;
bool
shouldUpdateOpenId
=
28
;
bool
shouldUpdateStallId
=
29
;
bool
shouldUpdateIsSuper
=
30
;
bool
shouldUpdateIsPrimary
=
31
;
bool
shouldUpdateBookingMode
=
32
;
bool
shouldUpdateCanWriteRealPurchasePrice
=
33
;
bool
shouldUpdateMobile
=
34
;
bool
shouldUpdateCanWriteSkuBarcode
=
35
;
bool
shouldUpdateDescription
=
36
;
bool
shouldUpdateStatus
=
37
;
}
message
CreateCRoleRpcRequest
{
int32
enterpriseId
=
1
;
SingleCRoleCreationRpcRequest
creation
=
2
;
}
message
CreateCRoleRpcResponse
{
bool
isCreated
=
1
;
int32
id
=
2
;
}
message
GetCOperatorByMobileOrEmailRpcRequest
{
string
keyword
=
1
;
}
message
GetCOperatorByMobileOrEmailRpcResponse
{
SingleCOperatorRpcResponse
response
=
1
;
}
\ No newline at end of file
src/main/proto/ClientCustomerOrderService.proto
View file @
0029e47
...
...
@@ -18,6 +18,7 @@ service ClientCustomerOrderServiceRpc {
rpc
UpdateClientCustomerOrder
(
UpdateClientCustomerOrderRpcRequest
)
returns
(
UpdateClientCustomerOrderRpcResponse
)
{}
rpc
BatchUpdateClientCustomerOrders
(
BatchUpdateClientCustomerOrdersRpcRequest
)
returns
(
BatchUpdateClientCustomerOrdersRpcResponse
)
{}
rpc
DeleteClientCustomerOrdersByIds
(
DeleteClientCustomerOrdersByIdsRpcRequest
)
returns
(
DeleteClientCustomerOrdersRpcResponse
)
{}
rpc
QueryClientCustomerOrdersByPagination
(
QueryClientCustomerOrdersByPaginationRpcRequest
)
returns
(
QueryClientCustomerOrdersByPaginationRpcResponse
)
{}
//订单明细
rpc
GetClientCustomerOrderDetailById
(
GetClientCustomerOrderDetailByIdRpcRequest
)
returns
(
GetClientCustomerOrderDetailByIdRpcResponse
)
{}
...
...
@@ -142,6 +143,21 @@ message GetClientCustomerOrdersByCustomerIdRpcResponse {
repeated
SingleClientCustomerOrderRpcResponse
responses
=
1
;
}
message
QueryClientCustomerOrdersByPaginationRpcRequest
{
string
keyword
=
1
;
OrderStatusEnum
status
=
2
;
int32
clientId
=
3
;
int32
enterpriseId
=
4
;
int32
pageNo
=
5
;
int32
pageSize
=
6
;
}
message
QueryClientCustomerOrdersByPaginationRpcResponse
{
int64
total
=
1
;
int64
pages
=
2
;
repeated
SingleClientCustomerOrderRpcResponse
responses
=
3
;
}
message
QueryClientCustomerOrdersByConditionRpcRequest
{
int32
enterpriseId
=
1
;
bool
shouldFilterOrderCode
=
2
;
...
...
src/main/resources/application.properties
View file @
0029e47
...
...
@@ -61,8 +61,11 @@ grpc.meal-service.port=3017
grpc.delivery-
service.url
=
47.101.193.136
grpc.delivery-
service.port
=
3017
miniprogram.appId
=
miniprogram.appSecret
=
grpc.operator-
service.url
=
47.101.193.136
grpc.operator-
service.port
=
3031
miniprogram.appId
=
wx40ec496d73b58ec6
miniprogram.appSecret
=
5b309517bf918abf760b2195e91b99f3
##Actuator\u914D\u7F6E
management.server.port
=
8088
...
...
Please
register
or
login
to post a comment