Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
Z
zion
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
zhengfg
zion
Commits
175a5de1
提交
175a5de1
authored
12月 06, 2019
作者:
zgy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改商店排序
上级
2656a76d
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
382 行增加
和
18 行删除
+382
-18
pom.xml
pom.xml
+10
-5
FireBaseUtil.java
src/main/java/com/diaoyun/zion/master/util/FireBaseUtil.java
+226
-0
afrishop-c3ef7-firebase.json
src/main/resources/afrishop-c3ef7-firebase.json
+12
-0
TbCfStoreDao.xml
src/main/resources/mapper/TbCfStoreDao.xml
+13
-13
App.java
src/test/java/com/diaoyun/zion/App.java
+115
-0
PayTest.java
src/test/java/com/diaoyun/zion/PayTest.java
+6
-0
没有找到文件。
pom.xml
浏览文件 @
175a5de1
...
...
@@ -25,16 +25,21 @@
<dependencies>
<dependency>
<groupId>
com.yunpian.sdk
</groupId>
<artifactId>
yunpian-java-sdk
</artifactId>
<version>
1.2.7
</version>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-all
</artifactId>
<version>
4.1.43.Final
</version>
</dependency>
<dependency>
<groupId>
com.google.firebase
</groupId>
<artifactId>
firebase-admin
</artifactId>
<version>
6.5.0
</version>
</dependency>
<dependency>
<groupId>
com.yunpian.sdk
</groupId>
<artifactId>
yunpian-java-sdk
</artifactId>
<version>
1.2.7
</version>
</dependency>
<!--springframework.boot-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
src/main/java/com/diaoyun/zion/master/util/FireBaseUtil.java
0 → 100644
浏览文件 @
175a5de1
package
com
.
diaoyun
.
zion
.
master
.
util
;
import
com.google.auth.oauth2.GoogleCredentials
;
import
com.google.firebase.FirebaseApp
;
import
com.google.firebase.FirebaseOptions
;
import
com.google.firebase.messaging.*
;
import
org.junit.Test
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
/**
* @Auther: wudepeng
* @Date: 2019/12/05
* @Description:
*/
public
class
FireBaseUtil
{
//存放多个实例的Map
private
static
Map
<
String
,
FirebaseApp
>
firebaseAppMap
=
new
ConcurrentHashMap
<>();
//获取AndroidConfig.Builder对象
private
static
com
.
google
.
firebase
.
messaging
.
AndroidConfig
.
Builder
androidConfigBuilder
=
AndroidConfig
.
builder
();
//获取AndroidNotification.Builder对象
private
static
AndroidNotification
.
Builder
androidNotifiBuilder
=
AndroidNotification
.
builder
();
/**
* 判断SDK是否初始化
*
* @param appName
* @return
*/
public
static
boolean
isInit
(
String
appName
)
{
return
firebaseAppMap
.
get
(
appName
)
!=
null
;
}
/**
* 初始化SDK
*
* @param jsonPath JSON路径
* @param dataUrl firebase数据库
* @param appName APP名字
* @throws IOException
*/
public
static
void
initSDK
(
String
jsonPath
,
String
dataUrl
,
String
appName
)
throws
IOException
{
FileInputStream
serviceAccount
=
new
FileInputStream
(
jsonPath
);
FirebaseOptions
options
=
new
FirebaseOptions
.
Builder
()
.
setCredentials
(
GoogleCredentials
.
fromStream
(
serviceAccount
))
.
setDatabaseUrl
(
dataUrl
).
build
();
//初始化firebaseApp
FirebaseApp
firebaseApp
=
FirebaseApp
.
initializeApp
(
options
);
//存放
firebaseAppMap
.
put
(
appName
,
firebaseApp
);
}
/**
* 单设备推送
*
* @param appName 应用的名字
* @param token 注册token
* @param title 推送题目
* @param body 推送内容
* @return
* @throws FirebaseMessagingException
*/
public
static
void
pushSingle
(
String
appName
,
String
token
,
String
title
,
String
body
)
throws
FirebaseMessagingException
{
//获取实例
FirebaseApp
firebaseApp
=
firebaseAppMap
.
get
(
appName
);
//实例为空的情况
if
(
firebaseApp
==
null
)
{
return
;
}
//构建消息内容
Message
message
=
Message
.
builder
().
setNotification
(
new
Notification
(
title
,
body
))
.
setToken
(
token
)
.
build
();
//发送后,返回messageID
String
response
=
FirebaseMessaging
.
getInstance
(
firebaseApp
).
send
(
message
);
System
.
out
.
println
(
"单个设备推送成功 : "
+
response
);
}
/**
* 给设备订阅主题
*
* @param appName 应用的名字
* @param tokens 设备的token,最大1000个
* @param topic 要添加的主题
* @return
* @throws FirebaseMessagingException
*/
public
static
void
registrationTopic
(
String
appName
,
List
<
String
>
tokens
,
String
topic
)
throws
FirebaseMessagingException
{
//获取实例
FirebaseApp
firebaseApp
=
firebaseAppMap
.
get
(
appName
);
//实例不存在的情况
if
(
firebaseApp
==
null
)
{
return
;
}
//订阅,返回主题管理结果对象。
TopicManagementResponse
response
=
FirebaseMessaging
.
getInstance
(
firebaseApp
).
subscribeToTopic
(
tokens
,
topic
);
System
.
out
.
println
(
"添加设备主题,成功:"
+
response
.
getSuccessCount
()
+
",失败:"
+
response
.
getFailureCount
());
}
/**
* 取消设备的订阅主题
*
* @param appName 应用的名字
* @param tokens 设备的token,最大1000个
* @param topic 取消的主题
* @return
* @throws FirebaseMessagingException
*/
public
static
void
cancelTopic
(
String
appName
,
List
<
String
>
tokens
,
String
topic
)
throws
FirebaseMessagingException
{
//获取实例
FirebaseApp
firebaseApp
=
firebaseAppMap
.
get
(
appName
);
//实例不存在的情况
if
(
firebaseApp
==
null
)
{
return
;
}
//取消订阅,返回主题管理结果对象。
TopicManagementResponse
response
=
FirebaseMessaging
.
getInstance
(
firebaseApp
).
unsubscribeFromTopic
(
tokens
,
topic
);
System
.
out
.
println
(
"取消设备主题,成功:"
+
response
.
getSuccessCount
()
+
",失败:"
+
response
.
getFailureCount
());
}
/**
* 按主题推送
*
* @param appName 应用的名字
* @param topic 主题的名字
* @param title 消息题目
* @param body 消息体
* @return
* @throws FirebaseMessagingException
*/
public
static
void
sendTopicMes
(
String
appName
,
String
topic
,
String
title
,
String
body
)
throws
FirebaseMessagingException
{
//获取实例
FirebaseApp
firebaseApp
=
firebaseAppMap
.
get
(
appName
);
//实例不存在的情况
if
(
firebaseApp
==
null
)
{
return
;
}
//构建消息
Message
message
=
Message
.
builder
()
.
setNotification
(
new
Notification
(
title
,
body
))
.
setTopic
(
topic
)
.
build
();
//发送后,返回messageID
String
response
=
FirebaseMessaging
.
getInstance
(
firebaseApp
).
send
(
message
);
System
.
out
.
println
(
"主题推送成功: "
+
response
);
}
/**
* 单条Android设备推送消息(和pushSingle方法几乎没有区别)
*
* @param appName 应用的名字
* @param token 注册token
* @param title 推送题目
* @param body 推送内容
* @throws FirebaseMessagingException
*/
public
static
void
pushSingleToAndroid
(
String
appName
,
String
token
,
String
title
,
String
body
)
throws
FirebaseMessagingException
{
//获取实例
FirebaseApp
firebaseApp
=
firebaseAppMap
.
get
(
appName
);
//实例为空的情况
if
(
firebaseApp
==
null
)
{
return
;
}
androidConfigBuilder
.
setRestrictedPackageName
(
"io.telecomm.telecomm"
);
androidNotifiBuilder
.
setColor
(
"#55BEB7"
);
// 设置消息通知颜色
androidNotifiBuilder
.
setIcon
(
"https://www.shiku.co/images/favicon.png"
);
// 设置消息图标
androidNotifiBuilder
.
setTitle
(
title
);
// 设置消息标题
androidNotifiBuilder
.
setBody
(
body
);
// 设置消息内容
AndroidNotification
androidNotification
=
androidNotifiBuilder
.
build
();
androidConfigBuilder
.
setNotification
(
androidNotification
);
AndroidConfig
androidConfig
=
androidConfigBuilder
.
build
();
//构建消息
Message
message
=
Message
.
builder
()
.
setToken
(
token
)
.
setAndroidConfig
(
androidConfig
)
.
build
();
//发送后,返回messageID
String
response
=
FirebaseMessaging
.
getInstance
(
firebaseApp
).
send
(
message
);
System
.
out
.
println
(
"单个安卓设备推送成功 : "
+
response
);
}
/**
* Android按主题推送(和sendTopicMes方法几乎没有区别)
*
* @param appName 应用的名字
* @param topic 主题的名字
* @param title 消息题目
* @param body 消息体
* @return
* @throws FirebaseMessagingException
*/
public
static
void
sendTopicMesToAndroid
(
String
appName
,
String
topic
,
String
title
,
String
body
)
throws
FirebaseMessagingException
{
//获取实例
FirebaseApp
firebaseApp
=
firebaseAppMap
.
get
(
appName
);
//实例为空的情况
if
(
firebaseApp
==
null
)
{
return
;
}
androidNotifiBuilder
.
setColor
(
"#55BEB7"
);
// 设置消息通知颜色
androidNotifiBuilder
.
setIcon
(
"https://www.shiku.co/images/favicon.png"
);
// 设置消息图标
androidNotifiBuilder
.
setTitle
(
title
);
// 设置消息标题
androidNotifiBuilder
.
setBody
(
body
);
// 设置消息内容
AndroidNotification
androidNotification
=
androidNotifiBuilder
.
build
();
androidConfigBuilder
.
setNotification
(
androidNotification
);
AndroidConfig
androidConfig
=
androidConfigBuilder
.
build
();
//构建消息
Message
message
=
Message
.
builder
()
.
setTopic
(
topic
)
.
setAndroidConfig
(
androidConfig
)
.
build
();
String
response
=
FirebaseMessaging
.
getInstance
(
firebaseApp
).
send
(
message
);
System
.
out
.
println
(
"安卓主题推送成功: "
+
response
);
}
@Test
public
void
sendMessage
()
throws
FirebaseMessagingException
{
String
appName
=
"Afrishop"
;
String
token
=
"USYIOvmtbIe4dvdXwmfKQlCiwqqAILYA9LPcwlVfrmP0jYp"
;
String
title
=
"test"
;
String
body
=
"helloworld!"
;
pushSingle
(
appName
,
token
,
title
,
body
);
}
}
src/main/resources/afrishop-c3ef7-firebase.json
0 → 100644
浏览文件 @
175a5de1
{
"type"
:
"service_account"
,
"project_id"
:
"afrishop-c3ef7"
,
"private_key_id"
:
"2ddcfbe2bc788d49a7659c8ff40877d456df848c"
,
"private_key"
:
"-----BEGIN PRIVATE KEY-----
\n
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDgob0mXMEM6UAZ
\n
0UnThitmpU6piABkkF69tMzIjq2p1mkFdn8nf9rnYFbswGw/85lrNPEH0/Xgghik
\n
+XNIyQxowELVSnM71Qmwj2B0peGcOCDn8ugnyBlRiLDGP4fjW6HhJhOofDrE3Eh6
\n
K7ZzQXGtNsescULbsVESKXjMJ5otU0ER7VVGFPjgPJy+ZghVDPN2JrDP0gEePSsJ
\n
1vZYmRiPpfC+DRP2NLXH8UHRdupBX5xk1SXftmdhVzP9Z8QiHaqX0+UA/bKKwBkD
\n
UfVvd++WrugmBn6R7nOIz4Xm0Cpf+ZKo8HRPBXs1TMZ9Kjdix+QesgwtwwqoZ+ES
\n
FQJj3bhDAgMBAAECggEAASgkEroAjoH3AAsJX8r9lzo7tPjL07jAnCZ9tXyynUDK
\n
6qnJDtmENZPT7sUw6YVmIVy07w7i4cSZvuO/+bx7UWDIF1QaUtEOize5ze/6wPSz
\n
Cq7ADlBj/P0AuAyktQGITGIHUONO5CukPejSuDY6kSNKlPNCXmJD4h2PjzGXBCu6
\n
ndPFMWoZaeGH03Upzye74z1Xz5w0Hsi9OXEChSOM6jy/FWa9YfXTK0Ysx5wUttsd
\n
Os+nnNAWHYDW2E/r0dXHXe852tCoOEVxWz2vwEDDd1XercLN8jxKJDcnDSaVonr5
\n
GY3SvI6WruOgk5zz06ET1qkjD4nD3Erz5CmGk72YmQKBgQD43XdUTsSOkYq6CvCX
\n
961USRpYrTah2VmbGMTH06+xhPUIhOD8+mPwAqyJeecfruAHngqVr2zgnYqKQr5g
\n
w3xKv2Yp5lqQv/DqcQ/BLZ1refMQ8mMvCLWMR81D2Y66kAKCT4bhbIxBXvKwQ1jb
\n
kK3LpfF1DP8b19QfXkAvefjdSwKBgQDnEmnaJDlpL0I58IcPypFFsNsAj9KRuEpV
\n
xyzCUUdq/s/DUrdxGHtXVL8uE2aV5zQLKXx+Y1YYti4/a/QAkWBeKqhL8y9udPku
\n
z6qBrAj/rPoHRLeiLyiwQexwF2R9y7YmU2cT7HeG2ANDLOakk5jK7BDTTCIQ53ly
\n
uriTwS6N6QKBgQD3QUoi2FOPdmjHaMEbq3dpa2wiuI20Bjdx0g0IoHhJvliZSzQi
\n
BEAwoOd9e0E3iE6LIulPSMi67atMrP1rNC4UMc+2R2ipshoRQ52sh76EntfxeXEz
\n
tMpzgo8dH1UgZJ4pjAvtgiRjeotStsbc9wTFdazNZ8k6h5f4RnMs+FlauwKBgQCP
\n
D3BntSuyOqcW9hq4pSKB8jf0xhaJT37+Un0cpXPBA5egB1M5ev3KGNbwcOR/hJBN
\n
JNdF7Lx+OjSx4WVFALyYMHLX6uz/xv4LhFi9RcSgfvihjWLfz7CyR25aC7GUzI2u
\n
ds6HoEx0OML0URVO6W6cm8DjAOzKaHVhmcby+5SWGQKBgQDOokfnbda+sSHXuC5h
\n
dZ59npJrsgzsXxVXl+yOejiH3zZv5i3gTV1x85D9pp9LOYCELZv7Gweqho61MTC2
\n
Unq2VLdnMwLRGxXdx1Z/AnAoEKmHjEqpFwqzUlVNCBpTIwFwoJOTnORZNcMlrErC
\n
2ebsC0v+s9Aemy0pan6ji++eug==
\n
-----END PRIVATE KEY-----
\n
"
,
"client_email"
:
"firebase-adminsdk-81qfl@afrishop-c3ef7.iam.gserviceaccount.com"
,
"client_id"
:
"103704052556630553683"
,
"auth_uri"
:
"https://accounts.google.com/o/oauth2/auth"
,
"token_uri"
:
"https://oauth2.googleapis.com/token"
,
"auth_provider_x509_cert_url"
:
"https://www.googleapis.com/oauth2/v1/certs"
,
"client_x509_cert_url"
:
"https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-81qfl%40afrishop-c3ef7.iam.gserviceaccount.com"
}
src/main/resources/mapper/TbCfStoreDao.xml
浏览文件 @
175a5de1
...
...
@@ -36,18 +36,18 @@
<select
id=
"queryList"
resultType=
"com.diaoyun.zion.chinafrica.entity.TbCfStoreEntity"
>
select
`store_id`,
`store_code`,
`store_name`,
`store_brief`,
`store_url`,
`store_img`,
`platform_code`,
`platform_name`,
`enable_flag`,
`create_time`,
`item_img_1`,
`item_img_2`
`store_id`,
`store_code`,
`store_name`,
`store_brief`,
`store_url`,
`store_img`,
`platform_code`,
`platform_name`,
`enable_flag`,
`create_time`,
`item_img_1`,
`item_img_2`
from tb_cf_store
WHERE 1=1
<if
test=
"name != null and name.trim() != ''"
>
...
...
@@ -133,7 +133,7 @@
</delete>
<!--获取店铺独立站-->
<select
id=
"getStoreStationList"
resultType=
"com.diaoyun.zion.chinafrica.entity.TbCfStoreEntity"
>
select * from tb_cf_store
where enable_flag!=0 order by enable_flag
asc
select * from tb_cf_store
order by store_code
asc
</select>
</mapper>
\ No newline at end of file
src/test/java/com/diaoyun/zion/App.java
0 → 100644
浏览文件 @
175a5de1
package
com
.
diaoyun
.
zion
;
import
com.google.auth.oauth2.GoogleCredentials
;
import
com.google.firebase.FirebaseApp
;
import
com.google.firebase.FirebaseOptions
;
import
com.google.firebase.messaging.AndroidConfig
;
import
com.google.firebase.messaging.AndroidNotification
;
import
com.google.firebase.messaging.FirebaseMessaging
;
import
com.google.firebase.messaging.Message
;
import
org.junit.Test
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.InputStream
;
/**
* @Auther: wudepeng
* @Date: 2019/12/05
* @Description:
*/
public
class
App
{
static
Message
.
Builder
builder
=
Message
.
builder
();
static
com
.
google
.
firebase
.
messaging
.
AndroidConfig
.
Builder
androidBuilder
=
AndroidConfig
.
builder
();
// static Notification notice=new Notification("这是第一条消息", "fcm集成测试");
static
AndroidNotification
.
Builder
androidNotifiBuilder
=
AndroidNotification
.
builder
();
private
static
FileInputStream
FileInputStream
;
InputStream
path
=
this
.
getClass
().
getResourceAsStream
(
"/afrishop-c3ef7-firebase.json"
);
public
static
void
main
(
String
[]
args
)
throws
FileNotFoundException
{
FileInputStream
=
new
FileInputStream
(
new
File
(
"src\\main\\resources\\afrishop-c3ef7-firebase.json"
));
try
{
FirebaseOptions
options
=
new
FirebaseOptions
.
Builder
()
.
setCredentials
(
GoogleCredentials
.
fromStream
(
FileInputStream
))
.
setDatabaseUrl
(
"https://sixth-hawk-164509.firebaseio.com"
)
.
build
();
FirebaseApp
.
initializeApp
(
options
);
}
catch
(
Exception
e1
)
{
// TODO Auto-generated catch block
e1
.
printStackTrace
();
}
androidBuilder
.
setRestrictedPackageName
(
"com.sk.weichat"
);
androidNotifiBuilder
.
setColor
(
"#55BEB7"
);
// 设置消息通知颜色
androidNotifiBuilder
.
setBody
(
"服务消息通知"
);
// 设置消息内容
androidNotifiBuilder
.
setIcon
(
"https://www.shiku.co/images/favicon.png"
);
// 设置消息图标
androidNotifiBuilder
.
setTitle
(
"开发者你好"
);
// 设置消息标题
AndroidNotification
androidNotification
=
androidNotifiBuilder
.
build
();
androidBuilder
.
setNotification
(
androidNotification
);
AndroidConfig
androidConfig
=
androidBuilder
.
build
();
builder
.
setToken
(
"USYIOvmtbIe4dvdXwmfKQlCiwqqAILYA9LPcwlVfrmP0jYp"
);
// 客户端申请到的token
builder
.
setAndroidConfig
(
androidConfig
);
// builder.setNotification(notice);
Message
message
=
builder
.
build
();
try
{
String
fcm
=
FirebaseMessaging
.
getInstance
().
send
(
message
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
@Test
public
void
test
(){
try
{
InputStream
path
=
this
.
getClass
().
getResourceAsStream
(
"/afrishop-c3ef7-firebase.json"
);
FirebaseOptions
options
=
new
FirebaseOptions
.
Builder
()
.
setCredentials
(
GoogleCredentials
.
fromStream
(
path
))
.
setDatabaseUrl
(
"https://sixth-hawk-164509.firebaseio.com"
)
.
build
();
FirebaseApp
.
initializeApp
(
options
);
}
catch
(
Exception
e1
)
{
// TODO Auto-generated catch block
e1
.
printStackTrace
();
}
androidBuilder
.
setRestrictedPackageName
(
"com.sk.weichat"
);
androidNotifiBuilder
.
setColor
(
"#55BEB7"
);
// 设置消息通知颜色
androidNotifiBuilder
.
setBody
(
"服务消息通知"
);
// 设置消息内容
androidNotifiBuilder
.
setIcon
(
"https://www.shiku.co/images/favicon.png"
);
// 设置消息图标
androidNotifiBuilder
.
setTitle
(
"开发者你好"
);
// 设置消息标题
AndroidNotification
androidNotification
=
androidNotifiBuilder
.
build
();
androidBuilder
.
setNotification
(
androidNotification
);
AndroidConfig
androidConfig
=
androidBuilder
.
build
();
builder
.
setToken
(
"AAAAb7GOs6M:APA91bFZdHjWikBQzHjGUlfwdBb0vLKdoBkcPn1nJ6LjO7SmmdMfAM8g0zMdO9vlddAZdL_SjkCi7lsFjPvGQE7CoMxVGOmfN8WSDuWTif5_l35AkIfJF3Ls6Wt5BFPDTTI0MRZP-VJl"
);
// 客户端申请到的token
builder
.
setAndroidConfig
(
androidConfig
);
// builder.setNotification(notice);
Message
message
=
builder
.
build
();
try
{
String
fcm
=
FirebaseMessaging
.
getInstance
().
send
(
message
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
src/test/java/com/diaoyun/zion/PayTest.java
浏览文件 @
175a5de1
...
...
@@ -220,4 +220,10 @@ public class PayTest {
com
.
yunpian
.
sdk
.
model
.
Result
<
SmsBatchSend
>
r
=
clnt
.
sms
().
tpl_batch_send
(
param
);
System
.
out
.
println
(
r
);
}
@Test
public
void
sendMessageToAll
(){
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论