Commit cca7172d by zhangxingmin

push

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