记得上下班打卡 | 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
6cf6b770
Commit
6cf6b770
authored
Sep 02, 2021
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'pre' into 'master'
Pre See merge request
!30
parents
4c69958c
24e3b67a
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
193 additions
and
5 deletions
+193
-5
MQConst.java
...ain/java/com/liquidnet/service/base/constant/MQConst.java
+1
-0
ConsumerSweetAppletUserRedisStreamConfig.java
...weet/config/ConsumerSweetAppletUserRedisStreamConfig.java
+71
-0
AbstractSqlRedisReceiver.java
...ice/consumer/sweet/receiver/AbstractSqlRedisReceiver.java
+1
-1
ConsumerSweetAppletUserRdsReceiver.java
...er/sweet/receiver/ConsumerSweetAppletUserRdsReceiver.java
+69
-0
db_sweetsugar_structure.sql
.../liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
+22
-0
redis_queue_create.txt
...rvice/liquidnet-service-sweet/docu/redis_queue_create.txt
+5
-1
SweetWechatLoginServiceImpl.java
...rvice/sweet/service/impl/SweetWechatLoginServiceImpl.java
+21
-2
sqlmap.properties
...uidnet-service-sweet/src/main/resources/sqlmap.properties
+3
-1
No files found.
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/MQConst.java
View file @
6cf6b770
...
...
@@ -77,6 +77,7 @@ public class MQConst {
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"
,
"提醒记录"
),
SWEET_APPLET_USER_INSERT_DRAW
(
"sweet:stream:rk.sweetAppletUserInsert"
,
"group.sweetAppletUserInsert"
,
"小程序登录记录用户解密后信息"
),
;
private
final
String
key
;
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/config/ConsumerSweetAppletUserRedisStreamConfig.java
0 → 100644
View file @
6cf6b770
package
com
.
liquidnet
.
service
.
consumer
.
sweet
.
config
;
import
com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetAppletUserRdsReceiver
;
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_APPLET_USER_INSERT_DRAW
;
@Configuration
public
class
ConsumerSweetAppletUserRedisStreamConfig
{
@Autowired
ConsumerSweetAppletUserRdsReceiver
consumerSweetAppletUserRdsReceiver
;
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
);
}
/**
* 小程序登录记录用户解密后信息
*/
private
Subscription
receiveSqlSweetAppletUser
(
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
listenerContainer
,
int
t
)
{
return
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
SWEET_APPLET_USER_INSERT_DRAW
.
getGroup
(),
SWEET_APPLET_USER_INSERT_DRAW
.
name
()
+
t
),
StreamOffset
.
create
(
SWEET_APPLET_USER_INSERT_DRAW
.
getKey
(),
ReadOffset
.
lastConsumed
()),
consumerSweetAppletUserRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
@Bean
public
Subscription
subscriptionSqlSweetAppletUser
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlSweetAppletUser
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlSweetAppletUser2
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlSweetAppletUser
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlSweetAppletUser3
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlSweetAppletUser
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
/* -------------------------------------------------------- | */
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/receiver/AbstractSqlRedisReceiver.java
View file @
6cf6b770
...
...
@@ -17,7 +17,7 @@ import java.util.HashMap;
@Slf4j
public
abstract
class
AbstractSqlRedisReceiver
implements
StreamListener
<
String
,
MapRecord
<
String
,
String
,
String
>>
{
@Autowired
p
rivate
IBaseDao
baseDao
;
p
ublic
IBaseDao
baseDao
;
@Autowired
StringRedisTemplate
stringRedisTemplate
;
@Autowired
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/receiver/ConsumerSweetAppletUserRdsReceiver.java
0 → 100644
View file @
6cf6b770
package
com
.
liquidnet
.
service
.
consumer
.
sweet
.
receiver
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
@Slf4j
@Component
public
class
ConsumerSweetAppletUserRdsReceiver
extends
AbstractSqlRedisReceiver
{
@Override
protected
String
getRedisStreamKey
()
{
return
MQConst
.
SweetQueue
.
SWEET_APPLET_USER_INSERT_DRAW
.
getKey
();
}
@Override
protected
String
getRedisStreamGroup
()
{
return
MQConst
.
SweetQueue
.
SWEET_APPLET_USER_INSERT_DRAW
.
getGroup
();
}
@Override
public
void
onMessage
(
MapRecord
<
String
,
String
,
String
>
message
)
{
log
.
debug
(
"CONSUMER SQL[streamKey:{},messageId:{},stream:{},body:{}]"
,
this
.
getRedisStreamKey
(),
message
.
getId
(),
message
.
getStream
(),
message
.
getValue
());
boolean
result
=
this
.
consumerSqlDaoHandler
(
message
.
getValue
().
get
(
"message"
));
log
.
info
(
"CONSUMER SQL RESULT:{} ==> MESSAGE_ID:{}"
,
result
,
message
.
getId
());
try
{
stringRedisTemplate
.
opsForStream
().
acknowledge
(
getRedisStreamGroup
(),
message
);
stringRedisTemplate
.
opsForStream
().
delete
(
this
.
getRedisStreamKey
(),
message
.
getId
());
}
catch
(
Exception
e
)
{
log
.
error
(
"#CONSUMER SQL RESULT:{} ==> DEL_REDIS_QUEUE_MSG_EXCEPTION[MESSAGE_ID:{},MSG:{}]"
,
result
,
message
.
getId
(),
JsonUtils
.
toJson
(
message
),
e
);
}
finally
{
try
{
stringRedisTemplate
.
opsForStream
().
acknowledge
(
getRedisStreamGroup
(),
message
);
stringRedisTemplate
.
opsForStream
().
delete
(
this
.
getRedisStreamKey
(),
message
.
getId
());
}
catch
(
Exception
ignored
)
{
}
}
}
private
boolean
consumerSqlDaoHandler
(
String
msg
)
{
Boolean
aBoolean
=
false
;
try
{
SqlMapping
.
SqlMessage
sqlMessage
=
JsonUtils
.
fromJson
(
msg
,
SqlMapping
.
SqlMessage
.
class
);
if
(
sqlMessage
==
null
)
{
aBoolean
=
true
;
}
else
{
aBoolean
=
baseDao
.
batchSqls
(
sqlMessage
.
getSqls
(),
sqlMessage
.
getArgs
());
}
}
catch
(
Exception
e
)
{
log
.
error
(
"CONSUMER SQL FAIL ==> {}"
,
e
.
getMessage
(),
e
);
}
finally
{
if
(!
aBoolean
)
{
HashMap
<
String
,
String
>
map
=
CollectionUtil
.
mapStringString
();
map
.
put
(
"message"
,
msg
);
// stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(this.getRedisStreamKey()));
}
}
return
aBoolean
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
View file @
6cf6b770
...
...
@@ -440,6 +440,28 @@ CREATE TABLE `sweet_wechat_user`
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'正在现场服务号关注事件储存用户信息表'
;
-- 小程序登录记录用户解密后信息表
drop
TABLE
if
exists
`sweet_applet_user`
;
CREATE
TABLE
`sweet_applet_user`
(
`mid`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`user_id`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'user_id'
,
`openId`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'openId'
,
`unionId`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'unionId'
,
`getPhoneNumber`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'手机号'
,
`getPurePhoneNumber`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'手机号'
,
`getCountryCode`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'地区码'
,
`type`
tinyint
NOT
NULL
DEFAULT
0
COMMENT
'1草莓 2五百里 3mdsk 4正在'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_applet_user_user_id`
(
`user_id`
),
UNIQUE
KEY
(
openId
,
unionId
,
getPurePhoneNumber
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'小程序登录记录用户解密后信息表'
;
-- 答题表
drop
TABLE
if
exists
`sweet_answer`
;
CREATE
TABLE
`sweet_answer`
...
...
liquidnet-bus-service/liquidnet-service-sweet/docu/redis_queue_create.txt
View file @
6cf6b770
...
...
@@ -19,4 +19,8 @@ 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
XGROUP CREATE sweet:stream:rk.remindInsert group.remindInsert 0
-- 小程序登录记录用户解密后信息 --
XADD sweet:stream:rk.sweetAppletUserInsert * 0 0
XGROUP CREATE sweet:stream:rk.sweetAppletUserInsert group.sweetAppletUserInsert 0
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatLoginServiceImpl.java
View file @
6cf6b770
...
...
@@ -4,8 +4,12 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import
cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -16,7 +20,9 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.Objects
;
/**
...
...
@@ -34,6 +40,9 @@ public class SweetWechatLoginServiceImpl {
@Autowired
private
SweetWechatService
sweetWechatService
;
@Autowired
QueueUtils
queueUtils
;
@Value
(
"${liquidnet.service.adam.url}"
)
private
String
adamUrl
;
...
...
@@ -56,8 +65,6 @@ public class SweetWechatLoginServiceImpl {
return
ResponseDto
.
failure
(
"解密手机号码信息错误"
);
}
registerByMobile
(
wxMaPhoneNumberInfo
.
getPurePhoneNumber
());
String
unionId
=
sessionInfo
.
getUnionid
();
String
openId
=
sessionInfo
.
getOpenid
();
...
...
@@ -68,6 +75,18 @@ public class SweetWechatLoginServiceImpl {
userInfo
.
put
(
"getPurePhoneNumber"
,
wxMaPhoneNumberInfo
.
getPurePhoneNumber
());
userInfo
.
put
(
"getCountryCode"
,
wxMaPhoneNumberInfo
.
getCountryCode
());
registerByMobile
(
wxMaPhoneNumberInfo
.
getPurePhoneNumber
());
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
();
sqls
.
add
(
SqlMapping
.
get
(
"sweet_applet_user.insert"
));
sqlsDataA
.
add
(
new
Object
[]{
IDGenerator
.
nextSnowId
(),
openId
,
unionId
,
wxMaPhoneNumberInfo
.
getPhoneNumber
(),
wxMaPhoneNumberInfo
.
getPurePhoneNumber
()
,
wxMaPhoneNumberInfo
.
getCountryCode
(),
type
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_APPLET_USER_INSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
return
ResponseDto
.
success
(
userInfo
);
}
catch
(
Exception
e
)
{
log
.
error
(
"WechatUserInfoError"
,
e
);
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/sqlmap.properties
View file @
6cf6b770
...
...
@@ -66,4 +66,6 @@ sweet_answer.insert=INSERT INTO sweet_answer (answer_id,phone,answer_json,img_ur
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
sweet_remind.insert
=
INSERT INTO sweet_remind (remind_id,openId,unionId,performancesId) VALUES (?,?,?,?)
# --------------------------小程序登录记录用户解密后信息--------------------------
sweet_applet_user.insert
=
INSERT INTO sweet_applet_user (user_id,openId,unionId,getPhoneNumber,getPurePhoneNumber,getCountryCode,type) 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