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 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
-		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">
         	and zone_id = #{zoneId}
-        </if>      
+        </if>  
 		group by hour
 		</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>

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

@@ -4,6 +4,8 @@ import java.util.List;
 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.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> 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.common.utils.Pager;
+import com.cloudcross.ssp.model.DeliverAnalysis;
 import com.cloudcross.ssp.model.RptZoneHour;
 import com.cloudcross.ssp.service.IRptZoneHourService;
 
@@ -24,14 +25,13 @@ public class RptZoneHourService implements IRptZoneHourService{
 	}
 	@Override
 	public int countByParams(Map<String, Object> paramMap) {
-		// TODO Auto-generated method stub
-		return 0;
+		return myBatisDao.get("rptZoneHourSqlMapper.countByParams", paramMap);
 	}
 	@Override
-	public List<RptZoneHour> findByParams(Map<String, Object> paramMap,
+	public List<DeliverAnalysis> findByParams1(Map<String, Object> paramMap,
 			Pager pager) {
-		// TODO Auto-generated method stub
-		return null;
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("rptZoneHourSqlMapper.findByParams1", paramMap);
 	}
 	@Override
 	public boolean add(RptZoneHour t) {
@@ -57,4 +57,18 @@ public class RptZoneHourService implements IRptZoneHourService{
 	public List<RptZoneHour> findEveryHourDataBack(Map<String, Object> 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("startDate", startDate);
 		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;
+		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
 		if (null == sumReport) {
 			DeliverAnalysis de = new DeliverAnalysis();
@@ -679,8 +693,14 @@ public class AdvertiserReportController extends SimpleController {
 		paramMap.put("endDate", endDate);
 		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);
 		response.reset();