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
08d0017f
Commit
08d0017f
authored
Apr 26, 2020
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
app下单修改
parent
3db4296a
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
205 additions
and
20 deletions
+205
-20
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
+203
-8
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+1
-11
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
08d0017f
...
@@ -64,7 +64,7 @@ public class ShoppingCartGoodsDto {
...
@@ -64,7 +64,7 @@ public class ShoppingCartGoodsDto {
*/
*/
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
;
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
;
/**
/**
* 库存
*
活动
库存
*/
*/
private
List
<
SubtractStockVO
>
stocks
;
private
List
<
SubtractStockVO
>
stocks
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
08d0017f
...
@@ -6,6 +6,7 @@ import cn.freemud.base.log.LogTreadLocal;
...
@@ -6,6 +6,7 @@ import cn.freemud.base.log.LogTreadLocal;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.PayStatus
;
import
cn.freemud.enums.PayStatus
;
...
@@ -13,9 +14,12 @@ import cn.freemud.enums.ResponseResult;
...
@@ -13,9 +14,12 @@ import cn.freemud.enums.ResponseResult;
import
cn.freemud.enums.TradeState
;
import
cn.freemud.enums.TradeState
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.utils.BeanUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.application.sdk.api.base.SDKCommonBaseContextWare
;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
...
@@ -23,6 +27,10 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQuery
...
@@ -23,6 +27,10 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQuery
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO
;
import
com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest
;
import
com.freemud.application.sdk.api.productcenter.service.ProductService
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
...
@@ -40,7 +48,10 @@ import org.apache.commons.lang.StringUtils;
...
@@ -40,7 +48,10 @@ 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.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
@Service
@Service
public
class
AppOrderServiceImpl
implements
AppOrderService
{
public
class
AppOrderServiceImpl
implements
AppOrderService
{
...
@@ -108,10 +119,10 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -108,10 +119,10 @@ public class AppOrderServiceImpl implements AppOrderService {
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
*/
@Override
@Override
public
BaseResponse
createOrder
(
AppCreateOrderVo
createOrder
Vo
,
AssortmentCustomerInfoVo
customerInfo
)
{
public
BaseResponse
createOrder
(
AppCreateOrderVo
createOrder
Req
,
AssortmentCustomerInfoVo
customerInfo
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
partnerId
=
createOrder
Vo
.
getPartnerId
();
String
partnerId
=
createOrder
Req
.
getPartnerId
();
String
shopId
=
createOrder
Vo
.
getShopId
();
String
shopId
=
createOrder
Req
.
getShopId
();
// 获取门店信息
// 获取门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
shopId
,
null
);
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
shopId
,
null
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
StoreResponse
storeResponse
=
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
...
@@ -119,11 +130,25 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -119,11 +130,25 @@ public class AppOrderServiceImpl implements AppOrderService {
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
}
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder
.
checkOrderByStore
(
storeResponse
.
getBizVO
(),
createOrderVo
.
getTakeMealTime
());
checkOrder
.
checkOrderByStore
(
storeResponse
.
getBizVO
(),
createOrderReq
.
getTakeMealTime
());
// 查商品服务确定金额
checkOrder
.
checkOrderProduct
(
createOrderVo
.
getOrderProducts
(),
createOrderVo
.
getMenuType
());
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
checkOrderProduct
(
partnerId
,
shopId
,
createOrderReq
.
getOrderProducts
(),
createOrderReq
.
getMenuType
());
CreateOrderVo
createOrderVo
=
new
CreateOrderVo
();
return
null
;
BeanUtil
.
convertBean
(
createOrderReq
,
createOrderVo
);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrderVo
,
customerInfo
,
storeResponse
.
getBizVO
(),
shoppingCartGoodsDto
.
getTotalAmount
(),
trackingNo
);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDTO
extInfo
=
orderservice
.
getExtInfo
(
customerInfo
,
storeResponse
.
getBizVO
(),
pushOrderTime
,
createOrderVo
);
//创建订单
CreateOrderOperateDto
createOrderOperateDto
=
orderservice
.
sdkCreateOrder
(
createOrderVo
,
storeResponse
.
getBizVO
(),
shoppingCartGoodsDto
,
customerInfo
);
BaseResponse
baseResponse
=
this
.
updateOrderExtInfo
(
createOrderOperateDto
.
getProductOrderBean
(),
extInfo
,
trackingNo
);
if
(
baseResponse
!=
null
)
{
return
baseResponse
;
}
//返回没创建预支付的结果
CreateOrderResponseVo
responseVo
=
orderAdapter
.
convent2CreateFatherSonOrderNoPayResponseVo
(
createOrderOperateDto
.
getProductOrderBean
());
return
ResponseUtil
.
success
(
responseVo
);
}
}
...
@@ -218,4 +243,174 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -218,4 +243,174 @@ public class AppOrderServiceImpl implements AppOrderService {
}
}
}
}
}
}
/**
* 查询商品信息
*/
public
ShoppingCartGoodsDto
checkOrderProduct
(
String
partnerId
,
String
shopId
,
List
<
OrderProductVo
>
orderProducts
,
String
menuType
)
{
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
new
ShoppingCartGoodsDto
();
List
<
String
>
spuIds
=
new
ArrayList
<>();
for
(
OrderProductVo
op
:
orderProducts
)
{
if
(
StringUtils
.
isNotBlank
(
op
.
getSkuId
()))
{
spuIds
.
add
(
op
.
getSpuId
());
}
}
if
(
CollectionUtils
.
isEmpty
(
spuIds
))
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
//去重
List
<
String
>
result
=
spuIds
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
GetProductRequest
getProductInfoDto
=
new
GetProductRequest
();
getProductInfoDto
.
setPartnerId
(
partnerId
);
getProductInfoDto
.
setShopId
(
shopId
);
getProductInfoDto
.
setProductInfoType
(
2
);
getProductInfoDto
.
setProductIds
(
result
);
getProductInfoDto
.
setChannel
(
menuType
);
ProductService
productService
=
SDKCommonBaseContextWare
.
getBean
(
ProductService
.
class
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
ProductInfosDTO
>
productInfosDTOBaseResponse
=
productService
.
listProductInfoByIdList
(
getProductInfoDto
,
LogThreadLocal
.
getTrackingNo
());
if
(!
Objects
.
equals
(
ResponseResultEnum
.
SUCCESS
.
getCode
(),
productInfosDTOBaseResponse
.
getCode
())
||
productInfosDTOBaseResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
);
}
List
<
ProductBeanDTO
>
productBeanDTOS
=
productInfosDTOBaseResponse
.
getData
().
getProducts
();
//包装费
Long
packageAmount
=
0L
;
//原总价
Long
originalTotalAmount
=
0L
;
//总价
Long
totalAmount
=
0L
;
int
sequence
=
0
;
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
products
=
new
ArrayList
<>();
for
(
OrderProductVo
op
:
orderProducts
)
{
sequence
+=
1
;
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
=
new
ShoppingCartGoodsDto
.
CartGoodsDetailDto
();
//单品
if
(
StringUtils
.
isNotBlank
(
op
.
getSpuId
())
&&
op
.
getSpuId
().
equals
(
op
.
getSkuId
()))
{
for
(
ProductBeanDTO
productBeanDTO
:
productBeanDTOS
)
{
if
(
op
.
getSpuId
().
equals
(
productBeanDTO
.
getPid
()))
{
cartGoodsDetailDto
.
setSpuId
(
productBeanDTO
.
getPid
());
cartGoodsDetailDto
.
setSkuId
(
productBeanDTO
.
getPid
());
cartGoodsDetailDto
.
setSpuName
(
productBeanDTO
.
getName
());
cartGoodsDetailDto
.
setSkuName
(
productBeanDTO
.
getName
());
cartGoodsDetailDto
.
setOriginalPrice
(
productBeanDTO
.
getOriginalPrice
());
originalTotalAmount
+=
productBeanDTO
.
getOriginalPrice
()
*
op
.
getQty
();
totalAmount
+=
productBeanDTO
.
getFinalPrice
()
*
op
.
getQty
();
packageAmount
+=
productBeanDTO
.
getPackPrice
()
*
op
.
getQty
();
cartGoodsDetailDto
.
setPicture
(
productBeanDTO
.
getPicture
());
cartGoodsDetailDto
.
setQty
(
op
.
getQty
());
cartGoodsDetailDto
.
setTotalDiscountAmount
(
0
);
cartGoodsDetailDto
.
setHasProductCoupon
(
false
);
cartGoodsDetailDto
.
setStockLimit
(
productBeanDTO
.
getStockLimit
()
==
1
);
cartGoodsDetailDto
.
setWeight
(
productBeanDTO
.
getWeight
());
cartGoodsDetailDto
.
setSequence
(
sequence
);
cartGoodsDetailDto
.
setUnit
(
productBeanDTO
.
getUnit
());
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
>
extraList
=
new
ArrayList
<>();
for
(
OrderProductExtraVo
orderProductExtraVo
:
op
.
getExtra
())
{
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
cartGoodsExtra
=
new
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
();
cartGoodsExtra
.
setAttributeId
(
orderProductExtraVo
.
getAttributeId
());
cartGoodsExtra
.
setAttributeName
(
orderProductExtraVo
.
getAttributeName
());
extraList
.
add
(
cartGoodsExtra
);
}
cartGoodsDetailDto
.
setExtraList
(
extraList
);
cartGoodsDetailDto
.
setActivityDiscountsDtos
(
null
);
cartGoodsDetailDto
.
setComboProducts
(
null
);
break
;
}
}
}
//多规格商品
if
(
StringUtils
.
isNotBlank
(
op
.
getSpuId
())
&&
!
op
.
getSpuId
().
equals
(
op
.
getSkuId
()))
{
for
(
ProductBeanDTO
productBeanDTO
:
productBeanDTOS
)
{
if
(
op
.
getSpuId
().
equals
(
productBeanDTO
.
getPid
()))
{
cartGoodsDetailDto
.
setSpuId
(
productBeanDTO
.
getPid
());
cartGoodsDetailDto
.
setSpuName
(
productBeanDTO
.
getName
());
for
(
ProductBeanDTO
.
SkuProductBean
skuProductBean
:
productBeanDTO
.
getSkuList
())
{
if
(
op
.
getSkuId
().
equals
(
skuProductBean
.
getSkuId
()))
{
cartGoodsDetailDto
.
setSkuId
(
skuProductBean
.
getSkuId
());
cartGoodsDetailDto
.
setSkuName
(
skuProductBean
.
getProductName
());
cartGoodsDetailDto
.
setOriginalPrice
(
skuProductBean
.
getOriginalPrice
());
originalTotalAmount
+=
skuProductBean
.
getOriginalPrice
()
*
op
.
getQty
();
totalAmount
+=
skuProductBean
.
getFinalPrice
()
*
op
.
getQty
();
packageAmount
+=
skuProductBean
.
getPackPrice
()
*
op
.
getQty
();
cartGoodsDetailDto
.
setStockLimit
(
skuProductBean
.
getStockLimit
()
==
1
);
break
;
}
}
cartGoodsDetailDto
.
setPicture
(
productBeanDTO
.
getPicture
());
cartGoodsDetailDto
.
setQty
(
op
.
getQty
());
cartGoodsDetailDto
.
setTotalDiscountAmount
(
0
);
cartGoodsDetailDto
.
setHasProductCoupon
(
false
);
cartGoodsDetailDto
.
setWeight
(
productBeanDTO
.
getWeight
());
cartGoodsDetailDto
.
setSequence
(
sequence
);
cartGoodsDetailDto
.
setUnit
(
productBeanDTO
.
getUnit
());
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
>
extraList
=
new
ArrayList
<>();
for
(
OrderProductExtraVo
orderProductExtraVo
:
op
.
getExtra
())
{
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
cartGoodsExtra
=
new
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
();
cartGoodsExtra
.
setAttributeId
(
orderProductExtraVo
.
getAttributeId
());
cartGoodsExtra
.
setAttributeName
(
orderProductExtraVo
.
getAttributeName
());
extraList
.
add
(
cartGoodsExtra
);
}
cartGoodsDetailDto
.
setExtraList
(
extraList
);
cartGoodsDetailDto
.
setActivityDiscountsDtos
(
null
);
cartGoodsDetailDto
.
setComboProducts
(
null
);
break
;
}
}
}
if
(
StringUtils
.
isNotBlank
(
cartGoodsDetailDto
.
getSpuId
()))
products
.
add
(
cartGoodsDetailDto
);
}
shoppingCartGoodsDto
.
setProducts
(
products
);
shoppingCartGoodsDto
.
setOriginalTotalAmount
(
originalTotalAmount
);
shoppingCartGoodsDto
.
setTotalAmount
(
totalAmount
);
// shoppingCartGoodsDto.setTotalDiscountAmount(0L);
shoppingCartGoodsDto
.
setPackageAmount
(
packageAmount
);
//积分抵扣
shoppingCartGoodsDto
.
setScoreReduceAmount
(
0L
);
shoppingCartGoodsDto
.
setReduceScore
(
0L
);
// shoppingCartGoodsDto.setMemberCardAmount(0);
//结算页购买会员卡
shoppingCartGoodsDto
.
setCardOriginalAmount
(
0
);
shoppingCartGoodsDto
.
setCardDiscountAmount
(
0
);
//活动优惠
List
<
ActivityDiscountsDto
>
activityDiscountsDtos
=
new
ArrayList
<>();
shoppingCartGoodsDto
.
setActivityDiscountsDtos
(
activityDiscountsDtos
);
//活动库存
List
<
SubtractStockVO
>
stocks
=
new
ArrayList
<>();
shoppingCartGoodsDto
.
setStocks
(
stocks
);
//收货地址获取
shoppingCartGoodsDto
.
setDeliveryAmount
(
0L
);
//满额减配送费活动
shoppingCartGoodsDto
.
setDiscountDeliveryAmount
(
0L
);
// shoppingCartGoodsDto.setThresholdAmount(0L);
// shoppingCartGoodsDto.setDiscountDeliveryActivityCode(null);
return
shoppingCartGoodsDto
;
}
}
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
08d0017f
...
@@ -21,10 +21,7 @@ import cn.freemud.entities.db.StoreTableNumber;
...
@@ -21,10 +21,7 @@ import cn.freemud.entities.db.StoreTableNumber;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.GetMemberCouponRequestVo
;
import
cn.freemud.entities.vo.OrderProductVo
;
import
cn.freemud.entities.vo.ShoppingCartInfoRequestVo
;
import
cn.freemud.enums.CouponFlag
;
import
cn.freemud.enums.CouponFlag
;
import
cn.freemud.enums.CreateOrderType
;
import
cn.freemud.enums.CreateOrderType
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
...
@@ -497,11 +494,4 @@ public class CheckOrder {
...
@@ -497,11 +494,4 @@ public class CheckOrder {
}
}
}
}
public
void
checkOrderProduct
(
List
<
OrderProductVo
>
orderProducts
,
String
menuType
){
}
}
}
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