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
769d224c
Commit
769d224c
authored
Oct 13, 2020
by
缪晖
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拼单参与人架构状态变更接口
parent
97b0cc6b
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
187 additions
and
7 deletions
+187
-7
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/CollageMemberStateType.java
+39
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/CollageOrderBaseService.java
+14
-0
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/CollageOrderBaseServiceImpl.java
+65
-2
shopping-cart-application-service/src/main/java/cn/freemud/controller/CollageOrderController.java
+16
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CollageOrderResponseVo.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/CollageOrderService.java
+14
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CollageOrderServiceImpl.java
+34
-5
No files found.
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/CollageMemberStateType.java
0 → 100644
View file @
769d224c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
;
public
enum
CollageMemberStateType
{
READY
(
true
,
"加购完毕"
),
SHOPPING
(
false
,
"正在选购"
);
private
Boolean
value
;
private
String
desc
;
CollageMemberStateType
(
Boolean
value
,
String
desc
)
{
this
.
value
=
value
;
this
.
desc
=
desc
;
}
public
static
CollageMemberStateType
getByValue
(
Object
value
)
{
try
{
return
Boolean
.
parseBoolean
(
String
.
valueOf
(
value
))
?
CollageMemberStateType
.
READY
:
CollageMemberStateType
.
SHOPPING
;
}
catch
(
ClassCastException
e
)
{
return
CollageMemberStateType
.
SHOPPING
;
}
}
public
Boolean
getValue
()
{
return
value
;
}
public
void
setValue
(
Boolean
value
)
{
this
.
value
=
value
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/CollageOrderBaseService.java
View file @
769d224c
...
@@ -66,6 +66,20 @@ public interface CollageOrderBaseService {
...
@@ -66,6 +66,20 @@ public interface CollageOrderBaseService {
BaseResponse
<
List
<
CollageMemberState
>>
getCollageMemberState
(
CollageOrderDto
collageOrderDto
);
BaseResponse
<
List
<
CollageMemberState
>>
getCollageMemberState
(
CollageOrderDto
collageOrderDto
);
/**
/**
* 修改用户加购状态 加购完毕
* @param collageOrderDto
* @return
*/
BaseResponse
readyCollageMemberState
(
CollageOrderDto
collageOrderDto
);
/**
* 修改用户加购状态 继续选购
* @param collageOrderDto
* @return
*/
BaseResponse
shoppingCollageMemberState
(
CollageOrderDto
collageOrderDto
);
/**
* 设置用户的点餐位信息
* 设置用户的点餐位信息
* @param collageOrderDto
* @param collageOrderDto
* @return
* @return
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/impl/CollageOrderBaseServiceImpl.java
View file @
769d224c
...
@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
...
@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.sdk.api.assortment.shoppingcart.adapter.CollageOrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.shoppingcart.adapter.CollageOrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CollageLockStatus
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CollageLockStatus
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CollageMemberStateType
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CollageOrderConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CollageOrderConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.RedisKeyConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.RedisKeyConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState
;
...
@@ -195,6 +196,34 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
...
@@ -195,6 +196,34 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
}
}
@Override
@Override
public
BaseResponse
readyCollageMemberState
(
CollageOrderDto
collageOrderDto
)
{
try
{
String
collageMemberStateKey
=
this
.
genCollageMemberStateHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
CollageMemberState
collageMemberState
=
this
.
getCollageMemberState
(
collageMemberStateKey
,
collageOrderDto
.
getCurrentUserId
());
collageMemberState
.
setState
(
CollageMemberStateType
.
READY
.
getValue
());
this
.
setCollageMemberState
(
collageMemberStateKey
,
collageMemberState
);
return
CartResponseUtil
.
success
();
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"修改拼单用户加购状态为加购完毕异常"
,
"CollageOrderBaseServiceImpl/readyCollageMemberState"
,
this
.
collageOrderRequest
(
collageOrderDto
),
e
);
return
CartResponseUtil
.
error
(
"修改拼单用户加购状态为加购完毕异常"
);
}
}
@Override
public
BaseResponse
shoppingCollageMemberState
(
CollageOrderDto
collageOrderDto
)
{
try
{
String
collageMemberStateKey
=
this
.
genCollageMemberStateHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
CollageMemberState
collageMemberState
=
this
.
getCollageMemberState
(
collageMemberStateKey
,
collageOrderDto
.
getCurrentUserId
());
collageMemberState
.
setState
(
CollageMemberStateType
.
SHOPPING
.
getValue
());
this
.
setCollageMemberState
(
collageMemberStateKey
,
collageMemberState
);
return
CartResponseUtil
.
success
();
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"修改拼单用户加购状态为继续选购异常"
,
"CollageOrderBaseServiceImpl/shoppingCollageMemberState"
,
this
.
collageOrderRequest
(
collageOrderDto
),
e
);
return
CartResponseUtil
.
success
(
"修改拼单用户加购状态为继续选购异常"
);
}
}
@Override
public
BaseResponse
setCollageMember
(
CollageOrderDto
collageOrderDto
){
public
BaseResponse
setCollageMember
(
CollageOrderDto
collageOrderDto
){
String
key
=
genCollageMemberHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
String
key
=
genCollageMemberHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
redisTemplate
.
boundHashOps
(
key
).
put
(
collageOrderDto
.
getCurrentUserId
(),
new
ArrayList
<>());
redisTemplate
.
boundHashOps
(
key
).
put
(
collageOrderDto
.
getCurrentUserId
(),
new
ArrayList
<>());
...
@@ -404,6 +433,7 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
...
@@ -404,6 +433,7 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
/**
/**
* 拼单创建加购人状态初始化
* 拼单创建加购人状态初始化
* 拼单发起人始终为加购完毕状态
* @param collageMemberStateHashKey
* @param collageMemberStateHashKey
* @param collageOrderDto
* @param collageOrderDto
*/
*/
...
@@ -412,13 +442,27 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
...
@@ -412,13 +442,27 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
collageMemberState
.
setUserId
(
collageOrderDto
.
getCurrentUserId
());
collageMemberState
.
setUserId
(
collageOrderDto
.
getCurrentUserId
());
collageMemberState
.
setNickName
(
collageOrderDto
.
getNickName
());
collageMemberState
.
setNickName
(
collageOrderDto
.
getNickName
());
collageMemberState
.
setPhotoUrl
(
collageOrderDto
.
getPhotoUrl
());
collageMemberState
.
setPhotoUrl
(
collageOrderDto
.
getPhotoUrl
());
collageMemberState
.
setState
(
false
);
collageMemberState
.
setState
(
CollageMemberStateType
.
READY
.
getValue
()
);
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
put
(
collageOrderDto
.
getCurrentUserId
(),
collageMemberState
);
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
put
(
collageOrderDto
.
getCurrentUserId
(),
collageMemberState
);
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
expire
(
1
,
TimeUnit
.
HOURS
);
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
expire
(
1
,
TimeUnit
.
HOURS
);
}
}
/**
/**
* 获取加购人状态信息
* 拼单参与人加购状态
* @param collageMemberStateHashKey
* @param collageOrderDto
*/
public
void
addCollageMemberState
(
String
collageMemberStateHashKey
,
CollageOrderDto
collageOrderDto
)
{
CollageMemberState
collageMemberState
=
new
CollageMemberState
();
collageMemberState
.
setUserId
(
collageOrderDto
.
getCurrentUserId
());
collageMemberState
.
setNickName
(
collageOrderDto
.
getNickName
());
collageMemberState
.
setPhotoUrl
(
collageOrderDto
.
getPhotoUrl
());
collageMemberState
.
setState
(
CollageMemberStateType
.
SHOPPING
.
getValue
());
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
put
(
collageOrderDto
.
getCurrentUserId
(),
collageMemberState
);
}
/**
* 获取拼单下全部加购人状态信息
* @param collageMemberStateHashKey
* @param collageMemberStateHashKey
* @return
* @return
*/
*/
...
@@ -427,6 +471,25 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
...
@@ -427,6 +471,25 @@ public class CollageOrderBaseServiceImpl implements CollageOrderBaseService {
}
}
/**
/**
* 获取加购人状态信息
* @param collageMemberStateHashKey
* @param userId
* @return
*/
public
CollageMemberState
getCollageMemberState
(
String
collageMemberStateHashKey
,
String
userId
)
{
return
(
CollageMemberState
)
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
get
(
userId
);
}
/**
* 设置或更新加购人状态信息
* @param collageMemberStateHashKey
* @param collageMemberState
*/
public
void
setCollageMemberState
(
String
collageMemberStateHashKey
,
CollageMemberState
collageMemberState
)
{
redisTemplate
.
boundHashOps
(
collageMemberStateHashKey
).
put
(
collageMemberState
.
getUserId
(),
collageMemberState
);
}
/**
* 构建拼单购物车缓存key
* 构建拼单购物车缓存key
* @param partnerId
* @param partnerId
* @param storeId
* @param storeId
...
...
shopping-cart-application-service/src/main/java/cn/freemud/controller/CollageOrderController.java
View file @
769d224c
...
@@ -90,6 +90,22 @@ public class CollageOrderController {
...
@@ -90,6 +90,22 @@ public class CollageOrderController {
return
collageOrderService
.
unlockCollageOrder
(
request
);
return
collageOrderService
.
unlockCollageOrder
(
request
);
}
}
@ApiOperation
(
value
=
"拼单参与人加购完毕"
,
notes
=
"根据商户ID、门店ID、拼单发起人userId、当前登录用户sessionId修改加购状态为加购完毕"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"CollageOrderRequestVo"
,
name
=
"CollageOrderRequestVo"
)
@ApiAnnotation
(
logMessage
=
"readyMemberState"
)
@PostMapping
(
value
=
"/readyMemberState"
)
public
BaseResponse
readyMemberState
(
@Validated
@LogParams
@RequestBody
CollageOrderRequestVo
request
)
{
return
collageOrderService
.
readyCollageMemberState
(
request
);
}
@ApiOperation
(
value
=
"拼单参与人继续加购"
,
notes
=
"根据商户ID、门店ID、拼单发起人userId、当前登录用户sessionId修改加购状态为继续加购"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"CollageOrderRequestVo"
,
name
=
"CollageOrderRequestVo"
)
@ApiAnnotation
(
logMessage
=
"shoppingMemberState"
)
@PostMapping
(
value
=
"/shoppingMemberState"
)
public
BaseResponse
shoppingMemberState
(
@Validated
@LogParams
@RequestBody
CollageOrderRequestVo
request
)
{
return
collageOrderService
.
shoppingCollageMemberState
(
request
);
}
@ApiOperation
(
value
=
"加入拼单订单"
,
notes
=
"加入拼单订单"
)
@ApiOperation
(
value
=
"加入拼单订单"
,
notes
=
"加入拼单订单"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"CollageOrderRequestVo"
,
name
=
"CollageOrderRequestVo"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"CollageOrderRequestVo"
,
name
=
"CollageOrderRequestVo"
)
@ApiAnnotation
(
logMessage
=
"addOrder"
)
@ApiAnnotation
(
logMessage
=
"addOrder"
)
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CollageOrderResponseVo.java
View file @
769d224c
...
@@ -31,6 +31,11 @@ public class CollageOrderResponseVo {
...
@@ -31,6 +31,11 @@ public class CollageOrderResponseVo {
private
Boolean
locked
;
private
Boolean
locked
;
/**
/**
* 正在选购的拼单成员人数
*/
private
Integer
shoppingMemberNum
;
/**
* 拼单参与人信息
* 拼单参与人信息
*/
*/
private
List
<
CollageMemberState
>
collageMemberStateList
;
private
List
<
CollageMemberState
>
collageMemberStateList
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/CollageOrderService.java
View file @
769d224c
...
@@ -59,6 +59,20 @@ public interface CollageOrderService {
...
@@ -59,6 +59,20 @@ public interface CollageOrderService {
BaseResponse
unlockCollageOrder
(
CollageOrderRequestVo
request
);
BaseResponse
unlockCollageOrder
(
CollageOrderRequestVo
request
);
/**
/**
* 拼单参与人加购完毕
* @param request
* @return
*/
BaseResponse
readyCollageMemberState
(
CollageOrderRequestVo
request
);
/**
* 拼单参与人继续加购
* @param request
* @return
*/
BaseResponse
shoppingCollageMemberState
(
CollageOrderRequestVo
request
);
/**
* 加入拼单订单
* 加入拼单订单
* @param request
* @param request
* @return
* @return
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CollageOrderServiceImpl.java
View file @
769d224c
...
@@ -12,6 +12,8 @@ import cn.freemud.service.CollageOrderService;
...
@@ -12,6 +12,8 @@ import cn.freemud.service.CollageOrderService;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CollageMemberStateType
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageMemberState
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrder
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrder
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrderDto
;
import
com.freemud.sdk.api.assortment.shoppingcart.domain.CollageOrderDto
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.CollageOrderBaseServiceImpl
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.CollageOrderBaseServiceImpl
;
...
@@ -22,6 +24,7 @@ import org.springframework.util.ObjectUtils;
...
@@ -22,6 +24,7 @@ import org.springframework.util.ObjectUtils;
import
java.util.List
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
...
@@ -70,8 +73,10 @@ public class CollageOrderServiceImpl implements CollageOrderService {
...
@@ -70,8 +73,10 @@ public class CollageOrderServiceImpl implements CollageOrderService {
// 订单锁定状态
// 订单锁定状态
collageOrderResponseVo
.
setLocked
(
this
.
collageOrderBaseService
.
isLockedCollageOrder
(
collageOrderDto
).
getResult
());
collageOrderResponseVo
.
setLocked
(
this
.
collageOrderBaseService
.
isLockedCollageOrder
(
collageOrderDto
).
getResult
());
// 订单参与人列表信息 参与人昵称头像等信息放入加购人状态锁redis对象中 userId : MemberState
// 订单参与人列表信息 参与人昵称头像等信息放入加购人状态锁redis对象中 userId : MemberState
collageOrderResponseVo
.
setCollageMemberStateList
(
this
.
collageOrderBaseService
.
getCollageMemberState
(
collageOrderDto
).
getResult
());
List
<
CollageMemberState
>
collageMemberStateList
=
this
.
collageOrderBaseService
.
getCollageMemberState
(
collageOrderDto
).
getResult
();
collageOrderResponseVo
.
setCollageMemberStateList
(
collageMemberStateList
);
// 未加购完毕人数统计
collageOrderResponseVo
.
setShoppingMemberNum
(
collageMemberStateList
.
stream
().
filter
(
member
->
member
.
getState
()
==
CollageMemberStateType
.
SHOPPING
.
getValue
()).
collect
(
Collectors
.
toList
()).
size
());
return
ResponseUtil
.
success
(
collageOrderResponseVo
);
return
ResponseUtil
.
success
(
collageOrderResponseVo
);
}
}
...
@@ -159,16 +164,40 @@ public class CollageOrderServiceImpl implements CollageOrderService {
...
@@ -159,16 +164,40 @@ public class CollageOrderServiceImpl implements CollageOrderService {
}
}
/**
/**
* 拼单参与人加购完毕
* @param request
* @return
*/
@Override
public
BaseResponse
readyCollageMemberState
(
CollageOrderRequestVo
request
)
{
CollageOrderDto
collageOrderDto
=
this
.
collageOrderAdapter
.
convert2CollageOrderDto
(
request
);
collageOrderDto
.
setCurrentUserId
(
this
.
getUserIdBySessionId
(
request
.
getSessionId
()));
return
this
.
collageOrderBaseService
.
readyCollageMemberState
(
collageOrderDto
);
}
/**
* 拼单参与人继续加购
* @param request
* @return
*/
@Override
public
BaseResponse
shoppingCollageMemberState
(
CollageOrderRequestVo
request
)
{
CollageOrderDto
collageOrderDto
=
this
.
collageOrderAdapter
.
convert2CollageOrderDto
(
request
);
collageOrderDto
.
setCurrentUserId
(
this
.
getUserIdBySessionId
(
request
.
getSessionId
()));
return
this
.
collageOrderBaseService
.
shoppingCollageMemberState
(
collageOrderDto
);
}
/**
* 根据sessionId查询登录用户的userId
* 根据sessionId查询登录用户的userId
* @param sessionId
* @param sessionId
* @return
* @return
*/
*/
private
String
getUserIdBySessionId
(
String
sessionId
)
{
private
String
getUserIdBySessionId
(
String
sessionId
)
{
return
this
.
shoppingCartCollageService
.
getCustomerInfoV
o
(
sessionId
).
getMemberId
();
return
this
.
getUserInf
o
(
sessionId
).
getMemberId
();
}
}
/**
/**
* 根据sessionId查询登录用户
的userId
* 根据sessionId查询登录用户
信息
* @param sessionId
* @param sessionId
* @return
* @return
*/
*/
...
@@ -235,7 +264,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
...
@@ -235,7 +264,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
// 设置参加拼团人员信息
// 设置参加拼团人员信息
String
collageMemberStateHashKey
=
collageOrderBaseService
.
genCollageMemberStateHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
String
collageMemberStateHashKey
=
collageOrderBaseService
.
genCollageMemberStateHashKey
(
collageOrderDto
.
getPartnerId
(),
collageOrderDto
.
getStoreId
(),
collageOrderDto
.
getCreateCollageUserId
());
collageOrderBaseService
.
init
CollageMemberState
(
collageMemberStateHashKey
,
collageOrderDto
);
collageOrderBaseService
.
add
CollageMemberState
(
collageMemberStateHashKey
,
collageOrderDto
);
// 设置用户在该店铺的拼单结束时间
// 设置用户在该店铺的拼单结束时间
collageOrderBaseService
.
setCollageMemberAddTime
(
collageOrderDto
);
collageOrderBaseService
.
setCollageMemberAddTime
(
collageOrderDto
);
...
...
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