REQ-3046: 准备定义接口
This commit is contained in:
parent
752aff32e1
commit
da865253f6
@ -14,7 +14,7 @@ import java.util.List;
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class MessageTemplateV3Model {
|
||||
public class MessageTemplateModelV3 {
|
||||
|
||||
@NotNull private MessageTemplateV3 template;
|
||||
@NotNull private List<MessageTemplateGroupV3> groups;
|
||||
@ -45,6 +45,7 @@ import cn.axzo.msg.center.message.service.MessageGroupNodeService;
|
||||
import cn.axzo.msg.center.message.service.MessageTemplateGroupService;
|
||||
import cn.axzo.msg.center.message.service.MessageTemplateNewService;
|
||||
import cn.axzo.msg.center.message.service.PendingMessageNewService;
|
||||
import cn.axzo.msg.center.message.service.impl.v3.model.OldTemplateModelPropsPopulator;
|
||||
import cn.axzo.msg.center.message.service.todo.MigrateUtils;
|
||||
import cn.axzo.msg.center.message.service.todo.manage.TodoExt;
|
||||
import cn.axzo.msg.center.notices.common.enums.IsDeletedEnum;
|
||||
@ -155,6 +156,7 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService {
|
||||
private final PendingMessageBizConfig pendingMessageBizConfig;
|
||||
private final MessageGroupNodeDao messageGroupNodeDao;
|
||||
private final MessageRouterUtil messageRouterUtil;;
|
||||
private final OldTemplateModelPropsPopulator oldTemplateModelPropsPopulator;
|
||||
|
||||
@Value("${msg.center.pending.hide-seconds:60}")
|
||||
private int pendingDefaultHideSeconds;
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
package cn.axzo.msg.center.message.service.impl.v3.model;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Component
|
||||
public class OldTemplateModelPropsPopulator {
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
package cn.axzo.msg.center.message.service.impl.v3.model;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class ParseSettings {
|
||||
|
||||
public static ParseSettings none() {
|
||||
return new ParseSettings(false, false);
|
||||
}
|
||||
|
||||
public static ParseSettings parseUrl() {
|
||||
return new ParseSettings(true, false);
|
||||
}
|
||||
|
||||
public static ParseSettings parseProps() {
|
||||
return new ParseSettings(true, true);
|
||||
}
|
||||
|
||||
private final boolean parseUrl;
|
||||
private final boolean parseKv;
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package cn.axzo.msg.center.message.service.impl.v3.model;
|
||||
|
||||
import cn.axzo.msg.center.message.domain.dto.MessageTemplateModelV3;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Component
|
||||
class TemplateModelV3PropsParser {
|
||||
|
||||
void parse(MessageTemplateModelV3 model) {
|
||||
}
|
||||
|
||||
}
|
||||
@ -6,7 +6,7 @@ import cn.axzo.msg.center.dal.MessageTemplateV3Dao;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateButtonV3;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateGroupV3;
|
||||
import cn.axzo.msg.center.domain.entity.MessageTemplateV3;
|
||||
import cn.axzo.msg.center.message.domain.dto.MessageTemplateV3Model;
|
||||
import cn.axzo.msg.center.message.domain.dto.MessageTemplateModelV3;
|
||||
import cn.axzo.msg.center.service.enums.StatusEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@ -26,14 +26,14 @@ import static java.util.stream.Collectors.toList;
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MessageTemplateV3ModelService {
|
||||
public class TemplateModelV3Service {
|
||||
|
||||
private final MessageTemplateV3Dao messageTemplateV3Dao;
|
||||
private final MessageTemplateGroupV3Dao messageTemplateGroupV3Dao;
|
||||
private final MessageTemplateButtonV3Dao messageTemplateButtonV3Dao;
|
||||
private final V3ModelPropsParser v3ModelPropsParser;
|
||||
private final TemplateModelV3PropsParser propsParser;
|
||||
|
||||
public Optional<MessageTemplateV3Model> findEnabledByCode(String templateCode, ParseSettings parseSettings) {
|
||||
public Optional<MessageTemplateModelV3> findEnabledByCode(String templateCode, boolean parseProps) {
|
||||
MessageTemplateV3 template = messageTemplateV3Dao.lambdaQuery()
|
||||
.eq(MessageTemplateV3::getCode, templateCode)
|
||||
.eq(MessageTemplateV3::getIsDelete, 0)
|
||||
@ -41,18 +41,18 @@ public class MessageTemplateV3ModelService {
|
||||
.one();
|
||||
if (template == null)
|
||||
return Optional.empty();
|
||||
ModelBuilder builder = new ModelBuilder(parseSettings, templateCode);
|
||||
ModelBuilder builder = new ModelBuilder(parseProps, templateCode);
|
||||
return Optional.of(builder.build(template));
|
||||
}
|
||||
|
||||
public List<MessageTemplateV3Model> getByCodes(List<String> templateCodes, ParseSettings parseSettings) {
|
||||
public List<MessageTemplateModelV3> getByCodes(List<String> templateCodes, boolean parseProps) {
|
||||
if (CollectionUtils.isEmpty(templateCodes))
|
||||
return Collections.emptyList();
|
||||
List<MessageTemplateV3> templates = messageTemplateV3Dao.lambdaQuery()
|
||||
.in(MessageTemplateV3::getCode, templateCodes)
|
||||
.eq(MessageTemplateV3::getIsDelete, 0)
|
||||
.list();
|
||||
ModelBuilder builder = new ModelBuilder(parseSettings, templateCodes.toArray(new String[0]));
|
||||
ModelBuilder builder = new ModelBuilder(parseProps, templateCodes.toArray(new String[0]));
|
||||
return templates.stream()
|
||||
.map(builder::build)
|
||||
.collect(toList());
|
||||
@ -61,12 +61,12 @@ public class MessageTemplateV3ModelService {
|
||||
@RequiredArgsConstructor
|
||||
private class ModelBuilder {
|
||||
|
||||
final ParseSettings parseSettings;
|
||||
final boolean parseProps;
|
||||
final Map<String, List<MessageTemplateGroupV3>> templateCode2Groups;
|
||||
final Map<String, List<MessageTemplateButtonV3>> templateCode2Buttons;
|
||||
|
||||
ModelBuilder(ParseSettings parseSettings, String... templateCodes) {
|
||||
this.parseSettings = parseSettings;
|
||||
ModelBuilder(boolean parseProps, String... templateCodes) {
|
||||
this.parseProps = parseProps;
|
||||
if (templateCodes.length > 0) {
|
||||
templateCode2Groups = messageTemplateGroupV3Dao.lambdaQuery()
|
||||
.in(MessageTemplateGroupV3::getTemplateCode, Arrays.asList(templateCodes))
|
||||
@ -82,12 +82,12 @@ public class MessageTemplateV3ModelService {
|
||||
}
|
||||
}
|
||||
|
||||
MessageTemplateV3Model build(MessageTemplateV3 template) {
|
||||
MessageTemplateV3Model model = new MessageTemplateV3Model();
|
||||
MessageTemplateModelV3 build(MessageTemplateV3 template) {
|
||||
MessageTemplateModelV3 model = new MessageTemplateModelV3();
|
||||
model.setTemplate(template);
|
||||
model.setGroups(templateCode2Groups.getOrDefault(template.getCode(), Collections.emptyList()));
|
||||
model.setButtons(templateCode2Buttons.getOrDefault(template.getCode(), Collections.emptyList()));
|
||||
v3ModelPropsParser.parse(model, parseSettings);
|
||||
propsParser.parse(model);
|
||||
return model;
|
||||
}
|
||||
|
||||
@ -1,15 +0,0 @@
|
||||
package cn.axzo.msg.center.message.service.impl.v3.model;
|
||||
|
||||
import cn.axzo.msg.center.message.domain.dto.MessageTemplateV3Model;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Component
|
||||
class V3ModelPropsParser {
|
||||
|
||||
void parse(MessageTemplateV3Model model, ParseSettings parseSettings) {
|
||||
}
|
||||
|
||||
}
|
||||
@ -14,13 +14,9 @@ import cn.axzo.msg.center.service.enums.OrganizationTypeEnum;
|
||||
import cn.axzo.msg.center.service.enums.PendingMessageStateEnum;
|
||||
import cn.axzo.msg.center.service.enums.TodoQueryType;
|
||||
import cn.axzo.msg.center.service.enums.TodoType;
|
||||
import cn.axzo.msg.center.service.pending.response.v3.TodoModelV3;
|
||||
import cn.axzo.msg.center.service.template.response.MessageDetailStyle;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@ -250,6 +246,11 @@ public class PendingMessageResponse implements Serializable, TodoButtonProvider
|
||||
private JSONObject bizExtParamObj;
|
||||
private JSONObject routerExtParamObj;
|
||||
|
||||
/**
|
||||
* 基于分组的待办信息
|
||||
*/
|
||||
private TodoModelV3 modelV3;
|
||||
|
||||
public void adjustProposedButtons(boolean forPromoter) {
|
||||
ProposedButtonFilter.adjustProposedButtons(this, forPromoter);
|
||||
}
|
||||
|
||||
@ -0,0 +1,75 @@
|
||||
package cn.axzo.msg.center.service.pending.response.v3;
|
||||
|
||||
import cn.axzo.msg.center.service.domain.UrlConfig;
|
||||
import cn.axzo.msg.center.service.enums.PresetButtonType;
|
||||
import cn.axzo.msg.center.service.enums.RouterButtonSourceEnum;
|
||||
import cn.axzo.msg.center.service.enums.RouterCategoryEnum;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class TodoButtonV3 {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 按钮名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 预设按钮类型
|
||||
*/
|
||||
private PresetButtonType presetBtnType;
|
||||
|
||||
/**
|
||||
* 按钮来源
|
||||
*/
|
||||
private RouterButtonSourceEnum source;
|
||||
|
||||
/**
|
||||
* 路由类型
|
||||
*/
|
||||
private RouterCategoryEnum category;
|
||||
|
||||
/**
|
||||
* API地址,仅当按钮是接口调用类型时有值
|
||||
*/
|
||||
private String apiUrl;
|
||||
|
||||
/**
|
||||
* 按钮链接配置
|
||||
*/
|
||||
private UrlConfig urlConfig;
|
||||
|
||||
/**
|
||||
* 按钮style配置
|
||||
*/
|
||||
private JSONArray style;
|
||||
|
||||
/**
|
||||
* 执行人可见:true 不可见:false
|
||||
*/
|
||||
private Boolean executorShow;
|
||||
|
||||
/**
|
||||
* 待办状态可见可见:true 不可见:false
|
||||
*/
|
||||
private Boolean pendingShow;
|
||||
|
||||
/**
|
||||
* 按钮优先级,数值越大优先级越低
|
||||
*/
|
||||
private Integer priority;
|
||||
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package cn.axzo.msg.center.service.pending.response.v3;
|
||||
|
||||
import cn.axzo.msg.center.service.domain.GroupConfig;
|
||||
import cn.axzo.msg.center.service.enums.GroupType;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class TodoGroupV3 {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 分组名称, 公共组件时为空
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 分组类型. KV_VALUES: 键值信息; COMPONENT_WORKER:工人卡片
|
||||
*/
|
||||
private GroupType groupType;
|
||||
|
||||
// !! 分组内容
|
||||
|
||||
/**
|
||||
* 分组信息. groupType=KV_VALUES读这个信息
|
||||
*/
|
||||
private GroupConfig groupInfo;
|
||||
|
||||
/**
|
||||
* 工人卡片信息. groupType=COMPONENT_WORKER读这个信息
|
||||
* <p/>
|
||||
* 由yoke填充
|
||||
*/
|
||||
private WorkerInfo workerInfo;
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.msg.center.service.pending.response.v3;
|
||||
|
||||
import cn.axzo.msg.center.service.enums.GroupType;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static java.util.stream.Collectors.toList;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class TodoModelV3 {
|
||||
|
||||
private List<TodoGroupV3> groups;
|
||||
private List<TodoButtonV3> buttons;
|
||||
|
||||
public List<TodoGroupV3> getGroups(GroupType type) {
|
||||
return determineGroups().stream()
|
||||
.filter(group -> group.getGroupType() == type)
|
||||
.collect(toList());
|
||||
}
|
||||
|
||||
public List<TodoGroupV3> determineGroups() {
|
||||
return groups == null ? Collections.emptyList() : groups;
|
||||
}
|
||||
|
||||
public List<TodoButtonV3> determineButtons() {
|
||||
return buttons == null ? Collections.emptyList() : buttons;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
package cn.axzo.msg.center.service.pending.response.v3;
|
||||
|
||||
import cn.axzo.trade.datasecurity.sd.extension.annotation.SDCellPhoneField;
|
||||
import cn.axzo.trade.datasecurity.sd.extension.annotation.SDIdCardField;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author yanglin
|
||||
*/
|
||||
@Setter
|
||||
@Getter
|
||||
public class WorkerInfo {
|
||||
|
||||
/**
|
||||
* 员工姓名
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String icon;
|
||||
/**
|
||||
* 手机号码
|
||||
*/
|
||||
@SDCellPhoneField
|
||||
private String phone;
|
||||
/**
|
||||
* 手机号码密文
|
||||
*/
|
||||
private String phoneCiphertext;
|
||||
/**
|
||||
* 生日
|
||||
*/
|
||||
private Date birthday;
|
||||
/**
|
||||
* 名族
|
||||
*/
|
||||
private String nationality;
|
||||
/**
|
||||
* 身份证号
|
||||
*/
|
||||
@SDIdCardField
|
||||
private String idNumber;
|
||||
/**
|
||||
* 身份证号密文
|
||||
*/
|
||||
private String idNumberCiphertext;
|
||||
/**
|
||||
* 身份信息校验
|
||||
*/
|
||||
private Boolean identityValid;
|
||||
/**
|
||||
* 银行卡信息校验
|
||||
*/
|
||||
private Boolean cardValid;
|
||||
/**
|
||||
* 工种
|
||||
*/
|
||||
private String professionNames;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user