Selaa lähdekoodia

obj场景统计

lyhzzz 2 vuotta sitten
vanhempi
commit
bf251451d2

+ 2 - 0
src/main/java/com/fdkankan/manage/entity/ScenePlusExt.java

@@ -152,5 +152,7 @@ public class ScenePlusExt implements Serializable {
     @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
+    @TableField("is_obj")
+    private Integer isObj;
 
 }

+ 2 - 1
src/main/java/com/fdkankan/manage/entity/ScenePro.java

@@ -223,5 +223,6 @@ public class ScenePro implements Serializable {
     @TableField("is_upgrade")
     private Integer isUpgrade;
 
-
+    @TableField("is_obj")
+    private Integer isObj;
 }

+ 7 - 0
src/main/java/com/fdkankan/manage/mapper/IDataMapper.java

@@ -33,9 +33,16 @@ public interface IDataMapper {
 
     List<DataGroupByCount> sceneGroupByWeek(@Param("tb") String tb,@Param("startTime")String startTime,@Param("endTime")String endTime);
 
+    List<DataGroupByCount> sceneObjGroupBy(@Param("tb") String tb, @Param("dateFormat")String dateFormat,
+                                           @Param("startTime")String startTime,@Param("endTime")String endTime);
+
+    List<DataGroupByCount> sceneObjGroupByWeek(@Param("tb") String tb,@Param("startTime")String startTime,@Param("endTime")String endTime);
+
     List<DataGroupByCount> sceneOutTimeGroupBy(@Param("tb") String tb, @Param("dateFormat")String dateFormat,
                                         @Param("startTime")String startTime,@Param("endTime")String endTime);
 
     List<DataGroupByCount> sceneOutTimeGroupByWeek(@Param("tb") String tb,@Param("startTime")String startTime,@Param("endTime")String endTime);
 
+
+
 }

+ 20 - 2
src/main/java/com/fdkankan/manage/service/impl/DataService.java

@@ -231,21 +231,29 @@ public class DataService implements IDataService {
         List<DataGroupByCount> ssObjList = new ArrayList<>();
         List<DataGroupByCount> proList = new ArrayList<>();
         List<DataGroupByCount> plusList = new ArrayList<>();
+        List<DataGroupByCount> proObjList = new ArrayList<>();
+        List<DataGroupByCount> plusObjList = new ArrayList<>();
         int rule = Dateutils.DAY;
         switch (type){
             case 0 :
                 proList = dataMapper.sceneGroupBy("t_scene_pro",dayFormat,startTime,endTime);
                 plusList = dataMapper.sceneGroupBy("t_scene_plus",dayFormat,startTime,endTime);
+                proObjList = dataMapper.sceneObjGroupBy("t_scene_pro",dayFormat,startTime,endTime);
+                plusObjList = dataMapper.sceneObjGroupBy("t_scene_plus",dayFormat,startTime,endTime);
                 break;
             case 1 :
                 rule = Dateutils.WEEK;
                 proList = dataMapper.sceneGroupByWeek("t_scene_pro",startTime,endTime);
                 plusList = dataMapper.sceneGroupByWeek("t_scene_plus",startTime,endTime);
+                proObjList = dataMapper.sceneObjGroupByWeek("t_scene_pro",startTime,endTime);
+                plusObjList = dataMapper.sceneObjGroupByWeek("t_scene_plus",startTime,endTime);
                 break;
             case 2 :
                 rule = Dateutils.MONTH;
                 proList = dataMapper.sceneGroupBy("t_scene_pro",mouthFormat,startTime,endTime);
                 plusList = dataMapper.sceneGroupBy("t_scene_plus",mouthFormat,startTime,endTime);
+                proObjList = dataMapper.sceneObjGroupBy("t_scene_pro",mouthFormat,startTime,endTime);
+                plusObjList = dataMapper.sceneObjGroupBy("t_scene_plus",mouthFormat,startTime,endTime);
                 break;
         }
         HashMap<String, Long> kkMap = new HashMap<>();
@@ -268,12 +276,22 @@ public class DataService implements IDataService {
                 kjMap.merge(dataGroupByCount.getGroupKey(),dataGroupByCount.getCount(), Long:: sum);
             }
             if(dataGroupByCount.getGroupKey2().equals("4")){    //深时
-                ssObjMap.merge(dataGroupByCount.getGroupKey(),dataGroupByCount.getCount(), Long:: sum);
+                ssMap.merge(dataGroupByCount.getGroupKey(),dataGroupByCount.getCount(), Long:: sum);
             }
             if(Arrays.asList("1","2","12","13","14").contains(dataGroupByCount.getGroupKey2())){    //看看
                 kkMap.merge(dataGroupByCount.getGroupKey(),dataGroupByCount.getCount(), Long:: sum);
             }
         }
+        for (DataGroupByCount dataGroupByCount : proObjList) {
+            if(dataGroupByCount.getGroupKey2().equals("4")){    //深时
+                ssObjMap.merge(dataGroupByCount.getGroupKey(),dataGroupByCount.getCount(), Long:: sum);
+            }
+        }
+        for (DataGroupByCount dataGroupByCount : plusObjList) {
+            if(dataGroupByCount.getGroupKey2().equals("4")){    //深时
+                ssObjMap.merge(dataGroupByCount.getGroupKey(),dataGroupByCount.getCount(), Long:: sum);
+            }
+        }
         Long kkCount = 0L;
         Long KjCount = 0L;
         Long ssCount = 0L;
@@ -287,7 +305,7 @@ public class DataService implements IDataService {
         List<String> dates = Dateutils.findDatesStr(Dateutils.getDate(startTime), Dateutils.getDate(endTime),rule );
         setListData(kkList,kkMap,dates,dataType,kkCount);
         setListData(kjList,kjMap,dates,dataType,KjCount);
-        setListData(ssList,ssMap,dates,dataType,ssObjCount);
+        setListData(ssList,ssMap,dates,dataType,ssCount);
         setListData(ssObjList,ssObjMap,dates,dataType,ssObjCount);
 
         map.put("kkList",kkList);

+ 2 - 2
src/main/java/com/fdkankan/manage/service/impl/OperLogServiceImpl.java

@@ -30,10 +30,10 @@ public class OperLogServiceImpl extends MongodbBaseServiceImpl<OperLog> implemen
 
         Query query = new Query();
         if(StrUtil.isNotEmpty(param.getNickName())){
-            query.addCriteria(Criteria.where("nickName").is(param.getNickName()));
+            query.addCriteria(Criteria.where("nickName").regex(param.getNickName()));
         }
         if(StrUtil.isNotEmpty(param.getUserName())){
-            query.addCriteria(Criteria.where("userName").is(param.getUserName()));
+            query.addCriteria(Criteria.where("userName").regex(param.getUserName()));
         }
         Criteria createTimeCri = null;
         if(Objects.nonNull(param.getStartTime()) || Objects.nonNull(param.getEndTime())){

+ 18 - 2
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -362,13 +362,29 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         wrapper.in(ScenePro::getSceneSource,asList);
         wrapper.eq(ScenePro::getIsUpgrade,0);
         wrapper.lt(ScenePro::getCreateTime,startTime);
-        return this.count(wrapper);
+        LambdaQueryWrapper<ScenePlus> wrapper2 = new LambdaQueryWrapper<>();
+        wrapper2.in(ScenePlus::getSceneSource,asList);
+        wrapper2.lt(ScenePlus::getCreateTime,startTime);
+        long count = scenePlusService.count(wrapper2);
+        return this.count(wrapper) + count;
     }
     @Override
     public Long getSsObjCount(List<String> asList, String startTime) {
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePro::getSceneSource,asList);
+        wrapper.eq(ScenePro::getIsUpgrade,0);
+        wrapper.lt(ScenePro::getCreateTime,startTime);
+        wrapper.eq(ScenePro::getIsObj,1);
         LambdaQueryWrapper<ScenePlus> wrapper2 = new LambdaQueryWrapper<>();
         wrapper2.in(ScenePlus::getSceneSource,asList);
         wrapper2.lt(ScenePlus::getCreateTime,startTime);
-        return scenePlusService.count(wrapper2);
+        List<ScenePlus> list = scenePlusService.list(wrapper2);
+        List<Long> plusIds = list.stream().map(ScenePlus::getId).collect(Collectors.toList());
+
+        LambdaQueryWrapper<ScenePlusExt> wrapper3 = new LambdaQueryWrapper<>();
+        wrapper3.in(ScenePlusExt::getPlusId,plusIds);
+        wrapper3.eq(ScenePlusExt::getIsObj,1);
+        long count = scenePlusExtService.count(wrapper3);
+        return this.count(wrapper) + count;
     }
 }

+ 13 - 8
src/main/java/com/fdkankan/manage/vo/OperLogPageParamVO.java

@@ -1,8 +1,10 @@
 package com.fdkankan.manage.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.mongodb.base.BaseRequestMongo;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.Date;
 
@@ -21,16 +23,19 @@ public class OperLogPageParamVO extends BaseRequestMongo {
 
     private String userName;
 
-    @JsonFormat(
-        pattern = "yyyy-MM-dd HH:mm"
-    )
-    private Date startTime;
+    private String startTime;
 
-    @JsonFormat(
-        pattern = "yyyy-MM-dd HH:mm"
-    )
-    private Date endTime;
+    private String endTime;
 
     private String operationType = "manage";
 
+    public String getStartTime() {
+        return Dateutils.getStartTime(startTime);
+    }
+
+
+    public String getEndTime() {
+        return Dateutils.getEndTime(endTime);
+    }
+
 }

+ 30 - 0
src/main/resources/mapper/manage/DataMapper.xml

@@ -116,6 +116,36 @@
 
 
 
+    <select id="sceneObjGroupBy" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT DATE_FORMAT( p.create_time,#{dateFormat}) AS groupKey, count(p.id) AS count , scene_source as groupKey2
+        FROM ${tb} p
+        <if test="tb == 't_scene_plus'">
+            LEFT JOIN t_scene_plus_ext e on p.id = e.plus_id
+        </if>
+        WHERE p.rec_status = 'A'    and is_obj = 1
+        <if test="tb == 't_scene_pro'">
+            AND is_upgrade = 0
+        </if>
+        and p.create_time between #{startTime} and #{endTime}
+        GROUP BY groupKey ,groupKey2
+    </select>
+
+    <select id="sceneObjGroupByWeek" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT groupKey ,count(1) as count,  scene_source as groupKey2
+        FROM (
+        select date_format(date_add(p.create_time,interval-(weekday(p.create_time ))day),'%Y-%m-%d')  as groupKey,scene_source
+        from ${tb} p
+        <if test="tb == 't_scene_plus'">
+            LEFT JOIN t_scene_plus_ext e on p.id = e.plus_id
+        </if>
+        WHERE p.rec_status = 'A' and is_obj = 1
+        <if test="tb == 't_scene_pro'">
+            AND is_upgrade = 0
+        </if>
+        and p.create_time between #{startTime} and #{endTime}
+        ) as tb GROUP BY groupKey,groupKey2
+    </select>
+
     <select id="sceneOutTimeGroupBy" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
         SELECT DATE_FORMAT(out_time,#{dateFormat}) AS groupKey, count(id) AS count ,
         <if test="tb == 't_scene_pro' or tb == 't_scene_plus' ">