记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
01ee3ac8
Commit
01ee3ac8
authored
Apr 20, 2022
by
GaoHu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
exit
parent
510d763a
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
215 additions
and
20 deletions
+215
-20
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+17
-2
GoblinGoodsAnticipateHelp.java
...dnet/service/goblin/dto/vo/GoblinGoodsAnticipateHelp.java
+58
-0
GoblinGoodsAnticipateShareVo.java
...t/service/goblin/dto/vo/GoblinGoodsAnticipateShareVo.java
+17
-0
GoblinGoodsAnticipateServiceImpl.java
...goblin/service/impl/GoblinGoodsAnticipateServiceImpl.java
+55
-11
GoblinGoodsAnticipateMgServiceImpl.java
...rvice/impl/manage/GoblinGoodsAnticipateMgServiceImpl.java
+8
-1
GoblinMongoUtils.java
...a/com/liquidnet/service/goblin/util/GoblinMongoUtils.java
+11
-1
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+49
-5
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
01ee3ac8
...
...
@@ -250,12 +250,27 @@ public class GoblinRedisConst {
/**
* skuId助力所需人数
*/
public
static
final
String
ANTICIPATE_SHARE_SKUID_PEOPLE
=
PREFIX
.
concat
(
"anticipate:share:skuId:people"
);
public
static
final
String
ANTICIPATE_SHARE_SKUID_PEOPLE
=
PREFIX
.
concat
(
"anticipate:share:skuId:people
:
"
);
/**
* 助力头像保存
*/
public
static
final
String
ANTICIPATE_SHARE_HELP_AVATAR
=
PREFIX
.
concat
(
"anticipate:share:help:avatar"
);
public
static
final
String
ANTICIPATE_SHARE_HELP_AVATAR
=
PREFIX
.
concat
(
"anticipate:share:help:avatar:"
);
/**
* 创建分享vo
*/
public
static
final
String
ANTICIPATE_SHARE_VO
=
PREFIX
.
concat
(
"anticipate:share:help:vo:"
);
/**
* 用户助力 助力人id:分享id
*/
public
static
final
String
ANTICIPATE_SHARE_HELPID_SID
=
PREFIX
.
concat
(
"anticipate:share:helpId:sid:"
);
/**
* 助力sid
*/
public
static
final
String
ANTICIPATE_SHARE_SID
=
PREFIX
.
concat
(
"anticipate:share:sid:"
);
...
...
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinGoodsAnticipateHelp.java
0 → 100644
View file @
01ee3ac8
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* @author TT
*/
@Data
public
class
GoblinGoodsAnticipateHelp
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* skuId
*/
private
String
skuId
;
/**
* 配置预约人数
*/
private
Integer
people
;
/**
* 预约开始时间
*/
@ApiModelProperty
(
value
=
"预约开始时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
LocalDateTime
aboutStartDate
;
/**
* 预约结束时间
*/
@ApiModelProperty
(
value
=
"预约结束时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
LocalDateTime
aboutEndDate
;
/**
* 创建时间
*/
private
LocalDateTime
createDate
;
private
static
final
GoblinGoodsAnticipateHelp
obj
=
new
GoblinGoodsAnticipateHelp
();
public
static
GoblinGoodsAnticipateHelp
getNew
()
{
try
{
return
(
GoblinGoodsAnticipateHelp
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
GoblinGoodsAnticipateHelp
();
}
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinGoodsAnticipateShareVo.java
View file @
01ee3ac8
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
...
...
@@ -34,6 +37,20 @@ public class GoblinGoodsAnticipateShareVo implements Serializable{
*/
private
String
url
;
/**
* 预约开始时间
*/
@ApiModelProperty
(
value
=
"预约开始时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
LocalDateTime
aboutStartDate
;
/**
* 预约结束时间
*/
@ApiModelProperty
(
value
=
"预约结束时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
LocalDateTime
aboutEndDate
;
/**
* 创建时
*/
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinGoodsAnticipateServiceImpl.java
View file @
01ee3ac8
...
...
@@ -8,10 +8,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodAnticipateUserVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateHelpVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateShareVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateVo
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService
;
import
com.liquidnet.service.goblin.util.GoblinAnticipateUtils
;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
...
...
@@ -23,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
java.math.BigInteger
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.List
;
...
...
@@ -66,6 +64,14 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
GoblinGoodAnticipateUserVo
userVo
=
goblinRedisUtils
.
getUserAboutAut
(
skuId
,
uid
);
LinkedList
<
Object
[]>
sqlValue
=
CollectionUtil
.
linkedListObjectArr
();
if
(
userVo
==
null
)
{
//接入助力人数判断
GoblinGoodsAnticipateHelp
sharePeopleBySkuId
=
goblinRedisUtils
.
getSharePeopleBySkuId
(
skuId
);
Integer
people
=
goblinRedisUtils
.
getHelpSidAddHelp
(
skuId
);
if
(
sharePeopleBySkuId
.
getPeople
()
<=
people
)
{
int
num
=
sharePeopleBySkuId
.
getPeople
()
-
people
;
return
ResponseDto
.
failure
(
"预约失败!预约助力人数还差"
+
num
+
"人!"
);
}
GoblinGoodAnticipateUserVo
user
=
new
GoblinGoodAnticipateUserVo
();
user
.
setUid
(
uid
);
user
.
setSkuId
(
skuId
);
...
...
@@ -107,15 +113,26 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
@Override
public
ResponseDto
<
Object
>
share
(
String
skuId
,
String
url
)
{
//查询是否可以预约
GoblinGoodsAnticipateValueVo
valueBySkuId
=
goblinRedisUtils
.
getValueBySkuId
(
skuId
);
if
(
valueBySkuId
==
null
)
{
return
ResponseDto
.
failure
(
"商品不存在!"
);
}
Integer
integer
=
GoblinAnticipateUtils
.
setState
(
valueBySkuId
.
getAboutStartDate
(),
valueBySkuId
.
getAboutEndDate
());
if
(
integer
!=
null
&&
!
integer
.
equals
(
1
))
{
return
ResponseDto
.
failure
(
"预约未开始或已结束!"
);
}
//获取用户uid
String
uid
=
CurrentUtil
.
getCurrentUid
();
//获取redis关联记录
//可以创建分享
//查询redis关联记录
Integer
share
=
goblinRedisUtils
.
getShare
(
skuId
,
uid
);
if
(
share
!=
null
)
{
return
ResponseDto
.
failure
(
"已开启助力"
);
}
else
{
//查询sku需要助力人数
//
Integer skuIdPeople = goblinRedisUtils.getSharePeopleBySkuId(skuId);
//
Integer skuIdPeople = goblinRedisUtils.getSharePeopleBySkuId(skuId);
//redis缓存
goblinRedisUtils
.
setShare
(
skuId
,
uid
,
0
);
...
...
@@ -127,9 +144,15 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
goblinGoodsAnticipateShareVo
.
setSkuId
(
skuId
);
goblinGoodsAnticipateShareVo
.
setUrl
(
url
);
goblinGoodsAnticipateShareVo
.
setCreatedDate
(
LocalDateTime
.
now
());
goblinGoodsAnticipateShareVo
.
setAboutStartDate
(
valueBySkuId
.
getAboutStartDate
());
goblinGoodsAnticipateShareVo
.
setAboutEndDate
(
valueBySkuId
.
getAboutEndDate
());
//开启助力
//mongodb缓存
goblinMongoUtils
.
setGoblinGoodsAnticipateShareVo
(
goblinGoodsAnticipateShareVo
);
//goblinMongoUtils.setGoblinGoodsAnticipateShareVo(goblinGoodsAnticipateShareVo);
//redis存储用户分享
goblinRedisUtils
.
setShareVo
(
goblinGoodsAnticipateShareVo
);
//redis消息 MySQL
LinkedList
<
Object
[]>
sqlValue
=
CollectionUtil
.
linkedListObjectArr
();
...
...
@@ -147,19 +170,40 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
@Override
public
ResponseDto
<
Object
>
help
(
String
sid
)
{
//查询是否可以预约
GoblinGoodsAnticipateShareVo
shareVo
=
goblinRedisUtils
.
getShareVo
(
sid
);
if
(
shareVo
==
null
)
{
return
ResponseDto
.
failure
(
"分享不存在!"
);
}
Integer
integer
=
GoblinAnticipateUtils
.
setState
(
shareVo
.
getAboutStartDate
(),
shareVo
.
getAboutEndDate
());
if
(
integer
!=
null
&&
!
integer
.
equals
(
1
))
{
return
ResponseDto
.
failure
(
"预约未开始或已结束!"
);
}
//获取uid
String
uid
=
CurrentUtil
.
getCurrentUid
();
//查询mongodb 是否助力过该分享
GoblinGoodsAnticipateHelpVo
goodsAnticipateHelpVo
=
goblinMongoUtils
.
getHelpVo
(
sid
,
uid
);
//
GoblinGoodsAnticipateHelpVo goodsAnticipateHelpVo = goblinMongoUtils.getHelpVo(sid, uid);
if
(
goodsAnticipateHelpVo
==
null
)
{
//redis缓存
Integer
help
=
goblinRedisUtils
.
getHelpByUidAndSid
(
uid
,
sid
);
if
(
help
==
null
)
{
GoblinGoodsAnticipateHelpVo
helpVo
=
GoblinGoodsAnticipateHelpVo
.
getNew
();
helpVo
.
setHelpUid
(
uid
);
helpVo
.
setSid
(
sid
);
helpVo
.
setCreateDate
(
LocalDateTime
.
now
());
//mongodb缓存
goblinMongoUtils
.
setHelpVo
(
helpVo
);
// goblinMongoUtils.setHelpVo(helpVo);
//加入redis缓存
Duration
between
=
Duration
.
between
(
shareVo
.
getAboutStartDate
(),
shareVo
.
getAboutEndDate
());
goblinRedisUtils
.
setHelpByUidAndSid
(
uid
,
sid
,
between
.
toDays
());
//此助力sid人数+1
goblinRedisUtils
.
setHelpSidAddHelp
(
sid
);
//redis消息 MySQL插入
LinkedList
<
Object
[]>
sqlValue
=
CollectionUtil
.
linkedListObjectArr
();
...
...
@@ -168,7 +212,7 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
helpVo
.
getHelpUid
(),
helpVo
.
getCreateDate
()
});
sendRedis
(
"goblin_goods_anticipate_help"
,
sqlValue
);
sendRedis
(
"goblin_goods_anticipate_help"
,
sqlValue
);
//记录助力人数头像(前六个)
List
<
String
>
helpUserAvatar
=
goblinRedisUtils
.
getHelpUserAvatar
(
sid
);
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/manage/GoblinGoodsAnticipateMgServiceImpl.java
View file @
01ee3ac8
...
...
@@ -13,6 +13,7 @@ import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueAddPara
import
com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueParam
;
import
com.liquidnet.service.goblin.dto.manage.vo.AnticipateValueVo
;
import
com.liquidnet.service.goblin.dto.manage.vo.GoblinGoodsAnticipateValueVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateHelp
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateVo
;
import
com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService
;
import
com.liquidnet.service.goblin.util.GoblinAnticipateUtils
;
...
...
@@ -114,7 +115,13 @@ public class GoblinGoodsAnticipateMgServiceImpl implements IGoblinGoodsAnticipat
goblinRedisUtils
.
setValue
(
goodsAnticipateValueVo
);
//redis缓存预约条件
goblinRedisUtils
.
setSharePeopleBySkuId
(
item
.
getSkuId
(),
people
);
GoblinGoodsAnticipateHelp
goodsAnticipateHelp
=
GoblinGoodsAnticipateHelp
.
getNew
();
goodsAnticipateHelp
.
setSkuId
(
goodsAnticipateValueVo
.
getSkuId
());
goodsAnticipateHelp
.
setPeople
(
people
);
goodsAnticipateHelp
.
setAboutStartDate
(
goodsAnticipateValueVo
.
getAboutStartDate
());
goodsAnticipateHelp
.
setAboutEndDate
(
goodsAnticipateValueVo
.
getAboutEndDate
());
goblinRedisUtils
.
setSharePeopleBySkuId
(
item
.
getSkuId
(),
goodsAnticipateHelp
);
//保存mysql中间表
LinkedList
<
Object
[]>
sqlValue
=
CollectionUtil
.
linkedListObjectArr
();
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinMongoUtils.java
View file @
01ee3ac8
...
...
@@ -191,23 +191,33 @@ public class GoblinMongoUtils {
mongoTemplate
.
updateFirst
(
query
,
update
,
GoblinGoodsAnticipateValueVo
.
class
.
getSimpleName
());
}
/**
* 存入用户创建分享 不需要mongodb存储
*/
public
void
setGoblinGoodsAnticipateShareVo
(
GoblinGoodsAnticipateShareVo
goblinGoodsAnticipateShareVo
){
mongoTemplate
.
insert
(
goblinGoodsAnticipateShareVo
,
GoblinGoodsAnticipateShareVo
.
class
.
getSimpleName
());
}
/**
* 根据创建id查询分享信息
*/
public
GoblinGoodsAnticipateShareVo
getShareVoBySid
(
String
sid
){
return
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"sid"
).
is
(
sid
)),
GoblinGoodsAnticipateShareVo
.
class
,
GoblinGoodsAnticipateShareVo
.
class
.
getSimpleName
());
}
/**
* 分享id和助力人id 查询助力信息
* 分享id和助力人id 查询助力信息
不存mongodb
*/
public
GoblinGoodsAnticipateHelpVo
getHelpVo
(
String
sid
,
String
uid
){
return
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"sid"
).
is
(
sid
).
and
(
"helpUid"
).
is
(
uid
)),
GoblinGoodsAnticipateHelpVo
.
class
,
GoblinGoodsAnticipateHelpVo
.
class
.
getSimpleName
());
}
/**
* 助力vo 之后删去不需要储存
* @param goodsAnticipateHelpVo
*/
public
void
setHelpVo
(
GoblinGoodsAnticipateHelpVo
goodsAnticipateHelpVo
){
mongoTemplate
.
insert
(
goodsAnticipateHelpVo
,
GoblinGoodsAnticipateHelpVo
.
class
.
getSimpleName
());
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
01ee3ac8
...
...
@@ -162,24 +162,23 @@ public class GoblinRedisUtils {
*/
public
void
setShare
(
String
skuId
,
String
uid
,
Integer
people
)
{
String
key
=
GoblinRedisConst
.
ANTICIPATE_SHARE_UID_SKUID
.
concat
(
uid
).
concat
(
":"
).
concat
(
skuId
);
//获取缓存中是否有创建助力
redisUtil
.
set
(
key
,
people
);
}
/**
* 缓存sku预约助力人数
*/
public
void
setSharePeopleBySkuId
(
String
skuId
,
Integer
people
){
public
void
setSharePeopleBySkuId
(
String
skuId
,
GoblinGoodsAnticipateHelp
goodsAnticipateHelp
){
String
key
=
GoblinRedisConst
.
ANTICIPATE_SHARE_SKUID_PEOPLE
.
concat
(
skuId
);
redisUtil
.
set
(
key
,
people
);
redisUtil
.
set
(
key
,
goodsAnticipateHelp
);
}
/**
* 缓存sku预约助力人数
*/
public
Integer
getSharePeopleBySkuId
(
String
skuId
){
public
GoblinGoodsAnticipateHelp
getSharePeopleBySkuId
(
String
skuId
){
String
key
=
GoblinRedisConst
.
ANTICIPATE_SHARE_SKUID_PEOPLE
.
concat
(
skuId
);
return
(
Integer
)
redisUtil
.
get
(
key
);
return
(
GoblinGoodsAnticipateHelp
)
redisUtil
.
get
(
key
);
}
/**
...
...
@@ -221,6 +220,51 @@ public class GoblinRedisUtils {
}
}
/**
* 存储分享VO
*/
public
void
setShareVo
(
GoblinGoodsAnticipateShareVo
goblinGoodsAnticipateShareVo
){
redisUtil
.
set
(
GoblinRedisConst
.
ANTICIPATE_SHARE_VO
.
concat
(
goblinGoodsAnticipateShareVo
.
getSid
()),
goblinGoodsAnticipateShareVo
);
}
/**
* 获取分享VO
*/
public
GoblinGoodsAnticipateShareVo
getShareVo
(
String
sid
){
return
(
GoblinGoodsAnticipateShareVo
)
redisUtil
.
get
(
GoblinRedisConst
.
ANTICIPATE_SHARE_VO
.
concat
(
sid
));
}
/**
* 缓存助力
*/
public
void
setHelpByUidAndSid
(
String
uid
,
String
sid
,
Long
day
){
redisUtil
.
set
(
GoblinRedisConst
.
ANTICIPATE_SHARE_HELPID_SID
.
concat
(
uid
).
concat
(
":"
).
concat
(
sid
),
0
,(
day
+
1
)*
60
*
60
*
24
);
}
/**
* 获取助力
*/
public
Integer
getHelpByUidAndSid
(
String
uid
,
String
sid
){
return
(
Integer
)
redisUtil
.
get
(
GoblinRedisConst
.
ANTICIPATE_SHARE_HELPID_SID
.
concat
(
uid
).
concat
(
":"
).
concat
(
sid
));
}
/**
* 助力id人数+1
*/
public
void
setHelpSidAddHelp
(
String
sid
)
{
Integer
helpByUidAndSid
=
getHelpSidAddHelp
(
sid
);
int
num
=
helpByUidAndSid
!=
null
?
helpByUidAndSid
+=
1
:
1
;
redisUtil
.
set
(
GoblinRedisConst
.
ANTICIPATE_SHARE_SID
.
concat
(
sid
),
num
);
}
/**
* 获取 助力id人数
*/
public
Integer
getHelpSidAddHelp
(
String
sid
){
return
(
Integer
)
redisUtil
.
get
(
GoblinRedisConst
.
ANTICIPATE_SHARE_SID
.
concat
(
sid
));
}
/* ---------------------------------------- sku库存相关 ---------------------------------------- */
public
void
setSkuStock
(
String
marketPre
,
String
skuId
,
Integer
stock
)
{
String
rk
=
GoblinRedisConst
.
REAL_STOCK_SKU
;
...
...
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