package com.zyjournals.web.front.module;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zyjournals.lib.common.utils.Constant;
import com.zyjournals.lib.module.journal.domain.JournalMailTemplate;
import com.zyjournals.lib.module.journal.mapper.JournalMailTemplateMapper;
import com.zyjournals.lib.module.journal.vo.InitializeTemplateData;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ResourceUtils;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.List;
/**
* 初始化数据
* @author sp.
* <br/>date: 2021-07-19.
*/
@Component
public class InitializeData {
@Resource
ResourceLoader resourceLoader;
@Resource
private JournalMailTemplateMapper journalMailTemplateMapper;
private String url = "emai-payl-variable.html,email-pay-cancel-variable.html,email-copyright.html," +
"email-task-back.html,email-task-begin.html,email-task-finish.html,email-task-overtime.html" +
",email-task-stop.html,email-task-urge.html";
/**
* 初始化邮件模版数据
*/
@PostConstruct
public void initializeMailTemplateData(){
try {
org.springframework.core.io.Resource[] resources =
new PathMatchingResourcePatternResolver()
.getResources(ResourceUtils.CLASSPATH_URL_PREFIX + "templates/email-templates/*.*");
List<String> list = Arrays.asList(url.split(","));
for (org.springframework.core.io.Resource resource : resources) {
if(list.contains(resource.getFilename())){
InputStream is = resource.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
StringBuilder data = new StringBuilder();
String read = null;
while((read = br.readLine()) != null) {
data.append(read);
}
br.close();
isr.close();
is.close();
String name = resource.getFilename().substring(0, resource.getFilename().lastIndexOf("."));
List<JournalMailTemplate> journalMailTemplates = journalMailTemplateMapper.selectList(new LambdaQueryWrapper<JournalMailTemplate>()
.eq(JournalMailTemplate::getTemplateName, name)
.eq(JournalMailTemplate::getFlag, Constant.ZERO));
if(ObjectUtils.isEmpty(journalMailTemplates)){
//组装类
JournalMailTemplate template = new JournalMailTemplate();
template.setFlag(Constant.ZERO);
template.setContent(data.toString());
//类型
InitializeTemplateData templateData = getData(resource.getFilename());
template.setType(templateData.getType());
template.setSubject(templateData.getName());
template.setTemplateName(name);
journalMailTemplateMapper.insert(template);
System.out.println("---------------- 模版:"+name+"初始化成功!---------------");
}else {
JournalMailTemplate template = journalMailTemplates.get(0);
template.setContent(data.toString());
journalMailTemplateMapper.updateById(template);
System.out.println("---------------- 模版:"+name+"更新成功!---------------");
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 转换类型
* @param name
* @return
*/
private InitializeTemplateData getData(String name) {
InitializeTemplateData data = new InitializeTemplateData();
switch (name){
case "emai-payl-variable.html":
data.setType(17);
data.setName("费用通知邮件模版");
break;
case "email-pay-cancel-variable.html":
data.setType(18);
data.setName("费用取消邮件模版");
break;
case "email-copyright.html":
data.setType(19);
data.setName("版权转让协议邮件模版");
break;
case "email-task-begin.html":
data.setType(11);
data.setName("任务发起邮件模版");
break;
case "email-task-finish.html":
data.setType(12);
data.setName("任务确认完成邮件模版");
break;
case "email-task-back.html":
data.setType(13);
data.setName("任务返修邮件模版");
break;
case "email-task-urge.html":
data.setType(14);
data.setName("任务催促邮件模版");
break;
case "email-task-stop.html":
data.setType(15);
data.setName("任务暂停邮件模版");
break;
case "email-task-overtime.html":
data.setType(16);
data.setName("任务逾期邮件模版");
break;
}
return data;
}
}
网友评论