Browse Source

🚀 消息推送模块

master
wangxiang 2 years ago
parent
commit
b55beb0bce
  1. 3
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/Message.java
  2. 18
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/PushCustomType.java
  3. 16
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java

3
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/Message.java

@ -66,6 +66,9 @@ public class Message extends CommonEntity {
@ApiModelProperty("收到通知是否发出声音") @ApiModelProperty("收到通知是否发出声音")
private Boolean playSound; private Boolean playSound;
@ApiModelProperty("自定义播放文件名称")
private String customPlayFileName;
@ApiModelProperty("自定义活动点击跳转内容") @ApiModelProperty("自定义活动点击跳转内容")
private String custom; private String custom;

18
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/PushCustomType.java

@ -11,7 +11,7 @@ import lombok.experimental.Accessors;
/** /**
* <p> * <p>
* * 自定义消息类型
* </p> * </p>
* *
* @author wangxiang4 * @author wangxiang4
@ -21,7 +21,7 @@ import lombok.experimental.Accessors;
@Setter @Setter
@Accessors(chain = true) @Accessors(chain = true)
@TableName("common_push_custom_type") @TableName("common_push_custom_type")
@ApiModel(value = "PushCustomType对象", description = "") @ApiModel(value = "PushCustomType对象")
public class PushCustomType extends CommonEntity { public class PushCustomType extends CommonEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -31,16 +31,16 @@ public class PushCustomType extends CommonEntity {
@ApiModelProperty("自定义类型名称") @ApiModelProperty("自定义类型名称")
private String name; private String name;
@ApiModelProperty("紧急级别") @ApiModelProperty("是否播放声音")
private String level; private Boolean playSound;
@ApiModelProperty("是否震动") @ApiModelProperty("是否震动")
private String isVibration; private Boolean playVibrate;
@ApiModelProperty("是否响铃") @ApiModelProperty("是否闪光")
private String isSound; private Boolean playLights;
@ApiModelProperty("自定义铃声") @ApiModelProperty("自定义播放文件名称")
private String customSound; private String customPlayFileName;
} }

16
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java

@ -12,15 +12,18 @@ import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.CheckedException; import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.commonbiz.api.entity.Message; import com.cloud.kicc.commonbiz.api.entity.Message;
import com.cloud.kicc.commonbiz.api.entity.PushApplication; import com.cloud.kicc.commonbiz.api.entity.PushApplication;
import com.cloud.kicc.commonbiz.api.entity.PushCustomType;
import com.cloud.kicc.commonbiz.api.entity.UserPush; import com.cloud.kicc.commonbiz.api.entity.UserPush;
import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper; import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper;
import com.cloud.kicc.commonbiz.service.IPushApplicationService; import com.cloud.kicc.commonbiz.service.IPushApplicationService;
import com.cloud.kicc.commonbiz.service.IPushCustomTypeService;
import com.cloud.kicc.commonbiz.service.UserPushService; import com.cloud.kicc.commonbiz.service.UserPushService;
import com.cloud.kicc.commonbiz.util.PushClientUtil; import com.cloud.kicc.commonbiz.util.PushClientUtil;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import com.cloud.kicc.system.api.feign.RemoteUserService; import com.cloud.kicc.system.api.feign.RemoteUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
@ -49,6 +52,7 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
private final OkHttpClient okHttpClient; private final OkHttpClient okHttpClient;
private final UserPushService userPushService; private final UserPushService userPushService;
private final RemoteUserService remoteUserService; private final RemoteUserService remoteUserService;
private final IPushCustomTypeService iPushCustomTypeService;
@Override @Override
public void messageSend(Message message) { public void messageSend(Message message) {
@ -70,6 +74,17 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
} }
} }
// 查询当前用户设置的自定义快捷方式消息提醒属性
PushCustomType pushCustomType = iPushCustomTypeService.getOne(Wrappers.<PushCustomType>lambdaQuery()
.eq(PushCustomType::getId, message.getCustomTypeId()).eq(PushCustomType::getCreateById, message.getSendUserId()));
if (ObjectUtil.isNotEmpty(pushCustomType)) {
message.setPlaySound(pushCustomType.getPlaySound());
message.setPlayVibrate(pushCustomType.getPlayVibrate());
message.setPlayLights(pushCustomType.getPlayLights());
if (StrUtil.isNotBlank(pushCustomType.getCustomPlayFileName()))
message.setCustomPlayFileName(pushCustomType.getCustomPlayFileName());
}
List<UserPush> pushList = userPushService.list(Wrappers.<UserPush>lambdaQuery().eq(UserPush::getUserId, message.getSendUserId())); List<UserPush> pushList = userPushService.list(Wrappers.<UserPush>lambdaQuery().eq(UserPush::getUserId, message.getSendUserId()));
if (ObjectUtil.isNotEmpty(pushList)) { if (ObjectUtil.isNotEmpty(pushList)) {
// 设置默认数据 // 设置默认数据
@ -78,6 +93,7 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
message.setAlias(pushList.stream().map(item -> item.getPushId()).collect(Collectors.joining(","))); message.setAlias(pushList.stream().map(item -> item.getPushId()).collect(Collectors.joining(",")));
JSONObject custom = new JSONObject(); JSONObject custom = new JSONObject();
custom.put("sendUserId", message.getSendUserId()); custom.put("sendUserId", message.getSendUserId());
custom.put("customPlayFileName", message.getCustomPlayFileName());
message.setCustom(custom.toString()); message.setCustom(custom.toString());
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("production_mode", PushClientUtil.PRODUCTION_MODE); jsonObject.put("production_mode", PushClientUtil.PRODUCTION_MODE);

Loading…
Cancel
Save