Commit 9b45a31c authored by liuyiguang's avatar liuyiguang

别名批量推送

parent 8ad52600
......@@ -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;
}
}
......@@ -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;
}
}
......@@ -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);
}
}
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;
}
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;
}
......@@ -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);
/**
* 查询日志
......
......@@ -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) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment