123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- package com.fdkankan.ucenter.task;
- import cn.hutool.json.JSONObject;
- import cn.hutool.json.JSONUtil;
- import com.fdkankan.common.util.DateUtil;
- import com.fdkankan.common.util.FileUtils;
- import com.fdkankan.redis.util.RedisUtil;
- import com.fdkankan.ucenter.common.RedisKeyUtil;
- import com.fdkankan.ucenter.common.StatisticsUtil;
- import com.fdkankan.ucenter.common.constants.NacosProperty;
- import com.fdkankan.ucenter.common.utils.AuthLicenseUtil;
- import com.fdkankan.ucenter.constant.QrCodeFilePath;
- import com.fdkankan.ucenter.service.*;
- import com.fdkankan.ucenter.util.DateUserUtil;
- import com.fdkankan.ucenter.vo.response.AuthLicenseEntityVo;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import java.io.File;
- import java.util.Date;
- import java.util.Map;
- import java.util.Objects;
- @Component
- public class TaskService {
- public static final Logger log = LoggerFactory.getLogger("timeLogger");
- @Autowired
- RedisUtil redisUtil;
- @Autowired
- private ISceneProService sceneProService;
- @Autowired
- private ISceneCleanService sceneCleanService;
- @Scheduled(cron = "${task.cron.del_qrCode:0 */10 * * * ?}")
- public void delLoginQrCode(){
- if("local".equals(NacosProperty.uploadType)){
- AuthLicenseUtil.checkAuthLicense();
- this.updateSceneViewCount();
- return;
- }
- try {
- long startTime = new Date().getTime();
- String qrCodePath = QrCodeFilePath.LOGIN_QR_CODE_PATH;
- String aliQrCodePath = QrCodeFilePath.ALI_QRCODE_FOLDER;
- String wxCodePath = QrCodeFilePath.WEIXIN_QRCODE_FOLDER;
- File file = new File(qrCodePath);
- File file2 = new File(wxCodePath);
- File file3 = new File(aliQrCodePath);
- File[] files = file.listFiles();
- File[] files1 = file2.listFiles();
- File[] files2 = file3.listFiles();
- delFile(files);
- delFile(files1);
- delFile(files2);
- log.info("delLoginQrCode:结束定时清理本地登录二维码:耗时{}秒",(new Date().getTime() - startTime)/1000 );
- this.updateSceneViewCount();
- }catch (Exception e){
- log.error("delLoginQrCode错误",e);
- }
- }
- private void updateSceneViewCount() {
- String redisKey = RedisKeyUtil.V4_SCENE_VISIT_CNT;
- Map<String,String> hmget = redisUtil.hmget(redisKey);
- for (String key : hmget.keySet()) {
- log.info("定时更新场景viewCount--num:{},viewCount:{}",key,hmget.get(key));
- sceneProService.updateDbViewCount(key,hmget.get(key));
- }
- }
- private void delFile(File[] files){
- if(Objects.isNull(files) || files.length == 0){
- return;
- }
- for (File f : files) {
- if(files == null && files.length >0){
- return;
- }
- if(f==null || !f.getName().contains(".")){
- continue;
- }
- String name = f.getName().substring(0,f.getName().lastIndexOf("."));
- if(!redisUtil.hasKey(RedisKeyUtil.QRCODE + name)){
- log.info("删除文件:{}",f.getPath());
- FileUtils.delFile(f.getPath());
- }
- }
- }
- @Autowired
- IUserIncrementService userIncrementService;
- @Scheduled(cron = "${task.cron.increment_sendMsg:0 0 12 * * ?}")
- public void job11() {
- if("local".equals(NacosProperty.uploadType)){
- return;
- }
- log.info("每天12:00开始执行定时任务:短信提醒增值权益准备到期");
- try {
- userIncrementService.incrementExpireSendSms();
- } catch (Exception e) {
- e.printStackTrace();
- log.error(e.getMessage());
- }
- }
- @Scheduled(cron = "${task.cron.update_order_status:0 0 0 * * ?}")
- public void checkIncrementExpire() {
- if("local".equals(NacosProperty.uploadType)){
- return;
- }
- log.info("每天00:00开始执行定时任务:增值权益到期检查");
- try {
- userIncrementService.incrementExpire();
- } catch (Exception e) {
- e.printStackTrace();
- log.error(e.getMessage());
- }
- }
- @Autowired
- IOrderService orderService;
- @Scheduled(cron = "${task.cron.update_order_status:0 0 1 * * ?}")
- public void updateOrderStatus() {
- if("local".equals(NacosProperty.uploadType)){
- return;
- }
- log.info("每天01:00开始执行定时任务:更新收货状态");
- try {
- //更新收货状态,发货后15天,默认用户已经收到货物
- orderService.autoUpdateOrderStatus();
- } catch (Exception e) {
- e.printStackTrace();
- log.error(e.getMessage());
- }
- }
- @Autowired
- ISceneStatisticsService sceneStatisticsService;
- @Scheduled(cron = "${task.cron.add_baidu_data:0 0 2 * * ?}")
- public void addBaiduData() {
- if("local".equals(NacosProperty.uploadType)){
- return;
- }
- log.info("每天02:00开始执行定时任务:获取百度统计的数据入库");
- try {
- String dateStr = DateUtil.date2String(DateUtil.daysCalculate(new Date(), -1), DateUtil.YYYYMMDD_DATA_FORMAT);
- Map<String, Map<String, Double>> map = StatisticsUtil.findStatisticsData(dateStr);
- sceneStatisticsService.addData(map, dateStr);
- } catch (Exception e) {
- e.printStackTrace();
- log.error(e.getMessage());
- }
- }
- /**
- * 清理场景nas资源
- * 执行时间:每天凌晨
- * 删除条件:场景计算时间大于6个月且未删除过资源
- */
- @Scheduled(cron = "${task.cron.scene_clean_resource:0 0 0/2 * * ?}")
- public void sceneCleanResource() {
- log.info("每天凌晨12:00开始执行定时任务:清除场景计算目录");
- try {
- sceneCleanService.sceneCleanResource();
- } catch (Exception e) {
- log.error("清除失败", e);
- log.error(e.getMessage());
- }
- log.info("清除场景计算目录任务执行完成");
- }
- }
|