Commit 14af74b3 authored by 廖旭伟's avatar 廖旭伟

产品热力图接口修改调整

parent aff6b05f
......@@ -32,6 +32,7 @@ public interface PageEventDao extends ICRUDDao<PageEventEntity,Long>{
* @return
*/
List<ProductHotCensusVo> getProductHotCensus(PageCensusPdu pdu);
List<ProductHotCensusVo> getProductHotCensusTop10(PageCensusPdu pdu);
/**
* 页面访问指标趋势
......
package com.mortals.xhx.module.page.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.page.dao.PageEventDao;
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 com.mortals.xhx.module.page.model.vo.UsageCensusVo;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.page.dao.PageEventDao;
import com.mortals.xhx.module.page.model.PageEventEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 页面事件记录DaoImpl DAO接口
......@@ -31,6 +31,10 @@ public class PageEventDaoImpl extends BaseCRUDDaoMybatis<PageEventEntity,Long> i
public List<ProductHotCensusVo> getProductHotCensus(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getProductHotCensus"), pdu);
}
@Override
public List<ProductHotCensusVo> getProductHotCensusTop10(PageCensusPdu pdu) {
return this.getSqlSession().selectList(this.getSqlId("getProductHotCensusTop10"), pdu);
}
@Override
public List<AccessTrendCensusVo> getPageAccessTrend(PageCensusPdu pdu) {
......
......@@ -116,13 +116,14 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao,
throw new AppException("日期格式错误,应为yyyy-MM-dd");
}
Map<String,Object> result = new HashMap<>();
List<ProductHotCensusVo> list = dao.getProductHotCensus(pdu);
List<ProductHotCensusVo> hostList = dao.getProductHotCensus(pdu);
List<ProductHotCensusVo> top10List = dao.getProductHotCensusTop10(pdu);
Long clickSum = 0l;
if(CollectionUtils.isNotEmpty(list)){
for (ProductHotCensusVo vo:list){
if(CollectionUtils.isNotEmpty(top10List)){
for (ProductHotCensusVo vo:top10List){
clickSum+=vo.getValue();
}
for (ProductHotCensusVo vo:list){
for (ProductHotCensusVo vo:top10List){
float a = (float)vo.getValue();
float b = (float)clickSum;
float p = a/b;
......@@ -131,7 +132,8 @@ public class PageEventServiceImpl extends AbstractCRUDServiceImpl<PageEventDao,
vo.setProportion(s);
}
}
result.put("data",list);
result.put("hostList",hostList);
result.put("top10List",top10List);
result.put("clickSum", clickSum);
PageInfoEntity pageInfoEntity = pageInfoService.selectOne(new PageInfoQuery().pageCode(pdu.getPageCode()).productId(pdu.getProductId()));
if(pageInfoEntity!=null) {
......
......@@ -46,6 +46,32 @@
t.businessCode,
t.businessName,
t.coordinate
) as a ORDER BY `value` DESC
</select>
<!-- 产品热力图top10 -->
<select id="getProductHotCensusTop10" 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
) as a ORDER BY `value` DESC LIMIT 10
</select>
......
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