Browse Source

定时任务

lyhzzz 2 years ago
parent
commit
f79b76b9d1

+ 176 - 0
src/main/java/com/fdkankan/ucenter/common/HttpRequestorUtil.java

@@ -0,0 +1,176 @@
+package com.fdkankan.ucenter.common;
+
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+
+@Slf4j
+public class HttpRequestorUtil {
+    
+    /**
+     * Do POST request
+     * @param url
+     * @param parameterMap
+     * @return
+     * @throws Exception 
+     */
+    public static String doPost(String url, Map parameterMap) throws Exception {
+        
+        /* Translate parameter map to parameter date string */
+        StringBuffer parameterBuffer = new StringBuffer();
+        if (parameterMap != null) {
+            Iterator iterator = parameterMap.keySet().iterator();
+            String key = null;
+            String value = null;
+            while (iterator.hasNext()) {
+                key = (String)iterator.next();
+                if (parameterMap.get(key) != null) {
+                    value = (String)parameterMap.get(key);
+                } else {
+                    value = "";
+                }
+                
+                parameterBuffer.append(key).append("=").append(value);
+                if (iterator.hasNext()) {
+                    parameterBuffer.append("&");
+                }
+            }
+        }
+        
+        log.info("POST parameter : " + parameterBuffer.toString());
+        
+        URL localURL = new URL(url);
+        log.info("POST URL : " + url);
+        HttpURLConnection connection = (HttpURLConnection) localURL.openConnection();
+        HttpURLConnection httpURLConnection = (HttpURLConnection)connection;
+        
+        httpURLConnection.setDoOutput(true);
+        httpURLConnection.setRequestMethod("POST");
+        httpURLConnection.setRequestProperty("Accept-Charset", "UTF-8");
+        httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+        httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterBuffer.length()));
+
+        
+        OutputStream outputStream = null;
+        OutputStreamWriter outputStreamWriter = null;
+        InputStream inputStream = null;
+        InputStreamReader inputStreamReader = null;
+        BufferedReader reader = null;
+        StringBuffer resultBuffer = new StringBuffer();
+        String tempLine = null;
+        
+        try {
+            outputStream = httpURLConnection.getOutputStream();
+            outputStreamWriter = new OutputStreamWriter(outputStream);
+            
+            outputStreamWriter.write(parameterBuffer.toString());
+            outputStreamWriter.flush();
+            
+            if (httpURLConnection.getResponseCode() >= 300) {
+                throw new Exception("HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode());
+            }
+            log.info("POST finish.");
+            
+            inputStream = httpURLConnection.getInputStream();
+            inputStreamReader = new InputStreamReader(inputStream);
+            reader = new BufferedReader(inputStreamReader);
+            
+            while ((tempLine = reader.readLine()) != null) {
+                resultBuffer.append(tempLine);
+            }
+            
+        } finally {
+            
+            if (outputStreamWriter != null) {
+                outputStreamWriter.close();
+            }
+            
+            if (outputStream != null) {
+                outputStream.close();
+            }
+            
+            if (reader != null) {
+                reader.close();
+            }
+            
+            if (inputStreamReader != null) {
+                inputStreamReader.close();
+            }
+            
+            if (inputStream != null) {
+                inputStream.close();
+            }
+            
+        }
+
+        return resultBuffer.toString();
+    }
+
+    /**
+     * 发送HttpPost请求
+     *
+     * @param strURL
+     *            服务地址
+     * @param params
+     *            json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/>
+     * @return 成功:返回json字符串<br/>
+     */
+    public static String postJson(String strURL, String params, String type) {
+        log.info(strURL);
+        log.info(params);
+        BufferedReader reader = null;
+        try {
+            URL url = new URL(strURL);// 创建连接
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setDoOutput(true);
+            connection.setDoInput(true);
+            connection.setUseCaches(false);
+            connection.setInstanceFollowRedirects(true);
+            connection.setRequestMethod(type); // 设置请求方式
+            // connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
+            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
+            connection.setRequestProperty("Authorizations", "Y9z$w*WA%z!uz0O$dcCQ@i1KHKs5rhQW");
+            connection.connect();
+            //一定要用BufferedReader 来接收响应, 使用字节来接收响应的方法是接收不到内容的
+            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
+            out.append(params);
+            out.flush();
+            out.close();
+            // 读取响应
+            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+            String line;
+            String res = "";
+            while ((line = reader.readLine()) != null) {
+                res += line;
+            }
+            reader.close();
+
+            //如果一定要使用如下方式接收响应数据, 则响应必须为: response.getWriter().print(StringUtils.join("{\"errCode\":\"1\",\"errMsg\":\"", message, "\"}")); 来返回
+//            int length = (int) connection.getContentLength();// 获取长度
+//            if (length != -1) {
+//                byte[] data = new byte[length];
+//                byte[] temp = new byte[512];
+//                int readLen = 0;
+//                int destPos = 0;
+//                while ((readLen = is.read(temp)) > 0) {
+//                    System.arraycopy(temp, 0, data, destPos, readLen);
+//                    destPos += readLen;
+//                }
+//                String result = new String(data, "UTF-8"); // utf-8编码
+//                log.info(result);
+//                return result;
+//            }
+
+            return res;
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return "error"; // 自定义错误信息
+    }
+}

+ 147 - 0
src/main/java/com/fdkankan/ucenter/common/StatisticsUtil.java

@@ -0,0 +1,147 @@
+package com.fdkankan.ucenter.common;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.ucenter.common.constants.ConstantFilePath;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 百度统计
+ * Created by Hb_zzZ on 2020/8/24.
+ */
+public class StatisticsUtil {
+
+    private static final String BAIDU_USERNAME = "四维时代";
+
+    private static final String BAIDU_PASSWORD = "4DAge2018";
+
+    private static final String BAIDU_TOKEN = "17a1e010f1be38abead0066b2b02cb4c";
+
+    private static final String SITE_ID = "12325722";
+
+    private static final String METRICS = "pv_count,visitor_count,ip_count,visit1_count,outward_count,exit_count,average_stay_time,exit_ratio";
+
+    private static final String METHOD = "visit/toppage/a";
+
+    private static final String BAIDU_URL = "https://api.baidu.com/json/tongji/v1/ReportService/getData";
+
+    public static Map<String, Map<String, Double>> findStatisticsData(String dateStr) throws Exception{
+
+        JSONObject param = new JSONObject();
+        JSONObject header = new JSONObject();
+        JSONObject body = new JSONObject();
+        header.put("username", BAIDU_USERNAME);
+        header.put("password", BAIDU_PASSWORD);
+        header.put("token", BAIDU_TOKEN);
+        header.put("account_type", 1);
+        body.put("site_id", SITE_ID);
+        body.put("start_date", dateStr);
+        body.put("end_date", dateStr);
+        body.put("metrics", METRICS);
+        body.put("method", METHOD);
+        param.put("header", header);
+        param.put("body", body);
+        String baiduData = HttpRequestorUtil.postJson(BAIDU_URL, param.toString(), "POST");
+
+        JSONObject data = JSONObject.parseObject(baiduData);
+
+        Map<String, Map<String, Double>> map = new HashMap<>();
+        Map<String, Double> numMap = null;
+        String url = "";
+        String sceneNum = "";
+        if(data.getJSONObject("header").getIntValue("status") == 0){
+
+            JSONArray items = data.getJSONObject("body").getJSONArray("data").getJSONObject(0)
+                    .getJSONObject("result").getJSONArray("items");
+
+            JSONArray urlArray = items.getJSONArray(0);
+            JSONArray numArray = items.getJSONArray(1);
+
+            for(int i = 0, len = urlArray.size(); i < len; i++){
+                url = urlArray.getJSONArray(i).getJSONObject(0).getString("name");
+                if((url.contains("www.4dkankan.com") || url.contains("test.4dkankan.com")) && url.contains("?m=") && !url.contains("&type=event")){
+                    if(url.contains("&")){
+                        url = url.substring(url.indexOf("?m=") + 3);
+                        if(url.contains("#")){
+                            url = url.substring(0, url.indexOf("#"));
+                        }
+                        sceneNum = url.substring(0, url.indexOf("&"));
+                    }else {
+                        sceneNum = url.substring(url.indexOf("?m=") + 3);
+                    }
+                    numMap = map.get(sceneNum);
+                    numMap = getNumMap(numMap, numArray, i);
+                    map.put(sceneNum, numMap);
+                }
+                if((url.contains("www.4dkankan.com") || url.contains("test.4dkankan.com")) && url.contains("&type=event&name=show_tag")){
+                    if(url.contains("&")){
+                        url = url.substring(url.indexOf("?m=") + 3);
+                        if(url.contains("#")){
+                            url = url.substring(0, url.indexOf("#"));
+                        }
+                        sceneNum = url.substring(0, url.indexOf("&"));
+                    }else {
+                        sceneNum = url.substring(url.indexOf("?m=") + 3);
+                    }
+                    numMap = map.get(sceneNum + "_tag");
+                    numMap = getNumMap(numMap, numArray, i);
+                    map.put(sceneNum + "_tag", numMap);
+                }
+                if((url.contains("www.4dkankan.com") || url.contains("test.4dkankan.com")) && url.contains("&type=event&name=show_video")){
+                    if(url.contains("&")){
+                        url = url.substring(url.indexOf("?m=") + 3);
+                        if(url.contains("#")){
+                            url = url.substring(0, url.indexOf("#"));
+                        }
+                        sceneNum = url.substring(0, url.indexOf("&"));
+                    }else {
+                        sceneNum = url.substring(url.indexOf("?m=") + 3);
+                    }
+                    numMap = map.get(sceneNum + "_video");
+                    numMap = getNumMap(numMap, numArray, i);
+                    map.put(sceneNum + "_video", numMap);
+                }
+            }
+        }
+        String filePath = ConstantFilePath.BASE_PATH + "/statistics/" + dateStr + ".json";
+        FileUtils.writeFile(filePath, baiduData);
+//        System.out.println(JSONArray.toJSON(map).toString());
+        return map;
+    }
+
+    public static void main(String[] args) {
+        try{
+            StatisticsUtil.findStatisticsData("20200822");
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+    }
+
+    private static Map<String, Double> getNumMap(Map<String, Double> numMap, JSONArray numArray, int index){
+        if(numMap == null){
+            numMap = new HashMap<>();
+            numMap.put("pv_count", numArray.getJSONArray(index).getDouble(0));
+            numMap.put("visitor_count", numArray.getJSONArray(index).getDouble(1));
+            numMap.put("ip_count", numArray.getJSONArray(index).getDouble(2));
+            numMap.put("visit1_count", numArray.getJSONArray(index).getDouble(3));
+            numMap.put("outward_count", numArray.getJSONArray(index).getDouble(4));
+            numMap.put("exit_count", numArray.getJSONArray(index).getDouble(5));
+            numMap.put("average_stay_time", numArray.getJSONArray(index).getDouble(6));
+            numMap.put("exit_ratio", numArray.getJSONArray(index).getDouble(7));
+        }else {
+            numMap.put("pv_count", numMap.get("pv_count") + numArray.getJSONArray(index).getDouble(0));
+            numMap.put("visitor_count", numMap.get("visitor_count") + numArray.getJSONArray(index).getDouble(1));
+            numMap.put("ip_count", numMap.get("ip_count") + numArray.getJSONArray(index).getDouble(2));
+            numMap.put("visit1_count", numMap.get("visit1_count") + numArray.getJSONArray(index).getDouble(3));
+            numMap.put("outward_count", numMap.get("outward_count") + numArray.getJSONArray(index).getDouble(4));
+            numMap.put("exit_count", numMap.get("exit_count") + numArray.getJSONArray(index).getDouble(5));
+            numMap.put("average_stay_time", numMap.get("average_stay_time") + numArray.getJSONArray(index).getDouble(6));
+            numMap.put("exit_ratio", numMap.get("exit_ratio") + numArray.getJSONArray(index).getDouble(7));
+        }
+        return numMap;
+    }
+}

+ 1 - 1
src/main/java/com/fdkankan/ucenter/entity/SceneStatistics.java

@@ -81,7 +81,7 @@ public class SceneStatistics implements Serializable {
      * 退出率,%
      */
     @TableField("exit_ratio")
-    private BigDecimal exitRatio;
+    private Double exitRatio;
 
     /**
      * 1:场景,2:热点,3:视频

+ 3 - 0
src/main/java/com/fdkankan/ucenter/mapper/IOrderMapper.java

@@ -3,6 +3,7 @@ package com.fdkankan.ucenter.mapper;
 import com.fdkankan.ucenter.entity.Order;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Update;
 
 /**
  * <p>
@@ -15,4 +16,6 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface IOrderMapper extends BaseMapper<Order> {
 
+    @Update(" UPDATE t_order Left JOIN t_trade_log on t_order.order_sn = t_trade_log.order_sn set t_order.shipping_status = 'received', t_order.finish_time = NOW() WHERE (DATE_SUB(CURDATE(), INTERVAL 15 DAY) < date(t_trade_log.trade_time)) and (t_order.shipping_status = 'shipped') ")
+    void autoUpdateOrderStatus();
 }

+ 5 - 0
src/main/java/com/fdkankan/ucenter/mapper/IUserIncrementMapper.java

@@ -4,6 +4,9 @@ import com.fdkankan.ucenter.entity.UserIncrement;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 /**
  * <p>
@@ -16,4 +19,6 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface IUserIncrementMapper extends BaseMapper<UserIncrement> {
 
+    @Select("SELECT * FROM `t_user_increment` WHERE DATEDIFF(increment_end_time,NOW()) = #{date} AND is_expired = #{isExpired} AND rec_status = 'A' ")
+    List<UserIncrement> findReadyExpire(@Param("date")Integer date, @Param("isExpired")Integer isExpired);
 }

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/IOrderService.java

@@ -42,4 +42,6 @@ public interface IOrderService extends IService<Order> {
     boolean paySuccessEntityOrder(String orderSn, String tradeNo, int paymentTypeName);
 
     OrderVo getOrderDetail(Long orderId);
+
+    void autoUpdateOrderStatus();
 }

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/ISceneStatisticsService.java

@@ -4,6 +4,7 @@ import com.fdkankan.ucenter.entity.SceneStatistics;
 import com.baomidou.mybatisplus.extension.service.IService;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -17,4 +18,5 @@ public interface ISceneStatisticsService extends IService<SceneStatistics> {
 
     List<SceneStatistics> findByTime(Date startDate, Date endDate, String sceneNum, Integer type);
 
+    void addData(Map<String, Map<String, Double>> map, String dateStr);
 }

+ 4 - 0
src/main/java/com/fdkankan/ucenter/service/IUserIncrementService.java

@@ -33,4 +33,8 @@ public interface IUserIncrementService extends IService<UserIncrement> {
     void bindCamera(IncrementParam param);
 
     void unbindCamera(IncrementParam param);
+
+    void incrementExpire();
+
+    void incrementExpireSendSms() throws Exception;
 }

+ 5 - 0
src/main/java/com/fdkankan/ucenter/service/impl/OrderServiceImpl.java

@@ -349,4 +349,9 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         }
         return responseOrder;
     }
+
+    @Override
+    public void autoUpdateOrderStatus() {
+        this.getBaseMapper().autoUpdateOrderStatus();
+    }
 }

+ 36 - 0
src/main/java/com/fdkankan/ucenter/service/impl/SceneStatisticsServiceImpl.java

@@ -1,12 +1,15 @@
 package com.fdkankan.ucenter.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.ucenter.entity.SceneStatistics;
 import com.fdkankan.ucenter.mapper.ISceneStatisticsMapper;
 import com.fdkankan.ucenter.service.ISceneStatisticsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+
 import org.springframework.stereotype.Service;
 
 /**
@@ -29,4 +32,37 @@ public class SceneStatisticsServiceImpl extends ServiceImpl<ISceneStatisticsMapp
             .le(SceneStatistics::getDateStr, endDate));
     }
 
+    @Override
+    public void addData(Map<String, Map<String, Double>> map, String dateStr) {
+        String sceneNum = "";
+        Map<String, Double> numMap = null;
+        SceneStatistics entity = null;
+        for (Map.Entry<String, Map<String, Double>> entry : map.entrySet()) {
+            sceneNum = entry.getKey();
+            numMap = entry.getValue();
+            entity = new SceneStatistics();
+            entity.setPvCount(numMap.get("pv_count").intValue());
+            entity.setVisitorCount(numMap.get("visit1_count").intValue());
+            entity.setVisit1Count(numMap.get("visit1_count").intValue());
+            entity.setOutwardCount(numMap.get("outward_count").intValue());
+            entity.setExitCount(numMap.get("exit_count").intValue());
+            entity.setAverageStayTime(numMap.get("average_stay_time").intValue());
+            entity.setExitRatio(numMap.get("exit_ratio"));
+            entity.setDateStr(DateUtil.string2Date(dateStr, DateUtil.YYYYMMDD_DATA_FORMAT));
+            entity.setRecStatus("A");
+            entity.setCreateTime(new Date());
+            entity.setUpdateTime(new Date());
+            if(sceneNum.contains("_tag")){
+                entity.setType(2);
+                entity.setSceneNum(sceneNum.replace("_tag", ""));
+            } else if(sceneNum.contains("_video")){
+                entity.setType(3);
+                entity.setSceneNum(sceneNum.replace("_video", ""));
+            }else {
+                entity.setType(1);
+                entity.setSceneNum(sceneNum);
+            }
+            this.save(entity);
+        }
+    }
 }

+ 76 - 4
src/main/java/com/fdkankan/ucenter/service/impl/UserIncrementServiceImpl.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.util.PatternUtils;
+import com.fdkankan.sms.SmsService;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.ucenter.constant.CameraConstant;
@@ -20,15 +22,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.vo.request.IncrementParam;
 import com.fdkankan.ucenter.vo.response.UserIncrementVo;
+import jodd.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -50,6 +51,8 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
     ICameraDetailService cameraDetailService;
     @Autowired
     ISceneProService sceneProService;
+    @Autowired
+    SmsService smsService;
 
     @Override
     public Long getCountByUserId(Long userId, int type) {
@@ -206,4 +209,73 @@ public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper,
         this.update(wrapper);
         sceneProService.lockOrUnLockBySpace(cameraDetail,cameraDetail.getCameraId(),-2);
     }
+
+    @Override
+    public void incrementExpire() {
+        //查找所有刚过期的会员权益
+        LambdaQueryWrapper<UserIncrement> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UserIncrement::getIsExpired,0);
+        wrapper.lt(UserIncrement::getIncrementEndTime,DateUserUtil.getDate(new Date()));
+        List<UserIncrement> list = this.list(wrapper);
+        for (UserIncrement userIncrement : list) {
+            userIncrement.setIsExpired(1);
+            userIncrement.setUpdateTime(null);
+            this.updateById(userIncrement);
+            //解除相机权益
+            IncrementParam incrementParam = new IncrementParam();
+            incrementParam.setId(userIncrement.getId());
+            this.unbindCamera(incrementParam);
+        }
+    }
+
+    @Override
+    public void incrementExpireSendSms() throws Exception {
+        //查找所有即将到期的会员权益
+        List<UserIncrement> expireData30 = this.getBaseMapper().findReadyExpire(30, 0);
+        List<UserIncrement> expireData15 = this.getBaseMapper().findReadyExpire(15, 0);
+        List<UserIncrement> expireData5 = this.getBaseMapper().findReadyExpire(5, 0);
+        List<UserIncrement> expireData = this.getBaseMapper().findReadyExpire(-1, 1);
+
+        Map<Long, Integer> userIds = new HashMap<>();
+        for (UserIncrement userIncrementEntity : expireData30) {
+            if(userIncrementEntity.getUserId() != null){
+                userIds.put(userIncrementEntity.getUserId(), 30);
+            }
+        }
+
+        for (UserIncrement userIncrementEntity : expireData15) {
+            if(userIncrementEntity.getUserId() != null){
+                userIds.put(userIncrementEntity.getUserId(), 15);
+            }
+        }
+
+        for (UserIncrement userIncrementEntity : expireData5) {
+            if(userIncrementEntity.getUserId() != null){
+                userIds.put(userIncrementEntity.getUserId(), 5);
+            }
+        }
+
+        for (UserIncrement userIncrementEntity : expireData) {
+            if(userIncrementEntity.getUserId() != null){
+                userIds.put(userIncrementEntity.getUserId(), -1);
+            }
+        }
+
+        User userEntity = null;
+        String cnCode = "SMS_216275556";
+        String expireCode = "SMS_216425565";
+        for (Long userId : userIds.keySet()) {
+            userEntity = userService.getById(userId);
+            if(userEntity != null){
+                if(StringUtil.isNotBlank(userEntity.getUserName()) && StringUtils.isNumeric(userEntity.getUserName())){
+                    if(userIds.get(userId) == -1){
+                        smsService.sendSms(userEntity.getUserName(), "{\"time\":\"" + userIds.get(userId) + "\"}", expireCode);
+                        continue;
+                    }
+                    smsService.sendSms(userEntity.getUserName(), "{\"time\":\"" + userIds.get(userId) + "\"}", cnCode);
+                }
+            }
+        }
+    }
+
 }

+ 83 - 16
src/main/java/com/fdkankan/ucenter/task/TaskService.java

@@ -1,16 +1,21 @@
 package com.fdkankan.ucenter.task;
 
 import cn.hutool.core.collection.CollUtil;
+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.constant.QrCodeFilePath;
 import java.io.File;
 import java.util.Date;
 import java.util.Map;
 import java.util.Objects;
 
+import com.fdkankan.ucenter.service.IOrderService;
 import com.fdkankan.ucenter.service.ISceneProService;
+import com.fdkankan.ucenter.service.ISceneStatisticsService;
+import com.fdkankan.ucenter.service.IUserIncrementService;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -30,22 +35,26 @@ public class TaskService {
 
     @Scheduled(cron = "0 */10 * * * ?")
     public void delLoginQrCode(){
-        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();
+        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() {
@@ -76,4 +85,62 @@ public class TaskService {
         }
     }
 
+    @Autowired
+    IUserIncrementService userIncrementService;
+
+    @Scheduled(cron = "0 0 12 * * ?")
+    public void job11() {
+        log.info("每天12:00开始执行定时任务:短信提醒增值权益准备到期");
+        try {
+            userIncrementService.incrementExpireSendSms();
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(e.getMessage());
+        }
+    }
+
+
+
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void job1() {
+        log.info("每天00:00开始执行定时任务:增值权益到期检查");
+        try {
+            userIncrementService.incrementExpire();
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(e.getMessage());
+        }
+    }
+
+    @Autowired
+    IOrderService orderService;
+
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void job2() {
+        log.info("每天01:00开始执行定时任务:更新收货状态");
+        try {
+            //更新收货状态,发货后15天,默认用户已经收到货物
+            orderService.autoUpdateOrderStatus();
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(e.getMessage());
+        }
+    }
+
+    @Autowired
+    ISceneStatisticsService sceneStatisticsService;
+    @Scheduled(cron = "0 0 2 * * ?")
+    public void job3() {
+        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());
+        }
+    }
+
+
 }