From 7c54930baa18007ad2fa7353fd2375b3f85e595a Mon Sep 17 00:00:00 2001 From: yanglin Date: Mon, 9 Dec 2024 14:52:37 +0800 Subject: [PATCH] =?UTF-8?q?REQ-3201:=20=E6=B7=BB=E5=8A=A0entity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/v3/msg/TemplateMessage.java | 10 +- .../domain/card}/AppVersionConfig.java | 6 +- .../service/domain/card}/CardExtField.java | 2 +- .../service/domain/card/StateImageConfig.java | 34 ++++ .../center/service/enums/CardSendState.java | 29 ++++ .../msg/center/service/enums/CardState.java | 45 +++++ .../center/service/enums/StateImageType.java | 30 ---- .../response/v3/ParsedModel3Visitor.java | 16 ++ .../response/v3/ParsedModelV3Walker.java | 33 ++++ .../response/v3/model/ParsedTemplateV3.java | 25 +++ .../java/cn/axzo/msg/center/dal/CardDao.java | 15 ++ .../cn/axzo/msg/center/dal/CardLogDao.java | 15 ++ .../axzo/msg/center/dal/CardMessageDao.java | 15 ++ .../msg/center/dal/mapper/CardLogMapper.java | 10 ++ .../msg/center/dal/mapper/CardMapper.java | 10 ++ .../center/dal/mapper/CardMessageMapper.java | 10 ++ .../axzo/msg/center/domain/entity/Card.java | 162 ++++++++++++++++++ .../center/domain/entity/CardButtonState.java | 23 +++ .../msg/center/domain/entity/CardLog.java | 73 ++++++++ .../msg/center/domain/entity/CardMessage.java | 78 +++++++++ .../domain/entity/MessageTemplateV3.java | 3 + .../domain/entity/StateImageConfig.java | 29 ---- 22 files changed, 607 insertions(+), 66 deletions(-) rename {msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity => msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card}/AppVersionConfig.java (61%) rename {msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity => msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card}/CardExtField.java (89%) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/StateImageConfig.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardSendState.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardState.java delete mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/StateImageType.java create mode 100644 msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java create mode 100644 msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardLogDao.java create mode 100644 msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardMessageDao.java create mode 100644 msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardLogMapper.java create mode 100644 msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMapper.java create mode 100644 msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMessageMapper.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/Card.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardButtonState.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardLog.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardMessage.java delete mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/StateImageConfig.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java index 5dd0168c..416c8096 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java @@ -3,9 +3,9 @@ package cn.axzo.msg.center.inside.notices.service.impl.v3.msg; import cn.axzo.framework.jackson.utility.JSON; import cn.axzo.im.center.api.feign.MessageApi; import cn.axzo.im.center.api.vo.ApiChannel; +import cn.axzo.im.center.api.vo.PersonAccountAttribute; import cn.axzo.im.center.api.vo.req.ExcludePushPayload; import cn.axzo.im.center.api.vo.req.SendTemplateMessageParam; -import cn.axzo.im.center.api.vo.req.SendTemplateMessageParam.ReceivePerson; import cn.axzo.im.center.common.enums.AppTypeEnum; import cn.axzo.msg.center.api.enums.MsgStateV3Enum; import cn.axzo.msg.center.api.request.v4.MessageSendBasicInfoV4; @@ -146,7 +146,7 @@ public class TemplateMessage { imReq.setMsgTemplateContent(JSON.toJSONString(sendVo)); imReq.setExcludePushPayloads(new ArrayList<>()); // 接收人 - ArrayList receivers = new ArrayList<>(); + ArrayList receivers = new ArrayList<>(); Set cmUnique = new HashSet<>(); Set cmpUnique = new HashSet<>(); @@ -175,7 +175,11 @@ public class TemplateMessage { imReq.getExcludePushPayloads().add(excludePush); } - receivers.add(new ReceivePerson(String.valueOf(receiver.getId()), ouId, appType)); + PersonAccountAttribute receiverAccount = new PersonAccountAttribute(); + receiverAccount.setPersonId(receiver.getId() + ""); + receiverAccount.setOuId(ouId); + receiverAccount.setAppType(appType); + receivers.add(receiverAccount); if (appType == AppTypeEnum.CM) cmUnique.add(receiver.getId()); else if (appType == AppTypeEnum.CMP) diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/AppVersionConfig.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/AppVersionConfig.java similarity index 61% rename from msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/AppVersionConfig.java rename to msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/AppVersionConfig.java index db26962a..7903069d 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/AppVersionConfig.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/AppVersionConfig.java @@ -1,6 +1,6 @@ -package cn.axzo.msg.center.domain.entity; +package cn.axzo.msg.center.service.domain.card; -import cn.axzo.msg.center.service.enums.PushTerminalEnum; +import cn.axzo.im.center.common.enums.AppTypeEnum; import lombok.Getter; import lombok.Setter; @@ -14,7 +14,7 @@ public class AppVersionConfig { /** * 端类型 */ - private PushTerminalEnum appType; + private AppTypeEnum appType; /** * 最低版本 diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardExtField.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/CardExtField.java similarity index 89% rename from msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardExtField.java rename to msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/CardExtField.java index f868f011..41fcb1b3 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardExtField.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/CardExtField.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.domain.entity; +package cn.axzo.msg.center.service.domain.card; import cn.axzo.msg.center.service.enums.CardElementType; import lombok.Getter; diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/StateImageConfig.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/StateImageConfig.java new file mode 100644 index 00000000..fe3b0650 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/domain/card/StateImageConfig.java @@ -0,0 +1,34 @@ +package cn.axzo.msg.center.service.domain.card; + +import cn.axzo.msg.center.service.enums.CardState; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.StringUtils; + +/** + * @author yanglin + */ +@Setter +@Getter +public class StateImageConfig { + + /** + * 状态类型 + */ + private CardState cardState; + + /** + * 图片地址(如果页面未更换素材, 不存入数据库, 便于统一修改) + */ + private String imageUrl; + + /** + * 是否启用 + */ + private boolean enabled; + + public String determineImageUrl() { + return StringUtils.isBlank(imageUrl) ? cardState.getDefaultImageUrl() : imageUrl; + } + +} \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardSendState.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardSendState.java new file mode 100644 index 00000000..bd7b72ce --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardSendState.java @@ -0,0 +1,29 @@ +package cn.axzo.msg.center.service.enums; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author yanglin + */ +@Getter +@RequiredArgsConstructor(access = AccessLevel.PRIVATE) +public enum CardSendState implements CodeDefinition { + + INIT_SEND_QUEUED("准备发送"), + INIT_SEND_SUCCESS("首次发送成功"), + INIT_SEND_FAIL("首次发送失败"), + UPDATE_SEND_SUCCESS("更新发送成功"), + UPDATE_SEND_FAIL("更新发送失败"), + + ; + + private final String description; + + @Override + public String getCode() { + return name(); + } + +} \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardState.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardState.java new file mode 100644 index 00000000..ec595d61 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/CardState.java @@ -0,0 +1,45 @@ +package cn.axzo.msg.center.service.enums; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.Arrays; +import java.util.List; + +import static java.util.stream.Collectors.toList; + +/** + * @author yanglin + */ +@Getter +@RequiredArgsConstructor(access = AccessLevel.PRIVATE) +public enum CardState implements CodeDefinition { + + PENDING("待处理", true, ""), + AGREED("已同意", true, "https://static.axzo.cn/fe-static/uni-icon/public/seal-4%23_%241699341908374.png"), + REJECTED("已拒绝", true, "https://static.axzo.cn/fe-static/uni-icon/public/seal-2%23_%241699341908381.png"), + REVOKED("已撤销", true, "https://static.axzo.cn/fe-static/uni-icon/native/%E5%8E%9F%E7%A8%BF%23_%241711338477975.png"), + ABORTED("已中止", true, "https://axzo-public.oss-cn-chengdu.aliyuncs.com/%E5%8D%B0%E7%AB%A0-%E8%AF%A6%E6%83%85end.png"), + COMPLETED("已处理", true, "https://static.axzo.cn/fe-static/uni-icon/public/seal-1%23_%241699341908382.png"), + END("已完结", true, ""), + IN_PROGRESS("进行中", false, null) + + ; + + private final String description; + private final boolean imageConfigurable; + private final String defaultImageUrl; + + @Override + public String getCode() { + return name(); + } + + public static List imageConfigurableStates() { + return Arrays.stream(values()) + .filter(CardState::isImageConfigurable) + .collect(toList()); + } + +} \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/StateImageType.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/StateImageType.java deleted file mode 100644 index d493bd6e..00000000 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/enums/StateImageType.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.axzo.msg.center.service.enums; - -import lombok.AccessLevel; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * @author yanglin - */ -@Getter -@AllArgsConstructor(access = AccessLevel.PRIVATE) -public enum StateImageType implements CodeDefinition { - - PENDING("待处理", ""), - AGREED("已同意", "https://static.axzo.cn/fe-static/uni-icon/public/seal-4%23_%241699341908374.png"), - REJECTED("已拒绝", "https://static.axzo.cn/fe-static/uni-icon/public/seal-2%23_%241699341908381.png"), - REVOKED("已撤销", "https://static.axzo.cn/fe-static/uni-icon/native/%E5%8E%9F%E7%A8%BF%23_%241711338477975.png"), - ABORTED("已中止", "https://axzo-public.oss-cn-chengdu.aliyuncs.com/%E5%8D%B0%E7%AB%A0-%E8%AF%A6%E6%83%85end.png"), - COMPLETED("已处理", "https://static.axzo.cn/fe-static/uni-icon/public/seal-1%23_%241699341908382.png"), - END("已完结", ""), - ; - - private final String description; - private final String defaultImageUrl; - - @Override - public String getCode() { - return name(); - } -} \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModel3Visitor.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModel3Visitor.java index 995eb8b5..a58b9432 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModel3Visitor.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModel3Visitor.java @@ -2,6 +2,9 @@ package cn.axzo.msg.center.service.pending.response.v3; import cn.axzo.msg.center.service.domain.DetailConfig; import cn.axzo.msg.center.service.domain.UrlConfig; +import cn.axzo.msg.center.service.domain.card.AppVersionConfig; +import cn.axzo.msg.center.service.domain.card.CardExtField; +import cn.axzo.msg.center.service.domain.card.StateImageConfig; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedButtonV3; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedGroupDetail; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedGroupInfo; @@ -86,4 +89,17 @@ public interface ParsedModel3Visitor { default void visitButtonUrl(ParsedButtonV3 button, SessionUrlInfo url) {} default void exitButtonUrl(ParsedButtonV3 button, SessionUrlInfo url) {} + + default void visitAppVersionConfig(AppVersionConfig cfg) {} + + default void exitAppVersionConfig(AppVersionConfig cfg) {} + + default void visitCardExtField(CardExtField field) {} + + default void exitCardExtField(CardExtField field) {} + + default void visitStateImageConfig(StateImageConfig cfg) {} + + default void exitStateImageConfig(StateImageConfig cfg) {} + } \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModelV3Walker.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModelV3Walker.java index e3ac7b60..2155392c 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModelV3Walker.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/ParsedModelV3Walker.java @@ -1,6 +1,8 @@ package cn.axzo.msg.center.service.pending.response.v3; import cn.axzo.msg.center.service.domain.CardUrlConfig; +import cn.axzo.msg.center.service.domain.card.AppVersionConfig; +import cn.axzo.msg.center.service.domain.card.CardExtField; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedButtonV3; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedCardUrl; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedGroupInfo; @@ -8,6 +10,7 @@ import cn.axzo.msg.center.service.pending.response.v3.model.ParsedGroupV3; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedKV; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3; import cn.axzo.msg.center.service.pending.response.v3.model.ParsedTemplateV3; +import org.apache.commons.collections4.CollectionUtils; import java.util.ArrayList; @@ -23,6 +26,9 @@ public class ParsedModelV3Walker { if (template != null) { visitor.visitTemplate(template); visitCard(visitor, template); + visitAppVersionConfig(visitor, template); + visitCardExtField(visitor, template); + visitStateImageConfig(visitor, template); } for (ParsedGroupV3 group : new ArrayList<>(model.determineGroups())) visitGroup(visitor, group); @@ -33,6 +39,33 @@ public class ParsedModelV3Walker { visitor.exitModel(model); } + private static void visitAppVersionConfig(ParsedModel3Visitor visitor, + ParsedTemplateV3 template) { + if (CollectionUtils.isEmpty(template.getAppVersionConfigs())) return; + for (AppVersionConfig cfg : template.getAppVersionConfigs()) { + visitor.visitAppVersionConfig(cfg); + visitor.exitAppVersionConfig(cfg); + } + } + + private static void visitCardExtField(ParsedModel3Visitor visitor, + ParsedTemplateV3 template) { + if (CollectionUtils.isEmpty(template.getCardExtFields())) return; + for (CardExtField cfg : new ArrayList<>(template.getCardExtFields())) { + visitor.visitCardExtField(cfg); + visitor.exitCardExtField(cfg); + } + } + + private static void visitStateImageConfig(ParsedModel3Visitor visitor, + ParsedTemplateV3 template) { + if (CollectionUtils.isEmpty(template.getStateImageConfigs())) return; + for (CardExtField cfg : new ArrayList<>(template.getCardExtFields())) { + visitor.visitCardExtField(cfg); + visitor.exitCardExtField(cfg); + } + } + private static void visitCard(ParsedModel3Visitor visitor, ParsedTemplateV3 template) { if (template == null) return; diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/ParsedTemplateV3.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/ParsedTemplateV3.java index cc327bde..92398de8 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/ParsedTemplateV3.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/v3/model/ParsedTemplateV3.java @@ -2,6 +2,9 @@ package cn.axzo.msg.center.service.pending.response.v3.model; import cn.axzo.msg.center.push.PushData; import cn.axzo.msg.center.service.domain.CardUrlConfig; +import cn.axzo.msg.center.service.domain.card.AppVersionConfig; +import cn.axzo.msg.center.service.domain.card.CardExtField; +import cn.axzo.msg.center.service.domain.card.StateImageConfig; import cn.axzo.msg.center.service.enums.CardUrlOpenStrategy; import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.StatusEnum; @@ -13,6 +16,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Getter; import lombok.Setter; +import java.util.List; + /** * @author yanglin */ @@ -100,6 +105,26 @@ public class ParsedTemplateV3 { */ private YesOrNo displayOnList; + /** + * app最低版本控制 + */ + private List appVersionConfigs; + + /** + * 卡片样式编码 + */ + private String cardStyleCode; + + /** + * 卡片样式扩展字段 + */ + private List cardExtFields; + + /** + * 卡片状态图片配置 + */ + private List stateImageConfigs; + public PushData parsePushData() { JSONObject pushData = this.pushData; if (pushData == null) diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java new file mode 100644 index 00000000..3aa7f40c --- /dev/null +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java @@ -0,0 +1,15 @@ +package cn.axzo.msg.center.dal; + +import cn.axzo.msg.center.dal.mapper.CardMapper; +import cn.axzo.msg.center.domain.entity.Card; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author yanglin + */ +@Slf4j +@Component +public class CardDao extends ServiceImpl { +} \ No newline at end of file diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardLogDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardLogDao.java new file mode 100644 index 00000000..730ba583 --- /dev/null +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardLogDao.java @@ -0,0 +1,15 @@ +package cn.axzo.msg.center.dal; + +import cn.axzo.msg.center.dal.mapper.CardLogMapper; +import cn.axzo.msg.center.domain.entity.CardLog; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author yanglin + */ +@Slf4j +@Component +public class CardLogDao extends ServiceImpl { +} \ No newline at end of file diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardMessageDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardMessageDao.java new file mode 100644 index 00000000..5d188f31 --- /dev/null +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardMessageDao.java @@ -0,0 +1,15 @@ +package cn.axzo.msg.center.dal; + +import cn.axzo.msg.center.dal.mapper.CardMessageMapper; +import cn.axzo.msg.center.domain.entity.CardMessage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author yanglin + */ +@Slf4j +@Component +public class CardMessageDao extends ServiceImpl { +} \ No newline at end of file diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardLogMapper.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardLogMapper.java new file mode 100644 index 00000000..a49d7990 --- /dev/null +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardLogMapper.java @@ -0,0 +1,10 @@ +package cn.axzo.msg.center.dal.mapper; + +import cn.axzo.msg.center.domain.entity.CardLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author yanglin + */ +public interface CardLogMapper extends BaseMapper { +} diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMapper.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMapper.java new file mode 100644 index 00000000..6e1b79bd --- /dev/null +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMapper.java @@ -0,0 +1,10 @@ +package cn.axzo.msg.center.dal.mapper; + +import cn.axzo.msg.center.domain.entity.Card; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author yanglin + */ +public interface CardMapper extends BaseMapper { +} diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMessageMapper.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMessageMapper.java new file mode 100644 index 00000000..8ca60bfa --- /dev/null +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/CardMessageMapper.java @@ -0,0 +1,10 @@ +package cn.axzo.msg.center.dal.mapper; + +import cn.axzo.msg.center.domain.entity.CardMessage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @author yanglin + */ +public interface CardMessageMapper extends BaseMapper { +} diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/Card.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/Card.java new file mode 100644 index 00000000..bcad0aae --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/Card.java @@ -0,0 +1,162 @@ +package cn.axzo.msg.center.domain.entity; + +import cn.axzo.foundation.dao.support.mysql.type.BaseListTypeHandler; +import cn.axzo.im.center.common.enums.AppTypeEnum; +import cn.axzo.im.center.common.enums.YesOrNo; +import cn.axzo.msg.center.domain.persistence.BaseEntityExt; +import cn.axzo.msg.center.domain.utils.IgnorePropsJsonTypeHandler; +import cn.axzo.msg.center.service.domain.card.CardExtField; +import cn.axzo.msg.center.service.enums.CardSendState; +import cn.axzo.msg.center.service.enums.CardState; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author yanglin + */ +@Setter +@Getter +@Accessors(chain = true) +@TableName(value = "card", autoResultMap = true) +public class Card extends BaseEntityExt { + + /** + * 请求批次号 + */ + private String batchNo; + + /** + * IM任务id + */ + private Long imInitTaskId; + + /** + * 卡片编码 + */ + private String identityCode; + + /** + * 业务编码 + */ + private String bizCode; + + /** + * 流程类代办的流程结点编码 + */ + private String subBizCode; + + /** + * 卡片模版编码 + */ + private String templateCode; + + /** + * 卡片发送状态. INIT_SEND_QUEUED: 准备发送; INIT_SEND_SUCCESS: 首次发送成功; INIT_SEND_FAIL: 首次发送成功; UPDATE_SEND_SUCCESS: 更新发送成功; UPDATE_SEND_FAIL: 更新发送失败; + */ + private CardSendState sendState; + + /** + * 卡片状态. PENDING: 待处理, AGREED: 已同意, REJECTED: 已拒绝, REVOKED: 已撤销, ABORTED: 已中止, COMPLETED: 已处理, END: 已完结, IN_PROGRESS: 进行中 + */ + private CardState cardState; + + /** + * 卡片信息 (解析后) + */ + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONObject cardContent; + + /** + * 业务扩展参数 + */ + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONObject bizParam; + + /** + * 路由扩展参数 + */ + @TableField(typeHandler = FastjsonTypeHandler.class) + private JSONObject routerParam; + + /** + * 发送者的端 + */ + private AppTypeEnum senderAppType; + + /** + * 接收的端 + */ + @TableField(typeHandler = AppTypeHandler.class) + private List receiverAppTypes; + + /** + * 发送人是否为机器人. YES: 是, NO: 否 + */ + private YesOrNo isSenderRobot; + + /** + * 发起者的自然人ID + */ + private Long senderPersonId; + + /** + * 发起人的单位id + */ + private Long senderOuId; + + /** + * 发起者项目id + */ + private Long senderWorkspaceId; + + /** + * 接收人自然人id + */ + private Long receiverPersonId; + + /** + * 接收人单位id + */ + private Long receiverOuId; + + /** + * 接收人项目id + */ + private Long receiverWorkspaceId; + + /** + * 按钮状态 + */ + @TableField(typeHandler = CardButtonStateHandler.class) + private List buttonStates; + + /** + * 状态戳 + */ + private String stateImage; + + /** + * 扩展字段 + */ + @TableField(typeHandler = IgnorePropsJsonTypeHandler.class) + private RecordExt recordExt; + + @Setter + @Getter + public static class RecordExt { + } + + // @formatter:off + public static class AppTypeHandler + extends BaseListTypeHandler {} + public static class CardButtonStateHandler + extends BaseListTypeHandler {} + // @formatter:on +} \ No newline at end of file diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardButtonState.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardButtonState.java new file mode 100644 index 00000000..b9702358 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardButtonState.java @@ -0,0 +1,23 @@ +package cn.axzo.msg.center.domain.entity; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author yanglin + */ +@Setter +@Getter +public class CardButtonState { + + /** + * 按钮名称 + */ + private String buttonCode; + + /** + * 是否已经执行(点击) + */ + private Boolean isPerformed; + +} \ No newline at end of file diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardLog.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardLog.java new file mode 100644 index 00000000..7a75cf51 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardLog.java @@ -0,0 +1,73 @@ +package cn.axzo.msg.center.domain.entity; + +import cn.axzo.msg.center.domain.persistence.BaseEntityExt; +import cn.axzo.msg.center.domain.utils.IgnorePropsJsonTypeHandler; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +/** + * @author yanglin + */ +@Setter +@Getter +@Accessors(chain = true) +@TableName(value = "card_log", autoResultMap = true) +public class CardLog extends BaseEntityExt { + /** + * 卡片唯一标识码 + */ + private String identityCode; + + /** + * 模版编码 + */ + private String templateCode; + + /** + * 业务编码 + */ + private String bizCode; + + /** + * 流程类代办的流程结点编码 + */ + private String subBizCode; + + /** + * 上下文 + */ + private String context; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 卡片内容 + */ + @TableField(typeHandler = FastjsonTypeHandler.class) + private Object cardContent; + + /** + * 日志内容 + */ + @TableField(typeHandler = FastjsonTypeHandler.class) + private Object logContent; + + /** + * 扩展字段 + */ + @TableField(typeHandler = IgnorePropsJsonTypeHandler.class) + private Card.RecordExt recordExt; + + @Setter + @Getter + public static class RecordExt { + } + +} \ No newline at end of file diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardMessage.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardMessage.java new file mode 100644 index 00000000..ef219a17 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/CardMessage.java @@ -0,0 +1,78 @@ +package cn.axzo.msg.center.domain.entity; + +import cn.axzo.im.center.common.enums.AppTypeEnum; +import cn.axzo.msg.center.domain.persistence.BaseEntityExt; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +/** + * @author yanglin + */ +@Setter +@Getter +@Accessors(chain = true) +@TableName(value = "card_message", autoResultMap = true) +public class CardMessage extends BaseEntityExt { + + /** + * 卡片id + */ + private Long cardId; + + /** + * 消息业务id + */ + private String bizMessageId; + + /** + * 业务编码 + */ + private String bizCode; + + /** + * 消息卡片id + */ + private String cardIdentityCode; + + /** + * 样式模版code + */ + private String templateCode; + + /** + * 发起者的自然人ID + */ + private Long senderPersonId; + + /** + * 发送者单位id + */ + private Long senderOuId; + + /** + * 发送者项目id + */ + private Long senderWorkspaceId; + + /** + * 接收人自然人id + */ + private Long receiverPersonId; + + /** + * 接收者单位id + */ + private Long receiveOuId; + + /** + * 接收者项目id + */ + private Long receiveWorkspaceId; + + /** + * 终端类型. CM: 工人端, CMP: 管理端 + */ + private AppTypeEnum appType; +} \ No newline at end of file diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageTemplateV3.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageTemplateV3.java index fcd4a11e..a4869e48 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageTemplateV3.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageTemplateV3.java @@ -5,6 +5,9 @@ import cn.axzo.im.center.api.feign.SendPriority; import cn.axzo.msg.center.domain.utils.IgnorePropsJsonTypeHandler; import cn.axzo.msg.center.push.PushData; import cn.axzo.msg.center.service.domain.CardUrlConfig; +import cn.axzo.msg.center.service.domain.card.AppVersionConfig; +import cn.axzo.msg.center.service.domain.card.CardExtField; +import cn.axzo.msg.center.service.domain.card.StateImageConfig; import cn.axzo.msg.center.service.enums.CardUrlOpenStrategy; import cn.axzo.msg.center.service.enums.MessageCategoryEnum; import cn.axzo.msg.center.service.enums.PushTerminalEnum; diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/StateImageConfig.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/StateImageConfig.java deleted file mode 100644 index 93826d56..00000000 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/StateImageConfig.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.axzo.msg.center.domain.entity; - -import cn.axzo.msg.center.service.enums.StateImageType; -import lombok.Getter; -import lombok.Setter; - -/** - * @author yanglin - */ -@Setter -@Getter -public class StateImageConfig { - - /** - * 状态类型 - */ - private StateImageType stateImageType; - - /** - * 图片地址 - */ - private String imageUrl; - - /** - * 是否启用 - */ - private Boolean enabled; - -} \ No newline at end of file