package com.gustz.dove.cli.api.message.vo;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.gustz.dove.cli.api.service.dict.MsgTypeDict;
import com.gustz.dove.cli.api.service.dict.YnDict;
import com.gustz.dove.cli.api.service.vo.AbstCliBaseVo;
/**
*
* TODO: 公用复合消息类
*
* @author ZHENFENG ZHANG
* @since [ Aug 3, 2015 ]
*/
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class CommCpMsg extends AbstCliBaseVo {
private static final long serialVersionUID = 1L;
/**
* 特殊情况:指定为@all,则向关注该企业应用的全部成员发送
*/
public static final String TO_ALL_USER = "@all";
/**
* 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
*/
@JsonProperty("touser")
private String toUser;
private String[] toUserExt;
/**
* 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
*/
@JsonProperty("toparty")
private String toDept;
private String[] toDeptExt;
/**
* 标签ID列表,多个接收者用‘|’分隔。当touser为@all时忽略本参数
*/
@JsonProperty("totag")
private String toTag;
private String[] toTagExt;
/**
* 消息类型
*/
@JsonProperty("msgtype")
private MsgTypeDict msgType;
/**
* 企业应用的id,整型。可在应用的设置页面查看
*/
@JsonProperty("agentid")
private String agentId;
/**
* 表示是否是保密消息,0表示否,1表示是,默认0
*/
@JsonProperty("safe")
private YnDict safe = YnDict.N;
public CommCpMsg() {
super();
}
public CommCpMsg(String toUser, MsgTypeDict msgType) {
this();
this.toUser = toUser;
this.msgType = msgType;
}
public CommCpMsg(String toUser, String toDept, String toTag, MsgTypeDict msgType, String agentId, YnDict safe) {
this();
this.toUser = toUser;
this.toDept = toDept;
this.toTag = toTag;
this.msgType = msgType;
this.agentId = agentId;
this.safe = safe;
}
public void setToUserExt(String[] toUserExt) {
//this.toUserExt = toUserExt;
String text = this.fmtText(toUserExt);
if (text != null && !text.isEmpty()) {
this.setToUser(text);
}
}
public void setToDeptExt(String[] toDeptExt) {
// this.toDeptExt = toDeptExt;
String text = this.fmtText2(toDeptExt);
if (text != null && !text.isEmpty()) {
this.setToDept(text);
}
}
public void setToTagExt(String[] toTagExt) {
//this.toTagExt = toTagExt;
String text = this.fmtText2(toTagExt);
if (text != null && !text.isEmpty()) {
this.setToTag(text);
}
}
private String fmtText(String[] ss) {
String text = "";
if (ss != null && ss.length > 0) {
for (int i = 0; i < ss.length; i++) {
if (i > 0) {
text += "|";
}
text += ss[i];
}
}
return text;
}
private String fmtText2(String[] ss) {
String text = " ";
if (ss != null && ss.length > 0) {
for (int i = 0; i < ss.length; i++) {
if (i > 0) {
text += " | ";
}
text += ss[i];
}
text += " ";
}
return text;
}
///////////////////////////////////////
public String[] getToUserExt() {
return toUserExt;
}
public String[] getToDeptExt() {
return toDeptExt;
}
public String[] getToTagExt() {
return toTagExt;
}
public String getToUser() {
return toUser;
}
public void setToUser(String toUser) {
this.toUser = toUser;
}
public String getToDept() {
return toDept;
}
public void setToDept(String toDept) {
this.toDept = toDept;
}
public String getToTag() {
return toTag;
}
public void setToTag(String toTag) {
this.toTag = toTag;
}
public MsgTypeDict getMsgType() {
return msgType;
}
public void setMsgType(MsgTypeDict msgType) {
this.msgType = msgType;
}
public String getAgentId() {
return agentId;
}
public void setAgentId(String agentId) {
this.agentId = agentId;
}
public YnDict getSafe() {
return safe;
}
public void setSafe(YnDict safe) {
this.safe = safe;
}
}