package com.yami.trading.admin.task.cms; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.yami.trading.admin.facade.MachineTranslationService; import com.yami.trading.bean.cms.Infomation; import com.yami.trading.common.config.ThreadPoolComponent; import com.yami.trading.common.util.StringUtils; import com.yami.trading.dao.cms.InfomationMapper; import com.yami.trading.huobi.hobi.internal.XueQiuDataServiceImpl; import com.yami.trading.service.cms.InfomationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; @Component public class XueQiuInfomationGet { @Autowired private ThreadPoolComponent threadPoolComponent; @Autowired private InfomationService infomationService; @Autowired private MachineTranslationService translationService; @Autowired private XueQiuDataServiceImpl xueQiuDataService; // @Scheduled(cron = "0 0/30 * ? * *") 雪球 // public void crawl(){ // xueQiuDataService.getInformation(); // } @Scheduled(cron = "0 */5 * ? * *") public void translate(){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.isNull("translate"); queryWrapper.eq("lang", "zh-CN"); List list = infomationService.list(queryWrapper); for(Infomation infomation : list){ threadPoolComponent.getExecutor().execute(() ->{ String description = infomation.getDescription(); String source = infomation.getSource(); Infomation infomationEn = BeanUtil.copyProperties(infomation, Infomation.class); infomationEn.setUuid(null); if(StringUtils.isNotEmpty(description)){ String translate = translationService.translate(description); if(translate == null){ return; } infomationEn.setDescription(translate); } if(StringUtils.isNotEmpty(source)){ String translate = translationService.translate(source); if(translate == null){ return; } infomationEn.setSource(translate); } infomationEn.setLang("en"); infomationService.save(infomationEn); infomation.setTranslate("1"); infomationService.updateById(infomation); }); } } }