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
dbd25698
Commit
dbd25698
authored
Jan 14, 2021
by
chongfu.liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重构
parent
ba3ae383
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
1006 additions
and
27 deletions
+1006
-27
shopping-cart-application-service/src/main/java/cn/freemud/demo/adapter/manager/ProductBO2DTOAdapter.java
+24
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/adapter/manager/ProductDTO2BOAdapter.java
+6
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/adapter/service/AddGoodsBOAdapter.java
+10
-10
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/CheckBussinessRulesBO.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/CouponDetailBO.java
+128
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetCouponDetailBO.java
+13
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetProductBySkuIdBO.java
+18
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetProductStock.java
+16
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetStoreBO.java
+11
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/ManagerServiceBO.java
+7
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/ProductStockBO.java
+24
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/GetProductBySkuIdResponseBO.java
+54
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/ProductBO.java
+15
-3
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/add/BaseAddGoodsBO.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/add/PlatformAddGoodsBO.java
+0
-2
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/coupon/CouponManager.java
+19
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/coupon/CouponService.java
+11
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/coupon/KgdCouponServiceImpl.java
+105
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/KgdProductServiceImpl.java
+52
-1
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/ProductManager.java
+22
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/ProductService.java
+11
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/store/KgdStoreServiceImpl.java
+34
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/store/StoreManager.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/store/StoreService.java
+11
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/AbstractAddGoodsService.java
+269
-4
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/PlatformAddGoodsService.java
+0
-3
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/ShoppingBaseServiceImpl.java
+14
-0
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/ShoppingCartService.java
+11
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/ItemService.java
+11
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+9
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
+88
-0
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/demo/adapter/manager/ProductBO2DTOAdapter.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
adapter
.
manager
;
import
cn.freemud.demo.entities.GetProductStock
;
import
cn.freemud.demo.entities.ProductStockBO
;
import
cn.freemud.entities.dto.GetProductStockRequestDto
;
import
cn.freemud.entities.dto.GetProductStockResponseDto
;
import
org.springframework.stereotype.Component
;
@Component
public
class
ProductBO2DTOAdapter
{
public
GetProductStockRequestDto
convert2GetProductStockDto
(
GetProductStock
getProductStock
)
{
GetProductStockRequestDto
getProductStockRequestDto
=
new
GetProductStockRequestDto
();
getProductStockRequestDto
.
setChannel
(
getProductStock
.
getChannel
());
getProductStockRequestDto
.
setPartnerId
(
getProductStock
.
getPartnerId
());
getProductStockRequestDto
.
setProductIds
(
getProductStock
.
getProductIds
());
getProductStockRequestDto
.
setStoreId
(
getProductStock
.
getStoreId
());
return
getProductStockRequestDto
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/adapter/manager/ProductDTO2BOAdapter.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
adapter
.
manager
;
package
cn
.
freemud
.
demo
.
adapter
.
manager
;
import
cn.freemud.demo.entities.ProductStockBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.entities.dto.GetProductStockResponseDto
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -12,4 +14,8 @@ public class ProductDTO2BOAdapter {
...
@@ -12,4 +14,8 @@ public class ProductDTO2BOAdapter {
return
null
;
return
null
;
}
}
public
ProductStockBO
convert2ProductStockBO
(
GetProductStockResponseDto
.
DataBean
ProductStockDTO
)
{
return
null
;
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/adapter/service/AddGoodsBOAdapter.java
View file @
dbd25698
...
@@ -53,7 +53,7 @@ public class AddGoodsBOAdapter {
...
@@ -53,7 +53,7 @@ public class AddGoodsBOAdapter {
PlatformAddGoodsBO
platformAddGoodsBO
=
mapperFacade
.
map
(
baseRequestDTO
,
PlatformAddGoodsBO
.
class
);
PlatformAddGoodsBO
platformAddGoodsBO
=
mapperFacade
.
map
(
baseRequestDTO
,
PlatformAddGoodsBO
.
class
);
P
latformP
roductBO
platformProductBO
=
convert2PlatformProductBO
(
baseRequestDTO
);
ProductBO
platformProductBO
=
convert2PlatformProductBO
(
baseRequestDTO
);
platformAddGoodsBO
.
setAddGoods
(
platformProductBO
);
platformAddGoodsBO
.
setAddGoods
(
platformProductBO
);
ManagerServiceBO
managerService
=
ManagerServiceBO
.
builder
()
ManagerServiceBO
managerService
=
ManagerServiceBO
.
builder
()
...
@@ -82,8 +82,8 @@ public class AddGoodsBOAdapter {
...
@@ -82,8 +82,8 @@ public class AddGoodsBOAdapter {
}
}
private
P
latformP
roductBO
convert2PlatformProductBO
(
AddGoodsRequestDTO
baseRequestDTO
)
{
private
ProductBO
convert2PlatformProductBO
(
AddGoodsRequestDTO
baseRequestDTO
)
{
P
latformProductBO
platformProductBO
=
mapperFacade
.
map
(
baseRequestDTO
,
Platform
ProductBO
.
class
);
P
roductBO
platformProductBO
=
mapperFacade
.
map
(
baseRequestDTO
,
ProductBO
.
class
);
String
spuId
=
baseRequestDTO
.
getSpuId
();
String
spuId
=
baseRequestDTO
.
getSpuId
();
String
skuId
=
baseRequestDTO
.
getSkuId
();
String
skuId
=
baseRequestDTO
.
getSkuId
();
...
@@ -98,13 +98,13 @@ public class AddGoodsBOAdapter {
...
@@ -98,13 +98,13 @@ public class AddGoodsBOAdapter {
goodsType
=
GoodsTypeEnum
.
SET_MEAL_GOODS
.
getGoodsType
();
goodsType
=
GoodsTypeEnum
.
SET_MEAL_GOODS
.
getGoodsType
();
}
}
platformProductBO
.
setGoodsType
(
goodsType
);
platformProductBO
.
setGoodsType
(
goodsType
);
List
<
Platform
ComboxGoodsBO
>
productComboList
=
new
ArrayList
<>();
List
<
ComboxGoodsBO
>
productComboList
=
new
ArrayList
<>();
List
<
Platform
ComboxGoodsBO
>
productGroupList
=
new
ArrayList
<>();
List
<
ComboxGoodsBO
>
productGroupList
=
new
ArrayList
<>();
List
<
Platform
MaterialBO
>
materialGoodsList
=
new
ArrayList
<>();
List
<
MaterialBO
>
materialGoodsList
=
new
ArrayList
<>();
//套餐
//套餐
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestDTO
.
getProductComboList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestDTO
.
getProductComboList
()))
{
for
(
ComboxGoodsRequestVo
vo
:
baseRequestDTO
.
getProductComboList
())
{
for
(
ComboxGoodsRequestVo
vo
:
baseRequestDTO
.
getProductComboList
())
{
PlatformComboxGoodsBO
productCombox
=
new
Platform
ComboxGoodsBO
();
ComboxGoodsBO
productCombox
=
new
ComboxGoodsBO
();
productCombox
.
setGoodsId
(
vo
.
getSkuId
());
productCombox
.
setGoodsId
(
vo
.
getSkuId
());
productCombox
.
setSkuId
(
vo
.
getSkuId
());
productCombox
.
setSkuId
(
vo
.
getSkuId
());
productCombox
.
setQty
(
vo
.
getQty
());
productCombox
.
setQty
(
vo
.
getQty
());
...
@@ -116,20 +116,20 @@ public class AddGoodsBOAdapter {
...
@@ -116,20 +116,20 @@ public class AddGoodsBOAdapter {
//固定商品组
//固定商品组
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestDTO
.
getProductGroupList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestDTO
.
getProductGroupList
()))
{
for
(
ComboxGoodsRequestVo
vo
:
baseRequestDTO
.
getProductGroupList
())
{
for
(
ComboxGoodsRequestVo
vo
:
baseRequestDTO
.
getProductGroupList
())
{
PlatformComboxGoodsBO
productCombox
=
new
Platform
ComboxGoodsBO
();
ComboxGoodsBO
productCombox
=
new
ComboxGoodsBO
();
productCombox
.
setGoodsId
(
vo
.
getSkuId
());
productCombox
.
setGoodsId
(
vo
.
getSkuId
());
productCombox
.
setSkuId
(
vo
.
getSkuId
());
productCombox
.
setSkuId
(
vo
.
getSkuId
());
productCombox
.
setQty
(
vo
.
getQty
());
productCombox
.
setQty
(
vo
.
getQty
());
List
<
CartGoodsExtra
>
cartGoodsExtras
=
mapperFacade
.
mapAsList
(
vo
.
getExtra
(),
CartGoodsExtra
.
class
);
List
<
CartGoodsExtra
>
cartGoodsExtras
=
mapperFacade
.
mapAsList
(
vo
.
getExtra
(),
CartGoodsExtra
.
class
);
productCombox
.
setExtra
(
cartGoodsExtras
);
productCombox
.
setExtra
(
cartGoodsExtras
);
productCombox
.
setProductGroupId
(
vo
.
getProductGroupId
()
==
null
?
null
:
vo
.
getProductGroupId
(
));
productCombox
.
setProductGroupId
(
StringUtils
.
isBlank
(
vo
.
getProductGroupId
())
?
null
:
Long
.
parseLong
(
vo
.
getProductGroupId
()
));
productGroupList
.
add
(
productCombox
);
productGroupList
.
add
(
productCombox
);
}
}
}
}
//加料商品集
//加料商品集
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestDTO
.
getProductMaterialList
()))
{
if
(
CollectionUtils
.
isNotEmpty
(
baseRequestDTO
.
getProductMaterialList
()))
{
for
(
MaterialRequestVo
materialRequestVo
:
baseRequestDTO
.
getProductMaterialList
())
{
for
(
MaterialRequestVo
materialRequestVo
:
baseRequestDTO
.
getProductMaterialList
())
{
PlatformMaterialBO
materialGoods
=
new
Platform
MaterialBO
();
MaterialBO
materialGoods
=
new
MaterialBO
();
materialGoods
.
setSpuId
(
materialRequestVo
.
getSpuId
());
materialGoods
.
setSpuId
(
materialRequestVo
.
getSpuId
());
materialGoodsList
.
add
(
materialGoods
);
materialGoodsList
.
add
(
materialGoods
);
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/CheckBussinessRulesBO.java
View file @
dbd25698
...
@@ -2,8 +2,11 @@ package cn.freemud.demo.entities;
...
@@ -2,8 +2,11 @@ package cn.freemud.demo.entities;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.entities.vo.CartGoods
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
@Data
@Data
public
class
CheckBussinessRulesBO
{
public
class
CheckBussinessRulesBO
{
...
@@ -11,4 +14,6 @@ public class CheckBussinessRulesBO {
...
@@ -11,4 +14,6 @@ public class CheckBussinessRulesBO {
private
ProductBO
product
;
private
ProductBO
product
;
private
List
<
CartGoods
>
cartGoods
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/CouponDetailBO.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
CouponDetailBO
{
/**
*表示接口处理是否成功,1表示成功,0表示失败
*/
private
Integer
result
;
private
Integer
statusCode
;
private
Integer
ver
;
private
List
<
CouponDetailBO
.
Errors
>
errors
;
private
List
<
CouponDetailBO
.
Details
>
details
;
@Data
public
static
class
Details
{
private
String
code
;
private
String
activeCode
;
private
String
title
;
private
Integer
type
;
private
Integer
status
;
private
String
create_time
;
private
String
redeem_time
;
private
String
valid_start
;
private
String
valid_ends
;
private
String
minAmount
;
private
CouponDetailBO
.
Active
active
;
private
List
<
CouponDetailBO
.
ActiveProduct
>
activeProduct
;
private
List
<
CouponDetailBO
.
ActiveRestrictionVOS
>
activeRestrictionVOS
;
}
@Data
public
static
class
Active
{
@JsonProperty
(
"ActiveCode"
)
private
String
activeCode
;
@JsonProperty
(
"ActiveDesc"
)
private
String
activeDesc
;
@JsonProperty
(
"ActiveName"
)
private
String
activeName
;
@JsonProperty
(
"BusinessID"
)
private
Integer
businessId
;
@JsonProperty
(
"CreateDate"
)
private
String
createDate
;
@JsonProperty
(
"CreateUser"
)
private
String
createUser
;
@JsonProperty
(
"EBCode"
)
private
String
ebCode
;
@JsonProperty
(
"EndDate"
)
private
String
endDate
;
@JsonProperty
(
"EndString"
)
private
String
endString
;
@JsonProperty
(
"Inventory"
)
private
Integer
inventory
;
@JsonProperty
(
"LastEditDate"
)
private
String
lastEditDate
;
@JsonProperty
(
"LastEditUser"
)
private
String
lastEditUser
;
@JsonProperty
(
"MaxDiscount"
)
private
Integer
maxDiscount
;
@JsonProperty
(
"MaxRedeemTimes"
)
private
Integer
maxRedeemTimes
;
@JsonProperty
(
"MinAmount"
)
private
Integer
minAmount
;
@JsonProperty
(
"PartnerID"
)
private
String
partnerId
;
@JsonProperty
(
"PercentDiscount"
)
private
Integer
percentDiscount
;
@JsonProperty
(
"Percentage"
)
private
Integer
percentage
;
@JsonProperty
(
"PromotionType"
)
private
String
promotionType
;
@JsonProperty
(
"ShouldRedeemAll"
)
private
Boolean
shouldRedeemAll
;
@JsonProperty
(
"StartDate"
)
private
String
startDate
;
@JsonProperty
(
"StartString"
)
private
String
startString
;
@JsonProperty
(
"State"
)
private
Integer
state
;
@JsonProperty
(
"Type"
)
private
Integer
type
;
}
@Data
public
static
class
ActiveProduct
{
@JsonProperty
(
"ActiveID"
)
private
Integer
activeId
;
@JsonProperty
(
"Amount"
)
private
Integer
amount
;
@JsonProperty
(
"Paid"
)
private
Integer
paid
;
@JsonProperty
(
"Price_Discount"
)
private
BigDecimal
priceDiscount
;
@JsonProperty
(
"Price_Original"
)
private
BigDecimal
priceOriginal
;
@JsonProperty
(
"Product"
)
private
String
product
;
@JsonProperty
(
"ProductID"
)
private
Integer
productId
;
@JsonProperty
(
"ProductID_Partner"
)
private
String
productIdPartner
;
@JsonProperty
(
"Remain"
)
private
Integer
remain
;
}
@Data
public
static
class
ActiveProductSetting
{
}
@Data
public
static
class
ActiveRestrictionVOS
{
@JsonProperty
(
"ActiveID"
)
private
String
activeId
;
@JsonProperty
(
"City"
)
private
String
city
;
@JsonProperty
(
"StoreIDPartner"
)
private
String
storeIdPartner
;
}
@Data
public
static
class
Errors
{
@JsonProperty
(
"error_code"
)
private
String
errorCode
;
private
String
parameter
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetCouponDetailBO.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
import
lombok.Data
;
@Data
public
class
GetCouponDetailBO
{
private
String
partnerId
;
private
String
couponCode
;
private
String
storeCode
;
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetProductBySkuIdBO.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
GetProductBySkuIdBO
{
private
List
<
String
>
skuids
;
private
String
partnerId
;
private
String
storeId
;
private
String
menuType
;
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetProductStock.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
GetProductStock
{
private
String
channel
;
private
String
partnerId
;
private
String
storeId
;
private
List
<
Long
>
productIds
;
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/GetStoreBO.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
import
lombok.Data
;
@Data
public
class
GetStoreBO
{
private
String
partnerId
;
private
String
storeCode
;
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/ManagerServiceBO.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
package
cn
.
freemud
.
demo
.
entities
;
import
cn.freemud.demo.manager.coupon.CouponService
;
import
cn.freemud.demo.manager.customer.CustomerService
;
import
cn.freemud.demo.manager.customer.CustomerService
;
import
cn.freemud.demo.manager.product.ProductService
;
import
cn.freemud.demo.manager.product.ProductService
;
import
cn.freemud.demo.manager.store.StoreService
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -13,4 +15,9 @@ public class ManagerServiceBO {
...
@@ -13,4 +15,9 @@ public class ManagerServiceBO {
private
ProductService
productService
;
private
ProductService
productService
;
private
CouponService
couponService
;
private
StoreService
storeService
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/ProductStockBO.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
;
import
lombok.Data
;
@Data
public
class
ProductStockBO
{
//商户商品id/编码
private
String
ccode
;
private
String
channel
;
// 采购中心id
private
String
pcid
;
//非码商品id
private
Long
pid
;
private
String
pname
;
//商户id/编号
private
String
ptid
;
private
Integer
qty
;
//安全库存数
private
Integer
safeQty
;
//门店id/编号
private
String
stid
;
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/GetProductBySkuIdResponseBO.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
.
bo
.
goods
;
import
cn.freemud.entities.dto.GetMenuResponseDto
;
import
cn.freemud.entities.vo.CartGoods
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
GetProductBySkuIdResponseBO
{
private
String
spuId
;
private
String
spuName
;
private
String
spuPicture
;
private
String
skuId
;
private
String
skuName
;
private
Long
originalPrice
;
/**
* 最终价格 单位分
*/
private
Long
finalPrice
;
/**
* 上下架状态
*/
private
Integer
status
;
// 1.5.4 对接库存新加
private
Integer
stock
;
private
Integer
stockLimit
;
/**
* type=10 多规格 type=1 单规格
*/
private
Integer
type
;
/**
* 第三方商品编号
*/
private
String
customerCode
;
/**
* 属性
*/
private
List
<
GetMenuResponseDto
.
DataBean
.
RootNodeBean
.
ChildrenBeanFirst
.
ChildrenBeanSecond
.
ProductBean
.
ProductAttributeGroupListBean
>
productAttributeGroupList
;
/**
* 分类id
*/
private
String
category
;
/**
* 分类名称
*/
private
String
categoryName
;
private
String
defaultSpecId
;
private
String
defaultSpecName
;
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/ProductBO.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
entities
.
bo
.
goods
;
package
cn
.
freemud
.
demo
.
entities
.
bo
.
goods
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
@@ -17,6 +18,12 @@ public class ProductBO {
...
@@ -17,6 +18,12 @@ public class ProductBO {
private
Integer
goodsType
;
private
Integer
goodsType
;
private
int
type
;
private
Integer
stockLimit
;
private
List
<
SkuProductBean
>
skuList
;
/**
/**
* 数量
* 数量
*/
*/
...
@@ -41,16 +48,21 @@ public class ProductBO {
...
@@ -41,16 +48,21 @@ public class ProductBO {
/**
/**
* 套餐固定商品
* 套餐固定商品
*/
*/
private
List
<
Mcoffee
ComboxGoodsBO
>
productComboList
;
private
List
<
ComboxGoodsBO
>
productComboList
;
/**
/**
* 套餐可选商品
* 套餐可选商品
*/
*/
private
List
<
Mcoffee
ComboxGoodsBO
>
productGroupList
;
private
List
<
ComboxGoodsBO
>
productGroupList
;
/**
/**
* 加料
* 加料
*/
*/
private
List
<
M
coffeeM
aterialBO
>
productMaterialList
;
private
List
<
MaterialBO
>
productMaterialList
;
@Data
public
static
class
SkuProductBean
{
private
String
skuId
;
private
Integer
stockLimit
;
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/add/BaseAddGoodsBO.java
View file @
dbd25698
...
@@ -2,6 +2,7 @@ package cn.freemud.demo.entities.bo.goods.add;
...
@@ -2,6 +2,7 @@ package cn.freemud.demo.entities.bo.goods.add;
import
cn.freemud.demo.entities.ManagerServiceBO
;
import
cn.freemud.demo.entities.ManagerServiceBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
lombok.Data
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.hibernate.validator.constraints.NotEmpty
;
...
@@ -24,6 +25,9 @@ public class BaseAddGoodsBO {
...
@@ -24,6 +25,9 @@ public class BaseAddGoodsBO {
private
ManagerServiceBO
managerService
;
private
ManagerServiceBO
managerService
;
private
ProductBO
addGoods
;
/**
/**
* 微信appId
* 微信appId
*/
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/entities/bo/goods/add/PlatformAddGoodsBO.java
View file @
dbd25698
...
@@ -13,8 +13,6 @@ import java.util.List;
...
@@ -13,8 +13,6 @@ import java.util.List;
@Data
@Data
public
class
PlatformAddGoodsBO
extends
BaseAddGoodsBO
{
public
class
PlatformAddGoodsBO
extends
BaseAddGoodsBO
{
private
PlatformProductBO
addGoods
;
private
String
version
;
private
String
version
;
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/coupon/CouponManager.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
coupon
;
import
cn.freemud.demo.entities.CouponDetailBO
;
import
cn.freemud.demo.entities.GetCouponDetailBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.manager.product.ProductService
;
import
org.springframework.stereotype.Service
;
@Service
public
class
CouponManager
{
public
CouponDetailBO
getCouponDetail
(
GetCouponDetailBO
getCouponDetail
,
CouponService
couponService
){
CouponDetailBO
couponDetail
=
couponService
.
getCouponDetail
(
getCouponDetail
);
return
couponDetail
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/coupon/CouponService.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
coupon
;
import
cn.freemud.demo.entities.CouponDetailBO
;
import
cn.freemud.demo.entities.GetCouponDetailBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
public
interface
CouponService
{
CouponDetailBO
getCouponDetail
(
GetCouponDetailBO
getCouponDetailBO
);
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/coupon/KgdCouponServiceImpl.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
coupon
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.demo.entities.CouponDetailBO
;
import
cn.freemud.demo.entities.GetCouponDetailBO
;
import
cn.freemud.demo.entities.GetStoreBO
;
import
cn.freemud.demo.entities.bo.goods.add.MCoffeeAddGoodsBO
;
import
cn.freemud.demo.manager.store.StoreService
;
import
cn.freemud.entities.dto.GetAppKeyRequestDto
;
import
cn.freemud.entities.dto.GetAppKeyResponseDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.thirdparty.CardBinClient
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.RedisUtil
;
import
com.freemud.card.sdk.comm.Finals
;
import
com.freemud.card.sdk.comm.SignUtil
;
import
com.google.common.base.Joiner
;
import
ma.glasnost.orika.MapperFacade
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.TreeMap
;
@Service
(
"KgdCouponService"
)
public
class
KgdCouponServiceImpl
implements
CouponService
{
@Autowired
CouponOnlineClient
couponOnlineClient
;
@Autowired
@Qualifier
(
"KgdStoreService"
)
StoreService
storeService
;
@Autowired
CardBinClient
cardBinClient
;
@Autowired
private
RedisCache
redisCache
;
@Value
(
"${coupon.app.id}"
)
private
String
appid
;
@Resource
private
MapperFacade
mapperFacade
;
@Override
public
CouponDetailBO
getCouponDetail
(
GetCouponDetailBO
getCouponDetailBO
)
{
Map
<
String
,
String
>
map
=
new
TreeMap
<
String
,
String
>();
if
(
StringUtils
.
isBlank
(
getCouponDetailBO
.
getPartnerId
())
||
StringUtils
.
isBlank
(
getCouponDetailBO
.
getCouponCode
()))
{
return
null
;
}
map
.
put
(
Finals
.
CODES
,
getCouponDetailBO
.
getCouponCode
());
map
.
put
(
Finals
.
PARTNER_ID
,
getCouponDetailBO
.
getPartnerId
());
map
.
put
(
Finals
.
MERCHANT_ID
,
getCouponDetailBO
.
getPartnerId
());
map
.
put
(
Finals
.
ACTION
,
"code.allDetails"
);
// 券码接口新增参数:组织机构(多个用英文逗号分离)
GetStoreBO
getStoreBO
=
new
GetStoreBO
();
getStoreBO
.
setPartnerId
(
getCouponDetailBO
.
getPartnerId
());
getStoreBO
.
setStoreCode
(
getCouponDetailBO
.
getStoreCode
());
List
<
String
>
orgIds
=
storeService
.
getOrgIds
(
getStoreBO
);
String
channelIds
=
CollectionUtils
.
isNotEmpty
(
orgIds
)
?
Joiner
.
on
(
","
).
join
(
orgIds
)
:
""
;
map
.
put
(
Finals
.
CHANNEL_CODE_LIST
,
channelIds
);
String
appSecret
=
getAppSecret
(
getCouponDetailBO
.
getPartnerId
());
String
sign
=
SignUtil
.
createMD5Sign
(
map
,
appSecret
);
map
.
put
(
Finals
.
SIGN
,
sign
);
GetCouponDetailResponseDto
responseDto
=
couponOnlineClient
.
getCouponDetails
(
map
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_1
.
equals
(
responseDto
.
getResult
()))
{
return
convert2CouponDetailBO
(
responseDto
);
}
return
null
;
}
private
CouponDetailBO
convert2CouponDetailBO
(
GetCouponDetailResponseDto
responseDto
)
{
CouponDetailBO
couponDetailBO
=
mapperFacade
.
map
(
responseDto
,
CouponDetailBO
.
class
);
return
couponDetailBO
;
}
public
String
getAppSecret
(
String
partnerId
)
{
// 获取券服务的密钥
String
couponAppSecret
=
RedisUtil
.
getCouponAppSecret
(
partnerId
);
String
appSecret
=
redisCache
.
getValue
(
couponAppSecret
);
if
(
StringUtils
.
isBlank
(
appSecret
))
{
GetAppKeyResponseDto
getAppKeyResponseDto
=
cardBinClient
.
getAppKey
(
GetAppKeyRequestDto
.
builder
().
partnerId
(
partnerId
).
appId
(
appid
).
build
());
if
(
Objects
.
equals
(
String
.
valueOf
(
getAppKeyResponseDto
.
getStatusCode
()),
ResponseResult
.
SUCCESS
.
getCode
())
&&
getAppKeyResponseDto
.
getData
()
!=
null
)
{
redisCache
.
save
(
couponAppSecret
,
getAppKeyResponseDto
.
getData
().
getAppKey
());
appSecret
=
getAppKeyResponseDto
.
getData
().
getAppKey
();
}
}
return
appSecret
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/KgdProductServiceImpl.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
product
;
package
cn
.
freemud
.
demo
.
manager
.
product
;
import
cn.freemud.demo.adapter.manager.ProductBO2DTOAdapter
;
import
cn.freemud.demo.adapter.manager.ProductDTO2BOAdapter
;
import
cn.freemud.demo.adapter.manager.ProductDTO2BOAdapter
;
import
cn.freemud.demo.entities.GetProductBySkuIdBO
;
import
cn.freemud.demo.entities.GetProductStock
;
import
cn.freemud.demo.entities.ProductStockBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBySkuIdResponseBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.entities.dto.GetProductStockRequestDto
;
import
cn.freemud.entities.dto.GetProductStockResponseDto
;
import
cn.freemud.entities.vo.GetProductsVo
;
import
cn.freemud.service.ItemService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.service.thirdparty.StockClient
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
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.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Service
(
"KgdProductService"
)
@Service
(
"KgdProductService"
)
public
class
KgdProductServiceImpl
implements
ProductService
{
public
class
KgdProductServiceImpl
implements
ProductService
{
...
@@ -22,11 +35,24 @@ public class KgdProductServiceImpl implements ProductService {
...
@@ -22,11 +35,24 @@ public class KgdProductServiceImpl implements ProductService {
@Autowired
@Autowired
private
ProductDTO2BOAdapter
productDTO2BOAdapter
;
private
ProductDTO2BOAdapter
productDTO2BOAdapter
;
@Autowired
private
ProductBO2DTOAdapter
productBO2DTOAdapter
;
@Autowired
private
ItemService
itemService
;
@Autowired
private
ShoppingCartBaseServiceImpl
shoppingCartBaseService
;
@Autowired
private
StockClient
stockClient
;
@Override
@Override
public
ProductBO
getProductInfo
(
GetProductBO
getProductBO
)
{
public
ProductBO
getProductInfo
(
GetProductBO
getProductBO
)
{
// 获取添加商品的详细信息
// 获取添加商品的详细信息
List
<
ProductBeanDTO
>
productBeanListSpuClass
=
assortmentSdkService
.
getProductsInfoSdk
(
getProductBO
.
getPartnerId
(),
List
<
ProductBeanDTO
>
productBeanListSpuClass
=
assortmentSdkService
.
getProductsInfoSdk
(
getProductBO
.
getPartnerId
(),
getProductBO
.
getStoreId
(),
Collections
.
singletonList
(
getProductBO
.
getSkuid
()),
getProductBO
.
getMenuType
(),
null
);
getProductBO
.
getStoreId
(),
Collections
.
singletonList
(
getProductBO
.
getSkuid
()),
getProductBO
.
getMenuType
(),
shoppingCartBaseService
);
ProductBeanDTO
productBeanDTO
=
productBeanListSpuClass
.
get
(
0
);
ProductBeanDTO
productBeanDTO
=
productBeanListSpuClass
.
get
(
0
);
ProductBO
platformProductBO
=
productDTO2BOAdapter
.
convert2ProductBO
(
productBeanDTO
);
ProductBO
platformProductBO
=
productDTO2BOAdapter
.
convert2ProductBO
(
productBeanDTO
);
...
@@ -34,5 +60,30 @@ public class KgdProductServiceImpl implements ProductService {
...
@@ -34,5 +60,30 @@ public class KgdProductServiceImpl implements ProductService {
return
platformProductBO
;
return
platformProductBO
;
}
}
@Override
public
Map
<
String
,
GetProductBySkuIdResponseBO
>
getProductInfoBySkuIds
(
GetProductBySkuIdBO
getProductBySkuIdBO
)
{
Map
<
String
,
GetProductBySkuIdResponseBO
>
products
=
itemService
.
getProductsBySkuId
(
getProductBySkuIdBO
.
getSkuids
(),
getProductBySkuIdBO
.
getPartnerId
(),
getProductBySkuIdBO
.
getStoreId
(),
getProductBySkuIdBO
.
getMenuType
());
return
products
;
}
@Override
public
List
<
ProductStockBO
>
getProductStock
(
GetProductStock
getProductStock
)
{
GetProductStockRequestDto
getProductStockRequestDto
=
productBO2DTOAdapter
.
convert2GetProductStockDto
(
getProductStock
);
GetProductStockResponseDto
availableStocks
=
stockClient
.
getAvailableStocks
(
getProductStockRequestDto
);
List
<
GetProductStockResponseDto
.
DataBean
>
result
=
availableStocks
.
getResult
();
List
<
ProductStockBO
>
list
=
new
ArrayList
<>();
for
(
GetProductStockResponseDto
.
DataBean
dataBean
:
result
){
ProductStockBO
productStockBO
=
productDTO2BOAdapter
.
convert2ProductStockBO
(
dataBean
);
list
.
add
(
productStockBO
);
}
return
list
;
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/ProductManager.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
product
;
package
cn
.
freemud
.
demo
.
manager
.
product
;
import
cn.freemud.demo.entities.GetProductBySkuIdBO
;
import
cn.freemud.demo.entities.GetProductStock
;
import
cn.freemud.demo.entities.ProductStockBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBySkuIdResponseBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Service
public
class
ProductManager
{
public
class
ProductManager
{
...
@@ -20,6 +27,21 @@ public class ProductManager {
...
@@ -20,6 +27,21 @@ public class ProductManager {
}
}
public
Map
<
String
,
GetProductBySkuIdResponseBO
>
getProductsInfoBySkuIds
(
GetProductBySkuIdBO
getProductBySkuIdBO
,
ProductService
productService
){
Map
<
String
,
GetProductBySkuIdResponseBO
>
productInfo
=
productService
.
getProductInfoBySkuIds
(
getProductBySkuIdBO
);
return
productInfo
;
}
public
List
<
ProductStockBO
>
getProductStock
(
GetProductStock
getProductStock
,
ProductService
productService
){
List
<
ProductStockBO
>
productStock
=
productService
.
getProductStock
(
getProductStock
);
return
productStock
;
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/product/ProductService.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
product
;
package
cn
.
freemud
.
demo
.
manager
.
product
;
import
cn.freemud.demo.entities.GetProductBySkuIdBO
;
import
cn.freemud.demo.entities.GetProductStock
;
import
cn.freemud.demo.entities.ProductStockBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBySkuIdResponseBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
java.util.List
;
import
java.util.Map
;
public
interface
ProductService
{
public
interface
ProductService
{
ProductBO
getProductInfo
(
GetProductBO
getProductBO
);
ProductBO
getProductInfo
(
GetProductBO
getProductBO
);
Map
<
String
,
GetProductBySkuIdResponseBO
>
getProductInfoBySkuIds
(
GetProductBySkuIdBO
getProductBySkuIdBO
);
List
<
ProductStockBO
>
getProductStock
(
GetProductStock
getProductStock
);
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/store/KgdStoreServiceImpl.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
store
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.demo.entities.GetStoreBO
;
import
cn.freemud.utils.SpringBeanUtil
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.storecenter.request.vo.GetOrgTreeListRequest
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
(
"KgdStoreService"
)
public
class
KgdStoreServiceImpl
implements
StoreService
{
@Autowired
StoreCenterService
storeCenterService
;
@Override
public
List
<
String
>
getOrgIds
(
GetStoreBO
getStoreBO
)
{
GetOrgTreeListRequest
request
=
new
GetOrgTreeListRequest
();
request
.
setPartnerId
(
getStoreBO
.
getPartnerId
());
request
.
setStoreCode
(
getStoreBO
.
getStoreCode
());
BaseResponse
<
List
<
String
>>
orgList
=
storeCenterService
.
getOrgList
(
request
,
LogThreadLocal
.
getTrackingNo
());
if
(
orgList
!=
null
&&
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
orgList
.
getCode
()))
{
return
orgList
.
getData
();
}
return
null
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/store/StoreManager.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
store
;
public
class
StoreManager
{
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/manager/store/StoreService.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
manager
.
store
;
import
cn.freemud.demo.entities.GetStoreBO
;
import
java.util.List
;
public
interface
StoreService
{
List
<
String
>
getOrgIds
(
GetStoreBO
getStoreBO
);
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/AbstractAddGoodsService.java
View file @
dbd25698
package
cn
.
freemud
.
demo
.
service
;
package
cn
.
freemud
.
demo
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.demo.constant.ResponseConstant
;
import
cn.freemud.demo.constant.ResponseConstant
;
import
cn.freemud.demo.entities.*
;
import
cn.freemud.demo.entities.*
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBO
;
import
cn.freemud.demo.entities.bo.goods.GetProductBySkuIdResponseBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.PlatformProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.ProductBO
;
import
cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO
;
import
cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO
;
import
cn.freemud.demo.manager.coupon.CouponManager
;
import
cn.freemud.demo.manager.coupon.CouponService
;
import
cn.freemud.demo.manager.product.ProductManager
;
import
cn.freemud.demo.manager.product.ProductManager
;
import
cn.freemud.demo.manager.customer.CustomerManager
;
import
cn.freemud.demo.manager.customer.CustomerManager
;
import
cn.freemud.demo.manager.product.ProductService
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.GetProductStockRequestDto
;
import
cn.freemud.entities.dto.GetProductStockResponseDto
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.GetProductsVo
;
import
cn.freemud.enums.CouponStatus
;
import
cn.freemud.enums.ProductType
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.StoreItemStatus
;
import
cn.freemud.interceptor.BizServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.impl.AssortmentSdkService
;
import
cn.freemud.utils.BeanUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest
;
import
com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.util.*
;
public
abstract
class
AbstractAddGoodsService
implements
AddGoodsService
{
public
abstract
class
AbstractAddGoodsService
implements
AddGoodsService
{
@Autowired
@Autowired
...
@@ -22,6 +52,23 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -22,6 +52,23 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
@Autowired
@Autowired
private
ProductManager
productManager
;
private
ProductManager
productManager
;
@Autowired
private
CouponManager
couponManager
;
@Autowired
private
AssortmentSdkService
assortmentSdkService
;
@Autowired
private
ShoppingCartBaseServiceImpl
shoppingCartBaseService
;
@Autowired
private
RedisCache
redisCache
;
private
static
final
String
limitCartKey
=
"ecology:kgd:wxappconfig:open_platform_partner_wxapp_config:appkey_"
;
/**
/**
* 加车的流程
* 加车的流程
...
@@ -101,27 +148,120 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -101,27 +148,120 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
*/
*/
public
final
CheckBussinessRulesBO
getShoppingCartInfo
(
BaseAddGoodsBO
baseRequestBO
)
{
public
final
CheckBussinessRulesBO
getShoppingCartInfo
(
BaseAddGoodsBO
baseRequestBO
)
{
CheckBussinessRulesBO
bo
=
new
CheckBussinessRulesBO
();
CheckBussinessRulesBO
bo
=
new
CheckBussinessRulesBO
();
// 获取用户信息
String
userId
=
customerManager
.
getUserId
(
baseRequestBO
.
getSessionId
(),
baseRequestBO
.
getManagerService
().
getCustomerService
());
String
userId
=
customerManager
.
getUserId
(
baseRequestBO
.
getSessionId
(),
baseRequestBO
.
getManagerService
().
getCustomerService
());
bo
.
setUserId
(
userId
);
bo
.
setUserId
(
userId
);
// 获取商品信息
GetProductBO
getProductBO
=
convert2ProductBO
(
baseRequestBO
);
GetProductBO
getProductBO
=
convert2ProductBO
(
baseRequestBO
);
ProductBO
productsInfo
=
productManager
.
getProductsInfo
(
getProductBO
,
baseRequestBO
.
getManagerService
().
getProductService
());
ProductBO
productsInfo
=
productManager
.
getProductsInfo
(
getProductBO
,
baseRequestBO
.
getManagerService
().
getProductService
());
bo
.
setProduct
(
productsInfo
);
bo
.
setProduct
(
productsInfo
);
// 获取购物车信息
// 注意,围餐和点餐redis数据结构不一样
List
<
CartGoods
>
allCartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
baseRequestBO
.
getPartnerId
(),
baseRequestBO
.
getShopId
(),
userId
,
baseRequestBO
.
getSessionId
(),
null
,
shoppingCartBaseService
);
if
(
CollectionUtils
.
isEmpty
(
allCartGoodsList
))
{
allCartGoodsList
=
new
ArrayList
<>();
}
List
<
CartGoods
>
oldCartGoodsList
=
BeanUtil
.
convertBeans
(
allCartGoodsList
,
CartGoods:
:
new
);
bo
.
setCartGoods
(
oldCartGoodsList
);
return
bo
;
return
bo
;
}
}
private
GetCouponDetailBO
convert2GetCouponDetailBO
(
BaseAddGoodsBO
baseRequestBO
)
{
GetCouponDetailBO
getCouponDetailBO
=
new
GetCouponDetailBO
();
getCouponDetailBO
.
setPartnerId
(
baseRequestBO
.
getPartnerId
());
getCouponDetailBO
.
setCouponCode
(
baseRequestBO
.
getCouponCode
());
getCouponDetailBO
.
setStoreCode
(
baseRequestBO
.
getShopId
());
return
getCouponDetailBO
;
}
private
GetProductBO
convert2ProductBO
(
BaseAddGoodsBO
baseRequestBO
)
{
private
GetProductBO
convert2ProductBO
(
BaseAddGoodsBO
baseRequestBO
)
{
GetProductBO
getProductBO
=
new
GetProductBO
();
GetProductBO
getProductBO
=
new
GetProductBO
();
GetCouponDetailBO
getCouponDetail
=
convert2GetCouponDetailBO
(
baseRequestBO
);
getProductBO
.
setStoreId
(
baseRequestBO
.
getShopId
());
getProductBO
.
setMenuType
(
baseRequestBO
.
getMenuType
());
getProductBO
.
setMenuType
(
baseRequestBO
.
getMenuType
());
getProductBO
.
setPartnerId
(
baseRequestBO
.
getPartnerId
());
getProductBO
.
setPartnerId
(
baseRequestBO
.
getPartnerId
());
getProductBO
.
setSkuid
(
baseRequestBO
.
getSkuId
());
if
(
baseRequestBO
.
getSpuId
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))
{
getProductBO
.
setSpuid
(
baseRequestBO
.
getSpuId
());
// 如果是商品券,获取商品券信息
getProductBO
.
setStoreId
(
baseRequestBO
.
getShopId
());
CouponDetailBO
couponDetail
=
couponManager
.
getCouponDetail
(
getCouponDetail
,
baseRequestBO
.
getManagerService
().
getCouponService
());
if
(
couponDetail
==
null
||
!
couponDetail
.
getResult
().
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_1
)
||
CollectionUtils
.
isEmpty
(
couponDetail
.
getDetails
()))
{
return
null
;
}
if
(
CollectionUtils
.
isEmpty
(
couponDetail
.
getDetails
()))
{
return
null
;
}
boolean
productValid
=
false
;
for
(
CouponDetailBO
.
Details
detail
:
couponDetail
.
getDetails
())
{
if
(
productValid
)
break
;
if
(!
CouponStatus
.
STATUS_0
.
getCode
().
equals
(
detail
.
getStatus
()))
continue
;
for
(
CouponDetailBO
.
ActiveProduct
activeProduct
:
detail
.
getActiveProduct
())
{
if
(
baseRequestBO
.
getSkuId
().
equals
(
activeProduct
.
getProductIdPartner
()))
{
productValid
=
true
;
break
;
}
}
}
//检查商品是否有效
if
(!
productValid
)
{
return
null
;
}
// 判断该券是否在这个门店下(一个券可以在多个门店下使用)
List
<
String
>
couPonstoreIds
=
Lists
.
newArrayList
();
for
(
CouponDetailBO
.
Details
detail
:
couponDetail
.
getDetails
())
{
if
(!
CouponStatus
.
STATUS_0
.
getCode
().
equals
(
detail
.
getStatus
()))
continue
;
for
(
CouponDetailBO
.
ActiveRestrictionVOS
activeRestrictionVO
:
detail
.
getActiveRestrictionVOS
())
{
couPonstoreIds
.
add
(
activeRestrictionVO
.
getStoreIdPartner
());
}
}
if
(
CollectionUtils
.
isNotEmpty
(
couPonstoreIds
)
&&
!
couPonstoreIds
.
contains
(
baseRequestBO
.
getShopId
()))
{
return
null
;
}
//券返回的商品id
List
<
String
>
skuIds
=
Lists
.
newArrayList
();
String
skuId
=
baseRequestBO
.
getSpuId
();
skuIds
.
add
(
skuId
);
// 通过skuid查询spuid
GetProductBySkuIdBO
getProductBySkuIdBO
=
convert2GetProductBySkuIdBO
(
baseRequestBO
);
Map
<
String
,
GetProductBySkuIdResponseBO
>
productsInfoBySkuIds
=
productManager
.
getProductsInfoBySkuIds
(
getProductBySkuIdBO
,
baseRequestBO
.
getManagerService
().
getProductService
());
GetProductBySkuIdResponseBO
productsVo
=
productsInfoBySkuIds
.
get
(
skuId
);
if
(
null
==
productsVo
||
!
Objects
.
equals
(
productsVo
.
getStatus
(),
StoreItemStatus
.
PUT_ON_SALE
.
getCode
()))
{
return
null
;
}
// TODO 后面做校验商品可用时间
/*
ValidateShopProductRequest request = getValidateShopProductRequest(productsVo, requestDto);
ProductResponseDTO<ValiadShopProductResponse> valiadProductResponse = storeItemClient.validateShopProduct(request);
if (null == valiadProductResponse || !Objects.equals(com.freemud.application.sdk.api.productcenter.constant.ResponseConstant.SUCCESS_RESPONSE_CODE, valiadProductResponse.getErrcode())
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null;
}
*/
getProductBO
.
setSpuid
(
productsVo
.
getSpuId
());
getProductBO
.
setSkuid
(
productsVo
.
getSkuId
());
}
else
{
getProductBO
.
setSkuid
(
baseRequestBO
.
getSkuId
());
getProductBO
.
setSpuid
(
baseRequestBO
.
getSpuId
());
}
return
getProductBO
;
return
getProductBO
;
}
}
private
GetProductBySkuIdBO
convert2GetProductBySkuIdBO
(
BaseAddGoodsBO
baseRequestBO
)
{
GetProductBySkuIdBO
getProductBySkuIdBO
=
new
GetProductBySkuIdBO
();
getProductBySkuIdBO
.
setMenuType
(
baseRequestBO
.
getMenuType
());
getProductBySkuIdBO
.
setPartnerId
(
baseRequestBO
.
getPartnerId
());
List
<
String
>
skuids
=
new
ArrayList
<>();
skuids
.
add
(
baseRequestBO
.
getSkuId
());
getProductBySkuIdBO
.
setSkuids
(
skuids
);
getProductBySkuIdBO
.
setStoreId
(
baseRequestBO
.
getShopId
());
return
getProductBySkuIdBO
;
}
/**
/**
* 具体业务逻辑校验, 例如商品数量,库存等校验
* 具体业务逻辑校验, 例如商品数量,库存等校验
*
*
...
@@ -161,10 +301,29 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -161,10 +301,29 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
}
}
private
AddGoodsToShoppingCartBO
checkCommBusinessRules
(
BaseAddGoodsBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
)
{
private
AddGoodsToShoppingCartBO
checkCommBusinessRules
(
BaseAddGoodsBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
)
{
// 校验商品券是否在可用时间
//购物车添加数量限制
ProductBO
addGoods
=
baseRequestDTO
.
getAddGoods
();
this
.
limitGoodsQty
(
checkBussinessRulesBO
.
getCartGoods
(),
addGoods
,
baseRequestDTO
.
getAppId
());
// 校验数量, 库存
this
.
checkStocks
(
baseRequestDTO
,
checkBussinessRulesBO
);
// 检查校验购物车商品(是否合法,上下架,点餐方式,是否在当前菜单中...),并移除非法商品
return
null
;
return
null
;
}
}
private
CalCostBO
commAddGoodsToShoppingCart
(
BaseAddGoodsBO
baseRequestDTO
,
AddGoodsToShoppingCartBO
addGoodsToShoppingCartBO
)
{
private
CalCostBO
commAddGoodsToShoppingCart
(
BaseAddGoodsBO
baseRequestDTO
,
AddGoodsToShoppingCartBO
addGoodsToShoppingCartBO
)
{
if
(!
baseRequestDTO
.
getSpuId
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))
{
//添加非商品券商品
addNotProductGoods
(
addShoppingCartGoodsRequestVo
,
cartGoods
,
goodsId
,
userId
,
shoppingCartGoodsResponseVo
,
allCartGoodsList
);
}
else
{
// 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null
this
.
addProductGoods
(
addShoppingCartGoodsRequestVo
,
cartGoods
,
spuId2
,
userId
,
shoppingCartGoodsResponseVo
,
spuId
,
allCartGoodsList
,
productBeanListSpuClass
,
couponProductDto
);
}
return
null
;
return
null
;
}
}
...
@@ -180,4 +339,110 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
...
@@ -180,4 +339,110 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
return
null
;
return
null
;
}
}
/**
* 查询生态配置限制加购开关与限制数量
*/
private
Integer
limitGoodsQty
(
List
<
CartGoods
>
oldCartGoodsList
,
ProductBO
addGoods
,
String
appid
){
Integer
qty
=
0
;
if
(
CollectionUtils
.
isNotEmpty
(
oldCartGoodsList
)){
for
(
CartGoods
goods
:
oldCartGoodsList
)
{
qty
+=
goods
.
getQty
();
}
}
qty
+=
addGoods
.
getQty
();
String
redisKey
=
limitCartKey
+
appid
;
Object
value
=
redisCache
.
hashGet
(
redisKey
,
"2"
);
if
(
value
==
null
)
{
return
qty
;
}
else
{
boolean
bool
=
value
.
getClass
().
getName
().
equals
(
"java.lang.String"
);
if
(
bool
){
return
qty
;
}
JSONArray
jsonArray
=
(
JSONArray
)
value
;
int
cartLimitFlag
=
0
;
int
cartLimitCount
=
0
;
for
(
Object
object
:
jsonArray
){
JSONObject
jsonObject
=
(
JSONObject
)
object
;
HashMap
hashMap
=
JSONObject
.
parseObject
(
jsonObject
.
toJSONString
(),
HashMap
.
class
);
if
(
"cartLimitFlag"
.
equals
(
hashMap
.
get
(
"appKey"
))){
if
(
StringUtils
.
isBlank
((
String
)
hashMap
.
get
(
"appValue"
)))
{
return
qty
;
}
cartLimitFlag
=
Integer
.
parseInt
((
String
)
hashMap
.
get
(
"appValue"
));
}
if
(
"cartLimitCount"
.
equals
(
hashMap
.
get
(
"appKey"
))){
if
(
StringUtils
.
isBlank
((
String
)
hashMap
.
get
(
"appValue"
)))
{
return
qty
;
}
cartLimitCount
=
Integer
.
parseInt
((
String
)
hashMap
.
get
(
"appValue"
));
}
}
if
(
cartLimitFlag
==
1
&&
cartLimitCount
!=
0
&&
qty
>
cartLimitCount
){
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_LIMIT_ADD
);
}
}
return
qty
;
}
private
void
checkStocks
(
BaseAddGoodsBO
baseRequestDTO
,
CheckBussinessRulesBO
checkBussinessRulesBO
){
GetProductStockRequestDto
requestDto
=
new
GetProductStockRequestDto
();
requestDto
.
setChannel
(
BusinessTypeEnum
.
getByType
(
baseRequestDTO
.
getMenuType
()).
getCode
());
requestDto
.
setPartnerId
(
baseRequestDTO
.
getPartnerId
());
requestDto
.
setStoreId
(
baseRequestDTO
.
getShopId
());
List
<
Long
>
productIds
=
new
ArrayList
<>();
productIds
.
add
(
Long
.
parseLong
(
checkBussinessRulesBO
.
getProduct
().
getSkuId
()));
requestDto
.
setProductIds
(
productIds
);
ProductBO
product
=
checkBussinessRulesBO
.
getProduct
();
ProductStockBO
availableStocks
=
null
;
GetProductStock
getProductStock
=
new
GetProductStock
();
if
(
product
.
getType
()
==
ProductType
.
NOSPEC
.
getCode
()
&&
product
.
getStockLimit
()
==
1
)
{
List
<
ProductStockBO
>
productStock
=
productManager
.
getProductStock
(
getProductStock
,
baseRequestDTO
.
getManagerService
().
getProductService
());
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
availableStocks
=
productStock
.
get
(
0
);
}
}
else
{
for
(
ProductBO
.
SkuProductBean
skuProductBean
:
product
.
getSkuList
())
{
if
(
baseRequestDTO
.
getSkuId
().
equals
(
skuProductBean
.
getSkuId
())
&&
skuProductBean
.
getStockLimit
()
==
1
)
{
List
<
ProductStockBO
>
productStock
=
productManager
.
getProductStock
(
getProductStock
,
baseRequestDTO
.
getManagerService
().
getProductService
());
if
(
CollectionUtils
.
isNotEmpty
(
productStock
)){
availableStocks
=
productStock
.
get
(
0
);
}
break
;
}
}
}
if
(
availableStocks
!=
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
List
<
CartGoods
>
oldCartGoodsList
=
checkBussinessRulesBO
.
getCartGoods
();
ProductBO
cartGoods
=
baseRequestDTO
.
getAddGoods
();
Integer
qty
=
0
;
if
(
CollectionUtils
.
isEmpty
(
oldCartGoodsList
))
{
qty
=
cartGoods
.
getQty
();
}
else
{
qty
=
cartGoods
.
getQty
();
for
(
CartGoods
goods
:
oldCartGoodsList
)
{
if
(
goods
.
getSkuId
().
equals
(
cartGoods
.
getSkuId
())
&&
goods
.
getSpuId
().
equals
(
cartGoods
.
getSpuId
()))
{
qty
+=
goods
.
getQty
();
}
}
}
if
(
availableStocks
!=
null
&&
(
availableStocks
.
getQty
()
==
null
||
availableStocks
.
getQty
()
<
qty
))
{
Integer
stock
=
0
;
if
((
stock
=
availableStocks
.
getQty
())
>
0
)
{
throw
new
BizServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
,
"仅剩"
+
stock
+
"件库存了"
);
}
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/PlatformAddGoodsService.java
View file @
dbd25698
...
@@ -14,9 +14,6 @@ public class PlatformAddGoodsService extends AbstractAddGoodsService {
...
@@ -14,9 +14,6 @@ public class PlatformAddGoodsService extends AbstractAddGoodsService {
@Override
@Override
public
BaseResponse
checkCustomParams
(
BaseAddGoodsBO
baseRequestDTO
)
{
public
BaseResponse
checkCustomParams
(
BaseAddGoodsBO
baseRequestDTO
)
{
if
(
baseRequestDTO
.
getShopId
().
length
()
>
MAX_SHOP_LENGTH
){
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_SHOP_ID_NOT_EMPTY
);
}
return
ResponseBuilder
.
success
();
return
ResponseBuilder
.
success
();
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/ShoppingBaseServiceImpl.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
service
;
import
cn.freemud.entities.vo.CartGoods
;
import
java.util.List
;
public
class
ShoppingBaseServiceImpl
implements
ShoppingCartService
{
@Override
public
List
<
CartGoods
>
updateAndGetShoppingCart
()
{
return
null
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/demo/service/ShoppingCartService.java
0 → 100644
View file @
dbd25698
package
cn
.
freemud
.
demo
.
service
;
import
cn.freemud.entities.vo.CartGoods
;
import
java.util.List
;
public
interface
ShoppingCartService
{
List
<
CartGoods
>
updateAndGetShoppingCart
();
}
shopping-cart-application-service/src/main/java/cn/freemud/service/ItemService.java
View file @
dbd25698
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.demo.entities.bo.goods.GetProductBySkuIdResponseBO
;
import
cn.freemud.entities.dto.GetMenuResponseDto
;
import
cn.freemud.entities.dto.GetMenuResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
...
@@ -30,4 +31,14 @@ public interface ItemService {
...
@@ -30,4 +31,14 @@ public interface ItemService {
*/
*/
Map
<
String
,
GetProductsVo
>
getProducts
(
List
<
String
>
pids
,
String
partnerId
,
String
storeId
,
String
menuType
);
Map
<
String
,
GetProductsVo
>
getProducts
(
List
<
String
>
pids
,
String
partnerId
,
String
storeId
,
String
menuType
);
/**
* 通过sku或单品组装MAP商品详情信息
* @param pids skuId
* @param partnerId
* @param storeId
* @return key = skuid
*/
Map
<
String
,
GetProductBySkuIdResponseBO
>
getProductsBySkuId
(
List
<
String
>
pids
,
String
partnerId
,
String
storeId
,
String
menuType
);
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
dbd25698
...
@@ -42,12 +42,10 @@ import cn.freemud.service.thirdparty.*;
...
@@ -42,12 +42,10 @@ import cn.freemud.service.thirdparty.*;
import
cn.freemud.utils.*
;
import
cn.freemud.utils.*
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.productcenter.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.productcenter.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductRequest
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType
;
import
com.freemud.application.sdk.api.productcenter.request.product.valid.ValidateShopProductType
;
import
com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO
;
import
com.freemud.application.sdk.api.productcenter.response.ProductResponseDTO
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResponse
;
import
com.freemud.application.sdk.api.productcenter.response.valid.ValiadShopProductResult
;
import
com.freemud.card.sdk.comm.Finals
;
import
com.freemud.card.sdk.comm.Finals
;
import
com.freemud.card.sdk.comm.SignUtil
;
import
com.freemud.card.sdk.comm.SignUtil
;
import
com.freemud.card.sdk.service.CouponAvailableService
;
import
com.freemud.card.sdk.service.CouponAvailableService
;
...
@@ -61,7 +59,6 @@ import com.freemud.card.sdk.vo.comm.GetCouponVo;
...
@@ -61,7 +59,6 @@ import com.freemud.card.sdk.vo.comm.GetCouponVo;
import
com.freemud.card.sdk.vo.coupon.CreateCouponVo
;
import
com.freemud.card.sdk.vo.coupon.CreateCouponVo
;
import
com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo
;
import
com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo
;
import
com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo
;
import
com.freemud.card.sdk.vo.coupon.response.MemberBaseRespVo
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
...
@@ -74,9 +71,10 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -74,9 +71,10 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.function.Predicate
;
import
java.util.function.Predicate
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
java.util.stream.
Int
Stream
;
@Service
@Service
@Slf4j
@Slf4j
...
@@ -231,6 +229,11 @@ public class CouponServiceImpl implements CouponService {
...
@@ -231,6 +229,11 @@ public class CouponServiceImpl implements CouponService {
if
(
getMemberCouponListResponseDto
!=
null
&&
Objects
.
equals
(
getMemberCouponListResponseDto
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
if
(
getMemberCouponListResponseDto
!=
null
&&
Objects
.
equals
(
getMemberCouponListResponseDto
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
getMemberCouponListResponseDto
.
getData
();
return
getMemberCouponListResponseDto
.
getData
();
}
}
AtomicInteger
sum
=
new
AtomicInteger
();
IntStream
.
range
(
0
,
10
).
forEach
(
value
->
sum
.
getAndIncrement
());
return
null
;
return
null
;
}
}
...
@@ -767,6 +770,8 @@ public class CouponServiceImpl implements CouponService {
...
@@ -767,6 +770,8 @@ public class CouponServiceImpl implements CouponService {
*/
*/
@Override
@Override
public
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
)
{
public
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
)
{
log
.
info
(
"checkSpqInfo****"
+
gson
.
toJson
(
requestDto
));
log
.
info
(
"checkSpqInfo****"
+
gson
.
toJson
(
requestDto
));
String
partnerId
=
requestDto
.
getPartnerId
();
String
partnerId
=
requestDto
.
getPartnerId
();
String
couponCode
=
requestDto
.
getCouponCode
();
String
couponCode
=
requestDto
.
getCouponCode
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
View file @
dbd25698
...
@@ -16,6 +16,7 @@ package cn.freemud.service.impl;
...
@@ -16,6 +16,7 @@ package cn.freemud.service.impl;
import
cn.freemud.adapter.StoreItemAdapter
;
import
cn.freemud.adapter.StoreItemAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.demo.entities.bo.goods.GetProductBySkuIdResponseBO
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean
;
import
cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.CartGoods
;
...
@@ -231,5 +232,92 @@ public class ItemServiceImpl implements ItemService {
...
@@ -231,5 +232,92 @@ public class ItemServiceImpl implements ItemService {
return
resultMap
;
return
resultMap
;
}
}
@Override
public
Map
<
String
,
GetProductBySkuIdResponseBO
>
getProductsBySkuId
(
List
<
String
>
pids
,
String
partnerId
,
String
storeId
,
String
menuType
)
{
Map
<
String
,
GetProductBySkuIdResponseBO
>
resultMap
=
new
HashMap
<>();
if
(
CollectionUtils
.
isEmpty
(
pids
))
{
return
resultMap
;
}
List
<
String
>
skuIds
=
Lists
.
newArrayList
();
//查询商品详情
GetProductInfoDto
getProductInfoDto
=
storeItemAdapter
.
convert2ProductInfoDto
(
partnerId
,
storeId
,
ProductInfoType
.
ALL
.
getCode
(),
pids
,
menuType
);
ProductInfosDto
productInfosDto
=
storeItemClient
.
listProductInfos
(
getProductInfoDto
);
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
productInfosDto
.
getErrcode
())
&&
productInfosDto
.
getData
()
!=
null
&&
CollectionUtils
.
isNotEmpty
(
productInfosDto
.
getData
().
getProducts
()))
{
productInfosDto
.
getData
().
getProducts
().
stream
().
forEach
(
productBean
->
{
//多规格获取sku信息
GetProductBySkuIdResponseBO
getProductBySkuId
=
new
GetProductBySkuIdResponseBO
();
getProductBySkuId
.
setSkuId
(
productBean
.
getPid
());
getProductBySkuId
.
setSkuName
(
productBean
.
getName
());
String
picture
=
CollectionUtils
.
isNotEmpty
(
productBean
.
getProductPictureList
())
?
productBean
.
getProductPictureList
().
get
(
0
).
getUrl
()
:
null
;
getProductBySkuId
.
setSpuId
(
productBean
.
getPid
());
getProductBySkuId
.
setSpuName
(
productBean
.
getName
());
getProductBySkuId
.
setSpuPicture
(
picture
);
getProductBySkuId
.
setOriginalPrice
(
productBean
.
getOriginalPrice
());
getProductBySkuId
.
setFinalPrice
(
productBean
.
getFinalPrice
());
getProductBySkuId
.
setProductAttributeGroupList
(
productBean
.
getProductAttributeGroupList
());
getProductBySkuId
.
setStatus
(
productBean
.
getStatus
());
getProductBySkuId
.
setStock
(
productBean
.
getStock
());
getProductBySkuId
.
setStockLimit
(
productBean
.
getStockLimit
());
getProductBySkuId
.
setCustomerCode
(
productBean
.
getCustomerCode
());
getProductBySkuId
.
setCategory
(
productBean
.
getCategory
());
getProductBySkuId
.
setCategoryName
(
productBean
.
getCategoryName
());
resultMap
.
put
(
productBean
.
getPid
(),
getProductBySkuId
);
getProductBySkuId
.
setType
(
1
);
// 规格ID 剔除单品
if
(
Objects
.
equals
(
productBean
.
getIsSkuProduct
(),
YesOrNoEnum
.
YES
.
getCode
()))
{
getProductBySkuId
.
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
().
stream
().
forEach
(
product
->
{
product
.
getSkuList
().
stream
().
forEach
(
skuProductBean
->
{
if
(
resultMap
.
get
(
skuProductBean
.
getSkuId
())
!=
null
)
{
GetProductBySkuIdResponseBO
getProductBySkuId
=
resultMap
.
get
(
skuProductBean
.
getSkuId
());
getProductBySkuId
.
setSpuId
(
product
.
getPid
());
getProductBySkuId
.
setSpuName
(
product
.
getName
());
String
picture
=
CollectionUtils
.
isNotEmpty
(
product
.
getProductPictureList
())
?
product
.
getProductPictureList
().
get
(
0
).
getUrl
()
:
product
.
getPicture
();
getProductBySkuId
.
setSpuPicture
(
picture
);
if
(
CollectionUtils
.
isNotEmpty
(
product
.
getProductAttributeGroupList
())
&&
CollectionUtils
.
isNotEmpty
(
product
.
getProductAttributeGroupList
().
get
(
0
).
getAttributeValues
()))
{
List
<
CartGoods
.
CartGoodsExtra
>
extras
=
new
ArrayList
<>();
List
<
String
>
specId
=
new
ArrayList
<>();
List
<
String
>
specName
=
new
ArrayList
<>();
for
(
ProductListDto
.
DataBean
.
ProductAttributeGroupListBean
bean
:
product
.
getProductAttributeGroupList
())
{
for
(
ProductListDto
.
DataBean
.
ProductAttributeGroupListBean
.
AttributeValueBean
attr
:
bean
.
getAttributeValues
())
{
CartGoods
.
CartGoodsExtra
extra
=
new
CartGoods
.
CartGoodsExtra
();
extra
.
setAttributeId
(
attr
.
getAttributeId
());
extra
.
setAttributeName
(
attr
.
getAttributeValue
());
specName
.
add
(
attr
.
getAttributeValue
());
specId
.
add
(
attr
.
getAttributeId
());
break
;
}
}
getProductBySkuId
.
setExtra
(
extras
);
getProductBySkuId
.
setDefaultSpecName
(
StringUtils
.
join
(
specName
,
"/"
));
getProductBySkuId
.
setDefaultSpecId
(
StringUtils
.
join
(
specId
,
"/"
));
}
resultMap
.
put
(
skuProductBean
.
getSkuId
(),
getProductBySkuId
);
}
});
});
}
return
resultMap
;
}
}
}
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