RyTask.java 2.7 KB
Newer Older
1 2
package com.linkwechat.quartz.task;

3 4 5 6 7
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject;
import com.linkwechat.common.constant.WeConstans;
import com.linkwechat.common.core.domain.elastic.ElasticSearchEntity;
import com.linkwechat.common.core.elasticsearch.ElasticSearch;
8
import com.linkwechat.common.utils.StringUtils;
9 10 11 12 13 14 15 16 17 18 19 20
import com.tencent.wework.FinanceUtils;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
21 22 23

/**
 * 定时任务调度测试
24
 *
25 26
 * @author ruoyi
 */
27
@Slf4j
28
@Component("ryTask")
29 30 31 32 33
public class RyTask {
    @Autowired
    private ElasticSearch elasticSearch;

    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
34 35 36
        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
    }

37
    public void ryParams(String params) {
38 39 40
        System.out.println("执行有参方法:" + params);
    }

41
    public void ryNoParams() {
42 43
        System.out.println("执行无参方法");
    }
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72


    public void FinanceTask(String corpId, String secret) throws IOException {
        AtomicLong index = new AtomicLong(0);
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        SortBuilder<?> sortBuilderPrice = SortBuilders.fieldSort("seq").order( SortOrder.DESC);
        searchSourceBuilder.sort(sortBuilderPrice);
        List<JSONObject> searchResultList = elasticSearch.search(WeConstans.WECOM_FINANCE_INDEX, searchSourceBuilder, JSONObject.class);
        searchResultList.stream().findFirst().ifPresent(result ->{
            index.set(result.getLong("seq")+1);
        });
        if (index.get() == 0) {
            elasticSearch.createIndex2(WeConstans.WECOM_FINANCE_INDEX,elasticSearch.getFinanceMapping());
        }
        log.info("执行有参方法: params:{},{}", corpId, secret);

        FinanceUtils.initSDK(corpId, secret);
        List<ElasticSearchEntity> chatDataList = FinanceUtils.getChatData(index.get(), "", "");

        if (CollectionUtil.isNotEmpty(chatDataList)){
            try {
                elasticSearch.insertBatch(WeConstans.WECOM_FINANCE_INDEX, chatDataList);
            } catch (Exception e) {
                log.error("消息处理异常:ex:{}", e);
                e.printStackTrace();
            }
            index.incrementAndGet();
        }
    }
73
}