Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
push-message
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
liucheng
push-message
Commits
9b45a31c
Commit
9b45a31c
authored
May 11, 2023
by
liuyiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
别名批量推送
parent
8ad52600
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
361 additions
and
62 deletions
+361
-62
CommonUtil.java
src/main/java/com/weface/common/utils/CommonUtil.java
+15
-0
ValidatorParam.java
...main/java/com/weface/common/validator/ValidatorParam.java
+37
-0
MobPushService.java
src/main/java/com/weface/component/MobPushService.java
+195
-59
PushController.java
src/main/java/com/weface/controller/PushController.java
+16
-0
MultiInformForm.java
src/main/java/com/weface/dto/MultiInformForm.java
+42
-0
MultiMsgDTO.java
src/main/java/com/weface/dto/MultiMsgDTO.java
+45
-0
PushLogService.java
src/main/java/com/weface/service/PushLogService.java
+2
-1
PushLogServiceImpl.java
src/main/java/com/weface/serviceimpl/PushLogServiceImpl.java
+9
-2
No files found.
src/main/java/com/weface/common/utils/CommonUtil.java
View file @
9b45a31c
...
...
@@ -350,4 +350,19 @@ public class CommonUtil {
return
null
;
}
}
/**
* 获分组次数
* @param total 总长度
* @param size 每个分组长度
* @return 分组次数
*/
public
static
Integer
getGroupCount
(
Integer
total
,
Integer
size
)
{
int
groupCount
=
total
/
size
;
if
(
total
%
size
!=
0
)
{
groupCount
=
groupCount
+
1
;
}
return
groupCount
;
}
}
src/main/java/com/weface/common/validator/ValidatorParam.java
View file @
9b45a31c
...
...
@@ -3,14 +3,21 @@ package com.weface.common.validator;
import
com.weface.code.CommonResult
;
import
com.weface.code.ResultCode
;
import
com.weface.dto.InformForm
;
import
com.weface.dto.MultiInformForm
;
import
com.weface.dto.MultiMsgDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* @author : Administrator
* @date : 2022/4/21 14:28
*/
@Slf4j
public
class
ValidatorParam
{
/**
...
...
@@ -61,4 +68,34 @@ public class ValidatorParam {
return
null
;
}
/**
* 校验推送参数
*
* @param informForm 推送参数
* @return 核验结果
*/
public
static
CommonResult
validBatchPushParams
(
MultiInformForm
informForm
)
{
List
<
MultiMsgDTO
>
msgList
=
informForm
.
getMsgList
();
List
<
MultiMsgDTO
>
blankTitleList
=
msgList
.
stream
().
filter
(
x
->
StringUtils
.
isBlank
(
x
.
getTitle
())).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
blankTitleList
))
{
log
.
error
(
"msgList中含title为空的消息: param=[{}]"
,
informForm
);
return
CommonResult
.
validateFailed
(
"msgList中含title为空的消息"
);
}
List
<
MultiMsgDTO
>
blankContentList
=
msgList
.
stream
().
filter
(
x
->
StringUtils
.
isBlank
(
x
.
getContent
())).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
blankContentList
))
{
log
.
error
(
"msgList中含content为空的消息: param=[{}]"
,
informForm
);
return
CommonResult
.
validateFailed
(
"msgList中含content为空的消息"
);
}
List
<
MultiMsgDTO
>
emptyAliasList
=
msgList
.
stream
().
filter
(
x
->
x
.
getAlias
()
==
null
||
x
.
getAlias
().
length
==
0
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
emptyAliasList
))
{
log
.
error
(
"msgList中含alias为空的消息: param=[{}]"
,
informForm
);
return
CommonResult
.
validateFailed
(
"msgList中含alias为空的消息"
);
}
return
null
;
}
}
src/main/java/com/weface/component/MobPushService.java
View file @
9b45a31c
This diff is collapsed.
Click to expand it.
src/main/java/com/weface/controller/PushController.java
View file @
9b45a31c
...
...
@@ -9,11 +9,13 @@ import com.weface.component.GeTuiService;
import
com.weface.component.MobPushService
;
import
com.weface.dto.InformForm
;
import
com.weface.dto.MsgDTO
;
import
com.weface.dto.MultiInformForm
;
import
com.weface.dto.PushDTO
;
import
com.weface.service.PushService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
@@ -116,4 +118,18 @@ public class PushController {
return
CommonResult
.
success
(
result
,
"推送成功"
);
}
}
/**
* 别名批量推送
*/
@PostMapping
(
"/batch/alias"
)
public
CommonResult
batchMobPush
(
@RequestBody
@Validated
MultiInformForm
multiInformForm
)
{
CommonResult
result
=
ValidatorParam
.
validBatchPushParams
(
multiInformForm
);
if
(
result
!=
null
)
{
return
result
;
}
return
mobPushService
.
batchMobPush
(
multiInformForm
);
}
}
src/main/java/com/weface/dto/MultiInformForm.java
0 → 100644
View file @
9b45a31c
package
com
.
weface
.
dto
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
/**
* @Author: lyg
* @Description:
* @Date: 2023/5/10 16:03
**/
@Data
public
class
MultiInformForm
{
/**
* 推送的消息体数组
*/
@NotEmpty
(
message
=
"消息列表不能为空"
)
private
List
<
MultiMsgDTO
>
msgList
;
/**
* 跳转url
*/
@NotBlank
(
message
=
"url不能为空"
)
private
String
url
;
/**
* 推送类型 0:h5 1:原生,默认h5
*/
@NotNull
(
message
=
"pushType不能为空"
)
private
Integer
pushType
;
/**
* 推送平台:kksh,kksb,kkwj,kkmz
*/
@NotBlank
(
message
=
"equipmentType不能为空"
)
private
String
equipmentType
;
}
src/main/java/com/weface/dto/MultiMsgDTO.java
0 → 100644
View file @
9b45a31c
package
com
.
weface
.
dto
;
import
lombok.Data
;
/**
* @Author: lyg
* @Description:
* @Date: 2023/5/10 16:10
**/
@Data
public
class
MultiMsgDTO
{
/**
* item id(用户自自定义生成且唯一、不能重复)
*/
private
String
itemId
;
/**
* 推送目标, cid的集合,如:[kksh_59354, kksh_59355, kksh_59356]
*/
private
String
[]
alias
;
/**
* 消息标题
*/
private
String
title
;
/**
* 消息内容
*/
private
String
content
;
/**
* 推送任务的 workNo 非必填
*/
private
String
workNo
;
/**
* 包名列表 非必填
*/
private
String
appPackages
;
}
src/main/java/com/weface/service/PushLogService.java
View file @
9b45a31c
...
...
@@ -28,8 +28,9 @@ public interface PushLogService extends IService<PushLogEntity> {
*
* @param data 返回数据
* @param informForm 推送数据
* @param isBatch 是否为批量推送
*/
public
void
saveMobLog
(
JSONObject
data
,
InformForm
informForm
);
public
void
saveMobLog
(
JSONObject
data
,
InformForm
informForm
,
boolean
isBatch
);
/**
* 查询日志
...
...
src/main/java/com/weface/serviceimpl/PushLogServiceImpl.java
View file @
9b45a31c
...
...
@@ -50,10 +50,17 @@ public class PushLogServiceImpl extends ServiceImpl<PushLogDao, PushLogEntity> i
}
@Override
public
void
saveMobLog
(
JSONObject
data
,
InformForm
informForm
)
{
public
void
saveMobLog
(
JSONObject
data
,
InformForm
informForm
,
boolean
isBatch
)
{
try
{
Long
id
=
SnowIdUtil
.
nextId
();
String
batchId
=
data
.
getJSONObject
(
"res"
).
getString
(
"batchId"
);
String
batchId
;
if
(
isBatch
)
{
batchId
=
"toMultiPush"
;
}
else
{
batchId
=
data
.
getJSONObject
(
"res"
).
getString
(
"batchId"
);
}
PushLogEntity
pushLog
=
getPushLog
(
id
,
informForm
,
batchId
,
data
.
toString
(),
2
);
this
.
save
(
pushLog
);
}
catch
(
Exception
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