记得上下班打卡 | 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
b00b3ca1
Commit
b00b3ca1
authored
Apr 13, 2022
by
GaoHu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改预约逻辑
parent
de58601d
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
123 additions
and
0 deletions
+123
-0
GoblinGoodsAnticipateServiceImpl.java
...goblin/service/impl/GoblinGoodsAnticipateServiceImpl.java
+123
-0
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinGoodsAnticipateServiceImpl.java
0 → 100644
View file @
b00b3ca1
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
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.GoblinGoodsAnticipateAddParam
;
import
com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueAddParam
;
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.GoblinGoodAnticipateUserVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsAnticipateVo
;
import
com.liquidnet.service.goblin.service.IGoblinGoodsAnticipateService
;
import
com.liquidnet.service.goblin.service.manage.IGoblinGoodsAnticipateMgService
;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.QueueUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigInteger
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* <p>
* 预约表 服务实现类
* </p>
*
* @author liquidnet
* @since 2022-04-07
*/
@Service
@Slf4j
public
class
GoblinGoodsAnticipateServiceImpl
implements
IGoblinGoodsAnticipateService
{
@Autowired
GoblinRedisUtils
goblinRedisUtils
;
@Autowired
QueueUtils
queueUtils
;
@Override
public
ResponseDto
<
Object
>
userAbout
(
String
skuId
,
String
uid
,
String
phone
)
{
//查询该skuId是否能被预约
GoblinGoodsAnticipateValueVo
anticipateValueVo
=
goblinRedisUtils
.
getValueBySkuId
(
skuId
);
if
(
anticipateValueVo
!=
null
)
{
anticipateValueVo
.
setState
(
setState
(
anticipateValueVo
.
getAboutStartDate
(),
anticipateValueVo
.
getAboutEndDate
()));
if
(!
anticipateValueVo
.
getState
().
equals
(
1
))
{
return
ResponseDto
.
failure
(
"预约尚未开始或已结束!"
);
}
//查询该用户是否预
GoblinGoodAnticipateUserVo
userVo
=
goblinRedisUtils
.
getUserAboutAut
(
skuId
,
uid
);
LinkedList
<
Object
[]>
sqlValue
=
CollectionUtil
.
linkedListObjectArr
();
if
(
userVo
==
null
)
{
GoblinGoodAnticipateUserVo
user
=
new
GoblinGoodAnticipateUserVo
();
user
.
setUid
(
uid
);
user
.
setSkuId
(
skuId
);
user
.
setPhone
(
phone
);
user
.
setState
(
0
);
//mongodb记录
goblinRedisUtils
.
setUserAboutSku
(
user
);
//用户没有预约过
//发送redis消息修改mysql记录用户预约
sqlValue
.
add
(
new
Object
[]{
uid
,
skuId
,
phone
,
0
});
sendRedis
(
"goblin_goods_anticipate_user"
,
sqlValue
);
goblinRedisUtils
.
setSkuIdPeople
(
skuId
,
0
);
//储存用户头像
userAvatar
(
skuId
);
}
return
ResponseDto
.
success
();
}
return
ResponseDto
.
failure
(
"该预约不存在!"
);
}
private
Integer
setState
(
LocalDateTime
StartDate
,
LocalDateTime
EndDate
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
if
(
StartDate
.
isAfter
(
now
))
{
//未开始 0
return
0
;
}
if
(
StartDate
.
isBefore
(
now
)
&&
EndDate
.
isAfter
(
now
))
{
//预约中 1
return
1
;
}
if
(
EndDate
.
isBefore
(
now
))
{
//已结束 2
return
2
;
}
//其他
return
null
;
}
private
void
userAvatar
(
String
skuId
)
{
//获取
goblinRedisUtils
.
setUserAvatar
(
skuId
);
}
public
void
sendRedis
(
String
sqlKey
,
LinkedList
<
Object
[]>
sqlData
)
{
LinkedList
<
String
>
sql
=
CollectionUtil
.
linkedListString
();
sql
.
add
(
SqlMapping
.
get
(
sqlKey
));
String
sqlStr
=
SqlMapping
.
gets
(
sql
,
sqlData
);
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
GOBLIN_STORE_MARKET
.
getKey
(),
sqlStr
);
}
}
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