@@ -0,0 +1,53 @@ | |||
package cn.com.taiji.core.entity.dict.msgw; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
/*** | |||
* 极光推送类型 | |||
*/ | |||
public enum MessageJPushType { | |||
JPUSHALLAPPN("极光推送通知栏通知(全体用户)", 1) {}, | |||
JPUSHALLAPPM("极光推送自定义消息(全体用户)", 2) {}, | |||
JPUSHALLAPPNM("极光推送通知栏通知和自定义消息(全体用户)", 3) {}, | |||
JPUSHALLRIDN("极光推送通知栏通知(指定用户)", 4) {}, | |||
JPUSHALLRIDM("极光推送自定义消息(指定用户)", 5) {}, | |||
JPUSHALLRIDNM("极光推送通知栏通知和自定义消息(指定用户)", 6) {}, | |||
; | |||
private String value; | |||
private Integer code; | |||
MessageJPushType(String value, Integer code) { | |||
this.value = value; | |||
this.code = code; | |||
} | |||
public String getValue() { | |||
return value; | |||
} | |||
public Integer getCode() { | |||
return code; | |||
} | |||
public void setValue(String value) { | |||
this.value = value; | |||
} | |||
public void setCode(Integer code) { | |||
this.code = code; | |||
} | |||
public static MessageJPushType findByCode(Integer code) throws ServiceHandleException { | |||
if (null == code) { | |||
return null; | |||
} | |||
for (MessageJPushType value : MessageJPushType.values()) { | |||
if (code.equals(value.getCode())) { | |||
return value; | |||
} | |||
} | |||
return null; | |||
} | |||
} |
@@ -0,0 +1,52 @@ | |||
package cn.com.taiji.core.entity.msgw; | |||
import java.time.LocalDateTime; | |||
import javax.persistence.Column; | |||
import javax.persistence.Entity; | |||
import javax.persistence.Table; | |||
import javax.validation.constraints.NotBlank; | |||
import javax.validation.constraints.NotNull; | |||
import javax.validation.constraints.Size; | |||
import cn.com.taiji.common.entity.StringPropertyUUIDEntity; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
/** | |||
* 用户消息表 | |||
* | |||
*/ | |||
@Getter | |||
@Setter | |||
@Entity | |||
@Table(name = "MEGW_USER_MESSAGE") | |||
public class MegwUserMessage extends StringPropertyUUIDEntity { | |||
@NotBlank | |||
@Size(max = 255) | |||
@Column(name = "OPEN_ID") | |||
private String openId;//用户openId | |||
@NotNull | |||
@Column(name = "CREATE_TIME") | |||
private LocalDateTime createTime;//创建时间 | |||
@NotBlank | |||
@Size(max = 255) | |||
@Column(name = "TITLE") | |||
private String title;//消息标题 | |||
@NotBlank | |||
@Size(max = 255) | |||
@Column(name = "MESSAGE") | |||
private String message;//消息内容 | |||
@NotNull | |||
@Column(name = "IS_READED") | |||
private Integer isReaded;//是否已读 | |||
@Column(name = "UPDATE_TIME") | |||
private LocalDateTime updateTime;//更新时间 | |||
} |
@@ -5,6 +5,7 @@ import cn.com.taiji.core.model.comm.protocol.SignServiceCommand; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceSystem; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceType; | |||
import cn.com.taiji.core.model.comm.protocol.ats.anXin.AnXinServiceCmd; | |||
import cn.com.taiji.core.model.comm.protocol.ats.jpush.JpushServiceCmd; | |||
import cn.com.taiji.core.model.comm.protocol.ats.ocr.OcrServiceCmd; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WeiXinServiceCmd; | |||
import lombok.Getter; | |||
@@ -17,6 +18,7 @@ public enum AtsServiceType implements SignServiceType { | |||
WEIXIN("微信", "^WEIXIN_\\S+\\.json$", WeiXinServiceCmd.values()), | |||
ANXINSIGN("安心签","^ANXINSIGN_\\S+\\.json$", AnXinServiceCmd.values()), | |||
OCR("ocr","^OCR\\S+\\.json$", OcrServiceCmd.values()), | |||
JPUSH("极光发送","^JPUSH\\S+\\.json$", JpushServiceCmd.values()), | |||
; | |||
@Getter |
@@ -1,13 +1,13 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.message; | |||
package cn.com.taiji.core.model.comm.protocol.ats.jpush; | |||
import java.time.LocalDateTime; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
import cn.com.taiji.core.model.comm.protocol.ias.AbstractIasRequest; | |||
import com.google.common.collect.Lists; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.core.model.comm.protocol.ats.AbstractAtsRequest; | |||
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | |||
import cn.hutool.core.collection.CollectionUtil; | |||
import lombok.Getter; | |||
@@ -21,10 +21,10 @@ import lombok.Setter; | |||
*/ | |||
@Getter | |||
@Setter | |||
public class JpushAllRidNotificationMessageRequest extends AbstractIasRequest<JpushAllRidNotificationMessageResponse> { | |||
public class JpushAllRidNotificationMessageRequest extends AbstractAtsRequest<JpushAllRidNotificationMessageResponse> { | |||
protected JpushAllRidNotificationMessageRequest() { | |||
super(ChannelServiceCmd.JPUSHALLRIDNOTIFICATION); | |||
super(JpushServiceCmd.JPUSHALLRIDNOTIFICATION); | |||
} | |||
private String clientId; | |||
@@ -50,7 +50,6 @@ public class JpushAllRidNotificationMessageRequest extends AbstractIasRequest<Jp | |||
if (registrationId == null) | |||
failParamInfo.add("registrationId列表"); | |||
if (notificationTitle == null || notificationTitle.trim().isEmpty()) | |||
failParamInfo.add("通知栏的通知标题"); | |||
@@ -60,7 +59,6 @@ public class JpushAllRidNotificationMessageRequest extends AbstractIasRequest<Jp | |||
if (notificationExtras == null || notificationExtras.trim().isEmpty()) | |||
notificationExtras = "exts"; | |||
if (msgTitle == null || msgTitle.trim().isEmpty()) | |||
failParamInfo.add("消息标题"); | |||
@@ -73,7 +71,6 @@ public class JpushAllRidNotificationMessageRequest extends AbstractIasRequest<Jp | |||
if (title == null || title.trim().isEmpty()) | |||
title = "消息标题"; | |||
if (sendTime != null && sendTime.isBefore(LocalDateTime.now())) | |||
throw GlyServiceError.RESPONSE_ERROR.toHandleException("发送时间不能早于当前时间!"); | |||
@@ -85,4 +82,8 @@ public class JpushAllRidNotificationMessageRequest extends AbstractIasRequest<Jp | |||
return this; | |||
} | |||
@Override | |||
protected void validate(ErrorMsgBuilder builder) { | |||
} | |||
} |
@@ -1,12 +1,13 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ias.message; | |||
package cn.com.taiji.core.model.comm.protocol.ats.jpush; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import cn.com.taiji.core.model.comm.protocol.ats.AbstractAtsResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.portal.AbstractPortalResponse; | |||
/*** | |||
* 极光推送-指定的registrationId列表(android/ios)-通知栏通知和自定义消息 | |||
*/ | |||
public class JpushAllRidNotificationMessageResponse extends AbstractPortalResponse { | |||
public class JpushAllRidNotificationMessageResponse extends AbstractAtsResponse { | |||
} |
@@ -0,0 +1,44 @@ | |||
package cn.com.taiji.core.model.comm.protocol.ats.jpush; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceCommand; | |||
import cn.com.taiji.core.model.comm.protocol.SignServiceType; | |||
import cn.com.taiji.core.model.comm.protocol.ats.AtsServiceType; | |||
public enum JpushServiceCmd implements SignServiceCommand { | |||
JPUSHALLRIDNOTIFICATION("极光推送发送", JpushAllRidNotificationMessageRequest.class), | |||
; | |||
private final String value; | |||
private final Class<? extends AbstractSignTypeRequest<?>> reqClass; | |||
JpushServiceCmd(String value, Class<? extends AbstractSignTypeRequest<?>> reqClass) { | |||
this.value = value; | |||
this.reqClass = reqClass; | |||
} | |||
@Override | |||
public SignServiceType getServiceType() { | |||
return AtsServiceType.JPUSH; | |||
} | |||
public static JpushServiceCmd fromIfCode(String ifCode) { | |||
return SignServiceCommand.fromName(JpushServiceCmd.class, SignServiceCommand.getCmdStr(ifCode)); | |||
} | |||
@Override | |||
public boolean isMyCommand(String ifCode) { | |||
return this == fromIfCode(ifCode); | |||
} | |||
@Override | |||
public String getValue() { | |||
return value; | |||
} | |||
@Override | |||
public Class<? extends AbstractSignTypeRequest<?>> getProtocolClass() { | |||
return reqClass; | |||
} | |||
} |
@@ -8,7 +8,6 @@ import cn.com.taiji.core.model.comm.protocol.ias.IasServiceType; | |||
public enum ChannelServiceCmd implements SignServiceCommand { | |||
HLTSENDSHORT("短信发送", HltSendShortRequest.class), | |||
JPUSHALLRIDNOTIFICATION("极光推送发送", JpushAllRidNotificationMessageRequest.class), | |||
QTZLEMAILSEND("邮件发送", QtzlEmailSendRequest.class), | |||
QTKPUSHSEND("web端发送", QtkPushSendMessageRequest.class), | |||
; |
@@ -0,0 +1,8 @@ | |||
package cn.com.taiji.core.repo.jpa.msgw; | |||
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||
import cn.com.taiji.core.entity.msgw.MegwUserMessage; | |||
public interface MegwUserMessageRepo extends AbstractJpaRepo<MegwUserMessage, String>{ | |||
} |
@@ -0,0 +1,32 @@ | |||
package cn.com.taiji.core.repo.request.msgw; | |||
import cn.com.taiji.common.pub.dao.HqlBuilder; | |||
import cn.com.taiji.common.repo.request.jpa.JpaDateTimePageableDataRequest; | |||
import cn.com.taiji.core.entity.msgw.MegwUserMessage; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
@Getter | |||
@Setter | |||
public class MegwUserMessagePageRequest extends JpaDateTimePageableDataRequest<MegwUserMessage>{ | |||
public MegwUserMessagePageRequest() { | |||
this.orderBy="id"; | |||
this.desc=true; | |||
} | |||
@Override | |||
public HqlBuilder toSelectHql(){ | |||
HqlBuilder hql = new HqlBuilder("from MegwUserMessage where 1=1 "); | |||
return hql; | |||
} | |||
} |
@@ -50,11 +50,11 @@ public class TestCodeManager extends AbstractManager { | |||
/* 全局配置参数,详细的参数说明参见GlobalConfigBuilder的属性注释 */ | |||
GlobalConfigBuilder configBuilder = GlobalConfigBuilder.create(); | |||
configBuilder.setAppName("core"); | |||
configBuilder.setModule("issue"); | |||
String pak = "issue"; | |||
configBuilder.setModule("msgw"); | |||
String pak = "msgw"; | |||
configBuilder.setEntityPackage("cn/com/taiji/core/entity/"+pak); | |||
configBuilder.setRepoPackage("cn/com/taiji/core/repo/jpa/"+pak); | |||
configBuilder.setTableName("ISSUE_MULTIPLE_EQUITY"); | |||
configBuilder.setTableName("MEGW_USER_MESSAGE"); | |||
// 生成分页查询request | |||
// configBuilder.setQueryField(List.of("intVal", "name", "mobile", "insertTime1", "insertTime2")); | |||
// configBuilder.setOrderBy("orderIndex"); |