ContractSendEmailThread.java 2.87 KB
Newer Older
manxiaoqiang committed
1 2 3
package common.task;

import common.context.AppUtils;
manxiaoqiang committed
4
import common.model.Account4Web;
manxiaoqiang committed
5 6 7 8 9 10 11 12 13 14 15
import common.model.Contract;
import common.model.User;
import common.model.UserLog;
import common.repository.UserLogRepository;
import common.repository.UserRepository;
import dic.RoleTypeEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import tkio.model.PackageType;
import tkio.repository.PackageTypeRepository;
manxiaoqiang committed
16
import tkio.service.TkioAccountService;
manxiaoqiang committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
import util.DateUtil;
import util.IPAddrUtil;
import util.MailUtils;
import util.ValidateUtil;

import javax.servlet.http.HttpServletRequest;
import java.util.*;

/**
 * Created by zxy on 2017/12/15.
 */
public class ContractSendEmailThread
        extends Thread
{
    protected Logger logger = LoggerFactory.getLogger(ContractSendEmailThread.class);

    private PackageTypeRepository packageTypeRepository = AppUtils.getApplicationContext().getBean(PackageTypeRepository.class);
    private UserRepository userRepository = AppUtils.getApplicationContext().getBean(UserRepository.class);
manxiaoqiang committed
35
    private TkioAccountService tkioAccountService = AppUtils.getApplicationContext().getBean(TkioAccountService.class);
manxiaoqiang committed
36 37 38 39 40 41 42 43 44 45 46 47

    private Contract contract;

    public ContractSendEmailThread(Contract contract) {
        this.contract = contract;
    }

    @Override
    public void run()
    {
        Map<Long, String> packageMap = getPackageMap();
        StringBuffer sb = new StringBuffer();
manxiaoqiang committed
48 49
        Account4Web one = tkioAccountService.findOne(this.contract.getEmail());
        sb.append("公司 : "+ one.getCompany() +"  账号 :" + this.contract.getEmail() + " 签约了," + " 套餐 :" +
manxiaoqiang committed
50 51 52 53 54
                packageMap.get(this.contract.getPriceLevel()) + ",开始时间 " + this.contract.getStartDate()
                + ",结束时间 " +  this.contract.getEndDate());
        User user = userRepository.findOne(this.contract.getSale());
        List<String> list = new ArrayList<>();
        list.add(user.getEmail());
manxiaoqiang committed
55
        if(!user.getRoleType().equals(RoleTypeEnum.MANAGER.getKey())){
manxiaoqiang committed
56 57
            List<User> userList = userRepository.findOneDepartment(user.getRole());
            for(User u : userList){
manxiaoqiang committed
58
                if (u.getRoleType().equals(RoleTypeEnum.MANAGER.getKey())){
manxiaoqiang committed
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
                    list.add(u.getEmail());
                }
            }
        }


        try {
            MailUtils.sendSimpleEmail("新建合同",  sb.toString(),list);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public Map<Long, String> getPackageMap(){
        List<PackageType> typeList = packageTypeRepository.findAll();
        Map<Long, String> typeMap = new HashMap<>();
        if(ValidateUtil.isValid(typeList)){
            for(PackageType s: typeList){
                typeMap.put(s.getId(), s.getPackageName());
            }
        }
        return typeMap;
    }
}