Commit cca7172d by zhangxingmin

push

parent d16dbf70
...@@ -110,11 +110,11 @@ public class ApiEmailSendAsyncService { ...@@ -110,11 +110,11 @@ public class ApiEmailSendAsyncService {
//非通用变量替换内容 //非通用变量替换内容
String content = StringUtil.replacePlaceholders(emailTask.getContent(), String content = StringUtil.replacePlaceholders(emailTask.getContent(),
recipient.getVariables()); recipient.getVariables());
//通用变量替换内容 // //通用变量替换内容
//检测内容是否含有通用变量 // //检测内容是否含有通用变量
if (StringUtil.hasTyVariables(emailTask.getContent())) { // if (StringUtil.hasTyVariables(emailTask.getContent())) {
content = apiEmailContactService.replacePlaceholders(content,recipient.getContactBizId()); // content = apiEmailContactService.replacePlaceholders(content,recipient.getContactBizId());
} // }
apiSendMailDto.setContent(content); apiSendMailDto.setContent(content);
}else if (StringUtil.hasPlaceholdersSimple(emailTask.getContent()) }else if (StringUtil.hasPlaceholdersSimple(emailTask.getContent())
&& StringUtils.isBlank(emailTask.getVariableGroupBizId())) { && StringUtils.isBlank(emailTask.getVariableGroupBizId())) {
......
...@@ -117,14 +117,14 @@ public class EmailSendJobHandler { ...@@ -117,14 +117,14 @@ public class EmailSendJobHandler {
if (StringUtil.hasPlaceholdersSimple(emailTask.getContent()) if (StringUtil.hasPlaceholdersSimple(emailTask.getContent())
&& StringUtils.isNotBlank(emailTask.getVariableGroupBizId())) { && StringUtils.isNotBlank(emailTask.getVariableGroupBizId())) {
//检测内容是否有占位符,有占位符并且变量分组唯一业务ID不为空就替换具体内容,替换具体内容:recipient.getVariables() //检测内容是否有占位符,有占位符并且变量分组唯一业务ID不为空就替换具体内容,替换具体内容:recipient.getVariables()
//非通用变量替换内容 //变量替换内容(固定+非固定变量)
String content = StringUtil.replacePlaceholders(emailTask.getContent(), String content = StringUtil.replacePlaceholders(emailTask.getContent(),
recipient.getVariables()); recipient.getVariables());
//通用变量替换内容 // //通用变量替换内容
//检测内容是否含有通用变量 // //检测内容是否含有通用变量
if (StringUtil.hasTyVariables(emailTask.getContent())) { // if (StringUtil.hasTyVariables(emailTask.getContent())) {
content = apiEmailContactService.replacePlaceholders(content,recipient.getContactBizId()); // content = apiEmailContactService.replacePlaceholders(content,recipient.getContactBizId());
} // }
apiSendMailDto.setContent(content); apiSendMailDto.setContent(content);
}else if (StringUtil.hasPlaceholdersSimple(emailTask.getContent()) }else if (StringUtil.hasPlaceholdersSimple(emailTask.getContent())
&& StringUtils.isBlank(emailTask.getVariableGroupBizId())) { && StringUtils.isBlank(emailTask.getVariableGroupBizId())) {
......
...@@ -13,6 +13,7 @@ import com.yd.common.utils.RandomStringGenerator; ...@@ -13,6 +13,7 @@ import com.yd.common.utils.RandomStringGenerator;
import com.yd.email.api.service.ApiEmailContactCcService; import com.yd.email.api.service.ApiEmailContactCcService;
import com.yd.email.api.service.ApiEmailContactService; import com.yd.email.api.service.ApiEmailContactService;
import com.yd.email.feign.dto.ApiEmailContactCcDto; import com.yd.email.feign.dto.ApiEmailContactCcDto;
import com.yd.email.feign.enums.GeneralVariableEnum;
import com.yd.email.feign.enums.RecipientTypeEnum; import com.yd.email.feign.enums.RecipientTypeEnum;
import com.yd.email.feign.request.ApiEmailContactAddRequest; import com.yd.email.feign.request.ApiEmailContactAddRequest;
import com.yd.email.feign.request.ApiEmailContactEditRequest; import com.yd.email.feign.request.ApiEmailContactEditRequest;
...@@ -205,9 +206,9 @@ public class ApiEmailContactServiceImpl implements ApiEmailContactService { ...@@ -205,9 +206,9 @@ public class ApiEmailContactServiceImpl implements ApiEmailContactService {
String companyName = Optional.ofNullable(emailContact.getCompanyName()) String companyName = Optional.ofNullable(emailContact.getCompanyName())
.orElse(""); .orElse("");
result = result.replace("{{name}}", name) result = result.replace(GeneralVariableEnum.GENERAL_CONTACT.getItemValue(), name)
.replace("{{appellation}}", appellation) .replace(GeneralVariableEnum.GENERAL_APPELLATION.getItemValue(), appellation)
.replace("{{compantName}}", companyName); .replace(GeneralVariableEnum.GENERAL_COMPANTNAME.getItemValue(), companyName);
} }
return result; return result;
......
...@@ -9,6 +9,7 @@ import com.yd.common.utils.UUIDUtil; ...@@ -9,6 +9,7 @@ import com.yd.common.utils.UUIDUtil;
import com.yd.email.api.service.ApiEmailFileService; import com.yd.email.api.service.ApiEmailFileService;
import com.yd.email.api.service.ApiEmailVariableGroupService; import com.yd.email.api.service.ApiEmailVariableGroupService;
import com.yd.email.feign.dto.ApiEmailVariableDto; import com.yd.email.feign.dto.ApiEmailVariableDto;
import com.yd.email.feign.enums.GeneralVariableEnum;
import com.yd.email.feign.request.ApiExportVariableExcelRequest; import com.yd.email.feign.request.ApiExportVariableExcelRequest;
import com.yd.email.feign.request.ApiImportVariableExcelRequest; import com.yd.email.feign.request.ApiImportVariableExcelRequest;
import com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse; import com.yd.email.feign.response.ApiEmailVariableGroupDetailResponse;
...@@ -50,8 +51,13 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -50,8 +51,13 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
@Autowired @Autowired
private IEmailContactImportService iEmailContactImportService; private IEmailContactImportService iEmailContactImportService;
// 固定表头字段 // 固定表头字段-通用变量
private static final Set<String> FIXED_HEADERS = new HashSet<>(Arrays.asList("联系人", "邮箱", "抄送人")); private static final Set<String> FIXED_HEADERS = new HashSet<>(Arrays.asList(
GeneralVariableEnum.GENERAL_CONTACT.getItemLabel(),
GeneralVariableEnum.GENERAL_EMAIL.getItemLabel(),
GeneralVariableEnum.GENERAL_CC_EMAIL.getItemLabel(),
GeneralVariableEnum.GENERAL_APPELLATION.getItemLabel(),
GeneralVariableEnum.GENERAL_COMPANTNAME.getItemLabel()));
/** /**
* 导出-变量excel * 导出-变量excel
...@@ -118,15 +124,13 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -118,15 +124,13 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
log.info("表头信息: {}", importResult.getHeaders()); log.info("表头信息: {}", importResult.getHeaders());
log.info("导入数据条数: {}", importResult.getTotalCount()); log.info("导入数据条数: {}", importResult.getTotalCount());
// 获取变量字段(排除固定字段) //根据表头字段(变量字段)中文名查询对应的英文名,返回集合(固定+非固定)
List<String> variableHeaders = getVariableHeaders(importResult.getHeaders()); List<EmailVariable> emailVariableList = getEmailVariableList(importResult.getHeaders());
//根据非固定表头字段(变量字段)中文名查询对应的英文名,返回集合
List<EmailVariable> emailVariableList = getEmailVariableList(variableHeaders);
// 处理每一行数据 // 处理每一行数据
List<EmailContactImport> contactImports = processImportData(importResult.getData(), List<EmailContactImport> contactImports = processImportData(importResult.getData(),
importResult.getHeaders(),
sessionId, sessionId,
variableHeaders,
emailVariableList); emailVariableList);
// 批量保存到数据库 // 批量保存到数据库
...@@ -171,7 +175,7 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -171,7 +175,7 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
} }
/** /**
* 根据非固定表头字段(变量字段)中文名查询对应的英文名,返回集合 * 根据表头字段(变量字段)中文名查询对应的英文名,返回集合
* @param variableHeaders * @param variableHeaders
* @return * @return
*/ */
...@@ -184,14 +188,14 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -184,14 +188,14 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
/** /**
* 处理导入数据 * 处理导入数据
* @param data * @param data
* @param headers
* @param sessionId * @param sessionId
* @param variableHeaders
* @param emailVariableList * @param emailVariableList
* @return * @return
*/ */
private List<EmailContactImport> processImportData(List<Map<String, Object>> data, private List<EmailContactImport> processImportData(List<Map<String, Object>> data,
List<String> headers,
String sessionId, String sessionId,
List<String> variableHeaders,
List<EmailVariable> emailVariableList) { List<EmailVariable> emailVariableList) {
List<EmailContactImport> contactImports = new ArrayList<>(); List<EmailContactImport> contactImports = new ArrayList<>();
...@@ -205,12 +209,12 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -205,12 +209,12 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
// 设置固定字段 // 设置固定字段
contactImport.setImportBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EMAIL_CONTACT_IMPORT.getCode())); contactImport.setImportBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_EMAIL_CONTACT_IMPORT.getCode()));
contactImport.setSessionId(sessionId); contactImport.setSessionId(sessionId);
contactImport.setReceiveName(getStringValue(row, "联系人")); contactImport.setReceiveName(getStringValue(row, GeneralVariableEnum.GENERAL_CONTACT.getItemLabel()));
contactImport.setReceiveEmail(getStringValue(row, "邮箱")); contactImport.setReceiveEmail(getStringValue(row, GeneralVariableEnum.GENERAL_EMAIL.getItemLabel()));
contactImport.setCcEmail(getStringValue(row, "抄送人")); contactImport.setCcEmail(getStringValue(row, GeneralVariableEnum.GENERAL_CC_EMAIL.getItemLabel()));
// 处理变量数据,转换为JSON格式 // 处理变量数据,转换为JSON格式
String variablesJson = processVariableData(row, variableHeaders,emailVariableList); String variablesJson = processVariableData(row,headers,emailVariableList);
contactImport.setVariables(variablesJson); contactImport.setVariables(variablesJson);
// 设置其他字段 // 设置其他字段
...@@ -225,19 +229,20 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -225,19 +229,20 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
/** /**
* 处理变量数据,转换为JSON格式 * 处理变量数据,转换为JSON格式
* @param row * @param row
* @param variableHeaders * @param headers
* @param emailVariableList
* @return * @return
*/ */
private String processVariableData(Map<String, Object> row, private String processVariableData(Map<String, Object> row,
List<String> variableHeaders, List<String> headers,
List<EmailVariable> emailVariableList) { List<EmailVariable> emailVariableList) {
List<Map<String, String>> variableList = new ArrayList<>(); List<Map<String, String>> variableList = new ArrayList<>();
if (CollectionUtils.isEmpty(variableHeaders)) { if (CollectionUtils.isEmpty(emailVariableList)) {
return null; return "";
} }
for (String header : variableHeaders) { for (String header : headers) {
String value = getStringValue(row, header); String value = getStringValue(row, header);
if (StringUtils.isNotBlank(value)) { if (StringUtils.isNotBlank(value)) {
Map<String, String> variableMap = new HashMap<>(); Map<String, String> variableMap = new HashMap<>();
...@@ -262,7 +267,7 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService { ...@@ -262,7 +267,7 @@ public class ApiEmailFileServiceImpl implements ApiEmailFileService {
*/ */
public String convertToEnKey(String cnKey, List<EmailVariable> emailVariableList) { public String convertToEnKey(String cnKey, List<EmailVariable> emailVariableList) {
if (StringUtils.isBlank(cnKey) || CollectionUtils.isEmpty(emailVariableList)) { if (StringUtils.isBlank(cnKey) || CollectionUtils.isEmpty(emailVariableList)) {
return null; return "";
} }
return emailVariableList.stream() return emailVariableList.stream()
......
package com.yd.email.feign.enums;
public enum GeneralVariableEnum {
GENERAL_CONTACT("联系人","{{name}}"),
GENERAL_EMAIL("邮箱","{{email}}"),
GENERAL_CC_EMAIL("抄送人","{{ccEmail}}"),
GENERAL_APPELLATION("称谓","{{appellation}}"),
GENERAL_COMPANTNAME("公司","{{compantName}}"),
;
//字典项标签(名称)
private String itemLabel;
//字典项值
private String itemValue;
//构造函数
GeneralVariableEnum(String itemLabel, String itemValue) {
this.itemLabel = itemLabel;
this.itemValue = itemValue;
}
public String getItemLabel() {
return itemLabel;
}
public String getItemValue() {
return itemValue;
}
}
...@@ -23,4 +23,5 @@ public class ApiEmailVariableAddRequest { ...@@ -23,4 +23,5 @@ public class ApiEmailVariableAddRequest {
* 变量描述 * 变量描述
*/ */
private String description; private String description;
} }
...@@ -36,4 +36,5 @@ public class ApiEmailVariableEditRequest { ...@@ -36,4 +36,5 @@ public class ApiEmailVariableEditRequest {
* 变量描述 * 变量描述
*/ */
private String description; private String description;
} }
...@@ -21,4 +21,8 @@ public class ApiEmailVariablePageRequest extends PageDto { ...@@ -21,4 +21,8 @@ public class ApiEmailVariablePageRequest extends PageDto {
*/ */
private String queryContent; private String queryContent;
/**
* 是否通用 0-否 1-是 默认0
*/
private Integer isGeneral;
} }
...@@ -62,4 +62,9 @@ public class ApiEmailVariableDetailResponse { ...@@ -62,4 +62,9 @@ public class ApiEmailVariableDetailResponse {
*/ */
private LocalDateTime updateTime; private LocalDateTime updateTime;
/**
* 是否通用 0-否 1-是 默认0
*/
private Integer isGeneral;
} }
...@@ -36,4 +36,9 @@ public class ApiEmailVariablePageResponse { ...@@ -36,4 +36,9 @@ public class ApiEmailVariablePageResponse {
* 创建时间 * 创建时间
*/ */
private LocalDateTime createTime; private LocalDateTime createTime;
/**
* 是否通用 0-否 1-是 默认0
*/
private Integer isGeneral;
} }
...@@ -3,6 +3,7 @@ package com.yd.email.feign.utils; ...@@ -3,6 +3,7 @@ package com.yd.email.feign.utils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yd.email.feign.enums.GeneralVariableEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -48,7 +49,9 @@ public class StringUtil { ...@@ -48,7 +49,9 @@ public class StringUtil {
if (StringUtils.isBlank(content)) { if (StringUtils.isBlank(content)) {
return false; return false;
} }
return (content.contains("{{name}}") || content.contains("{{appellation}}") || content.contains("{{compantName}}")); return (content.contains(GeneralVariableEnum.GENERAL_CONTACT.getItemValue())
|| content.contains(GeneralVariableEnum.GENERAL_APPELLATION.getItemValue())
|| content.contains(GeneralVariableEnum.GENERAL_COMPANTNAME.getItemValue()));
} }
/** /**
......
...@@ -55,6 +55,12 @@ public class EmailVariable implements Serializable { ...@@ -55,6 +55,12 @@ public class EmailVariable implements Serializable {
private String description; private String description;
/** /**
* 是否通用 0-否 1-是 默认0
*/
@TableField("is_general")
private Integer isGeneral;
/**
* 通用备注 * 通用备注
*/ */
@TableField("remark") @TableField("remark")
......
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
and (ev.variable_name_en like concat('%', #{request.queryContent}, '%') or ev.variable_name_cn like concat('%', #{request.queryContent}, '%')) and (ev.variable_name_en like concat('%', #{request.queryContent}, '%') or ev.variable_name_cn like concat('%', #{request.queryContent}, '%'))
</if> </if>
<if test="request.isGeneral != null">
and ev.is_general = #{request.isGeneral}
</if>
and ev.is_deleted = 0 and ev.is_deleted = 0
</where> </where>
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment