记得上下班打卡 | 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
768c7610
Commit
768c7610
authored
Aug 13, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev-sweet' into pre
parents
9c918b55
39a42853
Changes
38
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
1157 additions
and
132 deletions
+1157
-132
MQConst.java
...ain/java/com/liquidnet/service/base/constant/MQConst.java
+4
-1
liquidnet-service-sweet-dev.yml
...s-config/liquidnet-config/liquidnet-service-sweet-dev.yml
+2
-2
ConsumerSweetAnswerRedisStreamConfig.java
...er/kylin/config/ConsumerSweetAnswerRedisStreamConfig.java
+78
-0
ConsumerSweetRemindRedisStreamConfig.java
...er/kylin/config/ConsumerSweetRemindRedisStreamConfig.java
+77
-0
ConsumerSweetUserRedisStreamConfig.java
...umer/kylin/config/ConsumerSweetUserRedisStreamConfig.java
+77
-0
ConsumerSweetAnswerRdsReceiver.java
...nsumer/kylin/receiver/ConsumerSweetAnswerRdsReceiver.java
+17
-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
+66
-28
redis_queue_create.txt
...rvice/liquidnet-service-sweet/docu/redis_queue_create.txt
+13
-1
SweetConstant.java
...a/com/liquidnet/service/sweet/constant/SweetConstant.java
+2
-3
SweetAnswerController.java
...idnet/service/sweet/controller/SweetAnswerController.java
+52
-0
SweetAppletController.java
...idnet/service/sweet/controller/SweetAppletController.java
+7
-6
SweetAppletMdskController.java
...t/service/sweet/controller/SweetAppletMdskController.java
+12
-11
SweetWechatLoginController.java
.../service/sweet/controller/SweetWechatLoginController.java
+1
-1
SweetWechatTemplateController.java
...rvice/sweet/controller/SweetWechatTemplateController.java
+17
-1
SweetAnswer.java
.../java/com/liquidnet/service/sweet/entity/SweetAnswer.java
+67
-0
SweetRemind.java
.../java/com/liquidnet/service/sweet/entity/SweetRemind.java
+81
-0
SweetWechatUser.java
...a/com/liquidnet/service/sweet/entity/SweetWechatUser.java
+5
-0
SubscribeHandler.java
...com/liquidnet/service/sweet/handler/SubscribeHandler.java
+28
-14
UnsubscribeHandler.java
...m/liquidnet/service/sweet/handler/UnsubscribeHandler.java
+44
-1
SweetAnswerMapper.java
...com/liquidnet/service/sweet/mapper/SweetAnswerMapper.java
+16
-0
SweetRemindMapper.java
...com/liquidnet/service/sweet/mapper/SweetRemindMapper.java
+16
-0
ISweetAnswerService.java
.../liquidnet/service/sweet/service/ISweetAnswerService.java
+21
-0
ISweetRemindService.java
.../liquidnet/service/sweet/service/ISweetRemindService.java
+17
-0
SweetAnswerServiceImpl.java
...et/service/sweet/service/impl/SweetAnswerServiceImpl.java
+70
-0
SweetRemindServiceImpl.java
...et/service/sweet/service/impl/SweetRemindServiceImpl.java
+20
-0
SweetWechatCallbackServiceImpl.java
...ce/sweet/service/impl/SweetWechatCallbackServiceImpl.java
+2
-2
SweetWechatLoginServiceImpl.java
...rvice/sweet/service/impl/SweetWechatLoginServiceImpl.java
+11
-1
SweetWechatTemplateServiceImpl.java
...ce/sweet/service/impl/SweetWechatTemplateServiceImpl.java
+134
-40
ObjectUtil.java
...in/java/com/liquidnet/service/sweet/utils/ObjectUtil.java
+46
-0
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+43
-17
RedisMDSKDataUtils.java
...com/liquidnet/service/sweet/utils/RedisMDSKDataUtils.java
+3
-3
SweetAnswerVo.java
...in/java/com/liquidnet/service/sweet/vo/SweetAnswerVo.java
+55
-0
SweetRemindVo.java
...in/java/com/liquidnet/service/sweet/vo/SweetRemindVo.java
+1
-0
SweetAnswerMapper.xml
.../com/liquidnet/service/sweet/mapper/SweetAnswerMapper.xml
+5
-0
SweetRemindMapper.xml
.../com/liquidnet/service/sweet/mapper/SweetRemindMapper.xml
+5
-0
sqlmap.properties
...uidnet-service-sweet/src/main/resources/sqlmap.properties
+8
-0
No files found.
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/MQConst.java
View file @
768c7610
...
...
@@ -74,6 +74,9 @@ public class MQConst {
ARTISTS_RELATION
(
"sweet:stream:rk.artists.relation"
,
"group.artists.relation"
,
"用户-关系"
),
ARTISTS_RELATION_MDSK
(
"sweet:stream:rk.artists.mdsk.relation"
,
"group.artists.mdsk.relation"
,
"用户-关系"
),
LUCK_DRAW
(
"sweet:stream:rk.luckDraw"
,
"group.luckDraw"
,
"用户-抽奖"
),
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
;
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-sweet-dev.yml
View file @
768c7610
...
...
@@ -13,9 +13,9 @@ liquidnet:
file-max-size
:
200MB
level
:
debug
mysql
:
database-name
:
test
_ln_scene
database-name
:
dev
_ln_scene
mongodb
:
sslEnabled
:
false
database
:
test
_ln_scene
database
:
dev
_ln_scene
#以下为spring各环境个性配置
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/config/ConsumerSweetAnswerRedisStreamConfig.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
config
;
import
com.liquidnet.service.consumer.kylin.receiver.ConsumerSweetAnswerRdsReceiver
;
import
com.liquidnet.service.consumer.kylin.receiver.ConsumerSweetSqlUserRelationRdsReceiver
;
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
.
ANSWERINSERT_DRAW
;
@Configuration
public
class
ConsumerSweetAnswerRedisStreamConfig
{
@Autowired
ConsumerSweetAnswerRdsReceiver
consumerSweetAnswerRdsReceiver
;
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
receiveSqlAnswer
(
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
listenerContainer
,
int
t
)
{
return
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
ANSWERINSERT_DRAW
.
getGroup
(),
ANSWERINSERT_DRAW
.
name
()
+
t
),
StreamOffset
.
create
(
ANSWERINSERT_DRAW
.
getKey
(),
ReadOffset
.
lastConsumed
()),
consumerSweetAnswerRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public
Subscription
subscriptionSqlAnswer
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlAnswer
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlAnswer2
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlAnswer
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlAnswer3
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlAnswer
(
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/ConsumerSweetRemindRedisStreamConfig.java
0 → 100644
View file @
768c7610
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 @
768c7610
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/ConsumerSweetAnswerRdsReceiver.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
receiver
;
import
com.liquidnet.service.base.constant.MQConst
;
import
org.springframework.stereotype.Component
;
@Component
public
class
ConsumerSweetAnswerRdsReceiver
extends
AbstractSqlRedisReceiver
{
@Override
protected
String
getRedisStreamKey
()
{
return
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
.
getKey
();
}
@Override
protected
String
getRedisStreamGroup
()
{
return
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
.
getGroup
();
}
}
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 @
768c7610
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 @
768c7610
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 @
768c7610
...
...
@@ -183,34 +183,6 @@ CREATE TABLE `sweet_manual_shop`
COLLATE
=
utf8_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'电子宣传手册商铺表'
;
-- 正在现场服务号关注事件储存用户信息表
drop
TABLE
if
exists
`sweet_wechat_user`
;
CREATE
TABLE
`sweet_wechat_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'
,
`nickname`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'昵称'
,
`sexDesc`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'性别'
,
`sex`
tinyint
NOT
NULL
DEFAULT
0
COMMENT
'性别 男1'
,
`headImgUrl`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'头像'
,
`language`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'zh_CN'
,
`country`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'国家'
,
`province`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'省'
,
`city`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'市'
,
`subscribeTime`
datetime
NULL
DEFAULT
null
COMMENT
'关注时间'
,
`subscribeScene`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'ADD_SCENE_SEARCH 关注方式'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_wechat_user_user_id`
(
`user_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'正在现场服务号关注事件储存用户信息表'
;
-- 用户 收藏/喜欢等状态
drop
TABLE
if
exists
`sweet_user_relation`
;
CREATE
TABLE
`sweet_user_relation`
...
...
@@ -437,3 +409,69 @@ CREATE TABLE `sweet_luck_draw`
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'抽奖表'
;
-- 正在现场服务号关注事件储存用户信息表
drop
TABLE
if
exists
`sweet_wechat_user`
;
CREATE
TABLE
`sweet_wechat_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'
,
`nickname`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'昵称'
,
`sexDesc`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'性别'
,
`sex`
tinyint
NOT
NULL
DEFAULT
0
COMMENT
'性别 男1'
,
`headImgUrl`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'头像'
,
`language`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'zh_CN'
,
`country`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'国家'
,
`province`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'省'
,
`city`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'市'
,
`subscribeTime`
datetime
NULL
DEFAULT
null
COMMENT
'关注时间'
,
`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
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_wechat_user_user_id`
(
`user_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'正在现场服务号关注事件储存用户信息表'
;
-- 答题表
drop
TABLE
if
exists
`sweet_answer`
;
CREATE
TABLE
`sweet_answer`
(
`mid`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`answer_id`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'answer_id'
,
`phone`
varchar
(
11
)
NOT
NULL
DEFAULT
''
COMMENT
'手机号'
,
`answer_json`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'答案json'
,
`img_url`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'图片'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_answer_answer_id`
(
`answer_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'答题表'
;
-- 提醒记录
drop
TABLE
if
exists
`sweet_remind`
;
CREATE
TABLE
`sweet_remind`
(
`mid`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`remind_id`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'remind_id'
,
`openId`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'openId'
,
`unionId`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'unionId'
,
`performancesId`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'演出id'
,
`is_push`
tinyint
NOT
NULL
DEFAULT
1
COMMENT
'是否推送 1未推送 2已推送'
,
`push_time`
varchar
(
255
)
NOT
NULL
DEFAULT
''
COMMENT
'推送时间'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_remind_id`
(
`remind_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'提醒记录表'
;
liquidnet-bus-service/liquidnet-service-sweet/docu/redis_queue_create.txt
View file @
768c7610
...
...
@@ -8,3 +8,15 @@ XGROUP CREATE sweet:stream:rk.artists.mdsk.relation group.artists.mdsk.relation
-- 抽奖 --
XADD sweet:stream:rk.luckDraw * 0 0
XGROUP CREATE sweet:stream:rk.luckDraw group.luckDraw 0
-- 答案 --
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/constant/SweetConstant.java
View file @
768c7610
...
...
@@ -15,10 +15,9 @@ public class SweetConstant {
public
final
static
String
REDIS_KEY_SWEET_SHOP
=
"sweet:artists:shop:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_LUCK_DRAW
=
"sweet:artists:luckDraw:uid:"
;
public
final
static
String
REDIS_KEY_SWEET_REMIND
=
"sweet:remind:unionId:"
;
public
static
final
String
REDIS_KEY_SWEET_REMIND_ALL
=
"sweet:remind:unionId*"
;
public
final
static
String
REDIS_KEY_SWEET_WECHAT_USER_INFO
=
"sweet:wechatUser:unionId:"
;
public
final
static
String
REDIS_KEY_SWEET_WECHAT_USER_UNIONID
=
"sweet:wechatUser:openId:"
;
public
final
static
String
REDIS_KEY_SWEET_ANSWER_PHONE
=
"sweet:answer:phone:"
;
// public enum ManualPosition {
// artist("艺人","artist"),
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetAnswerController.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
controller
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.entity.SweetArtists
;
import
com.liquidnet.service.sweet.service.ISweetAnswerService
;
import
com.liquidnet.service.sweet.vo.SweetAnswerVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* <p>
* 答题表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Api
(
tags
=
"答案"
)
@RestController
@RequestMapping
(
"/sweetAnswer"
)
public
class
SweetAnswerController
{
@Autowired
private
ISweetAnswerService
sweetAnswerService
;
@GetMapping
(
"info"
)
@ApiOperation
(
"获取答题记录详情"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"phone"
,
value
=
"手机号"
,
required
=
true
)
})
public
ResponseDto
<
SweetAnswerVo
>
getInfo
(
@RequestParam
()
String
phone
)
{
return
sweetAnswerService
.
getInfo
(
phone
);
}
@PostMapping
(
"create"
)
@ApiOperation
(
"添加答题记录"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"phone"
,
value
=
"手机号"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"answerJson"
,
value
=
"答案json"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"imgUrl"
,
value
=
"图片地址"
,
required
=
true
),
})
public
ResponseDto
<
Boolean
>
add
(
@RequestParam
()
String
phone
,
@RequestParam
()
String
answerJson
,
@RequestParam
()
String
imgUrl
)
{
return
sweetAnswerService
.
create
(
phone
,
answerJson
,
imgUrl
);
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetAppletController.java
View file @
768c7610
...
...
@@ -8,6 +8,7 @@ import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import
com.liquidnet.service.sweet.entity.SweetManualNotify
;
import
com.liquidnet.service.sweet.entity.SweetManualShop
;
import
com.liquidnet.service.sweet.entity.SweetRichtext
;
import
com.liquidnet.service.sweet.utils.ObjectUtil
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.vo.SweetArtistsRelationVo
;
import
com.liquidnet.service.sweet.vo.SweetManualShopAllVo
;
...
...
@@ -35,7 +36,7 @@ public class SweetAppletController {
})
public
ResponseDto
<
List
<
SweetManualAppletDto
>>
timeSelect
(
@RequestParam
String
name
)
{
List
<
SweetManualAppletDto
>
dto
=
redisDataUtils
.
getPushList
();
List
<
SweetManualAppletDto
>
vo
=
new
ArrayList
<>
();
List
<
SweetManualAppletDto
>
vo
=
ObjectUtil
.
getSweetManualAppletDtoList
();
for
(
SweetManualAppletDto
item
:
dto
)
{
if
(
item
.
getTitle
().
contains
(
name
))
{
vo
.
add
(
item
);
...
...
@@ -90,8 +91,8 @@ public class SweetAppletController {
@RequestParam
(
required
=
false
)
Integer
size
,
@RequestParam
String
uid
)
{
List
<
SweetManualArtistListDto
>
allReturnArtist
=
new
Array
List
();
List
<
SweetManualArtistListDto
>
returnArtist
=
new
Array
List
();
List
<
SweetManualArtistListDto
>
allReturnArtist
=
ObjectUtil
.
getSweetManualArtistListDto
List
();
List
<
SweetManualArtistListDto
>
returnArtist
=
ObjectUtil
.
getSweetManualArtistListDto
List
();
SweetManualArtistList2Dto
data
=
redisDataUtils
.
getTimeList
(
manualId
);
SweetArtistsRelationVo
relationData
=
redisDataUtils
.
getArtistsRelationRedisVo
(
uid
,
manualId
);
...
...
@@ -296,9 +297,9 @@ public class SweetAppletController {
public
ResponseDto
<
SweetManualShopAllVo
>
manualShop
(
@RequestParam
String
manualId
)
{
List
<
SweetManualShop
>
shopList
=
redisDataUtils
.
getManualShopRedisData
(
manualId
);
List
<
SweetManualShop
>
recommend
=
new
ArrayList
<>
();
List
<
SweetManualShop
>
eat
=
new
ArrayList
<>
();
List
<
SweetManualShop
>
play
=
new
ArrayList
<>
();
List
<
SweetManualShop
>
recommend
=
ObjectUtil
.
getSweetManualShopList
();
List
<
SweetManualShop
>
eat
=
ObjectUtil
.
getSweetManualShopList
();
List
<
SweetManualShop
>
play
=
ObjectUtil
.
getSweetManualShopList
();
SweetManualShopAllVo
vo
=
SweetManualShopAllVo
.
getNew
();
for
(
SweetManualShop
item
:
shopList
)
{
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetAppletMdskController.java
View file @
768c7610
...
...
@@ -4,6 +4,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.dto.*
;
import
com.liquidnet.service.sweet.entity.*
;
import
com.liquidnet.service.sweet.utils.ObjectUtil
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.utils.RedisMDSKDataUtils
;
import
com.liquidnet.service.sweet.vo.SweetArtistsRelationVo
;
...
...
@@ -36,7 +37,7 @@ public class SweetAppletMdskController {
})
public
ResponseDto
<
List
<
SweetManualAppletMDSKDto
>>
timeSelect
(
@RequestParam
String
name
)
{
List
<
SweetManualAppletMDSKDto
>
dto
=
redisDataUtils
.
getPushList
();
List
<
SweetManualAppletMDSKDto
>
vo
=
new
ArrayList
<>
();
List
<
SweetManualAppletMDSKDto
>
vo
=
ObjectUtil
.
getSweetManualAppletMDSKDtoList
();
for
(
SweetManualAppletMDSKDto
item
:
dto
)
{
if
(
item
.
getTitle
().
contains
(
name
))
{
vo
.
add
(
item
);
...
...
@@ -91,8 +92,8 @@ public class SweetAppletMdskController {
@RequestParam
(
required
=
false
)
Integer
size
,
@RequestParam
String
uid
)
{
List
<
SweetManualArtistListMDSKDto
>
allReturnArtist
=
new
Array
List
();
List
<
SweetManualArtistListMDSKDto
>
returnArtist
=
new
Array
List
();
List
<
SweetManualArtistListMDSKDto
>
allReturnArtist
=
ObjectUtil
.
getSweetManualArtistListMDSKDto
List
();
List
<
SweetManualArtistListMDSKDto
>
returnArtist
=
ObjectUtil
.
getSweetManualArtistListMDSKDto
List
();
SweetManualArtistList2MDSKDto
data
=
redisDataUtils
.
getTimeList
(
manualId
);
SweetArtistsRelationVo
relationData
=
redisDataUtils
.
getArtistsRelationRedisVo
(
uid
,
manualId
);
...
...
@@ -240,9 +241,9 @@ public class SweetAppletMdskController {
if
(
vo
.
getWatchList
()
!=
null
)
{
watchSize
=
vo
.
getWatchList
().
size
();
}
HashMap
<
String
,
Object
>
map
=
CollectionUtil
.
mapStringObject
();
map
.
put
(
"signSize"
,
signSize
);
map
.
put
(
"watchSize"
,
watchSize
);
HashMap
<
String
,
Object
>
map
=
CollectionUtil
.
mapStringObject
();
map
.
put
(
"signSize"
,
signSize
);
map
.
put
(
"watchSize"
,
watchSize
);
return
ResponseDto
.
success
(
map
);
}
...
...
@@ -297,9 +298,9 @@ public class SweetAppletMdskController {
public
ResponseDto
<
SweetManualShopMdskAllVo
>
manualShop
(
@RequestParam
String
manualId
)
{
List
<
SweetManualShopMdsk
>
shopList
=
redisDataUtils
.
getManualShopRedisData
(
manualId
);
List
<
SweetManualShopMdsk
>
recommend
=
new
ArrayList
<>
();
List
<
SweetManualShopMdsk
>
eat
=
new
ArrayList
<>
();
List
<
SweetManualShopMdsk
>
play
=
new
ArrayList
<>
();
List
<
SweetManualShopMdsk
>
recommend
=
ObjectUtil
.
getSweetManualShopMdskList
();
List
<
SweetManualShopMdsk
>
eat
=
ObjectUtil
.
getSweetManualShopMdskList
();
List
<
SweetManualShopMdsk
>
play
=
ObjectUtil
.
getSweetManualShopMdskList
();
SweetManualShopMdskAllVo
vo
=
SweetManualShopMdskAllVo
.
getNew
();
for
(
SweetManualShopMdsk
item
:
shopList
)
{
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetWechatLoginController.java
View file @
768c7610
...
...
@@ -26,7 +26,7 @@ public class SweetWechatLoginController {
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"code"
,
value
=
"微信code"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"encryptedData"
,
value
=
"encryptedData"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"iv"
,
value
=
"iv"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"Integer"
,
name
=
"type"
,
value
=
"1草莓 2五百里 3mdsk"
),
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"Integer"
,
name
=
"type"
,
value
=
"1草莓 2五百里 3mdsk
4正在
"
),
})
public
ResponseDto
userInfo
(
@RequestParam
()
String
code
,
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetWechatTemplateController.java
View file @
768c7610
...
...
@@ -20,7 +20,7 @@ public class SweetWechatTemplateController {
@GetMapping
(
"send"
)
@ApiOperation
(
"发送模版消息"
)
public
ResponseDto
send
()
{
return
sweetTemplateService
.
sendMsg
();
return
sweetTemplateService
.
send
Remind
Msg
();
}
@PostMapping
(
"remind"
)
...
...
@@ -38,4 +38,20 @@ public class SweetWechatTemplateController {
return
sweetTemplateService
.
remind
(
openId
,
unionId
,
performancesId
);
}
@PostMapping
(
"followStatus"
)
@ApiOperation
(
"获取关注状态"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"unionId"
,
value
=
"微信unionId"
,
required
=
true
),
})
public
ResponseDto
followStatus
(
@RequestParam
()
String
unionId
)
{
boolean
status
=
sweetTemplateService
.
followStatus
(
unionId
);
if
(
status
)
{
return
ResponseDto
.
success
(
1
);
}
else
{
return
ResponseDto
.
success
(
2
);
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/entity/SweetAnswer.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 答题表
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SweetAnswer
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* answer_id
*/
private
String
answerId
;
/**
* 手机号
*/
private
String
phone
;
/**
* 答案json
*/
private
String
answerJson
;
/**
* 图片
*/
private
String
imgUrl
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
private
static
final
SweetAnswer
obj
=
new
SweetAnswer
();
public
static
SweetAnswer
getNew
()
{
try
{
return
(
SweetAnswer
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
SweetAnswer
();
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/entity/SweetRemind.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 提醒记录表
* </p>
*
* @author jiangxiulong
* @since 2021-08-13
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SweetRemind
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* remind_id
*/
private
String
remindId
;
/**
* openId
*/
@TableField
(
"openId"
)
private
String
openId
;
/**
* unionId
*/
@TableField
(
"unionId"
)
private
String
unionId
;
/**
* 演出id
*/
@TableField
(
"performancesId"
)
private
String
performancesId
;
/**
* 是否推送 1未推送 2已推送
*/
private
Integer
isPush
;
/**
* 推送时间
*/
private
String
pushTime
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
private
static
final
SweetRemind
obj
=
new
SweetRemind
();
public
static
SweetRemind
getNew
()
{
try
{
return
(
SweetRemind
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
SweetRemind
();
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/entity/SweetWechatUser.java
View file @
768c7610
...
...
@@ -96,6 +96,11 @@ public class SweetWechatUser implements Serializable {
@TableField
(
"subscribeScene"
)
private
String
subscribeScene
;
/**
* 是否取消关注
*/
private
Integer
isCancel
;
/**
* 创建时间
*/
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/SubscribeHandler.java
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
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.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.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.service.impl.SweetWechatTemplateServiceImpl
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
...
...
@@ -18,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.Map
;
/**
...
...
@@ -35,11 +41,16 @@ public class SubscribeHandler implements WxMpMessageHandler {
private
SweetWechatUserMapper
sweetWechatUserMapper
;
@Autowired
private
RedisDataUtils
redisDataUtils
;
@Autowired
private
QueueUtils
queueUtils
;
@Autowired
private
SweetWechatTemplateServiceImpl
sweetWechatTemplateService
;
@Override
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
WxSessionManager
sessionManager
)
throws
WxErrorException
{
log
.
info
(
"接收到一个
扫码
订阅事件:[{}]"
,
wxMessage
.
toString
());
log
.
info
(
"接收到一个订阅事件:[{}]"
,
wxMessage
.
toString
());
// 1、获取微信用户信息
WxMpUser
wxMpUser
=
wxMpService
.
getUserService
().
userInfo
(
wxMessage
.
getFromUser
());
if
(
null
==
wxMpUser
)
{
...
...
@@ -48,7 +59,7 @@ public class SubscribeHandler implements WxMpMessageHandler {
}
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
.
setOpenId
(
wxMpUser
.
getOpenId
());
sweetWechatUser
.
setUnionId
(
wxMpUser
.
getUnionId
());
...
...
@@ -64,19 +75,22 @@ public class SubscribeHandler implements WxMpMessageHandler {
sweetWechatUser
.
setSubscribeScene
(
wxMpUser
.
getSubscribeScene
());
if
(
null
==
userInfo
)
{
sweetWechatUser
.
setUserId
(
IDGenerator
.
nextSnowId
());
sweetWechatUserMapper
.
insert
(
sweetWechatUser
);
}
else
{
sweetWechatUser
.
setUpdatedAt
(
LocalDateTime
.
now
());
sweetWechatUserMapper
.
update
(
sweetWechatUser
,
Wrappers
.
lambdaUpdate
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getUserId
,
userInfo
.
getUserId
()));
}
String
unionId
=
wxMpUser
.
getUnionId
();
if
(!
unionId
.
isEmpty
())
{
if
(
null
!=
userInfo
)
{
sweetWechatUser
.
setMid
(
userInfo
.
getMid
());
sweetWechatUser
.
setUserId
(
userInfo
.
getUserId
());
sweetWechatUser
.
setCreatedAt
(
userInfo
.
getCreatedAt
());
}
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
();
LocalDateTime
now
=
LocalDateTime
.
now
();
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user.insert"
));
sqlsDataA
.
add
(
new
Object
[]{
sweetWechatUser
.
getUserId
(),
sweetWechatUser
.
getOpenId
(),
sweetWechatUser
.
getUnionId
(),
sweetWechatUser
.
getNickname
(),
sweetWechatUser
.
getSexDesc
(),
sweetWechatUser
.
getSex
(),
sweetWechatUser
.
getHeadImgUrl
(),
sweetWechatUser
.
getLanguage
(),
sweetWechatUser
.
getCountry
(),
sweetWechatUser
.
getProvince
(),
sweetWechatUser
.
getCity
(),
sweetWechatUser
.
getSubscribeTime
(),
sweetWechatUser
.
getSubscribeScene
()
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
// 入缓存
redisDataUtils
.
setSweetWechatUser
(
sweetWechatUser
);
//发送模版消息
sweetWechatTemplateService
.
subscribeSend
(
sweetWechatUser
);
}
return
null
;
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/UnsubscribeHandler.java
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
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.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.session.WxSessionManager
;
...
...
@@ -7,8 +14,12 @@ import me.chanjar.weixin.mp.api.WxMpMessageHandler;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlMessage
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage
;
import
me.chanjar.weixin.mp.bean.result.WxMpUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.Map
;
/**
...
...
@@ -23,10 +34,42 @@ import java.util.Map;
@Slf4j
public
class
UnsubscribeHandler
implements
WxMpMessageHandler
{
@Autowired
private
SweetWechatUserMapper
sweetWechatUserMapper
;
@Autowired
private
RedisDataUtils
redisDataUtils
;
@Autowired
private
QueueUtils
queueUtils
;
@Override
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
WxSessionManager
sessionManager
)
throws
WxErrorException
{
log
.
info
(
"接收到一个扫码取消订阅事件:[{}]"
,
wxMessage
.
toString
());
log
.
info
(
"接收到一个取消订阅事件:[{}]"
,
wxMessage
.
toString
());
// 1、获取微信用户信息
WxMpUser
wxMpUser
=
wxMpService
.
getUserService
().
userInfo
(
wxMessage
.
getFromUser
());
if
(
null
==
wxMpUser
)
{
log
.
warn
(
"从微信公众号获取用户(FromUser)信息:[{}]失败."
,
wxMessage
.
getFromUser
());
return
null
;
}
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
// 删除用户信息
String
sweetWechatUserUnionid
=
redisDataUtils
.
getSweetWechatUserUnionid
(
wxMpUser
.
getOpenId
());
if
(
null
!=
sweetWechatUserUnionid
&&
!
sweetWechatUserUnionid
.
isEmpty
())
{
SweetWechatUser
userInfo
=
redisDataUtils
.
getSweetWechatUser
(
sweetWechatUserUnionid
);
if
(
null
!=
userInfo
)
{
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
();
LocalDateTime
now
=
LocalDateTime
.
now
();
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user.update"
));
sqlsDataA
.
add
(
new
Object
[]{
2
,
now
,
sweetWechatUserUnionid
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_USER_INSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
redisDataUtils
.
delSweetWechatUser
(
sweetWechatUserUnionid
,
wxMpUser
.
getOpenId
());
}
}
return
null
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/mapper/SweetAnswerMapper.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.sweet.entity.SweetAnswer
;
/**
* <p>
* 答题表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
public
interface
SweetAnswerMapper
extends
BaseMapper
<
SweetAnswer
>
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/mapper/SweetRemindMapper.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.sweet.entity.SweetRemind
;
/**
* <p>
* 提醒记录表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-08-13
*/
public
interface
SweetRemindMapper
extends
BaseMapper
<
SweetRemind
>
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/ISweetAnswerService.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.entity.SweetAnswer
;
import
com.liquidnet.service.sweet.vo.SweetAnswerVo
;
/**
* <p>
* 答题表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
public
interface
ISweetAnswerService
extends
IService
<
SweetAnswer
>
{
ResponseDto
<
SweetAnswerVo
>
getInfo
(
String
phone
);
ResponseDto
<
Boolean
>
create
(
String
phone
,
String
answerJson
,
String
imgUrl
);
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/ISweetRemindService.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.sweet.entity.SweetRemind
;
/**
* <p>
* 提醒记录表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-08-13
*/
public
interface
ISweetRemindService
extends
IService
<
SweetRemind
>
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetAnswerServiceImpl.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
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.sweet.entity.SweetAnswer
;
import
com.liquidnet.service.sweet.mapper.SweetAnswerMapper
;
import
com.liquidnet.service.sweet.service.ISweetAnswerService
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.vo.SweetAnswerVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
/**
* <p>
* 答题表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Service
public
class
SweetAnswerServiceImpl
extends
ServiceImpl
<
SweetAnswerMapper
,
SweetAnswer
>
implements
ISweetAnswerService
{
@Autowired
private
SweetAnswerMapper
sweetAnswerMapper
;
@Autowired
private
RedisDataUtils
redisDataUtils
;
@Autowired
QueueUtils
queueUtils
;
@Override
public
ResponseDto
<
SweetAnswerVo
>
getInfo
(
String
phone
)
{
SweetAnswerVo
sweetAnswerVo
=
redisDataUtils
.
getSweetAnswer
(
phone
);
return
ResponseDto
.
success
(
sweetAnswerVo
);
}
@Override
public
ResponseDto
<
Boolean
>
create
(
String
phone
,
String
answerJson
,
String
imgUrl
)
{
SweetAnswer
sweetAnswer
=
SweetAnswer
.
getNew
();
sweetAnswer
.
setAnswerId
(
IDGenerator
.
nextSnowId
());
sweetAnswer
.
setPhone
(
phone
);
sweetAnswer
.
setAnswerJson
(
answerJson
);
sweetAnswer
.
setImgUrl
(
imgUrl
);
// sweetAnswerMapper.insert(sweetAnswer);
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
Object
[]>
sqlsDataA
=
CollectionUtil
.
linkedListObjectArr
();
LocalDateTime
now
=
LocalDateTime
.
now
();
sqls
.
add
(
SqlMapping
.
get
(
"sweet_answer.insert"
));
sqlsDataA
.
add
(
new
Object
[]{
sweetAnswer
.
getAnswerId
(),
phone
,
answerJson
,
imgUrl
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
ANSWERINSERT_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
SweetAnswerVo
sweetAnswerVo
=
SweetAnswerVo
.
getNew
().
copy
(
sweetAnswer
);
redisDataUtils
.
setSweetAnswer
(
sweetAnswerVo
);
return
ResponseDto
.
success
();
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetRemindServiceImpl.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.service.sweet.entity.SweetRemind
;
import
com.liquidnet.service.sweet.mapper.SweetRemindMapper
;
import
com.liquidnet.service.sweet.service.ISweetRemindService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 提醒记录表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-08-13
*/
@Service
public
class
SweetRemindServiceImpl
extends
ServiceImpl
<
SweetRemindMapper
,
SweetRemind
>
implements
ISweetRemindService
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatCallbackServiceImpl.java
View file @
768c7610
...
...
@@ -70,10 +70,10 @@ public class SweetWechatCallbackServiceImpl {
.
end
();
// 取消关注事件
/*
router.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT)
router
.
rule
().
async
(
false
).
msgType
(
WxConsts
.
XmlMsgType
.
EVENT
)
.
event
(
WxConsts
.
EventType
.
UNSUBSCRIBE
)
.
handler
(
unsubscribeHandler
)
.end();
*/
.
end
();
return
router
;
}
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatLoginServiceImpl.java
View file @
768c7610
...
...
@@ -7,6 +7,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import
cn.binarywang.wx.miniapp.bean.WxMaUserInfo
;
import
cn.binarywang.wx.miniapp.config.WxMaConfig
;
import
cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.ResponseDto
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -44,6 +45,11 @@ public class SweetWechatLoginServiceImpl {
@Value
(
"${liquidnet.wechat.applet.mdsk.secret}"
)
private
String
mdskSecret
;
@Value
(
"${liquidnet.wechat.applet.zhengzai.appid}"
)
private
String
zhengzaiAppid
;
@Value
(
"${liquidnet.wechat.applet.zhengzai.secret}"
)
private
String
zhengzaiSecret
;
public
ResponseDto
userInfo
(
String
code
,
String
encryptedData
,
String
iv
,
Integer
type
)
{
log
.
info
(
"\n参数code:[{}] "
,
code
);
log
.
info
(
"\n参数encryptedData:[{}] "
,
encryptedData
);
...
...
@@ -65,6 +71,10 @@ public class SweetWechatLoginServiceImpl {
appId
=
mdskAppid
;
appSecret
=
mdskSecret
;
break
;
case
4
:
appId
=
zhengzaiAppid
;
appSecret
=
zhengzaiSecret
;
break
;
}
WxMaConfig
wxMaConfig
=
wxMaConfig
(
appId
,
appSecret
);
WxMaService
wxMaService
=
wxMaService
(
wxMaConfig
);
...
...
@@ -85,7 +95,7 @@ public class SweetWechatLoginServiceImpl {
String
unionId
=
sessionInfo
.
getUnionid
();
String
openId
=
sessionInfo
.
getOpenid
();
HashMap
userInfo
=
new
HashMap
();
HashMap
<
String
,
Object
>
userInfo
=
CollectionUtil
.
mapStringObject
();
userInfo
.
put
(
"unionId"
,
unionId
);
userInfo
.
put
(
"openId"
,
openId
);
userInfo
.
put
(
"getPhoneNumber"
,
wxMaPhoneNumberInfo
.
getPhoneNumber
());
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatTemplateServiceImpl.java
View file @
768c7610
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/ObjectUtil.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
utils
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.sweet.dto.SweetManualAppletDto
;
import
com.liquidnet.service.sweet.dto.SweetManualAppletMDSKDto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistListDto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistListMDSKDto
;
import
com.liquidnet.service.sweet.entity.SweetManualShop
;
import
com.liquidnet.service.sweet.entity.SweetManualShopMdsk
;
import
java.util.ArrayList
;
public
class
ObjectUtil
{
private
static
final
ArrayList
<
SweetManualAppletDto
>
sweetManualAppletDtoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetManualArtistListDto
>
sweetManualArtistListDtoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetManualShop
>
sweetManualShopList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetManualAppletMDSKDto
>
sweetManualAppletMDSKDtoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetManualArtistListMDSKDto
>
sweetManualArtistListMDSKDtoList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetManualShopMdsk
>
sweetManualShopMDSKList
=
new
ArrayList
<>();
public
static
ArrayList
<
SweetManualAppletDto
>
getSweetManualAppletDtoList
()
{
return
(
ArrayList
<
SweetManualAppletDto
>)
sweetManualAppletDtoList
.
clone
();
}
public
static
ArrayList
<
SweetManualArtistListDto
>
getSweetManualArtistListDtoList
()
{
return
(
ArrayList
<
SweetManualArtistListDto
>)
sweetManualArtistListDtoList
.
clone
();
}
public
static
ArrayList
<
SweetManualShop
>
getSweetManualShopList
()
{
return
(
ArrayList
<
SweetManualShop
>)
sweetManualShopList
.
clone
();
}
public
static
ArrayList
<
SweetManualAppletMDSKDto
>
getSweetManualAppletMDSKDtoList
()
{
return
(
ArrayList
<
SweetManualAppletMDSKDto
>)
sweetManualAppletMDSKDtoList
.
clone
();
}
public
static
ArrayList
<
SweetManualArtistListMDSKDto
>
getSweetManualArtistListMDSKDtoList
()
{
return
(
ArrayList
<
SweetManualArtistListMDSKDto
>)
sweetManualArtistListMDSKDtoList
.
clone
();
}
public
static
ArrayList
<
SweetManualShopMdsk
>
getSweetManualShopMdskList
()
{
return
(
ArrayList
<
SweetManualShopMdsk
>)
sweetManualShopMDSKList
.
clone
();
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
768c7610
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
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.constant.MQConst
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
...
...
@@ -14,6 +15,7 @@ import com.liquidnet.service.sweet.dto.SweetManualArtistListDto;
import
com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto
;
import
com.liquidnet.service.sweet.entity.*
;
import
com.liquidnet.service.sweet.mapper.*
;
import
com.liquidnet.service.sweet.vo.SweetAnswerVo
;
import
com.liquidnet.service.sweet.vo.SweetArtistsRelationVo
;
import
com.liquidnet.service.sweet.vo.SweetRemindVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -97,7 +99,7 @@ public class RedisDataUtils {
Date
dateEnd
=
DateUtil
.
parse
(
sweetManualAppletDto
.
getTimeEnd
(),
DateUtil
.
DATE_SMALL_STR
);
Date
dateStart
=
DateUtil
.
parse
(
sweetManualAppletDto
.
getTimeStart
(),
DateUtil
.
DATE_SMALL_STR
);
int
intervalDay
=
(
int
)
DateUtil
.
intervalDays
(
dateStart
,
dateEnd
);
ArrayList
<
String
>
list
=
new
ArrayList
<>
();
ArrayList
<
String
>
list
=
CollectionUtil
.
arrayListString
();
list
.
add
(
DateUtil
.
format
(
dateStart
,
DateUtil
.
Formatter
.
yyyy_MM_dd
));
for
(
int
i
=
0
;
i
<
intervalDay
;
i
++)
{
list
.
add
(
DateUtil
.
format
(
DateUtil
.
addDay
(
dateStart
,
i
+
1
),
DateUtil
.
Formatter
.
yyyy_MM_dd
));
...
...
@@ -218,7 +220,7 @@ public class RedisDataUtils {
vo
.
setUid
(
uid
);
if
(
type
.
equalsIgnoreCase
(
"sign"
))
{
if
(
vo
.
getSignList
()
==
null
)
{
ArrayList
<
String
>
signList
=
new
ArrayList
<>
();
ArrayList
<
String
>
signList
=
CollectionUtil
.
arrayListString
();
signList
.
add
(
artistsId
);
vo
.
setSignList
(
signList
);
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user_relation.insert"
));
...
...
@@ -242,7 +244,7 @@ public class RedisDataUtils {
}
}
else
if
(
type
.
equalsIgnoreCase
(
"watch"
))
{
if
(
vo
.
getWatchList
()
==
null
)
{
ArrayList
<
String
>
watchList
=
new
ArrayList
<>
();
ArrayList
<
String
>
watchList
=
CollectionUtil
.
arrayListString
();
watchList
.
add
(
artistsId
);
vo
.
setWatchList
(
watchList
);
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user_relation.insert"
));
...
...
@@ -303,33 +305,38 @@ public class RedisDataUtils {
// 小程序演出提醒
public
void
setSweetRemind
(
String
openId
,
String
unionId
,
String
performancesId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_REMIND
.
concat
(
unionId
);
SweetRemindVo
sweetRemindVo
=
SweetRemindVo
.
getNew
();
sweetRemindVo
.
setRemindId
(
IDGenerator
.
nextSnowId
());
sweetRemindVo
.
setCreatedAt
(
DateUtil
.
getNowTime
());
sweetRemindVo
.
setPerformancesId
(
performancesId
);
sweetRemindVo
.
setUnionId
(
unionId
);
sweetRemindVo
.
setOpenId
(
openId
);
// if (null != performanceInfo) {
// sweetRemindVo.setFieldName(performanceInfo.getFieldName());
// sweetRemindVo.setTitle(performanceInfo.getTitle());
// sweetRemindVo.setTimeStart(performanceInfo.getTimeStart());
// sweetRemindVo.setSellTime(performanceInfo.getSellTime());
// }
redisUtil
.
set
(
redisKey
,
sweetRemindVo
);
}
public
void
delSweetRemind
(
String
unionId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_REMIND
.
concat
(
unionId
);
redisUtil
.
del
(
redisKey
);
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
));
}
// 正在现场服务号关注事件储存用户信息
public
void
setSweetWechatUser
(
SweetWechatUser
sweetWechatUser
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
sweetWechatUser
.
getUnionId
());
String
redisKeyUnid
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_UNIONID
.
concat
(
sweetWechatUser
.
getOpenId
());
redisUtil
.
set
(
redisKey
,
sweetWechatUser
);
redisUtil
.
set
(
redisKeyUnid
,
sweetWechatUser
.
getUnionId
());
}
public
String
getSweetWechatUserUnionid
(
String
openid
)
{
if
(
openid
.
isEmpty
())
{
return
null
;
}
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_UNIONID
.
concat
(
openid
);
return
(
String
)
redisUtil
.
get
(
redisKey
);
}
public
SweetWechatUser
getSweetWechatUser
(
String
unionid
)
{
if
(
unionid
.
isEmpty
())
{
return
null
;
...
...
@@ -337,6 +344,14 @@ public class RedisDataUtils {
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
unionid
);
return
(
SweetWechatUser
)
redisUtil
.
get
(
redisKey
);
}
public
void
delSweetWechatUser
(
String
unionid
,
String
openid
)
{
if
(!
unionid
.
isEmpty
())
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
unionid
);
redisUtil
.
del
(
redisKey
);
String
redisKeyUnid
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_UNIONID
.
concat
(
openid
);
redisUtil
.
del
(
redisKeyUnid
);
}
}
// 艺人详情
public
SweetArtists
setArtistsDetails
(
String
artistsId
)
{
...
...
@@ -377,4 +392,15 @@ public class RedisDataUtils {
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
LUCK_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
}
// 答案
public
void
setSweetAnswer
(
SweetAnswerVo
sweetAnswerVo
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_ANSWER_PHONE
.
concat
(
sweetAnswerVo
.
getPhone
());
redisUtil
.
set
(
redisKey
,
sweetAnswerVo
);
}
public
SweetAnswerVo
getSweetAnswer
(
String
phone
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_ANSWER_PHONE
.
concat
(
phone
);
SweetAnswerVo
sweetAnswerVo
=
(
SweetAnswerVo
)
redisUtil
.
get
(
redisKey
);
return
sweetAnswerVo
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisMDSKDataUtils.java
View file @
768c7610
...
...
@@ -92,7 +92,7 @@ public class RedisMDSKDataUtils {
Date
dateEnd
=
DateUtil
.
parse
(
sweetManualAppletDto
.
getTimeEnd
(),
DateUtil
.
DATE_SMALL_STR
);
Date
dateStart
=
DateUtil
.
parse
(
sweetManualAppletDto
.
getTimeStart
(),
DateUtil
.
DATE_SMALL_STR
);
int
intervalDay
=
(
int
)
DateUtil
.
intervalDays
(
dateStart
,
dateEnd
);
ArrayList
<
String
>
list
=
new
ArrayList
<>
();
ArrayList
<
String
>
list
=
CollectionUtil
.
arrayListString
();
list
.
add
(
DateUtil
.
format
(
dateStart
,
DateUtil
.
Formatter
.
yyyy_MM_dd
));
for
(
int
i
=
0
;
i
<
intervalDay
;
i
++)
{
list
.
add
(
DateUtil
.
format
(
DateUtil
.
addDay
(
dateStart
,
i
+
1
),
DateUtil
.
Formatter
.
yyyy_MM_dd
));
...
...
@@ -213,7 +213,7 @@ public class RedisMDSKDataUtils {
vo
.
setUid
(
uid
);
if
(
type
.
equalsIgnoreCase
(
"sign"
))
{
if
(
vo
.
getSignList
()
==
null
)
{
ArrayList
<
String
>
signList
=
new
ArrayList
<>
();
ArrayList
<
String
>
signList
=
CollectionUtil
.
arrayListString
();
signList
.
add
(
artistsId
);
vo
.
setSignList
(
signList
);
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user_relation_mdsk.insert"
));
...
...
@@ -237,7 +237,7 @@ public class RedisMDSKDataUtils {
}
}
else
if
(
type
.
equalsIgnoreCase
(
"watch"
))
{
if
(
vo
.
getWatchList
()
==
null
)
{
ArrayList
<
String
>
watchList
=
new
ArrayList
<>
();
ArrayList
<
String
>
watchList
=
CollectionUtil
.
arrayListString
();
watchList
.
add
(
artistsId
);
vo
.
setWatchList
(
watchList
);
sqls
.
add
(
SqlMapping
.
get
(
"sweet_user_relation_mdsk.insert"
));
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/vo/SweetAnswerVo.java
0 → 100644
View file @
768c7610
package
com
.
liquidnet
.
service
.
sweet
.
vo
;
import
com.liquidnet.service.sweet.entity.SweetAnswer
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
@Data
public
class
SweetAnswerVo
implements
Serializable
,
Cloneable
{
/**
* 手机号
*/
private
String
phone
;
/**
* 答案json
*/
private
String
answerJson
;
/**
* 图片
*/
private
String
imgUrl
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
private
static
final
SweetAnswerVo
obj
=
new
SweetAnswerVo
();
public
static
SweetAnswerVo
getNew
()
{
try
{
return
(
SweetAnswerVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
SweetAnswerVo
();
}
}
public
SweetAnswerVo
copy
(
SweetAnswer
source
)
{
if
(
null
==
source
)
return
this
;
this
.
setPhone
(
source
.
getPhone
());
this
.
setAnswerJson
(
source
.
getAnswerJson
());
this
.
setImgUrl
(
source
.
getImgUrl
());
this
.
setCreatedAt
(
source
.
getCreatedAt
());
this
.
setUpdatedAt
(
source
.
getUpdatedAt
());
return
this
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/vo/SweetRemindVo.java
View file @
768c7610
...
...
@@ -9,6 +9,7 @@ public class SweetRemindVo implements Serializable, Cloneable {
private
String
performancesId
;
private
String
openId
;
private
String
unionId
;
private
String
remindId
;
/*private String title;
private String timeStart;
private String sellTime;
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/com/liquidnet/service/sweet/mapper/SweetAnswerMapper.xml
0 → 100644
View file @
768c7610
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.sweet.mapper.SweetAnswerMapper"
>
</mapper>
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/com/liquidnet/service/sweet/mapper/SweetRemindMapper.xml
0 → 100644
View file @
768c7610
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.sweet.mapper.SweetRemindMapper"
>
</mapper>
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/sqlmap.properties
View file @
768c7610
...
...
@@ -59,3 +59,11 @@ 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_answer.insert
=
INSERT INTO sweet_answer (answer_id,phone,answer_json,img_url) VALUES (?,?,?,?)
# --------------------------关注/取消服务号的用户信息--------------------------
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