Commit b13740b4 authored by 廖旭伟's avatar 廖旭伟

事件分析、产品热力图、页面访问分析、页面路径分析统计功能

parent a172b5ad
-- ----------------------------
-- 页面事件记录表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_page_event`;
CREATE TABLE mortals_xhx_page_event(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`deviceNum` varchar(256) COMMENT '设备编码',
`productId` bigint(20) COMMENT '产品id',
`productName` varchar(256) COMMENT '产品名称',
`businessCode` varchar(256) COMMENT '业务场景编码',
`businessName` varchar(256) COMMENT '业务场景名称',
`eventCode` varchar(256) COMMENT '事件编码',
`eventName` varchar(256) COMMENT '事件名称',
`takeTime` int(8) COMMENT '事件耗时(单位毫秒)',
`pageCode` varchar(256) COMMENT '页面编码(页面路由)',
`pageName` varchar(256) COMMENT '页面名称',
`coordinate` varchar(128) COMMENT '事件坐标(x,y)',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='页面事件记录';
-- ----------------------------
-- 页面路径记录表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_page_route`;
CREATE TABLE mortals_xhx_page_route(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`deviceNum` varchar(256) COMMENT '设备编码',
`productId` bigint(20) COMMENT '产品id',
`productName` varchar(256) COMMENT '产品名称',
`sourceCode` varchar(256) COMMENT '开始页面编码(路由)',
`sourceName` varchar(256) COMMENT '开始页面名称',
`targetCode` varchar(256) COMMENT '目标页面编码(路由)',
`targetName` varchar(256) COMMENT '目标页面名称',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='页面路径记录';
-- ----------------------------
-- 产品页面配置表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_page_info`;
CREATE TABLE mortals_xhx_page_info(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`deviceNum` varchar(256) COMMENT '设备编码',
`productId` bigint(20) COMMENT '产品id',
`productName` varchar(256) COMMENT '产品名称',
`pageCode` varchar(256) COMMENT '页面编码(页面路由)',
`pageName` varchar(256) COMMENT '页面名称',
`screenUrl` varchar(256) COMMENT '页面截图地址',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品页面配置';
-- ----------------------------
-- 产品页面访问记录表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_page_access`;
CREATE TABLE mortals_xhx_page_access(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`deviceNum` varchar(256) COMMENT '设备编码',
`productId` bigint(20) COMMENT '产品id',
`productName` varchar(256) COMMENT '产品名称',
`firstCode` varchar(256) COMMENT '页面编码(页面路由)',
`firstName` varchar(256) COMMENT '页面名称',
`secondCode` varchar(256) COMMENT '页面编码(页面路由)',
`secondName` varchar(256) COMMENT '页面名称',
`thirdCode` varchar(256) COMMENT '页面编码(页面路由)',
`thirdName` varchar(256) COMMENT '页面名称',
`fourthCode` varchar(256) COMMENT '页面编码(页面路由)',
`fourthName` varchar(256) COMMENT '页面名称',
`accessContent` text COMMENT '完整路径',
`pageDepth` int(8) DEFAULT '0' COMMENT '页面深度',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品页面访问记录';
-- ----------------------------
-- 产品页面配置表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_page_access_depth`;
CREATE TABLE mortals_xhx_page_access_depth(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`deviceNum` varchar(256) COMMENT '设备编码',
`productId` bigint(20) COMMENT '产品id',
`productName` varchar(256) COMMENT '产品名称',
`pageCode` varchar(256) COMMENT '页面编码(页面路由)',
`pageName` varchar(256) COMMENT '页面名称',
`depthValue` int(8) COMMENT '本次访问深度',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='产品页面配置';
......@@ -4613,7 +4613,7 @@ msg|String|消息|-
## 用户行为分析
### 客户端埋点
**请求URL:** page/bury/save
**请求URL:** zwfw/page/bury/save
**请求方式:** POST
......@@ -4710,7 +4710,7 @@ data|object|数据对象
### 保存页面截图
**请求URL:** page/bury/screen/save
**请求URL:** zwfw/page/bury/screen/save
**请求方式:** POST
......@@ -4773,6 +4773,680 @@ data|object|数据对象
```
### 事件分析
**请求URL:** zwfw/act/analyse/pageEventCensus
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 查询事件分析
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:-------
productId|Long|是|产品id
dateTimeStart|String|是|开始时间
dateTimeStart|String|是|结束时间
**请求样例:**
```
{
"productId":1,
"dateTimeStart":"2023-04-10",
"dateTimeEnd":"2023-05-11"
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
 data|array|数组对象
  eventCode|String|设备编码
  eventName|String|产品id
  dayAvg|int|事件日均数量
  takeTimeAvg|float|事件平均耗时(单位秒)
**响应消息样例:**
```
{
"data": {
"data": [
{
"eventCode": "Click",
"eventName": "点击",
"dayAvg": "47",
"takeTimeAvg": "0.96"
}
]
},
"code": 1,
"msg": "查询事件分析结果成功"
}
```
### 产品热力图
**请求URL:** zwfw/act/analyse/productHotCensus
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 查询产品热力图
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:-------
productId|Long|是|产品id
dateTimeStart|String|是|开始时间
dateTimeStart|String|是|结束时间
pageCode|String|是|页面编码
**请求样例:**
```
{
"productId":1,
"dateTimeStart":"2023-04-10",
"dateTimeEnd":"2023-05-11",
"pageCode":"/"
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
 data|array|数组对象
  businessCode|String|业务编码
  businessName|String|业务名称
  coordinate|String|坐标信息
  x|float|页面x坐标
  y|float|页面y坐标
  value|int|事件点击次数
  proportion|String|事件占比
 clickSum|int|总点击次数
 screenUrl|String|页面截图保存地址
**响应消息样例:**
```
{
"data": {
"data": [
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "966,286",
"value": 4,
"x": 966.0,
"y": 286.0,
"proportion": "16.67%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "1844,558",
"value": 3,
"x": 1844.0,
"y": 558.0,
"proportion": "12.50%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "1861,906",
"value": 3,
"x": 1861.0,
"y": 906.0,
"proportion": "12.50%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "1073,242",
"value": 3,
"x": 1073.0,
"y": 242.0,
"proportion": "12.50%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "932,13",
"value": 2,
"x": 932.0,
"y": 13.0,
"proportion": "8.33%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "1882,900",
"value": 2,
"x": 1882.0,
"y": 900.0,
"proportion": "8.33%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "986,13",
"value": 2,
"x": 986.0,
"y": 13.0,
"proportion": "8.33%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "152,1812",
"value": 2,
"x": 152.0,
"y": 1812.0,
"proportion": "8.33%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "180,1820",
"value": 2,
"x": 180.0,
"y": 1820.0,
"proportion": "8.33%"
},
{
"businessCode": "/",
"businessName": "首页",
"coordinate": "899,337",
"value": 1,
"x": 899.0,
"y": 337.0,
"proportion": "4.17%"
}
],
"clickSum": 24,
"screenUrl": "/file/uploadfile/1681357141107.png"
},
"code": 1,
"msg": "查询产品热力图成功"
}
```
### 页面访问分析
**请求URL:** zwfw/act/analyse/accessAnalyse
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 查询页面访问分析
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:-------
productId|Long|是|产品id
dateTimeStart|String|是|开始时间
dateTimeStart|String|是|结束时间
**请求样例:**
```
{
"productId":1,
"dateTimeStart":"2023-04-10",
"dateTimeEnd":"2023-05-11"
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
 accessTrend|array|页面访问趋势图
  accessDay|String|日期
  accessCount|int|访问次数
 pageAccessTop|array|页面访问次数TOP10
  pageCode|String|页面编码
  pageName|String|页面名称
  accessCount|int|访问次数
 accessSum|int|页面累计访问次数
 dayAccessAvg|float|日均访问次数
 depthAvg|float|人均访问深度
 singleDepth|float|次均访问深度
**响应消息样例:**
```
{
"data": {
"dayAccessAvg": 234.0,
"accessTrend": [
{
"accessDay": "04-12",
"accessCount": 245
},
{
"accessDay": "04-13",
"accessCount": 251
},
{
"accessDay": "04-14",
"accessCount": 206
}
],
"pageAccessTop": [
{
"pageCode": "/",
"pageName": "首页",
"accessCount": 371
},
{
"pageCode": "/floor",
"pageName": "中心导航",
"accessCount": 165
},
{
"pageCode": "/business/test001",
"pageName": "办理业务",
"accessCount": 60
},
{
"pageCode": "/business/166",
"pageName": "办理业务",
"accessCount": 24
},
{
"pageCode": "/makeTakeNum",
"pageName": "预约取号",
"accessCount": 23
},
{
"pageCode": "/Layout",
"pageName": "应用集市",
"accessCount": 22
},
{
"pageCode": "/signInWay",
"pageName": "签到方式",
"accessCount": 13
},
{
"pageCode": "/business/148",
"pageName": "办理业务",
"accessCount": 8
},
{
"pageCode": "/signInWay?matterId=34464&businessid=169&phone=1&idcardtake=1&face=0",
"pageName": "签到方式",
"accessCount": 5
},
{
"pageCode": "/signInWay?businessid=149&phone=1&idcardtake=1&face=0",
"pageName": "签到方式",
"accessCount": 4
}
],
"depthAvg": 2.08,
"accessSum": 702,
"singleDepth": 2.08
},
"code": 1,
"msg": "查询页面访问分析成功"
}
```
### 页面路径访问分析
**请求URL:** zwfw/act/analyse/wayAccessAnalyse
**请求方式:** POST
**内容类型:** application/json;charset=utf-8
**简要描述:** 查询页面路径访问分析
**请求参数:**
参数名称|类型|必填|描述
:---|:---|:---|:-------
productId|Long|是|产品id
dateTimeStart|String|是|开始时间
dateTimeStart|String|是|结束时间
**请求样例:**
```
{
"productId":1,
"dateTimeStart":"2023-04-10",
"dateTimeEnd":"2023-05-11"
}
```
**响应参数:**
参数名称 |参数类型|描述
:---|:---|:------
code|Integer|结果码(-1.失败,1.成功)
msg|String|消息
data|object|数据对象
 data|array|页面
  code|String|页面code
  name|String|页面name
 links|array|页面路径
  source|String|开始页面
  sourceName|String|开始页面名称
  target|String|目标页面
  targetName|String|目标页面名称
  value|int|访问次数
**响应消息样例:**
```
{
"data": {
"data": [
{
"code": "/",
"name": "首页"
},
{
"code": "/floor",
"name": "中心导航"
},
{
"code": "/Layout",
"name": "应用集市"
},
{
"code": "/business/test001",
"name": "办理业务"
},
{
"code": "/business/148",
"name": "办理业务"
},
{
"code": "/makeTakeNum",
"name": "预约取号"
},
{
"code": "/makeList?phone=13730664362",
"name": "预约列表"
},
{
"code": "/signInWay?businessid=149&phone=1&idcardtake=1&face=0",
"name": "签到方式"
},
{
"code": "/print?state=error",
"name": "打印"
},
{
"code": "/business/166",
"name": "办理业务"
},
{
"code": "/bizMatters?businessid=170&phone=1&idcardtake=1&face=0",
"name": "业务事项"
},
{
"code": "/bizMatters",
"name": "业务事项"
},
{
"code": "/signInWay",
"name": "签到方式"
},
{
"code": "/print",
"name": "打印"
}
],
"links": [
{
"source": "/",
"sourceName": "首页",
"target": "/",
"targetName": "首页",
"value": 143
},
{
"source": "/",
"sourceName": "首页",
"target": "/business/test001",
"targetName": "办理业务",
"value": 38
},
{
"source": "/",
"sourceName": "首页",
"target": "/floor",
"targetName": "中心导航",
"value": 142
},
{
"source": "/",
"sourceName": "首页",
"target": "/Layout",
"targetName": "应用集市",
"value": 16
},
{
"source": "/",
"sourceName": "首页",
"target": "/makeTakeNum",
"targetName": "预约取号",
"value": 8
},
{
"source": "/",
"sourceName": "首页",
"target": "/print",
"targetName": "打印",
"value": 1
},
{
"source": "/bizMatters",
"sourceName": "业务事项",
"target": "/",
"targetName": "首页",
"value": 2
},
{
"source": "/bizMatters",
"sourceName": "业务事项",
"target": "/signInWay",
"targetName": "签到方式",
"value": 8
},
{
"source": "/bizMatters?businessid=170&phone=1&idcardtake=1&face=0",
"sourceName": "业务事项",
"target": "/",
"targetName": "首页",
"value": 1
},
{
"source": "/business/148",
"sourceName": "办理业务",
"target": "/",
"targetName": "首页",
"value": 2
},
{
"source": "/business/148",
"sourceName": "办理业务",
"target": "/signInWay",
"targetName": "签到方式",
"value": 2
},
{
"source": "/business/148",
"sourceName": "办理业务",
"target": "/signInWay?businessid=149&phone=1&idcardtake=1&face=0",
"targetName": "签到方式",
"value": 1
},
{
"source": "/business/166",
"sourceName": "办理业务",
"target": "/",
"targetName": "首页",
"value": 3
},
{
"source": "/business/166",
"sourceName": "办理业务",
"target": "/bizMatters",
"targetName": "业务事项",
"value": 9
},
{
"source": "/business/166",
"sourceName": "办理业务",
"target": "/bizMatters?businessid=170&phone=1&idcardtake=1&face=0",
"targetName": "业务事项",
"value": 1
},
{
"source": "/business/test001",
"sourceName": "办理业务",
"target": "/",
"targetName": "首页",
"value": 17
},
{
"source": "/business/test001",
"sourceName": "办理业务",
"target": "/bizMatters",
"targetName": "业务事项",
"value": 1
},
{
"source": "/business/test001",
"sourceName": "办理业务",
"target": "/business/148",
"targetName": "办理业务",
"value": 5
},
{
"source": "/business/test001",
"sourceName": "办理业务",
"target": "/business/166",
"targetName": "办理业务",
"value": 13
},
{
"source": "/business/test001",
"sourceName": "办理业务",
"target": "/signInWay",
"targetName": "签到方式",
"value": 2
},
{
"source": "/floor",
"sourceName": "中心导航",
"target": "/",
"targetName": "首页",
"value": 130
},
{
"source": "/Layout",
"sourceName": "应用集市",
"target": "/",
"targetName": "首页",
"value": 16
},
{
"source": "/makeList?phone=13730664362",
"sourceName": "预约列表",
"target": "/",
"targetName": "首页",
"value": 1
},
{
"source": "/makeList?phone=13730664362",
"sourceName": "预约列表",
"target": "/makeTakeNum",
"targetName": "预约取号",
"value": 1
},
{
"source": "/makeTakeNum",
"sourceName": "预约取号",
"target": "/",
"targetName": "首页",
"value": 7
},
{
"source": "/makeTakeNum",
"sourceName": "预约取号",
"target": "/makeList?phone=13730664362",
"targetName": "预约列表",
"value": 2
},
{
"source": "/print",
"sourceName": "打印",
"target": "/",
"targetName": "首页",
"value": 3
},
{
"source": "/print?state=error",
"sourceName": "打印",
"target": "/",
"targetName": "首页",
"value": 1
},
{
"source": "/signInWay",
"sourceName": "签到方式",
"target": "/",
"targetName": "首页",
"value": 9
},
{
"source": "/signInWay",
"sourceName": "签到方式",
"target": "/print",
"targetName": "打印",
"value": 3
},
{
"source": "/signInWay?businessid=149&phone=1&idcardtake=1&face=0",
"sourceName": "签到方式",
"target": "/print?state=error",
"targetName": "打印",
"value": 1
}
]
},
"code": 1,
"msg": "查询页面路径访问分析成功"
}
```
## 字典附录
......
......@@ -2,6 +2,9 @@ package com.mortals.xhx.module.page.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.page.model.PageAccessDepthEntity;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo;
import java.util.List;
/**
* 产品页面配置Dao
......@@ -13,5 +16,10 @@ import java.util.List;
public interface PageAccessDepthDao extends ICRUDDao<PageAccessDepthEntity,Long>{
/**
* 人均访问深度
* @param pdu
* @return
*/
List<AccessTrendCensusVo> getDepthAvg(PageCensusPdu pdu);
}
......@@ -2,6 +2,11 @@ package com.mortals.xhx.module.page.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.page.model.PageEventEntity;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import java.util.List;
/**
* 页面事件记录Dao
......@@ -13,5 +18,31 @@ import java.util.List;
public interface PageEventDao extends ICRUDDao<PageEventEntity,Long>{
/**
* 事件分析
* @param pdu
* @return
*/
List<PageEventCensusVo> getPageEventCensus(PageCensusPdu pdu);
/**
* 产品热力图
* @param pdu
* @return
*/
List<ProductHotCensusVo> getProductHotCensus(PageCensusPdu pdu);
/**
* 页面访问指标趋势
* @param pdu
* @return
*/
List<AccessTrendCensusVo> getPageAccessTrend(PageCensusPdu pdu);
/**
* 页面访问次数TOP10
* @param pdu
* @return
*/
List<AccessTrendCensusVo> getPageAccessTop(PageCensusPdu pdu);
}
......@@ -2,7 +2,12 @@ package com.mortals.xhx.module.page.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.page.model.PageRouteEntity;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.PageWayCensusVo;
import java.util.List;
import java.util.Map;
/**
* 页面路径记录Dao
* 页面路径记录 DAO接口
......@@ -13,5 +18,17 @@ import java.util.List;
public interface PageRouteDao extends ICRUDDao<PageRouteEntity,Long>{
/**
* 路径图
* @param pdu
* @return
*/
List<PageWayCensusVo> getPageWayCensus(PageCensusPdu pdu);
/**
* 获取路径图页面名称
* @param pdu
* @return
*/
List<Map<String,Object>> getPageWayCode(PageCensusPdu pdu);
}
package com.mortals.xhx.module.page.dao.ibatis;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.page.dao.PageAccessDepthDao;
import com.mortals.xhx.module.page.model.PageAccessDepthEntity;
......@@ -16,6 +18,9 @@ import java.util.List;
@Repository("pageAccessDepthDao")
public class PageAccessDepthDaoImpl extends BaseCRUDDaoMybatis<PageAccessDepthEntity,Long> implements PageAccessDepthDao {
@Override
public List<AccessTrendCensusVo> getDepthAvg(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getDepthAvg"), pdu);
}
}
package com.mortals.xhx.module.page.dao.ibatis;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.page.dao.PageEventDao;
import com.mortals.xhx.module.page.model.PageEventEntity;
......@@ -17,5 +21,25 @@ import java.util.List;
public class PageEventDaoImpl extends BaseCRUDDaoMybatis<PageEventEntity,Long> implements PageEventDao {
@Override
public List<PageEventCensusVo> getPageEventCensus(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getPageEventCensus"), pdu);
}
@Override
public List<ProductHotCensusVo> getProductHotCensus(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getProductHotCensus"), pdu);
}
@Override
public List<AccessTrendCensusVo> getPageAccessTrend(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getPageAccessTrend"), pdu);
}
@Override
public List<AccessTrendCensusVo> getPageAccessTop(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getPageAccessTop"), pdu);
}
}
package com.mortals.xhx.module.page.dao.ibatis;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.PageWayCensusVo;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.page.dao.PageRouteDao;
import com.mortals.xhx.module.page.model.PageRouteEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
import java.util.Map;
/**
* 页面路径记录DaoImpl DAO接口
*
......@@ -17,5 +21,13 @@ import java.util.List;
public class PageRouteDaoImpl extends BaseCRUDDaoMybatis<PageRouteEntity,Long> implements PageRouteDao {
@Override
public List<PageWayCensusVo> getPageWayCensus(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getPageWayCensus"), pdu);
}
@Override
public List<Map<String, Object>> getPageWayCode(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getPageWayCode"), pdu);
}
}
......@@ -7,126 +7,252 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.page.model.vo.PageAccessVo;
/**
* 产品页面配置实体对象
*
* @author zxfei
* @date 2023-04-12
*/
* 产品页面访问记录实体对象
*
* @author zxfei
* @date 2023-04-13
*/
public class PageAccessEntity extends PageAccessVo {
private static final long serialVersionUID = 1L;
/**
* 设备编码
*/
* 设备编码
*/
private String deviceNum;
/**
* 产品id
*/
* 产品id
*/
private Long productId;
/**
* 产品名称
*/
* 产品名称
*/
private String productName;
/**
* 页面编码(页面路由)
*/
private String pageCode;
* 页面编码(页面路由)
*/
private String firstCode;
/**
* 页面名称
*/
private String pageName;
* 页面名称
*/
private String firstName;
/**
* 场景维度
*/
private Integer sceneDepth;
* 页面编码(页面路由)
*/
private String secondCode;
/**
* 页面名称
*/
private String secondName;
/**
* 页面编码(页面路由)
*/
private String thirdCode;
/**
* 页面名称
*/
private String thirdName;
/**
* 页面编码(页面路由)
*/
private String fourthCode;
/**
* 页面名称
*/
private String fourthName;
/**
* 完整路径
*/
private String accessContent;
/**
* 页面深度
*/
private Integer pageDepth;
public PageAccessEntity(){}
/**
* 获取 设备编码
* @return String
*/
* 获取 设备编码
* @return String
*/
public String getDeviceNum(){
return deviceNum;
}
/**
* 设置 设备编码
* @param deviceNum
*/
* 设置 设备编码
* @param deviceNum
*/
public void setDeviceNum(String deviceNum){
this.deviceNum = deviceNum;
}
/**
* 获取 产品id
* @return Long
*/
* 获取 产品id
* @return Long
*/
public Long getProductId(){
return productId;
}
/**
* 设置 产品id
* @param productId
*/
* 设置 产品id
* @param productId
*/
public void setProductId(Long productId){
this.productId = productId;
}
/**
* 获取 产品名称
* @return String
*/
* 获取 产品名称
* @return String
*/
public String getProductName(){
return productName;
}
/**
* 设置 产品名称
* @param productName
*/
* 设置 产品名称
* @param productName
*/
public void setProductName(String productName){
this.productName = productName;
}
/**
* 获取 页面编码(页面路由)
* @return String
*/
public String getPageCode(){
return pageCode;
* 获取 页面编码(页面路由)
* @return String
*/
public String getFirstCode(){
return firstCode;
}
/**
* 设置 页面编码(页面路由)
* @param firstCode
*/
public void setFirstCode(String firstCode){
this.firstCode = firstCode;
}
/**
* 获取 页面名称
* @return String
*/
public String getFirstName(){
return firstName;
}
/**
* 设置 页面名称
* @param firstName
*/
public void setFirstName(String firstName){
this.firstName = firstName;
}
/**
* 获取 页面编码(页面路由)
* @return String
*/
public String getSecondCode(){
return secondCode;
}
/**
* 设置 页面编码(页面路由)
* @param secondCode
*/
public void setSecondCode(String secondCode){
this.secondCode = secondCode;
}
/**
* 获取 页面名称
* @return String
*/
public String getSecondName(){
return secondName;
}
/**
* 设置 页面名称
* @param secondName
*/
public void setSecondName(String secondName){
this.secondName = secondName;
}
/**
* 设置 页面编码(页面路由)
* @param pageCode
*/
public void setPageCode(String pageCode){
this.pageCode = pageCode;
* 获取 页面编码(页面路由)
* @return String
*/
public String getThirdCode(){
return thirdCode;
}
/**
* 获取 页面名称
* @return String
*/
public String getPageName(){
return pageName;
* 设置 页面编码(页面路由)
* @param thirdCode
*/
public void setThirdCode(String thirdCode){
this.thirdCode = thirdCode;
}
/**
* 设置 页面名称
* @param pageName
*/
public void setPageName(String pageName){
this.pageName = pageName;
* 获取 页面名称
* @return String
*/
public String getThirdName(){
return thirdName;
}
/**
* 获取 场景维度
* @return Integer
*/
public Integer getSceneDepth(){
return sceneDepth;
* 设置 页面名称
* @param thirdName
*/
public void setThirdName(String thirdName){
this.thirdName = thirdName;
}
/**
* 设置 场景维度
* @param sceneDepth
*/
public void setSceneDepth(Integer sceneDepth){
this.sceneDepth = sceneDepth;
* 获取 页面编码(页面路由)
* @return String
*/
public String getFourthCode(){
return fourthCode;
}
/**
* 设置 页面编码(页面路由)
* @param fourthCode
*/
public void setFourthCode(String fourthCode){
this.fourthCode = fourthCode;
}
/**
* 获取 页面名称
* @return String
*/
public String getFourthName(){
return fourthName;
}
/**
* 设置 页面名称
* @param fourthName
*/
public void setFourthName(String fourthName){
this.fourthName = fourthName;
}
/**
* 获取 完整路径
* @return String
*/
public String getAccessContent(){
return accessContent;
}
/**
* 设置 完整路径
* @param accessContent
*/
public void setAccessContent(String accessContent){
this.accessContent = accessContent;
}
/**
* 获取 页面深度
* @return Integer
*/
public Integer getPageDepth(){
return pageDepth;
}
/**
* 设置 页面深度
* @param pageDepth
*/
public void setPageDepth(Integer pageDepth){
this.pageDepth = pageDepth;
}
......@@ -134,7 +260,7 @@ public class PageAccessEntity extends PageAccessVo {
@Override
public int hashCode() {
return this.getId().hashCode();
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
......@@ -142,7 +268,7 @@ public class PageAccessEntity extends PageAccessVo {
if (obj instanceof PageAccessEntity) {
PageAccessEntity tmp = (PageAccessEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
return true;
}
}
return false;
......@@ -153,24 +279,45 @@ public class PageAccessEntity extends PageAccessVo {
sb.append(",deviceNum:").append(getDeviceNum());
sb.append(",productId:").append(getProductId());
sb.append(",productName:").append(getProductName());
sb.append(",pageCode:").append(getPageCode());
sb.append(",pageName:").append(getPageName());
sb.append(",sceneDepth:").append(getSceneDepth());
sb.append(",firstCode:").append(getFirstCode());
sb.append(",firstName:").append(getFirstName());
sb.append(",secondCode:").append(getSecondCode());
sb.append(",secondName:").append(getSecondName());
sb.append(",thirdCode:").append(getThirdCode());
sb.append(",thirdName:").append(getThirdName());
sb.append(",fourthCode:").append(getFourthCode());
sb.append(",fourthName:").append(getFourthName());
sb.append(",accessContent:").append(getAccessContent());
sb.append(",pageDepth:").append(getPageDepth());
return sb.toString();
}
public void initAttrValue(){
this.deviceNum = "";
this.deviceNum = "";
this.productId = null;
this.productName = "";
this.firstCode = "";
this.firstName = "";
this.secondCode = "";
this.secondName = "";
this.thirdCode = "";
this.productId = null;
this.thirdName = "";
this.productName = "";
this.fourthCode = "";
this.pageCode = "";
this.fourthName = "";
this.pageName = "";
this.accessContent = "";
this.sceneDepth = 0;
this.pageDepth = 0;
}
}
\ No newline at end of file
......@@ -3,11 +3,11 @@ package com.mortals.xhx.module.page.model;
import java.util.List;
import com.mortals.xhx.module.page.model.PageAccessEntity;
/**
* 产品页面配置查询对象
*
* @author zxfei
* @date 2023-04-12
*/
* 产品页面访问记录查询对象
*
* @author zxfei
* @date 2023-04-13
*/
public class PageAccessQuery extends PageAccessEntity {
/** 开始 序号,主键,自增长 */
private Long idStart;
......@@ -50,29 +50,64 @@ public class PageAccessQuery extends PageAccessEntity {
/** 产品名称排除列表 */
private List <String> productNameNotList;
/** 页面编码(页面路由) */
private List<String> pageCodeList;
private List<String> firstCodeList;
/** 页面编码(页面路由)排除列表 */
private List <String> pageCodeNotList;
private List <String> firstCodeNotList;
/** 页面名称 */
private List<String> pageNameList;
private List<String> firstNameList;
/** 页面名称排除列表 */
private List <String> pageNameNotList;
/** 开始 场景维度 */
private Integer sceneDepthStart;
private List <String> firstNameNotList;
/** 页面编码(页面路由) */
private List<String> secondCodeList;
/** 页面编码(页面路由)排除列表 */
private List <String> secondCodeNotList;
/** 页面名称 */
private List<String> secondNameList;
/** 页面名称排除列表 */
private List <String> secondNameNotList;
/** 页面编码(页面路由) */
private List<String> thirdCodeList;
/** 页面编码(页面路由)排除列表 */
private List <String> thirdCodeNotList;
/** 页面名称 */
private List<String> thirdNameList;
/** 页面名称排除列表 */
private List <String> thirdNameNotList;
/** 页面编码(页面路由) */
private List<String> fourthCodeList;
/** 结束 场景维度 */
private Integer sceneDepthEnd;
/** 页面编码(页面路由)排除列表 */
private List <String> fourthCodeNotList;
/** 页面名称 */
private List<String> fourthNameList;
/** 增加 场景维度 */
private Integer sceneDepthIncrement;
/** 页面名称排除列表 */
private List <String> fourthNameNotList;
/** 完整路径 */
private List<String> accessContentList;
/** 场景维度列表 */
private List <Integer> sceneDepthList;
/** 完整路径排除列表 */
private List <String> accessContentNotList;
/** 开始 页面深度 */
private Integer pageDepthStart;
/** 场景维度排除列表 */
private List <Integer> sceneDepthNotList;
/** 结束 页面深度 */
private Integer pageDepthEnd;
/** 增加 页面深度 */
private Integer pageDepthIncrement;
/** 页面深度列表 */
private List <Integer> pageDepthList;
/** 页面深度排除列表 */
private List <Integer> pageDepthNotList;
/** 开始 创建用户 */
private Long createUserIdStart;
......@@ -125,978 +160,1335 @@ public class PageAccessQuery extends PageAccessEntity {
public PageAccessQuery(){}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 序号,主键,自增长
* @return idNotList
*/
* 获取 序号,主键,自增长
* @return idNotList
*/
public List<Long> getIdNotList(){
return this.idNotList;
}
/**
* 设置 序号,主键,自增长
* @param idNotList
*/
* 设置 序号,主键,自增长
* @param idNotList
*/
public void setIdNotList(List<Long> idNotList){
this.idNotList = idNotList;
}
/**
* 获取 设备编码
* @return deviceNumList
*/
* 获取 设备编码
* @return deviceNumList
*/
public List<String> getDeviceNumList(){
return this.deviceNumList;
}
/**
* 设置 设备编码
* @param deviceNumList
*/
* 设置 设备编码
* @param deviceNumList
*/
public void setDeviceNumList(List<String> deviceNumList){
this.deviceNumList = deviceNumList;
}
/**
* 获取 设备编码
* @return deviceNumNotList
*/
* 获取 设备编码
* @return deviceNumNotList
*/
public List<String> getDeviceNumNotList(){
return this.deviceNumNotList;
}
/**
* 设置 设备编码
* @param deviceNumNotList
*/
* 设置 设备编码
* @param deviceNumNotList
*/
public void setDeviceNumNotList(List<String> deviceNumNotList){
this.deviceNumNotList = deviceNumNotList;
}
/**
* 获取 开始 产品id
* @return productIdStart
*/
* 获取 开始 产品id
* @return productIdStart
*/
public Long getProductIdStart(){
return this.productIdStart;
}
/**
* 设置 开始 产品id
* @param productIdStart
*/
* 设置 开始 产品id
* @param productIdStart
*/
public void setProductIdStart(Long productIdStart){
this.productIdStart = productIdStart;
}
/**
* 获取 结束 产品id
* @return $productIdEnd
*/
* 获取 结束 产品id
* @return $productIdEnd
*/
public Long getProductIdEnd(){
return this.productIdEnd;
}
/**
* 设置 结束 产品id
* @param productIdEnd
*/
* 设置 结束 产品id
* @param productIdEnd
*/
public void setProductIdEnd(Long productIdEnd){
this.productIdEnd = productIdEnd;
}
/**
* 获取 增加 产品id
* @return productIdIncrement
*/
* 获取 增加 产品id
* @return productIdIncrement
*/
public Long getProductIdIncrement(){
return this.productIdIncrement;
}
/**
* 设置 增加 产品id
* @param productIdIncrement
*/
* 设置 增加 产品id
* @param productIdIncrement
*/
public void setProductIdIncrement(Long productIdIncrement){
this.productIdIncrement = productIdIncrement;
}
/**
* 获取 产品id
* @return productIdList
*/
* 获取 产品id
* @return productIdList
*/
public List<Long> getProductIdList(){
return this.productIdList;
}
/**
* 设置 产品id
* @param productIdList
*/
* 设置 产品id
* @param productIdList
*/
public void setProductIdList(List<Long> productIdList){
this.productIdList = productIdList;
}
/**
* 获取 产品id
* @return productIdNotList
*/
* 获取 产品id
* @return productIdNotList
*/
public List<Long> getProductIdNotList(){
return this.productIdNotList;
}
/**
* 设置 产品id
* @param productIdNotList
*/
* 设置 产品id
* @param productIdNotList
*/
public void setProductIdNotList(List<Long> productIdNotList){
this.productIdNotList = productIdNotList;
}
/**
* 获取 产品名称
* @return productNameList
*/
* 获取 产品名称
* @return productNameList
*/
public List<String> getProductNameList(){
return this.productNameList;
}
/**
* 设置 产品名称
* @param productNameList
*/
* 设置 产品名称
* @param productNameList
*/
public void setProductNameList(List<String> productNameList){
this.productNameList = productNameList;
}
/**
* 获取 产品名称
* @return productNameNotList
*/
* 获取 产品名称
* @return productNameNotList
*/
public List<String> getProductNameNotList(){
return this.productNameNotList;
}
/**
* 设置 产品名称
* @param productNameNotList
*/
* 设置 产品名称
* @param productNameNotList
*/
public void setProductNameNotList(List<String> productNameNotList){
this.productNameNotList = productNameNotList;
}
/**
* 获取 页面编码(页面路由)
* @return pageCodeList
*/
public List<String> getPageCodeList(){
return this.pageCodeList;
* 获取 页面编码(页面路由)
* @return firstCodeList
*/
public List<String> getFirstCodeList(){
return this.firstCodeList;
}
/**
* 设置 页面编码(页面路由)
* @param firstCodeList
*/
public void setFirstCodeList(List<String> firstCodeList){
this.firstCodeList = firstCodeList;
}
/**
* 获取 页面编码(页面路由)
* @return firstCodeNotList
*/
public List<String> getFirstCodeNotList(){
return this.firstCodeNotList;
}
/**
* 设置 页面编码(页面路由)
* @param firstCodeNotList
*/
public void setFirstCodeNotList(List<String> firstCodeNotList){
this.firstCodeNotList = firstCodeNotList;
}
/**
* 获取 页面名称
* @return firstNameList
*/
public List<String> getFirstNameList(){
return this.firstNameList;
}
/**
* 设置 页面名称
* @param firstNameList
*/
public void setFirstNameList(List<String> firstNameList){
this.firstNameList = firstNameList;
}
/**
* 获取 页面名称
* @return firstNameNotList
*/
public List<String> getFirstNameNotList(){
return this.firstNameNotList;
}
/**
* 设置 页面名称
* @param firstNameNotList
*/
public void setFirstNameNotList(List<String> firstNameNotList){
this.firstNameNotList = firstNameNotList;
}
/**
* 获取 页面编码(页面路由)
* @return secondCodeList
*/
public List<String> getSecondCodeList(){
return this.secondCodeList;
}
/**
* 设置 页面编码(页面路由)
* @param secondCodeList
*/
public void setSecondCodeList(List<String> secondCodeList){
this.secondCodeList = secondCodeList;
}
/**
* 获取 页面编码(页面路由)
* @return secondCodeNotList
*/
public List<String> getSecondCodeNotList(){
return this.secondCodeNotList;
}
/**
* 设置 页面编码(页面路由)
* @param secondCodeNotList
*/
public void setSecondCodeNotList(List<String> secondCodeNotList){
this.secondCodeNotList = secondCodeNotList;
}
/**
* 获取 页面名称
* @return secondNameList
*/
public List<String> getSecondNameList(){
return this.secondNameList;
}
/**
* 设置 页面名称
* @param secondNameList
*/
public void setSecondNameList(List<String> secondNameList){
this.secondNameList = secondNameList;
}
/**
* 获取 页面名称
* @return secondNameNotList
*/
public List<String> getSecondNameNotList(){
return this.secondNameNotList;
}
/**
* 设置 页面名称
* @param secondNameNotList
*/
public void setSecondNameNotList(List<String> secondNameNotList){
this.secondNameNotList = secondNameNotList;
}
/**
* 获取 页面编码(页面路由)
* @return thirdCodeList
*/
public List<String> getThirdCodeList(){
return this.thirdCodeList;
}
/**
* 设置 页面编码(页面路由)
* @param thirdCodeList
*/
public void setThirdCodeList(List<String> thirdCodeList){
this.thirdCodeList = thirdCodeList;
}
/**
* 获取 页面编码(页面路由)
* @return thirdCodeNotList
*/
public List<String> getThirdCodeNotList(){
return this.thirdCodeNotList;
}
/**
* 设置 页面编码(页面路由)
* @param thirdCodeNotList
*/
public void setThirdCodeNotList(List<String> thirdCodeNotList){
this.thirdCodeNotList = thirdCodeNotList;
}
/**
* 获取 页面名称
* @return thirdNameList
*/
public List<String> getThirdNameList(){
return this.thirdNameList;
}
/**
* 设置 页面名称
* @param thirdNameList
*/
public void setThirdNameList(List<String> thirdNameList){
this.thirdNameList = thirdNameList;
}
/**
* 获取 页面名称
* @return thirdNameNotList
*/
public List<String> getThirdNameNotList(){
return this.thirdNameNotList;
}
/**
* 设置 页面名称
* @param thirdNameNotList
*/
public void setThirdNameNotList(List<String> thirdNameNotList){
this.thirdNameNotList = thirdNameNotList;
}
/**
* 获取 页面编码(页面路由)
* @return fourthCodeList
*/
public List<String> getFourthCodeList(){
return this.fourthCodeList;
}
/**
* 设置 页面编码(页面路由)
* @param fourthCodeList
*/
public void setFourthCodeList(List<String> fourthCodeList){
this.fourthCodeList = fourthCodeList;
}
/**
* 获取 页面编码(页面路由)
* @return fourthCodeNotList
*/
public List<String> getFourthCodeNotList(){
return this.fourthCodeNotList;
}
/**
* 设置 页面编码(页面路由)
* @param fourthCodeNotList
*/
public void setFourthCodeNotList(List<String> fourthCodeNotList){
this.fourthCodeNotList = fourthCodeNotList;
}
/**
* 获取 页面名称
* @return fourthNameList
*/
public List<String> getFourthNameList(){
return this.fourthNameList;
}
/**
* 设置 页面编码(页面路由)
* @param pageCodeList
*/
public void setPageCodeList(List<String> pageCodeList){
this.pageCodeList = pageCodeList;
* 设置 页面名称
* @param fourthNameList
*/
public void setFourthNameList(List<String> fourthNameList){
this.fourthNameList = fourthNameList;
}
/**
* 获取 页面编码(页面路由)
* @return pageCodeNotList
*/
public List<String> getPageCodeNotList(){
return this.pageCodeNotList;
* 获取 页面名称
* @return fourthNameNotList
*/
public List<String> getFourthNameNotList(){
return this.fourthNameNotList;
}
/**
* 设置 页面编码(页面路由)
* @param pageCodeNotList
*/
public void setPageCodeNotList(List<String> pageCodeNotList){
this.pageCodeNotList = pageCodeNotList;
* 设置 页面名称
* @param fourthNameNotList
*/
public void setFourthNameNotList(List<String> fourthNameNotList){
this.fourthNameNotList = fourthNameNotList;
}
/**
* 获取 页面名称
* @return pageNameList
*/
public List<String> getPageNameList(){
return this.pageNameList;
* 获取 完整路径
* @return accessContentList
*/
public List<String> getAccessContentList(){
return this.accessContentList;
}
/**
* 设置 页面名称
* @param pageNameList
*/
public void setPageNameList(List<String> pageNameList){
this.pageNameList = pageNameList;
* 设置 完整路径
* @param accessContentList
*/
public void setAccessContentList(List<String> accessContentList){
this.accessContentList = accessContentList;
}
/**
* 获取 页面名称
* @return pageNameNotList
*/
public List<String> getPageNameNotList(){
return this.pageNameNotList;
* 获取 完整路径
* @return accessContentNotList
*/
public List<String> getAccessContentNotList(){
return this.accessContentNotList;
}
/**
* 设置 页面名称
* @param pageNameNotList
*/
public void setPageNameNotList(List<String> pageNameNotList){
this.pageNameNotList = pageNameNotList;
* 设置 完整路径
* @param accessContentNotList
*/
public void setAccessContentNotList(List<String> accessContentNotList){
this.accessContentNotList = accessContentNotList;
}
/**
* 获取 开始 场景维
* @return sceneDepthStart
*/
public Integer getSceneDepthStart(){
return this.sceneDepthStart;
* 获取 开始 页面深
* @return pageDepthStart
*/
public Integer getPageDepthStart(){
return this.pageDepthStart;
}
/**
* 设置 开始 场景维
* @param sceneDepthStart
*/
public void setSceneDepthStart(Integer sceneDepthStart){
this.sceneDepthStart = sceneDepthStart;
* 设置 开始 页面深
* @param pageDepthStart
*/
public void setPageDepthStart(Integer pageDepthStart){
this.pageDepthStart = pageDepthStart;
}
/**
* 获取 结束 场景维
* @return $sceneDepthEnd
*/
public Integer getSceneDepthEnd(){
return this.sceneDepthEnd;
* 获取 结束 页面深
* @return $pageDepthEnd
*/
public Integer getPageDepthEnd(){
return this.pageDepthEnd;
}
/**
* 设置 结束 场景维
* @param sceneDepthEnd
*/
public void setSceneDepthEnd(Integer sceneDepthEnd){
this.sceneDepthEnd = sceneDepthEnd;
* 设置 结束 页面深
* @param pageDepthEnd
*/
public void setPageDepthEnd(Integer pageDepthEnd){
this.pageDepthEnd = pageDepthEnd;
}
/**
* 获取 增加 场景维
* @return sceneDepthIncrement
*/
public Integer getSceneDepthIncrement(){
return this.sceneDepthIncrement;
* 获取 增加 页面深
* @return pageDepthIncrement
*/
public Integer getPageDepthIncrement(){
return this.pageDepthIncrement;
}
/**
* 设置 增加 场景维
* @param sceneDepthIncrement
*/
public void setSceneDepthIncrement(Integer sceneDepthIncrement){
this.sceneDepthIncrement = sceneDepthIncrement;
* 设置 增加 页面深
* @param pageDepthIncrement
*/
public void setPageDepthIncrement(Integer pageDepthIncrement){
this.pageDepthIncrement = pageDepthIncrement;
}
/**
* 获取 场景维
* @return sceneDepthList
*/
public List<Integer> getSceneDepthList(){
return this.sceneDepthList;
* 获取 页面深
* @return pageDepthList
*/
public List<Integer> getPageDepthList(){
return this.pageDepthList;
}
/**
* 设置 场景维
* @param sceneDepthList
*/
public void setSceneDepthList(List<Integer> sceneDepthList){
this.sceneDepthList = sceneDepthList;
* 设置 页面深
* @param pageDepthList
*/
public void setPageDepthList(List<Integer> pageDepthList){
this.pageDepthList = pageDepthList;
}
/**
* 获取 场景维
* @return sceneDepthNotList
*/
public List<Integer> getSceneDepthNotList(){
return this.sceneDepthNotList;
* 获取 页面深
* @return pageDepthNotList
*/
public List<Integer> getPageDepthNotList(){
return this.pageDepthNotList;
}
/**
* 设置 场景维
* @param sceneDepthNotList
*/
public void setSceneDepthNotList(List<Integer> sceneDepthNotList){
this.sceneDepthNotList = sceneDepthNotList;
* 设置 页面深
* @param pageDepthNotList
*/
public void setPageDepthNotList(List<Integer> pageDepthNotList){
this.pageDepthNotList = pageDepthNotList;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户
* @return createUserIdNotList
*/
* 获取 创建用户
* @return createUserIdNotList
*/
public List<Long> getCreateUserIdNotList(){
return this.createUserIdNotList;
}
/**
* 设置 创建用户
* @param createUserIdNotList
*/
* 设置 创建用户
* @param createUserIdNotList
*/
public void setCreateUserIdNotList(List<Long> createUserIdNotList){
this.createUserIdNotList = createUserIdNotList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 更新用户
* @return updateUserIdStart
*/
* 获取 开始 更新用户
* @return updateUserIdStart
*/
public Long getUpdateUserIdStart(){
return this.updateUserIdStart;
}
/**
* 设置 开始 更新用户
* @param updateUserIdStart
*/
* 设置 开始 更新用户
* @param updateUserIdStart
*/
public void setUpdateUserIdStart(Long updateUserIdStart){
this.updateUserIdStart = updateUserIdStart;
}
/**
* 获取 结束 更新用户
* @return $updateUserIdEnd
*/
* 获取 结束 更新用户
* @return $updateUserIdEnd
*/
public Long getUpdateUserIdEnd(){
return this.updateUserIdEnd;
}
/**
* 设置 结束 更新用户
* @param updateUserIdEnd
*/
* 设置 结束 更新用户
* @param updateUserIdEnd
*/
public void setUpdateUserIdEnd(Long updateUserIdEnd){
this.updateUserIdEnd = updateUserIdEnd;
}
/**
* 获取 增加 更新用户
* @return updateUserIdIncrement
*/
* 获取 增加 更新用户
* @return updateUserIdIncrement
*/
public Long getUpdateUserIdIncrement(){
return this.updateUserIdIncrement;
}
/**
* 设置 增加 更新用户
* @param updateUserIdIncrement
*/
* 设置 增加 更新用户
* @param updateUserIdIncrement
*/
public void setUpdateUserIdIncrement(Long updateUserIdIncrement){
this.updateUserIdIncrement = updateUserIdIncrement;
}
/**
* 获取 更新用户
* @return updateUserIdList
*/
* 获取 更新用户
* @return updateUserIdList
*/
public List<Long> getUpdateUserIdList(){
return this.updateUserIdList;
}
/**
* 设置 更新用户
* @param updateUserIdList
*/
* 设置 更新用户
* @param updateUserIdList
*/
public void setUpdateUserIdList(List<Long> updateUserIdList){
this.updateUserIdList = updateUserIdList;
}
/**
* 获取 更新用户
* @return updateUserIdNotList
*/
* 获取 更新用户
* @return updateUserIdNotList
*/
public List<Long> getUpdateUserIdNotList(){
return this.updateUserIdNotList;
}
/**
* 设置 更新用户
* @param updateUserIdNotList
*/
* 设置 更新用户
* @param updateUserIdNotList
*/
public void setUpdateUserIdNotList(List<Long> updateUserIdNotList){
this.updateUserIdNotList = updateUserIdNotList;
}
/**
* 获取 开始 更新时间
* @return updateTimeStart
*/
* 获取 开始 更新时间
* @return updateTimeStart
*/
public String getUpdateTimeStart(){
return this.updateTimeStart;
}
/**
* 设置 开始 更新时间
* @param updateTimeStart
*/
* 设置 开始 更新时间
* @param updateTimeStart
*/
public void setUpdateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
}
/**
* 获取 结束 更新时间
* @return updateTimeEnd
*/
* 获取 结束 更新时间
* @return updateTimeEnd
*/
public String getUpdateTimeEnd(){
return this.updateTimeEnd;
}
/**
* 设置 结束 更新时间
* @param updateTimeEnd
*/
* 设置 结束 更新时间
* @param updateTimeEnd
*/
public void setUpdateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
* 设置 序号,主键,自增长
* @param id
*/
public PageAccessQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public PageAccessQuery idStart(Long idStart){
this.idStart = idStart;
return this;
this.idStart = idStart;
return this;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public PageAccessQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public PageAccessQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
* 设置 序号,主键,自增长
* @param idList
*/
public PageAccessQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idNotList
*/
public PageAccessQuery idNotList(List<Long> idNotList){
return this;
}
/**
* 设置 序号,主键,自增长
* @param idNotList
*/
public PageAccessQuery idNotList(List<Long> idNotList){
this.idNotList = idNotList;
return this;
}
}
/**
* 设置 设备编码
* @param deviceNum
*/
/**
* 设置 设备编码
* @param deviceNum
*/
public PageAccessQuery deviceNum(String deviceNum){
setDeviceNum(deviceNum);
return this;
return this;
}
/**
* 设置 设备编码
* @param deviceNumList
*/
* 设置 设备编码
* @param deviceNumList
*/
public PageAccessQuery deviceNumList(List<String> deviceNumList){
this.deviceNumList = deviceNumList;
return this;
return this;
}
/**
* 设置 产品id
* @param productId
*/
* 设置 产品id
* @param productId
*/
public PageAccessQuery productId(Long productId){
setProductId(productId);
return this;
}
/**
* 设置 开始 产品id
* @param productIdStart
*/
setProductId(productId);
return this;
}
/**
* 设置 开始 产品id
* @param productIdStart
*/
public PageAccessQuery productIdStart(Long productIdStart){
this.productIdStart = productIdStart;
return this;
this.productIdStart = productIdStart;
return this;
}
/**
* 设置 结束 产品id
* @param productIdEnd
*/
* 设置 结束 产品id
* @param productIdEnd
*/
public PageAccessQuery productIdEnd(Long productIdEnd){
this.productIdEnd = productIdEnd;
return this;
this.productIdEnd = productIdEnd;
return this;
}
/**
* 设置 增加 产品id
* @param productIdIncrement
*/
* 设置 增加 产品id
* @param productIdIncrement
*/
public PageAccessQuery productIdIncrement(Long productIdIncrement){
this.productIdIncrement = productIdIncrement;
return this;
this.productIdIncrement = productIdIncrement;
return this;
}
/**
* 设置 产品id
* @param productIdList
*/
* 设置 产品id
* @param productIdList
*/
public PageAccessQuery productIdList(List<Long> productIdList){
this.productIdList = productIdList;
return this;
}
/**
* 设置 产品id
* @param productIdNotList
*/
public PageAccessQuery productIdNotList(List<Long> productIdNotList){
return this;
}
/**
* 设置 产品id
* @param productIdNotList
*/
public PageAccessQuery productIdNotList(List<Long> productIdNotList){
this.productIdNotList = productIdNotList;
return this;
}
}
/**
* 设置 产品名称
* @param productName
*/
/**
* 设置 产品名称
* @param productName
*/
public PageAccessQuery productName(String productName){
setProductName(productName);
return this;
return this;
}
/**
* 设置 产品名称
* @param productNameList
*/
* 设置 产品名称
* @param productNameList
*/
public PageAccessQuery productNameList(List<String> productNameList){
this.productNameList = productNameList;
return this;
return this;
}
/**
* 设置 页面编码(页面路由)
* @param firstCode
*/
public PageAccessQuery firstCode(String firstCode){
setFirstCode(firstCode);
return this;
}
/**
* 设置 页面编码(页面路由)
* @param firstCodeList
*/
public PageAccessQuery firstCodeList(List<String> firstCodeList){
this.firstCodeList = firstCodeList;
return this;
}
/**
* 设置 页面名称
* @param firstName
*/
public PageAccessQuery firstName(String firstName){
setFirstName(firstName);
return this;
}
/**
* 设置 页面名称
* @param firstNameList
*/
public PageAccessQuery firstNameList(List<String> firstNameList){
this.firstNameList = firstNameList;
return this;
}
/**
* 设置 页面编码(页面路由)
* @param secondCode
*/
public PageAccessQuery secondCode(String secondCode){
setSecondCode(secondCode);
return this;
}
/**
* 设置 页面编码(页面路由)
* @param secondCodeList
*/
public PageAccessQuery secondCodeList(List<String> secondCodeList){
this.secondCodeList = secondCodeList;
return this;
}
/**
* 设置 页面名称
* @param secondName
*/
public PageAccessQuery secondName(String secondName){
setSecondName(secondName);
return this;
}
/**
* 设置 页面名称
* @param secondNameList
*/
public PageAccessQuery secondNameList(List<String> secondNameList){
this.secondNameList = secondNameList;
return this;
}
/**
* 设置 页面编码(页面路由)
* @param thirdCode
*/
public PageAccessQuery thirdCode(String thirdCode){
setThirdCode(thirdCode);
return this;
}
/**
* 设置 页面编码(页面路由)
* @param thirdCodeList
*/
public PageAccessQuery thirdCodeList(List<String> thirdCodeList){
this.thirdCodeList = thirdCodeList;
return this;
}
/**
* 设置 页面名称
* @param thirdName
*/
public PageAccessQuery thirdName(String thirdName){
setThirdName(thirdName);
return this;
}
/**
* 设置 页面名称
* @param thirdNameList
*/
public PageAccessQuery thirdNameList(List<String> thirdNameList){
this.thirdNameList = thirdNameList;
return this;
}
/**
* 设置 页面编码(页面路由)
* @param pageCode
*/
public PageAccessQuery pageCode(String pageCode){
setPageCode(pageCode);
return this;
/**
* 设置 页面编码(页面路由)
* @param fourthCode
*/
public PageAccessQuery fourthCode(String fourthCode){
setFourthCode(fourthCode);
return this;
}
/**
* 设置 页面编码(页面路由)
* @param pageCodeList
*/
public PageAccessQuery pageCodeList(List<String> pageCodeList){
this.pageCodeList = pageCodeList;
return this;
* 设置 页面编码(页面路由)
* @param fourthCodeList
*/
public PageAccessQuery fourthCodeList(List<String> fourthCodeList){
this.fourthCodeList = fourthCodeList;
return this;
}
/**
* 设置 页面名称
* @param pageName
*/
public PageAccessQuery pageName(String pageName){
setPageName(pageName);
return this;
/**
* 设置 页面名称
* @param fourthName
*/
public PageAccessQuery fourthName(String fourthName){
setFourthName(fourthName);
return this;
}
/**
* 设置 页面名称
* @param pageNameList
*/
public PageAccessQuery pageNameList(List<String> pageNameList){
this.pageNameList = pageNameList;
return this;
* 设置 页面名称
* @param fourthNameList
*/
public PageAccessQuery fourthNameList(List<String> fourthNameList){
this.fourthNameList = fourthNameList;
return this;
}
/**
* 设置 场景维度
* @param sceneDepth
*/
public PageAccessQuery sceneDepth(Integer sceneDepth){
setSceneDepth(sceneDepth);
return this;
* 设置 完整路径
* @param accessContent
*/
public PageAccessQuery accessContent(String accessContent){
setAccessContent(accessContent);
return this;
}
/**
* 设置 开始 场景维度
* @param sceneDepthStart
*/
public PageAccessQuery sceneDepthStart(Integer sceneDepthStart){
this.sceneDepthStart = sceneDepthStart;
return this;
/**
* 设置 完整路径
* @param accessContentList
*/
public PageAccessQuery accessContentList(List<String> accessContentList){
this.accessContentList = accessContentList;
return this;
}
/**
* 设置 结束 场景维
* @param sceneDepthEnd
*/
public PageAccessQuery sceneDepthEnd(Integer sceneDepthEnd){
this.sceneDepthEnd = sceneDepthEnd;
return this;
* 设置 页面深
* @param pageDepth
*/
public PageAccessQuery pageDepth(Integer pageDepth){
setPageDepth(pageDepth);
return this;
}
/**
* 设置 增加 场景维
* @param sceneDepthIncrement
*/
public PageAccessQuery sceneDepthIncrement(Integer sceneDepthIncrement){
this.sceneDepthIncrement = sceneDepthIncrement;
return this;
* 设置 开始 页面深
* @param pageDepthStart
*/
public PageAccessQuery pageDepthStart(Integer pageDepthStart){
this.pageDepthStart = pageDepthStart;
return this;
}
/**
* 设置 场景维
* @param sceneDepthList
*/
public PageAccessQuery sceneDepthList(List<Integer> sceneDepthList){
this.sceneDepthList = sceneDepthList;
return this;
}
* 设置 结束 页面深
* @param pageDepthEnd
*/
public PageAccessQuery pageDepthEnd(Integer pageDepthEnd){
this.pageDepthEnd = pageDepthEnd;
return this;
}
/**
* 设置 场景维度
* @param sceneDepthNotList
*/
public PageAccessQuery sceneDepthNotList(List<Integer> sceneDepthNotList){
this.sceneDepthNotList = sceneDepthNotList;
/**
* 设置 增加 页面深度
* @param pageDepthIncrement
*/
public PageAccessQuery pageDepthIncrement(Integer pageDepthIncrement){
this.pageDepthIncrement = pageDepthIncrement;
return this;
}
/**
* 设置 页面深度
* @param pageDepthList
*/
public PageAccessQuery pageDepthList(List<Integer> pageDepthList){
this.pageDepthList = pageDepthList;
return this;
}
/**
* 设置 页面深度
* @param pageDepthNotList
*/
public PageAccessQuery pageDepthNotList(List<Integer> pageDepthNotList){
this.pageDepthNotList = pageDepthNotList;
return this;
}
}
/**
* 设置 创建用户
* @param createUserId
*/
* 设置 创建用户
* @param createUserId
*/
public PageAccessQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public PageAccessQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public PageAccessQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public PageAccessQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
* 设置 创建用户
* @param createUserIdList
*/
public PageAccessQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户
* @param createUserIdNotList
*/
public PageAccessQuery createUserIdNotList(List<Long> createUserIdNotList){
return this;
}
/**
* 设置 创建用户
* @param createUserIdNotList
*/
public PageAccessQuery createUserIdNotList(List<Long> createUserIdNotList){
this.createUserIdNotList = createUserIdNotList;
return this;
}
}
/**
* 设置 更新用户
* @param updateUserId
*/
* 设置 更新用户
* @param updateUserId
*/
public PageAccessQuery updateUserId(Long updateUserId){
setUpdateUserId(updateUserId);
return this;
}
/**
* 设置 开始 更新用户
* @param updateUserIdStart
*/
setUpdateUserId(updateUserId);
return this;
}
/**
* 设置 开始 更新用户
* @param updateUserIdStart
*/
public PageAccessQuery updateUserIdStart(Long updateUserIdStart){
this.updateUserIdStart = updateUserIdStart;
return this;
this.updateUserIdStart = updateUserIdStart;
return this;
}
/**
* 设置 结束 更新用户
* @param updateUserIdEnd
*/
* 设置 结束 更新用户
* @param updateUserIdEnd
*/
public PageAccessQuery updateUserIdEnd(Long updateUserIdEnd){
this.updateUserIdEnd = updateUserIdEnd;
return this;
this.updateUserIdEnd = updateUserIdEnd;
return this;
}
/**
* 设置 增加 更新用户
* @param updateUserIdIncrement
*/
* 设置 增加 更新用户
* @param updateUserIdIncrement
*/
public PageAccessQuery updateUserIdIncrement(Long updateUserIdIncrement){
this.updateUserIdIncrement = updateUserIdIncrement;
return this;
this.updateUserIdIncrement = updateUserIdIncrement;
return this;
}
/**
* 设置 更新用户
* @param updateUserIdList
*/
* 设置 更新用户
* @param updateUserIdList
*/
public PageAccessQuery updateUserIdList(List<Long> updateUserIdList){
this.updateUserIdList = updateUserIdList;
return this;
}
/**
* 设置 更新用户
* @param updateUserIdNotList
*/
public PageAccessQuery updateUserIdNotList(List<Long> updateUserIdNotList){
return this;
}
/**
* 设置 更新用户
* @param updateUserIdNotList
*/
public PageAccessQuery updateUserIdNotList(List<Long> updateUserIdNotList){
this.updateUserIdNotList = updateUserIdNotList;
return this;
}
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<PageAccessQuery> getOrConditionList(){
return this.orConditionList;
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<PageAccessQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<PageAccessQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<PageAccessQuery> andConditionList){
this.andConditionList = andConditionList;
}
......
package com.mortals.xhx.module.page.model.pdu;
import lombok.Data;
@Data
public class AccessPdu {
/*** 页面编码(页面路由) */
private String pageCode;
/** 页面名称 */
private String pageName;
}
package com.mortals.xhx.module.page.model.pdu;
import com.mortals.xhx.module.page.model.PageAccessDepthEntity;
import com.mortals.xhx.module.page.model.PageAccessEntity;
import com.mortals.xhx.module.page.model.PageEventEntity;
import com.mortals.xhx.module.page.model.PageRouteEntity;
import com.mortals.xhx.module.page.model.*;
import lombok.Data;
import java.util.List;
/***
* 页面数据埋点信息
*/
......@@ -29,4 +28,6 @@ public class BuryPointPdu {
private PageEventEntity eventInfo;
/** 产品页面访问深度 **/
private PageRouteEntity routeInfo;
/** 场景深度 **/
private List<AccessPdu> depthArr;
}
package com.mortals.xhx.module.page.model.pdu;
import lombok.Data;
/**
* 页面统计查询
*/
@Data
public class PageCensusPdu {
/*** 产品id */
private Long productId;
/** 查询日期开始 **/
private String dateTimeStart;
/** 查询日期结束 **/
private String dateTimeEnd;
/** 页面编码 **/
private String pageCode;
}
package com.mortals.xhx.module.page.model.vo;
import lombok.Data;
/**
* 页面访问指标趋势
*/
@Data
public class AccessTrendCensusVo {
/**
* 页面编码(页面路由)
*/
private String pageCode;
/**
* 页面名称
*/
private String pageName;
/** 访问日期 */
private String accessDay;
/** 访问次数 */
private Integer accessCount;
/** 人均访问深度 */
private Float depthAvg;
/** 次均访问深度 */
private Float singleDepth;
}
package com.mortals.xhx.module.page.model.vo;
import lombok.Data;
/**
* 事件分析
*/
@Data
public class PageEventCensusVo {
/**
* 事件编码
*/
private String eventCode;
/**
* 事件名称
*/
private String eventName;
/**
* 事件日均数量
*/
private Integer dayAvg;
/**
* 事件平均耗时(单位毫秒)
*/
private Float takeTimeAvg;
}
package com.mortals.xhx.module.page.model.vo;
import lombok.Data;
/**
* 路径
*/
@Data
public class PageWayCensusVo {
/**
* 开始页面编码(路由)
*/
private String source;
/**
* 开始页面名称
*/
private String sourceName;
/**
* 目标页面编码(路由)
*/
private String target;
/**
* 目标页面名称
*/
private String targetName;
/**
* 点击次数
*/
private Integer value;
}
package com.mortals.xhx.module.page.model.vo;
import lombok.Data;
/**
* 产品热力图
*/
@Data
public class ProductHotCensusVo {
/**
* 业务场景编码
*/
private String businessCode;
/**
* 业务场景名称
*/
private String businessName;
/**
* 事件坐标
*/
private String coordinate;
/**
* 点击次数
*/
private Integer value;
/** 页面x坐标 */
private Float x;
/** 页面y坐标 */
private Float y;
/** 事件占比 */
private String proportion;
}
package com.mortals.xhx.module.page.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.page.model.PageEventEntity;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import java.util.List;
import java.util.Map;
/**
* PageEventService
......@@ -14,4 +21,26 @@ import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
public interface PageEventService extends ICRUDService<PageEventEntity,Long>{
PageEventEntity saveByPdu(BuryPointPdu pdu);
/**
* 事件分析
* @param pdu
* @return
*/
List<PageEventCensusVo> getPageEventCensus(PageCensusPdu pdu) throws AppException;
/**
* 产品热力图
* @param pdu
* @return
*/
Map<String,Object> getProductHotCensus(PageCensusPdu pdu) throws AppException;
/**
* 页面访问分析
* @param pdu
* @return
*/
Map<String,Object> getPageAccessAnalyse(PageCensusPdu pdu) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.page.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.page.model.PageRouteEntity;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import java.util.Map;
/**
* PageRouteService
......@@ -14,4 +18,11 @@ import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
public interface PageRouteService extends ICRUDService<PageRouteEntity,Long>{
PageRouteEntity saveByPdu(BuryPointPdu pdu);
/**
* 页面路径访问分析
* @param pdu
* @return
*/
Map<String,Object> getWayAccessAnalyse(PageCensusPdu pdu) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.page.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -23,26 +25,39 @@ public class PageAccessServiceImpl extends AbstractCRUDServiceImpl<PageAccessDao
@Override
protected void validData(PageAccessEntity entity, Context context) throws AppException {
if(StringUtils.isEmpty(entity.getPageCode())){
throw new AppException("页面编码(路由)不能为空");
}
if(StringUtils.isEmpty(entity.getPageName())){
throw new AppException("页面名称不能为空");
}
// if(StringUtils.isEmpty(entity.getPageCode())){
// throw new AppException("页面编码(路由)不能为空");
// }
// if(StringUtils.isEmpty(entity.getPageName())){
// throw new AppException("页面名称不能为空");
// }
}
@Override
public PageAccessEntity saveByPdu(BuryPointPdu pdu) {
if(pdu.getSceneDepth()==null){
if(CollectionUtils.isEmpty(pdu.getDepthArr())){
return null;
}
PageAccessEntity entity = new PageAccessEntity();
entity.setDeviceNum(pdu.getDeviceNum());
entity.setProductId(pdu.getProductId());
entity.setProductName(pdu.getProductName());
entity.setPageCode(pdu.getPageCode());
entity.setPageName(pdu.getPageName());
entity.setSceneDepth(pdu.getSceneDepth());
entity.setFirstCode(pdu.getDepthArr().get(0).getPageCode());
entity.setFirstName(pdu.getDepthArr().get(0).getPageName());
if(pdu.getDepthArr().size()>1){
entity.setSecondCode(pdu.getDepthArr().get(1).getPageCode());
entity.setSecondName(pdu.getDepthArr().get(1).getPageName());
}
if(pdu.getDepthArr().size()>2){
entity.setThirdCode(pdu.getDepthArr().get(2).getPageCode());
entity.setThirdName(pdu.getDepthArr().get(2).getPageName());
}
if(pdu.getDepthArr().size()>3){
entity.setFourthCode(pdu.getDepthArr().get(3).getPageCode());
entity.setFourthName(pdu.getDepthArr().get(3).getPageName());
}
entity.setPageDepth(pdu.getDepthArr().size());
entity.setAccessContent(JSONObject.toJSONString(pdu.getDepthArr()));
entity.setCreateTime(new Date());
return this.save(entity);
}
......
package com.mortals.xhx.module.page.service.impl;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.page.dao.PageAccessDepthDao;
import com.mortals.xhx.module.page.model.PageInfoEntity;
import com.mortals.xhx.module.page.model.PageInfoQuery;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import com.mortals.xhx.module.page.service.PageInfoService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -9,7 +19,13 @@ import com.mortals.xhx.module.page.dao.PageEventDao;
import com.mortals.xhx.module.page.model.PageEventEntity;
import com.mortals.xhx.module.page.service.PageEventService;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* PageEventService
......@@ -21,6 +37,13 @@ import java.util.Date;
@Service("pageEventService")
public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao, PageEventEntity, Long> implements PageEventService {
@Autowired
private PageInfoService pageInfoService;
@Autowired
private PageAccessDepthDao pageAccessDepthDao;
@Override
protected void validData(PageEventEntity entity, Context context) throws AppException {
if(StringUtils.isEmpty(entity.getPageCode())){
......@@ -51,4 +74,116 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao,
entity.setCreateTime(new Date());
return this.save(entity);
}
@Override
public List<PageEventCensusVo> getPageEventCensus(PageCensusPdu pdu) throws AppException {
if(StringUtils.isEmpty(pdu.getDateTimeStart())){
throw new AppException("开始日期不能为空");
}
if(StringUtils.isEmpty(pdu.getDateTimeEnd())){
throw new AppException("结束日期不能为空");
}
if(pdu.getProductId()==null){
throw new AppException("产品id不能为空");
}
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse(pdu.getDateTimeStart());
Date date2 = sdf.parse(pdu.getDateTimeEnd());
}catch (ParseException e){
throw new AppException("日期格式错误,应为yyyy-MM-dd");
}
return dao.getPageEventCensus(pdu);
}
@Override
public Map<String, Object> getProductHotCensus(PageCensusPdu pdu) throws AppException {
if(StringUtils.isEmpty(pdu.getDateTimeStart())){
throw new AppException("开始日期不能为空");
}
if(StringUtils.isEmpty(pdu.getDateTimeEnd())){
throw new AppException("结束日期不能为空");
}
if(pdu.getProductId()==null){
throw new AppException("产品id不能为空");
}
if(StringUtils.isEmpty(pdu.getPageCode())){
throw new AppException("页面编码不能为空");
}
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse(pdu.getDateTimeStart());
Date date2 = sdf.parse(pdu.getDateTimeEnd());
}catch (ParseException e){
throw new AppException("日期格式错误,应为yyyy-MM-dd");
}
Map<String,Object> result = new HashMap<>();
List<ProductHotCensusVo> list = dao.getProductHotCensus(pdu);
Long clickSum = 0l;
if(CollectionUtils.isNotEmpty(list)){
for (ProductHotCensusVo vo:list){
clickSum+=vo.getValue();
}
for (ProductHotCensusVo vo:list){
float a = (float)vo.getValue();
float b = (float)clickSum;
float p = a/b;
DecimalFormat decimalFormat=new DecimalFormat(".00%");
String s = decimalFormat.format(p);
vo.setProportion(s);
}
}
result.put("data",list);
result.put("clickSum", clickSum);
PageInfoEntity pageInfoEntity = pageInfoService.selectOne(new PageInfoQuery().pageCode(pdu.getPageCode()).productId(pdu.getProductId()));
if(pageInfoEntity!=null) {
result.put("screenUrl", pageInfoEntity.getScreenUrl());
}else {
result.put("screenUrl", "");
}
return result;
}
@Override
public Map<String, Object> getPageAccessAnalyse(PageCensusPdu pdu) throws AppException {
if(StringUtils.isEmpty(pdu.getDateTimeStart())){
throw new AppException("开始日期不能为空");
}
if(StringUtils.isEmpty(pdu.getDateTimeEnd())){
throw new AppException("结束日期不能为空");
}
if(pdu.getProductId()==null){
throw new AppException("产品id不能为空");
}
Map<String,Object> result = new HashMap<>();
List<AccessTrendCensusVo> trendCensusVos = dao.getPageAccessTrend(pdu);
Long clickSum = 0l;
float dayAccessAvg = 0;
if(CollectionUtils.isNotEmpty(trendCensusVos)) {
for(AccessTrendCensusVo vo:trendCensusVos){
clickSum+=vo.getAccessCount();
}
float a = (float)clickSum;
float b = (float)trendCensusVos.size();
float p = a/b;
DecimalFormat decimalFormat=new DecimalFormat(".00");
String s = decimalFormat.format(p);
dayAccessAvg = Float.valueOf(s);
}
result.put("accessTrend", trendCensusVos); //页面访问指标趋势
result.put("accessSum", clickSum); //页面累计访问次数
result.put("dayAccessAvg", dayAccessAvg); //日均访问次数
List<AccessTrendCensusVo> pageAccessTop = dao.getPageAccessTop(pdu);
result.put("pageAccessTop", pageAccessTop); //页面访问次数TOP10
List<AccessTrendCensusVo> depthAvg = pageAccessDepthDao.getDepthAvg(pdu);
if(CollectionUtils.isNotEmpty(depthAvg)){
result.put("depthAvg", depthAvg.get(0).getDepthAvg()); //人均访问深度
result.put("singleDepth", depthAvg.get(0).getSingleDepth()); //次均访问深度
}else {
result.put("depthAvg", 0);
result.put("singleDepth", 0);
}
return result;
}
}
\ No newline at end of file
package com.mortals.xhx.module.page.service.impl;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.PageWayCensusVo;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -10,6 +12,9 @@ import com.mortals.xhx.module.page.model.PageRouteEntity;
import com.mortals.xhx.module.page.service.PageRouteService;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* PageRouteService
......@@ -53,4 +58,23 @@ public class PageRouteServiceImpl extends AbstractCRUDServiceImpl<PageRouteDao,
entity.setCreateTime(new Date());
return this.save(entity);
}
@Override
public Map<String, Object> getWayAccessAnalyse(PageCensusPdu pdu) throws AppException {
if(StringUtils.isEmpty(pdu.getDateTimeStart())){
throw new AppException("开始日期不能为空");
}
if(StringUtils.isEmpty(pdu.getDateTimeEnd())){
throw new AppException("结束日期不能为空");
}
if(pdu.getProductId()==null){
throw new AppException("产品id不能为空");
}
Map<String,Object> result = new HashMap<>();
List<PageWayCensusVo> pageWayCensusVos = dao.getPageWayCensus(pdu);
result.put("links",pageWayCensusVos);
List<Map<String, Object>> pageCodes = dao.getPageWayCode(pdu);
result.put("data",pageCodes);
return result;
}
}
\ No newline at end of file
package com.mortals.xhx.module.page.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.web.BaseJsonBodyController;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.service.PageEventService;
import com.mortals.xhx.module.page.service.PageRouteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 用户行为分析
*/
@RestController
@RequestMapping("act/analyse")
public class PageCensusController extends BaseJsonBodyController {
@Autowired
private PageEventService pageEventService;
@Autowired
private PageRouteService pageRouteService;
/**
* 事件分析
* @param query
* @return
*/
@PostMapping({"pageEventCensus"})
@UnAuth
public Rest<Object> getPageEventCensus(@RequestBody PageCensusPdu query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询事件分析结果";
int code=1;
try {
List<PageEventCensusVo> result = pageEventService.getPageEventCensus(query);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 产品热力图
* @param query
* @return
*/
@PostMapping({"productHotCensus"})
@UnAuth
public Rest<Object> getProductHotCensus(@RequestBody PageCensusPdu query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询产品热力图";
int code=1;
try {
Map<String,Object> result = pageEventService.getProductHotCensus(query);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model.get("data"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 页面访问分析
* @param query
* @return
*/
@PostMapping({"accessAnalyse"})
@UnAuth
public Rest<Object> getPageAccessAnalyse(@RequestBody PageCensusPdu query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询页面访问分析";
int code=1;
try {
Map<String,Object> result = pageEventService.getPageAccessAnalyse(query);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model.get("data"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
/**
* 页面路径访问分析
* @param query
* @return
*/
@PostMapping({"wayAccessAnalyse"})
@UnAuth
public Rest<Object> getPageWayAnalyse(@RequestBody PageCensusPdu query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询页面路径访问分析";
int code=1;
try {
Map<String,Object> result = pageRouteService.getWayAccessAnalyse(query);
model.put("data", result);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var9) {
code = -1;
this.doException(this.request, busiDesc, model, var9);
}
ret.setCode(code);
ret.setData(model.get("data"));
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.page.dao.ibatis.PageAccessDepthDaoImpl">
<!-- 人均访问深度 -->
<select id="getDepthAvg" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo">
SELECT
FORMAT(AVG(t.depthValue),2) AS depthAvg,
FORMAT(sum(t.depthValue)/count(t.id),2) AS singleDepth
FROM
mortals_xhx_page_access_depth t
WHERE
t.productId = #{productId}
AND t.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND t.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.page.dao.ibatis.PageAccessDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="PageAccessEntity" id="PageAccessEntity-Map">
<id property="id" column="id" />
<result property="deviceNum" column="deviceNum" />
<result property="productId" column="productId" />
<result property="productName" column="productName" />
<result property="pageCode" column="pageCode" />
<result property="pageName" column="pageName" />
<result property="sceneDepth" column="sceneDepth" />
<result property="createUserId" column="createUserId" />
<result property="createTime" column="createTime" />
<result property="updateUserId" column="updateUserId" />
<result property="updateTime" column="updateTime" />
<id property="id" column="id" />
<result property="deviceNum" column="deviceNum" />
<result property="productId" column="productId" />
<result property="productName" column="productName" />
<result property="firstCode" column="firstCode" />
<result property="firstName" column="firstName" />
<result property="secondCode" column="secondCode" />
<result property="secondName" column="secondName" />
<result property="thirdCode" column="thirdCode" />
<result property="thirdName" column="thirdName" />
<result property="fourthCode" column="fourthCode" />
<result property="fourthName" column="fourthName" />
<result property="accessContent" column="accessContent" />
<result property="pageDepth" column="pageDepth" />
<result property="createUserId" column="createUserId" />
<result property="createTime" column="createTime" />
<result property="updateUserId" column="updateUserId" />
<result property="updateTime" column="updateTime" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceNum') or colPickMode == 1 and data.containsKey('deviceNum')))">
a.deviceNum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('productId') or colPickMode == 1 and data.containsKey('productId')))">
a.productId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('productName') or colPickMode == 1 and data.containsKey('productName')))">
a.productName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('pageCode') or colPickMode == 1 and data.containsKey('pageCode')))">
a.pageCode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('pageName') or colPickMode == 1 and data.containsKey('pageName')))">
a.pageName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sceneDepth') or colPickMode == 1 and data.containsKey('sceneDepth')))">
a.sceneDepth,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
a.updateUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deviceNum') or colPickMode == 1 and data.containsKey('deviceNum')))">
a.deviceNum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('productId') or colPickMode == 1 and data.containsKey('productId')))">
a.productId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('productName') or colPickMode == 1 and data.containsKey('productName')))">
a.productName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('firstCode') or colPickMode == 1 and data.containsKey('firstCode')))">
a.firstCode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('firstName') or colPickMode == 1 and data.containsKey('firstName')))">
a.firstName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('secondCode') or colPickMode == 1 and data.containsKey('secondCode')))">
a.secondCode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('secondName') or colPickMode == 1 and data.containsKey('secondName')))">
a.secondName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('thirdCode') or colPickMode == 1 and data.containsKey('thirdCode')))">
a.thirdCode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('thirdName') or colPickMode == 1 and data.containsKey('thirdName')))">
a.thirdName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('fourthCode') or colPickMode == 1 and data.containsKey('fourthCode')))">
a.fourthCode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('fourthName') or colPickMode == 1 and data.containsKey('fourthName')))">
a.fourthName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('accessContent') or colPickMode == 1 and data.containsKey('accessContent')))">
a.accessContent,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('pageDepth') or colPickMode == 1 and data.containsKey('pageDepth')))">
a.pageDepth,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
a.updateUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="PageAccessEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_page_access
(deviceNum,productId,productName,pageCode,pageName,sceneDepth,createUserId,createTime,updateUserId,updateTime)
(deviceNum,productId,productName,firstCode,firstName,secondCode,secondName,thirdCode,thirdName,fourthCode,fourthName,accessContent,pageDepth,createUserId,createTime,updateUserId,updateTime)
VALUES
(#{deviceNum},#{productId},#{productName},#{pageCode},#{pageName},#{sceneDepth},#{createUserId},#{createTime},#{updateUserId},#{updateTime})
(#{deviceNum},#{productId},#{productName},#{firstCode},#{firstName},#{secondCode},#{secondName},#{thirdCode},#{thirdName},#{fourthCode},#{fourthName},#{accessContent},#{pageDepth},#{createUserId},#{createTime},#{updateUserId},#{updateTime})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_page_access
(deviceNum,productId,productName,pageCode,pageName,sceneDepth,createUserId,createTime,updateUserId,updateTime)
(deviceNum,productId,productName,firstCode,firstName,secondCode,secondName,thirdCode,thirdName,fourthCode,fourthName,accessContent,pageDepth,createUserId,createTime,updateUserId,updateTime)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.deviceNum},#{item.productId},#{item.productName},#{item.pageCode},#{item.pageName},#{item.sceneDepth},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime})
(#{item.deviceNum},#{item.productId},#{item.productName},#{item.firstCode},#{item.firstName},#{item.secondCode},#{item.secondName},#{item.thirdCode},#{item.thirdName},#{item.fourthCode},#{item.fourthName},#{item.accessContent},#{item.pageDepth},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime})
</foreach>
</insert>
......@@ -94,17 +122,38 @@
<if test="(colPickMode==0 and data.containsKey('productName')) or (colPickMode==1 and !data.containsKey('productName'))">
a.productName=#{data.productName},
</if>
<if test="(colPickMode==0 and data.containsKey('pageCode')) or (colPickMode==1 and !data.containsKey('pageCode'))">
a.pageCode=#{data.pageCode},
<if test="(colPickMode==0 and data.containsKey('firstCode')) or (colPickMode==1 and !data.containsKey('firstCode'))">
a.firstCode=#{data.firstCode},
</if>
<if test="(colPickMode==0 and data.containsKey('firstName')) or (colPickMode==1 and !data.containsKey('firstName'))">
a.firstName=#{data.firstName},
</if>
<if test="(colPickMode==0 and data.containsKey('secondCode')) or (colPickMode==1 and !data.containsKey('secondCode'))">
a.secondCode=#{data.secondCode},
</if>
<if test="(colPickMode==0 and data.containsKey('secondName')) or (colPickMode==1 and !data.containsKey('secondName'))">
a.secondName=#{data.secondName},
</if>
<if test="(colPickMode==0 and data.containsKey('thirdCode')) or (colPickMode==1 and !data.containsKey('thirdCode'))">
a.thirdCode=#{data.thirdCode},
</if>
<if test="(colPickMode==0 and data.containsKey('thirdName')) or (colPickMode==1 and !data.containsKey('thirdName'))">
a.thirdName=#{data.thirdName},
</if>
<if test="(colPickMode==0 and data.containsKey('pageName')) or (colPickMode==1 and !data.containsKey('pageName'))">
a.pageName=#{data.pageName},
<if test="(colPickMode==0 and data.containsKey('fourthCode')) or (colPickMode==1 and !data.containsKey('fourthCode'))">
a.fourthCode=#{data.fourthCode},
</if>
<if test="(colPickMode==0 and data.containsKey('sceneDepth')) or (colPickMode==1 and !data.containsKey('sceneDepth'))">
a.sceneDepth=#{data.sceneDepth},
<if test="(colPickMode==0 and data.containsKey('fourthName')) or (colPickMode==1 and !data.containsKey('fourthName'))">
a.fourthName=#{data.fourthName},
</if>
<if test="(colPickMode==0 and data.containsKey('sceneDepthIncrement')) or (colPickMode==1 and !data.containsKey('sceneDepthIncrement'))">
a.sceneDepth=ifnull(a.sceneDepth,0) + #{data.sceneDepthIncrement},
<if test="(colPickMode==0 and data.containsKey('accessContent')) or (colPickMode==1 and !data.containsKey('accessContent'))">
a.accessContent=#{data.accessContent},
</if>
<if test="(colPickMode==0 and data.containsKey('pageDepth')) or (colPickMode==1 and !data.containsKey('pageDepth'))">
a.pageDepth=#{data.pageDepth},
</if>
<if test="(colPickMode==0 and data.containsKey('pageDepthIncrement')) or (colPickMode==1 and !data.containsKey('pageDepthIncrement'))">
a.pageDepth=ifnull(a.pageDepth,0) + #{data.pageDepthIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
a.createUserId=#{data.createUserId},
......@@ -136,96 +185,145 @@
<update id="updateBatch" parameterType="paramDto">
update mortals_xhx_page_access as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="deviceNum=(case" suffix="ELSE deviceNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('deviceNum')) or (colPickMode==1 and !item.containsKey('deviceNum'))">
when a.id=#{item.id} then #{item.deviceNum}
</if>
</foreach>
</trim>
<trim prefix="productId=(case" suffix="ELSE productId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('productId')) or (colPickMode==1 and !item.containsKey('productId'))">
when a.id=#{item.id} then #{item.productId}
</when>
<when test="(colPickMode==0 and item.containsKey('productIdIncrement')) or (colPickMode==1 and !item.containsKey('productIdIncrement'))">
when a.id=#{item.id} then ifnull(a.productId,0) + #{item.productIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="productName=(case" suffix="ELSE productName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('productName')) or (colPickMode==1 and !item.containsKey('productName'))">
when a.id=#{item.id} then #{item.productName}
</if>
</foreach>
</trim>
<trim prefix="pageCode=(case" suffix="ELSE pageCode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('pageCode')) or (colPickMode==1 and !item.containsKey('pageCode'))">
when a.id=#{item.id} then #{item.pageCode}
</if>
</foreach>
</trim>
<trim prefix="pageName=(case" suffix="ELSE pageName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('pageName')) or (colPickMode==1 and !item.containsKey('pageName'))">
when a.id=#{item.id} then #{item.pageName}
</if>
</foreach>
</trim>
<trim prefix="sceneDepth=(case" suffix="ELSE sceneDepth end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sceneDepth')) or (colPickMode==1 and !item.containsKey('sceneDepth'))">
when a.id=#{item.id} then #{item.sceneDepth}
</when>
<when test="(colPickMode==0 and item.containsKey('sceneDepthIncrement')) or (colPickMode==1 and !item.containsKey('sceneDepthIncrement'))">
when a.id=#{item.id} then ifnull(a.sceneDepth,0) + #{item.sceneDepthIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
when a.id=#{item.id} then #{item.createUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
when a.id=#{item.id} then #{item.updateUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
<trim prefix="deviceNum=(case" suffix="ELSE deviceNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('deviceNum')) or (colPickMode==1 and !item.containsKey('deviceNum'))">
when a.id=#{item.id} then #{item.deviceNum}
</if>
</foreach>
</trim>
<trim prefix="productId=(case" suffix="ELSE productId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('productId')) or (colPickMode==1 and !item.containsKey('productId'))">
when a.id=#{item.id} then #{item.productId}
</when>
<when test="(colPickMode==0 and item.containsKey('productIdIncrement')) or (colPickMode==1 and !item.containsKey('productIdIncrement'))">
when a.id=#{item.id} then ifnull(a.productId,0) + #{item.productIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="productName=(case" suffix="ELSE productName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('productName')) or (colPickMode==1 and !item.containsKey('productName'))">
when a.id=#{item.id} then #{item.productName}
</if>
</foreach>
</trim>
<trim prefix="firstCode=(case" suffix="ELSE firstCode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('firstCode')) or (colPickMode==1 and !item.containsKey('firstCode'))">
when a.id=#{item.id} then #{item.firstCode}
</if>
</foreach>
</trim>
<trim prefix="firstName=(case" suffix="ELSE firstName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('firstName')) or (colPickMode==1 and !item.containsKey('firstName'))">
when a.id=#{item.id} then #{item.firstName}
</if>
</foreach>
</trim>
<trim prefix="secondCode=(case" suffix="ELSE secondCode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('secondCode')) or (colPickMode==1 and !item.containsKey('secondCode'))">
when a.id=#{item.id} then #{item.secondCode}
</if>
</foreach>
</trim>
<trim prefix="secondName=(case" suffix="ELSE secondName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('secondName')) or (colPickMode==1 and !item.containsKey('secondName'))">
when a.id=#{item.id} then #{item.secondName}
</if>
</foreach>
</trim>
<trim prefix="thirdCode=(case" suffix="ELSE thirdCode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('thirdCode')) or (colPickMode==1 and !item.containsKey('thirdCode'))">
when a.id=#{item.id} then #{item.thirdCode}
</if>
</foreach>
</trim>
<trim prefix="thirdName=(case" suffix="ELSE thirdName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('thirdName')) or (colPickMode==1 and !item.containsKey('thirdName'))">
when a.id=#{item.id} then #{item.thirdName}
</if>
</foreach>
</trim>
<trim prefix="fourthCode=(case" suffix="ELSE fourthCode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('fourthCode')) or (colPickMode==1 and !item.containsKey('fourthCode'))">
when a.id=#{item.id} then #{item.fourthCode}
</if>
</foreach>
</trim>
<trim prefix="fourthName=(case" suffix="ELSE fourthName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('fourthName')) or (colPickMode==1 and !item.containsKey('fourthName'))">
when a.id=#{item.id} then #{item.fourthName}
</if>
</foreach>
</trim>
<trim prefix="accessContent=(case" suffix="ELSE accessContent end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('accessContent')) or (colPickMode==1 and !item.containsKey('accessContent'))">
when a.id=#{item.id} then #{item.accessContent}
</if>
</foreach>
</trim>
<trim prefix="pageDepth=(case" suffix="ELSE pageDepth end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('pageDepth')) or (colPickMode==1 and !item.containsKey('pageDepth'))">
when a.id=#{item.id} then #{item.pageDepth}
</when>
<when test="(colPickMode==0 and item.containsKey('pageDepthIncrement')) or (colPickMode==1 and !item.containsKey('pageDepthIncrement'))">
when a.id=#{item.id} then ifnull(a.pageDepth,0) + #{item.pageDepthIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
when a.id=#{item.id} then #{item.createUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
when a.id=#{item.id} then #{item.updateUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
......@@ -342,323 +440,505 @@
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
${_conditionType_} a.id not in
<foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
${_conditionType_} a.id not in
<foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
</if>
<if test="conditionParamRef.containsKey('deviceNum')">
<if test="conditionParamRef.deviceNum != null and conditionParamRef.deviceNum != ''">
${_conditionType_} a.deviceNum like #{${_conditionParam_}.deviceNum}
</if>
<if test="conditionParamRef.deviceNum == null">
${_conditionType_} a.deviceNum is null
</if>
<if test="conditionParamRef.containsKey('deviceNum')">
<if test="conditionParamRef.deviceNum != null and conditionParamRef.deviceNum != ''">
${_conditionType_} a.deviceNum like #{${_conditionParam_}.deviceNum}
</if>
<if test="conditionParamRef.containsKey('deviceNumList') and conditionParamRef.deviceNumList.size() > 0">
${_conditionType_} a.deviceNum in
<foreach collection="conditionParamRef.deviceNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.deviceNum == null">
${_conditionType_} a.deviceNum is null
</if>
<if test="conditionParamRef.containsKey('deviceNumNotList') and conditionParamRef.deviceNumNotList.size() > 0">
${_conditionType_} a.deviceNum not in
<foreach collection="conditionParamRef.deviceNumNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('deviceNumList') and conditionParamRef.deviceNumList.size() > 0">
${_conditionType_} a.deviceNum in
<foreach collection="conditionParamRef.deviceNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('deviceNumNotList') and conditionParamRef.deviceNumNotList.size() > 0">
${_conditionType_} a.deviceNum not in
<foreach collection="conditionParamRef.deviceNumNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productId')">
<if test="conditionParamRef.productId != null ">
${_conditionType_} a.productId = #{${_conditionParam_}.productId}
</if>
<if test="conditionParamRef.containsKey('productId')">
<if test="conditionParamRef.productId != null ">
${_conditionType_} a.productId = #{${_conditionParam_}.productId}
</if>
<if test="conditionParamRef.productId == null">
${_conditionType_} a.productId is null
</if>
<if test="conditionParamRef.productId == null">
${_conditionType_} a.productId is null
</if>
<if test="conditionParamRef.containsKey('productIdList') and conditionParamRef.productIdList.size() > 0">
${_conditionType_} a.productId in
<foreach collection="conditionParamRef.productIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productIdList') and conditionParamRef.productIdList.size() > 0">
${_conditionType_} a.productId in
<foreach collection="conditionParamRef.productIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productIdNotList') and conditionParamRef.productIdNotList.size() > 0">
${_conditionType_} a.productId not in
<foreach collection="conditionParamRef.productIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productIdStart') and conditionParamRef.productIdStart != null">
${_conditionType_} a.productId <![CDATA[ >= ]]> #{${_conditionParam_}.productIdStart}
</if>
<if test="conditionParamRef.containsKey('productIdEnd') and conditionParamRef.productIdEnd != null">
${_conditionType_} a.productId <![CDATA[ <= ]]> #{${_conditionParam_}.productIdEnd}
</if>
<if test="conditionParamRef.containsKey('productName')">
<if test="conditionParamRef.productName != null and conditionParamRef.productName != ''">
${_conditionType_} a.productName like #{${_conditionParam_}.productName}
</if>
<if test="conditionParamRef.containsKey('productIdNotList') and conditionParamRef.productIdNotList.size() > 0">
${_conditionType_} a.productId not in
<foreach collection="conditionParamRef.productIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.productName == null">
${_conditionType_} a.productName is null
</if>
<if test="conditionParamRef.containsKey('productIdStart') and conditionParamRef.productIdStart != null">
${_conditionType_} a.productId <![CDATA[ >= ]]> #{${_conditionParam_}.productIdStart}
</if>
<if test="conditionParamRef.containsKey('productNameList') and conditionParamRef.productNameList.size() > 0">
${_conditionType_} a.productName in
<foreach collection="conditionParamRef.productNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productNameNotList') and conditionParamRef.productNameNotList.size() > 0">
${_conditionType_} a.productName not in
<foreach collection="conditionParamRef.productNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('firstCode')">
<if test="conditionParamRef.firstCode != null and conditionParamRef.firstCode != ''">
${_conditionType_} a.firstCode like #{${_conditionParam_}.firstCode}
</if>
<if test="conditionParamRef.containsKey('productIdEnd') and conditionParamRef.productIdEnd != null">
${_conditionType_} a.productId <![CDATA[ <= ]]> #{${_conditionParam_}.productIdEnd}
<if test="conditionParamRef.firstCode == null">
${_conditionType_} a.firstCode is null
</if>
</if>
<if test="conditionParamRef.containsKey('firstCodeList') and conditionParamRef.firstCodeList.size() > 0">
${_conditionType_} a.firstCode in
<foreach collection="conditionParamRef.firstCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('firstCodeNotList') and conditionParamRef.firstCodeNotList.size() > 0">
${_conditionType_} a.firstCode not in
<foreach collection="conditionParamRef.firstCodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productName')">
<if test="conditionParamRef.productName != null and conditionParamRef.productName != ''">
${_conditionType_} a.productName like #{${_conditionParam_}.productName}
</if>
<if test="conditionParamRef.productName == null">
${_conditionType_} a.productName is null
</if>
<if test="conditionParamRef.containsKey('firstName')">
<if test="conditionParamRef.firstName != null and conditionParamRef.firstName != ''">
${_conditionType_} a.firstName like #{${_conditionParam_}.firstName}
</if>
<if test="conditionParamRef.containsKey('productNameList') and conditionParamRef.productNameList.size() > 0">
${_conditionType_} a.productName in
<foreach collection="conditionParamRef.productNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('productNameNotList') and conditionParamRef.productNameNotList.size() > 0">
${_conditionType_} a.productName not in
<foreach collection="conditionParamRef.productNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.firstName == null">
${_conditionType_} a.firstName is null
</if>
</if>
<if test="conditionParamRef.containsKey('firstNameList') and conditionParamRef.firstNameList.size() > 0">
${_conditionType_} a.firstName in
<foreach collection="conditionParamRef.firstNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('firstNameNotList') and conditionParamRef.firstNameNotList.size() > 0">
${_conditionType_} a.firstName not in
<foreach collection="conditionParamRef.firstNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('pageCode')">
<if test="conditionParamRef.pageCode != null and conditionParamRef.pageCode != ''">
${_conditionType_} a.pageCode like #{${_conditionParam_}.pageCode}
</if>
<if test="conditionParamRef.pageCode == null">
${_conditionType_} a.pageCode is null
</if>
</if>
<if test="conditionParamRef.containsKey('pageCodeList') and conditionParamRef.pageCodeList.size() > 0">
${_conditionType_} a.pageCode in
<foreach collection="conditionParamRef.pageCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.containsKey('secondCode')">
<if test="conditionParamRef.secondCode != null and conditionParamRef.secondCode != ''">
${_conditionType_} a.secondCode like #{${_conditionParam_}.secondCode}
</if>
<if test="conditionParamRef.containsKey('pageCodeNotList') and conditionParamRef.pageCodeNotList.size() > 0">
${_conditionType_} a.pageCode not in
<foreach collection="conditionParamRef.pageCodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.secondCode == null">
${_conditionType_} a.secondCode is null
</if>
</if>
<if test="conditionParamRef.containsKey('secondCodeList') and conditionParamRef.secondCodeList.size() > 0">
${_conditionType_} a.secondCode in
<foreach collection="conditionParamRef.secondCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('secondCodeNotList') and conditionParamRef.secondCodeNotList.size() > 0">
${_conditionType_} a.secondCode not in
<foreach collection="conditionParamRef.secondCodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('pageName')">
<if test="conditionParamRef.pageName != null and conditionParamRef.pageName != ''">
${_conditionType_} a.pageName like #{${_conditionParam_}.pageName}
</if>
<if test="conditionParamRef.pageName == null">
${_conditionType_} a.pageName is null
</if>
<if test="conditionParamRef.containsKey('secondName')">
<if test="conditionParamRef.secondName != null and conditionParamRef.secondName != ''">
${_conditionType_} a.secondName like #{${_conditionParam_}.secondName}
</if>
<if test="conditionParamRef.containsKey('pageNameList') and conditionParamRef.pageNameList.size() > 0">
${_conditionType_} a.pageName in
<foreach collection="conditionParamRef.pageNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.secondName == null">
${_conditionType_} a.secondName is null
</if>
<if test="conditionParamRef.containsKey('pageNameNotList') and conditionParamRef.pageNameNotList.size() > 0">
${_conditionType_} a.pageName not in
<foreach collection="conditionParamRef.pageNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('secondNameList') and conditionParamRef.secondNameList.size() > 0">
${_conditionType_} a.secondName in
<foreach collection="conditionParamRef.secondNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('secondNameNotList') and conditionParamRef.secondNameNotList.size() > 0">
${_conditionType_} a.secondName not in
<foreach collection="conditionParamRef.secondNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('thirdCode')">
<if test="conditionParamRef.thirdCode != null and conditionParamRef.thirdCode != ''">
${_conditionType_} a.thirdCode like #{${_conditionParam_}.thirdCode}
</if>
<if test="conditionParamRef.containsKey('sceneDepth')">
<if test="conditionParamRef.sceneDepth != null ">
${_conditionType_} a.sceneDepth = #{${_conditionParam_}.sceneDepth}
</if>
<if test="conditionParamRef.sceneDepth == null">
${_conditionType_} a.sceneDepth is null
</if>
<if test="conditionParamRef.thirdCode == null">
${_conditionType_} a.thirdCode is null
</if>
<if test="conditionParamRef.containsKey('sceneDepthList') and conditionParamRef.sceneDepthList.size() > 0">
${_conditionType_} a.sceneDepth in
<foreach collection="conditionParamRef.sceneDepthList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('thirdCodeList') and conditionParamRef.thirdCodeList.size() > 0">
${_conditionType_} a.thirdCode in
<foreach collection="conditionParamRef.thirdCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('thirdCodeNotList') and conditionParamRef.thirdCodeNotList.size() > 0">
${_conditionType_} a.thirdCode not in
<foreach collection="conditionParamRef.thirdCodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('thirdName')">
<if test="conditionParamRef.thirdName != null and conditionParamRef.thirdName != ''">
${_conditionType_} a.thirdName like #{${_conditionParam_}.thirdName}
</if>
<if test="conditionParamRef.containsKey('sceneDepthNotList') and conditionParamRef.sceneDepthNotList.size() > 0">
${_conditionType_} a.sceneDepth not in
<foreach collection="conditionParamRef.sceneDepthNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.thirdName == null">
${_conditionType_} a.thirdName is null
</if>
<if test="conditionParamRef.containsKey('sceneDepthStart') and conditionParamRef.sceneDepthStart != null">
${_conditionType_} a.sceneDepth <![CDATA[ >= ]]> #{${_conditionParam_}.sceneDepthStart}
</if>
<if test="conditionParamRef.containsKey('thirdNameList') and conditionParamRef.thirdNameList.size() > 0">
${_conditionType_} a.thirdName in
<foreach collection="conditionParamRef.thirdNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('thirdNameNotList') and conditionParamRef.thirdNameNotList.size() > 0">
${_conditionType_} a.thirdName not in
<foreach collection="conditionParamRef.thirdNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fourthCode')">
<if test="conditionParamRef.fourthCode != null and conditionParamRef.fourthCode != ''">
${_conditionType_} a.fourthCode like #{${_conditionParam_}.fourthCode}
</if>
<if test="conditionParamRef.containsKey('sceneDepthEnd') and conditionParamRef.sceneDepthEnd != null">
${_conditionType_} a.sceneDepth <![CDATA[ <= ]]> #{${_conditionParam_}.sceneDepthEnd}
<if test="conditionParamRef.fourthCode == null">
${_conditionType_} a.fourthCode is null
</if>
</if>
<if test="conditionParamRef.containsKey('fourthCodeList') and conditionParamRef.fourthCodeList.size() > 0">
${_conditionType_} a.fourthCode in
<foreach collection="conditionParamRef.fourthCodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fourthCodeNotList') and conditionParamRef.fourthCodeNotList.size() > 0">
${_conditionType_} a.fourthCode not in
<foreach collection="conditionParamRef.fourthCodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
</if>
<if test="conditionParamRef.createUserId == null">
${_conditionType_} a.createUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
${_conditionType_} a.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.containsKey('fourthName')">
<if test="conditionParamRef.fourthName != null and conditionParamRef.fourthName != ''">
${_conditionType_} a.fourthName like #{${_conditionParam_}.fourthName}
</if>
<if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
${_conditionType_} a.createUserId not in
<foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.fourthName == null">
${_conditionType_} a.fourthName is null
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('fourthNameList') and conditionParamRef.fourthNameList.size() > 0">
${_conditionType_} a.fourthName in
<foreach collection="conditionParamRef.fourthNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('fourthNameNotList') and conditionParamRef.fourthNameNotList.size() > 0">
${_conditionType_} a.fourthName not in
<foreach collection="conditionParamRef.fourthNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('accessContent')">
<if test="conditionParamRef.accessContent != null and conditionParamRef.accessContent != ''">
${_conditionType_} a.accessContent like #{${_conditionParam_}.accessContent}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
<if test="conditionParamRef.accessContent == null">
${_conditionType_} a.accessContent is null
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('accessContentList') and conditionParamRef.accessContentList.size() > 0">
${_conditionType_} a.accessContent in
<foreach collection="conditionParamRef.accessContentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('accessContentNotList') and conditionParamRef.accessContentNotList.size() > 0">
${_conditionType_} a.accessContent not in
<foreach collection="conditionParamRef.accessContentNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('pageDepth')">
<if test="conditionParamRef.pageDepth != null ">
${_conditionType_} a.pageDepth = #{${_conditionParam_}.pageDepth}
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
<if test="conditionParamRef.pageDepth == null">
${_conditionType_} a.pageDepth is null
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('pageDepthList') and conditionParamRef.pageDepthList.size() > 0">
${_conditionType_} a.pageDepth in
<foreach collection="conditionParamRef.pageDepthList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('pageDepthNotList') and conditionParamRef.pageDepthNotList.size() > 0">
${_conditionType_} a.pageDepth not in
<foreach collection="conditionParamRef.pageDepthNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('pageDepthStart') and conditionParamRef.pageDepthStart != null">
${_conditionType_} a.pageDepth <![CDATA[ >= ]]> #{${_conditionParam_}.pageDepthStart}
</if>
<if test="conditionParamRef.containsKey('pageDepthEnd') and conditionParamRef.pageDepthEnd != null">
${_conditionType_} a.pageDepth <![CDATA[ <= ]]> #{${_conditionParam_}.pageDepthEnd}
</if>
<if test="conditionParamRef.containsKey('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
</if>
<if test="conditionParamRef.containsKey('updateUserId')">
<if test="conditionParamRef.updateUserId != null ">
${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
</if>
<if test="conditionParamRef.updateUserId == null">
${_conditionType_} a.updateUserId is null
</if>
<if test="conditionParamRef.createUserId == null">
${_conditionType_} a.createUserId is null
</if>
<if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
${_conditionType_} a.updateUserId in
<foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
${_conditionType_} a.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
${_conditionType_} a.createUserId not in
<foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
${_conditionType_} a.updateUserId not in
<foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
<if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateUserId')">
<if test="conditionParamRef.updateUserId != null ">
${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
</if>
<if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
<if test="conditionParamRef.updateUserId == null">
${_conditionType_} a.updateUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
${_conditionType_} a.updateUserId in
<foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
${_conditionType_} a.updateUserId not in
<foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
</if>
<if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.updateTime is null
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.updateTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('deviceNum')">
a.deviceNum
<if test='orderCol.deviceNum != null and "DESC".equalsIgnoreCase(orderCol.deviceNum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('productId')">
a.productId
<if test='orderCol.productId != null and "DESC".equalsIgnoreCase(orderCol.productId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('productName')">
a.productName
<if test='orderCol.productName != null and "DESC".equalsIgnoreCase(orderCol.productName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('pageCode')">
a.pageCode
<if test='orderCol.pageCode != null and "DESC".equalsIgnoreCase(orderCol.pageCode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('pageName')">
a.pageName
<if test='orderCol.pageName != null and "DESC".equalsIgnoreCase(orderCol.pageName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sceneDepth')">
a.sceneDepth
<if test='orderCol.sceneDepth != null and "DESC".equalsIgnoreCase(orderCol.sceneDepth)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserId')">
a.createUserId
<if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateUserId')">
a.updateUserId
<if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.updateTime
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('deviceNum')">
a.deviceNum
<if test='orderCol.deviceNum != null and "DESC".equalsIgnoreCase(orderCol.deviceNum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('productId')">
a.productId
<if test='orderCol.productId != null and "DESC".equalsIgnoreCase(orderCol.productId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('productName')">
a.productName
<if test='orderCol.productName != null and "DESC".equalsIgnoreCase(orderCol.productName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('firstCode')">
a.firstCode
<if test='orderCol.firstCode != null and "DESC".equalsIgnoreCase(orderCol.firstCode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('firstName')">
a.firstName
<if test='orderCol.firstName != null and "DESC".equalsIgnoreCase(orderCol.firstName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('secondCode')">
a.secondCode
<if test='orderCol.secondCode != null and "DESC".equalsIgnoreCase(orderCol.secondCode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('secondName')">
a.secondName
<if test='orderCol.secondName != null and "DESC".equalsIgnoreCase(orderCol.secondName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('thirdCode')">
a.thirdCode
<if test='orderCol.thirdCode != null and "DESC".equalsIgnoreCase(orderCol.thirdCode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('thirdName')">
a.thirdName
<if test='orderCol.thirdName != null and "DESC".equalsIgnoreCase(orderCol.thirdName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('fourthCode')">
a.fourthCode
<if test='orderCol.fourthCode != null and "DESC".equalsIgnoreCase(orderCol.fourthCode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('fourthName')">
a.fourthName
<if test='orderCol.fourthName != null and "DESC".equalsIgnoreCase(orderCol.fourthName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('accessContent')">
a.accessContent
<if test='orderCol.accessContent != null and "DESC".equalsIgnoreCase(orderCol.accessContent)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('pageDepth')">
a.pageDepth
<if test='orderCol.pageDepth != null and "DESC".equalsIgnoreCase(orderCol.pageDepth)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserId')">
a.createUserId
<if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateUserId')">
a.updateUserId
<if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.updateTime
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.page.dao.ibatis.PageEventDaoImpl">
<!-- 事件分析 -->
<select id="getPageEventCensus" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.PageEventCensusVo">
SELECT
t.eventCode,
t.eventName,
FLOOR(count(id)/(DATEDIFF(MAX(t.createTime),MIN(t.createTime))+1)) as dayAvg,
FORMAT(AVG(t.takeTime)/1000,2) as takeTimeAvg
FROM
mortals_xhx_page_event t
WHERE
t.productId = #{productId}
AND t.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND t.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
AND t.eventCode IS NOT NULL
GROUP BY
t.eventCode,
t.eventName
</select>
<!-- 产品热力图 -->
<select id="getProductHotCensus" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.ProductHotCensusVo">
SELECT * FROM (
SELECT
t.businessCode,
t.businessName,
t.coordinate,
SUBSTRING_INDEX(t.coordinate,',',1) AS x,
SUBSTRING_INDEX(t.coordinate,',',-1) AS y,
COUNT(t.id) AS `value`
FROM
mortals_xhx_page_event t
WHERE
t.productId = #{productId}
AND t.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND t.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
AND t.businessCode IS NOT NULL
AND t.businessCode !=''
AND t.coordinate IS NOT NULL
AND t.coordinate !=''
AND t.pageCode = #{pageCode}
GROUP BY
t.businessCode,
t.businessName,
t.coordinate
) as a ORDER BY `value` DESC LIMIT 10
</select>
<!-- 页面访问指标趋势 -->
<select id="getPageAccessTrend" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo">
SELECT
date_format(createTime, '%m-%d') AS accessDay,
COUNT(t.id) AS accessCount
FROM
mortals_xhx_page_event t
WHERE
t.productId = #{productId}
AND t.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND t.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
GROUP BY
date_format(createTime, '%m-%d')
</select>
<!-- 页面访问次数TOP10 -->
<select id="getPageAccessTop" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.AccessTrendCensusVo">
SELECT * FROM (
SELECT
t.pageCode,
t.pageName,
COUNT(t.id) AS accessCount
FROM
mortals_xhx_page_event t
WHERE
t.productId = #{productId}
AND t.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND t.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
GROUP BY
t.pageCode,
t.pageName
) as a ORDER BY accessCount DESC LIMIT 10
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.page.dao.ibatis.PageRouteDaoImpl">
<!-- 路径图 -->
<select id="getPageWayCensus" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.PageWayCensusVo">
SELECT
t.sourceCode AS source,
t.sourceName,
t.targetCode AS target,
t.targetName,
count(t.id) AS `value`
FROM
mortals_xhx_page_route t
WHERE
t.productId = #{productId}
AND t.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND t.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
GROUP BY
t.sourceCode,
t.sourceName,
t.targetCode,
t.targetName
</select>
<!-- 路径图 -->
<select id="getPageWayCode" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="java.util.HashMap">
SELECT DISTINCT a.* FROM
(
SELECT DISTINCT
sourceCode AS `code`,
sourceName AS `name`
FROM
mortals_xhx_page_route
WHERE
productId = #{productId}
AND createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
UNION
SELECT DISTINCT
targetCode AS `code`,
targetName AS `name`
FROM
mortals_xhx_page_route
WHERE
productId = #{productId}
AND createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{dateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
AND createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{dateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
) AS a
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment