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
7119277f
Commit
7119277f
authored
Dec 12, 2019
by
dingkai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mall购物车sdk
parent
7442dafe
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
218 additions
and
9 deletions
+218
-9
assortment-shoppingcart-sdk/assortment-shoppingcart-sdk.iml
+10
-9
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
+2
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/RedisKeyConstant.java
+15
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
+8
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/ShoppingCartMallBaseServiceImpl.java
+183
-0
No files found.
assortment-shoppingcart-sdk/assortment-shoppingcart-sdk.iml
View file @
7119277f
...
@@ -8,20 +8,21 @@
...
@@ -8,20 +8,21 @@
<configuration>
<configuration>
<webroots
/>
<webroots
/>
<sourceRoots>
<sourceRoots>
<root
url=
"file://$MODULE_DIR$/
../assortment-shoppingcart-sdk/
src/main/java"
/>
<root
url=
"file://$MODULE_DIR$/src/main/java"
/>
<root
url=
"file://$MODULE_DIR$/
../assortment-shoppingcart-sdk/
src/main/resources"
/>
<root
url=
"file://$MODULE_DIR$/src/main/resources"
/>
</sourceRoots>
</sourceRoots>
</configuration>
</configuration>
</facet>
</facet>
</component>
</component>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<component
name=
"NewModuleRootManager"
LANGUAGE_LEVEL=
"JDK_1_8"
>
<output
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk/target/classes"
/>
<output
url=
"file://$MODULE_DIR$/target/classes"
/>
<output-test
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk/target/test-classes"
/>
<output-test
url=
"file://$MODULE_DIR$/target/test-classes"
/>
<content
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk"
>
<content
url=
"file://$MODULE_DIR$"
>
<sourceFolder
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/java"
isTestSource=
"false"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/main/resources"
type=
"java-resource"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk/src/test/java"
isTestSource=
"true"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/java"
isTestSource=
"true"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/../assortment-shoppingcart-sdk/target"
/>
<sourceFolder
url=
"file://$MODULE_DIR$/src/test/resources"
type=
"java-test-resource"
/>
<excludeFolder
url=
"file://$MODULE_DIR$/target"
/>
</content>
</content>
<orderEntry
type=
"inheritedJdk"
/>
<orderEntry
type=
"inheritedJdk"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
View file @
7119277f
...
@@ -183,6 +183,7 @@ public class ShoppingCartAdapter {
...
@@ -183,6 +183,7 @@ public class ShoppingCartAdapter {
cartGoods
.
setAmount
(
newOrigOriginalPrice
*
cartGoods
.
getQty
());
cartGoods
.
setAmount
(
newOrigOriginalPrice
*
cartGoods
.
getQty
());
//咨询商品服务,套餐售价取originalPrice
//咨询商品服务,套餐售价取originalPrice
cartGoods
.
setFinalPrice
(
isSetMealProduct
?
productBean
.
getOriginalPrice
():
productBean
.
getFinalPrice
());
cartGoods
.
setFinalPrice
(
isSetMealProduct
?
productBean
.
getOriginalPrice
():
productBean
.
getFinalPrice
());
cartGoods
.
setWeight
(
productBean
.
getWeight
());
cartGoods
.
setUnit
(
productBean
.
getUnit
());
cartGoods
.
setUnit
(
productBean
.
getUnit
());
cartGoods
.
setWeightType
(
CommonsConstant
.
WEIGHT_PRODUCT
.
equals
(
productBean
.
getWeightType
()));
cartGoods
.
setWeightType
(
CommonsConstant
.
WEIGHT_PRODUCT
.
equals
(
productBean
.
getWeightType
()));
}
}
...
@@ -229,6 +230,7 @@ public class ShoppingCartAdapter {
...
@@ -229,6 +230,7 @@ public class ShoppingCartAdapter {
comboxGoods
.
setCustomerCode
(
productBean
.
getCustomerCode
());
comboxGoods
.
setCustomerCode
(
productBean
.
getCustomerCode
());
comboxGoods
.
setFinalPrice
(
finalPrice
);
comboxGoods
.
setFinalPrice
(
finalPrice
);
comboxGoods
.
setWeightType
(
CommonsConstant
.
WEIGHT_PRODUCT
.
equals
(
productBean
.
getWeightType
()));
comboxGoods
.
setWeightType
(
CommonsConstant
.
WEIGHT_PRODUCT
.
equals
(
productBean
.
getWeightType
()));
comboxGoods
.
setWeight
(
productBean
.
getWeight
());
comboxGoods
.
setUnit
(
productBean
.
getUnit
());
comboxGoods
.
setUnit
(
productBean
.
getUnit
());
return
true
;
return
true
;
}
}
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/RedisKeyConstant.java
View file @
7119277f
...
@@ -58,4 +58,19 @@ public class RedisKeyConstant {
...
@@ -58,4 +58,19 @@ public class RedisKeyConstant {
*/
*/
public
final
static
String
MEAL_CART_LOCK_KEY
=
"kgd:meal:lock:{0}:{1}:{2}"
;
public
final
static
String
MEAL_CART_LOCK_KEY
=
"kgd:meal:lock:{0}:{1}:{2}"
;
/**
* 用户购物车在redis的key前缀(商城购物车)
*/
public
final
static
String
SAAS_MALL_SHOPPINGCART_KEY_PREFIX
=
"saas:user:info:mall:cart:goods:"
;
/**
* 用户购物车总价在redis的key前缀(商城购物车)
*/
public
final
static
String
SAAS_MALL_SHOPPINGCART_AMOUNT_PREFIX
=
"saas:user:info:mall:cart:amount:goods:"
;
/**
* 点餐门店绑定的商城门店redis的key前缀
*/
public
final
static
String
OPENSTORE_MICROMALL_BIND_STOREID_PREFIX
=
"openstore:micromall:bind:storeId:"
;
}
}
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/domain/CartGoods.java
View file @
7119277f
...
@@ -38,6 +38,10 @@ public class CartGoods {
...
@@ -38,6 +38,10 @@ public class CartGoods {
*/
*/
private
boolean
weightType
;
private
boolean
weightType
;
/**
/**
* 重量
*/
private
Double
weight
;
/**
* 单位
* 单位
*/
*/
private
String
unit
;
private
String
unit
;
...
@@ -217,6 +221,10 @@ public class CartGoods {
...
@@ -217,6 +221,10 @@ public class CartGoods {
*/
*/
private
boolean
weightType
;
private
boolean
weightType
;
/**
/**
* 重量
*/
private
Double
weight
;
/**
* 单位
* 单位
*/
*/
private
String
unit
;
private
String
unit
;
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/ShoppingCartMallBaseServiceImpl.java
0 → 100644
View file @
7119277f
package
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
service
.
impl
;
import
ch.qos.logback.classic.Level
;
import
cn.freemud.base.entity.BaseResponse
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CartResponseConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.RedisKeyConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.VersionUtils
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartAddItem
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService
;
import
com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.BoundHashOperations
;
import
org.springframework.data.redis.core.BoundValueOperations
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ShoppingCartBaseServiceImpl
* @Package com.freemud.sdk.api.assortment.shoppingcart.service.impl
* @Description:
* @author: yuhao.chi
* @date: 2019/4/10 15:30
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目的
*/
@Service
(
"shoppingCartMallBaseService"
)
public
class
ShoppingCartMallBaseServiceImpl
implements
ShoppingCartBaseService
{
@Autowired
private
RedisTemplate
redisTemplate
;
@Value
(
"${coupon.app.id}"
)
private
String
appId
;
@Override
public
BaseResponse
<
List
<
CartAddItem
>>
detailCart
(
CartParamDto
cartParamDto
,
String
trackingNo
)
{
return
null
;
}
@Override
public
BaseResponse
<
List
<
CartGoods
>>
getCartGoodsList
(
CartParamDto
cartParamDto
,
String
trackingNo
)
{
try
{
String
redisKey
=
getShoppingCartGoodsKey
(
cartParamDto
);
BoundHashOperations
<
String
,
String
,
CartGoods
>
operations
=
redisTemplate
.
boundHashOps
(
redisKey
);
List
<
CartGoods
>
cartGoodsList
=
operations
.
values
();
//对创建时间进行排序
cartGoodsList
.
sort
(
Comparator
.
comparingLong
(
CartGoods:
:
getCreateTimeMili
));
return
CartResponseUtil
.
success
(
cartGoodsList
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
trackingNo
,
e
.
getMessage
(),
"getCartGoodsList"
,
cartParamDto
,
e
,
Level
.
ERROR
);
return
null
;
}
}
@Override
public
BaseResponse
<
List
<
CartGoods
>>
setCartGoodsList
(
CartParamDto
cartParamDto
,
String
trackingNo
)
{
try
{
String
redisKey
=
getShoppingCartGoodsKey
(
cartParamDto
);
BoundHashOperations
<
String
,
String
,
CartGoods
>
operations
=
redisTemplate
.
boundHashOps
(
redisKey
);
this
.
clear
(
cartParamDto
,
trackingNo
);
Map
<
String
,
CartGoods
>
cartGoodsMap
=
cartParamDto
.
getCartGoodsList
().
parallelStream
()
.
filter
(
k
->
StringUtils
.
isNotEmpty
(
k
.
getCartGoodsUid
()))
.
collect
(
Collectors
.
toMap
(
CartGoods:
:
getCartGoodsUid
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
operations
.
putAll
(
cartGoodsMap
);
return
this
.
getCartGoodsList
(
cartParamDto
,
trackingNo
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
trackingNo
,
e
.
getMessage
(),
"setCartGoodsList"
,
cartParamDto
,
e
,
Level
.
ERROR
);
return
null
;
}
}
@Override
public
BaseResponse
<
CartGoods
>
getCartGoods
(
CartParamDto
cartParamDto
,
String
trackingNo
)
{
try
{
String
redisKey
=
getShoppingCartGoodsKey
(
cartParamDto
);
BoundHashOperations
<
String
,
String
,
CartGoods
>
operations
=
redisTemplate
.
boundHashOps
(
redisKey
);
CartGoods
cartGoods
=
operations
.
get
(
cartParamDto
.
getCartGoodsUid
());
return
CartResponseUtil
.
success
(
cartGoods
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
trackingNo
,
e
.
getMessage
(),
"getCartGoods"
,
cartParamDto
,
e
,
Level
.
ERROR
);
return
null
;
}
}
@Override
public
BaseResponse
<
List
<
CartGoods
>>
updateGoodsQty
(
CartParamDto
cartParamDto
,
String
trackingNo
)
{
try
{
String
redisKey
=
getShoppingCartGoodsKey
(
cartParamDto
);
BoundHashOperations
<
String
,
String
,
CartGoods
>
operations
=
redisTemplate
.
boundHashOps
(
redisKey
);
CartGoods
cartGoods
=
operations
.
get
(
cartParamDto
.
getCartGoodsUid
());
if
(
cartGoods
!=
null
)
{
// 当数量为0时,移除
if
(
Objects
.
equals
(
cartParamDto
.
getQty
(),
0
))
{
operations
.
delete
(
cartParamDto
.
getCartGoodsUid
());
}
else
{
cartGoods
.
setQty
(
cartParamDto
.
getQty
());
operations
.
put
(
cartParamDto
.
getCartGoodsUid
(),
cartGoods
);
}
}
return
this
.
getCartGoodsList
(
cartParamDto
,
trackingNo
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
trackingNo
,
e
.
getMessage
(),
"updateGoodsQty"
,
cartParamDto
,
e
,
Level
.
ERROR
);
return
null
;
}
}
@Override
public
BaseResponse
clear
(
CartParamDto
cartParamDto
,
String
trackingNo
)
{
try
{
redisTemplate
.
delete
(
this
.
getShoppingCartGoodsKey
(
cartParamDto
));
redisTemplate
.
delete
(
this
.
getShoppingCartGoodsAmountKey
(
cartParamDto
));
return
new
BaseResponse
(
VersionUtils
.
VER_1
,
CartResponseConstant
.
SUCCESS
.
getCode
(),
CartResponseConstant
.
SUCCESS
.
getMessage
());
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
trackingNo
,
e
.
getMessage
(),
"clear"
,
cartParamDto
,
e
,
Level
.
ERROR
);
return
null
;
}
}
@Override
public
String
getCouponAppId
()
{
return
this
.
appId
;
}
@Override
public
Map
<
String
,
Boolean
>
getCouponOrderWay
(
String
partnerId
,
List
<
String
>
activityCodes
,
Integer
orderTye
,
String
trackingNo
)
{
return
null
;
}
/**
* 获取绑定微商城门店id
*/
public
String
getBindMallShopId
(
String
appId
,
String
trackingNo
)
{
try
{
BoundValueOperations
operations
=
redisTemplate
.
boundValueOps
(
this
.
getBindMallShopKey
(
appId
));
String
mallShopId
=
(
String
)
operations
.
get
();
return
mallShopId
;
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
trackingNo
,
e
.
getMessage
(),
"getBindMallShopId"
,
appId
,
e
,
Level
.
ERROR
);
return
null
;
}
}
/**
* 获取记录购物车信息的key
*
* @return
*/
private
String
getShoppingCartGoodsKey
(
CartParamDto
cartParamDto
)
{
return
RedisKeyConstant
.
SAAS_MALL_SHOPPINGCART_KEY_PREFIX
+
cartParamDto
.
getPartnerId
()
+
"_"
+
cartParamDto
.
getStoreId
()
+
"_"
+
cartParamDto
.
getUserId
();
}
/**
* 获取记录购物车价格的key
*
* @return
*/
private
String
getShoppingCartGoodsAmountKey
(
CartParamDto
cartParamDto
)
{
return
RedisKeyConstant
.
SAAS_MALL_SHOPPINGCART_AMOUNT_PREFIX
+
cartParamDto
.
getPartnerId
()
+
"_"
+
cartParamDto
.
getStoreId
()
+
"_"
+
cartParamDto
.
getUserId
();
}
/**
* 获取绑定的微商城门店
*/
private
String
getBindMallShopKey
(
String
appId
)
{
return
RedisKeyConstant
.
OPENSTORE_MICROMALL_BIND_STOREID_PREFIX
+
appId
;
}
}
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