记得上下班打卡 | 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
97b0ec2d
Commit
97b0ec2d
authored
Sep 27, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/template_message' into pre
parents
9be7372f
4d33731d
Changes
31
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
1288 additions
and
8 deletions
+1288
-8
TicketCreateParam.java
.../liquidnet/service/kylin/dto/param/TicketCreateParam.java
+0
-1
pom.xml
liquidnet-bus-api/liquidnet-service-sweet-api/pom.xml
+34
-0
WechatMaConfigure.java
...com/liquidnet/service/sweet/config/WechatMaConfigure.java
+156
-0
WechatMpConfigure.java
...com/liquidnet/service/sweet/config/WechatMpConfigure.java
+91
-0
SweetConstant.java
...a/com/liquidnet/service/sweet/constant/SweetConstant.java
+84
-0
SweetOpenSendMsgParam.java
...uidnet/service/sweet/dto/param/SweetOpenSendMsgParam.java
+49
-0
pom.xml
liquidnet-bus-api/pom.xml
+1
-0
MQConst.java
...ain/java/com/liquidnet/service/base/constant/MQConst.java
+1
-0
pom.xml
liquidnet-bus-do/liquidnet-service-sweet-do/pom.xml
+15
-0
SweetAppletUser.java
...a/com/liquidnet/service/sweet/entity/SweetAppletUser.java
+79
-0
SweetWechatUser.java
...a/com/liquidnet/service/sweet/entity/SweetWechatUser.java
+124
-0
SweetAppletUserMapper.java
...liquidnet/service/sweet/mapper/SweetAppletUserMapper.java
+16
-0
SweetWechatUserMapper.xml
....liquidnet.service.sweet.mapper/SweetWechatUserMapper.xml
+5
-0
pom.xml
liquidnet-bus-do/pom.xml
+1
-0
pom.xml
...ice-consumer-all/liquidnet-service-consumer-sweet/pom.xml
+12
-0
ServiceConsumerSweetApplication.java
...om/liquidnet/service/ServiceConsumerSweetApplication.java
+2
-0
ConsumerSweetTemplateMsgStreamConfig.java
...er/sweet/config/ConsumerSweetTemplateMsgStreamConfig.java
+77
-0
AbstractSqlRedisReceiver.java
...ice/consumer/sweet/receiver/AbstractSqlRedisReceiver.java
+0
-3
ConsumerSweetTemplateMsgReceiver.java
...umer/sweet/receiver/ConsumerSweetTemplateMsgReceiver.java
+75
-0
SweetWechatTemplateMsgServiceImpl.java
...sweet/service/impl/SweetWechatTemplateMsgServiceImpl.java
+135
-0
RedisDataUtils.java
...iquidnet/service/consumer/sweet/utils/RedisDataUtils.java
+25
-0
KylinOrderTicketsServiceImpl.java
...vice/kylin/service/impl/KylinOrderTicketsServiceImpl.java
+2
-2
SweetOpenSendMsgParam.java
...om/liquidnet/service/order/dto/SweetOpenSendMsgParam.java
+61
-0
TemplateOrderParam.java
...a/com/liquidnet/service/order/dto/TemplateOrderParam.java
+40
-0
KylinOrderTicketsServiceImpl.java
...vice/order/service/impl/KylinOrderTicketsServiceImpl.java
+30
-1
redis_queue_create.txt
...rvice/liquidnet-service-sweet/docu/redis_queue_create.txt
+5
-1
WechatMaConfigure.java
...com/liquidnet/service/sweet/config/WechatMaConfigure.java
+14
-0
SweetWechatTemplateController.java
...rvice/sweet/controller/SweetWechatTemplateController.java
+9
-0
SweetAppletUser.java
...a/com/liquidnet/service/sweet/entity/SweetAppletUser.java
+79
-0
SweetOpenSendMsgParam.java
.../liquidnet/service/sweet/param/SweetOpenSendMsgParam.java
+49
-0
SweetWechatTemplateServiceImpl.java
...ce/sweet/service/impl/SweetWechatTemplateServiceImpl.java
+17
-0
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/TicketCreateParam.java
View file @
97b0ec2d
...
...
@@ -110,7 +110,6 @@ public class TicketCreateParam implements Serializable {
kylinTickets
.
setCreatedAt
(
createdAt
);
if
(
updatedAt
!=
null
)
kylinTickets
.
setUpdatedAt
(
updatedAt
);
//TODO 各种说明文案
return
kylinTickets
;
}
...
...
liquidnet-bus-api/liquidnet-service-sweet-api/pom.xml
0 → 100644
View file @
97b0ec2d
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
liquidnet-bus-api
</artifactId>
<groupId>
com.liquidnet
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
liquidnet-service-sweet-api
</artifactId>
<dependencies>
<dependency>
<groupId>
com.github.binarywang
</groupId>
<artifactId>
weixin-java-miniapp
</artifactId>
<version>
4.1.0
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-redis
</artifactId>
<version>
2.2.3.RELEASE
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.github.binarywang
</groupId>
<artifactId>
weixin-java-mp
</artifactId>
<version>
4.1.0
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/config/WechatMaConfigure.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
config
;
import
cn.binarywang.wx.miniapp.api.WxMaService
;
import
cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl
;
import
cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl
;
import
me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
javax.annotation.PostConstruct
;
@Configuration
public
class
WechatMaConfigure
{
private
static
String
appletAppidZhengzai
;
private
static
String
appletSecretZhengzai
;
private
static
String
appletAppidStrawberry
;
private
static
String
appletSecretStrawberry
;
private
static
String
appletAppidFive
;
private
static
String
appletSecretFive
;
private
static
String
appletAppidMdsk
;
private
static
String
appletSecretMdsk
;
@Value
(
"${liquidnet.wechat.applet.zhengzai.appid}"
)
public
void
setAppletAppidZhengzai
(
String
appletAppidZhengzai
)
{
WechatMaConfigure
.
appletAppidZhengzai
=
appletAppidZhengzai
;
}
@Value
(
"${liquidnet.wechat.applet.zhengzai.secret}"
)
public
void
setAppletSecretZhengzai
(
String
appletSecretZhengzai
)
{
WechatMaConfigure
.
appletSecretZhengzai
=
appletSecretZhengzai
;
}
@Value
(
"${liquidnet.wechat.applet.strawberry.appid}"
)
public
void
setAppletAppidStrawberry
(
String
appletAppidStrawberry
)
{
WechatMaConfigure
.
appletAppidStrawberry
=
appletAppidStrawberry
;
}
@Value
(
"${liquidnet.wechat.applet.strawberry.secret}"
)
public
void
setAppletSecretStrawberry
(
String
appletSecretStrawberry
)
{
WechatMaConfigure
.
appletSecretStrawberry
=
appletSecretStrawberry
;
}
@Value
(
"${liquidnet.wechat.applet.five.appid}"
)
public
void
setAppletAppidFive
(
String
appletAppidFive
)
{
WechatMaConfigure
.
appletAppidFive
=
appletAppidFive
;
}
@Value
(
"${liquidnet.wechat.applet.five.secret}"
)
public
void
setAppletSecretFive
(
String
appletSecretFive
)
{
WechatMaConfigure
.
appletSecretFive
=
appletSecretFive
;
}
@Value
(
"${liquidnet.wechat.applet.mdsk.appid}"
)
public
void
setAppletAppidMdsk
(
String
appletAppidMdsk
)
{
WechatMaConfigure
.
appletAppidMdsk
=
appletAppidMdsk
;
}
@Value
(
"${liquidnet.wechat.applet.mdsk.secret}"
)
public
void
setAppletSecretMdsk
(
String
appletSecretMdsk
)
{
WechatMaConfigure
.
appletSecretMdsk
=
appletSecretMdsk
;
}
private
WxMaService
wxMaAppletZhengzaiService
;
private
WxMaService
wxMaAppletStrawberryService
;
private
WxMaService
wxMaAppletFiveService
;
private
WxMaService
wxMaAppletMdskService
;
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
@PostConstruct
public
void
init
()
{
wxMaAppletZhengzaiService
=
new
WxMaServiceImpl
()
{
{
RedisTemplateWxRedisOps
redisTemplateWxRedisOps
=
new
RedisTemplateWxRedisOps
(
stringRedisTemplate
);
WxMaRedisBetterConfigImpl
wxMaDefaultConfig
=
new
WxMaRedisBetterConfigImpl
(
redisTemplateWxRedisOps
,
"sweet:accessToken:applet:zhengzai"
);
// WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig
.
setAppid
(
appletAppidZhengzai
);
wxMaDefaultConfig
.
setSecret
(
appletSecretZhengzai
);
wxMaDefaultConfig
.
setMsgDataFormat
(
"JSON"
);
this
.
setWxMaConfig
(
wxMaDefaultConfig
);
}
};
wxMaAppletStrawberryService
=
new
WxMaServiceImpl
()
{
{
RedisTemplateWxRedisOps
redisTemplateWxRedisOps
=
new
RedisTemplateWxRedisOps
(
stringRedisTemplate
);
WxMaRedisBetterConfigImpl
wxMaDefaultConfig
=
new
WxMaRedisBetterConfigImpl
(
redisTemplateWxRedisOps
,
"sweet:accessToken:applet:strawberry"
);
// WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig
.
setAppid
(
appletAppidStrawberry
);
wxMaDefaultConfig
.
setSecret
(
appletSecretStrawberry
);
wxMaDefaultConfig
.
setMsgDataFormat
(
"JSON"
);
this
.
setWxMaConfig
(
wxMaDefaultConfig
);
}
};
wxMaAppletFiveService
=
new
WxMaServiceImpl
()
{
{
RedisTemplateWxRedisOps
redisTemplateWxRedisOps
=
new
RedisTemplateWxRedisOps
(
stringRedisTemplate
);
WxMaRedisBetterConfigImpl
wxMaDefaultConfig
=
new
WxMaRedisBetterConfigImpl
(
redisTemplateWxRedisOps
,
"sweet:accessToken:applet:five"
);
// WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig
.
setAppid
(
appletAppidFive
);
wxMaDefaultConfig
.
setSecret
(
appletSecretFive
);
wxMaDefaultConfig
.
setMsgDataFormat
(
"JSON"
);
this
.
setWxMaConfig
(
wxMaDefaultConfig
);
}
};
wxMaAppletMdskService
=
new
WxMaServiceImpl
()
{
{
RedisTemplateWxRedisOps
redisTemplateWxRedisOps
=
new
RedisTemplateWxRedisOps
(
stringRedisTemplate
);
WxMaRedisBetterConfigImpl
wxMaDefaultConfig
=
new
WxMaRedisBetterConfigImpl
(
redisTemplateWxRedisOps
,
"sweet:accessToken:applet:mdsk"
);
// WxMaDefaultConfigImpl wxMaDefaultConfig = new WxMaDefaultConfigImpl();
wxMaDefaultConfig
.
setAppid
(
appletAppidMdsk
);
wxMaDefaultConfig
.
setSecret
(
appletSecretMdsk
);
wxMaDefaultConfig
.
setMsgDataFormat
(
"JSON"
);
this
.
setWxMaConfig
(
wxMaDefaultConfig
);
}
};
}
public
WxMaService
getWxMaService
(
Integer
anum
)
{
switch
(
anum
)
{
case
4
:
return
wxMaAppletZhengzaiService
;
case
1
:
return
wxMaAppletStrawberryService
;
case
2
:
return
wxMaAppletFiveService
;
case
3
:
return
wxMaAppletMdskService
;
}
return
null
;
}
public
String
getWxMaAppid
(
Integer
anum
)
{
switch
(
anum
)
{
case
4
:
return
appletAppidZhengzai
;
case
1
:
return
appletAppidStrawberry
;
case
2
:
return
appletAppidFive
;
case
3
:
return
appletAppidMdsk
;
}
return
""
;
}
}
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/config/WechatMpConfigure.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
config
;
import
me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.api.impl.WxMpServiceImpl
;
import
me.chanjar.weixin.mp.config.impl.WxMpRedisConfigImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
javax.annotation.PostConstruct
;
@Configuration
public
class
WechatMpConfigure
{
private
static
String
appidZhengzai
;
private
static
String
secretZhengzai
;
private
static
String
tokenZhengzai
;
private
static
String
aeskeyZhengzai
;
private
static
String
appidModernsky
;
private
static
String
secretModernsky
;
@Value
(
"${liquidnet.wechat.service.zhengzai.appid}"
)
public
void
setAppidZhengzai
(
String
appidZhengzai
)
{
WechatMpConfigure
.
appidZhengzai
=
appidZhengzai
;
}
@Value
(
"${liquidnet.wechat.service.zhengzai.secret}"
)
public
void
setSecretZhengzai
(
String
secretZhengzai
)
{
WechatMpConfigure
.
secretZhengzai
=
secretZhengzai
;
}
@Value
(
"${liquidnet.wechat.service.zhengzai.token}"
)
public
void
setTokenZhengzai
(
String
tokenZhengzai
)
{
WechatMpConfigure
.
tokenZhengzai
=
tokenZhengzai
;
}
@Value
(
"${liquidnet.wechat.service.zhengzai.aeskey}"
)
public
void
setAeskeyZhengzai
(
String
aeskeyZhengzai
)
{
WechatMpConfigure
.
aeskeyZhengzai
=
aeskeyZhengzai
;
}
@Value
(
"${liquidnet.wechat.service.modernsky.appid}"
)
public
void
setAppidModernsky
(
String
appidModernsky
)
{
WechatMpConfigure
.
appidModernsky
=
appidModernsky
;
}
@Value
(
"${liquidnet.wechat.service.modernsky.secret}"
)
public
void
setSecretModernsky
(
String
secretModernsky
)
{
WechatMpConfigure
.
secretModernsky
=
secretModernsky
;
}
private
WxMpService
wxMpZhengzaiService
;
private
WxMpService
wxMpModernskyService
;
@Autowired
private
StringRedisTemplate
stringRedisTemplate
;
@PostConstruct
public
void
init
()
{
wxMpZhengzaiService
=
new
WxMpServiceImpl
()
{
{
RedisTemplateWxRedisOps
redisTemplateWxRedisOps
=
new
RedisTemplateWxRedisOps
(
stringRedisTemplate
);
WxMpRedisConfigImpl
wxMpDefaultConfig
=
new
WxMpRedisConfigImpl
(
redisTemplateWxRedisOps
,
"sweet:accessToken:service:zhengzai"
);
wxMpDefaultConfig
.
setAppId
(
appidZhengzai
);
wxMpDefaultConfig
.
setSecret
(
secretZhengzai
);
wxMpDefaultConfig
.
setToken
(
tokenZhengzai
);
wxMpDefaultConfig
.
setAesKey
(
aeskeyZhengzai
);
this
.
setWxMpConfigStorage
(
wxMpDefaultConfig
);
}
};
wxMpModernskyService
=
new
WxMpServiceImpl
()
{
{
RedisTemplateWxRedisOps
redisTemplateWxRedisOps
=
new
RedisTemplateWxRedisOps
(
stringRedisTemplate
);
WxMpRedisConfigImpl
wxMpDefaultConfig
=
new
WxMpRedisConfigImpl
(
redisTemplateWxRedisOps
,
"sweet:accessToken:service:modernsky"
);
wxMpDefaultConfig
.
setAppId
(
appidModernsky
);
wxMpDefaultConfig
.
setSecret
(
secretModernsky
);
this
.
setWxMpConfigStorage
(
wxMpDefaultConfig
);
}
};
}
public
WxMpService
getWxMpService
(
Integer
pnum
)
{
switch
(
pnum
)
{
case
1
:
return
wxMpZhengzaiService
;
case
2
:
return
wxMpModernskyService
;
}
return
null
;
}
}
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/constant/SweetConstant.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
constant
;
/**
*
*/
public
class
SweetConstant
{
public
final
static
String
REDIS_KEY_SWEET_MANUAL_PUSH_LIST
=
"sweet:manual:pushList"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_TIME_LIST
=
"sweet:manual:timeList:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_NOTIFY_LIST
=
"sweet:manual:notify:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_RICH_TEXT
=
"sweet:manual:richText:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_SORT
=
"sweet:manual:sort:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_ARTISTS_RELATION
=
"sweet:artists:relation:uid:"
;
public
final
static
String
REDIS_KEY_SWEET_ARTISTS_DETAILS
=
"sweet:artists:details:"
;
public
final
static
String
REDIS_KEY_SWEET_SHOP
=
"sweet:artists:shop:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_LUCK_DRAW
=
"sweet:luckDraw:mobile:"
;
public
final
static
String
REDIS_KEY_SWEET_LUCK_DRAW_RESULT
=
"sweet:luckDraw:num:"
;
public
final
static
String
REDIS_KEY_SWEET_LUCK_DRAW_SURPLUS
=
"sweet:luckDraw:num:"
;
//中奖库存
public
final
static
String
REDIS_KEY_SWEET_LUCK_DRAW_ALL
=
"sweet:luckDraw:num:"
;
//中奖总量
public
final
static
String
REDIS_KEY_SWEET_LUCK_DRAW_PRESENT_MOBILE
=
"sweet:luckDraw:present:mobile:"
;
//中奖库存
public
final
static
String
REDIS_KEY_SWEET_WECHAT_USER_INFO
=
"sweet:wechatUser:unionId:"
;
public
final
static
String
REDIS_KEY_SWEET_WECHAT_USER_INFO_STR
=
"sweet:wechatUser:unionIdStr:"
;
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"),
// signingTime("签售时间","signingTime"),
// foodAndAmusement("吃喝玩乐","foodAndAmusement"),
// siteMap("现场地图","siteMap"),
// howToReach("如何到达","howToReach"),
// relatedProduct ("官方售卖","relatedProduct"),
// officialSupport("官方支持","officialSupport"),
// audienceNotice("观众须知","audienceNotice"),
// preventionGuidelines("防疫指南","preventionGuidelines"),
// notice("通知","notice"),
// strategy("观演攻略","strategy");
//
// private String message;
// private String code;
//
// private ManualPosition(String message, String code) {
// this.message = message;
// this.code = code;
// }
//
// public void setCode(String code) {
// this.code = code;
// }
//
// public String getCode() {
// return code;
// }
//
// public void setMessage(String message) {
// this.message = message;
// }
//
// public String getMessage() {
// return message;
// }
//
// public static String getMessage(String code) {
// for (ManualPosition c : ManualPosition.values()) {
// if (c.getCode().equalsIgnoreCase(code)) {
// return c.message;
// }
// }
// return null;
// }
// }
public
final
static
String
REDIS_KEY_SWEET_MDSK_MANUAL_PUSH_LIST
=
"sweet:mdsk:manual:pushList"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_MANUAL_TIME_LIST
=
"sweet:mdsk:manual:timeList:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_MANUAL_NOTIFY_LIST
=
"sweet:mdsk:manual:notify:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_MANUAL_RICH_TEXT
=
"sweet:mdsk:manual:richText:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_MANUAL_SORT
=
"sweet:mdsk:manual:sort:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_ARTISTS_RELATION
=
"sweet:mdsk:artists:relation:uid:"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_ARTISTS_DETAILS
=
"sweet:mdsk:artists:details:"
;
public
final
static
String
REDIS_KEY_SWEET_MDSK_SHOP
=
"sweet:mdsk:artists:shop:manual:"
;
}
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/dto/param/SweetOpenSendMsgParam.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.*
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"SweetOpenSendMsgParam"
,
description
=
"发送模版消息公共接口入参"
)
@Data
public
class
SweetOpenSendMsgParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
675588088506034208L
;
@ApiModelProperty
(
position
=
11
,
required
=
true
,
allowableValues
=
"1,2"
,
value
=
"发送目标类型 1正在服务号 2摩登服务号"
)
@NotNull
(
message
=
"sendTargetType不能为空"
)
@Min
(
value
=
1
,
message
=
"sendTargetType无效"
)
@Max
(
value
=
2
,
message
=
"sendTargetType无效"
)
private
Integer
sendTargetType
;
@ApiModelProperty
(
position
=
12
,
required
=
true
,
value
=
"模版消息ID"
,
example
=
"y-j82V1TYhlTH1j8QscuDPcPQtNiDtENb7N5IZMBvqU"
)
@NotBlank
(
message
=
"templateId不能为空"
)
private
String
templateId
;
@ApiModelProperty
(
position
=
13
,
required
=
true
,
value
=
"模版消息数据"
,
example
=
"{\"first\": \"感谢关注「正在现场」服务号\", \"keyword2\": \"4006-310-750\"}"
)
@NotBlank
(
message
=
"templateData不能为空"
)
private
String
templateData
;
@ApiModelProperty
(
position
=
14
,
required
=
true
,
allowableValues
=
"1,2,3,4,5"
,
value
=
"点击跳转类型 1草莓小程序 2五百里小程序 3mdsk小程序 4正在小程序 5url"
)
@NotNull
(
message
=
"jumpType不能为空"
)
@Min
(
value
=
1
,
message
=
"jumpType无效"
)
@Max
(
value
=
5
,
message
=
"jumpType无效"
)
private
Integer
jumpType
;
@ApiModelProperty
(
position
=
15
,
value
=
"跳转url"
,
example
=
"www.zhengzai.tv"
)
private
String
jumpUrl
;
@ApiModelProperty
(
position
=
16
,
allowableValues
=
"false,true"
,
value
=
"是否需要前端配合处理跳转,直接跳转jumpAppletPagePath为false,true时需要前端根据状态码做跳转处理"
)
private
Boolean
jumpAppletUsePath
;
@ApiModelProperty
(
position
=
17
,
value
=
"跳转小程序需要的某页地址"
,
example
=
"pages/webview?query=lottery"
)
private
String
jumpAppletPagePath
;
/*@ApiModelProperty(position = 18, required = true, value = "openId", example = "oUpkkuNe4yuVs77aaKFvuvpgNOSw")
@NotBlank(message = "openId不能为空")
private String openId;*/
@ApiModelProperty
(
position
=
18
,
required
=
true
,
value
=
"phone"
,
example
=
"15888888888"
)
@NotBlank
(
message
=
"phone不能为空"
)
private
String
phone
;
}
liquidnet-bus-api/pom.xml
View file @
97b0ec2d
...
...
@@ -17,6 +17,7 @@
<module>
liquidnet-service-adam-api
</module>
<module>
liquidnet-service-kylin-api
</module>
<module>
liquidnet-service-dragon-api
</module>
<module>
liquidnet-service-sweet-api
</module>
<module>
liquidnet-service-chime-api
</module>
<module>
liquidnet-service-candy-api
</module>
</modules>
...
...
liquidnet-bus-common/liquidnet-common-service-base/src/main/java/com/liquidnet/service/base/constant/MQConst.java
View file @
97b0ec2d
...
...
@@ -82,6 +82,7 @@ public class MQConst {
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"
,
"小程序登录记录用户解密后信息"
),
SWEET_TEMPLATE_MSG
(
"sweet:stream:rk.sweetTemplateMsg"
,
"group.sweetTemplateMsg"
,
"发送模版消息"
),
;
private
final
String
key
;
...
...
liquidnet-bus-do/liquidnet-service-sweet-do/pom.xml
0 → 100644
View file @
97b0ec2d
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
liquidnet-bus-do
</artifactId>
<groupId>
com.liquidnet
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
liquidnet-service-sweet-do
</artifactId>
</project>
\ No newline at end of file
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/java/com/liquidnet/service/sweet/entity/SweetAppletUser.java
0 → 100644
View file @
97b0ec2d
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-09-22
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SweetAppletUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* user_id
*/
private
String
userId
;
/**
* openId
*/
@TableField
(
"openId"
)
private
String
openId
;
/**
* unionId
*/
@TableField
(
"unionId"
)
private
String
unionId
;
/**
* 手机号
*/
@TableField
(
"getPhoneNumber"
)
private
String
getPhoneNumber
;
/**
* 手机号
*/
@TableField
(
"getPurePhoneNumber"
)
private
String
getPurePhoneNumber
;
/**
* 地区码
*/
@TableField
(
"getCountryCode"
)
private
String
getCountryCode
;
/**
* 1草莓 2五百里 3mdsk 4正在
*/
private
Integer
type
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
}
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/java/com/liquidnet/service/sweet/entity/SweetWechatUser.java
0 → 100644
View file @
97b0ec2d
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-03
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SweetWechatUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* user_id
*/
private
String
userId
;
/**
* openId
*/
@TableField
(
"openId"
)
private
String
openId
;
/**
* unionId
*/
@TableField
(
"unionId"
)
private
String
unionId
;
/**
* 昵称
*/
private
String
nickname
;
/**
* 性别
*/
@TableField
(
"sexDesc"
)
private
String
sexDesc
;
/**
* 性别 男1
*/
private
Integer
sex
;
/**
* 头像
*/
@TableField
(
"headImgUrl"
)
private
String
headImgUrl
;
/**
* zh_CN
*/
private
String
language
;
/**
* 国家
*/
private
String
country
;
/**
* 省
*/
private
String
province
;
/**
* 市
*/
private
String
city
;
/**
* 关注时间
*/
@TableField
(
"subscribeTime"
)
private
LocalDateTime
subscribeTime
;
/**
* ADD_SCENE_SEARCH 关注方式
*/
@TableField
(
"subscribeScene"
)
private
String
subscribeScene
;
/**
* 是否取消关注
*/
private
Integer
isCancel
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
private
static
final
SweetWechatUser
obj
=
new
SweetWechatUser
();
public
static
SweetWechatUser
getNew
()
{
try
{
return
(
SweetWechatUser
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
SweetWechatUser
();
}
}
}
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/java/com/liquidnet/service/sweet/mapper/SweetAppletUserMapper.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.sweet.entity.SweetAppletUser
;
/**
* <p>
* 小程序登录记录用户解密后信息表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-09-22
*/
public
interface
SweetAppletUserMapper
extends
BaseMapper
<
SweetAppletUser
>
{
}
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/resources/com.liquidnet.service.sweet.mapper/SweetWechatUserMapper.xml
0 → 100644
View file @
97b0ec2d
<?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.SweetWechatUserMapper"
>
</mapper>
liquidnet-bus-do/pom.xml
View file @
97b0ec2d
...
...
@@ -19,6 +19,7 @@
<module>
liquidnet-service-kylin-do
</module>
<module>
liquidnet-service-adam-do
</module>
<module>
liquidnet-service-dragon-do
</module>
<module>
liquidnet-service-sweet-do
</module>
<module>
liquidnet-service-candy-do
</module>
</modules>
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/pom.xml
View file @
97b0ec2d
...
...
@@ -40,6 +40,18 @@
<artifactId>
liquidnet-common-sms
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-sweet-do
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-sweet-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/ServiceConsumerSweetApplication.java
View file @
97b0ec2d
package
com
.
liquidnet
.
service
;
import
lombok.extern.slf4j.Slf4j
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.boot.SpringApplication
;
...
...
@@ -13,6 +14,7 @@ import java.util.Arrays;
@Slf4j
@SpringBootApplication
(
scanBasePackages
=
{
"com.liquidnet"
})
@MapperScan
(
basePackages
=
{
"com.liquidnet.service.sweet.mapper"
})
public
class
ServiceConsumerSweetApplication
implements
CommandLineRunner
{
@Autowired
private
Environment
environment
;
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/config/ConsumerSweetTemplateMsgStreamConfig.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
consumer
.
sweet
.
config
;
import
com.liquidnet.service.consumer.sweet.receiver.ConsumerSweetTemplateMsgReceiver
;
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_TEMPLATE_MSG
;
@Configuration
public
class
ConsumerSweetTemplateMsgStreamConfig
{
@Autowired
ConsumerSweetTemplateMsgReceiver
consumerSweetTemplateMsgReceiver
;
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
receiveSqlTemplateMsg
(
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
listenerContainer
,
int
t
)
{
return
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
SWEET_TEMPLATE_MSG
.
getGroup
(),
SWEET_TEMPLATE_MSG
.
name
()
+
t
),
StreamOffset
.
create
(
SWEET_TEMPLATE_MSG
.
getKey
(),
ReadOffset
.
lastConsumed
()),
consumerSweetTemplateMsgReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public
Subscription
subscriptionSqlTemplateMsg
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlTemplateMsg
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlTemplateMsg2
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlTemplateMsg
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionSqlTemplateMsg3
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveSqlTemplateMsg
(
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 @
97b0ec2d
package
com
.
liquidnet
.
service
.
consumer
.
sweet
.
receiver
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.SqlMapping
;
...
...
@@ -20,8 +19,6 @@ public abstract class AbstractSqlRedisReceiver implements StreamListener<String,
public
IBaseDao
baseDao
;
@Autowired
StringRedisTemplate
stringRedisTemplate
;
@Autowired
private
RedisUtil
redisUtil
;
@Override
public
void
onMessage
(
MapRecord
<
String
,
String
,
String
>
message
)
{
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/receiver/ConsumerSweetTemplateMsgReceiver.java
0 → 100644
View file @
97b0ec2d
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.constant.MQConst
;
import
com.liquidnet.service.consumer.sweet.service.impl.SweetWechatTemplateMsgServiceImpl
;
import
com.liquidnet.service.sweet.dto.param.SweetOpenSendMsgParam
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
ConsumerSweetTemplateMsgReceiver
extends
AbstractSqlRedisReceiver
{
@Autowired
SweetWechatTemplateMsgServiceImpl
sweetWechatTemplateService
;
@Override
protected
String
getRedisStreamKey
()
{
return
MQConst
.
SweetQueue
.
SWEET_TEMPLATE_MSG
.
getKey
();
}
@Override
protected
String
getRedisStreamGroup
()
{
return
MQConst
.
SweetQueue
.
SWEET_TEMPLATE_MSG
.
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
{
SweetOpenSendMsgParam
sweetOpenSendMsgParam
=
JsonUtils
.
fromJson
(
msg
,
SweetOpenSendMsgParam
.
class
);
if
(
sweetOpenSendMsgParam
==
null
)
{
aBoolean
=
true
;
}
else
{
aBoolean
=
sweetWechatTemplateService
.
openSendMsg
(
sweetOpenSendMsgParam
);
}
}
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-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/service/impl/SweetWechatTemplateMsgServiceImpl.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
consumer
.
sweet
.
service
.
impl
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.service.consumer.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.config.WechatMaConfigure
;
import
com.liquidnet.service.sweet.config.WechatMpConfigure
;
import
com.liquidnet.service.sweet.dto.param.SweetOpenSendMsgParam
;
import
com.liquidnet.service.sweet.entity.SweetAppletUser
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.mapper.SweetAppletUserMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.bean.template.WxMpTemplateData
;
import
me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
* 公众号模版消息 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-07-27
*/
@Slf4j
@Service
public
class
SweetWechatTemplateMsgServiceImpl
{
@Autowired
WechatMpConfigure
wechatMpConfigure
;
@Autowired
WechatMaConfigure
wechatMaConfigure
;
@Autowired
private
SweetAppletUserMapper
sweetAppletUserMapper
;
@Autowired
private
RedisDataUtils
redisDataUtils
;
public
Boolean
openSendMsg
(
SweetOpenSendMsgParam
param
)
{
String
openId
=
getOpenId
(
param
.
getPhone
(),
param
.
getSendTargetType
());
if
(
openId
.
isEmpty
())
{
return
true
;
}
WxMpTemplateMessage
templateMessage
=
null
;
if
(
param
.
getJumpType
()
==
5
)
{
templateMessage
=
getTemplateMessage
(
param
.
getTemplateId
(),
openId
,
param
.
getJumpUrl
());
}
else
{
templateMessage
=
getTemplateMessage
(
param
.
getTemplateId
(),
openId
,
param
.
getJumpType
(),
param
.
getJumpAppletPagePath
(),
param
.
getJumpAppletUsePath
());
}
// 添加模板数据
String
templateData
=
param
.
getTemplateData
();
JSONObject
templateDataJObj
=
JSONObject
.
parseObject
(
templateData
);
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
templateDataJObj
.
entrySet
())
{
templateMessage
.
addData
(
new
WxMpTemplateData
(
entry
.
getKey
(),
String
.
valueOf
(
entry
.
getValue
())));
}
String
msgId
=
sendTmpMsg
(
templateMessage
,
param
.
getSendTargetType
());
if
(
null
==
msgId
)
{
return
false
;
}
else
{
return
true
;
}
}
/**
* 获取templateMessage
*
* @param templateId
* @param openId
* @param url
* @return
*/
private
WxMpTemplateMessage
getTemplateMessage
(
String
templateId
,
String
openId
,
String
url
)
{
WxMpTemplateMessage
templateMessage
=
WxMpTemplateMessage
.
builder
()
.
toUser
(
openId
)
// 接收者openid
.
templateId
(
templateId
)
// 模板id
.
url
(
url
)
// 模板跳转链接
.
build
();
return
templateMessage
;
}
private
WxMpTemplateMessage
getTemplateMessage
(
String
templateId
,
String
openId
,
Integer
jumpType
,
String
jumpAppletPagePath
,
Boolean
jumpAppletUsePath
)
{
//配置小程序信息
WxMpTemplateMessage
.
MiniProgram
miniProgram
=
new
WxMpTemplateMessage
.
MiniProgram
();
miniProgram
.
setAppid
(
wechatMaConfigure
.
getWxMaAppid
(
jumpType
));
//小程序appid
miniProgram
.
setUsePath
(
jumpAppletUsePath
);
//true的话需要前端配合处理跳转
miniProgram
.
setPagePath
(
jumpAppletPagePath
);
//用户点击时需要跳转的小程序页面
WxMpTemplateMessage
templateMessage
=
WxMpTemplateMessage
.
builder
()
.
toUser
(
openId
)
// 接收者openid
.
templateId
(
templateId
)
// 模板id
.
miniProgram
(
miniProgram
)
// 模板跳转链接
.
build
();
return
templateMessage
;
}
private
String
getOpenId
(
String
phone
,
Integer
sendTargetType
)
{
// sendTargetType 将来如果加入其他服务号用获取不同openId
List
<
SweetAppletUser
>
sweetAppletUsers
=
sweetAppletUserMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetAppletUser
.
class
).
eq
(
SweetAppletUser:
:
getGetPurePhoneNumber
,
phone
));
if
(
CollectionUtils
.
isEmpty
(
sweetAppletUsers
))
{
log
.
info
(
"getOpenId没有此applet用户:[phone=[{}]"
,
phone
);
return
""
;
}
else
{
SweetAppletUser
sweetAppletUser
=
sweetAppletUsers
.
get
(
0
);
SweetWechatUser
userInfo
=
redisDataUtils
.
getSweetWechatUser
(
sweetAppletUser
.
getUnionId
());
if
(
null
==
userInfo
)
{
log
.
info
(
"getOpenId没有此WechatUser用户:[phone={},unionId={}]"
,
phone
,
sweetAppletUser
.
getUnionId
());
return
""
;
}
else
{
return
userInfo
.
getOpenId
();
}
}
}
private
String
sendTmpMsg
(
WxMpTemplateMessage
templateMessage
,
Integer
sendTargetType
)
{
String
msgId
=
null
;
try
{
// 发送模板消息
WxMpService
wxMpService
=
wechatMpConfigure
.
getWxMpService
(
sendTargetType
);
log
.
info
(
"sendTmpMsg-isAccessTokenExpired:[{}] "
,
wxMpService
.
getWxMpConfigStorage
().
isAccessTokenExpired
());
log
.
info
(
"sendTmpMsg-getAccessToken:[{}] "
,
wxMpService
.
getWxMpConfigStorage
().
getAccessToken
());
msgId
=
wxMpService
.
getTemplateMsgService
().
sendTemplateMsg
(
templateMessage
);
log
.
info
(
"模版消息发送成功:[msgId={}]"
,
msgId
);
}
catch
(
WxErrorException
e
)
{
log
.
error
(
"模版消息发送异常"
,
e
);
}
return
msgId
;
}
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-sweet/src/main/java/com/liquidnet/service/consumer/sweet/utils/RedisDataUtils.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
consumer
.
sweet
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
@Slf4j
public
class
RedisDataUtils
{
@Autowired
private
RedisUtil
redisUtil
;
public
SweetWechatUser
getSweetWechatUser
(
String
unionid
)
{
if
(
unionid
.
isEmpty
())
{
return
null
;
}
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
unionid
);
return
(
SweetWechatUser
)
redisUtil
.
get
(
redisKey
);
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsServiceImpl.java
View file @
97b0ec2d
...
...
@@ -21,10 +21,10 @@ import com.liquidnet.service.kylin.dto.vo.returns.*;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketsService
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
com.liquidnet.service.kylin.utils.ObjectUtil
;
import
com.liquidnet.service.kylin.utils.OrderUtils
;
import
com.liquidnet.service.kylin.utils.QueueUtils
;
import
com.mongodb.BasicDBObject
;
import
io.netty.util.internal.ObjectUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.bson.Document
;
...
...
@@ -66,13 +66,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
@Override
public
PageInfo
<
List
<
KylinOrderListVo
>>
orderList
()
{
//TODO 缺快递
PageInfo
<
List
<
KylinOrderListVo
>>
mPageInfo
=
null
;
String
uid
=
CurrentUtil
.
getCurrentUid
();
try
{
List
<
KylinOrderListVo
>
voList
=
dataUtils
.
getOrderList
(
uid
);
for
(
int
i
=
0
;
i
<
voList
.
size
();
i
++)
{
KylinOrderListVo
item
=
voList
.
get
(
i
);
item
.
setStatus
(
item
.
getStatus
());
Integer
orderExpressStatus
=
dataUtils
.
getOrderExpressInfo
(
item
.
getOrderTicketsId
());
item
.
setExpressStatus
(
orderExpressStatus
);
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/dto/SweetOpenSendMsgParam.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
order
.
dto
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"SweetOpenSendMsgParam"
,
description
=
"发送模版消息公共接口入参"
)
@Data
public
class
SweetOpenSendMsgParam
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
675588088506034208L
;
@ApiModelProperty
(
position
=
11
,
required
=
true
,
allowableValues
=
"1,2"
,
value
=
"发送目标类型 1正在服务号 2摩登服务号"
)
@NotNull
(
message
=
"sendTargetType不能为空"
)
@Min
(
value
=
1
,
message
=
"sendTargetType无效"
)
@Max
(
value
=
2
,
message
=
"sendTargetType无效"
)
private
Integer
sendTargetType
;
@ApiModelProperty
(
position
=
12
,
required
=
true
,
value
=
"模版消息ID"
,
example
=
"y-j82V1TYhlTH1j8QscuDPcPQtNiDtENb7N5IZMBvqU"
)
@NotBlank
(
message
=
"templateId不能为空"
)
private
String
templateId
;
@ApiModelProperty
(
position
=
13
,
required
=
true
,
value
=
"模版消息数据"
,
example
=
"{\"first\": \"感谢关注「正在现场」服务号\", \"keyword2\": \"4006-310-750\"}"
)
@NotBlank
(
message
=
"templateData不能为空"
)
private
String
templateData
;
@ApiModelProperty
(
position
=
14
,
required
=
true
,
allowableValues
=
"1,2,3,4,5"
,
value
=
"点击跳转类型 1草莓小程序 2五百里小程序 3mdsk小程序 4正在小程序 5url"
)
@NotNull
(
message
=
"jumpType不能为空"
)
@Min
(
value
=
1
,
message
=
"jumpType无效"
)
@Max
(
value
=
5
,
message
=
"jumpType无效"
)
private
Integer
jumpType
;
@ApiModelProperty
(
position
=
15
,
value
=
"跳转url"
,
example
=
"www.zhengzai.tv"
)
private
String
jumpUrl
;
@ApiModelProperty
(
position
=
16
,
allowableValues
=
"false,true"
,
value
=
"是否需要前端配合处理跳转,直接跳转jumpAppletPagePath为false,true时需要前端根据状态码做跳转处理"
)
private
Boolean
jumpAppletUsePath
;
@ApiModelProperty
(
position
=
17
,
value
=
"跳转小程序需要的某页地址"
,
example
=
"pages/webview?query=lottery"
)
private
String
jumpAppletPagePath
;
@ApiModelProperty
(
position
=
18
,
required
=
true
,
value
=
"openId"
,
example
=
"oUpkkuNe4yuVs77aaKFvuvpgNOSw"
)
@NotBlank
(
message
=
"openId不能为空"
)
private
String
openId
;
@ApiModelProperty
(
position
=
18
,
required
=
true
,
value
=
"phone"
,
example
=
"15888888888"
)
@NotBlank
(
message
=
"phone不能为空"
)
private
String
phone
;
private
static
final
SweetOpenSendMsgParam
obj
=
new
SweetOpenSendMsgParam
();
public
static
SweetOpenSendMsgParam
getNew
()
{
try
{
return
(
SweetOpenSendMsgParam
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
SweetOpenSendMsgParam
();
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/dto/TemplateOrderParam.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
order
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"SweetOpenSendMsgParam"
,
description
=
"发送模版消息公共接口入参"
)
@Data
public
class
TemplateOrderParam
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
675588088506034208L
;
private
String
first
;
private
String
keyword1
;
private
String
keyword2
;
private
String
keyword3
;
private
String
keyword4
;
private
String
remark
;
private
static
final
TemplateOrderParam
obj
=
new
TemplateOrderParam
();
public
static
TemplateOrderParam
getNew
()
{
try
{
return
(
TemplateOrderParam
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
TemplateOrderParam
();
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinOrderTicketsServiceImpl.java
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
order
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.sms.constant.SmsEnum
;
import
com.liquidnet.commons.lang.util.*
;
...
...
@@ -23,6 +24,8 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayInnerResultVo;
import
com.liquidnet.service.kylin.dto.vo.returns.PayResultVo
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService
;
import
com.liquidnet.service.order.dto.SweetOpenSendMsgParam
;
import
com.liquidnet.service.order.dto.TemplateOrderParam
;
import
com.liquidnet.service.order.utils.*
;
import
com.taobao.api.TaobaoClient
;
import
com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest
;
...
...
@@ -912,7 +915,33 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
.
setTemplateParam
(
"time"
,
time1
+
" "
+
time2
).
toJson
()
);
}
//模板消息
try
{
String
fieldName
=
performanceData
.
getFieldName
();
Integer
number
=
orderTicketData
.
getNumber
();
String
useTime
=
orderTicketData
.
getUseStart
();
String
performanceName
=
performanceData
.
getTitle
();
SweetOpenSendMsgParam
param
=
SweetOpenSendMsgParam
.
getNew
();
param
.
setSendTargetType
(
1
);
param
.
setTemplateId
(
"glzgM9PLgchlaenpXN5H3N9JDwV69a52R8H6z95hzrA"
);
TemplateOrderParam
templateOrderParam
=
TemplateOrderParam
.
getNew
();
templateOrderParam
.
setFirst
(
"您已购票成功"
);
templateOrderParam
.
setKeyword1
(
performanceName
);
templateOrderParam
.
setKeyword2
(
number
.
toString
());
templateOrderParam
.
setKeyword3
(
useTime
);
templateOrderParam
.
setKeyword4
(
fieldName
);
templateOrderParam
.
setRemark
(
"点击详情 查看更多票务信息"
);
param
.
setTemplateData
(
JSON
.
toJSONString
(
templateOrderParam
));
param
.
setJumpType
(
4
);
param
.
setJumpUrl
(
"http://m.zhengzai.tv/#/order/ticket/orderdetail?id="
+
orderTicketData
.
getOrderTicketsId
());
param
.
setJumpAppletPagePath
(
"/pages/webview?query=orderDetail&id="
+
orderTicketData
.
getOrderTicketsId
());
param
.
setJumpAppletUsePath
(
false
);
param
.
setPhone
(
orderTicketData
.
getUserMobile
());
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_TEMPLATE_MSG
.
getKey
(),
JsonUtils
.
toJson
(
param
));
}
catch
(
Exception
e
){
log
.
info
(
"下单消息模版错误"
,
e
);
}
// 大麦回调
// sycDamaiOrder(orderTickets.getOrderTicketsId(), orderTicketData.getIsMember());
}
...
...
liquidnet-bus-service/liquidnet-service-sweet/docu/redis_queue_create.txt
View file @
97b0ec2d
...
...
@@ -23,4 +23,8 @@ 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
XGROUP CREATE sweet:stream:rk.sweetAppletUserInsert group.sweetAppletUserInsert 0
-- 发送模版消息 --
XADD sweet:stream:rk.sweetTemplateMsg * 0 0
XGROUP CREATE sweet:stream:rk.sweetTemplateMsg group.sweetTemplateMsg 0
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/config/WechatMaConfigure.java
View file @
97b0ec2d
...
...
@@ -140,4 +140,18 @@ public class WechatMaConfigure {
}
return
null
;
}
public
String
getWxMaAppid
(
Integer
anum
)
{
switch
(
anum
)
{
case
4
:
return
appletAppidZhengzai
;
case
1
:
return
appletAppidStrawberry
;
case
2
:
return
appletAppidFive
;
case
3
:
return
appletAppidMdsk
;
}
return
""
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetWechatTemplateController.java
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
controller
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.param.SweetOpenSendMsgParam
;
import
com.liquidnet.service.sweet.service.impl.SweetWechatTemplateServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
...
...
@@ -9,6 +10,8 @@ import io.swagger.annotations.ApiOperation;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
@Api
(
tags
=
"公众号模版消息"
)
@RestController
@RequestMapping
(
"/wechatTemplate"
)
...
...
@@ -23,6 +26,12 @@ public class SweetWechatTemplateController {
return
sweetTemplateService
.
sendRemindMsg
();
}
@PostMapping
(
"openSend"
)
@ApiOperation
(
"发送模版消息公共接口"
)
public
ResponseDto
openSend
(
@Valid
@RequestBody
SweetOpenSendMsgParam
param
)
{
return
sweetTemplateService
.
openSendMsg
(
param
);
}
@PostMapping
(
"remind"
)
@ApiOperation
(
"提醒记录"
)
@ApiImplicitParams
({
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/entity/SweetAppletUser.java
0 → 100644
View file @
97b0ec2d
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-09-22
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SweetAppletUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* user_id
*/
private
String
userId
;
/**
* openId
*/
@TableField
(
"openId"
)
private
String
openId
;
/**
* unionId
*/
@TableField
(
"unionId"
)
private
String
unionId
;
/**
* 手机号
*/
@TableField
(
"getPhoneNumber"
)
private
String
getPhoneNumber
;
/**
* 手机号
*/
@TableField
(
"getPurePhoneNumber"
)
private
String
getPurePhoneNumber
;
/**
* 地区码
*/
@TableField
(
"getCountryCode"
)
private
String
getCountryCode
;
/**
* 1草莓 2五百里 3mdsk 4正在
*/
private
Integer
type
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/param/SweetOpenSendMsgParam.java
0 → 100644
View file @
97b0ec2d
package
com
.
liquidnet
.
service
.
sweet
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.*
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"SweetOpenSendMsgParam"
,
description
=
"发送模版消息公共接口入参"
)
@Data
public
class
SweetOpenSendMsgParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
675588088506034208L
;
@ApiModelProperty
(
position
=
11
,
required
=
true
,
allowableValues
=
"1,2"
,
value
=
"发送目标类型 1正在服务号 2摩登服务号"
)
@NotNull
(
message
=
"sendTargetType不能为空"
)
@Min
(
value
=
1
,
message
=
"sendTargetType无效"
)
@Max
(
value
=
2
,
message
=
"sendTargetType无效"
)
private
Integer
sendTargetType
;
@ApiModelProperty
(
position
=
12
,
required
=
true
,
value
=
"模版消息ID"
,
example
=
"y-j82V1TYhlTH1j8QscuDPcPQtNiDtENb7N5IZMBvqU"
)
@NotBlank
(
message
=
"templateId不能为空"
)
private
String
templateId
;
@ApiModelProperty
(
position
=
13
,
required
=
true
,
value
=
"模版消息数据"
,
example
=
"{\"first\": \"感谢关注「正在现场」服务号\", \"keyword2\": \"4006-310-750\"}"
)
@NotBlank
(
message
=
"templateData不能为空"
)
private
String
templateData
;
@ApiModelProperty
(
position
=
14
,
required
=
true
,
allowableValues
=
"1,2,3,4,5"
,
value
=
"点击跳转类型 1草莓小程序 2五百里小程序 3mdsk小程序 4正在小程序 5url"
)
@NotNull
(
message
=
"jumpType不能为空"
)
@Min
(
value
=
1
,
message
=
"jumpType无效"
)
@Max
(
value
=
5
,
message
=
"jumpType无效"
)
private
Integer
jumpType
;
@ApiModelProperty
(
position
=
15
,
value
=
"跳转url"
,
example
=
"www.zhengzai.tv"
)
private
String
jumpUrl
;
@ApiModelProperty
(
position
=
16
,
allowableValues
=
"false,true"
,
value
=
"是否需要前端配合处理跳转,直接跳转jumpAppletPagePath为false,true时需要前端根据状态码做跳转处理"
)
private
Boolean
jumpAppletUsePath
;
@ApiModelProperty
(
position
=
17
,
value
=
"跳转小程序需要的某页地址"
,
example
=
"pages/webview?query=lottery"
)
private
String
jumpAppletPagePath
;
/*@ApiModelProperty(position = 18, required = true, value = "openId", example = "oUpkkuNe4yuVs77aaKFvuvpgNOSw")
@NotBlank(message = "openId不能为空")
private String openId;*/
@ApiModelProperty
(
position
=
18
,
required
=
true
,
value
=
"phone"
,
example
=
"15888888888"
)
@NotBlank
(
message
=
"phone不能为空"
)
private
String
phone
;
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatTemplateServiceImpl.java
View file @
97b0ec2d
...
...
@@ -4,14 +4,19 @@ 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.JsonUtils
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.sweet.config.WechatMaConfigure
;
import
com.liquidnet.service.sweet.config.WechatMpConfigure
;
import
com.liquidnet.service.sweet.entity.SweetRemind
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.mapper.SweetRemindMapper
;
import
com.liquidnet.service.sweet.param.SweetOpenSendMsgParam
;
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
;
...
...
@@ -50,6 +55,8 @@ public class SweetWechatTemplateServiceImpl {
private
RedisDataUtils
redisDataUtils
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
QueueUtils
queueUtils
;
@Autowired
private
SweetRemindMapper
sweetRemindMapper
;
...
...
@@ -57,6 +64,15 @@ public class SweetWechatTemplateServiceImpl {
@Autowired
WechatMpConfigure
wechatMpConfigure
;
@Autowired
WechatMaConfigure
wechatMaConfigure
;
public
ResponseDto
openSendMsg
(
SweetOpenSendMsgParam
param
)
{
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_TEMPLATE_MSG
.
getKey
(),
JsonUtils
.
toJson
(
param
));
return
ResponseDto
.
success
();
}
public
ResponseDto
sendRemindMsg
()
{
// test
/*WxMpTemplateMessage templateMessage = getTemplateMessage("CNLDBZYQoDgTWudicx8WU81Jr9b6RyG9hmK4O0tpK-k", "oUpkkuNe4yuVs77aaKFvuvpgNOSw", h5Url.concat("/#/ticket/detail?id=").concat("111"));
...
...
@@ -246,4 +262,5 @@ public class SweetWechatTemplateServiceImpl {
return
false
;
}
}
}
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