记得上下班打卡 | 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
cd96ecda
Commit
cd96ecda
authored
Aug 13, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
answer redis q
parent
8fe2af67
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
274 additions
and
26 deletions
+274
-26
MQConst.java
...ain/java/com/liquidnet/service/base/constant/MQConst.java
+2
-0
ConsumerSweetAnswerRedisStreamConfig.java
...er/kylin/config/ConsumerSweetAnswerRedisStreamConfig.java
+0
-1
ConsumerSweetRemindRedisStreamConfig.java
...er/kylin/config/ConsumerSweetRemindRedisStreamConfig.java
+77
-0
ConsumerSweetUserRedisStreamConfig.java
...umer/kylin/config/ConsumerSweetUserRedisStreamConfig.java
+77
-0
ConsumerSweetRemindRdsReceiver.java
...nsumer/kylin/receiver/ConsumerSweetRemindRdsReceiver.java
+17
-0
ConsumerSweetUserRdsReceiver.java
...consumer/kylin/receiver/ConsumerSweetUserRdsReceiver.java
+17
-0
db_sweetsugar_structure.sql
.../liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
+2
-1
redis_queue_create.txt
...rvice/liquidnet-service-sweet/docu/redis_queue_create.txt
+13
-1
SubscribeHandler.java
...com/liquidnet/service/sweet/handler/SubscribeHandler.java
+23
-14
UnsubscribeHandler.java
...m/liquidnet/service/sweet/handler/UnsubscribeHandler.java
+20
-6
SweetAnswerServiceImpl.java
...et/service/sweet/service/impl/SweetAnswerServiceImpl.java
+1
-1
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+18
-1
SweetRemindVo.java
...in/java/com/liquidnet/service/sweet/vo/SweetRemindVo.java
+1
-0
sqlmap.properties
...uidnet-service-sweet/src/main/resources/sqlmap.properties
+6
-1
No files found.
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/MQConst.java
View file @
cd96ecda
...
@@ -75,6 +75,8 @@ public class MQConst {
...
@@ -75,6 +75,8 @@ public class MQConst {
ARTISTS_RELATION_MDSK
(
"sweet:stream:rk.artists.mdsk.relation"
,
"group.artists.mdsk.relation"
,
"用户-关系"
),
ARTISTS_RELATION_MDSK
(
"sweet:stream:rk.artists.mdsk.relation"
,
"group.artists.mdsk.relation"
,
"用户-关系"
),
LUCK_DRAW
(
"sweet:stream:rk.luckDraw"
,
"group.luckDraw"
,
"用户-抽奖"
),
LUCK_DRAW
(
"sweet:stream:rk.luckDraw"
,
"group.luckDraw"
,
"用户-抽奖"
),
ANSWERINSERT_DRAW
(
"sweet:stream:rk.answerInsert"
,
"group.answerInsert"
,
"答案"
),
ANSWERINSERT_DRAW
(
"sweet:stream:rk.answerInsert"
,
"group.answerInsert"
,
"答案"
),
SWEET_USER_INSERT_DRAW
(
"sweet:stream:rk.sweetUserInsert"
,
"group.sweetUserInsert"
,
"关注服务号的用户信息"
),
SWEET_REMIND_INSERT_DRAW
(
"sweet:stream:rk.remindInsert"
,
"group.remindInsert"
,
"提醒记录"
),
;
;
private
final
String
key
;
private
final
String
key
;
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/config/ConsumerSweetAnswerRedisStreamConfig.java
View file @
cd96ecda
...
@@ -17,7 +17,6 @@ import org.springframework.data.redis.stream.Subscription;
...
@@ -17,7 +17,6 @@ import org.springframework.data.redis.stream.Subscription;
import
java.time.Duration
;
import
java.time.Duration
;
import
static
com
.
liquidnet
.
service
.
base
.
constant
.
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
;
import
static
com
.
liquidnet
.
service
.
base
.
constant
.
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
;
import
static
com
.
liquidnet
.
service
.
base
.
constant
.
MQConst
.
SweetQueue
.
ARTISTS_RELATION
;
@Configuration
@Configuration
public
class
ConsumerSweetAnswerRedisStreamConfig
{
public
class
ConsumerSweetAnswerRedisStreamConfig
{
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/config/ConsumerSweetRemindRedisStreamConfig.java
0 → 100644
View file @
cd96ecda
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
config
;
import
com.liquidnet.service.consumer.kylin.receiver.ConsumerSweetRemindRdsReceiver
;
import
lombok.var
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.stream.Consumer
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.ReadOffset
;
import
org.springframework.data.redis.connection.stream.StreamOffset
;
import
org.springframework.data.redis.stream.StreamMessageListenerContainer
;
import
org.springframework.data.redis.stream.Subscription
;
import
java.time.Duration
;
import
static
com
.
liquidnet
.
service
.
base
.
constant
.
MQConst
.
SweetQueue
.
SWEET_REMIND_INSERT_DRAW
;
@Configuration
public
class
ConsumerSweetRemindRedisStreamConfig
{
@Autowired
ConsumerSweetRemindRdsReceiver
consumerSweetRemindRdsReceiver
;
private
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
buildStreamMessageListenerContainer
(
RedisConnectionFactory
factory
)
{
var
options
=
StreamMessageListenerContainer
.
StreamMessageListenerContainerOptions
.
builder
()
.
pollTimeout
(
Duration
.
ofMillis
(
1
))
.
build
();
return
StreamMessageListenerContainer
.
create
(
factory
,
options
);
}
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private
Subscription
receiveSqlRemind
(
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
listenerContainer
,
int
t
)
{
return
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
SWEET_REMIND_INSERT_DRAW
.
getGroup
(),
SWEET_REMIND_INSERT_DRAW
.
name
()
+
t
),
StreamOffset
.
create
(
SWEET_REMIND_INSERT_DRAW
.
getKey
(),
ReadOffset
.
lastConsumed
()),
consumerSweetRemindRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public
Subscription
subscriptionSqlRemind
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlRemind
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlRemind2
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlRemind
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlRemind3
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlRemind
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
/* -------------------------------------------------------- | */
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/config/ConsumerSweetUserRedisStreamConfig.java
0 → 100644
View file @
cd96ecda
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
config
;
import
com.liquidnet.service.consumer.kylin.receiver.ConsumerSweetUserRdsReceiver
;
import
lombok.var
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.stream.Consumer
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.ReadOffset
;
import
org.springframework.data.redis.connection.stream.StreamOffset
;
import
org.springframework.data.redis.stream.StreamMessageListenerContainer
;
import
org.springframework.data.redis.stream.Subscription
;
import
java.time.Duration
;
import
static
com
.
liquidnet
.
service
.
base
.
constant
.
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
;
@Configuration
public
class
ConsumerSweetUserRedisStreamConfig
{
@Autowired
ConsumerSweetUserRdsReceiver
consumerSweetUserRdsReceiver
;
private
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
buildStreamMessageListenerContainer
(
RedisConnectionFactory
factory
)
{
var
options
=
StreamMessageListenerContainer
.
StreamMessageListenerContainerOptions
.
builder
()
.
pollTimeout
(
Duration
.
ofMillis
(
1
))
.
build
();
return
StreamMessageListenerContainer
.
create
(
factory
,
options
);
}
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private
Subscription
receiveSqlSweetUser
(
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
listenerContainer
,
int
t
)
{
return
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
SWEET_USER_INSERT_DRAW
.
getGroup
(),
SWEET_USER_INSERT_DRAW
.
name
()
+
t
),
StreamOffset
.
create
(
SWEET_USER_INSERT_DRAW
.
getKey
(),
ReadOffset
.
lastConsumed
()),
consumerSweetUserRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public
Subscription
subscriptionSqlSweetUser
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlSweetUser
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlSweetUser2
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlSweetUser
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlSweetUser3
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlSweetUser
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
/* -------------------------------------------------------- | */
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/receiver/ConsumerSweetRemindRdsReceiver.java
0 → 100644
View file @
cd96ecda
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
receiver
;
import
com.liquidnet.service.base.constant.MQConst
;
import
org.springframework.stereotype.Component
;
@Component
public
class
ConsumerSweetRemindRdsReceiver
extends
AbstractSqlRedisReceiver
{
@Override
protected
String
getRedisStreamKey
()
{
return
MQConst
.
SweetQueue
.
SWEET_REMIND_INSERT_DRAW
.
getKey
();
}
@Override
protected
String
getRedisStreamGroup
()
{
return
MQConst
.
SweetQueue
.
SWEET_REMIND_INSERT_DRAW
.
getGroup
();
}
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/receiver/ConsumerSweetUserRdsReceiver.java
0 → 100644
View file @
cd96ecda
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
receiver
;
import
com.liquidnet.service.base.constant.MQConst
;
import
org.springframework.stereotype.Component
;
@Component
public
class
ConsumerSweetUserRdsReceiver
extends
AbstractSqlRedisReceiver
{
@Override
protected
String
getRedisStreamKey
()
{
return
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
.
getKey
();
}
@Override
protected
String
getRedisStreamGroup
()
{
return
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
.
getGroup
();
}
}
liquidnet-bus-service/liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
View file @
cd96ecda
...
@@ -427,6 +427,7 @@ CREATE TABLE `sweet_wechat_user`
...
@@ -427,6 +427,7 @@ CREATE TABLE `sweet_wechat_user`
`city`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'市'
,
`city`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'市'
,
`subscribeTime`
datetime
NULL
DEFAULT
null
COMMENT
'关注时间'
,
`subscribeTime`
datetime
NULL
DEFAULT
null
COMMENT
'关注时间'
,
`subscribeScene`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'ADD_SCENE_SEARCH 关注方式'
,
`subscribeScene`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'ADD_SCENE_SEARCH 关注方式'
,
`is_cancel`
tinyint
NOT
NULL
DEFAULT
1
COMMENT
'是否取关 1关注 2已取消'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
PRIMARY
KEY
(
`mid`
),
...
@@ -454,7 +455,7 @@ CREATE TABLE `sweet_answer`
...
@@ -454,7 +455,7 @@ CREATE TABLE `sweet_answer`
COLLATE
utf8mb4_unicode_ci
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'答题表'
;
ROW_FORMAT
=
DYNAMIC
COMMENT
'答题表'
;
--
关注
--
提醒记录
drop
TABLE
if
exists
`sweet_remind`
;
drop
TABLE
if
exists
`sweet_remind`
;
CREATE
TABLE
`sweet_remind`
CREATE
TABLE
`sweet_remind`
(
(
...
...
liquidnet-bus-service/liquidnet-service-sweet/docu/redis_queue_create.txt
View file @
cd96ecda
...
@@ -7,4 +7,16 @@ XGROUP CREATE sweet:stream:rk.artists.mdsk.relation group.artists.mdsk.relation
...
@@ -7,4 +7,16 @@ XGROUP CREATE sweet:stream:rk.artists.mdsk.relation group.artists.mdsk.relation
-- 抽奖 --
-- 抽奖 --
XADD sweet:stream:rk.luckDraw * 0 0
XADD sweet:stream:rk.luckDraw * 0 0
XGROUP CREATE sweet:stream:rk.luckDraw group.luckDraw 0
XGROUP CREATE sweet:stream:rk.luckDraw group.luckDraw 0
\ No newline at end of file
-- 答案 --
XADD sweet:stream:rk.answerInsert * 0 0
XGROUP CREATE sweet:stream:rk.answerInsert group.answerInsert 0
-- 关注服务号的用户信息 --
XADD sweet:stream:rk.sweetUserInsert * 0 0
XGROUP CREATE sweet:stream:rk.sweetUserInsert group.sweetUserInsert 0
-- 提醒记录 --
XADD sweet:stream:rk.remindInsert * 0 0
XGROUP CREATE sweet:stream:rk.remindInsert group.remindInsert 0
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/SubscribeHandler.java
View file @
cd96ecda
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.service.impl.SweetWechatTemplateServiceImpl
;
import
com.liquidnet.service.sweet.service.impl.SweetWechatTemplateServiceImpl
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.error.WxErrorException
;
...
@@ -19,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -19,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
...
@@ -36,6 +41,8 @@ public class SubscribeHandler implements WxMpMessageHandler {
...
@@ -36,6 +41,8 @@ public class SubscribeHandler implements WxMpMessageHandler {
private
SweetWechatUserMapper
sweetWechatUserMapper
;
private
SweetWechatUserMapper
sweetWechatUserMapper
;
@Autowired
@Autowired
private
RedisDataUtils
redisDataUtils
;
private
RedisDataUtils
redisDataUtils
;
@Autowired
private
QueueUtils
queueUtils
;
@Autowired
@Autowired
private
SweetWechatTemplateServiceImpl
sweetWechatTemplateService
;
private
SweetWechatTemplateServiceImpl
sweetWechatTemplateService
;
...
@@ -52,7 +59,7 @@ public class SubscribeHandler implements WxMpMessageHandler {
...
@@ -52,7 +59,7 @@ public class SubscribeHandler implements WxMpMessageHandler {
}
}
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
// 记录用户信息
// 记录用户信息
SweetWechatUser
userInfo
=
sweetWechatUserMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getOpenId
,
wxMpUser
.
getOpenId
()
));
SweetWechatUser
userInfo
=
redisDataUtils
.
getSweetWechatUser
(
wxMpUser
.
getUnionId
(
));
SweetWechatUser
sweetWechatUser
=
SweetWechatUser
.
getNew
();
SweetWechatUser
sweetWechatUser
=
SweetWechatUser
.
getNew
();
sweetWechatUser
.
setOpenId
(
wxMpUser
.
getOpenId
());
sweetWechatUser
.
setOpenId
(
wxMpUser
.
getOpenId
());
sweetWechatUser
.
setUnionId
(
wxMpUser
.
getUnionId
());
sweetWechatUser
.
setUnionId
(
wxMpUser
.
getUnionId
());
...
@@ -68,20 +75,22 @@ public class SubscribeHandler implements WxMpMessageHandler {
...
@@ -68,20 +75,22 @@ public class SubscribeHandler implements WxMpMessageHandler {
sweetWechatUser
.
setSubscribeScene
(
wxMpUser
.
getSubscribeScene
());
sweetWechatUser
.
setSubscribeScene
(
wxMpUser
.
getSubscribeScene
());
if
(
null
==
userInfo
)
{
if
(
null
==
userInfo
)
{
sweetWechatUser
.
setUserId
(
IDGenerator
.
nextSnowId
());
sweetWechatUser
.
setUserId
(
IDGenerator
.
nextSnowId
());
sweetWechatUserMapper
.
insert
(
sweetWechatUser
);
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
(
);
sweetWechatTemplateService
.
subscribeSend
(
sweetWechatUser
);
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
(
);
}
else
{
LocalDateTime
now
=
LocalDateTime
.
now
();
s
weetWechatUser
.
setUpdatedAt
(
LocalDateTime
.
now
(
));
s
qls
.
add
(
SqlMapping
.
get
(
"sweet_user.insert"
));
s
weetWechatUserMapper
.
update
(
sweetWechatUser
,
Wrappers
.
lambdaUpdate
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getUserId
,
userInfo
.
getUserId
()));
s
qlsDataA
.
add
(
new
Object
[]{
}
sweetWechatUser
.
getUserId
(),
sweetWechatUser
.
getOpenId
(),
sweetWechatUser
.
getUnionId
(),
sweetWechatUser
.
getNickname
(),
String
unionId
=
wxMpUser
.
getUnionId
();
sweetWechatUser
.
getSexDesc
(),
sweetWechatUser
.
getSex
(),
sweetWechatUser
.
getHeadImgUrl
(),
sweetWechatUser
.
getLanguage
(),
if
(!
unionId
.
isEmpty
())
{
sweetWechatUser
.
getCountry
(),
sweetWechatUser
.
getProvince
(),
sweetWechatUser
.
getCity
(),
if
(
null
!=
userInfo
)
{
sweetWechatUser
.
getSubscribeTime
(),
sweetWechatUser
.
getSubscribeScene
()
sweetWechatUser
.
setMid
(
userInfo
.
getMid
()
);
}
);
sweetWechatUser
.
setUserId
(
userInfo
.
getUserId
());
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
.
getKey
(),
sweetWechatUser
.
setCreatedAt
(
userInfo
.
getCreatedAt
(
));
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
}
// 入缓存
redisDataUtils
.
setSweetWechatUser
(
sweetWechatUser
);
redisDataUtils
.
setSweetWechatUser
(
sweetWechatUser
);
//发送模版消息
sweetWechatTemplateService
.
subscribeSend
(
sweetWechatUser
);
}
}
return
null
;
return
null
;
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/UnsubscribeHandler.java
View file @
cd96ecda
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.error.WxErrorException
;
...
@@ -15,6 +19,8 @@ import me.chanjar.weixin.mp.bean.result.WxMpUser;
...
@@ -15,6 +19,8 @@ import me.chanjar.weixin.mp.bean.result.WxMpUser;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
...
@@ -33,6 +39,8 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
...
@@ -33,6 +39,8 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
private
SweetWechatUserMapper
sweetWechatUserMapper
;
private
SweetWechatUserMapper
sweetWechatUserMapper
;
@Autowired
@Autowired
private
RedisDataUtils
redisDataUtils
;
private
RedisDataUtils
redisDataUtils
;
@Autowired
private
QueueUtils
queueUtils
;
@Override
@Override
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
...
@@ -47,14 +55,20 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
...
@@ -47,14 +55,20 @@ public class UnsubscribeHandler implements WxMpMessageHandler {
}
}
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
// 删除用户信息
// 删除用户信息
SweetWechatUser
userInfo
=
sweetWechatUserMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getOpenId
,
wxMpUser
.
getOpenId
()
));
SweetWechatUser
userInfo
=
redisDataUtils
.
getSweetWechatUser
(
wxMpUser
.
getUnionId
(
));
if
(
null
!=
userInfo
)
{
if
(
null
!=
userInfo
)
{
int
resNum
=
sweetWechatUserMapper
.
delete
(
Wrappers
.
lambdaQuery
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getUserId
,
userInfo
.
getUserId
()));
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
}
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
();
String
unionId
=
wxMpUser
.
getUnionId
();
LocalDateTime
now
=
LocalDateTime
.
now
();
if
(!
unionId
.
isEmpty
())
{
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user.update"
));
redisDataUtils
.
delSweetRemind
(
unionId
);
sqlsDataA
.
add
(
new
Object
[]{
2
,
now
,
wxMpUser
.
getUnionId
()
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
// int resNum = sweetWechatUserMapper.delete(Wrappers.lambdaQuery(SweetWechatUser.class).eq(SweetWechatUser::getUserId, userInfo.getUserId()));
}
}
redisDataUtils
.
delSweetWechatUser
(
wxMpUser
.
getUnionId
());
return
null
;
return
null
;
}
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetAnswerServiceImpl.java
View file @
cd96ecda
...
@@ -57,7 +57,7 @@ public class SweetAnswerServiceImpl extends ServiceImpl<SweetAnswerMapper, Sweet
...
@@ -57,7 +57,7 @@ public class SweetAnswerServiceImpl extends ServiceImpl<SweetAnswerMapper, Sweet
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
sqls
.
add
(
SqlMapping
.
get
(
"sweet_answer.insert"
));
sqls
.
add
(
SqlMapping
.
get
(
"sweet_answer.insert"
));
sqlsDataA
.
add
(
new
Object
[]{
sqlsDataA
.
add
(
new
Object
[]{
IDGenerator
.
nextSnow
Id
(),
phone
,
answerJson
,
imgUrl
sweetAnswer
.
getAnswer
Id
(),
phone
,
answerJson
,
imgUrl
});
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
.
getKey
(),
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
cd96ecda
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
...
@@ -306,11 +307,22 @@ public class RedisDataUtils {
...
@@ -306,11 +307,22 @@ public class RedisDataUtils {
public
void
setSweetRemind
(
String
openId
,
String
unionId
,
String
performancesId
)
{
public
void
setSweetRemind
(
String
openId
,
String
unionId
,
String
performancesId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_REMIND
.
concat
(
unionId
);
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_REMIND
.
concat
(
unionId
);
SweetRemindVo
sweetRemindVo
=
SweetRemindVo
.
getNew
();
SweetRemindVo
sweetRemindVo
=
SweetRemindVo
.
getNew
();
sweetRemindVo
.
setRemindId
(
IDGenerator
.
nextSnowId
());
sweetRemindVo
.
setCreatedAt
(
DateUtil
.
getNowTime
());
sweetRemindVo
.
setCreatedAt
(
DateUtil
.
getNowTime
());
sweetRemindVo
.
setPerformancesId
(
performancesId
);
sweetRemindVo
.
setPerformancesId
(
performancesId
);
sweetRemindVo
.
setUnionId
(
unionId
);
sweetRemindVo
.
setUnionId
(
unionId
);
sweetRemindVo
.
setOpenId
(
openId
);
sweetRemindVo
.
setOpenId
(
openId
);
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
();
LocalDateTime
now
=
LocalDateTime
.
now
();
sqls
.
add
(
SqlMapping
.
get
(
"sweet_remind.insert"
));
sqlsDataA
.
add
(
new
Object
[]{
sweetRemindVo
.
getRemindId
(),
sweetRemindVo
.
getOpenId
(),
sweetRemindVo
.
getUnionId
(),
sweetRemindVo
.
getPerformancesId
(),
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_REMIND_INSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
// if (null != performanceInfo) {
// if (null != performanceInfo) {
// sweetRemindVo.setFieldName(performanceInfo.getFieldName());
// sweetRemindVo.setFieldName(performanceInfo.getFieldName());
// sweetRemindVo.setTitle(performanceInfo.getTitle());
// sweetRemindVo.setTitle(performanceInfo.getTitle());
...
@@ -330,7 +342,6 @@ public class RedisDataUtils {
...
@@ -330,7 +342,6 @@ public class RedisDataUtils {
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
sweetWechatUser
.
getUnionId
());
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
sweetWechatUser
.
getUnionId
());
redisUtil
.
set
(
redisKey
,
sweetWechatUser
);
redisUtil
.
set
(
redisKey
,
sweetWechatUser
);
}
}
public
SweetWechatUser
getSweetWechatUser
(
String
unionid
)
{
public
SweetWechatUser
getSweetWechatUser
(
String
unionid
)
{
if
(
unionid
.
isEmpty
())
{
if
(
unionid
.
isEmpty
())
{
return
null
;
return
null
;
...
@@ -338,6 +349,12 @@ public class RedisDataUtils {
...
@@ -338,6 +349,12 @@ public class RedisDataUtils {
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
unionid
);
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
unionid
);
return
(
SweetWechatUser
)
redisUtil
.
get
(
redisKey
);
return
(
SweetWechatUser
)
redisUtil
.
get
(
redisKey
);
}
}
public
void
delSweetWechatUser
(
String
unionid
)
{
if
(!
unionid
.
isEmpty
())
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
unionid
);
redisUtil
.
del
(
redisKey
);
}
}
// 艺人详情
// 艺人详情
public
SweetArtists
setArtistsDetails
(
String
artistsId
)
{
public
SweetArtists
setArtistsDetails
(
String
artistsId
)
{
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/vo/SweetRemindVo.java
View file @
cd96ecda
...
@@ -9,6 +9,7 @@ public class SweetRemindVo implements Serializable, Cloneable {
...
@@ -9,6 +9,7 @@ public class SweetRemindVo implements Serializable, Cloneable {
private
String
performancesId
;
private
String
performancesId
;
private
String
openId
;
private
String
openId
;
private
String
unionId
;
private
String
unionId
;
private
String
remindId
;
/*private String title;
/*private String title;
private String timeStart;
private String timeStart;
private String sellTime;
private String sellTime;
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/sqlmap.properties
View file @
cd96ecda
...
@@ -61,4 +61,9 @@ sweet_user_relation_mdsk.delete=DELETE FROM sweet_user_relation_mdsk WHERE user
...
@@ -61,4 +61,9 @@ sweet_user_relation_mdsk.delete=DELETE FROM sweet_user_relation_mdsk WHERE user
sweet_luck_draw.insert
=
INSERT INTO sweet_luck_draw (user_id,luck_draw_num,status,created_at) VALUES (?,?,1,?)
sweet_luck_draw.insert
=
INSERT INTO sweet_luck_draw (user_id,luck_draw_num,status,created_at) VALUES (?,?,1,?)
# --------------------------答案--------------------------
# --------------------------答案--------------------------
sweet_answer.insert
=
INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?)
sweet_answer.insert
=
INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?)
\ No newline at end of file
# --------------------------关注/取消服务号的用户信息--------------------------
sweet_user.insert
=
INSERT INTO sweet_wechat_user (user_id,openId,unionId,nickname,sexDesc,sex,headImgUrl,language,country,province,city,subscribeTime,subscribeScene) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)
sweet_user.update
=
UPDATE sweet_wechat_user SET is_cancel = ?, updated_at = ? WHERE unionId = ?
# --------------------------提醒记录--------------------------
sweet_remind.insert
=
INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?)
\ No newline at end of file
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