美文网首页
每次重启服务时初始化一次数据

每次重启服务时初始化一次数据

作者: 星钻首席小管家 | 来源:发表于2021-07-30 16:05 被阅读0次
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;
    }

}

相关文章

  • 每次重启服务时初始化一次数据

  • 服务器注意事项

    远程服务器不允许关机,只能重启 重启时应该关闭服务 不要在服务器访问高峰运行高负载命令(大数据压缩解压缩、数据备份...

  • docker 镜像自启动

    在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:docker run ***...

  • Mac中启动、停止、重启MySql服务

    Mac中启动、停止、重启MySql服务 启动MySql服务: 停止MySql服务: 重启MySql服务: 数据库服...

  • Redis数据持久化

    1 redis是内存型的数据库 redis数据放在内存中重启服务器丢失数据重启redis服务丢失数据断电丢失数据 ...

  • CentOS 6.x 安装PostgreSQL9.6

    1.添加PRM包 2.安装PostgreSQL 9.5 3.初始化数据库 4.启动服务器 5.修改配置文件 6.重启服务

  • gitlab重启

    载入配置服务(初始化和修改/etc/gitlab/gitlab.rb 后需要重新载入) 启动服务 停止服务 重启服...

  • php及php-fpm浅析

    CGI http服务器与其他服务器通信的一种工具 传统CGI缺点:每次http服务器遇到动态数据都要重启解析器,...

  • Redis高可用之主从复制

    概念 持久化保证了即使 redis 服务重启也会丢失数据,因为 redis 服务重启后会将硬盘上持久化的数据恢复到...

  • Redis如何添加服务器 master slave

    步骤 步骤一:部署新redis服务器 ip为192.168.4.58 1)装包,初始化,启用集群功能,重启服务 ]...

网友评论

      本文标题:每次重启服务时初始化一次数据

      本文链接:https://www.haomeiwen.com/subject/ukrgmltx.html