记得上下班打卡 | 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
55982f64
Commit
55982f64
authored
Mar 22, 2024
by
zhoujianping
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.开票提醒推送逻辑重新设计
parent
a2007a18
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
259 additions
and
90 deletions
+259
-90
KylinRedisConst.java
...com/liquidnet/service/kylin/constant/KylinRedisConst.java
+2
-0
KylinPerformancesSubscribeDao.java
...dnet/service/kylin/dao/KylinPerformancesSubscribeDao.java
+19
-0
KylinPerformancesMapper.java
...quidnet/service/kylin/mapper/KylinPerformancesMapper.java
+20
-0
KylinTicketsMapper.java
...om/liquidnet/service/kylin/mapper/KylinTicketsMapper.java
+3
-0
KylinPerformancesMapper.xml
...iquidnet.service.kylin.mapper/KylinPerformancesMapper.xml
+29
-0
FeignPlatformTaskClient.java
...net/service/feign/kylin/task/FeignPlatformTaskClient.java
+9
-0
KylinTaskHandler.java
...idnet/service/executor/main/handler/KylinTaskHandler.java
+17
-0
KylinPerformancesServiceImpl.java
...vice/kylin/service/impl/KylinPerformancesServiceImpl.java
+1
-87
KylinPerformancesController.java
...latform/controller/kylin/KylinPerformancesController.java
+28
-0
PerformanceVoTask.java
...m/liquidnet/service/platform/utils/PerformanceVoTask.java
+131
-3
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/constant/KylinRedisConst.java
View file @
55982f64
...
...
@@ -94,6 +94,8 @@ public class KylinRedisConst {
public
static
final
String
REDIS_KEY_KYLIN_PERFORMANCE_SUBSCRIBE_LIST
=
"kylin:performance:subscribe:list"
;
//预约列表
public
static
final
String
REDIS_KEY_KYLIN_PERFORMANCE_SUBSCRIBE_READ
=
"kylin:performance:subscribe:read"
;
//预约列表是否已读
public
static
final
String
REDIS_KEY_KYLIN_PERFORMANCE_SUBSCRIBE_LOCK
=
"kylin:performance:subscribe:lock"
;
//预约提醒加锁
public
static
final
String
REDIS_WQ_ORDER_FIX
=
"kylin:wq:order:"
;
//纪录万青 订单填写快递地址
public
static
final
String
REDIS_WQ_ORDER_EXPRESS
=
"kylin:wq:pxress:order:"
;
//万青补偿快递vo 订单填写快递地址
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/KylinPerformancesSubscribeDao.java
0 → 100644
View file @
55982f64
package
com
.
liquidnet
.
service
.
kylin
.
dao
;
import
lombok.Data
;
/**
* @author zjp
* @create 2024-03-21 15:44
*/
@Data
public
class
KylinPerformancesSubscribeDao
{
private
Integer
mid
;
private
String
pushTitle
;
private
String
deviceTokens
;
private
String
pushRange
;
private
String
jumpValue
;
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinPerformancesMapper.java
View file @
55982f64
...
...
@@ -104,4 +104,24 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
* @date 2024/3/18 16:06
*/
List
<
KylinPerformanceSubscribeTicketStatisticalDao
>
getSubscribeTicketStatisticalByPerformancesId
(
@Param
(
"performancesId"
)
String
performancesId
);
/**
* 获取开票提醒需要push用户信息
* @author zjp
* @param type 推送类型 0 开票提醒
* @param pushRange 推送设备唯一标识
* @param isPush 推送设备 ios android
* @return: java.util.List<com.liquidnet.service.kylin.dao.KylinPerformancesSubscribeDao>
* @date 2024/3/21 16:29
*/
List
<
KylinPerformancesSubscribeDao
>
performanceSubscribePush
(
@Param
(
"type"
)
Integer
type
,
@Param
(
"pushRange"
)
String
pushRange
,
@Param
(
"isPush"
)
Integer
isPush
);
/**
* 批量修改开票提醒推送状态
* @author zjp
* @param ids
* @return: void
* @date 2024/3/21 18:02
*/
void
updatePerformanceSubscribePushById
(
@Param
(
"ids"
)
List
<
Integer
>
ids
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinTicketsMapper.java
View file @
55982f64
...
...
@@ -27,4 +27,7 @@ public interface KylinTicketsMapper extends BaseMapper<KylinTickets> {
List
<
TicketAndStatusDao
>
selectTicketsByIds
(
List
<
String
>
ticketsIdList
);
ShowAgentDao
selectOneByPerIdAndTicketId
(
@Param
(
"ticketId"
)
String
ticketId
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/KylinPerformancesMapper.xml
View file @
55982f64
...
...
@@ -1224,4 +1224,33 @@ GROUP BY user_mobile,tickets_id;
kps.tickets_id) B ON A.performances_id = B.performance_id AND A.ticket_times_id = B.ticket_times_id AND A.tickets_id = B.tickets_id
ORDER BY A.ticket_times_id
</select>
<select
id=
"performanceSubscribePush"
resultType=
"com.liquidnet.service.kylin.dao.KylinPerformancesSubscribeDao"
>
SELECT mid,
push_title AS pushTitle,
device_tokens AS deviceTokens,
push_range AS pushRange,
performance_id AS jumpValue
FROM kylin_performance_subscribe
WHERE
push_time
<
= NOW()
<if
test=
"type!=null"
>
and type=#{type}
</if>
<if
test=
"pushRange!=null and pushRange!=''"
>
and push_range=#{pushRange}
</if>
<if
test=
"type!=null"
>
and type=#{type}
</if>
<if
test=
"isPush!=null"
>
and is_push=#{isPush}
</if>
</select>
<update
id=
"updatePerformanceSubscribePushById"
parameterType=
"java.util.List"
>
update kylin_performance_subscribe set is_push=1
where mid in
<foreach
collection=
"ids"
item=
"id"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{id}
</foreach>
</update>
</mapper>
liquidnet-bus-feign/liquidnet-api-feign-kylin/src/main/java/com/liquidnet/service/feign/kylin/task/FeignPlatformTaskClient.java
View file @
55982f64
...
...
@@ -31,4 +31,13 @@ public interface FeignPlatformTaskClient {
@GetMapping
(
"platform/performance/line"
)
ResponseDto
<
Boolean
>
performanceLine
();
/**
* 定时开票提醒
* @author zjp
* @return: com.liquidnet.service.base.ResponseDto<java.lang.Boolean>
* @date 2024/3/21 18:03
*/
@GetMapping
(
"platform/performance/subscribePush"
)
ResponseDto
<
Boolean
>
performanceSubscribePush
();
}
liquidnet-bus-service/liquidnet-service-executor-all/liquidnet-service-executor-main/src/main/java/com/liquidnet/service/executor/main/handler/KylinTaskHandler.java
View file @
55982f64
...
...
@@ -82,4 +82,21 @@ public class KylinTaskHandler {
XxlJobHelper
.
handleFail
();
}
}
/**
* 开票提醒定时推送
* @author zjp
* @param null
* @return: null
* @date 2024/3/21 15:32
*/
@XxlJob
(
value
=
"sev-platform:performanceSubscribePush"
)
public
void
performanceSubscribePush
()
{
try
{
XxlJobHelper
.
handleSuccess
(
"结果:"
+
feignPlatformTaskClient
.
performanceSubscribePush
().
getData
());
}
catch
(
Exception
e
)
{
XxlJobHelper
.
log
(
e
);
XxlJobHelper
.
handleFail
();
}
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinPerformancesServiceImpl.java
View file @
55982f64
...
...
@@ -83,19 +83,6 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
@Value
(
"${liquidnet.service.smile.url}"
)
private
String
smileUrl
;
@Value
(
"${liquidnet.umeng.ios.appkey}"
)
private
String
iosAppkey
;
@Value
(
"${liquidnet.umeng.ios.appMasterSecret}"
)
private
String
iosAppMasterSecret
;
@Value
(
"${liquidnet.umeng.android.appkey}"
)
private
String
androidAppkey
;
@Value
(
"${liquidnet.umeng.android.appMasterSecret}"
)
private
String
androidAppMasterSecret
;
@Autowired
Environment
environment
;
private
PushClient
client
=
new
PushClient
();
public
HashMap
<
String
,
Object
>
localList
(
int
days
,
String
cityName
,
Integer
adCode
,
int
type
,
Integer
isDiscount
,
Integer
isAdvance
,
Integer
isExclusive
,
...
...
@@ -880,7 +867,7 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
"kylin_performance_subscribe.insert"
,
new
Object
[]{
param
.
getPerformancesId
(),
param
.
getTicketTimesId
(),
param
.
getTicketsId
(),
uid
,
KylinTableStatusConst
.
SubscribeTypeEnum
.
TYPE1
.
getKey
(),
param
.
getDeviceTokens
(),
source
,
pushTime
,
param
.
getPerformancesTitle
(),
1
source
,
pushTime
,
param
.
getPerformancesTitle
(),
0
}
));
// 演出预约
...
...
@@ -913,15 +900,6 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
}
//开票提醒列表存入redis中
dataUtils
.
setPerformanceSubscribeList
(
uid
,
performanceSubscribeList
);
//友盟消息推送
if
(!
StringUtil
.
isEmpty
(
source
)
&&
!
StringUtil
.
isEmpty
(
param
.
getDeviceTokens
())){
if
(
source
.
equals
(
"IOS"
))
{
sendIOSBroadcast
(
param
.
getDeviceTokens
(),
kylinPerformanceSubscribeUpushVo
);
}
else
if
(
source
.
equals
(
"Android"
))
{
//Android 推送
sendAndroidBroadcast
(
param
.
getDeviceTokens
(),
kylinPerformanceSubscribeUpushVo
);
}
}
}
return
ResponseDto
.
success
(
"预约成功"
);
}
catch
(
Exception
e
)
{
...
...
@@ -943,68 +921,4 @@ public class KylinPerformancesServiceImpl implements IKylinPerformancesService {
dataUtils
.
deleteIsSubscribe
(
uid
,
performancesId
,
ticketTimesId
);
}
public
void
sendAndroidBroadcast
(
String
deviceTokens
,
KylinPerformanceSubscribeUpushVo
kylinPerformanceSubscribeUpushVo
)
{
try
{
AndroidBroadcast
broadcast
=
new
AndroidBroadcast
(
androidAppkey
,
androidAppMasterSecret
,
"unicast"
);
broadcast
.
setBadge
(
1
);
broadcast
.
setTicker
(
"【正在现场】开票提醒"
);
broadcast
.
setTitle
(
"【正在现场】开票提醒"
);
broadcast
.
setText
(
kylinPerformanceSubscribeUpushVo
.
getPushContent
());
String
custom
=
UpushTargetType
.
getTypeAction
(
kylinPerformanceSubscribeUpushVo
.
getJumpType
());
broadcast
.
goCustomAfterOpen
(
custom
);
broadcast
.
setDisplayType
(
AndroidNotification
.
DisplayType
.
NOTIFICATION
);
if
(!
LnsEnum
.
ENV
.
prod
.
name
().
equals
(
environment
.
getProperty
(
CurrentUtil
.
CK_ENV_ACTIVE
)))
{
broadcast
.
setTestMode
();
}
else
{
broadcast
.
setProductionMode
();
}
// Set customized fields
broadcast
.
setExtraField
(
"type"
,
kylinPerformanceSubscribeUpushVo
.
getJumpType
().
toString
());
broadcast
.
setExtraField
(
"id"
,
kylinPerformanceSubscribeUpushVo
.
getJumpValue
());
broadcast
.
setExtraField
(
"url"
,
kylinPerformanceSubscribeUpushVo
.
getJumpValue
());
//表示指定的单个设备
broadcast
.
setPredefinedKeyValue
(
"device_tokens"
,
deviceTokens
);
//推送时间
broadcast
.
setPredefinedKeyValue
(
"start_time"
,
kylinPerformanceSubscribeUpushVo
.
getPushTime
());
log
.
info
(
"友盟消息推送开始Android============kylinPerformanceSubscribeUpushVo={},deviceTokens={}"
,
kylinPerformanceSubscribeUpushVo
.
toString
(),
deviceTokens
);
String
sendRes
=
client
.
send
(
broadcast
);
log
.
info
(
"友盟消息推送结算AndroidReturn============sendRes={}"
,
sendRes
);
}
catch
(
Exception
e
)
{
log
.
info
(
"友盟消息推送失败Android============kylinPerformanceSubscribeUpushVo={},deviceTokens={},e={}"
,
kylinPerformanceSubscribeUpushVo
.
toString
(),
deviceTokens
,
e
);
}
}
public
void
sendIOSBroadcast
(
String
deviceTokens
,
KylinPerformanceSubscribeUpushVo
kylinPerformanceSubscribeUpushVo
)
{
AdminUpush
updatePush
=
new
AdminUpush
();
try
{
IOSBroadcast
broadcast
=
new
IOSBroadcast
(
iosAppkey
,
iosAppMasterSecret
,
"unicast"
);
//alert的值设置为字典
broadcast
.
setAlert
(
"【正在现场】开票提醒"
,
""
,
kylinPerformanceSubscribeUpushVo
.
getPushContent
());
broadcast
.
setBadge
(
1
);
broadcast
.
setSound
(
"default"
);
if
(!
LnsEnum
.
ENV
.
prod
.
name
().
equals
(
environment
.
getProperty
(
CurrentUtil
.
CK_ENV_ACTIVE
)))
{
broadcast
.
setTestMode
();
}
else
{
broadcast
.
setProductionMode
();
}
// Set customized fields
broadcast
.
setCustomizedField
(
"type"
,
kylinPerformanceSubscribeUpushVo
.
getJumpType
().
toString
());
broadcast
.
setCustomizedField
(
"id"
,
kylinPerformanceSubscribeUpushVo
.
getJumpValue
());
broadcast
.
setCustomizedField
(
"url"
,
kylinPerformanceSubscribeUpushVo
.
getJumpValue
());
//表示指定的单个设备
broadcast
.
setPredefinedKeyValue
(
"device_tokens"
,
deviceTokens
);
//推送时间
broadcast
.
setPredefinedKeyValue
(
"start_time"
,
kylinPerformanceSubscribeUpushVo
.
getPushTime
());
log
.
info
(
"友盟消息推送开始IOS============kylinPerformanceSubscribeUpushVo={},deviceTokens={}"
,
kylinPerformanceSubscribeUpushVo
.
toString
(),
deviceTokens
);
String
sendRes
=
client
.
send
(
broadcast
);
log
.
info
(
"友盟消息推送结算IOSReturn============sendRes={}"
,
sendRes
);
}
catch
(
Exception
e
)
{
log
.
info
(
"友盟消息推送失败IOS============kylinPerformanceSubscribeUpushVo={},deviceTokens={},e={}"
,
kylinPerformanceSubscribeUpushVo
.
toString
(),
deviceTokens
,
e
);
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/kylin/KylinPerformancesController.java
View file @
55982f64
package
com
.
liquidnet
.
service
.
platform
.
controller
.
kylin
;
import
com.liquidnet.common.cache.redis.util.RedisKylinUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.KylinTimePerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.PerformanceOrderStatisticalVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
...
...
@@ -45,6 +48,8 @@ public class KylinPerformancesController {
private
IKylinPerformancesPartnerService
performancesPartnerService
;
@Autowired
private
MongoTemplate
mongoTemplate
;
@Autowired
private
RedisKylinUtil
redisKylinUtil
;
@PostMapping
(
"/checkPerformanceTime"
)
@ApiOperation
(
"演出脚本"
)
...
...
@@ -86,4 +91,27 @@ public class KylinPerformancesController {
return
ResponseDto
.
success
(
false
);
}
}
@GetMapping
(
value
=
"subscribePush"
)
@ApiOperation
(
value
=
"开票提醒定时推送"
)
public
ResponseDto
<
Boolean
>
performanceSubscribePush
()
{
try
{
//加锁10分钟避免数据量大重复提醒
boolean
lock
=
redisKylinUtil
.
lock
(
KylinRedisConst
.
REDIS_KEY_KYLIN_PERFORMANCE_SUBSCRIBE_LOCK
,
1
,
60
*
10
);
if
(
lock
){
log
.
info
(
"kylin:performance:subscribe:lock开票提醒定时推送我没有加锁!!!!!!!"
);
performanceVoTask
.
performanceSubscribePush
();
//解锁
redisKylinUtil
.
uLock
(
KylinRedisConst
.
REDIS_KEY_KYLIN_PERFORMANCE_SUBSCRIBE_LOCK
);
log
.
info
(
"kylin:performance:subscribe:lock开票提醒定时推送我解锁了!!!!!!!"
);
}
return
ResponseDto
.
success
(
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
//解锁
redisKylinUtil
.
uLock
(
KylinRedisConst
.
REDIS_KEY_KYLIN_PERFORMANCE_SUBSCRIBE_LOCK
);
return
ResponseDto
.
success
(
false
);
}
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/utils/PerformanceVoTask.java
View file @
55982f64
...
...
@@ -2,11 +2,17 @@ package com.liquidnet.service.platform.utils;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.constant.LnsEnum
;
import
com.liquidnet.commons.lang.constant.UpushTargetType
;
import
com.liquidnet.commons.lang.util.*
;
import
com.liquidnet.commons.lang.util.upush.AndroidNotification
;
import
com.liquidnet.commons.lang.util.upush.PushClient
;
import
com.liquidnet.commons.lang.util.upush.android.AndroidBroadcast
;
import
com.liquidnet.commons.lang.util.upush.ios.IOSBroadcast
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dao.KylinPerformancesSubscribeDao
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
com.liquidnet.service.kylin.dto.vo.KylinPerformanceSubscribeUpushVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
...
...
@@ -25,6 +31,8 @@ import lombok.extern.slf4j.Slf4j;
import
org.bson.Document
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.core.env.Environment
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.convert.MongoConverter
;
import
org.springframework.data.mongodb.core.query.Criteria
;
...
...
@@ -38,6 +46,8 @@ import java.util.ArrayList;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.stream.Collectors
;
@Component
@Slf4j
...
...
@@ -87,6 +97,18 @@ public class PerformanceVoTask {
private
KylinTicketsPartnerServiceImpl
ticketsPartnerService
;
@Value
(
"${liquidnet.umeng.ios.appkey}"
)
private
String
iosAppkey
;
@Value
(
"${liquidnet.umeng.ios.appMasterSecret}"
)
private
String
iosAppMasterSecret
;
@Value
(
"${liquidnet.umeng.android.appkey}"
)
private
String
androidAppkey
;
@Value
(
"${liquidnet.umeng.android.appMasterSecret}"
)
private
String
androidAppMasterSecret
;
@Autowired
Environment
environment
;
private
PushClient
client
=
new
PushClient
();
/**
* 根据票状态判断 演出状态 票状态
*
...
...
@@ -476,4 +498,110 @@ public class PerformanceVoTask {
}
return
false
;
}
public
void
performanceSubscribePush
()
throws
Exception
{
//异步处理ios
CompletableFuture
<
Void
>
future
=
CompletableFuture
.
runAsync
(()
->
{
try
{
//IOS开票提醒推送
IOSPush
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
log
.
info
(
"IOS开票提醒推送异步任务执行完毕"
);
});
//Android开票提醒推送
log
.
info
(
"Android开票提醒推送主线程继续执行"
);
AndroidPush
();
future
.
get
();
// 等待异步任务完成
log
.
info
(
"开票提醒推送所有任务执行完毕"
);
}
public
void
AndroidPush
(){
List
<
KylinPerformancesSubscribeDao
>
kylinPerformancesSubscribeDaoAndroidList
=
performancesMapper
.
performanceSubscribePush
(
0
,
"Android"
,
0
);
if
(!
CollectionUtil
.
isEmpty
(
kylinPerformancesSubscribeDaoAndroidList
)){
long
startTime
=
System
.
currentTimeMillis
();
// 获取开始时间
log
.
info
(
"友盟Android开票提醒推送开始startTime===={}"
,
startTime
);
for
(
KylinPerformancesSubscribeDao
kylinPerformancesSubscribeDao
:
kylinPerformancesSubscribeDaoAndroidList
)
{
//友盟推送
sendAndroidBroadcast
(
kylinPerformancesSubscribeDao
.
getDeviceTokens
(),
kylinPerformancesSubscribeDao
.
getPushTitle
(),
6
,
kylinPerformancesSubscribeDao
.
getJumpValue
());
}
long
endTime
=
System
.
currentTimeMillis
();
// 获取结束时间
log
.
info
(
"友盟Android开票提醒推送结束方法执行时间秒===={}"
,(
startTime
-
endTime
)/
1000
);
List
<
Integer
>
IOSIds
=
kylinPerformancesSubscribeDaoAndroidList
.
stream
().
map
(
KylinPerformancesSubscribeDao:
:
getMid
).
collect
(
Collectors
.
toList
());
//批量修改变成已推送
performancesMapper
.
updatePerformanceSubscribePushById
(
IOSIds
);
}
}
public
void
IOSPush
(){
List
<
KylinPerformancesSubscribeDao
>
kylinPerformancesSubscribeDaoIOSList
=
performancesMapper
.
performanceSubscribePush
(
0
,
"IOS"
,
0
);
if
(!
CollectionUtil
.
isEmpty
(
kylinPerformancesSubscribeDaoIOSList
)){
long
startTime
=
System
.
currentTimeMillis
();
// 获取开始时间
log
.
info
(
"友盟IOS开票提醒推送开始startTime===={}"
,
startTime
);
for
(
KylinPerformancesSubscribeDao
kylinPerformancesSubscribeDao
:
kylinPerformancesSubscribeDaoIOSList
)
{
//友盟推送
sendIOSBroadcast
(
kylinPerformancesSubscribeDao
.
getDeviceTokens
(),
kylinPerformancesSubscribeDao
.
getPushTitle
(),
6
,
kylinPerformancesSubscribeDao
.
getJumpValue
());
}
long
endTime
=
System
.
currentTimeMillis
();
// 获取结束时间
log
.
info
(
"友盟IOS开票提醒推送结束方法执行时间秒===={}"
,(
startTime
-
endTime
)/
1000
);
List
<
Integer
>
IOSIds
=
kylinPerformancesSubscribeDaoIOSList
.
stream
().
map
(
KylinPerformancesSubscribeDao:
:
getMid
).
collect
(
Collectors
.
toList
());
//批量修改变成已推送
performancesMapper
.
updatePerformanceSubscribePushById
(
IOSIds
);
}
}
public
void
sendAndroidBroadcast
(
String
deviceTokens
,
String
pushTitle
,
Integer
jumpType
,
String
jumpValue
)
{
try
{
AndroidBroadcast
broadcast
=
new
AndroidBroadcast
(
androidAppkey
,
androidAppMasterSecret
,
"unicast"
);
broadcast
.
setBadge
(
1
);
broadcast
.
setTicker
(
"【正在现场】开票提醒"
);
broadcast
.
setTitle
(
"【正在现场】开票提醒"
);
broadcast
.
setText
(
pushTitle
+
",10分钟后即将开售,请点击进入详情页购买。"
);
String
custom
=
UpushTargetType
.
getTypeAction
(
jumpType
);
broadcast
.
goCustomAfterOpen
(
custom
);
broadcast
.
setDisplayType
(
AndroidNotification
.
DisplayType
.
NOTIFICATION
);
if
(!
LnsEnum
.
ENV
.
prod
.
name
().
equals
(
environment
.
getProperty
(
CurrentUtil
.
CK_ENV_ACTIVE
)))
{
broadcast
.
setTestMode
();
}
else
{
broadcast
.
setProductionMode
();
}
// Set customized fields
broadcast
.
setExtraField
(
"type"
,
jumpType
.
toString
());
broadcast
.
setExtraField
(
"id"
,
jumpValue
);
broadcast
.
setExtraField
(
"url"
,
jumpValue
);
//表示指定的单个设备
broadcast
.
setPredefinedKeyValue
(
"device_tokens"
,
deviceTokens
);
log
.
info
(
"友盟消息推送开始Android============deviceTokens========={},pushTitle========={}"
,
deviceTokens
,
pushTitle
);
String
sendRes
=
client
.
send
(
broadcast
);
log
.
info
(
"友盟消息推送成功AndroidReturn============sendRes===={}"
,
sendRes
);
}
catch
(
Exception
e
)
{
log
.
info
(
"友盟消息推送失败Android============deviceTokens={},pushTitle={},e={}"
,
deviceTokens
,
pushTitle
,
e
);
}
}
public
void
sendIOSBroadcast
(
String
deviceTokens
,
String
pushTitle
,
Integer
jumpType
,
String
jumpValue
)
{
AdminUpush
updatePush
=
new
AdminUpush
();
try
{
IOSBroadcast
broadcast
=
new
IOSBroadcast
(
iosAppkey
,
iosAppMasterSecret
,
"unicast"
);
//alert的值设置为字典
broadcast
.
setAlert
(
"【正在现场】开票提醒"
,
""
,
pushTitle
+
",10分钟后即将开售,请点击进入详情页购买。"
);
broadcast
.
setBadge
(
1
);
broadcast
.
setSound
(
"default"
);
if
(!
LnsEnum
.
ENV
.
prod
.
name
().
equals
(
environment
.
getProperty
(
CurrentUtil
.
CK_ENV_ACTIVE
)))
{
broadcast
.
setTestMode
();
}
else
{
broadcast
.
setProductionMode
();
}
// Set customized fields
broadcast
.
setCustomizedField
(
"type"
,
jumpType
.
toString
());
broadcast
.
setCustomizedField
(
"id"
,
jumpValue
);
broadcast
.
setCustomizedField
(
"url"
,
jumpValue
);
//表示指定的单个设备
broadcast
.
setPredefinedKeyValue
(
"device_tokens"
,
deviceTokens
);
log
.
info
(
"友盟消息推送开始IOS============deviceTokens========={},pushTitle========={}"
,
deviceTokens
,
pushTitle
);
String
sendRes
=
client
.
send
(
broadcast
);
log
.
info
(
"友盟消息推送成功IOS============sendRes===={}"
,
sendRes
);
}
catch
(
Exception
e
)
{
log
.
info
(
"友盟消息推送失败IOS============deviceTokens={},pushTitle={},e={}"
,
deviceTokens
,
pushTitle
,
e
);;
}
}
}
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