Browse Source

媒体数据报表的更新

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

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

@@ -19,10 +19,60 @@
 		<select id="findEveryHourDataOperator" parameterType="map" resultType="com.cloudcross.ssp.model.RptZoneHour">
 		<select id="findEveryHourDataOperator" parameterType="map" resultType="com.cloudcross.ssp.model.RptZoneHour">
 		select hour,sum(pv) as pv,sum(uv) as uv, sum(impression) as impression, sum(click) as click,sum(uimpression) as uImpression,
 		select hour,sum(pv) as pv,sum(uv) as uv, sum(impression) as impression, sum(click) as click,sum(uimpression) as uImpression,
 		sum(uclick) as uClick, sum(income) as income
 		sum(uclick) as uClick, sum(income) as income
-		from t_rpt_zone_hour where operator_id = #{operatorId} and date = #{startDate}
+		from t_rpt_zone_hour where operator_id = #{operatorId}
+		and date =#{startDate} 
 		<if test="zoneId!=null">
 		<if test="zoneId!=null">
         	and zone_id = #{zoneId}
         	and zone_id = #{zoneId}
-        </if>      
+        </if>  
 		group by hour
 		group by hour
 		</select>
 		</select>
+		
+		<select id="countByParams" parameterType="map" resultType="int">
+		select count(id) from t_rpt_zone_hour
+		where operator_id = #{operatorId}
+		and date &gt;=#{startDate} and date &lt;=#{endDate}
+		<if test="zoneId!=null">
+        	and zone_id = #{zoneId}
+        </if>  
+		</select>
+		
+		<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
+        from t_rpt_zone_hour
+		where operator_id = #{operatorId}
+		and date =#{startDate} 
+		<if test="zoneId!=null">
+        	and zone_id = #{zoneId}
+        </if>  
+        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
+        from t_rpt_zone_hour
+		where operator_id = #{operatorId}
+		and date =#{startDate} 
+		<if test="zoneId!=null">
+        	and zone_id = #{zoneId}
+        </if>  
+		</select>
+		
+		<select id="findSum" parameterType="map" resultType="com.cloudcross.ssp.model.DeliverAnalysis">
+		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 operator_id = #{operatorId}
+		and date =#{startDate} 
+		<if test="zoneId!=null">
+        	and zone_id = #{zoneId}
+        </if>  
+	</select>
+		
 </mapper>
 </mapper>

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

@@ -4,6 +4,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 import com.cloudcross.ssp.base.service.IGenericService;
 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.RptZoneHour;
 import com.cloudcross.ssp.model.RptZoneHour;
 
 
 public interface IRptZoneHourService  extends IGenericService<RptZoneHour>{
 public interface IRptZoneHourService  extends IGenericService<RptZoneHour>{
@@ -13,4 +15,11 @@ public interface IRptZoneHourService  extends IGenericService<RptZoneHour>{
 	List<RptZoneHour> findEveryHourData(Map<String, Object> paramMap);
 	List<RptZoneHour> findEveryHourData(Map<String, Object> paramMap);
 
 
 	List<RptZoneHour> findEveryHourDataBack(Map<String, Object> paramMap);
 	List<RptZoneHour> findEveryHourDataBack(Map<String, Object> paramMap);
+	
+	List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap,
+			Pager pager);
+	
+	List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap);
+	
+	DeliverAnalysis findSumOperator(Map<String, Object> paramMap);
 }
 }

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

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
 
 
 import com.cloudcross.ssp.base.dao.GenericIBatisDao;
 import com.cloudcross.ssp.base.dao.GenericIBatisDao;
 import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.DeliverAnalysis;
 import com.cloudcross.ssp.model.RptZoneHour;
 import com.cloudcross.ssp.model.RptZoneHour;
 import com.cloudcross.ssp.service.IRptZoneHourService;
 import com.cloudcross.ssp.service.IRptZoneHourService;
 
 
@@ -24,14 +25,13 @@ public class RptZoneHourService implements IRptZoneHourService{
 	}
 	}
 	@Override
 	@Override
 	public int countByParams(Map<String, Object> paramMap) {
 	public int countByParams(Map<String, Object> paramMap) {
-		// TODO Auto-generated method stub
-		return 0;
+		return myBatisDao.get("rptZoneHourSqlMapper.countByParams", paramMap);
 	}
 	}
 	@Override
 	@Override
-	public List<RptZoneHour> findByParams(Map<String, Object> paramMap,
+	public List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap,
 			Pager pager) {
 			Pager pager) {
-		// TODO Auto-generated method stub
-		return null;
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("rptZoneHourSqlMapper.findByParams1", paramMap);
 	}
 	}
 	@Override
 	@Override
 	public boolean add(RptZoneHour t) {
 	public boolean add(RptZoneHour t) {
@@ -57,4 +57,18 @@ public class RptZoneHourService implements IRptZoneHourService{
 	public List<RptZoneHour> findEveryHourDataBack(Map<String, Object> paramMap) {
 	public List<RptZoneHour> findEveryHourDataBack(Map<String, Object> paramMap) {
 		return myBatisDao.getList("rptZoneHourSqlMapper.findEveryHourDataBack", paramMap);
 		return myBatisDao.getList("rptZoneHourSqlMapper.findEveryHourDataBack", paramMap);
 	}
 	}
+	@Override
+	public List<RptZoneHour> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public DeliverAnalysis findSumOperator(Map<String, Object> paramMap) {
+		return myBatisDao.get("rptZoneHourSqlMapper.findSum", paramMap);
+	}
+	@Override
+	public List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap) {
+		return myBatisDao.getList("rptZoneHourSqlMapper.findByParams2", paramMap);
+	}
 }
 }

+ 33 - 13
src/main/java/com/cloudcross/ssp/web/operator/main/ad/report/AdvertiserReportController.java

@@ -95,19 +95,33 @@ public class AdvertiserReportController extends SimpleController {
 		paramMap.put("zoneId", zoneId);
 		paramMap.put("zoneId", zoneId);
 		paramMap.put("startDate", startDate);
 		paramMap.put("startDate", startDate);
 		paramMap.put("endDate", endDate);
 		paramMap.put("endDate", endDate);
-
-		int totalRow = adReportService.findCountForDeliverEffectAnalysisOperator(paramMap);
-		Pager pager = new Pager();
-		pager.setPage(page);
-		pager.setTotalRow(totalRow);
-		List<DeliverAnalysis> reportList = adReportService
-				.findDeliverEffectAnalysisOperator(paramMap, pager);
-
+		int totalRow = 0;
+		List<DeliverAnalysis> reportList = null;
 		DeliverAnalysis sumReport = null;
 		DeliverAnalysis sumReport = null;
+		Pager pager = null;
+		
+		//如果是时间段是某一天的话则是从t_rpt_zone_hour里查询,如果是一段时间的话则是在t_rpt_zone里查询
+		if(startDate.equals(endDate)) {
+			totalRow = rptZoneHourService.countByParams(paramMap);
+			pager = new Pager();
+			pager.setPage(page);
+			pager.setTotalRow(totalRow);
+			reportList = rptZoneHourService.findByParams1(paramMap, pager);
+
+			// 根据广告位id和时间查询总的pv,uv,广告曝光数等等
+			sumReport = rptZoneHourService.findSumOperator(paramMap);
+		} else {
+			totalRow = adReportService.findCountForDeliverEffectAnalysisOperator(paramMap);
+			pager = new Pager();
+			pager.setPage(page);
+			pager.setTotalRow(totalRow);
+			reportList = adReportService
+					.findDeliverEffectAnalysisOperator(paramMap, pager);
 
 
-		// 根据广告位id和时间查询总的pv,uv,广告曝光数等等
-		sumReport = adReportService.findSumOperator(paramMap);
-
+			// 根据广告位id和时间查询总的pv,uv,广告曝光数等等
+			sumReport = adReportService.findSumOperator(paramMap);
+		}
+		
 		// 如果没有符合条件的数据则全部置0
 		// 如果没有符合条件的数据则全部置0
 		if (null == sumReport) {
 		if (null == sumReport) {
 			DeliverAnalysis de = new DeliverAnalysis();
 			DeliverAnalysis de = new DeliverAnalysis();
@@ -679,8 +693,14 @@ public class AdvertiserReportController extends SimpleController {
 		paramMap.put("endDate", endDate);
 		paramMap.put("endDate", endDate);
 		paramMap.put("zoneId", zoneId);
 		paramMap.put("zoneId", zoneId);
 		
 		
-		List<DeliverAnalysis> reportList = adReportService
-				.findDeliverEffectAnalysisOperator(paramMap);
+		List<DeliverAnalysis> reportList = null;
+		//看是某一天时间还是一段时间
+		if(startDate.equals(endDate)) {
+			 reportList = rptZoneHourService.findByParams1(paramMap);
+		} else {
+			 reportList = adReportService
+					.findDeliverEffectAnalysisOperator(paramMap);
+		}
 		
 		
 		paramMap.put("dataList", reportList);
 		paramMap.put("dataList", reportList);
 		response.reset();
 		response.reset();