package tkio.task; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import common.model.Account4Web; import common.model.Reminder; import common.model.User; import common.repository.Account4WebRepository; import common.repository.ReminderRepository; import common.repository.UserRepository; import dic.RoleEnum; import tkio.model.SalesManLeader; import tkio.repository.SalesManLeaderRepository; import tkio.service.SendEmailService; import util.ValidateUtil; /** * Created by mxq on 2017/12/25. */ public class SendEmailTask { @Autowired Account4WebRepository account4WebRepository; @Autowired SalesManLeaderRepository salesManLeaderRepository; @Autowired UserRepository userRepository; @Autowired ReminderRepository reminderRepository; @Autowired SendEmailService sendEmailService; public void task(){ //清空前一天数据 List<Account4Web> account4WebList = account4WebRepository.findPast(); if(ValidateUtil.isValid(account4WebList)){ Map<Long, List<String>> map = new HashMap<>(); for(Account4Web aw : account4WebList){ if(map.containsKey(0L)){ List<String> list = map.get(0L); list.add(aw.getEmail()); map.put(aw.getBussinessMan(), list); } else { List<String> list = new ArrayList<>(); list.add(aw.getEmail()); map.put(0L, list); } if(null != aw.getBussinessMan()){ if(map.containsKey(aw.getBussinessMan())){ List<String> list = map.get(aw.getBussinessMan()); list.add(aw.getEmail()); map.put(aw.getBussinessMan(), list); } else { List<String> list = new ArrayList<>(); list.add(aw.getEmail()); map.put(aw.getBussinessMan(), list); } } } List<SalesManLeader> salesManLeaders = salesManLeaderRepository.findAll(); Map<String, List<Long>> saleMap = new HashMap<>(); if(ValidateUtil.isValid(salesManLeaders)){ for(SalesManLeader sml : salesManLeaders){ List<Long> idList = new ArrayList<>(); if(sml.getId() == 0 || sml.getId() == sml.getLeader()){//不是主管 Long id = (long)sml.getId(); idList.add(id); }else{//是主管 for(SalesManLeader sml2 : salesManLeaders){ if(sml.getId() == sml2.getLeader()){ Long id = (long)sml.getId(); idList.add(id); } } } saleMap.put(sml.getEmail(), idList); } } List<Reminder> reminderList = reminderRepository.findAllDistinctFalse("tkio"); Map<String, Boolean> reMap = new HashMap<>(); if(ValidateUtil.isValid(reminderList)){ for(Reminder re : reminderList){ reMap.put(re.getEmail(), re.getRemindStatus()); } } List<User> userList = userRepository.findAll(); //暂时去掉给larry和tony发送提醒邮件 add_by_zhangsy_20180820 Iterator<User> it = userList.iterator(); while(it.hasNext()) { User user = it.next(); if(user.getEmail().equals("tony@reyun.com") || user.getEmail().equals("larry@reyun.com")) { it.remove(); } } for(User user : userList){ if(user.getRole().equals(RoleEnum.MANAGER.getKey())){ List<String> list = map.get(0L); List<String> newList = new ArrayList<>(); for(String em : list){ if (reMap.containsKey(em)){ if(reMap.get(em)){ newList.add(em); } }else{ newList.add(em); } } //sendEmail sendEmailService.send(user.getEmail(), newList); } else if(saleMap.containsKey(user.getId())){ List<Long> idlist = saleMap.get(user.getId()); List<String> newList = new ArrayList<>(); for(Long id : idlist){ if(map.containsKey(id)){ List<String> list = map.get(id); for(String em : list){ if (reMap.containsKey(em)){ if(reMap.get(em)){ newList.add(em); } }else{ newList.add(em); } } } } //sendEmail sendEmailService.send(user.getEmail(), newList); } } } } }