|
@@ -784,166 +784,175 @@ public class AdvertiserReportController extends SimpleController {
|
|
|
|
|
|
//下面是场景报表
|
|
|
@RequestMapping("/sceneReport")
|
|
|
- public String sceneReport(Model model,
|
|
|
- @RequestParam HashMap<String, Object> paramMap,
|
|
|
- @RequestParam(defaultValue="1") int page) {
|
|
|
+ public String sceneReport(Model model,@RequestParam HashMap<String, Object> paramMap,@RequestParam(defaultValue="1") int page) {
|
|
|
|
|
|
//日期
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- String startDate = null;
|
|
|
- String endDate = null;
|
|
|
-
|
|
|
- //广告主,订单,活动,投放
|
|
|
- Long advertiserId = null;
|
|
|
- Long orderId = null;
|
|
|
- Long campaignId = null;
|
|
|
- Long adGroupId = null;
|
|
|
-
|
|
|
- String advertiserName = "全部广告主";
|
|
|
- String orderName = "全部订单";
|
|
|
- String campaignName = "全部活动";
|
|
|
- String adGroupName = "全部投放";
|
|
|
- /**
|
|
|
- * 下面对下拉框中传进来的值进行判断,若是未操作,则为空值,前端设置时默认为全部(-1)
|
|
|
- * 注意前后层次关系,同时要考虑到登录帐号权限问题,此时暂未考虑
|
|
|
- * 下拉框传值Id需要同步
|
|
|
- */
|
|
|
-
|
|
|
- //广告主选择与否
|
|
|
- if (null == paramMap.get("selectedadvertiserId")
|
|
|
- || "".equals(paramMap.get("selectedadvertiserId"))) {
|
|
|
- advertiserId = null;
|
|
|
- advertiserName = "全部广告主";
|
|
|
- } else {
|
|
|
- // 如果要查询的是所有广告主则让广告主id为空
|
|
|
- if (-1 == Long.parseLong((String) paramMap
|
|
|
- .get("selectedadvertiserId"))) {
|
|
|
- advertiserId = null;
|
|
|
- advertiserName = "全部广告主";
|
|
|
- } else {
|
|
|
- advertiserId = Long.parseLong((String) paramMap
|
|
|
- .get("selectedadvertiserId"));
|
|
|
- advertiserName = advertiserService.findById(advertiserId).getName();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //订单选择与否
|
|
|
- if (null == paramMap.get("selectedorderId")
|
|
|
- || "".equals(paramMap.get("selectedorderId"))) {
|
|
|
- orderId = null;
|
|
|
- orderName = "全部订单";
|
|
|
- } else {
|
|
|
- if (-1 == Long.parseLong((String) paramMap
|
|
|
- .get("selectedorderId"))) {
|
|
|
- orderId = null;
|
|
|
- orderName = "全部订单";
|
|
|
- } else {
|
|
|
- orderId = Long.parseLong((String) paramMap
|
|
|
- .get("selectedorderId"));
|
|
|
- orderName = orderService.findById(orderId).getName();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //活动选择与否
|
|
|
- if (null == paramMap.get("selectedcampaignId")
|
|
|
- || "".equals(paramMap.get("selectedcampaignId"))) {
|
|
|
- campaignId = null;
|
|
|
- campaignName = "全部活动";
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String startDate = null;
|
|
|
+ String endDate = null;
|
|
|
+
|
|
|
+ //广告主,订单,活动,投放
|
|
|
+ Long advertiserId = null;
|
|
|
+ Long orderId = null;
|
|
|
+ Long campaignId = null;
|
|
|
+ Long adGroupId = null;
|
|
|
+
|
|
|
+ String advertiserName = "全部广告主";
|
|
|
+ String orderName = "全部订单";
|
|
|
+ String campaignName = "全部活动";
|
|
|
+ String adGroupName = "全部投放";
|
|
|
+ /**
|
|
|
+ * 下面对下拉框中传进来的值进行判断,若是未操作,则为空值,前端设置时默认为全部(-1)
|
|
|
+ * 注意前后层次关系,同时要考虑到登录帐号权限问题,此时暂未考虑
|
|
|
+ * 下拉框传值Id需要同步
|
|
|
+ */
|
|
|
+
|
|
|
+ //广告主选择与否
|
|
|
+ if (null == paramMap.get("selectedadvertiserId")
|
|
|
+ || "".equals(paramMap.get("selectedadvertiserId"))) {
|
|
|
+ advertiserId = null;
|
|
|
+ advertiserName = "全部广告主";
|
|
|
+ } else {
|
|
|
+ // 如果要查询的是所有广告主则让广告主id为空
|
|
|
+ if (-1 == Long.parseLong((String) paramMap
|
|
|
+ .get("selectedadvertiserId"))) {
|
|
|
+ advertiserId = null;
|
|
|
+ advertiserName = "全部广告主";
|
|
|
} else {
|
|
|
- if (-1 == Long.parseLong((String) paramMap
|
|
|
- .get("selectedcampaignId"))) {
|
|
|
- campaignId = null;
|
|
|
- campaignName = "全部活动";
|
|
|
- } else {
|
|
|
- campaignId = Long.parseLong((String) paramMap
|
|
|
- .get("selectedcampaignId"));
|
|
|
- campaignName = campaignService.findById(campaignId).getName();
|
|
|
- }
|
|
|
+ advertiserId = Long.parseLong((String) paramMap
|
|
|
+ .get("selectedadvertiserId"));
|
|
|
+ advertiserName = advertiserService.findById(advertiserId).getName();
|
|
|
}
|
|
|
-
|
|
|
- //投放选择与否
|
|
|
- if (null == paramMap.get("selectedadGroupId")
|
|
|
- || "".equals(paramMap.get("selectedadGroupId"))) {
|
|
|
- adGroupId = null;
|
|
|
- adGroupName = "全部投放";
|
|
|
- } else {
|
|
|
- if (-1 == Long.parseLong((String) paramMap
|
|
|
- .get("selectedadGroupId"))) {
|
|
|
- adGroupId = null;
|
|
|
- adGroupName = "全部投放";
|
|
|
- } else {
|
|
|
- adGroupId = Long.parseLong((String) paramMap
|
|
|
- .get("selectedadGroupId"));
|
|
|
- adGroupName = adGroupService.findById(adGroupId).getAdGroupName();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //判断日期是否为默认值昨天,日期格式与上面相统一,用 to 分割
|
|
|
- if (null == paramMap.get("dateRangePicker")
|
|
|
- || "".equals(paramMap.get("dateRangePicker"))) {
|
|
|
- startDate = endDate = sdf.format(new Date((new Date())
|
|
|
- .getTime() - 24 * 60 * 60 * 1000));
|
|
|
- } else {
|
|
|
- String[] choosedDate = ((String) paramMap
|
|
|
- .get("dateRangePicker")).split("to");
|
|
|
- startDate = choosedDate[0].trim();
|
|
|
- endDate = choosedDate[1].trim();
|
|
|
- }
|
|
|
-
|
|
|
- paramMap.put("advertiserId", advertiserId);
|
|
|
- paramMap.put("orderId", orderId);
|
|
|
- paramMap.put("campaignId", campaignId);
|
|
|
- paramMap.put("adGroupId", adGroupId);
|
|
|
- paramMap.put("selectedadvertiserName", advertiserName);
|
|
|
- paramMap.put("selectedorderName", orderName);
|
|
|
- paramMap.put("selectedcampaignName", campaignName);
|
|
|
- paramMap.put("selectedadGroupName", adGroupName);
|
|
|
- paramMap.put("startDate", startDate);
|
|
|
- paramMap.put("endDate", endDate);
|
|
|
-
|
|
|
- //查询搜索对应的数据
|
|
|
- int totalRow = adReportService.findCountForScene(paramMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单选择与否
|
|
|
+ if (null == paramMap.get("selectedorderId")
|
|
|
+ || "".equals(paramMap.get("selectedorderId"))) {
|
|
|
+ orderId = null;
|
|
|
+ orderName = "全部订单";
|
|
|
+ } else {
|
|
|
+ if (-1 == Long.parseLong((String) paramMap
|
|
|
+ .get("selectedorderId"))) {
|
|
|
+ orderId = null;
|
|
|
+ orderName = "全部订单";
|
|
|
+ } else {
|
|
|
+ orderId = Long.parseLong((String) paramMap
|
|
|
+ .get("selectedorderId"));
|
|
|
+ orderName = orderService.findById(orderId).getName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //活动选择与否
|
|
|
+ if (null == paramMap.get("selectedcampaignId")
|
|
|
+ || "".equals(paramMap.get("selectedcampaignId"))) {
|
|
|
+ campaignId = null;
|
|
|
+ campaignName = "全部活动";
|
|
|
+ } else {
|
|
|
+ if (-1 == Long.parseLong((String) paramMap
|
|
|
+ .get("selectedcampaignId"))) {
|
|
|
+ campaignId = null;
|
|
|
+ campaignName = "全部活动";
|
|
|
+ } else {
|
|
|
+ campaignId = Long.parseLong((String) paramMap
|
|
|
+ .get("selectedcampaignId"));
|
|
|
+ campaignName = campaignService.findById(campaignId).getName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //投放选择与否
|
|
|
+ if (null == paramMap.get("selectedadGroupId")
|
|
|
+ || "".equals(paramMap.get("selectedadGroupId"))) {
|
|
|
+ adGroupId = null;
|
|
|
+ adGroupName = "全部投放";
|
|
|
+ } else {
|
|
|
+ if (-1 == Long.parseLong((String) paramMap
|
|
|
+ .get("selectedadGroupId"))) {
|
|
|
+ adGroupId = null;
|
|
|
+ adGroupName = "全部投放";
|
|
|
+ } else {
|
|
|
+ adGroupId = Long.parseLong((String) paramMap
|
|
|
+ .get("selectedadGroupId"));
|
|
|
+ adGroupName = adGroupService.findById(adGroupId).getAdGroupName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断日期是否为默认值昨天,日期格式与上面相统一,用 to 分割
|
|
|
+ if (null == paramMap.get("dateRangePicker")
|
|
|
+ || "".equals(paramMap.get("dateRangePicker"))) {
|
|
|
+ startDate = endDate = sdf.format(new Date((new Date())
|
|
|
+ .getTime() - 24 * 60 * 60 * 1000));
|
|
|
+ } else {
|
|
|
+ String[] choosedDate = ((String) paramMap
|
|
|
+ .get("dateRangePicker")).split("to");
|
|
|
+ startDate = choosedDate[0].trim();
|
|
|
+ endDate = choosedDate[1].trim();
|
|
|
+ }
|
|
|
+
|
|
|
+ paramMap.put("advertiserId", advertiserId);
|
|
|
+ paramMap.put("orderId", orderId);
|
|
|
+ paramMap.put("campaignId", campaignId);
|
|
|
+ paramMap.put("adGroupId", adGroupId);
|
|
|
+ paramMap.put("selectedadvertiserName", advertiserName);
|
|
|
+ paramMap.put("selectedorderName", orderName);
|
|
|
+ paramMap.put("selectedcampaignName", campaignName);
|
|
|
+ paramMap.put("selectedadGroupName", adGroupName);
|
|
|
+ paramMap.put("startDate", startDate);
|
|
|
+ paramMap.put("endDate", endDate);
|
|
|
+
|
|
|
+ //查询搜索对应的数据
|
|
|
+ int totalRow = 0;
|
|
|
+ List<DeliverAnalysis> reportList = null;
|
|
|
+ Pager pager = new Pager();
|
|
|
+ pager.setPage(page);
|
|
|
+ Account account = getLoginUser();
|
|
|
+ paramMap.put("agentId", account.getAgentId());
|
|
|
+ if(account.getAdvertiserId() != 0){
|
|
|
+ paramMap.put("advertiserId", account.getAdvertiserId());
|
|
|
+ }
|
|
|
+ Long operatorId = getLoginUser().getOperatorId();
|
|
|
+ if(operatorId == 0){//当前账户没有关联媒体,显示大场景
|
|
|
+ totalRow = adReportService.queryPlaceCount(paramMap);
|
|
|
+ pager.setTotalRow(totalRow);
|
|
|
+ reportList = adReportService.queryPlaceName(paramMap,pager);
|
|
|
+ }else{//当前账户关联了媒体,显示媒体自己的场景
|
|
|
+ totalRow = adReportService.queryPlaceCountWithOperatorId(paramMap);
|
|
|
+ pager.setTotalRow(totalRow);
|
|
|
+ reportList = adReportService.queryPlaceNameWithOperatorId(paramMap, pager);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(reportList.size() == 0){
|
|
|
+ DeliverAnalysis map = new DeliverAnalysis();
|
|
|
+ DeliverAnalysis deliver = new DeliverAnalysis();
|
|
|
+ deliver.setImpression(0);
|
|
|
+ deliver.setClick(0);
|
|
|
+ deliver.setVisit(0);
|
|
|
+ deliver.setConversion(0);
|
|
|
+ deliver.setConsume(0);
|
|
|
+ deliver.seteCmp(0);
|
|
|
+ deliver.setClickRate(0);
|
|
|
+ deliver.setVisitRate(0);
|
|
|
+ deliver.setConversionRate(0);
|
|
|
+ map = deliver;
|
|
|
+ model.addAttribute("reportMap", map);
|
|
|
+ }else{
|
|
|
+ int impressionSum = 0;
|
|
|
+ //场景总曝光数
|
|
|
+ for(DeliverAnalysis d:reportList){
|
|
|
+ impressionSum += d.getImpression();
|
|
|
+ }
|
|
|
+ double impressionRate = 0d;
|
|
|
+ for(DeliverAnalysis de:reportList){
|
|
|
+ impressionRate = 100.0*de.getImpression()/impressionSum;
|
|
|
+ de.setImpressionRate(impressionRate);
|
|
|
+ }
|
|
|
|
|
|
- Pager pager = new Pager();
|
|
|
- pager.setPage(page);
|
|
|
- pager.setTotalRow(totalRow);
|
|
|
-
|
|
|
- List<DeliverAnalysis> reportList = adReportService.findByPlaceName(paramMap, pager);
|
|
|
-
|
|
|
- if(reportList.size() == 0){
|
|
|
- DeliverAnalysis map = new DeliverAnalysis();
|
|
|
- DeliverAnalysis deliver = new DeliverAnalysis();
|
|
|
- deliver.setImpression(0);
|
|
|
- deliver.setClick(0);
|
|
|
- deliver.setVisit(0);
|
|
|
- deliver.setConversion(0);
|
|
|
- deliver.setConsume(0);
|
|
|
- deliver.seteCmp(0);
|
|
|
- deliver.setClickRate(0);
|
|
|
- deliver.setVisitRate(0);
|
|
|
- deliver.setConversionRate(0);
|
|
|
- map = deliver;
|
|
|
- model.addAttribute("reportMap", map);
|
|
|
- }else {
|
|
|
- //数据报表中第一栏 全部 的显示
|
|
|
- HashMap<String,Double> map = new HashMap<String,Double>();
|
|
|
- map.put("impressionSum", reportList.get(0).getImpressionSum());
|
|
|
- map.put("clickSum", reportList.get(0).getClickSum());
|
|
|
- map.put("visitSum", reportList.get(0).getVisitSum());
|
|
|
- map.put("conversionSum", reportList.get(0).getConversionSum());
|
|
|
- map.put("consumeSum", reportList.get(0).getConsumeSum());
|
|
|
- map.put("eCmpSum", reportList.get(0).geteCmpSum());
|
|
|
- map.put("clickRatesum", reportList.get(0).getClickRatesum());
|
|
|
- map.put("visitRatesum", reportList.get(0).getVisitRatesum());
|
|
|
- map.put("conversionRatesum", reportList.get(0).getConversionRatesum());
|
|
|
- model.addAttribute("reportMap", map);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- model.addAllAttributes(paramMap);
|
|
|
- model.addAttribute("pager", pager);
|
|
|
- model.addAttribute("reportList", reportList);
|
|
|
- return page("sceneReport");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ model.addAllAttributes(paramMap);
|
|
|
+ model.addAttribute("pager", pager);
|
|
|
+ model.addAttribute("reportList", reportList);
|
|
|
+ return page("sceneReport");
|
|
|
}
|
|
|
|
|
|
//数据报表导出
|