Przeglądaj źródła

修改插入天旅游数据逻辑

wanxl 2 lat temu
rodzic
commit
f491c3d2c8

+ 10 - 4
bigData/src/com/happy/action/TourAction.java

@@ -302,20 +302,26 @@ public class TourAction extends ActionSupport implements ServletRequestAware {
         if (m==null){
             m=8;
         }
+        if(m==null){
+            xs=0;
+        }
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        for (int i=-m; i<0; i++){
+        for (int i=-m; i<-xs; i++){
             Calendar calendar = Calendar.getInstance();
             calendar.add(Calendar.DATE, i);
             String date = simpleDateFormat.format(calendar.getTime());
+            List<TourDayt> ld = tourService.queryTourByDay(date);
             TourDayt td = tourService.queryTotalTour(date);
             if (td==null || td.getDateTime()==null){
                 td = new TourDayt();
-                td.setDateTime(date);
                 td.setNum("0");
             }
-            List<TourDayt> ld = tourService.queryTourByDay(date);
-            if (ld==null){
+            td.setDateTime(date);
+            if (ld==null||ld.size()<1){
                 tourService.insertToday(td);
+            }else{
+                td.setId(ld.get(0).getId());
+                tourService.updateToday(td);
             }
         }
         resultJson.put("code", 200);

+ 15 - 1
bigData/src/com/happy/dao/Impl/TourImplDao.java

@@ -36,7 +36,7 @@ public class TourImplDao implements TourDao {
 
     // 今日旅游人数
     public TourDayt queryTotalTour(String sm_date){
-        String sql = "SELECT 'DATETIME' AS dateTime, COUNT(DISTINCT(UUID)) AS num FROM `sm_message` WHERE sm_date LIKE :sm_date AND  protect_type =2 ";
+        String sql = "SELECT sm_date AS dateTime, COUNT(DISTINCT(UUID)) AS num FROM `sm_message` WHERE sm_date = :sm_date AND  protect_type =2 ";
         MapSqlParameterSource sps = new MapSqlParameterSource();
         sps.addValue("sm_date", sm_date);
         return namedParameterJdbcTemplate.queryForObject(sql, sps,new BeanPropertyRowMapper<>(TourDayt.class));
@@ -116,6 +116,20 @@ public class TourImplDao implements TourDao {
         }
         return num;
     }
+    public int updateToday(TourDayt tourDayt){
+        String sql = "update `tourdayt` set num=:num where id=:id";
+        MapSqlParameterSource sps = new MapSqlParameterSource();
+        sps.addValue("id", tourDayt.getId());
+        sps.addValue("num", tourDayt.getNum());
+        int num = 0;
+        try{
+            num = namedParameterJdbcTemplate.update(sql, sps);
+        }
+        catch(Exception e){
+            e.printStackTrace();
+        }
+        return num;
+    }
 
     // 查询景点累计数据
     public TourDayt queryTourT(){

+ 1 - 0
bigData/src/com/happy/dao/TourDao.java

@@ -13,6 +13,7 @@ import java.util.List;
 public interface TourDao {
 
     public int insertToday(TourDayt tourDayt);
+    public int updateToday(TourDayt tourDayt);
     public List<TourDayt> queryTourByDay(String dateTime);
     // 今日旅游人数
     public TourDayt queryTotalTour(String sm_date);

+ 4 - 0
bigData/src/com/happy/service/Impl/TourImplService.java

@@ -67,6 +67,10 @@ public class TourImplService implements TourService {
     public void insertToday(TourDayt tourDayt){
        tourDao.insertToday(tourDayt);
     }
+    // 插入前8天活动人数
+    public void updateToday(TourDayt tourDayt){
+       tourDao.updateToday(tourDayt);
+    }
 
     // 查询景点累计数据
     public TourDayt queryTourT(){

+ 1 - 0
bigData/src/com/happy/service/TourService.java

@@ -20,6 +20,7 @@ public interface TourService {
     // 查询缓存-天-判断是否存在
     public List<TourDayt> queryTourByDay(String dateTime);
     public void insertToday(TourDayt tourDayt);
+    public void updateToday(TourDayt tourDayt);
 
     // 分页查找景区每日人数
     public List<TourDayt> queryTourPage(int page, int rows,String sqlx);

+ 13 - 10
bigData/src/com/happy/task/TouristAnalysisTask.java

@@ -193,27 +193,30 @@ public class TouristAnalysisTask {
     @Scheduled(cron = "0 0 2 * * ?")
     public synchronized void insertToday() {
 
-        int m=8;
+        int m=1;
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         for (int i=-m; i<0; i++){
             Calendar calendar = Calendar.getInstance();
             calendar.add(Calendar.DATE, i);
             String date = simpleDateFormat.format(calendar.getTime());
             List<TourDayt> ld = tourService.queryTourByDay(date);
-            if (ld==null){
-                TourDayt td = tourService.queryTotalTour(date);
-                if (td==null || td.getDateTime()==null){
-                    td = new TourDayt();
-                    td.setNum("0");
-                }
-                td.setDateTime(date);
+            TourDayt td = tourService.queryTotalTour(date);
+            if (td==null || td.getDateTime()==null){
+                td = new TourDayt();
+                td.setNum("0");
+            }
+            td.setDateTime(date);
+            if (ld==null||ld.size()<1){
                 tourService.insertToday(td);
+            }else{
+                td.setId(ld.get(0).getId());
+                tourService.updateToday(td);
             }
         }
     }
 
     // 月统计数据导入每月2号1点执行
-    @Scheduled(cron = "0 0 3 2 * ? ")
+//    @Scheduled(cron = "0 0 3 2 * ? ")
     public synchronized void insertMonth(){
         int m=8;
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
@@ -259,7 +262,7 @@ public class TouristAnalysisTask {
     }
 
     //1月2号1点
-    @Scheduled(cron ="0 30 1 2 1 ?")
+//    @Scheduled(cron ="0 30 1 2 1 ?")
     public synchronized void insertYear(){
        int m=2;
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");