| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- package com.ydtech.modules.xxl.handler;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.xxl.job.core.handler.annotation.XxlJob;
- import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
- import com.ydtech.modules.order.components.ConfigureParametersComponents;
- import com.ydtech.modules.order.components.InsCrawlerOrderComponents;
- import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
- import com.ydtech.modules.order.components.dajia.DaJiaRequestApiComponents;
- import com.ydtech.modules.order.components.gouren.GuorenRequestApiComponent;
- import com.ydtech.modules.order.components.huatai.HuaTaiRequestApiComponents;
- import com.ydtech.modules.order.components.yongcheng.YongchengRequestApiComponents;
- import com.ydtech.modules.order.components.zijin.ZijinRequestApiComponents;
- import com.ydtech.modules.order.dao.InsOrdersMapper;
- import com.ydtech.modules.order.entity.InsOrders;
- import com.ydtech.modules.order.entity.InsOrdersTrack;
- import com.ydtech.modules.order.service.InsOrdersTrackService;
- import com.ydtech.modules.protocol.service.PtlAgreementAttributionService;
- import com.ydtech.modules.protocol.service.PtlCrawlerApiService;
- import com.ydtech.modules.xxl.mapper.XxlInsAreaCompanyMapper;
- import com.ydtech.modules.xxl.model.InsAreaCompany;
- import com.ydtech.modules.xxl.model.QueryStatusResult;
- import com.ydtech.modules.xxl.service.BaseQueryStatusService;
- import com.ydtech.modules.xxl.factory.QueryStatusFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.time.Duration;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Random;
- /**
- * 状态查询 并更新内部状态 定时任务
- */
- @Component
- public class QueryStatusHandler {
- @Autowired
- InsOrdersMapper insOrdersMapper;
- @Autowired
- XxlInsAreaCompanyMapper insAreaCompanyMapper;
- @Autowired
- ConfigureParametersComponents configureParametersComponents;
- @Autowired
- DaJiaRequestApiComponents daJiaRequestApiComponents;
- @Autowired
- YongchengRequestApiComponents yongchengRequestApiComponents;
- @Autowired
- GuorenRequestApiComponent guorenRequestApiComponent;
- @Autowired
- HuaTaiRequestApiComponents huaTaiRequestApiComponents;
- @Autowired
- ZhongmeiRequestApiComponents zhongmeiRequestApiComponents;
- @Autowired
- ZijinRequestApiComponents zijinRequestApiComponents;
- @Autowired
- InsCrawlerOrderComponents insCrawlerOrderComponents;
- @Autowired
- PtlCrawlerApiService ptlCrawlerApiService;
- @Autowired
- PtlAgreementAttributionService ptlAgreementAttributionService;
- @Autowired
- InsOrdersTrackService insOrdersTrackService;
- @XxlJob("queryStatusHandler")
- public void queryStatus() {
- Random random = new Random();
- HashMap<String, Object> components = getComponents();
- HashMap<String, String> time = get24HourTime();
- //获取24小时内未支付的订单
- List<InsAreaCompany> noPayList = insAreaCompanyMapper.getNoPayList(time.get("startTime"), time.get("endTime"));
- noPayList.forEach(insAreaCompany -> {
- if (insAreaCompany.getAgreementId() != null) {
- //实例化
- try {
- //添加延迟
- Thread.sleep((random.nextInt(5) + 1) * 1000);
- BaseQueryStatusService queryStatusService = QueryStatusFactory.getQueryStatusService(components, insAreaCompany.getCompanyId());
- if (queryStatusService != null) {
- QueryStatusResult queryStatusResult = queryStatusService.queryStatus(insAreaCompany);
- if (queryStatusResult.getStatus()) {
- //更新 ins_area_company
- insAreaCompany.setInsideOrderStatus(Integer.parseInt(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode()));
- insAreaCompany.setInsidePayTime(queryStatusResult.getPayTime());
- //设置支付时间
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- LocalDateTime dateTime = LocalDateTime.parse(queryStatusResult.getPayTime(), formatter);
- insAreaCompany.setPayDate(dateTime);
- //设置状态为已承保
- insAreaCompany.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
- insAreaCompanyMapper.updateInsideOrder(insAreaCompany);
- InsOrders insOrders = insOrdersMapper.selectOne(new LambdaQueryWrapper<InsOrders>().eq(InsOrders::getOrderno, insAreaCompany.getOrderno()));
- //设置主订单为已承保
- insOrders.setOrderstatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
- insOrdersMapper.updateStatus(insOrders.getOrderno(),InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
- //添加轨迹信息
- InsOrdersTrack insOrdersTrack = new InsOrdersTrack();
- insOrdersTrack.setOrderNo(insAreaCompany.getOrderno());
- insOrdersTrack.setInsCompany(insAreaCompany.getInscompany());
- insOrdersTrack.setCompanyId(insAreaCompany.getCompanyId());
- insOrdersTrack.setSuborder(insAreaCompany.getId());
- insOrdersTrack.setOrderStatus(InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
- insOrdersTrack.setOperatorId("admin");
- insOrdersTrack.setOperator("自动操作");
- insOrdersTrack.setCreateTime(LocalDateTime.now());
- insOrdersTrackService.save(insOrdersTrack);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- private HashMap<String, Object> getComponents() {
- HashMap<String, Object> components = new HashMap<>();
- components.put("configureParametersComponents", configureParametersComponents);
- components.put("daJiaRequestApiComponents", daJiaRequestApiComponents);
- components.put("yongchengRequestApiComponents", yongchengRequestApiComponents);
- components.put("guorenRequestApiComponent", guorenRequestApiComponent);
- components.put("huaTaiRequestApiComponents", huaTaiRequestApiComponents);
- components.put("zhongmeiRequestApiComponents", zhongmeiRequestApiComponents);
- components.put("zijinRequestApiComponents", zijinRequestApiComponents);
- components.put("insCrawlerOrderComponents", insCrawlerOrderComponents);
- components.put("ptlCrawlerApiService", ptlCrawlerApiService);
- components.put("ptlAgreementAttributionService", ptlAgreementAttributionService);
- return components;
- }
- private HashMap<String, String> get24HourTime() {
- HashMap<String, String> components = new HashMap<>();
- // 获取当前时间
- LocalDateTime currentTime = LocalDateTime.now();
- // 获取前24小时的时间
- LocalDateTime previous24Hours = currentTime.minus(Duration.ofHours(24));
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- LocalDateTime current = LocalDateTime.now();
- components.put("startTime", previous24Hours.format(formatter));
- components.put("endTime", current.format(formatter));
- return components;
- }
- }
|