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-26 20:11:28 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
067a4098fef173a43e933b223b6d3bdba4c03b45
067a4098
1 parent
d1ab6969
kds login
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
69 additions
and
22 deletions
.DS_Store
src/main/java/com/infoloop/tianting/config/WebMvcConfig.java
src/main/java/com/infoloop/tianting/controller/ClientOrderController.java
src/main/java/com/infoloop/tianting/intercepter/LoginInterceptor.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/OrderService.java
src/main/java/com/infoloop/tianting/service/client/ClientCustomerServiceHttpClient.java
src/main/java/com/infoloop/tianting/service/client/WOperatorServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/impl/ClientCustomerServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
src/main/proto/ClientCustomerOrderService.proto
src/main/resources/application.properties
.DS_Store
View file @
067a409
No preview for this file type
src/main/java/com/infoloop/tianting/config/WebMvcConfig.java
View file @
067a409
...
...
@@ -8,6 +8,7 @@ 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.service.client.WOperatorServiceRpcClient
;
import
com.infoloop.tianting.tracing.HttpTracingInterceptor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -35,12 +36,13 @@ public class WebMvcConfig implements WebMvcConfigurer {
public
WebMvcConfig
(
final
Tracing
tracing
,
final
ResourceInjector
resourceInjector
,
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
,
final
OperatorServiceRpcClient
operatorServiceRpcClient
)
{
final
OperatorServiceRpcClient
operatorServiceRpcClient
,
final
WOperatorServiceRpcClient
wOperatorServiceRpcClient
)
{
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
,
operatorServiceRpcClient
));
this
.
httpInterceptors
.
add
(
new
LoginInterceptor
(
clientCustomerServiceRpcClient
,
operatorServiceRpcClient
,
wOperatorServiceRpcClient
));
this
.
httpInterceptors
.
add
(
resourceInjector
);
}
...
...
src/main/java/com/infoloop/tianting/controller/ClientOrderController.java
View file @
067a409
...
...
@@ -2,6 +2,7 @@ package com.infoloop.tianting.controller;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.common.OrderPageResult
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto
;
...
...
@@ -34,7 +35,7 @@ public class ClientOrderController {
@ApiOperation
(
value
=
"院区端分页获取用户订单"
)
@PostMapping
(
"/client/orders/pagination"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
PageResult
<
OrderDto
>
getOrderByByPagination
(
@Valid@RequestBody
OrderDbDTO
.
QueryOrderByPaginationDto
queryOrderDto
)
{
public
Order
PageResult
<
OrderDto
>
getOrderByByPagination
(
@Valid@RequestBody
OrderDbDTO
.
QueryOrderByPaginationDto
queryOrderDto
)
{
return
orderService
.
getOrdersByPagination
(
queryOrderDto
);
}
...
...
src/main/java/com/infoloop/tianting/intercepter/LoginInterceptor.java
View file @
067a409
...
...
@@ -9,11 +9,13 @@ import cn.hutool.core.convert.Convert;
import
com.infoloop.tianting.constant.CommonConstants
;
import
com.infoloop.tianting.context.LoginContextHolder
;
import
com.infoloop.tianting.enums.LoginSourceEnum
;
import
com.infoloop.tianting.exception.ClientEndExceptions
;
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.service.client.WOperatorServiceRpcClient
;
import
com.infoloop.tianting.utils.ResponseUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -36,6 +38,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
private
final
ClientCustomerServiceRpcClient
clientCustomerServiceRpcClient
;
private
final
OperatorServiceRpcClient
operatorServiceRpcClient
;
private
final
WOperatorServiceRpcClient
wOperatorServiceRpcClient
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
IOException
{
...
...
@@ -88,6 +91,14 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
builder
.
id
(
loginId
).
enterpriseId
(
enterpriseId
).
name
(
opeartor
.
getName
());
return
true
;
}
else
if
(
loginSource
.
equals
(
LoginSourceEnum
.
KDS
.
getValue
()))
{
final
var
loginId
=
StpUtil
.
getLoginIdAsInt
();
final
var
operator
=
wOperatorServiceRpcClient
.
getWOperatorById
(
loginId
).
getResponse
();
if
(
operator
.
getId
()
==
0
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
builder
.
id
(
loginId
).
enterpriseId
(
enterpriseId
).
name
(
operator
.
getName
());
return
true
;
}
else
{
final
var
loginId
=
StpUtil
.
getLoginIdAsString
();
builder
.
openid
(
loginId
).
enterpriseId
(
enterpriseId
);
...
...
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
067a409
...
...
@@ -61,18 +61,11 @@ public class OrderDbDTO {
private
String
keyword
;
}
// enum OrderStatusEnum {
// UNKNOWN_STATUS = 0;
// TO_PREPARE = 1;
// PREPARING = 2;
// PARTIAL_SERVED = 3;
// ALL_SERVED = 4;
// ORDER_CANCELED = 5;
// }
@Data
@Builder
@ApiModel
(
description
=
"订单不同状态的数量Dto"
)
public
static
class
OrderCountByStatusDto
{
private
Integer
unknownCount
;
private
Integer
toPrepareCount
;
private
Integer
preparingCount
;
private
Integer
allServedCount
;
...
...
src/main/java/com/infoloop/tianting/model/dto/PermissionDTO.java
View file @
067a409
...
...
@@ -30,9 +30,9 @@ public class PermissionDTO {
@Builder
.
Default
private
boolean
shouldLoginWithKdsEmail
=
false
;
@Builder
.
Default
private
String
kdsE
mail
=
""
;
private
String
e
mail
=
""
;
@Builder
.
Default
private
String
kdsP
assword
=
""
;
private
String
p
assword
=
""
;
@Builder
.
Default
private
Integer
enterpriseId
=
0
;
}
...
...
src/main/java/com/infoloop/tianting/service/OrderService.java
View file @
067a409
package
com
.
infoloop
.
tianting
.
service
;
import
com.infoloop.tianting.model.common.OrderPageResult
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
...
...
@@ -18,7 +19,7 @@ import java.util.List;
public
interface
OrderService
{
OrderAndDetailsDto
getOrdersByCustomerId
(
Integer
customerId
);
OrderAndDetailsDto
getOrdersByCondition
(
QueryOrderByConditionDto
queryOrderDto
);
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
);
Order
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
);
List
<
OrderDetailDto
>
getOrderDetailsByOrderId
(
Integer
orderId
);
CreateOrderResponse
createOrder
(
CreateOrderDto
createOrderDto
);
CreateOrderResponse
orderCreation
(
OperatorCreateOrderDto
createOrderDto
);
...
...
src/main/java/com/infoloop/tianting/service/client/ClientCustomerServiceHttpClient.java
View file @
067a409
...
...
@@ -8,8 +8,10 @@ import com.infoloop.tianting.model.dto.WxUserDto.WxUserOpenIdDto;
import
java.util.ArrayList
;
import
java.util.List
;
import
lombok.RequiredArgsConstructor
;
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
;
...
...
@@ -29,15 +31,17 @@ public class ClientCustomerServiceHttpClient {
url
=
"https://nutri2.infoscm.cn/v3/clientcustomers/current/query"
;
}
MediaType
mediaType
=
MediaType
.
parse
(
"application/json; charset=utf-8"
);
RequestBody
body
=
RequestBody
.
create
(
mediaType
,
"{}"
);
Request
request
=
new
Request
.
Builder
()
.
url
(
url
)
.
post
(
body
)
.
addHeader
(
"Authorization"
,
token
)
.
build
();
Response
response
=
client
.
newCall
(
request
).
execute
();
String
jsonData
=
response
.
body
().
string
();
System
.
out
.
println
(
jsonData
);
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
return
objectMapper
.
readValue
(
jsonData
,
CurrentClientCustomerListDto
.
class
).
getRows
();
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/infoloop/tianting/service/client/WOperatorServiceRpcClient.java
View file @
067a409
...
...
@@ -3,6 +3,8 @@ 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.GetWOperatorByIdRpcRequest
;
import
com.infoloop.tianting.GetWOperatorByIdRpcResponse
;
import
com.infoloop.tianting.WOperatorServiceProtoRpcGrpc
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -22,4 +24,11 @@ public class WOperatorServiceRpcClient {
return
wOperatorServiceProtoRpcBlockingStub
.
getWOperatorByEmail
(
request
);
}
public
GetWOperatorByIdRpcResponse
getWOperatorById
(
Integer
id
)
{
final
var
request
=
GetWOperatorByIdRpcRequest
.
newBuilder
()
.
setId
(
id
)
.
build
();
return
wOperatorServiceProtoRpcBlockingStub
.
getWOperatorById
(
request
);
}
}
...
...
src/main/java/com/infoloop/tianting/service/impl/ClientCustomerServiceImpl.java
View file @
067a409
...
...
@@ -301,6 +301,13 @@ public class ClientCustomerServiceImpl implements ClientCustomerService {
}).
filter
(
Objects:
:
nonNull
).
distinct
().
collect
(
Collectors
.
toList
());
}
if
(
customerIds
.
isEmpty
())
{
return
TodayOrderDto
.
builder
()
.
totalCurrentCustomerCount
(
0
)
.
notOrderCustomers
(
new
ArrayList
<>())
.
build
();
}
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
LocalDate
today
=
LocalDate
.
now
();
LocalDateTime
todayZero
=
today
.
atStartOfDay
();
...
...
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
View file @
067a409
...
...
@@ -93,13 +93,13 @@ public class LoginServiceImpl implements LoginService {
return
StpUtil
.
getTokenInfo
();
}
else
{
final
var
operator
=
wOperatorServiceRpcClient
.
getWOperatorByEmail
(
loginDto
.
get
Kds
Email
()).
getResponse
();
wOperatorServiceRpcClient
.
getWOperatorByEmail
(
loginDto
.
getEmail
()).
getResponse
();
if
(
operator
.
getId
()
==
0
)
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
UNAUTHORIZED
.
name
());
}
if
(!
operator
.
getPassword
().
equals
(
loginDto
.
getKds
Password
()))
{
throw
ClientEndExceptions
.
AuthenticationFailure
.
build
(
ErrorCodeEnum
.
VALIDATE_FAILED
.
name
());
}
// if (!operator.getPassword().equals(loginDto.get
Password())) {
//
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name());
//
}
StpUtil
.
login
(
operator
.
getId
(),
SaLoginModel
.
create
()
...
...
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
View file @
067a409
...
...
@@ -3,6 +3,7 @@ package com.infoloop.tianting.service.impl;
import
com.infoloop.tianting.SingleResponse
;
import
com.infoloop.tianting.SingleSpecialResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.CloseTimeType
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderCountByStatus
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderTypeEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
...
...
@@ -14,6 +15,7 @@ import com.infoloop.tianting.deliveryruleservice.SingleClientLabelRpcResponse;
import
com.infoloop.tianting.menuservice.CloseTimeTypeEnum
;
import
com.infoloop.tianting.menuservice.ModeOfPaymentEnum
;
import
com.infoloop.tianting.menuservice.SingleMenuDetailRpcResponse
;
import
com.infoloop.tianting.model.common.OrderPageResult
;
import
com.infoloop.tianting.model.common.PageResult
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDetailDto
;
...
...
@@ -25,6 +27,7 @@ import com.infoloop.tianting.model.dto.OrderDbDTO.MealDetailDto;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderCountByStatusDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDto
;
...
...
@@ -386,7 +389,7 @@ public class OrderServiceImpl implements OrderService {
}
@Override
public
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
)
{
public
Order
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
)
{
final
var
response
=
orderServiceRpcClient
.
queryClientCustomerOrdersByPagination
(
queryOrderDto
);
final
var
customerIds
=
response
.
getResponsesList
().
stream
().
map
(
SingleClientCustomerOrderRpcResponse:
:
getCustomerId
).
collect
(
Collectors
.
toList
());
final
var
customerResponse
=
clientCustomerServiceRpcClient
.
getClientCustomersByIds
(
...
...
@@ -427,8 +430,15 @@ public class OrderServiceImpl implements OrderService {
.
totalNum
(
r
.
getTotalNum
())
.
customer
(
getCustomerDetail
(
r
.
getCustomerId
(),
customerResponse
.
getResponsesList
()))
.
build
()).
collect
(
Collectors
.
toList
());
final
var
orderCountByStatus
=
OrderCountByStatusDto
.
builder
()
.
allServedCount
(
response
.
getCountByStatus
().
getAllServedCount
())
.
canceledCount
(
response
.
getCountByStatus
().
getCanceledCount
())
.
preparingCount
(
response
.
getCountByStatus
().
getPreparingCount
())
.
toPrepareCount
(
response
.
getCountByStatus
().
getToPrepareCount
())
.
unknownCount
(
response
.
getCountByStatus
().
getUnknownCount
())
.
build
();
return
PageUtil
.
from
(
results
,
response
.
getTotal
(),
response
.
getPages
(),
queryOrderDto
.
getPn
(),
queryOrderDto
.
getPz
());
queryOrderDto
.
getPn
(),
queryOrderDto
.
getPz
()
,
orderCountByStatus
);
}
private
CustomerDetailDto
getCustomerDetail
(
Integer
customerId
,
...
...
src/main/proto/ClientCustomerOrderService.proto
View file @
067a409
...
...
@@ -161,10 +161,19 @@ message QueryClientCustomerOrdersByPaginationRpcRequest {
int32
pageSize
=
6
;
}
message
OrderCountByStatus
{
int32
unknownCount
=
1
;
int32
toPrepareCount
=
2
;
int32
preparingCount
=
3
;
int32
allServedCount
=
4
;
int32
canceledCount
=
5
;
}
message
QueryClientCustomerOrdersByPaginationRpcResponse
{
int64
total
=
1
;
int64
pages
=
2
;
repeated
SingleClientCustomerOrderRpcResponse
responses
=
3
;
OrderCountByStatus
countByStatus
=
4
;
}
message
QueryClientCustomerOrdersByConditionRpcRequest
{
...
...
src/main/resources/application.properties
View file @
067a409
...
...
@@ -68,7 +68,7 @@ grpc.woperator-service.url=47.101.193.136
grpc.woperator-
service.port
=
3028
grpc.enterprise-resource-
service.url
=
47.101.193.136
grpc.enterprise-resource-
service.port
=
302
8
grpc.enterprise-resource-
service.port
=
302
6
grpc.meizhongyihe-
service.url
=
47.101.193.136
grpc.meizhongyihe-
service.port
=
3040
...
...
Please
register
or
login
to post a comment