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; | |||||
} | |||||
} |
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;//更新时间 | |||||
} |
import cn.com.taiji.core.model.comm.protocol.SignServiceSystem; | 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.SignServiceType; | ||||
import cn.com.taiji.core.model.comm.protocol.ats.anXin.AnXinServiceCmd; | 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.ocr.OcrServiceCmd; | ||||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WeiXinServiceCmd; | import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WeiXinServiceCmd; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
WEIXIN("微信", "^WEIXIN_\\S+\\.json$", WeiXinServiceCmd.values()), | WEIXIN("微信", "^WEIXIN_\\S+\\.json$", WeiXinServiceCmd.values()), | ||||
ANXINSIGN("安心签","^ANXINSIGN_\\S+\\.json$", AnXinServiceCmd.values()), | ANXINSIGN("安心签","^ANXINSIGN_\\S+\\.json$", AnXinServiceCmd.values()), | ||||
OCR("ocr","^OCR\\S+\\.json$", OcrServiceCmd.values()), | OCR("ocr","^OCR\\S+\\.json$", OcrServiceCmd.values()), | ||||
JPUSH("极光发送","^JPUSH\\S+\\.json$", JpushServiceCmd.values()), | |||||
; | ; | ||||
@Getter | @Getter |
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.time.LocalDateTime; | ||||
import java.util.ArrayList; | 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 com.google.common.collect.Lists; | ||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | 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.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | ||||
import cn.hutool.core.collection.CollectionUtil; | import cn.hutool.core.collection.CollectionUtil; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
*/ | */ | ||||
@Getter | @Getter | ||||
@Setter | @Setter | ||||
public class JpushAllRidNotificationMessageRequest extends AbstractIasRequest<JpushAllRidNotificationMessageResponse> { | |||||
public class JpushAllRidNotificationMessageRequest extends AbstractAtsRequest<JpushAllRidNotificationMessageResponse> { | |||||
protected JpushAllRidNotificationMessageRequest() { | protected JpushAllRidNotificationMessageRequest() { | ||||
super(ChannelServiceCmd.JPUSHALLRIDNOTIFICATION); | |||||
super(JpushServiceCmd.JPUSHALLRIDNOTIFICATION); | |||||
} | } | ||||
private String clientId; | private String clientId; | ||||
if (registrationId == null) | if (registrationId == null) | ||||
failParamInfo.add("registrationId列表"); | failParamInfo.add("registrationId列表"); | ||||
if (notificationTitle == null || notificationTitle.trim().isEmpty()) | if (notificationTitle == null || notificationTitle.trim().isEmpty()) | ||||
failParamInfo.add("通知栏的通知标题"); | failParamInfo.add("通知栏的通知标题"); | ||||
if (notificationExtras == null || notificationExtras.trim().isEmpty()) | if (notificationExtras == null || notificationExtras.trim().isEmpty()) | ||||
notificationExtras = "exts"; | notificationExtras = "exts"; | ||||
if (msgTitle == null || msgTitle.trim().isEmpty()) | if (msgTitle == null || msgTitle.trim().isEmpty()) | ||||
failParamInfo.add("消息标题"); | failParamInfo.add("消息标题"); | ||||
if (title == null || title.trim().isEmpty()) | if (title == null || title.trim().isEmpty()) | ||||
title = "消息标题"; | title = "消息标题"; | ||||
if (sendTime != null && sendTime.isBefore(LocalDateTime.now())) | if (sendTime != null && sendTime.isBefore(LocalDateTime.now())) | ||||
throw GlyServiceError.RESPONSE_ERROR.toHandleException("发送时间不能早于当前时间!"); | throw GlyServiceError.RESPONSE_ERROR.toHandleException("发送时间不能早于当前时间!"); | ||||
return this; | return this; | ||||
} | } | ||||
@Override | |||||
protected void validate(ErrorMsgBuilder builder) { | |||||
} | |||||
} | } |
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.common.entity.BaseEntity; | ||||
import cn.com.taiji.core.model.comm.protocol.ats.AbstractAtsResponse; | |||||
import cn.com.taiji.core.model.comm.protocol.ias.portal.AbstractPortalResponse; | import cn.com.taiji.core.model.comm.protocol.ias.portal.AbstractPortalResponse; | ||||
/*** | /*** | ||||
* 极光推送-指定的registrationId列表(android/ios)-通知栏通知和自定义消息 | * 极光推送-指定的registrationId列表(android/ios)-通知栏通知和自定义消息 | ||||
*/ | */ | ||||
public class JpushAllRidNotificationMessageResponse extends AbstractPortalResponse { | |||||
public class JpushAllRidNotificationMessageResponse extends AbstractAtsResponse { | |||||
} | } |
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; | |||||
} | |||||
} |
public enum ChannelServiceCmd implements SignServiceCommand { | public enum ChannelServiceCmd implements SignServiceCommand { | ||||
HLTSENDSHORT("短信发送", HltSendShortRequest.class), | HLTSENDSHORT("短信发送", HltSendShortRequest.class), | ||||
JPUSHALLRIDNOTIFICATION("极光推送发送", JpushAllRidNotificationMessageRequest.class), | |||||
QTZLEMAILSEND("邮件发送", QtzlEmailSendRequest.class), | QTZLEMAILSEND("邮件发送", QtzlEmailSendRequest.class), | ||||
QTKPUSHSEND("web端发送", QtkPushSendMessageRequest.class), | QTKPUSHSEND("web端发送", QtkPushSendMessageRequest.class), | ||||
; | ; |
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>{ | |||||
} |
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; | |||||
} | |||||
} |
/* 全局配置参数,详细的参数说明参见GlobalConfigBuilder的属性注释 */ | /* 全局配置参数,详细的参数说明参见GlobalConfigBuilder的属性注释 */ | ||||
GlobalConfigBuilder configBuilder = GlobalConfigBuilder.create(); | GlobalConfigBuilder configBuilder = GlobalConfigBuilder.create(); | ||||
configBuilder.setAppName("core"); | configBuilder.setAppName("core"); | ||||
configBuilder.setModule("issue"); | |||||
String pak = "issue"; | |||||
configBuilder.setModule("msgw"); | |||||
String pak = "msgw"; | |||||
configBuilder.setEntityPackage("cn/com/taiji/core/entity/"+pak); | configBuilder.setEntityPackage("cn/com/taiji/core/entity/"+pak); | ||||
configBuilder.setRepoPackage("cn/com/taiji/core/repo/jpa/"+pak); | configBuilder.setRepoPackage("cn/com/taiji/core/repo/jpa/"+pak); | ||||
configBuilder.setTableName("ISSUE_MULTIPLE_EQUITY"); | |||||
configBuilder.setTableName("MEGW_USER_MESSAGE"); | |||||
// 生成分页查询request | // 生成分页查询request | ||||
// configBuilder.setQueryField(List.of("intVal", "name", "mobile", "insertTime1", "insertTime2")); | // configBuilder.setQueryField(List.of("intVal", "name", "mobile", "insertTime1", "insertTime2")); | ||||
// configBuilder.setOrderBy("orderIndex"); | // configBuilder.setOrderBy("orderIndex"); |