Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
71c3114d
Commit
71c3114d
authored
Dec 13, 2021
by
蒋小洋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
野翠山去支付校验配送
parent
43dc016a
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
194 additions
and
11 deletions
+194
-11
order-application-service/src/main/java/cn/freemud/entities/vo/CheckDeliveryAddressReq.java
+42
-0
order-application-service/src/main/java/cn/freemud/entities/vo/CheckDeliveryAddressResp.java
+35
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+3
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+47
-1
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerClient.java
+7
-10
order-application-service/src/main/java/cn/freemud/service/thirdparty/TakeawayServiceClient.java
+36
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/TakeawayServiceClientFallback.java
+24
-0
No files found.
order-application-service/src/main/java/cn/freemud/entities/vo/CheckDeliveryAddressReq.java
0 → 100644
View file @
71c3114d
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryReceiveAddressDistanceDto
* @Package cn.freemud.entities.dto
* @Description:
* @author: ping.wu
* @date: 2018/6/29 16:37
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@NoArgsConstructor
public
class
CheckDeliveryAddressReq
{
//商户号
private
String
partnerId
;
//门店id
private
String
storeId
;
//收货人经度
private
String
receiverLng
;
//收货人纬度
private
String
receiverLat
;
//收货人地址
private
String
receiverAddress
;
//物品重量(kg)
private
String
depatchWeight
=
"1"
;
//是否预约单 :0 否 1 是
private
Integer
isPre
=
0
;
//用户支付方式 1、已支付 0、货到付款
private
Integer
payType
=
1
;
//是否保价,0:非保价;1:保价
private
Integer
isInsured
=
0
;
//是否是专人直送订单,0:否;1:是
private
Integer
isPersonDirect
=
0
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/CheckDeliveryAddressResp.java
0 → 100644
View file @
71c3114d
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryReceiveAddressDistanceDto
* @Package cn.freemud.entities.dto
* @Description:
* @author: ping.wu
* @date: 2018/6/29 16:37
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@NoArgsConstructor
public
class
CheckDeliveryAddressResp
{
private
String
code
;
private
String
msg
;
private
ResultBean
data
;
@NoArgsConstructor
@Data
public
static
class
ResultBean
{
//是否在配送范围内
private
boolean
isSupport
;
//消息提示
private
String
msg
;
}
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
71c3114d
...
...
@@ -91,6 +91,9 @@ public enum ResponseResult {
SHOPPING_CART_SENDGOODS_NOT_EXIST
(
"44011"
,
"加价购商品不存在"
,
""
),
SHOPPING_CART_STOCK_NOT_HAVE
(
"44012"
,
"商品库存不足"
,
""
),
SHOPPING_CART_PRODUCT_NOT_EXIST
(
"44013"
,
"商品不存在"
,
""
),
SHOPPING_CART_IS_OVERDELIVERY_ERR
(
"44111"
,
"校验配送范围失败"
,
""
),
/**
* 订单状态码
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
71c3114d
...
...
@@ -6,6 +6,8 @@ import cn.freemud.config.ApolloVariableConfig;
import
cn.freemud.constant.RedisLockKey
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryReceiveAddressDto
;
import
cn.freemud.entities.dto.QueryReceiveAddressResponseDto
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.order.PaymentConfigVo
;
...
...
@@ -16,7 +18,8 @@ import cn.freemud.management.service.handle.SaasOrderHandle;
import
cn.freemud.management.thirdparty.OrderCallbackClient
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.*
;
import
cn.freemud.service.universal.UniversalOrderService
;
import
cn.freemud.service.thirdparty.CustomerClient
;
import
cn.freemud.service.thirdparty.TakeawayServiceClient
;
import
cn.freemud.service.universal.factory.CreateOrderServiceFactory
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
...
@@ -37,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.text.MessageFormat
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -134,6 +138,12 @@ public class OrderAdapterServiceImpl {
private
CashierOrderService
cashierOrderService
;
@Autowired
private
PayServiceImpl
payService
;
@Value
(
"${ycs.partnerId:2690,2702,2664}"
)
private
String
ycsPartnerId
;
@Autowired
private
CustomerClient
customerClient
;
@Resource
private
TakeawayServiceClient
takeawayServiceClient
;
//获取下单实现对象
private
OrderFactoryService
getCreateOrderBean
(
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
CreateOrderVo
createOrderVo
){
...
...
@@ -188,6 +198,16 @@ public class OrderAdapterServiceImpl {
if
(
assortmentCustomerInfoVo
==
null
||
StringUtils
.
isEmpty
(
assortmentCustomerInfoVo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
//Apollo配置野翠山商户,外卖订单地址是否超出美图等配送范围 -jxy
List
<
String
>
ycsList
=
Arrays
.
asList
(
ycsPartnerId
.
split
(
","
));
boolean
ycsPartner
=
ycsList
.
contains
(
createOrderVo
.
getPartnerId
());
if
(
ycsPartner
&&
BusinessTypeEnum
.
SAAS_DELIVERY
.
getCode
().
equals
(
createOrderVo
.
getMenuType
())
&&
StringUtils
.
isNotEmpty
(
createOrderVo
.
getReceiveId
())){
boolean
isOverDelivery
=
checkYcsIsOverDelivery
(
createOrderVo
.
getReceiveId
(),
createOrderVo
.
getPartnerId
(),
createOrderVo
.
getShopId
());
if
(
isOverDelivery
){
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_IS_OVERDELIVERY_ERR
);
}
}
// 扩展字段中存储 sessionKey
createOrderVo
.
setSessionKey
(
assortmentCustomerInfoVo
.
getSessionKey
());
// 用于测试 新创建订单接口 不是围餐, 并且 商户号 门店号都在配置里面
...
...
@@ -383,4 +403,30 @@ public class OrderAdapterServiceImpl {
}
/**
* 校验野翠山是否超配送,true超配送,false没有超出配送
* @return
*/
private
boolean
checkYcsIsOverDelivery
(
String
addressId
,
String
partnerId
,
String
storeId
){
//1、查询收件人地址信息
QueryReceiveAddressDto
queryReceiveAddressDto
=
new
QueryReceiveAddressDto
(
addressId
,
partnerId
);
QueryReceiveAddressResponseDto
queryReceiveAddressResponseDto
=
customerClient
.
queryReceiveAddressById
(
queryReceiveAddressDto
);
if
(!
Objects
.
equals
(
"100"
,
queryReceiveAddressResponseDto
.
getCode
())
||
queryReceiveAddressResponseDto
.
getData
()
==
null
){
return
true
;
}
CheckDeliveryAddressReq
checkDeliveryAddressReq
=
new
CheckDeliveryAddressReq
();
checkDeliveryAddressReq
.
setPartnerId
(
partnerId
);
checkDeliveryAddressReq
.
setStoreId
(
storeId
);
checkDeliveryAddressReq
.
setReceiverLng
(
queryReceiveAddressResponseDto
.
getData
().
getLongitude
());
checkDeliveryAddressReq
.
setReceiverLat
(
queryReceiveAddressResponseDto
.
getData
().
getLatitude
());
checkDeliveryAddressReq
.
setReceiverAddress
(
queryReceiveAddressResponseDto
.
getData
().
getReceiveAddress
());
//2、查询配送信息是否超配送
CheckDeliveryAddressResp
checkDeliveryAddressResp
=
takeawayServiceClient
.
checkDeliveryAddress
(
checkDeliveryAddressReq
);
if
(!
Objects
.
equals
(
"100"
,
checkDeliveryAddressResp
.
getCode
())
||
checkDeliveryAddressResp
.
getData
()
==
null
||
!
checkDeliveryAddressResp
.
getData
().
isSupport
()){
return
true
;
}
return
false
;
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerClient.java
View file @
71c3114d
...
...
@@ -14,10 +14,7 @@
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.entities.dto.GetMemberExtendInfoRequestDto
;
import
cn.freemud.entities.dto.GetMemberExtendInfoResponseDto
;
import
cn.freemud.entities.dto.GetMemberInfoByIdRequestDto
;
import
cn.freemud.entities.dto.GetMemberInfoByIdResponseDto
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.member.GetMemberIdsReq
;
import
cn.freemud.entities.dto.member.GetMemberIdsResp
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
...
...
@@ -98,12 +95,12 @@ public interface CustomerClient {
// deleteReceiveAddressDto);
//
//
//
/**
//
* 查询收货地址详情
//
*/
//
@PostMapping(value = "/customerservice/address/get")
//
QueryReceiveAddressResponseDto queryReceiveAddressById(@RequestBody QueryReceiveAddressDto
//
queryReceiveAddressDto);
/**
* 查询收货地址详情
*/
@PostMapping
(
value
=
"/customerservice/address/get"
)
QueryReceiveAddressResponseDto
queryReceiveAddressById
(
@RequestBody
QueryReceiveAddressDto
queryReceiveAddressDto
);
/**
* 查询收货地址详情
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/TakeawayServiceClient.java
0 → 100644
View file @
71c3114d
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CustomerExtendClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: song.cai
* @date: 2019/2/20 16:42
* @version V1.0
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.entities.vo.CheckDeliveryAddressReq
;
import
cn.freemud.entities.vo.CheckDeliveryAddressResp
;
import
cn.freemud.interceptor.FormSupportConfig
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
@FeignClient
(
name
=
"TAKEAWAY-SERVICE"
,
url
=
"${saas.takeawayclient.feign.url:}"
,
fallback
=
TakeawayServiceClientFallback
.
class
,
configuration
=
FormSupportConfig
.
class
)
public
interface
TakeawayServiceClient
{
/**
* 查询门店是否开通第三方配送,是否超配送范围
*/
@PostMapping
(
value
=
"/delivery/checkDeliveryAddress"
,
produces
=
{
"application/json;charset=UTF-8"
})
@LogIgnoreFeign
(
logMessage
=
"/delivery/checkDeliveryAddress"
,
excludeStatusCodes
=
{
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
},
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
)
CheckDeliveryAddressResp
checkDeliveryAddress
(
@RequestBody
CheckDeliveryAddressReq
checkDeliveryAddressReq
);
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/TakeawayServiceClientFallback.java
0 → 100644
View file @
71c3114d
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.entities.vo.CheckDeliveryAddressReq
;
import
cn.freemud.entities.vo.CheckDeliveryAddressResp
;
import
org.springframework.stereotype.Component
;
//@IgnoreFeignLogAnnotation
@Component
public
class
TakeawayServiceClientFallback
implements
TakeawayServiceClient
{
/**
* 查询配送超过4秒熔断,返回错误码,直接返回前端
* @param checkDeliveryAddressReq
* @return
*/
@Override
public
CheckDeliveryAddressResp
checkDeliveryAddress
(
CheckDeliveryAddressReq
checkDeliveryAddressReq
)
{
CheckDeliveryAddressResp
response
=
new
CheckDeliveryAddressResp
();
response
.
setCode
(
"200"
);
return
response
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment