|
@@ -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.conts.TaskConst;
|
|
|
+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,65 @@ 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() {
|
|
|
+ startEmailTask(mailboxInfoDTO, startDate, endDate,1);
|
|
|
+ try{
|
|
|
+ emailParseService.parseEmail(mailboxInfoDTO, startDate, endDate);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage(),e);
|
|
|
+ endEmailTask(mailboxInfoDTO,startDate,endDate,-1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ endEmailTask(mailboxInfoDTO,startDate,endDate,2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ private void endEmailTask(MailboxInfoDTO mailboxInfoDTO, Date startDate, Date endDate,Integer taskStatus) {
|
|
|
+ try{
|
|
|
+ emailTaskInfoMapper.updateTaskStatus(mailboxInfoDTO.getAccount(),startDate,endDate,taskStatus);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void startEmailTask(MailboxInfoDTO mailboxInfoDTO, Date startDate, Date endDate,Integer taskStatus) {
|
|
|
+ try{
|
|
|
+ EmailTaskInfoDO emailTaskInfoDO = new EmailTaskInfoDO();
|
|
|
+ emailTaskInfoDO.setTaskName(TaskConst.EMAIL_TASK);
|
|
|
+ emailTaskInfoDO.setTaskStatus(taskStatus);
|
|
|
+ emailTaskInfoDO.setStartTime(startDate);
|
|
|
+ emailTaskInfoDO.setEndTime(endDate);
|
|
|
+ emailTaskInfoDO.setIsvalid(1);
|
|
|
+ emailTaskInfoDO.setEmail(mailboxInfoDTO.getAccount());
|
|
|
+ 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());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|