|
@@ -6,15 +6,20 @@ import cn.hutool.core.exceptions.ExceptionUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.simuwang.base.common.conts.DateConst;
|
|
|
+import com.simuwang.base.common.enums.TaskType;
|
|
|
+import com.simuwang.base.common.util.DateUtils;
|
|
|
import com.simuwang.base.common.util.EmailUtil;
|
|
|
import com.simuwang.base.mapper.EmailFileInfoMapper;
|
|
|
import com.simuwang.base.mapper.EmailParseInfoMapper;
|
|
|
+import com.simuwang.base.mapper.EmailTaskInfoMapper;
|
|
|
import com.simuwang.base.pojo.dos.EmailFileInfoDO;
|
|
|
import com.simuwang.base.pojo.dos.EmailParseInfoDO;
|
|
|
+import com.simuwang.base.pojo.dos.EmailTaskInfoDO;
|
|
|
import com.simuwang.base.pojo.dto.EmailContentInfoDTO;
|
|
|
import com.simuwang.base.pojo.dto.EmailFundNavDTO;
|
|
|
import com.simuwang.base.pojo.dto.EmailInfoDTO;
|
|
|
import com.simuwang.base.pojo.dto.MailboxInfoDTO;
|
|
|
+import com.simuwang.shiro.utils.UserUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
@@ -43,18 +48,71 @@ public class EmailParseApiServiceImpl implements EmailParseApiService {
|
|
|
private final EmailParseInfoMapper emailParseInfoMapper;
|
|
|
private final EmailFileInfoMapper emailFileInfoMapper;
|
|
|
private final ThreadPoolTaskExecutor asyncExecutor;
|
|
|
+ private final EmailTaskInfoMapper emailTaskInfoMapper;
|
|
|
|
|
|
public EmailParseApiServiceImpl(EmailParseService emailParseService, EmailParseInfoMapper emailParseInfoMapper,
|
|
|
- EmailFileInfoMapper emailFileInfoMapper, @Qualifier("asyncExecutor") ThreadPoolTaskExecutor asyncExecutor) {
|
|
|
+ EmailFileInfoMapper emailFileInfoMapper, @Qualifier("asyncExecutor") ThreadPoolTaskExecutor asyncExecutor, EmailTaskInfoMapper emailTaskInfoMapper) {
|
|
|
this.emailParseService = emailParseService;
|
|
|
this.emailParseInfoMapper = emailParseInfoMapper;
|
|
|
this.emailFileInfoMapper = emailFileInfoMapper;
|
|
|
this.asyncExecutor = asyncExecutor;
|
|
|
+ this.emailTaskInfoMapper = emailTaskInfoMapper;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void parseEmail(MailboxInfoDTO mailboxInfoDTO, Date startDate, Date endDate) {
|
|
|
- asyncExecutor.execute(() -> emailParseService.parseEmail(mailboxInfoDTO, startDate, endDate));
|
|
|
+ asyncExecutor.execute(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ EmailTaskInfoDO emailTaskInfoDO = startEmailTask(mailboxInfoDTO.getAccount(), 1);
|
|
|
+ try{
|
|
|
+ emailParseService.parseEmail(mailboxInfoDTO, startDate, endDate);
|
|
|
+ }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.EMAIL_PARSE.getInfo());
|
|
|
+ emailTaskInfoDO.setTaskType(TaskType.EMAIL_PARSE.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){
|
|
|
+
|
|
|
+ }
|
|
|
+ emailTaskInfoMapper.insert(emailTaskInfoDO);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+ return emailTaskInfoDO;
|
|
|
}
|
|
|
|
|
|
@Override
|