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-24 18:37:12 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9e27da6adc4a919e9fcb4de021f0824de46bf3a0
9e27da6a
1 parent
c1ff6372
add kds part1
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
640 additions
and
61 deletions
src/main/java/com/infoloop/tianting/config/GrpcConfig.java
src/main/java/com/infoloop/tianting/constant/ConfigConstants.java
src/main/java/com/infoloop/tianting/controller/KdsController.java
src/main/java/com/infoloop/tianting/controller/SettlementController.java
src/main/java/com/infoloop/tianting/exception/ErrorCodeEnum.java
src/main/java/com/infoloop/tianting/model/dto/KdsDTO.java
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
src/main/java/com/infoloop/tianting/model/dto/PermissionDTO.java
src/main/java/com/infoloop/tianting/service/KdsService.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/WOperatorServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/impl/KdsServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
src/main/proto/ClientCustomerOrderService.proto
src/main/proto/WOperatorServiceProtoRpc.proto
src/main/resources/application.properties
src/main/java/com/infoloop/tianting/config/GrpcConfig.java
View file @
9e27da6
...
...
@@ -4,6 +4,7 @@ import com.infoloop.rpc.meizhongyiheservice.MeiZhongYiHeServiceRpcGrpc;
import
com.infoloop.tianting.COperatorServiceProtoRpcGrpc
;
import
com.infoloop.tianting.CategoriesServiceProtoRpcGrpc
;
import
com.infoloop.tianting.SkuServiceProtoRpcGrpc
;
import
com.infoloop.tianting.WOperatorServiceProtoRpcGrpc
;
import
com.infoloop.tianting.clientcustomerorderservice.ClientCustomerOrderServiceRpcGrpc
;
import
com.infoloop.tianting.clientcustomerservice.ClientCustomerServiceRpcGrpc
;
import
com.infoloop.tianting.clientinventoryservice.TiantingClientInventoryServiceRpcGrpc
;
...
...
@@ -59,6 +60,9 @@ import static com.infoloop.tianting.constant.ConfigConstants.ORDER_SERVICE_RPC_U
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
SKU_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
SKU_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
SKU_SERVICE_RPC_URL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
WOPERATOR_SERVICE_CHANNEL
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
WOPERATOR_SERVICE_RPC_PORT
;
import
static
com
.
infoloop
.
tianting
.
constant
.
ConfigConstants
.
WOPERATOR_SERVICE_RPC_URL
;
@Configuration
public
class
GrpcConfig
{
...
...
@@ -235,6 +239,23 @@ public class GrpcConfig {
return
COperatorServiceProtoRpcGrpc
.
newBlockingStub
(
channel
);
}
@Bean
(
WOPERATOR_SERVICE_CHANNEL
)
public
ManagedChannel
woperatorServiceChannel
(
@Value
(
WOPERATOR_SERVICE_RPC_URL
)
final
String
url
,
@Value
(
WOPERATOR_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
WOperatorServiceProtoRpcGrpc
.
WOperatorServiceProtoRpcBlockingStub
woperatorServiceRpcBlockingStub
(
@Autowired
@Qualifier
(
WOPERATOR_SERVICE_CHANNEL
)
final
ManagedChannel
channel
)
{
return
WOperatorServiceProtoRpcGrpc
.
newBlockingStub
(
channel
);
}
@Bean
(
MEIZHONGYIHE_SERVICE_CHANNEL
)
public
ManagedChannel
meiZhongYiHeServiceChannel
(
@Value
(
MEIZHONGYIHE_SERVICE_RPC_URL
)
final
String
url
,
@Value
(
MEIZHONGYIHE_SERVICE_RPC_PORT
)
final
int
port
,
...
...
src/main/java/com/infoloop/tianting/constant/ConfigConstants.java
View file @
9e27da6
...
...
@@ -64,6 +64,10 @@ public interface ConfigConstants {
String
OPERATOR_SERVICE_RPC_PORT
=
"${grpc.operator-service.port}"
;
String
OPERATOR_SERVICE_CHANNEL
=
"operator-service-channel"
;
String
WOPERATOR_SERVICE_RPC_URL
=
"${grpc.woperator-service.url}"
;
String
WOPERATOR_SERVICE_RPC_PORT
=
"${grpc.woperator-service.port}"
;
String
WOPERATOR_SERVICE_CHANNEL
=
"woperator-service-channel"
;
String
MEIZHONGYIHE_SERVICE_RPC_URL
=
"${grpc.meizhongyihe-service.url}"
;
String
MEIZHONGYIHE_SERVICE_RPC_PORT
=
"${grpc.meizhongyihe-service.port}"
;
String
MEIZHONGYIHE_SERVICE_CHANNEL
=
"meizhongyihe-service-channel"
;
...
...
src/main/java/com/infoloop/tianting/controller/KdsController.java
0 → 100644
View file @
9e27da6
package
com
.
infoloop
.
tianting
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
io.swagger.annotations.Api
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"KDS"
)
@ApiSupport
(
order
=
-
1
)
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
KdsController
{
}
src/main/java/com/infoloop/tianting/controller/SettlementController.java
0 → 100644
View file @
9e27da6
package
com
.
infoloop
.
tianting
.
controller
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto
;
import
com.infoloop.tianting.service.SettlementService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
java.io.ByteArrayOutputStream
;
import
javax.validation.Valid
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
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
SettlementController
{
private
final
SettlementService
settlementService
;
@ApiOperation
(
value
=
"结算账单生成excel"
)
@PostMapping
(
"/settlement/generate-excel"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
ResponseEntity
<
byte
[]>
settlementGenerateExcel
(
@Valid
@RequestBody
SettlementRequestDto
settlementRequestDto
)
{
ByteArrayOutputStream
outputStream
=
settlementService
.
generateOrderSettlementExcel
(
settlementRequestDto
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM
);
headers
.
setContentDispositionFormData
(
"attachment"
,
"订单数据.xlsx"
);
return
ResponseEntity
.
ok
()
.
headers
(
headers
)
.
body
(
outputStream
.
toByteArray
());
}
}
src/main/java/com/infoloop/tianting/exception/ErrorCodeEnum.java
View file @
9e27da6
...
...
@@ -24,6 +24,7 @@ public enum ErrorCodeEnum implements BaseEnum {
UPDATE_DATA_ERROR
(
406000002
,
"修改数据失败"
),
DELETE_DATA_ERROR
(
406000003
,
"删除数据失败"
),
GENERATE_EXCEL_ERROR
(
406000004
,
"生成excel失败"
),
;
private
final
int
code
;
...
...
src/main/java/com/infoloop/tianting/model/dto/KdsDTO.java
0 → 100644
View file @
9e27da6
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.models.auth.In
;
import
java.util.List
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@ApiModel
(
description
=
"kds DTO"
)
public
class
KdsDTO
{
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderDto"
)
public
static
class
KdsOrderDto
{
private
Integer
orderId
;
private
Integer
orderDetailId
;
private
String
tableCode
;
private
Integer
count
;
private
String
roomNo
;
private
String
remark
;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
description
=
"KdsOrderSkuDto"
)
public
static
class
KdsOrderSkuDto
{
private
String
showName
;
private
Integer
totalCount
;
private
List
<
KdsOrderDto
>
orderList
;
}
}
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
9e27da6
...
...
@@ -3,6 +3,7 @@ package com.infoloop.tianting.model.dto;
import
com.infoloop.tianting.clientcustomerorderservice.CloseTimeType
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum
;
import
com.infoloop.tianting.menuservice.CloseTimeTypeEnum
;
import
com.infoloop.tianting.model.common.PageInfo
;
import
io.swagger.annotations.ApiModel
;
...
...
@@ -481,8 +482,8 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"是否删除;0:未删除,1:已删除"
)
private
Boolean
isDeleted
;
@ApiModelProperty
(
value
=
"
是否不出餐: 默认出餐=0; 不出餐=1
"
)
private
Boolean
notServe
;
@ApiModelProperty
(
value
=
"
出餐状态: 默认未出餐=1; 不出餐=2; 已出餐=3
"
)
private
ServeStatusEnum
serveStatus
;
@ApiModelProperty
(
value
=
"调整配料备注"
)
private
String
adjustSkuRemark
;
...
...
@@ -529,9 +530,6 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"菜品价格,以分为单位"
)
private
Integer
price
;
@ApiModelProperty
(
value
=
"是否不出餐: 默认出餐=0; 不出餐=1"
)
private
Boolean
notServe
;
@ApiModelProperty
(
value
=
"调整配料备注"
)
private
String
adjustSkuRemark
;
}
...
...
@@ -596,11 +594,11 @@ public class OrderDbDTO {
@ApiModelProperty
(
value
=
"菜品详情,菜品主料、口味、能量、脂肪、蛋白质、碳水化合物、忌口、医嘱等"
)
private
MealDetailDto
mealDetailJson
;
@ApiModelProperty
(
value
=
"需要修改
不出餐
"
)
private
Boolean
shouldUpdate
NotServe
;
@ApiModelProperty
(
value
=
"需要修改
出餐状态
"
)
private
Boolean
shouldUpdate
ServeStatus
;
@ApiModelProperty
(
value
=
"
是否不出餐: 默认出餐=0; 不出餐=1
"
)
private
Boolean
notServe
;
@ApiModelProperty
(
value
=
"
出餐状态: 默认未出餐=1; 不出餐=2; 已出餐=3
"
)
private
ServeStatusEnum
serveStatus
;
}
@Data
...
...
src/main/java/com/infoloop/tianting/model/dto/PermissionDTO.java
View file @
9e27da6
...
...
@@ -3,6 +3,7 @@ package com.infoloop.tianting.model.dto;
import
com.infoloop.tianting.enums.LoginSourceEnum
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Builder
;
import
lombok.Builder.Default
;
import
lombok.Data
;
@Data
...
...
@@ -14,13 +15,26 @@ public class PermissionDTO {
@ApiModel
(
description
=
"Login DTO"
)
public
static
class
LoginDto
{
private
LoginSourceEnum
loginSourceEnum
;
private
boolean
shouldLoginWithHisCustomerId
;
private
String
hisCustomerId
;
private
boolean
shouldLoginWithOperatorPhone
;
private
String
operatorPhone
;
private
boolean
shouldLoginWithOpenCode
;
private
String
openCode
;
private
Integer
enterpriseId
;
@Builder
.
Default
private
boolean
shouldLoginWithHisCustomerId
=
false
;
@Builder
.
Default
private
String
hisCustomerId
=
""
;
@Builder
.
Default
private
boolean
shouldLoginWithOperatorPhone
=
false
;
@Builder
.
Default
private
String
operatorPhone
=
""
;
@Builder
.
Default
private
boolean
shouldLoginWithOpenCode
=
false
;
@Builder
.
Default
private
String
openCode
=
""
;
@Builder
.
Default
private
boolean
shouldLoginWithKdsEmail
=
false
;
@Builder
.
Default
private
String
kdsEmail
=
""
;
@Builder
.
Default
private
String
kdsPassword
=
""
;
@Builder
.
Default
private
Integer
enterpriseId
=
0
;
}
}
...
...
src/main/java/com/infoloop/tianting/service/KdsService.java
0 → 100644
View file @
9e27da6
package
com
.
infoloop
.
tianting
.
service
;
public
interface
KdsService
{
}
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
9e27da6
...
...
@@ -23,6 +23,7 @@ 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.ServeStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.UpdateClientCustomerOrderRpcRequest
;
...
...
@@ -154,9 +155,9 @@ public class OrderServiceRpcClient {
}
Boolean
notServe
=
false
;
if
(
d
.
getShouldUpdate
NotServe
())
{
notServe
=
true
;
ServeStatusEnum
serveStatus
=
ServeStatusEnum
.
UNKNOWN_SERVE_STATUS
;
if
(
d
.
getShouldUpdate
ServeStatus
())
{
serveStatus
=
d
.
getServeStatus
()
;
}
Integer
count
=
0
;
if
(
d
.
getShouldUpdateCount
())
{
...
...
@@ -176,8 +177,8 @@ public class OrderServiceRpcClient {
.
setSkuId
(
skuId
)
.
setShouldUpdateShowName
(
d
.
getShouldUpdateMenuDetailId
())
.
setShowName
(
showName
)
.
setShouldUpdate
NotServe
(
d
.
getShouldUpdateNotServe
())
.
set
NotServe
(
notServe
)
.
setShouldUpdate
ServeStatus
(
d
.
getShouldUpdateServeStatus
())
.
set
ServeStatus
(
serveStatus
)
.
setShouldUpdateMealDetailJson
(
d
.
getShouldUpdateMenuDetailId
())
.
setMealDetailJson
(
mealDetail
)
.
build
();
...
...
@@ -221,10 +222,6 @@ public class OrderServiceRpcClient {
.
addAllOrderIds
(
orderIds
)
.
build
()).
getResponsesList
();
}
// public GetOrdersByOpenIdRpcResponse queryOrdersByOpenId(Integer openId) {
// return orderServiceRpcBlockingStub.getOrdersByCustomerId(
// GetOrdersByOpenIdRpcRequest.newBuilder().setOpenId(openId).build());
// }
public
CreateOrderResponse
createOrder
(
CreateOrderDto
createOrderDto
)
{
final
var
orderDetails
=
new
ArrayList
<
ClientCustomerOrderDetailCreation
>();
...
...
@@ -254,7 +251,7 @@ public class OrderServiceRpcClient {
.
setPrice
(
orderDetailDto
.
getPrice
())
.
setMealDetailJson
(
mealDetail
)
// .setAdjustSkuRemark(orderDetailDto.getAdjustSkuRemark())
.
set
NotServe
(
orderDetailDto
.
getNotServe
()
)
.
set
ServeStatus
(
ServeStatusEnum
.
SERVE_NOT_START
)
.
setShouldCreateAdjustSkuRemark
(
true
)
.
setShouldCreatePrice
(
true
)
.
setShouldCreateMealDetailJson
(
true
)
...
...
src/main/java/com/infoloop/tianting/service/client/WOperatorServiceRpcClient.java
0 → 100644
View file @
9e27da6
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.infoloop.tianting.COperatorServiceProtoRpcGrpc
;
import
com.infoloop.tianting.GetWOperatorByEmailRpcRequest
;
import
com.infoloop.tianting.GetWOperatorByEmailRpcResponse
;
import
com.infoloop.tianting.WOperatorServiceProtoRpcGrpc
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
WOperatorServiceRpcClient
{
private
final
WOperatorServiceProtoRpcGrpc
.
WOperatorServiceProtoRpcBlockingStub
wOperatorServiceProtoRpcBlockingStub
;
public
GetWOperatorByEmailRpcResponse
getWOperatorByEmail
(
String
email
)
{
final
var
request
=
GetWOperatorByEmailRpcRequest
.
newBuilder
()
.
setEmail
(
email
)
.
build
();
return
wOperatorServiceProtoRpcBlockingStub
.
getWOperatorByEmail
(
request
);
}
}
src/main/java/com/infoloop/tianting/service/impl/KdsServiceImpl.java
0 → 100644
View file @
9e27da6
package
com
.
infoloop
.
tianting
.
service
.
impl
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.context.LoginContextHolder
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderDto
;
import
com.infoloop.tianting.model.dto.KdsDTO.KdsOrderSkuDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
import
com.infoloop.tianting.service.KdsService
;
import
com.infoloop.tianting.service.client.MenuServiceRpcClient
;
import
com.infoloop.tianting.service.client.OrderServiceRpcClient
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.hssf.record.DVALRecord
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
KdsServiceImpl
implements
KdsService
{
private
final
OrderServiceRpcClient
orderServiceRpcClient
;
private
final
MenuServiceRpcClient
menuServiceRpcClient
;
public
void
getOrderDetailBySku
()
{
// 获取当日所有的订单 和 订单明细
LocalDate
today
=
LocalDate
.
now
();
LocalDateTime
todayZero
=
today
.
atStartOfDay
();
LocalDate
tomorrow
=
today
.
plusDays
(
1
);
LocalDateTime
tomorrowZero
=
tomorrow
.
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
.
enterpriseId
(
operatorLoginInfo
.
getEnterpriseId
())
.
shouldFilterCreatedAtTimeStart
(
true
)
.
createdAtTimeStart
(
todayZero
)
.
shouldFilterCreatedAtTimeEnd
(
true
)
.
createdAtTimeEnd
(
tomorrowZero
)
.
build
();
final
var
orderList
=
orderServiceRpcClient
.
getOrdersByCondition
(
queryOrderDto
);
List
<
Integer
>
orderIds
=
orderList
.
stream
()
.
map
(
SingleClientCustomerOrderRpcResponse:
:
getId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
final
var
orderDetailList
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
orderIds
);
//在所有的orderDetail里找出所有所有不同的menuDetailId,然后根据menuDetailId进行分类
final
var
menuDetailIds
=
orderDetailList
.
stream
()
.
map
(
SingleClientCustomerOrderDetailRpcResponse:
:
getMenuDetailId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
List
<
KdsOrderSkuDto
>
kdsOrderSkuList
=
new
ArrayList
<>();
for
(
Integer
menuDetailId:
menuDetailIds
)
{
// 找出该menuDetailId 的所有orderDetail
final
var
curOrderDetails
=
orderDetailList
.
stream
()
.
filter
(
d
->
d
.
getMenuDetailId
()
==
menuDetailId
)
.
collect
(
Collectors
.
toList
());
final
var
totalCount
=
curOrderDetails
.
stream
()
.
mapToInt
(
SingleClientCustomerOrderDetailRpcResponse:
:
getCount
)
.
sum
();
List
<
KdsOrderDto
>
kdsOrders
=
new
ArrayList
<>();
for
(
SingleClientCustomerOrderDetailRpcResponse
detail:
curOrderDetails
)
{
final
var
order
=
orderList
.
stream
()
.
filter
(
o
->
o
.
getId
()
==
detail
.
getOrderId
())
.
findFirst
();
if
(
order
.
isEmpty
())
{
continue
;
}
final
var
kdsOrder
=
KdsOrderDto
.
builder
()
.
count
(
detail
.
getCount
())
.
orderDetailId
(
detail
.
getId
())
.
remark
(
order
.
get
().
getRemark
())
.
orderId
(
order
.
get
().
getId
())
.
roomNo
(
order
.
get
().
getRoomNo
())
.
tableCode
(
order
.
get
().
getTableCode
())
.
build
();
kdsOrders
.
add
(
kdsOrder
);
}
final
var
kdsOrderSku
=
KdsOrderSkuDto
.
builder
()
.
showName
(
curOrderDetails
.
get
(
0
).
getShowName
())
.
totalCount
(
totalCount
)
.
orderList
(
kdsOrders
)
.
build
();
kdsOrderSkuList
.
add
(
kdsOrderSku
);
}
}
}
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
View file @
9e27da6
...
...
@@ -16,6 +16,7 @@ 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.WOperatorServiceRpcClient
;
import
com.infoloop.tianting.service.client.WxMiniProgramClient
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -30,55 +31,83 @@ public class LoginServiceImpl implements LoginService {
private
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
;
private
final
OperatorServiceRpcClient
operatorServiceRpcClient
;
private
final
WxMiniProgramClient
wxMiniProgramClient
;
private
final
WOperatorServiceRpcClient
wOperatorServiceRpcClient
;
@Override
public
SaTokenInfo
login
(
LoginDto
loginDto
)
{
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
());
StpUtil
.
login
(
wxUserOpenIdDto
.
getOpenid
(),
SaLoginModel
.
create
()
.
setExtra
(
CommonConstants
.
ENTERPRISE_ID
,
loginDto
.
getEnterpriseId
())
.
setExtra
(
CommonConstants
.
LOGIN_SOURCE
,
loginDto
.
getLoginSourceEnum
().
getValue
())
.
build
());
return
StpUtil
.
getTokenInfo
();
}
else
if
(
loginDto
.
isShouldLoginWithHisCustomerId
()){
var
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerByHISCustomerId
(
loginDto
.
getHisCustomerId
()).
getResponse
();
}
else
if
(
loginDto
.
isShouldLoginWithHisCustomerId
())
{
var
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerByHISCustomerId
(
loginDto
.
getHisCustomerId
())
.
getResponse
();
if
(
customer
.
getId
()
==
0
)
{
// 根据hisCustomerId拿不到用户的话再去根据合同号去his查一次,即认为是月子中心客户
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerByContactNo
(
loginDto
.
getHisCustomerId
()).
getResponse
();
customer
=
clientCustomerServiceRpcClient
.
getClientCustomerByContactNo
(
loginDto
.
getHisCustomerId
())
.
getResponse
();
if
(
customer
.
getId
()
==
0
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
else
{
var
record
=
clientCustomerServiceRpcClient
.
getClientCustomerHospitalRecordsByCustomerId
(
customer
.
getEnterpriseId
(),
customer
.
getId
());
if
(!
record
.
hasResponse
()
||
record
.
getResponse
().
getHospitalStatus
()
!=
ClientCustomerHospitalRecordHospitalStatusEnum
.
CURRENT
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
var
record
=
clientCustomerServiceRpcClient
.
getClientCustomerHospitalRecordsByCustomerId
(
customer
.
getEnterpriseId
(),
customer
.
getId
());
if
(!
record
.
hasResponse
()
||
record
.
getResponse
().
getHospitalStatus
()
!=
ClientCustomerHospitalRecordHospitalStatusEnum
.
CURRENT
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
}
}
else
{
}
StpUtil
.
login
(
customer
.
getId
(),
SaLoginModel
.
create
()
.
setExtra
(
CommonConstants
.
ENTERPRISE_ID
,
customer
.
getEnterpriseId
())
.
setExtra
(
CommonConstants
.
LOGIN_SOURCE
,
loginDto
.
getLoginSourceEnum
().
getValue
())
.
build
());
StpUtil
.
login
(
customer
.
getId
(),
SaLoginModel
.
create
()
.
setExtra
(
CommonConstants
.
ENTERPRISE_ID
,
customer
.
getEnterpriseId
())
.
setExtra
(
CommonConstants
.
LOGIN_SOURCE
,
loginDto
.
getLoginSourceEnum
().
getValue
())
.
build
());
return
StpUtil
.
getTokenInfo
();
}
else
{
final
var
operator
=
operatorServiceRpcClient
.
getCOperatorByMobileOrEmail
(
loginDto
.
getOperatorPhone
());
}
else
if
(
loginDto
.
isShouldLoginWithOperatorPhone
())
{
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
());
StpUtil
.
login
(
operator
.
getId
(),
SaLoginModel
.
create
()
.
setExtra
(
CommonConstants
.
ENTERPRISE_ID
,
operator
.
getEnterpriseId
())
.
setExtra
(
CommonConstants
.
LOGIN_SOURCE
,
loginDto
.
getLoginSourceEnum
().
getValue
())
.
build
());
return
StpUtil
.
getTokenInfo
();
}
else
{
final
var
operator
=
wOperatorServiceRpcClient
.
getWOperatorByEmail
(
loginDto
.
getKdsEmail
()).
getResponse
();
if
(
operator
.
getId
()
==
0
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
if
(!
operator
.
getPassword
().
equals
(
loginDto
.
getKdsPassword
()))
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
VALIDATE_FAILED
.
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/OrderServiceImpl.java
View file @
9e27da6
...
...
@@ -167,7 +167,6 @@ public class OrderServiceImpl implements OrderService {
final
var
createOrderDetail
=
CreateOrderDetailDto
.
builder
()
.
count
(
orderDetail
.
getCount
())
.
notServe
(
false
)
.
menuDetailId
(
orderDetail
.
getMenuDetailId
())
.
categoryId
(
optionalTargetMenuDetail
.
get
().
getCategoryId
())
.
mealId
(
optionalTargetMenuDetail
.
get
().
getMealId
())
...
...
@@ -230,7 +229,7 @@ public class OrderServiceImpl implements OrderService {
.
adjustSkuRemark
(
d
.
getAdjustSkuRemark
())
.
enterpriseId
(
d
.
getEnterpriseId
())
.
skuId
(
d
.
getSkuId
())
.
notServe
(
d
.
getNotServe
())
.
serveStatus
(
d
.
getServeStatus
())
.
creationSource
(
d
.
getCreationSource
().
getNumber
())
.
createdBy
(
d
.
getCreatedBy
())
.
createdAt
(
DateUtil
.
formatDate
(
d
.
getCreatedAt
()))
...
...
@@ -302,7 +301,7 @@ public class OrderServiceImpl implements OrderService {
.
adjustSkuRemark
(
d
.
getAdjustSkuRemark
())
.
enterpriseId
(
d
.
getEnterpriseId
())
.
skuId
(
d
.
getSkuId
())
.
notServe
(
d
.
getNotServe
())
.
s
(
d
.
getNotServe
())
.
creationSource
(
d
.
getCreationSource
().
getNumber
())
.
createdBy
(
d
.
getCreatedBy
())
.
createdAt
(
DateUtil
.
formatDate
(
d
.
getCreatedAt
()))
...
...
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
View file @
9e27da6
...
...
@@ -3,6 +3,8 @@ package com.infoloop.tianting.service.impl;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.context.LoginContextHolder
;
import
com.infoloop.tianting.exception.ClientEndExceptions.BusinessException
;
import
com.infoloop.tianting.exception.ErrorCodeEnum
;
import
com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse
;
import
com.infoloop.tianting.menuservice.SingleMenuRpcResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.QueryOrderByConditionDto
;
...
...
@@ -14,6 +16,8 @@ import com.infoloop.tianting.service.client.MenuServiceRpcClient;
import
com.infoloop.tianting.service.client.OrderServiceRpcClient
;
import
com.infoloop.tianting.utils.DateUtil
;
import
java.io.ByteArrayOutputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
...
...
@@ -22,6 +26,12 @@ import java.util.Map;
import
java.util.stream.Collectors
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -122,6 +132,79 @@ public class SettlementServiceImpl implements SettlementService {
}
}
try
{
final
var
bytes
=
writeToExcel
(
classifyOrders
);
return
bytes
;
}
catch
(
IOException
e
)
{
throw
BusinessException
.
build
(
ErrorCodeEnum
.
GENERATE_EXCEL_ERROR
);
}
}
public
static
ByteArrayOutputStream
writeToExcel
(
Map
<
String
,
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>>
classifyOrders
)
throws
IOException
{
Workbook
workbook
=
new
XSSFWorkbook
();
Sheet
sheet
=
workbook
.
createSheet
(
"订单数据"
);
int
rowNum
=
0
;
for
(
Map
.
Entry
<
String
,
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>>
outerEntry
:
classifyOrders
.
entrySet
())
{
String
orderDate
=
outerEntry
.
getKey
();
Map
<
Integer
,
List
<
SettlementMenuSkuDto
>>
innerMap
=
outerEntry
.
getValue
();
// 写入日期列并合并单元格
int
startRowForDate
=
rowNum
;
for
(
int
i
=
0
;
i
<
innerMap
.
size
()
*
2
;
i
++)
{
Row
dateRow
=
sheet
.
createRow
(
rowNum
++);
Cell
dateCell
=
dateRow
.
createCell
(
0
);
dateCell
.
setCellValue
(
orderDate
);
}
int
endRowForDate
=
rowNum
-
1
;
if
(
endRowForDate
>=
startRowForDate
)
{
CellRangeAddress
region
=
new
CellRangeAddress
(
startRowForDate
,
endRowForDate
,
0
,
0
);
sheet
.
addMergedRegion
(
region
);
}
for
(
Map
.
Entry
<
Integer
,
List
<
SettlementMenuSkuDto
>>
innerEntry
:
innerMap
.
entrySet
())
{
int
menuId
=
innerEntry
.
getKey
();
List
<
SettlementMenuSkuDto
>
skuList
=
innerEntry
.
getValue
();
// 写入菜单ID列并合并单元格
int
startRowForMenu
=
rowNum
;
for
(
int
i
=
0
;
i
<
skuList
.
size
();
i
++)
{
Row
menuRow
=
sheet
.
createRow
(
rowNum
++);
Cell
menuCell
=
menuRow
.
createCell
(
1
);
menuCell
.
setCellValue
(
menuId
);
}
int
endRowForMenu
=
rowNum
-
1
;
if
(
endRowForMenu
>=
startRowForMenu
)
{
CellRangeAddress
region
=
new
CellRangeAddress
(
startRowForMenu
,
endRowForMenu
,
1
,
1
);
sheet
.
addMergedRegion
(
region
);
}
// 写入SKU列
for
(
SettlementMenuSkuDto
skuDto
:
skuList
)
{
Row
skuRow
=
sheet
.
createRow
(
rowNum
++);
Cell
skuCell
=
skuRow
.
createCell
(
2
);
skuCell
.
setCellValue
(
skuDto
.
getShowName
());
skuCell
.
setCellValue
(
skuDto
.
getPrice
());
skuCell
.
setCellValue
(
skuDto
.
getCount
());
skuCell
.
setCellValue
(
skuDto
.
getTotalPrice
());
}
}
}
// 自动调整列宽
for
(
int
i
=
0
;
i
<
6
;
i
++)
{
sheet
.
autoSizeColumn
(
i
);
}
// 将工作簿内容写入字节数组输出流
ByteArrayOutputStream
outputStream
=
new
ByteArrayOutputStream
();
workbook
.
write
(
outputStream
);
workbook
.
close
();
return
outputStream
;
}
}
...
...
src/main/proto/ClientCustomerOrderService.proto
View file @
9e27da6
...
...
@@ -72,6 +72,13 @@ enum CloseTimeType {
RESERVATION
=
1
;
}
enum
ServeStatusEnum
{
UNKNOWN_SERVE_STATUS
=
0
;
SERVE_NOT_START
=
1
;
SERVE_REJECT
=
2
;
SERVE_FINISHED
=
3
;
}
message
CustomerNotice
{
repeated
string
avoids
=
1
;
repeated
string
doctors
=
2
;
...
...
@@ -403,7 +410,7 @@ message SingleClientCustomerOrderDetailRpcResponse {
int64
updatedAt
=
16
;
OrderSourceEnum
updateSource
=
17
;
bool
isDeleted
=
18
;
bool
notServe
=
19
;
ServeStatusEnum
serveStatus
=
19
;
int32
enterpriseId
=
20
;
}
...
...
@@ -450,7 +457,7 @@ message ClientCustomerOrderDetailCreation{
int32
price
=
13
;
bool
shouldCreateAdjustSkuRemark
=
14
;
string
adjustSkuRemark
=
15
;
bool
notServe
=
16
;
ServeStatusEnum
serveStatus
=
16
;
}
message
CreateClientCustomerOrderDetailRpcRequest
{
...
...
@@ -497,8 +504,8 @@ message ClientCustomerOrderDetailModification {
int32
price
=
17
;
bool
shouldUpdateAdjustSkuRemark
=
18
;
string
adjustSkuRemark
=
19
;
bool
shouldUpdate
NotServe
=
20
;
bool
notServe
=
21
;
bool
shouldUpdate
ServeStatus
=
20
;
ServeStatusEnum
serveStatus
=
21
;
}
message
UpdateClientCustomerOrderDetailRpcRequest
{
...
...
src/main/proto/WOperatorServiceProtoRpc.proto
0 → 100644
View file @
9e27da6
syntax
=
"proto3"
;
option
java_multiple_files
=
true
;
option
java_package
=
"com.infoloop.tianting"
;
option
java_outer_classname
=
"WOperatorsServiceProto"
;
option
objc_class_prefix
=
"OP"
;
package
com
.
infoloop.tianting
;
service
WOperatorServiceProtoRpc
{
rpc
GetWOperators
(
GetWOperatorsRpcRequest
)
returns
(
GetWOperatorsRpcResponse
)
{}
rpc
GetWOperatorById
(
GetWOperatorByIdRpcRequest
)
returns
(
GetWOperatorByIdRpcResponse
)
{}
rpc
GetWOperatorsByIds
(
GetWOperatorsByIdsRpcRequest
)
returns
(
GetWOperatorsByIdsRpcResponse
)
{}
rpc
SetWOperatorIsInfoloopOperatorById
(
SetWOperatorIsInfoloopOperatorByIdRpcRequest
)
returns
(
SetWOperatorIsInfoloopOperatorByIdRpcResponse
)
{}
rpc
BatchUpdateWOperatorPasswordByIds
(
BatchUpdateWOperatorPasswordByIdsRpcRequest
)
returns
(
BatchUpdateWOperatorPasswordByIdsRpcResponse
)
{}
rpc
GetWOperatorByEmail
(
GetWOperatorByEmailRpcRequest
)
returns
(
GetWOperatorByEmailRpcResponse
)
{}
rpc
GetOperatorByMobile
(
GetOperatorByMobileRpcRequest
)
returns
(
GetOperatorByMobileRpcResponse
)
{}
rpc
DeleteOperatorById
(
OperatorByIdDeleteRpcRequest
)
returns
(
OperatorByIdDeleteRpcResponse
)
{}
rpc
DeleteOperatorByAccount
(
OperatorByAccountDeleteRpcRequest
)
returns
(
OperatorByAccountDeleteRpcResponse
)
{}
rpc
CreateOperator
(
OperatorCreateRpcRequest
)
returns
(
OperatorCreateRpcResponse
)
{}
rpc
GetOperatorsByEnterpriseId
(
GetOperatorsByEnterpriseIdRpcRequest
)
returns
(
GetOperatorsByEnterpriseIdRpcResponse
)
{}
rpc
UpdateWOperatorStatusByIds
(
UpdateWOperatorStatusByIdsRpcRequest
)
returns
(
UpdateWOperatorStatusByIdsRpcResponse
)
{}
rpc
GetOperatorsByCondition
(
OperatorsGetByConditionRpcRequest
)
returns
(
OperatorsGetByConditionRpcResponse
)
{}
}
message
UpdateWOperatorStatusByIdsRpcRequest
{
repeated
int32
ids
=
1
;
WOperatorStatus
status
=
2
;
}
message
UpdateWOperatorStatusByIdsRpcResponse
{
bool
isUpdated
=
1
;
}
message
GetOperatorsByEnterpriseIdRpcRequest
{
int32
enterpriseId
=
1
;
bool
includeDeleted
=
2
;
}
message
GetOperatorsByEnterpriseIdRpcResponse
{
repeated
WOperatorResponse
response
=
1
;
}
message
OperatorCreateRpcRequest
{
int32
enterpriseId
=
2
;
string
code
=
3
;
bool
isEmailSet
=
15
;
string
email
=
4
;
string
name
=
5
;
string
password
=
6
;
bool
isMobileSet
=
16
;
string
mobile
=
7
;
string
note
=
8
;
WOperatorStatus
status
=
9
;
string
openId
=
13
;
string
telephone
=
14
;
}
message
OperatorCreateRpcResponse
{
int32
id
=
1
;
bool
isCreated
=
2
;
string
errorMessage
=
3
;
}
message
OperatorByIdDeleteRpcRequest
{
int32
id
=
1
;
int64
deletedAt
=
2
;
int32
enterpriseId
=
3
;
}
message
OperatorByIdDeleteRpcResponse
{
bool
isDeleted
=
1
;
}
message
OperatorByAccountDeleteRpcRequest
{
bool
isEmailSet
=
1
;
string
email
=
2
;
bool
isMobileSet
=
3
;
string
mobile
=
4
;
}
message
OperatorByAccountDeleteRpcResponse
{
bool
isDeleted
=
1
;
}
message
GetOperatorByMobileRpcRequest
{
string
mobile
=
1
;
}
message
GetOperatorByMobileRpcResponse
{
WOperatorResponse
response
=
1
;
}
message
GetWOperatorsRpcRequest
{
bool
includeDeleted
=
1
;
}
message
GetWOperatorByIdRpcRequest
{
int32
id
=
1
;
}
message
GetWOperatorsByIdsRpcRequest
{
repeated
int32
ids
=
1
;
bool
includeDeleted
=
2
;
}
message
GetWOperatorByEmailRpcRequest
{
string
email
=
1
;
}
message
SetWOperatorIsInfoloopOperatorByIdRpcRequest
{
int32
id
=
1
;
bool
isInfoloopOperator
=
2
;
}
message
BatchUpdateWOperatorPasswordByIdsRpcRequest
{
repeated
SingleUpdateWOperator
request
=
1
;
}
message
SingleUpdateWOperator
{
int32
id
=
1
;
string
password
=
2
;
}
enum
WOperatorStatus
{
UN_KNOW
=
0
;
SHOW
=
1
;
HIDE
=
2
;
DELETED
=
3
;
}
message
WOperatorResponse
{
int32
id
=
1
;
int32
enterpriseId
=
2
;
string
code
=
3
;
string
email
=
4
;
string
name
=
5
;
string
password
=
6
;
string
mobile
=
7
;
string
note
=
8
;
WOperatorStatus
status
=
9
;
int64
createdAt
=
10
;
int64
updatedAt
=
11
;
bool
isSuper
=
12
;
string
openId
=
13
;
string
telephone
=
14
;
}
message
GetWOperatorsRpcResponse
{
repeated
WOperatorResponse
responses
=
1
;
}
message
GetWOperatorByIdRpcResponse
{
WOperatorResponse
response
=
1
;
}
message
GetWOperatorsByIdsRpcResponse
{
repeated
WOperatorResponse
responses
=
1
;
}
message
GetWOperatorByEmailRpcResponse
{
WOperatorResponse
response
=
1
;
}
message
SetWOperatorIsInfoloopOperatorByIdRpcResponse
{
}
message
BatchUpdateWOperatorPasswordByIdsRpcResponse
{
}
message
OperatorsGetByConditionRpcRequest
{
int32
enterpriseId
=
1
;
bool
includeDeleted
=
2
;
bool
shouldFilterNameKeyword
=
3
;
string
nameKeyword
=
4
;
}
message
OperatorsGetByConditionRpcResponse
{
repeated
WOperatorResponse
responses
=
1
;
}
src/main/resources/application.properties
View file @
9e27da6
...
...
@@ -64,6 +64,9 @@ grpc.delivery-service.port=3017
grpc.operator-
service.url
=
47.101.193.136
grpc.operator-
service.port
=
3031
grpc.woperator-
service.url
=
47.101.193.136
grpc.woperator-
service.port
=
3028
grpc.meizhongyihe-
service.url
=
47.101.193.136
grpc.meizhongyihe-
service.port
=
3040
...
...
Please
register
or
login
to post a comment