|
@@ -1,8 +1,15 @@
|
|
|
package com.simuwang.manage.task;
|
|
|
|
|
|
+import com.simuwang.base.common.enums.TaskType;
|
|
|
+import com.simuwang.base.common.util.DateUtils;
|
|
|
import com.simuwang.base.mapper.CompanyEmailConfigMapper;
|
|
|
+import com.simuwang.base.mapper.EmailTaskInfoMapper;
|
|
|
import com.simuwang.base.pojo.dos.CompanyEmailConfigDO;
|
|
|
+import com.simuwang.base.pojo.dos.EmailTaskInfoDO;
|
|
|
import com.simuwang.manage.service.CompanyEmailConfigService;
|
|
|
+import com.simuwang.shiro.utils.UserUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
@@ -18,27 +25,69 @@ import java.util.stream.Collectors;
|
|
|
* Date: 2024/9/20 22:45
|
|
|
* Description: ${DESCRIPTION}
|
|
|
*/
|
|
|
-//@EnableScheduling
|
|
|
@Component
|
|
|
public class SendCompanyEmailTask {
|
|
|
-
|
|
|
-
|
|
|
+ private static final Logger log = LoggerFactory.getLogger(SendCompanyEmailTask.class);
|
|
|
@Autowired
|
|
|
private CompanyEmailConfigMapper companyEmailConfigMapper;
|
|
|
-
|
|
|
@Autowired
|
|
|
private CompanyEmailConfigService companyEmailConfigService;
|
|
|
-// @Scheduled(cron = "0 09 15 * * ?")
|
|
|
+ @Autowired
|
|
|
+ private EmailTaskInfoMapper emailTaskInfoMapper;
|
|
|
public void sendEmail(){
|
|
|
- List<CompanyEmailConfigDO> configDOList = companyEmailConfigMapper.getAllCompanyConfig();
|
|
|
- Map<String,List<CompanyEmailConfigDO>> companyListMap = configDOList.stream().collect(Collectors.groupingBy(e -> e.getCompanyId()));
|
|
|
- for(String companyId : companyListMap.keySet()){
|
|
|
- List<CompanyEmailConfigDO> configDOS = companyListMap.get(companyId);
|
|
|
- StringBuffer emails = new StringBuffer();
|
|
|
- for(CompanyEmailConfigDO configDO : configDOS){
|
|
|
- emails.append(configDO.getEmail()).append(";");
|
|
|
+ EmailTaskInfoDO emailTaskInfoDO = startEmailTask(null, 1);
|
|
|
+ try{
|
|
|
+ List<CompanyEmailConfigDO> configDOList = companyEmailConfigMapper.getAllCompanyConfig();
|
|
|
+ Map<String,List<CompanyEmailConfigDO>> companyListMap = configDOList.stream().collect(Collectors.groupingBy(e -> e.getCompanyId()));
|
|
|
+ for(String companyId : companyListMap.keySet()){
|
|
|
+ List<CompanyEmailConfigDO> configDOS = companyListMap.get(companyId);
|
|
|
+ StringBuffer emails = new StringBuffer();
|
|
|
+ for(CompanyEmailConfigDO configDO : configDOS){
|
|
|
+ emails.append(configDO.getEmail()).append(";");
|
|
|
+ }
|
|
|
+ companyEmailConfigService.sendEmail(companyId,emails.toString());
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage(),e);
|
|
|
+ endEmailTask(emailTaskInfoDO.getId(),-1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ endEmailTask(emailTaskInfoDO.getId(),2);
|
|
|
+ }
|
|
|
+ private void endEmailTask(Integer id, Integer taskStatus) {
|
|
|
+ try{
|
|
|
+ EmailTaskInfoDO emailTaskInfoDO = new EmailTaskInfoDO();
|
|
|
+ emailTaskInfoDO.setId(id);
|
|
|
+ emailTaskInfoDO.setTaskStatus(taskStatus);
|
|
|
+ emailTaskInfoDO.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ emailTaskInfoDO.setEndTime(DateUtils.getNowDate());
|
|
|
+ emailTaskInfoMapper.updateTaskStatusById(emailTaskInfoDO);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private EmailTaskInfoDO startEmailTask(String email,Integer taskStatus) {
|
|
|
+ EmailTaskInfoDO emailTaskInfoDO = new EmailTaskInfoDO();
|
|
|
+ try{
|
|
|
+ emailTaskInfoDO.setTaskName(TaskType.DELETION_NOTIFICATIONS.getInfo());
|
|
|
+ emailTaskInfoDO.setTaskType(TaskType.DELETION_NOTIFICATIONS.getType());
|
|
|
+ emailTaskInfoDO.setTaskStatus(taskStatus);
|
|
|
+ emailTaskInfoDO.setStartTime(DateUtils.getNowDate());
|
|
|
+ emailTaskInfoDO.setIsvalid(1);
|
|
|
+ emailTaskInfoDO.setEmail(email);
|
|
|
+ emailTaskInfoDO.setCreateTime(DateUtils.getNowDate());
|
|
|
+ emailTaskInfoDO.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ try{
|
|
|
+ emailTaskInfoDO.setCreatorId(UserUtils.getLoginUser().getUserId());
|
|
|
+ emailTaskInfoDO.setUpdaterId(UserUtils.getLoginUser().getUserId());
|
|
|
+ }catch (Exception e){
|
|
|
+
|
|
|
}
|
|
|
- companyEmailConfigService.sendEmail(companyId,emails.toString());
|
|
|
+ emailTaskInfoMapper.insert(emailTaskInfoDO);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
}
|
|
|
+ return emailTaskInfoDO;
|
|
|
}
|
|
|
}
|