Browse Source

Merge branch 'master' of gitlab.cloudcross.net:ssp/ssp_web

ying.rong 8 years ago
parent
commit
859a30d301

+ 51 - 0
src/main/java/com/cloudcross/ssp/model/mapper/report.sql.xml

@@ -1999,4 +1999,55 @@ sum(click) as totalClick, if(sum(a.impression) > 0,sum(a.click)/sum(a.impression
 		group by b.name
 		limit #{pager.offset}, #{pager.limit}
 	</select>
+	
+	<!-- 没有关联媒体的场景报表导出 -->
+	<select id="queryPlaceNameExt" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.DeliverAnalysis">
+		select d.name placeName,SUM(a.impression) impression, SUM(a.click) click,100*SUM(a.click)/SUM(a.impression) clickRate,SUM(a.visit) visit,
+		100*SUM(a.visit)/SUM(a.click) visitRate,SUM(a.conversion) conversion,100*SUM(a.conversion)/SUM(a.visit) conversionRate,SUM(a.ecpm) as ecpm, SUM(a.consume) consume
+		from t_rpt_adv_place a,t_place b,t_place_class c,t_place_class_info d,t_account e where a.place_id = b.id and b.id = c.place_id and c.place_id = d.id and e.advertiser_id = a.advertiser_id
+		<if test="agentId != null">
+			and e.agent_id  = #{agentId}
+		</if>
+		<if test="advertiserId != null">
+			and a.advertiser_id = #{advertiserId}
+		</if>
+		<if test="orderId != null">
+			and a.order_id = #{orderId}
+		</if>
+		<if test="campaignId != null">
+			and a.campaign_id = #{campaignId}
+		</if>
+		<if test="adGroupId != null">
+			and a.adgroup_id = #{adGroupId}
+		</if>
+		<if test="startDate != null and endDate != null">
+			and a.date &gt;= #{startDate} and a.date &lt;= #{endDate}
+		</if>
+		 group by d.name
+	</select>
+	
+	<select id="queryPlaceNameWithOperatorExt" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.DeliverAnalysis">
+		select b.name placeName,SUM(a.impression) impression, SUM(a.click) click,100*SUM(a.click)/SUM(a.impression) clickRate,SUM(a.visit) visit,
+		100*SUM(a.visit)/SUM(a.click) visitRate,SUM(a.conversion) conversion,100*SUM(a.conversion)/SUM(a.visit) conversionRate,SUM(a.ecpm) as ecpm, SUM(a.consume) consume
+		from t_rpt_adv_place a,t_place_operator b,t_account c  where a.place_id = b.place_id and a.advertiser_id = c.advertiser_id  
+		<if test="agentId != null">
+			and c.agent_id = #{agentId}
+		</if>
+		<if test="advertiserId != null">
+			and a.advertiser_id = #{advertiserId}
+		</if>
+		<if test="orderId != null">
+			and a.order_id = #{orderId}
+		</if>
+		<if test="campaignId != null">
+			and a.campaign_id = #{campaignId}
+		</if>
+		<if test="adGroupId != null">
+			and a.adgroup_id = #{adGroupId}
+		</if>
+		<if test="startDate != null and endDate != null">
+			and a.date &gt;= #{startDate} and a.date &lt;= #{endDate}
+		</if>
+		group by b.name
+	</select>
 </mapper>

+ 2 - 0
src/main/java/com/cloudcross/ssp/service/IAdReportService.java

@@ -156,4 +156,6 @@ public interface IAdReportService extends IGenericService<DeliverAnalysis>{
     public List<DeliverAnalysis> queryPlaceName(Map<String,Object>condition,Pager pager);
     public Integer queryPlaceCountWithOperatorId(Map<String, Object> condition);
     public List<DeliverAnalysis> queryPlaceNameWithOperatorId(Map<String, Object>condition,Pager pager);
+    public List<DeliverAnalysis> queryPlaceNameExt(Map<String, Object>condition);
+    public List<DeliverAnalysis> queryPlaceNameExtWithOperatorId(Map<String, Object>conditionr);
 }

+ 12 - 2
src/main/java/com/cloudcross/ssp/service/impl/AdReportService.java

@@ -606,13 +606,23 @@ public class AdReportService implements IAdReportService {
 	}
 	
 	public Integer queryPlaceCountWithOperatorId(Map<String, Object> condition) {
-		return iBatisDao.get("adReportSqlMapper.queryPlaceCount", condition);
+		return iBatisDao.get("adReportSqlMapper.queryPlaceCountWithOperator", condition);
 	}
 	
 	
 	public List<DeliverAnalysis> queryPlaceNameWithOperatorId(Map<String, Object> condition,Pager pager) {
 		condition.put("pager", pager);
-		return iBatisDao.getList("adReportSqlMapper.queryPlaceName", condition);
+		return iBatisDao.getList("adReportSqlMapper.queryPlaceNameWithOperator", condition);
+	}
+
+	@Override
+	public List<DeliverAnalysis> queryPlaceNameExt(Map<String, Object> condition) {
+		return iBatisDao.getList("adReportSqlMapper.queryPlaceNameExt", condition);
+	}
+
+	@Override
+	public List<DeliverAnalysis> queryPlaceNameExtWithOperatorId(Map<String, Object> condition) {
+		return iBatisDao.getList("adReportSqlMapper.queryPlaceNameWithOperatorExt", condition);
 	}
 
 	

+ 25 - 1
src/main/java/com/cloudcross/ssp/web/advertiser/main/ad/report/AdvertiserReportController.java

@@ -1307,7 +1307,31 @@ public class AdvertiserReportController extends SimpleController {
 		}
 		if(paramMap.containsKey("place")) {
 			paramMap.put("place", "place");
-			reportList = adReportService.findByPlaceName(paramMap);
+			//场景报表,判断是否关联了运营商
+			Account account = getLoginUser();
+			if(account.getAdvertiserId() != 0){
+				paramMap.put("advertiserId", account.getAdvertiserId());
+			}
+			Long operatorId = getLoginUser().getOperatorId();
+			if(operatorId == 0){//当前账户没有关联媒体,显示大场景
+				reportList = adReportService.queryPlaceNameExt(paramMap);
+			}else{//当前账户关联了媒体,显示媒体自己的场景
+				reportList = adReportService.queryPlaceNameExtWithOperatorId(paramMap);
+			}
+			if(reportList.size()>0){
+				int impressionSum = 0;
+				//场景总曝光数
+				for(DeliverAnalysis d:reportList){
+					impressionSum += d.getImpression();
+				}
+				double impressionRate = 0d;
+				if(impressionSum != 0){
+					for(DeliverAnalysis de:reportList){
+						impressionRate = 100.0*de.getImpression()/impressionSum;
+						de.setImpressionRate(impressionRate);
+					}
+				}
+			}
 		}
 		paramMap.put("dataList", reportList);
 		response.reset();

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

@@ -97,7 +97,7 @@
 				            <th class="theadTh hidden-consume" style="width:18%" colspan=2>花费</th>
 						</tr>
 						<tr class="theadTr">
-			               	<td class="theadTd" style="width:10%">场景</td>     
+			               	<td class="theadTd" style="width:10%"></td>     
 			                <td class="theadTd hidden-impression" style="width:9%">曝光占比</td>
 			                <td class="theadTd hidden-impression" style="width:9%">曝光数</td>
 			                <td class="theadTd hidden-click" style="width:9%">点击数</td>