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
jenkins
order-group
Commits
9092484d
Commit
9092484d
authored
Feb 06, 2020
by
shuhu.hou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创建订单新增menuType
parent
8e2eda09
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
87 additions
and
429 deletions
+87
-429
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+2
-2
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseCreateOrderRequest.java
+5
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateFatherSonOrderRequest.java
+5
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+4
-4
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+2
-0
order-application-service/src/main/java/cn/freemud/adapter/StoreItemAdapter.java
+2
-240
order-application-service/src/main/java/cn/freemud/enums/BusinessTypeEnum.java
+63
-0
order-application-service/src/main/java/cn/freemud/service/ItemService.java
+0
-9
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+0
-98
order-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
+2
-74
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+2
-2
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
9092484d
...
...
@@ -1326,9 +1326,9 @@ public class OrderSdkAdapter {
* @param stockChangeType 库存改变类型
* @return
*/
public
UpdateStocksRequest
getUpdateProductStock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderProductRequest
>
products
,
StockChangeType
stockChangeType
)
{
public
UpdateStocksRequest
getUpdateProductStock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderProductRequest
>
products
,
StockChangeType
stockChangeType
,
String
menuType
)
{
UpdateStocksRequest
updateStocksRequest
=
new
UpdateStocksRequest
();
updateStocksRequest
.
setChannel
(
"saas"
);
updateStocksRequest
.
setChannel
(
menuType
);
updateStocksRequest
.
setChangeType
(
stockChangeType
.
getCode
());
updateStocksRequest
.
setIsOversold
(
0
);
updateStocksRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseCreateOrderRequest.java
View file @
9092484d
...
...
@@ -131,6 +131,11 @@ public class BaseCreateOrderRequest extends BaseConfig {
*/
public
ActivityUpdateStockRequest
activityUpdateStockRequest
;
/**
* 订单渠道
*/
private
String
menuType
;
@Data
public
static
class
DeliveryTypeInfo
{
/**
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/CreateFatherSonOrderRequest.java
View file @
9092484d
...
...
@@ -34,6 +34,11 @@ public class CreateFatherSonOrderRequest extends BaseConfig {
*/
MqMessageRequest
mqMessageRequest
;
/**
* 订单渠道类型
*/
private
String
menuType
;
@Data
public
static
class
OrderInfo
{
/**
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
9092484d
...
...
@@ -129,7 +129,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return
getCreateOrderResponse
(
createOrderResponse
.
getErrcode
().
toString
(),
createOrderResponse
.
getErrmsg
(),
null
);
}
BaseOrderResponse
baseOrderResponse
=
updateStockAndScore
(
createOrderResponse
.
getData
(),
config
.
getBaseCreateOrderRequest
().
getProducts
(),
config
.
getBaseCreateOrderRequest
().
getActivityUpdateStockRequest
(),
config
.
getBaseCreateOrderRequest
().
getAccounts
(),
config
.
getMqMessageRequest
());
config
.
getBaseCreateOrderRequest
().
getAccounts
(),
config
.
getMqMessageRequest
()
,
config
.
getBaseCreateOrderRequest
().
getMenuType
()
);
// if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) {
// return getCreateOrderResponse(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg(), null);
// }
...
...
@@ -150,7 +150,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
CreateFatherSonOrderRequest
.
OrderInfo
productOrderRequest
=
createFatherSonOrderRequest
.
getOrderInfoList
().
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
()).
get
(
0
);
updateStockAndScore
(
productOrderInfo
.
get
(
0
),
productOrderRequest
.
getProducts
(),
productOrderRequest
.
getActivityUpdateStockRequest
(),
productOrderRequest
.
getAccounts
(),
createFatherSonOrderRequest
.
getMqMessageRequest
());
createFatherSonOrderRequest
.
getMqMessageRequest
()
,
createFatherSonOrderRequest
.
getMenuType
()
);
return
createFatherSonOrderResponse
;
}
...
...
@@ -167,9 +167,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
private
BaseOrderResponse
updateStockAndScore
(
OrderBean
orderBean
,
List
<
CreateOrderProductRequest
>
products
,
ActivityUpdateStockRequest
updateStockRequest
,
List
<
CreateOrderAccountRequest
>
accounts
,
MqMessageRequest
mqMessageRequest
)
{
List
<
CreateOrderAccountRequest
>
accounts
,
MqMessageRequest
mqMessageRequest
,
String
menuType
)
{
//TODO 转换获取库存信息,扣减库存
UpdateStocksRequest
updateStocksRequest
=
orderSdkAdapter
.
getUpdateProductStock
(
orderBean
,
products
,
StockChangeType
.
REDUCE
);
UpdateStocksRequest
updateStocksRequest
=
orderSdkAdapter
.
getUpdateProductStock
(
orderBean
,
products
,
StockChangeType
.
REDUCE
,
menuType
);
if
(
updateStocksRequest
!=
null
&&
CollectionUtils
.
isNotEmpty
(
updateStocksRequest
.
getProductStocks
()))
{
BaseResponse
baseResponse
=
stockSdkService
.
reducesStocks
(
updateStocksRequest
,
""
);
ThirdPartyLog
.
infoConvertJson
(
System
.
currentTimeMillis
(),
System
.
currentTimeMillis
(),
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
9092484d
...
...
@@ -250,6 +250,7 @@ public class OrderAdapter {
CreateFatherSonOrderRequest
createFatherSonOrderRequest
=
new
CreateFatherSonOrderRequest
();
createFatherSonOrderRequest
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
createFatherSonOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
createFatherSonOrderRequest
.
setMenuType
(
createOrderVo
.
getMenuType
());
UserDeliveryInfoDto
deliveryInfoDto
=
createOrderVo
.
getUserDeliveryInfoDto
();
List
<
CreateFatherSonOrderRequest
.
OrderInfo
>
orderInfoList
=
new
ArrayList
<>();
CreateFatherSonOrderRequest
.
OrderInfo
productOrderInfo
=
convertProductOrderInfo
(
createOrderVo
,
deliveryInfoDto
,
shoppingCartGoodsDto
,
orderWarnTime
);
...
...
@@ -501,6 +502,7 @@ public class OrderAdapter {
createOrderDto
.
setAmount
(
0L
);
createOrderDto
.
setBarCounter
(
createOrderVo
.
getTableNumber
());
createOrderDto
.
setOperator
(
createOrderVo
.
getUserName
());
createOrderDto
.
setMenuType
(
BusinessTypeEnum
.
getByCode
(
createOrderDto
.
getMenuType
()));
return
createOrderDto
;
}
...
...
order-application-service/src/main/java/cn/freemud/adapter/StoreItemAdapter.java
View file @
9092484d
...
...
@@ -30,254 +30,16 @@ import java.util.*;
@Component
public
class
StoreItemAdapter
{
private
static
FastDateFormat
yyyyMMddHHmmss
=
FastDateFormat
.
getInstance
(
"yyyy-MM-dd HH:mm:ss"
,
Locale
.
CHINA
);
public
GetMenuCategoryInfoDto
convert2MemuCategoryInfoDto
(
GetMenuCategoryVo
getMenuCategoryVo
)
{
GetMenuCategoryInfoDto
memuCategoryInfoDto
=
new
GetMenuCategoryInfoDto
();
memuCategoryInfoDto
.
setBusinessDate
(
yyyyMMddHHmmss
.
format
(
new
Date
()));
memuCategoryInfoDto
.
setChannelType
(
getMenuCategoryVo
.
getChannelType
());
memuCategoryInfoDto
.
setInfoLevel
(
getMenuCategoryVo
.
getInfoLevel
());
memuCategoryInfoDto
.
setPartnerId
(
getMenuCategoryVo
.
getPartnerId
());
memuCategoryInfoDto
.
setShopId
(
getMenuCategoryVo
.
getShopId
());
memuCategoryInfoDto
.
setValid
(
true
);
return
memuCategoryInfoDto
;
}
public
GetProductDto
convert2ProductDto
(
GetProductVo
getProductVo
)
{
GetProductDto
getProductDto
=
BeanUtil
.
convertBean
(
getProductVo
,
GetProductDto:
:
new
);
getProductDto
.
setMenuCategoryId
(
getProductVo
.
getNodeId
());
getProductDto
.
setValid
(
true
);
return
getProductDto
;
}
public
GetProductInfoDto
convert2ProductInfoDto
(
String
partnerId
,
String
shopId
,
Integer
productInfoType
,
List
<
String
>
productIds
)
{
public
GetProductInfoDto
convert2ProductInfoDto
(
String
partnerId
,
String
shopId
,
Integer
productInfoType
,
List
<
String
>
productIds
,
String
menuType
)
{
GetProductInfoDto
getProductInfoDto
=
new
GetProductInfoDto
();
getProductInfoDto
.
setPartnerId
(
partnerId
);
getProductInfoDto
.
setShopId
(
shopId
);
getProductInfoDto
.
setProductInfoType
(
productInfoType
);
getProductInfoDto
.
setProductIds
(
productIds
);
getProductInfoDto
.
setChannel
(
OrderSourceType
.
SAAS
.
getCode
()
);
getProductInfoDto
.
setChannel
(
menuType
);
return
getProductInfoDto
;
}
public
GetProductValidateDto
convert2ProductValidateDto
(
GetProductValidateVo
getProductValidateVo
)
{
return
BeanUtil
.
convertBean
(
getProductValidateVo
,
GetProductValidateDto:
:
new
);
}
public
GetProductValidateDto
convert2ProductValidateDto
(
String
partnerId
,
String
shopId
,
List
<
String
>
productIds
)
{
GetProductValidateDto
getProductValidateDto
=
new
GetProductValidateDto
();
getProductValidateDto
.
setPartnerId
(
partnerId
);
getProductValidateDto
.
setShopId
(
shopId
);
getProductValidateDto
.
setProductIds
(
productIds
);
return
getProductValidateDto
;
}
public
SpuProductVo
convert2SpuProductVo
(
GetMenuResponseDto
.
DataBean
.
RootNodeBean
.
ChildrenBeanFirst
.
ChildrenBeanSecond
.
ProductBean
productBean
)
{
SpuProductVo
spuProductVo
=
BeanUtil
.
convertBean
(
productBean
,
SpuProductVo:
:
new
);
spuProductVo
.
setSpuId
(
productBean
.
getPid
());
spuProductVo
.
setSpuName
(
productBean
.
getName
());
spuProductVo
.
setName
(
productBean
.
getName
());
spuProductVo
.
setStatusDesc
(
Optional
.
ofNullable
(
StoreItemStatus
.
getByCode
(
spuProductVo
.
getStatus
()))
.
map
(
StoreItemStatus:
:
getDesc
).
orElse
(
""
));
spuProductVo
.
setDefaultPrice
(
productBean
.
getFinalPrice
());
spuProductVo
.
setFinalPrice
(
productBean
.
getFinalPrice
());
spuProductVo
.
setPicture
(
productBean
.
getPicture
()
+
"?imageView2/1/w/225/h/225/interlace/1/q/100"
);
spuProductVo
.
setStockLimit
(
productBean
.
getStockLimit
());
List
<
ProductGroupDto
>
productGroups
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductAttributeGroupList
()))
{
productBean
.
getProductAttributeGroupList
().
sort
(
Comparator
.
comparing
(
ProductBean
.
ProductAttributeGroupListBean
::
getAttributeType
));
for
(
ProductBean
.
ProductAttributeGroupListBean
attribute
:
productBean
.
getProductAttributeGroupList
())
{
ProductGroupDto
productGroupDto
=
new
ProductGroupDto
();
productGroupDto
.
setName
(
attribute
.
getAttributeName
());
List
<
ProductGroupDto
.
GroupDetailBean
>
groupDetailBeans
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
attribute
.
getAttributeValues
()))
{
for
(
ProductBean
.
ProductAttributeGroupListBean
.
AttributeValueBean
attributeValue
:
attribute
.
getAttributeValues
())
{
/**
* 过滤下架的规格和售罄的规格
*/
if
(
StoreItemStatus
.
PUT_ON_SALE
.
getCode
().
equals
(
attributeValue
.
getStatus
()))
{
ProductGroupDto
.
GroupDetailBean
groupDetailBean
=
new
ProductGroupDto
.
GroupDetailBean
();
groupDetailBean
.
setGroupId
(
attribute
.
getAttributeType
().
toString
());
groupDetailBean
.
setProductId
(
attributeValue
.
getAttributeId
());
groupDetailBean
.
setProductName
(
attributeValue
.
getAttributeValue
());
groupDetailBean
.
setSequence
(
attributeValue
.
getSequence
());
groupDetailBean
.
setProductFinalPrice
(
attributeValue
.
getPrice
());
groupDetailBean
.
setProductPrice
(
attributeValue
.
getPrice
());
groupDetailBean
.
setStatus
(
attributeValue
.
getStatus
());
groupDetailBean
.
setStatusDesc
(
Optional
.
ofNullable
(
StoreItemStatus
.
getByCode
(
attributeValue
.
getStatus
()))
.
map
(
StoreItemStatus:
:
getDesc
).
orElse
(
""
));
groupDetailBeans
.
add
(
groupDetailBean
);
}
}
}
productGroupDto
.
setGroupDetail
(
groupDetailBeans
);
//如果规格为空则不返回该规格
if
(
CollectionUtils
.
isNotEmpty
(
groupDetailBeans
))
{
productGroups
.
add
(
productGroupDto
);
}
}
}
//设置是否包括多规格
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductAttributeGroupList
())
||
ProductType
.
HAVESPEC
.
getCode
()
==
productBean
.
getType
())
{
spuProductVo
.
setType
(
8
);
spuProductVo
.
setHasSku
(
true
);
}
else
{
spuProductVo
.
setHasSku
(
false
);
}
//TODO sku信息
Set
<
String
>
skuSpecValueIds
=
Sets
.
newHashSet
();
List
<
SpuProductVo
.
SkuProductVo
>
skuList
=
Lists
.
newArrayList
();
List
<
ProductBean
.
SkuProductBean
>
skuProductBeans
=
productBean
.
getSkuList
();
if
(
CollectionUtils
.
isNotEmpty
(
skuProductBeans
))
{
for
(
ProductBean
.
SkuProductBean
skuProductBean
:
skuProductBeans
)
{
/**
* 过滤下架的规格
*/
if
(
StoreItemStatus
.
PUT_ON_SALE
.
getCode
().
equals
(
skuProductBean
.
getStatus
()))
{
SpuProductVo
.
SkuProductVo
skuProductVo
=
new
SpuProductVo
.
SkuProductVo
();
skuProductVo
.
setSkuId
(
skuProductBean
.
getSkuId
());
skuProductVo
.
setSkuName
(
skuProductBean
.
getProductName
());
skuProductVo
.
setOriginalPrice
(
skuProductBean
.
getOriginalPrice
());
skuProductVo
.
setFinalPrice
(
skuProductBean
.
getFinalPrice
());
skuProductVo
.
setStatus
(
skuProductBean
.
getStatus
());
skuProductVo
.
setStatusDesc
(
Optional
.
ofNullable
(
StoreItemStatus
.
getByCode
(
skuProductBean
.
getStatus
())).
map
(
StoreItemStatus:
:
getDesc
).
orElse
(
""
));
// skuProductVo.setStatus(skuProductBean());
List
<
ProductBean
.
SkuProductBean
.
SkuSpecValue
>
skuSpecValueDtos
=
skuProductBean
.
getSkuSpecValues
();
List
<
String
>
specValueIdList
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
skuSpecValueDtos
))
{
skuSpecValueDtos
.
forEach
(
skuSpecValueDto
->
{
specValueIdList
.
add
(
skuSpecValueDto
.
getSpecValueId
());
skuSpecValueIds
.
add
(
skuSpecValueDto
.
getSpecValueId
());
});
}
String
[]
specValueIdArry
=
specValueIdList
.
toArray
(
new
String
[
0
]);
specValueIdList
.
clear
();
skuProductVo
.
setSpecValueId
(
specValueIdArry
);
skuList
.
add
(
skuProductVo
);
}
}
}
//TODO 多规格信息
List
<
ProductBean
.
SpecificationGroupBean
>
specificationGroupList
=
productBean
.
getSpecificationGroupList
();
//规格处理
List
<
SpuProductVo
.
SpecificationGroupVo
>
specificationGroupVos
=
redundantSpecification
(
skuSpecValueIds
,
specificationGroupList
);
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductPictureList
()))
{
spuProductVo
.
setPicture
(
productBean
.
getProductPictureList
().
get
(
0
).
getUrl
()
+
"?imageView2/1/w/225/h/225/interlace/1/q/100"
);
}
//商品标签信息
List
<
SpuProductVo
.
ProductLabel
>
productLabels
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getLabelNames
()))
{
productBean
.
getLabelNames
().
forEach
(
label
->
{
SpuProductVo
.
ProductLabel
productLabel
=
new
SpuProductVo
.
ProductLabel
();
productLabel
.
setLabelName
(
label
.
getName
());
productLabels
.
add
(
productLabel
);
});
}
spuProductVo
.
setSkuList
(
skuList
);
spuProductVo
.
setSpecificationGroupList
(
specificationGroupVos
);
spuProductVo
.
setProductLabels
(
productLabels
);
spuProductVo
.
setProductGroups
(
productGroups
);
return
spuProductVo
;
}
public
ProductVo
convert2ProductVo
(
GetMenuResponseDto
.
DataBean
.
RootNodeBean
.
ChildrenBeanFirst
.
ChildrenBeanSecond
.
ProductBean
productBean
)
{
ProductVo
productVo
=
BeanUtil
.
convertBean
(
productBean
,
ProductVo:
:
new
);
productVo
.
setStatusDesc
(
Optional
.
ofNullable
(
StoreItemStatus
.
getByCode
(
productVo
.
getStatus
()))
.
map
(
StoreItemStatus:
:
getDesc
).
orElse
(
""
));
List
<
ProductGroupDto
>
productGroups
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductAttributeGroupList
()))
{
productBean
.
getProductAttributeGroupList
().
sort
(
Comparator
.
comparing
(
ProductBean
.
ProductAttributeGroupListBean
::
getAttributeType
));
for
(
ProductBean
.
ProductAttributeGroupListBean
attribute
:
productBean
.
getProductAttributeGroupList
())
{
ProductGroupDto
productGroupDto
=
new
ProductGroupDto
();
productGroupDto
.
setName
(
attribute
.
getAttributeName
());
List
<
ProductGroupDto
.
GroupDetailBean
>
groupDetailBeans
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
attribute
.
getAttributeValues
()))
{
for
(
ProductBean
.
ProductAttributeGroupListBean
.
AttributeValueBean
attributeValue
:
attribute
.
getAttributeValues
())
{
/**
* 过滤下架的规格和售罄的规格
*/
if
(
StoreItemStatus
.
PUT_ON_SALE
.
getCode
().
equals
(
attributeValue
.
getStatus
()))
{
ProductGroupDto
.
GroupDetailBean
groupDetailBean
=
new
ProductGroupDto
.
GroupDetailBean
();
groupDetailBean
.
setGroupId
(
attribute
.
getAttributeType
().
toString
());
groupDetailBean
.
setProductId
(
attributeValue
.
getAttributeId
());
groupDetailBean
.
setProductName
(
attributeValue
.
getAttributeValue
());
groupDetailBean
.
setSequence
(
attributeValue
.
getSequence
());
groupDetailBean
.
setProductFinalPrice
(
attributeValue
.
getPrice
());
groupDetailBean
.
setProductPrice
(
attributeValue
.
getPrice
());
groupDetailBean
.
setStatus
(
attributeValue
.
getStatus
());
groupDetailBean
.
setStatusDesc
(
Optional
.
ofNullable
(
StoreItemStatus
.
getByCode
(
attributeValue
.
getStatus
()))
.
map
(
StoreItemStatus:
:
getDesc
).
orElse
(
""
));
groupDetailBeans
.
add
(
groupDetailBean
);
}
}
}
productGroupDto
.
setGroupDetail
(
groupDetailBeans
);
//如果规格为空则不返回该规格
if
(
CollectionUtils
.
isNotEmpty
(
groupDetailBeans
))
{
productGroups
.
add
(
productGroupDto
);
}
}
//设置规格类型
productVo
.
setType
(
8
);
}
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductPictureList
()))
{
productVo
.
setPicture
(
productBean
.
getProductPictureList
().
get
(
0
).
getUrl
());
}
//商品标签信息
List
<
ProductVo
.
ProductLabel
>
productLabels
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
productBean
.
getLabelNames
()))
{
productBean
.
getLabelNames
().
forEach
(
label
->
{
ProductVo
.
ProductLabel
productLabel
=
new
ProductVo
.
ProductLabel
();
productLabel
.
setLabelName
(
label
.
getName
());
productLabels
.
add
(
productLabel
);
});
}
productVo
.
setProductLabels
(
productLabels
);
productVo
.
setProductGroups
(
productGroups
);
return
productVo
;
}
/**
* 处理多余规格
* 多规格商品的下架或者不是限时特购商品去除不需要的规格值
*
* @param skuSpecValueIds sku商品的规格id集合
* @param specificationGroupList sku商品的规格对象集合
* @return
*/
public
List
<
SpuProductVo
.
SpecificationGroupVo
>
redundantSpecification
(
Set
<
String
>
skuSpecValueIds
,
List
<
ProductBean
.
SpecificationGroupBean
>
specificationGroupList
)
{
//TODO 多规格信息
List
<
SpuProductVo
.
SpecificationGroupVo
>
specificationGroupVos
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
specificationGroupList
))
{
specificationGroupList
.
forEach
(
specificationGroupBean
->
{
SpuProductVo
.
SpecificationGroupVo
specificationGroupVo
=
new
SpuProductVo
.
SpecificationGroupVo
();
specificationGroupVo
.
setSpecId
(
specificationGroupBean
.
getSpecId
());
specificationGroupVo
.
setSpecName
(
specificationGroupBean
.
getSpecName
());
List
<
ProductBean
.
SpecificationGroupBean
.
SpecValueVo
>
specValueDtos
=
specificationGroupBean
.
getSpecValueVos
();
List
<
SpuProductVo
.
SpecificationGroupVo
.
SpecValueVo
>
specValueVos
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isNotEmpty
(
specValueDtos
))
{
specValueDtos
.
forEach
(
specValueDto
->
{
//过滤在sku中没有上架状态是规格
if
(
skuSpecValueIds
.
contains
(
specValueDto
.
getSpecValueId
()))
{
SpuProductVo
.
SpecificationGroupVo
.
SpecValueVo
specValueVo
=
new
SpuProductVo
.
SpecificationGroupVo
.
SpecValueVo
();
specValueVo
.
setSpecId
(
specValueDto
.
getSpecId
());
specValueVo
.
setSpecValueId
(
specValueDto
.
getSpecValueId
());
specValueVo
.
setSpecValueName
(
specValueDto
.
getSpecValue
());
specValueVos
.
add
(
specValueVo
);
}
});
}
specificationGroupVo
.
setSpecValueVos
(
specValueVos
);
if
(
CollectionUtils
.
isNotEmpty
(
specValueVos
))
{
specificationGroupVos
.
add
(
specificationGroupVo
);
}
});
}
return
specificationGroupVos
;
}
}
order-application-service/src/main/java/cn/freemud/enums/BusinessTypeEnum.java
0 → 100644
View file @
9092484d
package
cn
.
freemud
.
enums
;
import
java.util.Arrays
;
public
enum
BusinessTypeEnum
{
SAAS_PICKUP
(
0
,
"saas"
,
"saas"
),
SAAS_DELIVERY
(
1
,
"saasdelivery"
,
"saasdelivery"
),
SAAS_MALL
(
2
,
"saasmall"
,
"saasmall"
),
SAAS_WC
(
3
,
"wc"
,
"wc"
);
private
Integer
type
;
private
String
name
;
private
String
code
;
BusinessTypeEnum
(
Integer
type
,
String
name
,
String
code
)
{
this
.
type
=
type
;
this
.
name
=
name
;
this
.
code
=
code
;
}
public
static
BusinessTypeEnum
getByType
(
Integer
type
)
{
return
Arrays
.
stream
(
BusinessTypeEnum
.
values
())
.
filter
(
e
->
e
.
type
.
equals
(
type
))
.
findFirst
().
orElse
(
BusinessTypeEnum
.
SAAS_PICKUP
);
}
public
static
BusinessTypeEnum
getByType
(
String
type
)
{
return
Arrays
.
stream
(
BusinessTypeEnum
.
values
())
.
filter
(
e
->
e
.
name
.
equals
(
type
))
.
findFirst
().
orElse
(
BusinessTypeEnum
.
SAAS_PICKUP
);
}
public
static
String
getByCode
(
String
code
){
return
Arrays
.
stream
(
BusinessTypeEnum
.
values
())
.
filter
(
e
->
e
.
code
.
equals
(
code
))
.
findFirst
().
orElse
(
BusinessTypeEnum
.
SAAS_PICKUP
).
getCode
();
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
}
order-application-service/src/main/java/cn/freemud/service/ItemService.java
View file @
9092484d
...
...
@@ -13,14 +13,5 @@ import java.util.Map;
* @date 2018/05/08
*/
public
interface
ItemService
{
/**
* 通过sku或单品组装MAP商品详情信息
* @param pids skuId
* @param partnerId
* @param storeId
* @return key = skuid
*/
Map
<
String
,
GetProductsVo
>
getProducts
(
List
<
String
>
pids
,
String
partnerId
,
String
storeId
);
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
9092484d
...
...
@@ -275,19 +275,6 @@ public class CheckOrder {
return
pushOrderTime
;
}
public
List
<
String
>
getStockProductIdList
(
CreateOrderVo
createOrderVo
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
)
{
List
<
String
>
stockProductIds
=
Lists
.
newArrayList
();
GetProductStockResponseDto
stockResponseDto
=
checkProductStock
(
shoppingCartGoodsDto
,
createOrderVo
.
getPartnerId
(),
createOrderVo
.
getShopId
());
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
stockResponseDto
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
if
(
CollectionUtils
.
isNotEmpty
(
stockResponseDto
.
getResult
()))
{
stockProductIds
=
stockResponseDto
.
getResult
().
stream
().
map
(
p
->
p
.
getPid
().
toString
()).
collect
(
Collectors
.
toList
());
LogUtil
.
debug
(
"stockProductIds"
,
gson
.
toJson
(
stockProductIds
),
null
);
}
return
stockProductIds
;
}
public
ShoppingCartGoodsDto
getShoppingCartGoodsDto
(
CreateOrderVo
createOrderVo
)
{
ShoppingCartInfoRequestVo
.
BuyMemberCard
buyMemberCard
=
null
;
if
(
createOrderVo
.
getBuyMemberCard
()
!=
null
)
{
...
...
@@ -353,17 +340,6 @@ public class CheckOrder {
}
/**
* 获取桌号
*/
public
String
getTableNumber
(
String
partnerId
,
String
shopId
,
String
tableNumber
)
{
StoreTableNumber
storeTableNumber
=
storeTableNumberManager
.
selectOne
(
partnerId
,
shopId
,
tableNumber
);
if
(
storeTableNumber
==
null
)
{
return
""
;
}
return
tableNumber
;
}
/**
* 获取门店配送信息
*/
public
StoreDeliveryInfoDto
getStoreDeliveryInfo
(
StoreResponse
.
BizVO
storeResponseDto
,
...
...
@@ -472,80 +448,6 @@ public class CheckOrder {
createOrderVo
.
setUserDeliveryInfoDto
(
userDeliveryInfoDto
);
}
public
GetProductStockResponseDto
checkProductStock
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
String
partnerId
,
String
storeId
)
{
List
<
Long
>
skuIds
=
new
ArrayList
<>();
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
goodsDetailDto
:
shoppingCartGoodsDto
.
getProducts
())
{
//1.9.2兼容套餐商品改动 套餐类子集商品不校验库存
if
(
StringUtils
.
isBlank
(
goodsDetailDto
.
getParentProductId
())){
skuIds
.
add
(
Long
.
parseLong
(
goodsDetailDto
.
getSkuId
()));
}
}
GetProductStockRequestDto
requestDto
=
new
GetProductStockRequestDto
();
requestDto
.
setChannel
(
"saas"
);
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setStoreId
(
storeId
);
requestDto
.
setProductIds
(
skuIds
);
// TODO: 2019/5/13 SDK无该方法,暂不修改
GetProductStockResponseDto
stocks
=
stockClient
.
getAvailableStocks
(
requestDto
);
LogUtil
.
debug
(
"checkProductStock_end"
,
gson
.
toJson
(
requestDto
),
gson
.
toJson
(
stocks
));
if
(
stocks
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
stocks
.
getCode
())
&&
CollectionUtils
.
isNotEmpty
(
stocks
.
getResult
()))
{
String
msg
=
""
;
for
(
GetProductStockResponseDto
.
DataBean
stock
:
stocks
.
getResult
())
{
for
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
goodsDetailDto
:
shoppingCartGoodsDto
.
getProducts
())
{
//1.9.2兼容套餐商品改动 套餐类子集商品不校验库存
if
(
StringUtils
.
isBlank
(
goodsDetailDto
.
getParentProductId
()))
continue
;
//累计买一赠一商品
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
>
products
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
p
->
p
.
getSkuId
().
equals
(
goodsDetailDto
.
getSkuId
())).
collect
(
Collectors
.
toList
());
Integer
qty
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
products
))
{
qty
=
products
.
stream
().
mapToInt
(
ShoppingCartGoodsDto
.
CartGoodsDetailDto
::
getQty
).
sum
();
}
if
(
stock
.
getPid
().
toString
().
equals
(
goodsDetailDto
.
getSkuId
())
&&
stock
.
getQty
()
<
qty
)
{
msg
+=
msg
+
goodsDetailDto
.
getSkuName
();
break
;
}
}
}
if
(!
msg
.
isEmpty
())
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
,
msg
+
"库存不足"
);
}
}
return
stocks
;
}
/**
* 获取商品第三方商品编号
*
*/
// private CreateOrderDto getProductCustomerCode(CreateOrderDto createOrderDto) {
// List<String> pids = new ArrayList<>();
// for (cn.freemud.entities.dto.order.CreateOrderProductDto productDto : createOrderDto.getProducts()) {
// pids.add(productDto.getSpecification());
// }
// Map<String, GetProductsVo> products = itemService.getProducts(pids, createOrderDto.getCompanyId(), createOrderDto.getShopId());
// if (products.isEmpty()) {
// return createOrderDto;
// }
// for (String pid : pids) {
// for (cn.freemud.entities.dto.order.CreateOrderProductDto productDto : createOrderDto.getProducts()) {
// if (pid.equals(productDto.getSpecification())) {
// if (products.get(pid) != null) {
// productDto.setCustomerCode(products.get(pid).getCustomerCode());
// } else {
// productDto.setCustomerCode("");
// LogUtil.info("getProducts_exception", JSONObject.toJSONString(pids), JSONObject.toJSONString(products));
// }
// }
// }
// }
// return createOrderDto;
// }
public
void
checkCardCode
(
String
partnerId
,
String
memberId
,
String
cardCode
,
String
trackingNo
){
if
(
StringUtils
.
isBlank
(
cardCode
)){
...
...
order-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
View file @
9092484d
...
...
@@ -43,84 +43,12 @@ public class ItemServiceImpl implements ItemService{
@Autowired
private
StoreItemAdapter
storeItemAdapter
;
@Override
public
Map
<
String
,
GetProductsVo
>
getProducts
(
List
<
String
>
pids
,
String
partnerId
,
String
storeId
)
{
Map
<
String
,
GetProductsVo
>
resultMap
=
new
HashMap
<>();
if
(
CollectionUtils
.
isEmpty
(
pids
))
{
return
resultMap
;
}
List
<
String
>
skuIds
=
Lists
.
newArrayList
();
//查询商品详情
GetProductInfoDto
getProductInfoDto
=
storeItemAdapter
.
convert2ProductInfoDto
(
partnerId
,
storeId
,
ProductInfoType
.
ALL
.
getCode
(),
pids
);
// log.info("start:{}", JSON.toJSONString(getProductInfoDto));
ProductInfosDto
productInfosDto
=
storeItemClient
.
listProductInfos
(
getProductInfoDto
);
// log.info("end:{}", JSON.toJSONString(productInfosDto));
LogUtil
.
info
(
"storeItemClient_listProductInfos"
,
gson
.
toJson
(
getProductInfoDto
),
gson
.
toJson
(
productInfosDto
));
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
productInfosDto
.
getErrcode
())
&&
productInfosDto
.
getData
()
!=
null
&&
CollectionUtils
.
isNotEmpty
(
productInfosDto
.
getData
().
getProducts
()))
{
productInfosDto
.
getData
().
getProducts
().
parallelStream
().
forEach
(
productBean
->
{
//多规格获取sku信息
GetProductsVo
getProductsVo
=
new
GetProductsVo
();
getProductsVo
.
setSkuId
(
productBean
.
getPid
());
getProductsVo
.
setSkuName
(
productBean
.
getName
());
String
picture
=
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductPictureList
())
?
productBean
.
getProductPictureList
().
get
(
0
).
getUrl
()
:
null
;
getProductsVo
.
setSpuId
(
productBean
.
getPid
());
getProductsVo
.
setSpuName
(
productBean
.
getName
());
getProductsVo
.
setSpuPicture
(
picture
);
getProductsVo
.
setOriginalPrice
(
productBean
.
getOriginalPrice
());
getProductsVo
.
setFinalPrice
(
productBean
.
getFinalPrice
());
getProductsVo
.
setProductAttributeGroupList
(
productBean
.
getProductAttributeGroupList
());
getProductsVo
.
setStatus
(
productBean
.
getStatus
());
getProductsVo
.
setStock
(
productBean
.
getStock
());
getProductsVo
.
setStockLimit
(
productBean
.
getStockLimit
());
getProductsVo
.
setCustomerCode
(
productBean
.
getCustomerCode
());
getProductsVo
.
setProductCode
(
productBean
.
getProductCode
());
resultMap
.
put
(
productBean
.
getPid
(),
getProductsVo
);
getProductsVo
.
setType
(
1
);
// 规格ID 剔除单品
if
(
Objects
.
equals
(
productBean
.
getIsSkuProduct
(),
YesOrNoEnum
.
YES
.
getCode
()))
{
getProductsVo
.
setType
(
10
);
skuIds
.
add
(
productBean
.
getPid
());
}
});
}
if
(
CollectionUtils
.
isEmpty
(
skuIds
))
{
return
resultMap
;
}
// 通过skuid查询spuid
GetSpuIdsBySkuIdsDto
bySkuIdsDto
=
new
GetSpuIdsBySkuIdsDto
();
bySkuIdsDto
.
setProductIds
(
skuIds
);
bySkuIdsDto
.
setPartnerId
(
partnerId
);
ProductListDto
productListDto
=
storeItemClient
.
getSpuIdsBySkuIds
(
bySkuIdsDto
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
productListDto
.
getErrcode
())
&&
CollectionUtils
.
isNotEmpty
(
productListDto
.
getData
()))
{
productListDto
.
getData
().
parallelStream
().
forEach
(
product
->
{
product
.
getSkuList
().
parallelStream
().
forEach
(
skuProductBean
->
{
if
(
resultMap
.
get
(
skuProductBean
.
getSkuId
())
!=
null
)
{
GetProductsVo
getProductsVo
=
resultMap
.
get
(
skuProductBean
.
getSkuId
());
getProductsVo
.
setSpuId
(
product
.
getPid
());
getProductsVo
.
setSpuName
(
product
.
getName
());
String
picture
=
CollectionUtils
.
isNotEmpty
(
product
.
getProductPictureList
())
?
product
.
getProductPictureList
().
get
(
0
).
getUrl
()
:
product
.
getPicture
();
getProductsVo
.
setSpuPicture
(
picture
);
getProductsVo
.
setStatus
(
product
.
getStatus
());
resultMap
.
put
(
skuProductBean
.
getSkuId
(),
getProductsVo
);
}
});
});
}
return
resultMap
;
}
/**
* 传spuid集合查询所有里面所有sku商品信息
* 包括商品的套餐子商品
* 返回商品的第三方编号(唯一)、第三方货号、第三方规格id,第三方属性id
*/
public
Map
<
String
,
GetProductsVo
>
getSpuProducts
(
List
<
String
>
spuIds
,
String
partnerId
,
String
storeId
)
{
public
Map
<
String
,
GetProductsVo
>
getSpuProducts
(
List
<
String
>
spuIds
,
String
partnerId
,
String
storeId
,
String
menuType
)
{
Map
<
String
,
GetProductsVo
>
resultMap
=
new
HashMap
<>();
if
(
CollectionUtils
.
isEmpty
(
spuIds
))
{
return
resultMap
;
...
...
@@ -128,7 +56,7 @@ public class ItemServiceImpl implements ItemService{
//去重
List
<
String
>
result
=
spuIds
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
//查询商品详情
GetProductInfoDto
getProductInfoDto
=
storeItemAdapter
.
convert2ProductInfoDto
(
partnerId
,
storeId
,
ProductInfoType
.
ALL
.
getCode
(),
result
);
GetProductInfoDto
getProductInfoDto
=
storeItemAdapter
.
convert2ProductInfoDto
(
partnerId
,
storeId
,
ProductInfoType
.
ALL
.
getCode
(),
result
,
menuType
);
ProductInfosDto
productInfosDto
=
storeItemClient
.
listProductInfos
(
getProductInfoDto
);
LogUtil
.
info
(
"storeItemClient_listProductInfos"
,
gson
.
toJson
(
getProductInfoDto
),
gson
.
toJson
(
productInfosDto
));
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
productInfosDto
.
getErrcode
())
&&
productInfosDto
.
getData
()
!=
null
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
9092484d
...
...
@@ -1593,7 +1593,7 @@ public class OrderServiceImpl implements Orderservice {
for
(
CreateOrderProductRequest
productDto
:
productOrderInfoList
.
get
(
0
).
getProducts
())
{
pids
.
add
(
productDto
.
getProductId
());
}
Map
<
String
,
GetProductsVo
>
products
=
itemService
.
getSpuProducts
(
pids
,
fatherSonOrderRequest
.
getPartnerId
(),
productOrderInfoList
.
get
(
0
).
getShopId
());
Map
<
String
,
GetProductsVo
>
products
=
itemService
.
getSpuProducts
(
pids
,
fatherSonOrderRequest
.
getPartnerId
(),
productOrderInfoList
.
get
(
0
).
getShopId
()
,
fatherSonOrderRequest
.
getMenuType
()
);
if
(
products
.
isEmpty
())
{
return
fatherSonOrderRequest
;
}
...
...
@@ -1639,7 +1639,7 @@ public class OrderServiceImpl implements Orderservice {
for
(
CreateOrderProductRequest
productDto
:
createOrderDto
.
getProducts
())
{
spuIds
.
add
(
productDto
.
getProductId
());
}
Map
<
String
,
GetProductsVo
>
products
=
itemService
.
getSpuProducts
(
spuIds
,
createOrderDto
.
getCompanyId
(),
createOrderDto
.
getShopId
());
Map
<
String
,
GetProductsVo
>
products
=
itemService
.
getSpuProducts
(
spuIds
,
createOrderDto
.
getCompanyId
(),
createOrderDto
.
getShopId
()
,
createOrderDto
.
getMenuType
()
);
if
(
products
.
isEmpty
())
{
return
createOrderDto
;
}
...
...
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