Commit 267e1c51 authored by 廖旭伟's avatar 廖旭伟

页面信息流分析、页面使用习惯分析

parent ff1957ce
...@@ -5159,7 +5159,6 @@ data|object|数据对象 ...@@ -5159,7 +5159,6 @@ data|object|数据对象
  value|int|访问次数   value|int|访问次数
**响应消息样例:** **响应消息样例:**
``` ```
{ {
...@@ -5449,6 +5448,152 @@ data|object|数据对象 ...@@ -5449,6 +5448,152 @@ data|object|数据对象
``` ```
### 页面使用习惯分析
**请求URL:** zwfw/act/analyse/usageCensus
**请求方式:** 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|array|数据对象
 businessCode|String|业务功能code
 businessName|String|业务功能name
 accessCount|int|访问次数
 proportion|String|占比
 propValue|String|占比值
**响应消息样例:**
```
{
"data": [
{
"businessCode": "/",
"businessName": "首页",
"accessCount": 2,
"proportion": "50.00%",
"propValue": 0.5
},
{
"businessCode": "/floor",
"businessName": "中心导航",
"accessCount": 1,
"proportion": "25.00%",
"propValue": 0.25
},
{
"businessCode": "/Layout",
"businessName": "中心导航",
"accessCount": 1,
"proportion": "25.00%",
"propValue": 0.25
}
],
"code": 1,
"msg": "查询页面使用习惯分析成功"
}
```
### 页面信息流分析
**请求URL:** zwfw/act/analyse/informationFlow
**请求方式:** 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|array|数据对象
 productId|long|产品id
 productName|String|产品名称
 firstCode|String|一级场景code
 firstName|String|一级场景name
 secondCode|String|二级场景code
 secondName|String|二级场景name
 thirdCode|String|三级场景code
 thirdName|String|三级场景name
 fourthCode|String|四级场景code
 fourthName|String|四级场景name
 accessCount|int|访问次数,打开次数
 pageDepth|int|访问页面数
**响应消息样例:**
```
{
"data": [
{
"deleted": 0,
"accessCount": 1,
"productId": 1,
"productName": "导视机",
"firstCode": "/",
"firstName": "首页",
"secondCode": "/floor",
"secondName": "中心导航",
"thirdCode": "--",
"thirdName": "--",
"fourthCode": "--",
"fourthName": "--",
"pageDepth": 1
}
],
"code": 1,
"msg": "查询信息流分析成功"
}
```
## 字典附录 ## 字典附录
### userType ### userType
字典参数key|字典参数值|其它 字典参数key|字典参数值|其它
......
...@@ -2,6 +2,8 @@ package com.mortals.xhx.module.page.dao; ...@@ -2,6 +2,8 @@ package com.mortals.xhx.module.page.dao;
import com.mortals.framework.dao.ICRUDDao; import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.page.model.PageAccessEntity; import com.mortals.xhx.module.page.model.PageAccessEntity;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import java.util.List; import java.util.List;
/** /**
* 产品页面配置Dao * 产品页面配置Dao
...@@ -13,5 +15,10 @@ import java.util.List; ...@@ -13,5 +15,10 @@ import java.util.List;
public interface PageAccessDao extends ICRUDDao<PageAccessEntity,Long>{ public interface PageAccessDao extends ICRUDDao<PageAccessEntity,Long>{
/**
* 信息流分析
* @param pdu
* @return
*/
List<PageAccessEntity> getInformationFlow(PageCensusPdu pdu);
} }
...@@ -6,6 +6,7 @@ import com.mortals.xhx.module.page.model.pdu.PageCensusPdu; ...@@ -6,6 +6,7 @@ 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.AccessTrendCensusVo;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo; import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo; import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import com.mortals.xhx.module.page.model.vo.UsageCensusVo;
import java.util.List; import java.util.List;
/** /**
...@@ -38,6 +39,7 @@ public interface PageEventDao extends ICRUDDao<PageEventEntity,Long>{ ...@@ -38,6 +39,7 @@ public interface PageEventDao extends ICRUDDao<PageEventEntity,Long>{
* @return * @return
*/ */
List<AccessTrendCensusVo> getPageAccessTrend(PageCensusPdu pdu); List<AccessTrendCensusVo> getPageAccessTrend(PageCensusPdu pdu);
/** /**
* 页面访问次数TOP10 * 页面访问次数TOP10
* @param pdu * @param pdu
...@@ -45,4 +47,11 @@ public interface PageEventDao extends ICRUDDao<PageEventEntity,Long>{ ...@@ -45,4 +47,11 @@ public interface PageEventDao extends ICRUDDao<PageEventEntity,Long>{
*/ */
List<AccessTrendCensusVo> getPageAccessTop(PageCensusPdu pdu); List<AccessTrendCensusVo> getPageAccessTop(PageCensusPdu pdu);
/**
* 使用习惯
* @param pdu
* @return
*/
List<UsageCensusVo> getUsageCensus(PageCensusPdu pdu);
} }
package com.mortals.xhx.module.page.dao.ibatis; package com.mortals.xhx.module.page.dao.ibatis;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.page.dao.PageAccessDao; import com.mortals.xhx.module.page.dao.PageAccessDao;
import com.mortals.xhx.module.page.model.PageAccessEntity; import com.mortals.xhx.module.page.model.PageAccessEntity;
...@@ -17,5 +18,8 @@ import java.util.List; ...@@ -17,5 +18,8 @@ import java.util.List;
public class PageAccessDaoImpl extends BaseCRUDDaoMybatis<PageAccessEntity,Long> implements PageAccessDao { public class PageAccessDaoImpl extends BaseCRUDDaoMybatis<PageAccessEntity,Long> implements PageAccessDao {
@Override
public List<PageAccessEntity> getInformationFlow(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getInformationFlow"), pdu);
}
} }
...@@ -5,6 +5,7 @@ import com.mortals.xhx.module.page.model.pdu.PageCensusPdu; ...@@ -5,6 +5,7 @@ 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.AccessTrendCensusVo;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo; import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo; import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import com.mortals.xhx.module.page.model.vo.UsageCensusVo;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.page.dao.PageEventDao; import com.mortals.xhx.module.page.dao.PageEventDao;
import com.mortals.xhx.module.page.model.PageEventEntity; import com.mortals.xhx.module.page.model.PageEventEntity;
...@@ -41,5 +42,10 @@ public class PageEventDaoImpl extends BaseCRUDDaoMybatis<PageEventEntity,Long> i ...@@ -41,5 +42,10 @@ public class PageEventDaoImpl extends BaseCRUDDaoMybatis<PageEventEntity,Long> i
return this.getSqlSession().selectList(this.getSqlId("getPageAccessTop"), pdu); return this.getSqlSession().selectList(this.getSqlId("getPageAccessTop"), pdu);
} }
@Override
public List<UsageCensusVo> getUsageCensus(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getUsageCensus"), pdu);
}
} }
package com.mortals.xhx.module.page.model.vo; package com.mortals.xhx.module.page.model.vo;
import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.page.model.PageAccessEntity; import com.mortals.xhx.module.page.model.PageAccessEntity;
import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -9,6 +11,8 @@ import java.util.List; ...@@ -9,6 +11,8 @@ import java.util.List;
* @author zxfei * @author zxfei
* @date 2023-04-10 * @date 2023-04-10
*/ */
@Data
public class PageAccessVo extends BaseEntityLong { public class PageAccessVo extends BaseEntityLong {
/** 访问次数 */
private Integer accessCount;
} }
\ No newline at end of file
package com.mortals.xhx.module.page.model.vo;
import lombok.Data;
@Data
public class UsageCensusVo {
/*** 业务场景编码 */
private String businessCode;
/*** 业务场景名称 */
private String businessName;
/** 点击次数 */
private Integer accessCount;
/** 点击占比 */
private String proportion;
/** 点击占比 */
private float propValue;
}
...@@ -2,6 +2,9 @@ package com.mortals.xhx.module.page.service; ...@@ -2,6 +2,9 @@ package com.mortals.xhx.module.page.service;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.page.model.PageAccessEntity; import com.mortals.xhx.module.page.model.PageAccessEntity;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu; import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import java.util.List;
/** /**
* PageAccessService * PageAccessService
...@@ -14,4 +17,11 @@ import com.mortals.xhx.module.page.model.pdu.BuryPointPdu; ...@@ -14,4 +17,11 @@ import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
public interface PageAccessService extends ICRUDService<PageAccessEntity,Long>{ public interface PageAccessService extends ICRUDService<PageAccessEntity,Long>{
PageAccessEntity saveByPdu(BuryPointPdu pdu); PageAccessEntity saveByPdu(BuryPointPdu pdu);
/**
* 信息流分析
* @param pdu
* @return
*/
List<PageAccessEntity> getInformationFlow(PageCensusPdu pdu);
} }
\ No newline at end of file
...@@ -6,6 +6,7 @@ import com.mortals.xhx.module.page.model.pdu.BuryPointPdu; ...@@ -6,6 +6,7 @@ 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.pdu.PageCensusPdu;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo; import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo; import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import com.mortals.xhx.module.page.model.vo.UsageCensusVo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -43,4 +44,11 @@ public interface PageEventService extends ICRUDService<PageEventEntity,Long>{ ...@@ -43,4 +44,11 @@ public interface PageEventService extends ICRUDService<PageEventEntity,Long>{
*/ */
Map<String,Object> getPageAccessAnalyse(PageCensusPdu pdu) throws AppException; Map<String,Object> getPageAccessAnalyse(PageCensusPdu pdu) throws AppException;
/**
* 使用习惯
* @param pdu
* @return
*/
List<UsageCensusVo> getUsageCensus(PageCensusPdu pdu) throws AppException;
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.page.service.impl; ...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.page.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu; import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
...@@ -11,7 +12,10 @@ import com.mortals.xhx.module.page.dao.PageAccessDao; ...@@ -11,7 +12,10 @@ import com.mortals.xhx.module.page.dao.PageAccessDao;
import com.mortals.xhx.module.page.model.PageAccessEntity; import com.mortals.xhx.module.page.model.PageAccessEntity;
import com.mortals.xhx.module.page.service.PageAccessService; import com.mortals.xhx.module.page.service.PageAccessService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* PageAccessService * PageAccessService
...@@ -64,9 +68,30 @@ public class PageAccessServiceImpl extends AbstractCRUDServiceImpl<PageAccessDao ...@@ -64,9 +68,30 @@ public class PageAccessServiceImpl extends AbstractCRUDServiceImpl<PageAccessDao
entity.setFourthCode(pdu.getDepthArr().get(3).getSourceCode()); entity.setFourthCode(pdu.getDepthArr().get(3).getSourceCode());
entity.setFourthName(pdu.getDepthArr().get(3).getSourceCode()); entity.setFourthName(pdu.getDepthArr().get(3).getSourceCode());
} }
entity.setPageDepth(pdu.getDepthArr().size()); entity.setPageDepth(pdu.getDepthArr().size()+1);
entity.setAccessContent(JSONObject.toJSONString(pdu.getDepthArr())); entity.setAccessContent(JSONObject.toJSONString(pdu.getDepthArr()));
entity.setCreateTime(new Date()); entity.setCreateTime(new Date());
return this.save(entity); return this.save(entity);
} }
@Override
public List<PageAccessEntity> getInformationFlow(PageCensusPdu pdu) {
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.getInformationFlow(pdu);
}
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import com.mortals.xhx.module.page.model.pdu.PageCensusPdu; ...@@ -8,6 +8,7 @@ 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.AccessTrendCensusVo;
import com.mortals.xhx.module.page.model.vo.PageEventCensusVo; import com.mortals.xhx.module.page.model.vo.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo; import com.mortals.xhx.module.page.model.vo.ProductHotCensusVo;
import com.mortals.xhx.module.page.model.vo.UsageCensusVo;
import com.mortals.xhx.module.page.service.PageInfoService; import com.mortals.xhx.module.page.service.PageInfoService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -155,6 +156,13 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao, ...@@ -155,6 +156,13 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao,
if(pdu.getProductId()==null){ if(pdu.getProductId()==null){
throw new AppException("产品id不能为空"); 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");
}
Map<String,Object> result = new HashMap<>(); Map<String,Object> result = new HashMap<>();
List<AccessTrendCensusVo> trendCensusVos = dao.getPageAccessTrend(pdu); List<AccessTrendCensusVo> trendCensusVos = dao.getPageAccessTrend(pdu);
Long clickSum = 0l; Long clickSum = 0l;
...@@ -165,7 +173,7 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao, ...@@ -165,7 +173,7 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao,
} }
float a = (float)clickSum; float a = (float)clickSum;
float b = (float)trendCensusVos.size(); float b = (float)trendCensusVos.size();
float p = a/b; float p = b/a;
DecimalFormat decimalFormat=new DecimalFormat(".00"); DecimalFormat decimalFormat=new DecimalFormat(".00");
String s = decimalFormat.format(p); String s = decimalFormat.format(p);
dayAccessAvg = Float.valueOf(s); dayAccessAvg = Float.valueOf(s);
...@@ -186,4 +194,48 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao, ...@@ -186,4 +194,48 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao,
return result; return result;
} }
@Override
public List<UsageCensusVo> getUsageCensus(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");
}
List<UsageCensusVo> list = dao.getUsageCensus(pdu);
if(CollectionUtils.isNotEmpty(list)){
Integer clickSum = 0;
for (UsageCensusVo item:list){
if(item!=null && item.getAccessCount()!=null) {
clickSum += item.getAccessCount();
}
}
for (UsageCensusVo item:list){
if(item!=null && item.getAccessCount()!=null) {
float a = (float)clickSum;
float b = (float)item.getAccessCount();
float p = b/a;
DecimalFormat decimalFormat=new DecimalFormat(".00%");
DecimalFormat df=new DecimalFormat(".00");
String s = decimalFormat.format(p);
String s1 = df.format(p);
item.setProportion(s);
item.setPropValue(Float.valueOf(s1));
}
}
}
return list;
}
} }
\ No newline at end of file
...@@ -6,8 +6,11 @@ import com.mortals.framework.model.Context; ...@@ -6,8 +6,11 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.web.BaseJsonBodyController; import com.mortals.framework.web.BaseJsonBodyController;
import com.mortals.xhx.module.page.model.PageAccessEntity;
import com.mortals.xhx.module.page.model.pdu.PageCensusPdu; 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.PageEventCensusVo;
import com.mortals.xhx.module.page.model.vo.UsageCensusVo;
import com.mortals.xhx.module.page.service.PageAccessService;
import com.mortals.xhx.module.page.service.PageEventService; import com.mortals.xhx.module.page.service.PageEventService;
import com.mortals.xhx.module.page.service.PageRouteService; import com.mortals.xhx.module.page.service.PageRouteService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -31,6 +34,8 @@ public class PageCensusController extends BaseJsonBodyController { ...@@ -31,6 +34,8 @@ public class PageCensusController extends BaseJsonBodyController {
private PageEventService pageEventService; private PageEventService pageEventService;
@Autowired @Autowired
private PageRouteService pageRouteService; private PageRouteService pageRouteService;
@Autowired
private PageAccessService pageAccessService;
/** /**
* 事件分析 * 事件分析
...@@ -139,4 +144,58 @@ public class PageCensusController extends BaseJsonBodyController { ...@@ -139,4 +144,58 @@ public class PageCensusController extends BaseJsonBodyController {
ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString()); ret.setMsg(model.get("message_info") == null ? "" : model.remove("message_info").toString());
return ret; return ret;
} }
/**
* 页面使用习惯分析
* @param query
* @return
*/
@PostMapping({"usageCensus"})
@UnAuth
public Rest<Object> getUsageCensus(@RequestBody PageCensusPdu query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询页面使用习惯分析";
int code=1;
try {
List<UsageCensusVo> result = pageEventService.getUsageCensus(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({"informationFlow"})
@UnAuth
public Rest<Object> getInformationFlow(@RequestBody PageCensusPdu query) {
Rest<Object> ret = new Rest();
Map<String, Object> model = new HashMap();
String busiDesc = "查询信息流分析";
int code=1;
try {
List<PageAccessEntity> result = pageAccessService.getInformationFlow(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.PageAccessDaoImpl">
<!-- 信息流分析 -->
<select id="getInformationFlow" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.PageAccessEntity">
SELECT
t.productId,
t.productName,
t.firstCode,
t.firstName,
IFNULL(t.secondCode,'--') as secondCode,
IFNULL(t.secondName,'--') as secondName,
IFNULL(t.thirdCode,'--') as thirdCode,
IFNULL(t.thirdName,'--') as thirdName,
IFNULL(t.fourthCode,'--') as fourthCode,
IFNULL(t.fourthName,'--') as fourthName,
COUNT(t.id) as accessCount,
MAX(t.pageDepth) as pageDepth
FROM
mortals_xhx_page_access 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.firstCode,
t.firstName,
IFNULL(t.secondCode,'--'),
IFNULL(t.secondName,'--'),
IFNULL(t.thirdCode,'--'),
IFNULL(t.thirdName,'--'),
IFNULL(t.fourthCode,'--'),
IFNULL(t.fourthName,'--')
</select>
</mapper>
\ No newline at end of file
...@@ -83,5 +83,22 @@ ...@@ -83,5 +83,22 @@
) as a ORDER BY accessCount DESC LIMIT 10 ) as a ORDER BY accessCount DESC LIMIT 10
</select> </select>
<!-- 使用习惯 -->
<select id="getUsageCensus" parameterType="com.mortals.xhx.module.page.model.pdu.PageCensusPdu" resultType="com.mortals.xhx.module.page.model.vo.UsageCensusVo">
SELECT
t.businessCode,
t.businessName,
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')
AND t.businessCode IS NOT NULL
AND t.businessCode !=''
GROUP BY
t.businessCode,
t.businessName
</select>
</mapper> </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