Browse Source

媒体数据报表的更新

Signed-off-by: you.chen <you.chen@cloudcross.com>
you.chen 9 years ago
parent
commit
31ad9b5f33

+ 8 - 0
src/main/java/com/cloudcross/ssp/model/OperatorReport.java

@@ -57,11 +57,19 @@ public final class OperatorReport {
 	private double income;
 	//日期
 	private Date reportDate;
+	//小时
+	private Integer hour;
 	//开始日期
 	private Date startDate;
 	//结束日期
 	private Date endDate;	
 	
+	public Integer getHour() {
+		return hour;
+	}
+	public void setHour(Integer hour) {
+		this.hour = hour;
+	}
 	public String getApmac() {
 		return apmac;
 	}

+ 77 - 10
src/main/java/com/cloudcross/ssp/model/mapper/rpt-zone-hour.sql.xml

@@ -28,9 +28,9 @@
 		</select>
 		
 		<select id="countByParams" parameterType="map" resultType="int">
-		select count(id) from t_rpt_zone_hour
+		select count(distinct hour) from t_rpt_zone_hour
 		where operator_id = #{operatorId}
-		and date &gt;=#{startDate} and date &lt;=#{endDate}
+		and date = #{startDate} 
 		<if test="zoneId!=null">
         	and zone_id = #{zoneId}
         </if>  
@@ -38,31 +38,33 @@
 		
 		<select id="findByParams1" parameterType="map" resultType="com.cloudcross.ssp.model.DeliverAnalysis">
 		select 
-		zone_id as zoneId,date as reportDate, pv, uv, impression,uimpression as uImpression,
-		uclick as uClick,
-		100*impression/pv as fillRate,
-        click,100* click/impression as clickRate,ecpm as eCpm,income
+		zone_id as zoneId,date as reportDate,hour, sum(pv) as pv, sum(uv) as uv, sum(impression) as impression,sum(uimpression) as uImpression,
+		sum(uclick) as uClick,
+		100*sum(impression)/sum(pv) as fillRate,
+        sum(click) as click,100* sum(click)/sum(impression) as clickRate,sum(ecpm) as eCpm,sum(income) as income
         from t_rpt_zone_hour
 		where operator_id = #{operatorId}
 		and date =#{startDate} 
 		<if test="zoneId!=null">
         	and zone_id = #{zoneId}
         </if>  
+        group by hour
         limit #{pager.offset}, #{pager.limit}
 		</select>
 		
 		<select id="findByParams2" parameterType="map" resultType="com.cloudcross.ssp.model.DeliverAnalysis">
 		select 
-		zone_id as zoneId,date as reportDate, pv, uv, impression,uimpression as uImpression,
-		uclick as uClick,
-		100*impression/pv as fillRate,
-        click,100* click/impression as clickRate,ecpm as eCpm,income
+		zone_id as zoneId,date as reportDate,hour, sum(pv) as pv, sum(uv) as uv, sum(impression) as impression,sum(uimpression) as uImpression,
+		sum(uclick) as uClick,
+		100*sum(impression)/sum(pv) as fillRate,
+        sum(click) as click,100* sum(click)/sum(impression) as clickRate,sum(ecpm) as eCpm,sum(income) as income
         from t_rpt_zone_hour
 		where operator_id = #{operatorId}
 		and date =#{startDate} 
 		<if test="zoneId!=null">
         	and zone_id = #{zoneId}
         </if>  
+        group by hour
 		</select>
 		
 		<select id="findSum" parameterType="map" resultType="com.cloudcross.ssp.model.DeliverAnalysis">
@@ -74,5 +76,70 @@
         	and zone_id = #{zoneId}
         </if>  
 	</select>
+	
+	
+	<select id="countByParamsBack" parameterType="map" resultType="int">
+		select count(distinct hour) from t_rpt_zone_hour
+		where
+		date = #{startDate} 
+		<if test="operatorId != null">
+		 and operator_id = #{operatorId}
+		</if>
+		<if test="zoneId!=null">
+        	and zone_id = #{zoneId}
+        </if>  
+	</select>
+		
+		<select id="findByParamsBack" parameterType="map" resultType="com.cloudcross.ssp.model.OperatorReport">
+		select 
+		zone_id as zoneId,date as reportDate,hour,sum(pv) as pv,sum(uv) as uv,sum(impression) as impression,
+		sum(uimpression) as uImpression, sum(uclick) as uClick,
+		100*sum(impression)/sum(pv) as fillRate,
+        sum(click) as click,100* sum(click)/sum(impression) as clickRate,sum(ecpm) as eCpm,sum(income) as income
+		from t_rpt_zone_hour
+		<where>
+		date = #{startDate}
+		<if test="zoneId!=null">
+		and zone_id=#{zoneId}
+		</if>
+		<if test="operatorId != null">
+		and operator_id=#{operatorId}
+		</if>
+		</where>
+		group by hour
+		limit #{pager.offset}, #{pager.limit}
+		</select>
+		
 		
+		<select id="findByParamsBack1" parameterType="map" resultType="com.cloudcross.ssp.model.OperatorReport">
+		select 
+		zone_id as zoneId,date as reportDate,hour,sum(pv) as pv,sum(uv) as uv,sum(impression) as impression,
+		sum(uimpression) as uImpression, sum(uclick) as uClick,
+		100*sum(impression)/sum(pv) as fillRate,
+        sum(click) as click,100* sum(click)/sum(impression) as clickRate,sum(ecpm) as eCpm,sum(income) as income
+		from t_rpt_zone_hour
+		<where>
+		date = #{startDate}
+		<if test="zoneId!=null">
+		and zone_id=#{zoneId}
+		</if>
+		<if test="operatorId != null">
+		and operator_id=#{operatorId}
+		</if>
+		</where>
+		group by hour
+		</select>
+		
+		<select id="findSumBack" parameterType="map" resultType="com.cloudcross.ssp.model.OperatorReport">
+		select sum(pv) as pv, sum(uv) as uv, sum(impression) as impression, sum(click) as click, sum(income) as income
+		from t_rpt_zone_hour
+		where 
+		date =#{startDate} 
+		<if test="zoneId!=null">
+        	and zone_id = #{zoneId}
+        </if>  
+		<if test="operatorId != null">
+		and operator_id=#{operatorId}
+		</if>
+		</select>
 </mapper>

+ 9 - 0
src/main/java/com/cloudcross/ssp/service/IRptZoneHourService.java

@@ -6,6 +6,7 @@ import java.util.Map;
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.model.DeliverAnalysis;
+import com.cloudcross.ssp.model.OperatorReport;
 import com.cloudcross.ssp.model.RptZoneHour;
 
 public interface IRptZoneHourService  extends IGenericService<RptZoneHour>{
@@ -22,4 +23,12 @@ public interface IRptZoneHourService  extends IGenericService<RptZoneHour>{
 	List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap);
 	
 	DeliverAnalysis findSumOperator(Map<String, Object> paramMap);
+	
+	int countByParamsBack(Map<String, Object> paramMap);
+	
+	List<OperatorReport> findByParamsBack(Map<String, Object> paramMap, Pager pager);
+	
+	List<OperatorReport> findByParamsBack(Map<String, Object> paramMap);
+	
+	OperatorReport findSumBack(Map<String, Object> paramMap);
 }

+ 19 - 0
src/main/java/com/cloudcross/ssp/service/impl/RptZoneHourService.java

@@ -10,6 +10,7 @@ import org.springframework.stereotype.Service;
 import com.cloudcross.ssp.base.dao.GenericIBatisDao;
 import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.model.DeliverAnalysis;
+import com.cloudcross.ssp.model.OperatorReport;
 import com.cloudcross.ssp.model.RptZoneHour;
 import com.cloudcross.ssp.service.IRptZoneHourService;
 
@@ -71,4 +72,22 @@ public class RptZoneHourService implements IRptZoneHourService{
 	public List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap) {
 		return myBatisDao.getList("rptZoneHourSqlMapper.findByParams2", paramMap);
 	}
+	@Override
+	public int countByParamsBack(Map<String, Object> paramMap) {
+		return myBatisDao.get("rptZoneHourSqlMapper.countByParamsBack", paramMap);
+	}
+	@Override
+	public List<OperatorReport> findByParamsBack(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("rptZoneHourSqlMapper.findByParamsBack", paramMap);
+	}
+	@Override
+	public List<OperatorReport> findByParamsBack(Map<String, Object> paramMap) {
+		return myBatisDao.getList("rptZoneHourSqlMapper.findByParamsBack1", paramMap);
+	}
+	@Override
+	public OperatorReport findSumBack(Map<String, Object> paramMap) {
+		return myBatisDao.get("rptZoneHourSqlMapper.findSumBack", paramMap);
+	}
 }

+ 41 - 14
src/main/java/com/cloudcross/ssp/web/back/main/ad/operator/OperatorReportController.java

@@ -127,19 +127,38 @@ public class OperatorReportController extends SimpleController {
 		paramMap.put("operatorId", operatorId);
 		paramMap.put("startDate", startDate);
 		paramMap.put("endDate", endDate);
-
-		int totalRow = operatorReportService
-				.findCountForDeliverEffectAnalysis(paramMap);
-		Pager pager = new Pager();
-		pager.setPage(page);
-		pager.setTotalRow(totalRow);
-		List<OperatorReport> reportList = operatorReportService
-				.findDeliverEffectAnalysis(paramMap, pager);
-
+		
+		int totalRow = 0;
+		Pager pager = null;
+		List<OperatorReport> reportList = null;
 		OperatorReport sumReport = null;
-
-		// 根据媒体id和广告位id和时间查询总的pv,uv,广告曝光数等等
-		sumReport = operatorReportService.findSum(paramMap);
+		
+		//判断一下是一段时间还是某一天时间
+		if(startDate.equals(endDate)) {
+			totalRow = rptZoneHourService.countByParamsBack(paramMap);
+			pager = new Pager();
+			pager.setPage(page);
+			pager.setTotalRow(totalRow);
+			reportList = rptZoneHourService.findByParamsBack(paramMap, pager);
+
+			// 根据媒体id和广告位id和时间查询总的pv,uv,广告曝光数等等
+			sumReport = rptZoneHourService.findSumBack(paramMap);
+		} else {
+			totalRow = operatorReportService
+					.findCountForDeliverEffectAnalysis(paramMap);
+			pager = new Pager();
+			pager.setPage(page);
+			pager.setTotalRow(totalRow);
+			reportList = operatorReportService
+					.findDeliverEffectAnalysis(paramMap, pager);
+
+			sumReport = null;
+
+			// 根据媒体id和广告位id和时间查询总的pv,uv,广告曝光数等等
+			sumReport = operatorReportService.findSum(paramMap);
+		}
+		
+		
 
 		// 如果没有符合条件的数据则全部置0
 		if (null == sumReport) {
@@ -984,9 +1003,17 @@ public class OperatorReportController extends SimpleController {
 		paramMap.put("startDate", startDate);
 		paramMap.put("endDate", endDate);
 
-		List<OperatorReport> reportList = operatorReportService
-				.findDeliverEffectAnalysis(paramMap);
+		List<OperatorReport> reportList = null;
+		//看是一天时间还是一段时间
+		if(startDate.equals(endDate)) {
+			reportList = rptZoneHourService.findByParamsBack(paramMap);
+		} else {
+			reportList = operatorReportService
+					.findDeliverEffectAnalysis(paramMap);
 
+		}
+		
+		
 		paramMap.put("dataList", reportList);
 
 		// 如果得到了广告位id的话且广告位id不是默认的全部值,则将广告位名称添加上否则添加全部

+ 1 - 1
src/main/resources/template/excel/dataReportBack.ftl

@@ -72,7 +72,7 @@
 <#if dataList ??>
      <#list dataList as deliverAnalysis>   
 		   <Row>
-		   	 <Cell><Data ss:Type="String">${deliverAnalysis.reportDate?string('yyyy/MM/dd')}</Data></Cell>
+		   	 <Cell><Data ss:Type="String">${deliverAnalysis.reportDate?string('yyyy/MM/dd')}  <#if deliverAnalysis.hour ??>: ${deliverAnalysis.hour!} 点</#if></Data></Cell>
 	   		<Cell><Data ss:Type="String">${deliverAnalysis.pv!}</Data></Cell>
 	    	<Cell><Data ss:Type="String">${deliverAnalysis.uv!}</Data></Cell>
 	    	<Cell><Data ss:Type="String">${deliverAnalysis.impression!}</Data></Cell>

+ 1 - 1
src/main/resources/template/excel/dataReportOperator.ftl

@@ -72,7 +72,7 @@
 <#if dataList ??>
      <#list dataList as deliverAnalysis>   
 		   <Row>
-		   	 <Cell><Data ss:Type="String">${deliverAnalysis.reportDate?string('yyyy/MM/dd')}</Data></Cell>
+		   	 <Cell><Data ss:Type="String">${deliverAnalysis.reportDate?string('yyyy/MM/dd')}  <#if deliverAnalysis.hour ??>: ${deliverAnalysis.hour!} 点</#if></Data></Cell>
 	   		<Cell><Data ss:Type="String">${deliverAnalysis.pv!}</Data></Cell>
 	    	<Cell><Data ss:Type="String">${deliverAnalysis.uv!}</Data></Cell>
 	    	<Cell><Data ss:Type="String">${deliverAnalysis.impression!}</Data></Cell>

+ 1 - 1
src/main/webapp/WEB-INF/pages/back/main/ad/operator/operator-report.ftl

@@ -115,7 +115,7 @@
 			        	<#if reportList ??>
 			            <#list reportList as report>
 				        <tr id="tbodyTr">
-				        	<td class="tbodyTd">${report.reportDate!?string('yyyy/MM/dd')}</td> 
+				        	<td class="tbodyTd">${report.reportDate!?string('yyyy/MM/dd')} <#if report.hour ??>: ${report.hour!} 点</#if></td> 
 				            <td class="tbodyTd">${report.pv!}</td>
 				            <td class="tbodyTd">${report.uv!}</td>
 				            <td class="tbodyTd">${report.impression!}</td>

+ 1 - 1
src/main/webapp/WEB-INF/pages/operator/main/ad/report/advertiser-report.ftl

@@ -107,7 +107,7 @@
 			        	<#if reportList ??>
 			            <#list reportList as report>
 				        <tr id="tbodyTr">
-				        	<td class="tbodyTd">${report.reportDate!?string('yyyy/MM/dd')}</td> 
+				        	<td class="tbodyTd">${report.reportDate!?string('yyyy/MM/dd')} <#if report.hour ??>: ${report.hour!} 点</#if></td> 
 				            <td class="tbodyTd">${report.pv!}</td>
 				            <td class="tbodyTd">${report.uv!}</td>
 				            <td class="tbodyTd">${report.impression!}</td>

+ 2 - 2
src/main/webapp/assets/js/report_back.js

@@ -418,9 +418,9 @@ $(document).ready(function(){
 function exportExcel(tab,url,type){
 	var params = "?"+tab+"=1&dateRangePicker="+$("#dateRangePicker").val();
 	if(type == "back_total"){
-		params += "&selectedOperatorId"+$("#selectedOperatorId").val()+"&selectedZoneId="+$("#selectedZoneId").val();
+		params += "&selectedOperatorId="+$("#selectedOperatorId").val()+"&selectedZoneId="+$("#selectedZoneId").val();
 	}else{
-		params += "&selectedOperatorId"+$("#selectedOperatorId").val();
+		params += "&selectedOperatorId="+$("#selectedOperatorId").val();
 	}
 	$("#exportExcel").attr("href",url+params);
 }

+ 1 - 1
src/main/webapp/assets/js/report_operator.js

@@ -419,7 +419,7 @@ function exportExcel(tab,url,type){
 	if(type == "operator_total"){
 		params += "&selectedZoneId="+$("#selectedZoneId").val();
 	}else{
-		params += "&selectedOperatorId"+$("#selectedOperatorId").val();
+		params += "&selectedOperatorId="+$("#selectedOperatorId").val();
 	}
 	$("#exportExcel").attr("href",url+params);
 }