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
7a953aa0
Commit
7a953aa0
authored
Jun 29, 2021
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新对接门店 获取配送费
Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent
5318ced4
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
249 additions
and
14 deletions
+249
-14
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/GetEstimateDeliveryRequest.java
+25
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/QueryDeliverDetailResponse.java
+21
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreBaseResponseDto.java
+28
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreCBaseResponse.java
+20
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreCBaseResponseDto.java
+29
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreInfoRequestDto.java
+32
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/delivery/impl/GradDeliveryServiceImpl.java
+69
-14
shopping-cart-application-service/src/main/java/cn/freemud/service/store/StoreBaseApiClient.java
+24
-0
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/GetEstimateDeliveryRequest.java
0 → 100644
View file @
7a953aa0
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
lombok.Builder
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/4 下午1:53
* @description :
*/
@Data
@Builder
public
class
GetEstimateDeliveryRequest
extends
StoreInfoRequestDto
{
/**
* 用户收货地址维度
*/
private
String
latitude
;
/**
* 用户收货地址经度
*/
private
String
longitude
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/QueryDeliverDetailResponse.java
0 → 100644
View file @
7a953aa0
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/4 下午3:42
* @description :
*/
@Data
@Builder
public
class
QueryDeliverDetailResponse
{
/**
* 预计送达时间
*/
private
Date
expectArriveTime
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreBaseResponseDto.java
0 → 100644
View file @
7a953aa0
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: StoreBaseResponseDto
* @Package cn.freemud.entities.dto
* @Description:
* @author: ping.wu
* @date: 2018/5/28 19:13
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@ToString
public
class
StoreBaseResponseDto
<
T
>
{
Integer
statusCode
;
String
msg
;
T
bizVO
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreCBaseResponse.java
0 → 100644
View file @
7a953aa0
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/16 上午9:57
* @description :
*/
@Data
public
class
StoreCBaseResponse
<
T
>
{
private
String
code
;
private
String
message
;
private
T
result
;
private
String
ver
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreCBaseResponseDto.java
0 → 100644
View file @
7a953aa0
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/17 上午11:36
* @description :
*/
@Data
public
class
StoreCBaseResponseDto
{
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
expectArriveTime
;
/**
* 新配送费
*/
private
Long
deliveryAmount
;
/**
* 配送费为零的原因:0:正常,1:超出配送范围
*/
private
Integer
deliveryFeeZeroReason
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/store/StoreInfoRequestDto.java
0 → 100644
View file @
7a953aa0
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: StoreInfoRequestDto
* @Package cn.freemud.entities.dto
* @Description:
* @author: ping.wu
* @date: 2018/5/14 16:42
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@NoArgsConstructor
public
class
StoreInfoRequestDto
{
private
String
partnerId
;
private
String
storeCode
;
public
StoreInfoRequestDto
(
String
partnerId
,
String
storeCode
)
{
this
.
partnerId
=
partnerId
;
this
.
storeCode
=
storeCode
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
7a953aa0
...
@@ -63,6 +63,7 @@ public enum ResponseResult {
...
@@ -63,6 +63,7 @@ public enum ResponseResult {
//麦咖啡专用提示
//麦咖啡专用提示
CART_STORE_CLOSE
(
"43014"
,
"您选择的【$storeName】门店已关闭,请选择其他门店。"
),
CART_STORE_CLOSE
(
"43014"
,
"您选择的【$storeName】门店已关闭,请选择其他门店。"
),
CART_STORE_REST
(
"43015"
,
"您选择的【$storeName】门店已打烊,请选择其他门店。"
),
CART_STORE_REST
(
"43015"
,
"您选择的【$storeName】门店已打烊,请选择其他门店。"
),
STORE_QUERYEXPECTARRIVETIME
(
"43016"
,
"获取门店计算预计送达时间失败"
),
/**
/**
* 购物车状态码
* 购物车状态码
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/delivery/impl/GradDeliveryServiceImpl.java
View file @
7a953aa0
...
@@ -13,10 +13,15 @@
...
@@ -13,10 +13,15 @@
package
cn
.
freemud
.
service
.
delivery
.
impl
;
package
cn
.
freemud
.
service
.
delivery
.
impl
;
import
cn.freemud.entities.dto.store.GetEstimateDeliveryRequest
;
import
cn.freemud.entities.dto.store.StoreCBaseResponse
;
import
cn.freemud.entities.dto.store.StoreCBaseResponseDto
;
import
cn.freemud.entities.vo.ShoppingCartGoodsResponseVo
;
import
cn.freemud.entities.vo.ShoppingCartGoodsResponseVo
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.delivery.DeliveryService
;
import
cn.freemud.service.delivery.DeliveryService
;
import
cn.freemud.service.store.StoreBaseApiClient
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
...
@@ -28,6 +33,8 @@ import org.apache.commons.lang.StringUtils;
...
@@ -28,6 +33,8 @@ import org.apache.commons.lang.StringUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Objects
;
@Service
(
"gradDeliveryService"
)
@Service
(
"gradDeliveryService"
)
public
class
GradDeliveryServiceImpl
extends
AbstractDeliveryServiceImpl
implements
DeliveryService
{
public
class
GradDeliveryServiceImpl
extends
AbstractDeliveryServiceImpl
implements
DeliveryService
{
...
@@ -37,6 +44,9 @@ public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl impleme
...
@@ -37,6 +44,9 @@ public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl impleme
@Autowired
@Autowired
private
StoreCenterService
storeCenterService
;
private
StoreCenterService
storeCenterService
;
@Autowired
private
StoreBaseApiClient
storeBaseApiClient
;
@Override
@Override
public
Long
calculateDeliveryAmount
(
String
receiveId
,
String
partnerId
,
String
storeId
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
)
{
public
Long
calculateDeliveryAmount
(
String
receiveId
,
String
partnerId
,
String
storeId
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
)
{
...
@@ -48,23 +58,34 @@ public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl impleme
...
@@ -48,23 +58,34 @@ public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl impleme
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryReceiveAddressResponse
.
getCode
())
||
queryReceiveAddressResponse
.
getData
()
==
null
)
{
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryReceiveAddressResponse
.
getCode
())
||
queryReceiveAddressResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_GETRECEIVEADDRESS_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
USER_GETRECEIVEADDRESS_ERROR
);
}
}
// fisherman 新配送费计算 调用门店接口
// 查询运费详情
StoreCBaseResponseDto
deliveryDataMsg
=
getDeliveryDataMsg
(
queryReceiveAddressResponse
.
getData
().
getLatitude
(),
QueryDeliveryRequest
queryDeliveryRequest
=
new
QueryDeliveryRequest
();
queryReceiveAddressResponse
.
getData
().
getLongitude
(),
queryDeliveryRequest
.
setPartnerId
(
partnerId
);
partnerId
,
queryDeliveryRequest
.
setStoreCode
(
storeId
);
storeId
);
queryDeliveryRequest
.
setUserLatitude
(
queryReceiveAddressResponse
.
getData
().
getLatitude
());
if
(
Objects
.
isNull
(
deliveryDataMsg
.
getDeliveryAmount
()))
{
queryDeliveryRequest
.
setUserLongitude
(
queryReceiveAddressResponse
.
getData
().
getLongitude
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
QueryDeliverDetailResponse
>
queryDeliverDetailResponse
=
storeCenterService
.
queryDeliverDetail
(
queryDeliveryRequest
,
trackingNo
);
if
(
queryDeliverDetailResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryDeliverDetailResponse
.
getCode
())
||
queryDeliverDetailResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_ITEM_NOT_DELIVERY
);
}
if
(
queryDeliverDetailResponse
.
getData
().
getDeliveryAmount
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_DELIVERY_AMOUNT_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
STORE_DELIVERY_AMOUNT_ERROR
);
}
}
shoppingCartGoodsResponseVo
.
setDeliveryFeeZeroReason
(
queryDeliverDetailResponse
.
getData
().
getDeliveryFeeZeroReason
()
!=
null
?
queryDeliverDetailResponse
.
getData
().
getDeliveryFeeZeroReason
()
:
0
);
return
queryDeliverDetailResponse
.
getData
().
getDeliveryAmount
();
shoppingCartGoodsResponseVo
.
setDeliveryFeeZeroReason
(
deliveryDataMsg
.
getDeliveryFeeZeroReason
()
!=
null
?
deliveryDataMsg
.
getDeliveryFeeZeroReason
()
:
0
);
return
deliveryDataMsg
.
getDeliveryAmount
();
// // 查询运费详情
// QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
// queryDeliveryRequest.setPartnerId(partnerId);
// queryDeliveryRequest.setStoreCode(storeId);
// queryDeliveryRequest.setUserLatitude(queryReceiveAddressResponse.getData().getLatitude());
// queryDeliveryRequest.setUserLongitude(queryReceiveAddressResponse.getData().getLongitude());
// com.freemud.application.sdk.api.base.BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
// if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
// throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
// }
// if(queryDeliverDetailResponse.getData().getDeliveryAmount() == null) {
// throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
// }
// shoppingCartGoodsResponseVo.setDeliveryFeeZeroReason(queryDeliverDetailResponse.getData().getDeliveryFeeZeroReason() != null ? queryDeliverDetailResponse.getData().getDeliveryFeeZeroReason() : 0);
//
// return queryDeliverDetailResponse.getData().getDeliveryAmount();
}
}
@Override
@Override
...
@@ -95,5 +116,39 @@ public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl impleme
...
@@ -95,5 +116,39 @@ public class GradDeliveryServiceImpl extends AbstractDeliveryServiceImpl impleme
return
queryDeliverDetailResponse
.
getData
().
getDeliveryAmount
();
return
queryDeliverDetailResponse
.
getData
().
getDeliveryAmount
();
}
}
/**
* 获取 配送费 及预计送达时间接口
* @param userLat 用户纬度
* @param userLong 用户经度
* @param partnerId 商户号
* @param storeCode 门店号
* @return
*/
private
StoreCBaseResponseDto
getDeliveryDataMsg
(
String
userLat
,
String
userLong
,
String
partnerId
,
String
storeCode
)
{
boolean
check
=
StringUtils
.
isEmpty
(
userLat
)
||
StringUtils
.
isEmpty
(
userLong
)
||
StringUtils
.
isEmpty
(
partnerId
)
||
StringUtils
.
isEmpty
(
storeCode
);
if
(
check
)
{
throw
new
ServiceException
(
ResponseResult
.
PARAMETER_MISSING
);
}
// 调用门店接口 获取时间 Fisherman
GetEstimateDeliveryRequest
request
=
GetEstimateDeliveryRequest
.
builder
().
latitude
(
userLat
).
longitude
(
userLong
).
build
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
storeCode
);
StoreCBaseResponse
<
StoreCBaseResponseDto
>
responseDto
=
storeBaseApiClient
.
queryDeliverDetail
(
request
);
ApiLog
.
info
(
"fisherman 获取门店预计送达时间"
,
request
,
responseDto
);
if
(
responseDto
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
responseDto
.
getCode
())
||
responseDto
.
getResult
()
==
null
){
throw
new
ServiceException
(
ResponseResult
.
STORE_QUERYEXPECTARRIVETIME
);
}
return
responseDto
.
getResult
();
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/store/StoreBaseApiClient.java
0 → 100644
View file @
7a953aa0
package
cn
.
freemud
.
service
.
store
;
import
cn.freemud.entities.dto.store.StoreCBaseResponse
;
import
cn.freemud.entities.dto.store.StoreCBaseResponseDto
;
import
cn.freemud.entities.dto.store.StoreInfoRequestDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/4 下午2:04
* @description : 门店基础服务
*/
@FeignClient
(
name
=
"store-menu-application-service"
)
@RequestMapping
(
value
=
"/store"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
interface
StoreBaseApiClient
{
@PostMapping
(
value
=
"/delivery/calcDeliveryData"
)
StoreCBaseResponse
<
StoreCBaseResponseDto
>
queryDeliverDetail
(
@RequestBody
StoreInfoRequestDto
request
);
}
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