Browse Source

实现类的整合

Signed-off-by: you.chen <you.chen@cloudcross.com>
you.chen 9 years ago
parent
commit
15e866b2cf
79 changed files with 7815 additions and 159 deletions
  1. 5 8
      src/main/java/com/cloudcross/ssp/advertiser/service/impl/AdGroupService.java
  2. 2 1
      src/main/java/com/cloudcross/ssp/common/utils/AdvertiserScheduleAclsUtis.java
  3. 192 0
      src/main/java/com/cloudcross/ssp/common/utils/CopyOfAdvertiserScheduleAclsUtis.java
  4. 196 0
      src/main/java/com/cloudcross/ssp/common/utils/CopyOfOperatorScheduleAclsUtis.java
  5. 1 1
      src/main/java/com/cloudcross/ssp/common/utils/OperatorScheduleAclsUtis.java
  6. 11 40
      src/main/java/com/cloudcross/ssp/model/mapper/account.sql.xml
  7. 2 2
      src/main/java/com/cloudcross/ssp/model/mapper/ad-group.sql.xml
  8. 39 10
      src/main/java/com/cloudcross/ssp/model/mapper/banner-template.sql.xml
  9. 14 15
      src/main/java/com/cloudcross/ssp/model/mapper/banner.sql.xml
  10. 4 15
      src/main/java/com/cloudcross/ssp/model/mapper/codeClass.sql.xml
  11. 2 15
      src/main/java/com/cloudcross/ssp/model/mapper/codeConvert.sql.xml
  12. 5 5
      src/main/java/com/cloudcross/ssp/operator/service/impl/AdGroupService.java
  13. 17 0
      src/main/java/com/cloudcross/ssp/service/IAccountService.java
  14. 10 2
      src/main/java/com/cloudcross/ssp/service/IAdGroupService.java
  15. 34 34
      src/main/java/com/cloudcross/ssp/service/IAdReportService.java
  16. 3 0
      src/main/java/com/cloudcross/ssp/service/IAdvAgentService.java
  17. 4 1
      src/main/java/com/cloudcross/ssp/service/IAdvBalanceService.java
  18. 9 0
      src/main/java/com/cloudcross/ssp/service/IAdvertiserService.java
  19. 1 1
      src/main/java/com/cloudcross/ssp/service/IAuditBannerService.java
  20. 6 3
      src/main/java/com/cloudcross/ssp/service/IBannerService.java
  21. 6 1
      src/main/java/com/cloudcross/ssp/service/ICodeClassService.java
  22. 7 1
      src/main/java/com/cloudcross/ssp/service/ICodeConvertService.java
  23. 1 2
      src/main/java/com/cloudcross/ssp/service/IDimensionService.java
  24. 6 0
      src/main/java/com/cloudcross/ssp/service/IOperatorBalanceService.java
  25. 1 1
      src/main/java/com/cloudcross/ssp/service/IOperatorReportService.java
  26. 10 0
      src/main/java/com/cloudcross/ssp/service/IOperatorService.java
  27. 8 0
      src/main/java/com/cloudcross/ssp/service/IOrderService.java
  28. 1 1
      src/main/java/com/cloudcross/ssp/service/IPlaceOperatorService.java
  29. 2 0
      src/main/java/com/cloudcross/ssp/service/IRptZoneHourService.java
  30. 3 0
      src/main/java/com/cloudcross/ssp/service/IWifiService.java
  31. 5 0
      src/main/java/com/cloudcross/ssp/service/IZoneService.java
  32. 212 0
      src/main/java/com/cloudcross/ssp/service/impl/AccountService.java
  33. 64 0
      src/main/java/com/cloudcross/ssp/service/impl/AclsService.java
  34. 75 0
      src/main/java/com/cloudcross/ssp/service/impl/AdGroupPlaceService.java
  35. 73 0
      src/main/java/com/cloudcross/ssp/service/impl/AdGroupScheduleService.java
  36. 878 0
      src/main/java/com/cloudcross/ssp/service/impl/AdGroupService.java
  37. 70 0
      src/main/java/com/cloudcross/ssp/service/impl/AdGroupZoneService.java
  38. 577 0
      src/main/java/com/cloudcross/ssp/service/impl/AdReportService.java
  39. 84 0
      src/main/java/com/cloudcross/ssp/service/impl/AdvAgentService.java
  40. 127 0
      src/main/java/com/cloudcross/ssp/service/impl/AdvBalanceService.java
  41. 404 0
      src/main/java/com/cloudcross/ssp/service/impl/AdvertiserService.java
  42. 138 0
      src/main/java/com/cloudcross/ssp/service/impl/AuditBannerService.java
  43. 104 0
      src/main/java/com/cloudcross/ssp/service/impl/AuditService.java
  44. 356 0
      src/main/java/com/cloudcross/ssp/service/impl/BannerService.java
  45. 257 0
      src/main/java/com/cloudcross/ssp/service/impl/BannerTemplateService.java
  46. 229 0
      src/main/java/com/cloudcross/ssp/service/impl/CampaignService.java
  47. 136 0
      src/main/java/com/cloudcross/ssp/service/impl/ClientAccountService.java
  48. 7 0
      src/main/java/com/cloudcross/ssp/service/impl/CloneBanner.java
  49. 132 0
      src/main/java/com/cloudcross/ssp/service/impl/CodeClassService.java
  50. 132 0
      src/main/java/com/cloudcross/ssp/service/impl/CodeConvertService.java
  51. 81 0
      src/main/java/com/cloudcross/ssp/service/impl/CodeSiteService.java
  52. 92 0
      src/main/java/com/cloudcross/ssp/service/impl/DimensionService.java
  53. 83 0
      src/main/java/com/cloudcross/ssp/service/impl/DirectService.java
  54. 68 0
      src/main/java/com/cloudcross/ssp/service/impl/FinanceService.java
  55. 88 0
      src/main/java/com/cloudcross/ssp/service/impl/IndustryService.java
  56. 58 0
      src/main/java/com/cloudcross/ssp/service/impl/LocationService.java
  57. 102 0
      src/main/java/com/cloudcross/ssp/service/impl/LogService.java
  58. 62 0
      src/main/java/com/cloudcross/ssp/service/impl/MessageReadService.java
  59. 109 0
      src/main/java/com/cloudcross/ssp/service/impl/MessageService.java
  60. 312 0
      src/main/java/com/cloudcross/ssp/service/impl/ObjectBase.java
  61. 129 0
      src/main/java/com/cloudcross/ssp/service/impl/OperatorBalanceService.java
  62. 194 0
      src/main/java/com/cloudcross/ssp/service/impl/OperatorReportService.java
  63. 115 0
      src/main/java/com/cloudcross/ssp/service/impl/OperatorService.java
  64. 231 0
      src/main/java/com/cloudcross/ssp/service/impl/OrderService.java
  65. 76 0
      src/main/java/com/cloudcross/ssp/service/impl/PlaceOperatorService.java
  66. 63 0
      src/main/java/com/cloudcross/ssp/service/impl/PlaceService.java
  67. 148 0
      src/main/java/com/cloudcross/ssp/service/impl/ResourcesService.java
  68. 108 0
      src/main/java/com/cloudcross/ssp/service/impl/RolesService.java
  69. 70 0
      src/main/java/com/cloudcross/ssp/service/impl/RptAdvertiserHourService.java
  70. 60 0
      src/main/java/com/cloudcross/ssp/service/impl/RptZoneHourService.java
  71. 71 0
      src/main/java/com/cloudcross/ssp/service/impl/RptZoneService.java
  72. 82 0
      src/main/java/com/cloudcross/ssp/service/impl/SizeService.java
  73. 57 0
      src/main/java/com/cloudcross/ssp/service/impl/SystemReportService.java
  74. 57 0
      src/main/java/com/cloudcross/ssp/service/impl/TypeReportService.java
  75. 71 0
      src/main/java/com/cloudcross/ssp/service/impl/UserLoginService.java
  76. 216 0
      src/main/java/com/cloudcross/ssp/service/impl/WifiService.java
  77. 81 0
      src/main/java/com/cloudcross/ssp/service/impl/ZoneDomainService.java
  78. 76 0
      src/main/java/com/cloudcross/ssp/service/impl/ZoneIndustryService.java
  79. 193 0
      src/main/java/com/cloudcross/ssp/service/impl/ZoneService.java

+ 5 - 8
src/main/java/com/cloudcross/ssp/advertiser/service/impl/AdGroupService.java

@@ -1,6 +1,5 @@
 package com.cloudcross.ssp.advertiser.service.impl;
 
-import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -30,12 +29,10 @@ import com.cloudcross.ssp.advertiser.service.ILocationService;
 import com.cloudcross.ssp.base.dao.GenericIBatisDao;
 import com.cloudcross.ssp.common.consts.AdvertiserDirectType;
 import com.cloudcross.ssp.common.consts.DirectType;
-import com.cloudcross.ssp.common.utils.AdvertiserScheduleAclsUtis;
 import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.CopyOfAdvertiserScheduleAclsUtis;
 import com.cloudcross.ssp.common.utils.MapBuilder;
 import com.cloudcross.ssp.common.utils.Pager;
-import com.cloudcross.ssp.common.utils.ScheduleAclsUtis;
-import com.cloudcross.ssp.common.utils.SqlHelper;
 import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
 import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
 
@@ -232,14 +229,14 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 			
 			if(uiType == AdvertiserDirectType.timeType) {
 				// 将数据批量存入排期表
-		        List<AdGroupSchedule> scheduleList = AdvertiserScheduleAclsUtis.getScheduleList(
+		        List<AdGroupSchedule> scheduleList = CopyOfAdvertiserScheduleAclsUtis.getScheduleList(
 		            adGroupId, (String) targetParamsMap.get(uiKey));
 		        
 		        //调用接口batchschedule  
 		        adGroupScheduleService.batchAdd(scheduleList);
 		        
 		        //将时间排期的数据转化为后台需要的数据格式
-		        String data = AdvertiserScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		        String data = CopyOfAdvertiserScheduleAclsUtis.scheduleRoleStr(scheduleList);
 		        
 		        if(data != null && data.trim() != ""){
 		        	data = data.concat("@Asia/Shanghai");
@@ -312,12 +309,12 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 				
 		        if(uiType == AdvertiserDirectType.timeType) {
 		         // 将数据批量存入排期表
-		          List<AdGroupSchedule> scheduleList = AdvertiserScheduleAclsUtis.getScheduleList(
+		          List<AdGroupSchedule> scheduleList = CopyOfAdvertiserScheduleAclsUtis.getScheduleList(
 		              adGroup.getId(), (String) targetParamsMap.get(uiKey));
 		         
 		          //调用接口batchschedule
 		          adGroupScheduleService.batchAdd(scheduleList);
-		          String data = AdvertiserScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		          String data = CopyOfAdvertiserScheduleAclsUtis.scheduleRoleStr(scheduleList);
 		          if(data != null && data.trim() != ""){
 		          	data = data.concat("@Asia/Shanghai");
 		          }

+ 2 - 1
src/main/java/com/cloudcross/ssp/common/utils/AdvertiserScheduleAclsUtis.java

@@ -12,7 +12,8 @@ import net.sf.json.JSONObject;
 
 import org.apache.commons.lang.StringUtils;
 
-import com.cloudcross.ssp.advertiser.model.AdGroupSchedule;
+import com.cloudcross.ssp.model.AdGroupSchedule;
+
 
 
 

+ 192 - 0
src/main/java/com/cloudcross/ssp/common/utils/CopyOfAdvertiserScheduleAclsUtis.java

@@ -0,0 +1,192 @@
+package com.cloudcross.ssp.common.utils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.cloudcross.ssp.advertiser.model.AdGroupSchedule;
+
+
+
+
+
+/**
+ * 排期定向工具类
+ * 
+ * @author tonglili
+ * 
+ */
+public class CopyOfAdvertiserScheduleAclsUtis {
+  private static final String NODEHOUR = "-1";
+
+  /**
+   * 获得排期信息列表
+   * 
+   * @author tonglili
+   * @param adGroupId
+   * @param scheduleStr
+   * @return 排期信息列表
+   */
+  public static List<AdGroupSchedule> getScheduleList(long adGroupId,
+      String scheduleStr) {
+    Date now = new Date();
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    List<AdGroupSchedule> scheduleList = new ArrayList<AdGroupSchedule>();
+    JSONArray scheduleArray = JSONArray.fromObject(scheduleStr);
+    for (Object object : scheduleArray) {
+    	AdGroupSchedule schedule = (AdGroupSchedule) JSONObject.toBean((JSONObject) object,
+    			AdGroupSchedule.class);
+      schedule.setAdGroupId(adGroupId);
+      schedule.setUpdated(now);
+      try {
+    	  if(schedule.getDehours() == null || "".equals(schedule.getDehours().trim())  || schedule.getDehours().equals(NODEHOUR)){
+    		  schedule.setDehours("");
+    	  }
+        schedule.setBeginDate(sf.parse(schedule.getStartDate()));
+        schedule.setsEndDate(sf.parse(schedule.getEndDate()));
+      } catch (ParseException e) {
+        e.printStackTrace();
+      }
+      scheduleList.add(schedule);
+      /*
+      if (!schedule.getDehours().equals(NODEHOUR)) {
+        scheduleList.add(schedule);
+      }*/
+    }
+    return scheduleList;
+  }
+
+  public static List<Date> findDates(Date dBegin, Date dEnd) {
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    try {
+      dBegin = sf.parse(sf.format(dBegin));
+      dEnd = sf.parse(sf.format(dEnd));
+    } catch (ParseException e) {
+      System.out.println(e.getLocalizedMessage());
+      return null;
+    }
+    List<Date> lDate = new ArrayList<Date>();
+    lDate.add(dBegin);
+    Calendar calBegin = Calendar.getInstance();
+    // 使用给定的 Date 设置此 Calendar 的时间
+    calBegin.setTime(dBegin);
+    Calendar calEnd = Calendar.getInstance();
+    // 使用给定的 Date 设置此 Calendar 的时间
+    calEnd.setTime(dEnd);
+    // 测试此日期是否在指定日期之后
+    while (dEnd.after(calBegin.getTime())) {
+      // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
+      calBegin.add(Calendar.DAY_OF_MONTH, 1);
+      lDate.add(calBegin.getTime());
+    }
+    return lDate;
+  }
+
+  /**
+   * 获得排期定向时间值
+   * 
+   * @author tonglili
+   * @param scheduleList
+   *          排期对象列表
+   * @return 排期定向时间值
+   */
+  public static String scheduleRoleStr(List<AdGroupSchedule> scheduleList) {
+
+    if (null == scheduleList || scheduleList.size() == 0) {
+      return "";
+    }
+    List<String> returnList = new ArrayList<String>();
+    for (AdGroupSchedule schedule : scheduleList) {
+    	if(schedule.getDehours() == null || "".equalsIgnoreCase(schedule.getDehours().trim()) ||  schedule.getDehours().equals(NODEHOUR)){
+    		continue;
+    	}
+      String scheduleStr = scheduleRoleStr(schedule.getBeginDate(),
+          schedule.getsEndDate(), schedule.getDehours());
+
+      if (null != scheduleStr) {
+        returnList.add(scheduleStr);
+      }
+    }
+    
+    return StringUtils.join(returnList.toArray(), ",");
+  }
+
+  /**
+   * 获得排期时间定向值
+   * 
+   * @author tonglili
+   * @param startDate
+   *          开始时间(yyyy-MM-dd)
+   * @param endDate
+   *          结束时间(yyyy-MM-dd)
+   * @param dehours
+   *          时间段
+   * @return 排期定向值
+   */
+  public static String scheduleRoleStr(Date startDate, Date endDate,
+      String dehours) {
+    List<String> scheduleList = new ArrayList<String>();
+    List<Date> dateList = findDates(startDate, endDate);
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    String[] hours = dehours.split(",");
+    //for (int i = 0; i < hours.length; i++) {
+    //  String hour = hours[i];
+     // if (!hour.equals(NODEHOUR))
+        for (Date date : dateList) {
+        	String s = sf.format(date);
+        	for (int i = 0; i < hours.length; i++) {
+        		String hour = hours[i];
+        		if (!hour.equals(NODEHOUR)){
+        			s = s.concat("_").concat(hour);
+        		}
+        	}
+          //String s = sf.format(date).concat("_").concat(hour);
+          scheduleList.add(s);
+        }
+    String returnStr = StringUtils.join(scheduleList.toArray(), ",");
+    System.out.println(returnStr);
+    return returnStr;
+  }
+  
+  /*
+  public static String scheduleRoleStr(Date startDate, Date endDate,
+	      String dehours) {
+	    List<String> scheduleList = new ArrayList<String>();
+	    List<Date> dateList = findDates(startDate, endDate);
+	    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+	    String[] hours = dehours.split(",");
+	    for (int i = 0; i < hours.length; i++) {
+	      String hour = hours[i];
+	      if (!hour.equals(NODEHOUR))
+	        for (Date date : dateList) {
+
+	          String s = sf.format(date).concat("_").concat(hour);
+	          scheduleList.add(s);
+	        }
+	    }
+	    String returnStr = StringUtils.join(scheduleList.toArray(), ",");
+	    System.out.println(returnStr);
+	    return returnStr;
+	  }*/
+
+  /**
+   * 例子
+   * 
+   * @param args
+   * @throws ParseException
+   */
+  public static void main(String[] args) throws ParseException {
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    Date s = sf.parse("2015-01-26");
+    Date e = sf.parse("2015-02-29");
+    scheduleRoleStr(s, e, "1,2,3");
+  }
+}

+ 196 - 0
src/main/java/com/cloudcross/ssp/common/utils/CopyOfOperatorScheduleAclsUtis.java

@@ -0,0 +1,196 @@
+package com.cloudcross.ssp.common.utils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.apache.commons.lang.StringUtils;
+
+import com.cloudcross.ssp.operator.model.AdGroupSchedule;
+
+
+
+
+/**
+ * 排期定向工具类
+ * 
+ * @author tonglili
+ * 
+ */
+public class CopyOfOperatorScheduleAclsUtis {
+  private static final String NODEHOUR = "-1";
+
+  /**
+   * 获得排期信息列表
+   * 
+   * @author tonglili
+   * @param adGroupId
+   * @param scheduleStr
+   * @return 排期信息列表
+   */
+  public static List<AdGroupSchedule> getScheduleList(long adGroupId,
+      String scheduleStr) {
+    Date now = new Date();
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    List<AdGroupSchedule> scheduleList = new ArrayList<AdGroupSchedule>();
+    JSONArray scheduleArray = JSONArray.fromObject(scheduleStr);
+    for (Object object : scheduleArray) {
+    	AdGroupSchedule schedule = (AdGroupSchedule) JSONObject.toBean((JSONObject) object,
+    			AdGroupSchedule.class);
+      schedule.setAdGroupId(adGroupId);
+      schedule.setUpdated(now);
+      try {
+    	  if(schedule.getDehours() == null || "".equals(schedule.getDehours().trim())  || schedule.getDehours().equals(NODEHOUR)){
+    		  schedule.setDehours("");
+    	  }
+        schedule.setBeginDate(sf.parse(schedule.getStartDate()));
+        schedule.setsEndDate(sf.parse(schedule.getEndDate()));
+      } catch (ParseException e) {
+        e.printStackTrace();
+      }
+      scheduleList.add(schedule);
+      /*
+      if (!schedule.getDehours().equals(NODEHOUR)) {
+        scheduleList.add(schedule);
+      }*/
+    }
+    return scheduleList;
+  }
+
+  public static List<Date> findDates(Date dBegin, Date dEnd) {
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    try {
+      dBegin = sf.parse(sf.format(dBegin));
+      dEnd = sf.parse(sf.format(dEnd));
+    } catch (ParseException e) {
+      System.out.println(e.getLocalizedMessage());
+      return null;
+    }
+    List<Date> lDate = new ArrayList<Date>();
+    lDate.add(dBegin);
+    Calendar calBegin = Calendar.getInstance();
+    // 使用给定的 Date 设置此 Calendar 的时间
+    calBegin.setTime(dBegin);
+    Calendar calEnd = Calendar.getInstance();
+    // 使用给定的 Date 设置此 Calendar 的时间
+    calEnd.setTime(dEnd);
+    // 测试此日期是否在指定日期之后
+    while (dEnd.after(calBegin.getTime())) {
+      // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
+      calBegin.add(Calendar.DAY_OF_MONTH, 1);
+      lDate.add(calBegin.getTime());
+    }
+    return lDate;
+  }
+
+  /**
+   * 获得排期定向时间值
+   * 
+   * @author tonglili
+   * @param scheduleList
+   *          排期对象列表
+   * @return 排期定向时间值
+   */
+  public static String scheduleRoleStr(List<AdGroupSchedule> scheduleList) {
+
+    if (null == scheduleList || scheduleList.size() == 0) {
+      return "";
+    }
+    List<String> returnList = new ArrayList<String>();
+    for (AdGroupSchedule schedule : scheduleList) {
+    	if(schedule.getDehours() == null || "".equalsIgnoreCase(schedule.getDehours().trim()) ||  schedule.getDehours().equals(NODEHOUR)){
+    		continue;
+    	}
+    	//默认排期,不加定向限制
+    	if(scheduleList.size() == 1 && "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23".equalsIgnoreCase(schedule.getDehours())){
+    		return "";
+    	}
+      String scheduleStr = scheduleRoleStr(schedule.getBeginDate(),
+          schedule.getsEndDate(), schedule.getDehours());
+
+      if (null != scheduleStr) {
+        returnList.add(scheduleStr);
+      }
+    }
+    System.out.println("StringUtils.join(returnList.toArray())"
+        + StringUtils.join(returnList.toArray(), ","));
+    return StringUtils.join(returnList.toArray(), ",");
+  }
+
+  /**
+   * 获得排期时间定向值
+   * 
+   * @author tonglili
+   * @param startDate
+   *          开始时间(yyyy-MM-dd)
+   * @param endDate
+   *          结束时间(yyyy-MM-dd)
+   * @param dehours
+   *          时间段
+   * @return 排期定向值
+   */
+  public static String scheduleRoleStr(Date startDate, Date endDate,
+      String dehours) {
+    List<String> scheduleList = new ArrayList<String>();
+    List<Date> dateList = findDates(startDate, endDate);
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    String[] hours = dehours.split(",");
+    //for (int i = 0; i < hours.length; i++) {
+    //  String hour = hours[i];
+     // if (!hour.equals(NODEHOUR))
+        for (Date date : dateList) {
+        	String s = sf.format(date);
+        	for (int i = 0; i < hours.length; i++) {
+        		String hour = hours[i];
+        		if (!hour.equals(NODEHOUR)){
+        			s = s.concat("_").concat(hour);
+        		}
+        	}
+          //String s = sf.format(date).concat("_").concat(hour);
+          scheduleList.add(s);
+        }
+    String returnStr = StringUtils.join(scheduleList.toArray(), ",");
+    System.out.println(returnStr);
+    return returnStr;
+  }
+  
+  /*
+  public static String scheduleRoleStr(Date startDate, Date endDate,
+	      String dehours) {
+	    List<String> scheduleList = new ArrayList<String>();
+	    List<Date> dateList = findDates(startDate, endDate);
+	    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+	    String[] hours = dehours.split(",");
+	    for (int i = 0; i < hours.length; i++) {
+	      String hour = hours[i];
+	      if (!hour.equals(NODEHOUR))
+	        for (Date date : dateList) {
+
+	          String s = sf.format(date).concat("_").concat(hour);
+	          scheduleList.add(s);
+	        }
+	    }
+	    String returnStr = StringUtils.join(scheduleList.toArray(), ",");
+	    System.out.println(returnStr);
+	    return returnStr;
+	  }*/
+
+  /**
+   * 例子
+   * 
+   * @param args
+   * @throws ParseException
+   */
+  public static void main(String[] args) throws ParseException {
+    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+    Date s = sf.parse("2015-01-26");
+    Date e = sf.parse("2015-02-29");
+    scheduleRoleStr(s, e, "1,2,3");
+  }
+}

+ 1 - 1
src/main/java/com/cloudcross/ssp/common/utils/OperatorScheduleAclsUtis.java

@@ -12,7 +12,7 @@ import net.sf.json.JSONObject;
 
 import org.apache.commons.lang.StringUtils;
 
-import com.cloudcross.ssp.operator.model.AdGroupSchedule;
+import com.cloudcross.ssp.model.AdGroupSchedule;
 
 
 

+ 11 - 40
src/main/java/com/cloudcross/ssp/model/mapper/account.sql.xml

@@ -60,7 +60,7 @@
 	</select>
 
 
-		<select id="selectByParams.operator"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
+		<select id="selectByParamsOperator"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
 		select id,
 		name as accountName,
 		real_name as realName,tel,state,create_time as createTime
@@ -78,7 +78,7 @@
 	</select>
 
 
-<select id="selectByParams.advertiser"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
+<select id="selectByParamsAdvertiser"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
 		select id,
 		name as accountName,
 		real_name as realName,tel,state,create_time as createTime
@@ -112,7 +112,7 @@
 		and sys_type = #{loginAccount.sysType}
 	</select>
 	
-<select id="countByParams.operator" parameterType="map" resultType="int">
+<select id="countByParamsOperator" parameterType="map" resultType="int">
 		select count(id) 
 		from t_account
 		where deletestatus != -1 
@@ -125,7 +125,7 @@
 		and sys_type = #{loginAccount.sysType}
 	</select>
 
-<select id="countByParams.advertiser" parameterType="map" resultType="int">
+<select id="countByParamsAdvertiser" parameterType="map" resultType="int">
 		select count(id) 
 		from t_account
 		where deletestatus != -1 
@@ -205,7 +205,7 @@
 
 
 	<!-- 增加用户 -->
-	<insert id="addAccount.operator" parameterType="com.cloudcross.ssp.model.Account">
+	<insert id="addAccountOperator" parameterType="com.cloudcross.ssp.model.Account">
 		insert into t_account
 		 (name,
 		 password,
@@ -220,7 +220,7 @@
 
 
 <!-- 增加用户 -->
-	<insert id="addAccount.advertiser" parameterType="com.cloudcross.ssp.model.Account" useGeneratedKeys="true" keyProperty="id">
+	<insert id="addAccountAdvertiser" parameterType="com.cloudcross.ssp.model.Account" useGeneratedKeys="true" keyProperty="id">
 		insert into t_account
 		 (name,
 		 password,
@@ -309,7 +309,7 @@
 	</update>
 	
 	
-	<update id="editAccount.operator" parameterType="com.cloudcross.ssp.model.Account">
+	<update id="editAccountOperator" parameterType="com.cloudcross.ssp.model.Account">
 		update t_account
 		<set>
 			<if test="accountName != null and accountName != ''">
@@ -337,7 +337,7 @@
 		where id=#{id}
 	</update>
 	
-		<update id="editAccount.advertiser" parameterType="com.cloudcross.ssp.model.Account">
+		<update id="editAccountAdvertiser" parameterType="com.cloudcross.ssp.model.Account">
 		update t_account
 		<set>
 			<if test="accountName != null and accountName != ''">
@@ -385,7 +385,7 @@
 				state=#{state},
 			</if>
 			<if test="createTime != null and createTime != ''">
-				createTime=#{createTime},
+				create_time=#{createTime},
 			</if>
 			<if test="realName != null and realName != ''">
 				real_name=#{realName},
@@ -397,35 +397,6 @@
 		where id=#{id}
 	</update>
 
-
-	<update id="update.operator" parameterType="com.cloudcross.ssp.model.Account">
-		update t_account
-		<set>
-			<if test="accountName != null and accountName != ''">
-				name=#{accountName},
-			</if>
-			<if test="password != null and password != ''">
-				password=#{password},
-			</if>
-			<if test="description != null and description != ''">
-				description=#{description},
-			</if>
-			<if test="state != null and state != ''">
-				state=#{state},
-			</if>
-			<if test="createTime != null and createTime != ''">
-				createTime=#{createTime}
-			</if>
-			<if test="realName != null and tel != ''">
-				real_name=#{realName}
-			</if>
-			<if test="tel != null and tel != ''">
-				tel=#{tel}
-			</if>
-		</set>
-		where id=#{id}
-	</update>
-
 	<!-- 验证用户登陆 -->
 	<select id="countAccount" parameterType="com.cloudcross.ssp.model.Account" resultType="com.cloudcross.ssp.model.Account">
 		select
@@ -461,7 +432,7 @@
 	</select>
 	
 	
-		<select id="findExcelAccount.operator"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
+		<select id="findExcelAccountsOperator"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
 		select id,
 		name as accountName,
 		real_name as realName,tel,state,create_time as createTime
@@ -478,7 +449,7 @@
 	</select>
 	
 	
-	<select id="findExcelAccount.advertiser"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
+	<select id="findExcelAccountsAdvertiser"  parameterType="map" resultType="com.cloudcross.ssp.model.Account">
 		select id,
 		name as accountName,
 		real_name as realName,tel,state,create_time as createTime

+ 2 - 2
src/main/java/com/cloudcross/ssp/model/mapper/ad-group.sql.xml

@@ -67,7 +67,7 @@
 	</select>
 	
 	
-	<select id="countByParams.back" parameterType="map" resultType="int">
+	<select id="countByParamsBack" parameterType="map" resultType="int">
 		select count(id) 
 		from t_adgroup
 		where status != -1
@@ -100,7 +100,7 @@
 			</if>
 	</select>
 	
-		<select id="findAreas.back" parameterType="Long" resultType="map">
+		<select id="findAreasBack" parameterType="Long" resultType="map">
 		select *from t_target_show 
 		where adgroup_id = #{adGroupId} and targettype = "deliveryLimitations:Geo:City"
 	</select>

+ 39 - 10
src/main/java/com/cloudcross/ssp/model/mapper/banner-template.sql.xml

@@ -26,7 +26,7 @@
 		status,
 		updated
 	</sql>
-	<select id="countByParamsoperator" parameterType="map" resultType="int">
+	<select id="countByParams" parameterType="map" resultType="int">
 		select count(id) 
 		from t_banner_template
 		<where>
@@ -42,7 +42,7 @@
 		</where>
 	</select>
 	
-	<select id="countByParams3" parameterType="map" resultType="int">
+	<select id="countByParams3operator" parameterType="map" resultType="int">
 		select count(id)
 		from t_banner_template
 		<where>
@@ -54,6 +54,30 @@
 		</where>
 	</select>
 	
+	<select id="countByParams3advertiser" parameterType="map" resultType="int">
+		select count(id)
+		from t_banner_template
+		<where>
+		id not in (select banner_template_id from t_banner where adgroup_id=#{adGroupId})
+			and t_banner_template.status != -1
+			<if test="advertiserId != null">
+				and advertiser_id=#{advertiserId}
+			</if>
+			<if test="type != null">
+				and type=#{type}
+			</if>
+			<if test="height != null">
+				and height=#{height}
+			</if>
+			<if test="width != null">
+				and width=#{width}
+			</if>
+			<if test="value != null">
+				and name like #{value}
+			</if>
+			
+		</where>
+	</select>
 	<select id="findByParams" parameterType="map" resultType="com.cloudcross.ssp.model.BannerTemplate">
 		select t_banner_template.id as id, t_banner_template.advertiser_id as advertiser_id,t_banner_template.name as name,
         t_banner_template.path as path,t_banner_template.type as type,t_banner_template.width as width,t_banner_template.height as height,
@@ -266,16 +290,19 @@ where b.banner_template_id = a.id and a.id in
 		order by t_banner_template.id desc
 		limit #{pager.offset}, #{pager.limit}
 	</select>
-	
-	<select id="countByParams3" parameterType="map" resultType="int">
-		select count(id)
+	<select id="findByParams2Operator" parameterType="map" resultType="com.cloudcross.ssp.operator.model.BannerTemplate">
+		select
+		<include refid="base_column" />
 		from t_banner_template
 		<where>
-		id not in (select banner_template_id from t_banner where adgroup_id=#{adGroupId})
-			and t_banner_template.status != -1
-			<if test="advertiserId != null">
-				and advertiser_id=#{advertiserId}
+			<if test="status != null">
+				status=#{status}
 			</if>
+			<if test="status == null">
+				status in (0,1)
+			</if>
+			<!-- <if test="advertiserId != null"> and advertiser_id=#{advertiserId} 
+				</if> -->
 			<if test="type != null">
 				and type=#{type}
 			</if>
@@ -288,9 +315,11 @@ where b.banner_template_id = a.id and a.id in
 			<if test="value != null">
 				and name like #{value}
 			</if>
-			
 		</where>
+		order by id desc
+		limit #{pager.offset}, #{pager.limit}
 	</select>
+	
 		
 	<select id="findByParams4advertiser" parameterType="map" resultType="com.cloudcross.ssp.model.BannerTemplate">
 		select

+ 14 - 15
src/main/java/com/cloudcross/ssp/model/mapper/banner.sql.xml

@@ -61,9 +61,16 @@
 			close=")">
 			#{id}
 		</foreach>
-		
 	</update>
-	
+	<update id="updateBannerStatusOperator" parameterType="HashMap">
+		update t_banner 
+			set checked = #{checked},updated = #{updated}
+			where id in
+			<foreach item="bannerId" collection="bannerIdList"
+		      open="(" separator="," close=")">
+		        #{bannerId}
+			</foreach>
+	</update>
 	<select id="countByParams" parameterType="map" resultType="int">
 	select count(a.id) from t_banner a ,t_banner_template b 
 		<where>
@@ -82,14 +89,14 @@
 	
 	<select id="findById1" parameterType="long" resultType="com.cloudcross.ssp.model.Banner">
 		select
-		<include refid="base_column"/>
+		<include refid="base_column_advertiser"/>
 		from t_banner
 		<where>
 		adgroup_id = #{adGroupId}
 		</where>
 	</select>
 	
-	<select id="findById" parameterType="long" resultMap="Banner">
+	<select id="findByIdAdvertiser" parameterType="long" resultMap="Banner">
 		select a.id as id,a.banner_template_id as bannerTemplateId,a.order_id as orderId,a.campaign_id as campaignId,a.adgroup_id as adGroupId,a.visit_address as visitAddress,
 	a.click_address as clickAddress,a.impression_address as impressionAddress,a.status as status1,a.checked as checked,a.updated as updated, b.id as bannerTemplateId,b.agent_id as agentId,b.advertiser_id as advertiserId,b.name as name,b.path as path,b.path_small as pathSmall,b.type as type,b.width as width,b.height as height,b.status as status,b.updated as updated from t_banner a LEFT JOIN t_banner_template b on a.banner_template_id=b.id   
 		<where>
@@ -97,8 +104,8 @@
 		</where>
 	</select>
 	
-	<select id="findById" parameterType="int" resultMap="banner">  
-		select <include refid="base_column"/> ,<include refid="banner_template_base_column"/>
+	<select id="findByIdOperator" parameterType="int" resultMap="banner">  
+		select <include refid="base_column_operator"/> ,<include refid="banner_template_base_column"/>
 		from t_banner b inner join t_banner_template bt on b.banner_template_id = bt.id left join t_banner_operator bo
 on b.id=bo.banner_id where b.id=#{id}
 	</select>
@@ -430,15 +437,7 @@ on b.id=bo.banner_id where b.id=#{id}
 			</foreach>
 	
 	</update>
-	<update id="updateBannerStatus" parameterType="HashMap">
-		update t_banner 
-			set checked = #{checked},updated = #{updated}
-			where id in
-			<foreach item="bannerId" collection="bannerIdList"
-		      open="(" separator="," close=")">
-		        #{bannerId}
-			</foreach>
-	</update>
+	
 	
 	<update id="updateOperatorBanner" parameterType="HashMap">
 		update t_banner_operator 

+ 4 - 15
src/main/java/com/cloudcross/ssp/model/mapper/codeClass.sql.xml

@@ -116,33 +116,22 @@
 			</choose>	
 		</if>
 	</select>
-	  <insert id="addCodeClassoperator" parameterType="com.cloudcross.ssp.model.CodeClass">
-		insert into t_code_class(name, para, updated )
-		values(#{codeName},#{codePara},#{updated})
-	</insert>
+	 
 	
 	
-	<update id="editCodeClassoperator" parameterType="com.cloudcross.ssp.model.CodeClass">
+	<update id="editCodeClass" parameterType="com.cloudcross.ssp.model.CodeClass">
 		update t_code_class 
 		set name=#{codeName}, para=#{codePara}, updated=#{updated} , script_code=#{script}, pic_code=#{picture}
-		
-		
-		
 		where id = #{id}
 	</update>
 	
-	  <insert id="addCodeClassadvertiser" parameterType="com.cloudcross.ssp.model.CodeClass">
+	  <insert id="addCodeClass" parameterType="com.cloudcross.ssp.model.CodeClass">
 		insert into t_code_class(advertiser_id, name, para, updated )
 		values(#{advertiserId},#{codeName},#{codePara},#{updated})
 	</insert>
 	
 	
-	<update id="editCodeClassadvertiser" parameterType="com.cloudcross.ssp.model.CodeClass">
-		update t_code_class 
-		set name=#{codeName}, para=#{codePara}, updated=#{updated}
-		<!--  set name=#{codeName}, para=#{codePara}, updated=#{updated} , script_code=#{script}, pic_code=#{picture}-->
-		where id = #{id}
-	</update>
+
 	
 	<!-- 根据id查询代码值 -->
 	<select id="getScriptById"  parameterType="int" resultType="String">

+ 2 - 15
src/main/java/com/cloudcross/ssp/model/mapper/codeConvert.sql.xml

@@ -123,26 +123,13 @@
 	</select>
 	
 	
-	  <insert id="addCodeConvertadvertiser" parameterType="com.cloudcross.ssp.model.CodeConvert">
+	  <insert id="addCodeConvert" parameterType="com.cloudcross.ssp.model.CodeConvert">
 		insert into t_code_convert(advertiser_Id, name, type, updated )
 		values(#{advertiserId},#{convertName},#{convertType},#{updated})
 	</insert>
 	
 	
-	<update id="editCodeConvertadvertiser" parameterType="com.cloudcross.ssp.model.CodeConvert">
-		update t_code_convert 
-		set name=#{convertName}, type=#{convertType}, updated=#{updated}
-		<!-- set name=#{convertName}, type=#{convertType}, updated=#{updated}, script_code=#{script}, pic_code=#{picture}  -->
-		where id = #{id}
-	</update>
-	
-	  <insert id="addCodeConvertoperator" parameterType="com.cloudcross.ssp.model.CodeConvert">
-		insert into t_code_convert(name, type, updated )
-		values(#{convertName},#{convertType},#{updated})
-	</insert>
-	
-	
-	<update id="editCodeConvertoperator" parameterType="com.cloudcross.ssp.model.CodeConvert">
+	<update id="editCodeConvert" parameterType="com.cloudcross.ssp.model.CodeConvert">
 		update t_code_convert 
 		set name=#{convertName}, type=#{convertType}, updated=#{updated}, script_code=#{script}, pic_code=#{picture}
 		where id = #{id}

+ 5 - 5
src/main/java/com/cloudcross/ssp/operator/service/impl/AdGroupService.java

@@ -17,8 +17,8 @@ import org.springframework.stereotype.Service;
 import com.cloudcross.ssp.base.dao.GenericIBatisDao;
 import com.cloudcross.ssp.common.consts.DirectType;
 import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.CopyOfOperatorScheduleAclsUtis;
 import com.cloudcross.ssp.common.utils.MapBuilder;
-import com.cloudcross.ssp.common.utils.OperatorScheduleAclsUtis;
 import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.common.utils.SqlHelper;
 import com.cloudcross.ssp.operator.model.Acls;
@@ -256,12 +256,12 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 			
 			if(uiType.equalsIgnoreCase(DirectType.timeType)) {
 				// 将数据批量存入排期表
-		        List<AdGroupSchedule> scheduleList = OperatorScheduleAclsUtis.getScheduleList(
+		        List<AdGroupSchedule> scheduleList = CopyOfOperatorScheduleAclsUtis.getScheduleList(
 		            adGroupId, (String) targetParamsMap.get(uiKey));
 		        
 		        //调用接口batchschedule  
 		        adGroupScheduleService.batchAdd(scheduleList);
-		        String data = OperatorScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		        String data = CopyOfOperatorScheduleAclsUtis.scheduleRoleStr(scheduleList);
 		        if(data != null && data.trim() != ""){
 		        	data = data.concat("@Asia/Shanghai");
 		        }
@@ -327,12 +327,12 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 				//注释掉排期注释代码
 		        if(uiType.equalsIgnoreCase(DirectType.timeType)) {
 		         // 将数据批量存入排期表
-		          List<AdGroupSchedule> scheduleList = OperatorScheduleAclsUtis.getScheduleList(
+		          List<AdGroupSchedule> scheduleList = CopyOfOperatorScheduleAclsUtis.getScheduleList(
 		              adGroup.getId(), (String) targetParamsMap.get(uiKey));
 		         
 		          //调用接口batchschedule
 		          adGroupScheduleService.batchAdd(scheduleList);
-		          String data = OperatorScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		          String data = CopyOfOperatorScheduleAclsUtis.scheduleRoleStr(scheduleList);
 		          if(data != null && data.trim() != ""){
 		          	data = data.concat("@Asia/Shanghai");
 		          }

+ 17 - 0
src/main/java/com/cloudcross/ssp/service/IAccountService.java

@@ -2,8 +2,10 @@ package com.cloudcross.ssp.service;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import com.cloudcross.ssp.base.service.BaseService;
+import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.model.Account;
 import com.cloudcross.ssp.pulgin.mybatis.plugin.PageView;
 
@@ -21,6 +23,8 @@ public interface IAccountService extends BaseService<Account>{
 	 * @return
 	 */
 	public boolean addAccount(Account account);
+	public boolean addAccountOperator(Account account);
+	public boolean addAccountAdvertiser(Account account);
 	public Account countAccount(Account account);
 	/**
 	 * @param account
@@ -31,4 +35,17 @@ public interface IAccountService extends BaseService<Account>{
 	public boolean updateState(List<Long> idList, int status);
 	public boolean editAccount(Account t);
 	public List<Account> findExcelAccounts(HashMap<String, Object> paramMap);
+	
+	
+	public int countByParamsOperator(Map<String, Object> paramMap);
+	public int countByParamsAdvertiser(Map<String, Object> paramMap);
+	
+	public List<Account> findByParamsOperator(Map<String, Object> paramMap, Pager pager);
+	public List<Account> findByParamsAdvertiser(Map<String, Object> paramMap, Pager pager);
+	
+	public boolean editAccountOperator(Account t);
+	public boolean editAccountAdvertiser(Account t);
+	
+	public List<Account> findExcelAccountsAdvertiser(HashMap<String, Object> paramMap);
+	public List<Account> findExcelAccountsOperator(HashMap<String, Object> paramMap);
 }

+ 10 - 2
src/main/java/com/cloudcross/ssp/service/IAdGroupService.java

@@ -5,6 +5,7 @@ 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.AdGroup;
 
 
@@ -46,6 +47,13 @@ public interface IAdGroupService extends IGenericService<AdGroup> {
 	public boolean updateStatusByCampaignId(List<Long> campaignIdList, int status);
 	public boolean updateStatusAll(List<Long> adGroupIdList, int status);
 	
-	//back端的方法
-	public Map findAreas(Long adGroupId);
+	public int countByParamsOperator(Map<String, Object> paramMap);
+	public int countByParamsBack(Map<String, Object> paramMap);
+	public List<AdGroup> findByParamsOperator(Map<String, Object> paramMap, Pager pager);
+	public List<AdGroup> findByParamsBack(Map<String, Object> paramMap, Pager pager);
+	public Map findAreasBack(Long adGroupId);
+	
+	public boolean saveOperator(AdGroup adGroup, Map<String, Object> targetParamsMap); 
+	
+	public boolean editOperator(AdGroup adGroup, Map<String, Object> targetParamsMap); 
 }

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

@@ -15,11 +15,14 @@ import com.cloudcross.ssp.model.DeliverAnalysis;
  */
 public interface IAdReportService extends IGenericService<DeliverAnalysis>{
 	
-    int findCountForDeliverEffectAnalysis(Map<String, Object> paramMap);
+    int findCountForDeliverEffectAnalysisAdvertiser(Map<String, Object> paramMap);
+    int findCountForDeliverEffectAnalysisOperator(Map<String, Object> paramMap);
+    int findCountForDeliverEffectAnalysisBack(Map<String, Object> paramMap);
     
     int findCountForDeliverEffectAnalysis2(Map<String, Object> paramMap);
 	
-	int findCountForLocation(Map<String, Object> paramMap);
+	int findCountForLocationAdvertiser(Map<String, Object> paramMap);
+	int findCountForLocationBack(Map<String, Object> paramMap);
 	
 	int findCountForOs(Map<String, Object> paramMap);
 	
@@ -27,14 +30,16 @@ public interface IAdReportService extends IGenericService<DeliverAnalysis>{
 	
 
 	
-	List<DeliverAnalysis> findByTotalReport(Map<String, Object> paramMap, Pager pager);
+	List<DeliverAnalysis> findByTotalReportAdvertiser(Map<String, Object> paramMap, Pager pager);
+	List<DeliverAnalysis> findByTotalReportBack(Map<String, Object> paramMap, Pager pager);
 	
 	
 	List<DeliverAnalysis> findByTotalReport2(Map<String, Object> paramMap, Pager pager);
 	
 	
     List<DeliverAnalysis> findByPlaceName(Map<String, Object> paramMap, Pager pager);
-    List<DeliverAnalysis> findByLocation(Map<String, Object> paramMap, Pager pager);
+    List<DeliverAnalysis> findByLocationAdvertiser(Map<String, Object> paramMap, Pager pager);
+    List<DeliverAnalysis> findByLocationBack(Map<String, Object> paramMap, Pager pager);
     
     List<DeliverAnalysis> findByOs(Map<String, Object> paramMap, Pager pager);
 
@@ -61,7 +66,9 @@ public interface IAdReportService extends IGenericService<DeliverAnalysis>{
 	/**
 	 * 导出excel报表
 	 */
-	List<DeliverAnalysis> findByTotalReport(Map<String, Object> paramMap);
+	List<DeliverAnalysis> findByTotalForExcelAdvertiser(Map<String, Object> paramMap);
+	List<DeliverAnalysis> findByTotalForExcelBack(Map<String, Object> paramMap);
+	List<DeliverAnalysis> findByTotalForExcelOperator(Map<String, Object> paramMap);
 	
     List<DeliverAnalysis> findByPlaceName(Map<String, Object> paramMap);
     
@@ -69,67 +76,60 @@ public interface IAdReportService extends IGenericService<DeliverAnalysis>{
     
     List<DeliverAnalysis> findByOs(Map<String, Object> paramMap);
     
-    
-    	/**
-    	 * 下面都是operator端的接口定义的函数
-    	 * @param paramMap
-    	 * @param pager
-    	 * @return
-    	 */
-    List<DeliverAnalysis> findDeliverEffectAnalysis(
+    List<DeliverAnalysis> findDeliverEffectAnalysisOperator(
 			Map<String, Object> paramMap, Pager pager);
-	List<DeliverAnalysis> findDeliverEffectAnalysis(
+	List<DeliverAnalysis> findDeliverEffectAnalysisOperator(
 			Map<String, Object> paramMap);
 	
-	int countBySize(Map<String, Object> paramMap);
-	List<DeliverAnalysis> findBySize(
+	int countBySizeOperator(Map<String, Object> paramMap);
+	List<DeliverAnalysis> findBySizeOperator(
 			Map<String, Object> paramMap, Pager pager);
-	List<DeliverAnalysis> findBySize(
+	List<DeliverAnalysis> findBySizeOperator(
 			Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByPosition(
+	List<DeliverAnalysis> findByPositionOperator(
 			Map<String, Object> paramMap);
 	
-	int countBySystem(Map<String, Object> paramMap);
+	int countBySystemOperator(Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findBySystem(
+	List<DeliverAnalysis> findBySystemOperator(
 			Map<String, Object> paramMap, Pager pager);
 	
-	List<DeliverAnalysis> findBySystem(
+	List<DeliverAnalysis> findBySystemOperator(
 			Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByDevice(
+	List<DeliverAnalysis> findByDeviceOperator(
 			Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByArealCity(
+	List<DeliverAnalysis> findByArealCityOperator(
 			Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByAreal(
+	List<DeliverAnalysis> findByArealOperator(
 			Map<String, Object> paramMap);
 	
-	int countByPlace(Map<String, Object> paramMap);
+	int countByPlaceOperator(Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByPlace(
+	List<DeliverAnalysis> findByPlaceOperator(
 			Map<String, Object> paramMap, Pager pager);
 	
-	List<DeliverAnalysis> findByPlace(
+	List<DeliverAnalysis> findByPlaceOperator(
 			Map<String, Object> paramMap);
 	
-	int countByApmac(Map<String, Object> paramMap);
+	int countByApmacOperator(Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByApmac(
+	List<DeliverAnalysis> findByApmacOperator(
 			Map<String, Object> paramMap, Pager pager);
 	
-	List<DeliverAnalysis> findByApmac(
+	List<DeliverAnalysis> findByApmacOperator(
 			Map<String, Object> paramMap);
 	
-	int countByAllAreal(Map<String, Object> paramMap);
+	int countByAllArealOperator(Map<String, Object> paramMap);
 	
-	List<DeliverAnalysis> findByAllAreal(
+	List<DeliverAnalysis> findByAllArealOperator(
 			Map<String, Object> paramMap, Pager pager);
 	
 	 //根据查询条件查询总的pv,uv,曝光数等等
-    DeliverAnalysis findSum(Map<String, Object> paramMap);
+    DeliverAnalysis findSumOperator(Map<String, Object> paramMap);
     
-    List<DeliverAnalysis> findAllArea(Map<String, Object> paramMap);
+    List<DeliverAnalysis> findAllAreaOperator(Map<String, Object> paramMap);
 }

+ 3 - 0
src/main/java/com/cloudcross/ssp/service/IAdvAgentService.java

@@ -1,8 +1,11 @@
 package com.cloudcross.ssp.service;
 
+import java.util.List;
+
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.model.AdvAgent;
 
 public interface IAdvAgentService extends IGenericService<AdvAgent>{
 	public AdvAgent getNew(AdvAgent t);
+	public List<AdvAgent> findAll();
 }

+ 4 - 1
src/main/java/com/cloudcross/ssp/service/IAdvBalanceService.java

@@ -5,7 +5,7 @@ package com.cloudcross.ssp.service;
 import java.util.List;
 import java.util.Map;
 
-import com.cloudcross.ssp.advertiser.model.AdvBalance;
+import com.cloudcross.ssp.model.AdvBalance;
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.common.utils.Pager;
 
@@ -40,4 +40,7 @@ public interface IAdvBalanceService extends IGenericService<AdvBalance> {
 	 int countByParams2(Map<String, Object> paramMap);
 	 List<AdvBalance> findByParams(Map<String, Object> paramMap, Pager pager);
 	 List<AdvBalance> findByParams2(Map<String, Object> paramMap, Pager pager);
+	 
+	 public int countByParamsBack(Map<String, Object> paramMap);
+	 public List<AdvBalance> findByParamsBack(Map<String, Object> paramMap,Pager pager);
 }

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

@@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.base.web.result.AjaxResult;
+import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.model.Advertiser;
 
 public interface IAdvertiserService extends IGenericService<Advertiser>{
@@ -40,4 +41,12 @@ public interface IAdvertiserService extends IGenericService<Advertiser>{
 	public boolean updateSupdatedAll(List<Long> advertiserIdList, Date date);
 	//删除所有(逻辑删除)
 	public boolean updateStatusAll(List<Long> advertiserIdList, int status);
+	
+	public List<Advertiser> findByOperatorOperator(Long operatorId);
+	public List<Advertiser> findByParamsBack(Map<String, Object> paramMap,Pager pager);
+	public List<Advertiser> findByParamsOperator(Map<String, Object> paramMap,Pager pager);
+	public int countByParamsOperator(Map<String, Object> paramMap);
+	public boolean addBack(Advertiser t);
+	public boolean editOperator(Advertiser t);
+	public boolean editBack(Advertiser t);
 }

+ 1 - 1
src/main/java/com/cloudcross/ssp/service/IAuditBannerService.java

@@ -5,7 +5,7 @@ package com.cloudcross.ssp.service;
 import java.util.List;
 import java.util.Map;
 
-import com.cloudcross.ssp.back.model.AuditBanner;
+import com.cloudcross.ssp.model.AuditBanner;
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.common.utils.Pager;
 

+ 6 - 3
src/main/java/com/cloudcross/ssp/service/IBannerService.java

@@ -1,11 +1,10 @@
 package com.cloudcross.ssp.service;
 
-
-
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import com.cloudcross.ssp.advertiser.model.Banner;
+
+import com.cloudcross.ssp.model.Banner;
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.common.utils.Pager;
 
@@ -42,4 +41,8 @@ public interface IBannerService extends IGenericService<Banner> {
 	//更新素材审核
 	boolean updataOperatorBanner(Long bannerId,int status,Long operatorId);
 	
+	//
+	public Banner findByIdOperator(Long id);
+	public boolean updateStatusOperator(List<Long> bannerIdList, int checked);
+	
 }

+ 6 - 1
src/main/java/com/cloudcross/ssp/service/ICodeClassService.java

@@ -1,9 +1,12 @@
 package com.cloudcross.ssp.service;
 
 
+import java.util.List;
+import java.util.Map;
 
-import com.cloudcross.ssp.advertiser.model.CodeClass;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.CodeClass;
 
 
 
@@ -16,4 +19,6 @@ public interface ICodeClassService extends IGenericService<CodeClass> {
 	CodeClass findByName(String codeName);
 	
 	public String getCode(Long id,int type);
+	public int countByParamsOperator(Map<String, Object> paramMap);
+	public List<CodeClass> findByParamsOperator(Map<String, Object> paramMap, Pager pager);
 }

+ 7 - 1
src/main/java/com/cloudcross/ssp/service/ICodeConvertService.java

@@ -2,8 +2,12 @@ package com.cloudcross.ssp.service;
 
 
 
-import com.cloudcross.ssp.advertiser.model.CodeConvert;
+import java.util.List;
+import java.util.Map;
+
+import com.cloudcross.ssp.model.CodeConvert;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.Pager;
 
 
 
@@ -16,4 +20,6 @@ public interface ICodeConvertService extends IGenericService<CodeConvert> {
 	CodeConvert findByName(String convertName);
 
 	public String getCode(Long id,int type);
+	public int countByParamsOperator(Map<String, Object> paramMap);
+	public List<CodeConvert> findByParamsOperator(Map<String, Object> paramMap, Pager pager);
 }

+ 1 - 2
src/main/java/com/cloudcross/ssp/service/IDimensionService.java

@@ -3,10 +3,9 @@ package com.cloudcross.ssp.service;
 
 
 import java.util.HashMap;
-import java.util.List;
 
-import com.cloudcross.ssp.advertiser.model.Dimension;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.model.Dimension;
 
 
 

+ 6 - 0
src/main/java/com/cloudcross/ssp/service/IOperatorBalanceService.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.cloudcross.ssp.model.OperatorBalance;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.Pager;
 
 /**
  * 提现记录服务接口定义
@@ -32,6 +33,11 @@ public interface IOperatorBalanceService extends IGenericService<OperatorBalance
 	 * 根据提现记录表的id将审核不通过的提现金额返还给运营商
 	 */
 	public boolean moneyBackToOperator(Long id);
+
+	int countByParamsOperator(Map<String, Object> paramMap);
+
+	List<OperatorBalance> findByParamsOperator(Map<String, Object> paramMap,
+			Pager pager);
 	
 	
 }

+ 1 - 1
src/main/java/com/cloudcross/ssp/service/IOperatorReportService.java

@@ -3,9 +3,9 @@ package com.cloudcross.ssp.service;
 import java.util.List;
 import java.util.Map;
 
-import com.cloudcross.ssp.back.model.OperatorReport;
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.OperatorReport;
 
 
 /**

+ 10 - 0
src/main/java/com/cloudcross/ssp/service/IOperatorService.java

@@ -1,8 +1,18 @@
 package com.cloudcross.ssp.service;
 
+import java.util.List;
+import java.util.Map;
+
 import com.cloudcross.ssp.model.Operator;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.Pager;
 
 public interface IOperatorService extends IGenericService<Operator>{
 	public 	Operator getNew(Operator o);
+
+	int countByParamsBack(Map<String, Object> paramMap);
+
+	List<Operator> findByParamsBack(Map<String, Object> paramMap, Pager pager);
+
+	boolean updateStatusBack(List<Long> idList, int status);
 }

+ 8 - 0
src/main/java/com/cloudcross/ssp/service/IOrderService.java

@@ -6,6 +6,7 @@ import java.util.Map;
 
 import com.cloudcross.ssp.model.Order;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.Pager;
 
 public interface IOrderService extends IGenericService<Order> {
 
@@ -33,5 +34,12 @@ public interface IOrderService extends IGenericService<Order> {
 	public boolean updateStatusByAdvertiserId(List<Long> AdvertiseIdList, int status);
 	
 	public boolean updateStatusAll(List<Long> orderIdList, int status);
+	int countByParamsAdvertiser(Map<String, Object> paramMap);
+	int countByParamsBack(Map<String, Object> paramMap);
+	int countByParamsOperator(Map<String, Object> paramMap);
+	List<Order> findByParamsAdvertiser(Map<String, Object> paramMap, Pager pager);
+	List<Order> findByParamsOperator(Map<String, Object> paramMap, Pager pager);
+	List<Order> findByParamsBack(Map<String, Object> paramMap, Pager pager);
+	boolean addBack(Order t);
 
 }

+ 1 - 1
src/main/java/com/cloudcross/ssp/service/IPlaceOperatorService.java

@@ -4,7 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.cloudcross.ssp.base.service.IGenericService;
-import com.cloudcross.ssp.operator.model.PlaceOperator;
+import com.cloudcross.ssp.model.PlaceOperator;
 
 /**
  * 

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

@@ -11,4 +11,6 @@ public interface IRptZoneHourService  extends IGenericService<RptZoneHour>{
 	 * 查找某个运营商一天每个小时的每一个小时所有广告位的pv,uv,曝光数等等
 	 */
 	List<RptZoneHour> findEveryHourData(Map<String, Object> paramMap);
+
+	List<RptZoneHour> findEveryHourDataBack(Map<String, Object> paramMap);
 }

+ 3 - 0
src/main/java/com/cloudcross/ssp/service/IWifiService.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.cloudcross.ssp.model.Wifi;
 import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.common.utils.Pager;
 
 public interface IWifiService extends IGenericService<Wifi> {
 	public List<Wifi> findNeighPosition(double longitude,double latitude,double dis,String location);
@@ -16,4 +17,6 @@ public interface IWifiService extends IGenericService<Wifi> {
 	public boolean deleteWifi(Long adGroupId);
 	//原operator
 	List<Wifi> findByParams(Map<String, Object> paramMap);
+	int countByParamsOperator(Map<String, Object> paramMap);
+	List<Wifi> findByParamsOperator(Map<String, Object> paramMap, Pager pager);
 }

+ 5 - 0
src/main/java/com/cloudcross/ssp/service/IZoneService.java

@@ -4,6 +4,7 @@ import java.util.Map;
 
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.model.Zone;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
 
 
 public interface IZoneService extends IGenericService<Zone> {
@@ -23,6 +24,10 @@ public interface IZoneService extends IGenericService<Zone> {
 	//public AjaxResult fileUpload(HttpServletRequest request,HttpServletResponse response);
 	//原back
 	public List<Zone> findByOperatorId(Long operatorId);
+	int countByParamsBack(Map<String, Object> paramMap);
+	Zone findByIdBack(Long id);
+	List<Zone> findByOperatorIdBack(Integer operatorId);
+	Map<String, List<? extends ISelector>> provideDataBack(String[] parentId);
 	
 	
 }

+ 212 - 0
src/main/java/com/cloudcross/ssp/service/impl/AccountService.java

@@ -0,0 +1,212 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.Account;
+import com.cloudcross.ssp.pulgin.mybatis.plugin.PageView;
+import com.cloudcross.ssp.service.IAccountService;
+
+@Service
+public class AccountService implements IAccountService{
+
+	public AccountService() {
+		System.out.println("初始化了。。。");
+	}
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Override
+	public PageView query(PageView pageView, Account t) {
+		// TODO Auto-generated method stub
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("paging", pageView);
+		map.put("t", t);
+		List<Account> list = myBatisDao.getList("accountSqlMapper.query", map);
+		pageView.setRecords(list);
+		return pageView;
+	}
+
+	@Override
+	public List<Account> queryAll(Account t) {
+		// TODO Auto-generated method stub
+	
+		return myBatisDao.getList("accountSqlMapper.queryAll", t);
+	}
+
+	@Override
+	public void delete(String id) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("accountSqlMapper.delete", id);
+	}
+
+	@Override
+	public void update(Account t) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("accountSqlMapper.update", t);
+	}
+
+	@Override
+	public Account getById(String id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("accountSqlMapper.getById", id);
+	}
+
+	public void add(Account account) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("accountSqlMapper.add", account);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("accountSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<Account> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("accountSqlMapper.selectByParams", paramMap);
+	}
+
+	@Override
+	public Account querySingleAccount(String accountName) {
+		return myBatisDao.get("accountSqlMapper.querySingleAccount",accountName);
+	}
+
+	@Override
+	public Account isExist(String accountName) {
+		return myBatisDao.get("accountSqlMapper.isExist", accountName);
+	}
+
+	@Override
+	public boolean addAccount(Account account) {
+		myBatisDao.save("accountSqlMapper.addAccount", account);
+		return true;
+	}
+
+	@Override
+	public Account countAccount(Account account) {
+		return myBatisDao.get("accountSqlMapper.countAccount", account);
+	}
+
+	@Override
+	public PageView queryNoMatch(Account account, PageView pageView) {
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("paging", pageView);
+		map.put("t", account);
+		List<Account> list = myBatisDao.getList("accountSqlMapper.queryNoMatch", account);
+		pageView.setRecords(list);
+		return pageView;
+	}
+
+	@Override
+	public boolean updateState(List<Long> accountIdList, int state) {
+		myBatisDao.save("accountSqlMapper.updateAccountStatus",
+				MapBuilder.create(HashMap.class)
+					.add("accountIdList", accountIdList)
+					.add("modifyDate", new Date())
+					.add("state", state).map());
+		return true;
+	}
+
+	@Override
+	public boolean editAccount(Account t) {
+		myBatisDao.save("accountSqlMapper.editAccount", t);
+		return true;
+	}
+
+	@Override
+	public List<Account> findExcelAccounts(HashMap<String, Object> paramMap) {
+		return myBatisDao.getList("accountSqlMapper.findExcelAccount",paramMap);
+	}
+
+	@Override
+	public boolean addAccountOperator(Account account) {
+		myBatisDao.save("accountSqlMapper.addAccountOperator", account);
+		return true;
+	}
+
+	@Override
+	public boolean addAccountAdvertiser(Account account) {
+		myBatisDao.save("accountSqlMapper.addAccountAdvertiser", account);
+		return true;
+	}
+
+	@Override
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("accountSqlMapper.countByParamsOperator", paramMap);
+	}
+
+	@Override
+	public int countByParamsAdvertiser(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("accountSqlMapper.countByParamsAdvertiser", paramMap);
+	}
+
+	@Override
+	public List<Account> findByParamsOperator(Map<String, Object> paramMap,
+			Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("accountSqlMapper.selectByParamsOperator", paramMap);
+	}
+
+	@Override
+	public List<Account> findByParamsAdvertiser(Map<String, Object> paramMap,
+			Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("accountSqlMapper.selectByParamsAdvertiser", paramMap);
+	}
+
+	@Override
+	public boolean editAccountOperator(Account t) {
+		myBatisDao.save("accountSqlMapper.editAccountOperator", t);
+		return true;
+	}
+
+	@Override
+	public boolean editAccountAdvertiser(Account t) {
+		myBatisDao.save("accountSqlMapper.editAccountAdvertiser", t);
+		return true;
+	}
+
+	@Override
+	public List<Account> findExcelAccountsAdvertiser(
+			HashMap<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("value"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("accountSqlMapper.findExcelAccountsAdvertiser",paramMap);
+	}
+
+	@Override
+	public List<Account> findExcelAccountsOperator(
+			HashMap<String, Object> paramMap) {
+		return myBatisDao.getList("accountSqlMapper.findExcelAccountsOperator",paramMap);
+	}
+
+	
+}

+ 64 - 0
src/main/java/com/cloudcross/ssp/service/impl/AclsService.java

@@ -0,0 +1,64 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.Acls;
+import com.cloudcross.ssp.service.IAclsService;
+
+public class AclsService implements IAclsService{
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+	
+	@Override
+	public Acls findById(Long id) {
+		return ibatisDao.get("aclsSqlMapper.findById", id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public List<Acls> findByParams(Map<String, Object> paramMap, Pager pager) {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public boolean add(Acls t) {
+		ibatisDao.save("aclsSqlMapper.addAcls", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(Acls t) {
+		ibatisDao.save("aclsSqlMapper.editAcls", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public boolean deleteByBannerId(Long id) {
+		ibatisDao.delete("aclsSqlMapper.deleteAcls", id);
+		return true;
+	}
+
+	@Override
+	public boolean deleteBatch(List<Long> lists, String type) {
+		ibatisDao.delete("deleteAclsBatch", MapBuilder.create(HashMap.class)
+				.add("idList", lists).add("type", type).map());
+		return true;
+	}
+
+}

+ 75 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdGroupPlaceService.java

@@ -0,0 +1,75 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.AdGroupPlace;
+import com.cloudcross.ssp.service.IAdGroupPlaceService;
+
+@Service
+public class AdGroupPlaceService implements IAdGroupPlaceService{
+
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+	
+	@Override
+	public AdGroupPlace findById(Long id) {
+		return null;
+	}
+	
+	public List<AdGroupPlace> findAll(Long adGroupId) {
+		return ibatisDao.getList("adGroupPlaceSqlMapper.findAll", adGroupId);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+	@Override
+	public boolean delete(Long adGroupId) {
+		ibatisDao.delete("adGroupPlaceSqlMapper.delete", adGroupId);
+		return true;
+	}
+	@Override
+	public List<AdGroupPlace> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(AdGroupPlace t) {
+		ibatisDao.save("adGroupPlaceSqlMapper.addPlace", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(AdGroupPlace t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<AdGroupPlace> findAllByAdGroupId(Long adGroupId) {
+		return ibatisDao.getList("adGroupPlaceSqlMapper.findAllByAdGroupId", adGroupId);
+	}
+
+	@Override
+	public boolean updatedPlaceSupdated(Long adGroupId) {
+		// TODO Auto-generated method stub
+		ibatisDao.save("adGroupPlaceSqlMapper.updatedSupdated", adGroupId);
+		return true;
+	}
+
+}

+ 73 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdGroupScheduleService.java

@@ -0,0 +1,73 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.AdGroupSchedule;
+import com.cloudcross.ssp.service.IAdGroupScheduleService;
+
+@Service
+public class AdGroupScheduleService implements IAdGroupScheduleService {
+
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public AdGroupSchedule findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<AdGroupSchedule> findByParams(
+			Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(AdGroupSchedule t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(AdGroupSchedule t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean batchAdd(List<AdGroupSchedule> scheduleList) {
+		myBatisDao.save(
+				"back.adGroupScheduleSqlMapper.batchAdd",
+				MapBuilder.create(HashMap.class)
+						.add("scheduleList", scheduleList).map());
+		return true;
+	}
+
+	@Override
+	public boolean deleteByAdGroupId(Long adGroupId) {
+		myBatisDao.delete("adGroupScheduleSqlMapper.deleteByAdGroupId", adGroupId);
+		return false;
+	}
+}

+ 878 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdGroupService.java

@@ -0,0 +1,878 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.consts.AdvertiserDirectType;
+import com.cloudcross.ssp.common.consts.DirectType;
+import com.cloudcross.ssp.common.utils.AdvertiserScheduleAclsUtis;
+import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.OperatorScheduleAclsUtis;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.Acls;
+import com.cloudcross.ssp.model.AdGroup;
+import com.cloudcross.ssp.model.AdGroupPlace;
+import com.cloudcross.ssp.model.AdGroupSchedule;
+import com.cloudcross.ssp.model.AdGroupZone;
+import com.cloudcross.ssp.model.Direct;
+import com.cloudcross.ssp.model.Location;
+import com.cloudcross.ssp.service.IAdGroupPlaceService;
+import com.cloudcross.ssp.service.IAdGroupScheduleService;
+import com.cloudcross.ssp.service.IAdGroupService;
+import com.cloudcross.ssp.service.IAdGroupZoneService;
+import com.cloudcross.ssp.service.IBannerService;
+import com.cloudcross.ssp.service.IDirectService;
+import com.cloudcross.ssp.service.ILocationService;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+@Service
+public class AdGroupService implements IAdGroupService, ISelectorProvider {
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Autowired
+	private IAdGroupZoneService adGroupZoneService;
+	@Autowired
+	private IAdGroupPlaceService adGroupPlaceService;
+	@Autowired
+	private ILocationService locationService;
+	@Autowired
+	private IAdGroupScheduleService adGroupScheduleService;
+	@Autowired
+	private IDirectService directService;
+	@Autowired
+	private IBannerService bannerService;
+	
+	@Override
+	public AdGroup findById(Long id) {
+		return myBatisDao.get("adGroupSqlMapper.findById", id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		return myBatisDao.get("adGroupSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<AdGroup> findByParams(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("adGroupSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(AdGroup t) {
+		myBatisDao.save("adGroupSqlMapper.addAdGroup", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(AdGroup t) {
+		myBatisDao.save("adGroupSqlMapper.editAdGroup", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		myBatisDao.save("adGroupSqlMapper.updateAdGroupStatus",MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("updated", new Date())
+				.map());
+		return true;
+	}
+
+	@Override
+	public List<AdGroup> findByCampaignId(Long campaignId) {
+		return myBatisDao.getList("adGroupSqlMapper.findByCampaignId", campaignId);
+	}
+
+	@Override
+	public boolean save(AdGroup adGroup, Map<String, Object> targetParamsMap) {
+		//创建策略
+				add(adGroup);
+				
+				//处理带定向的问题
+				MapBuilder mapBuilder = MapBuilder.create(HashMap.class).add("adGroup", adGroup);
+				//地域定向
+				commonSaveDriect(targetParamsMap, mapBuilder.add("uiKey", "areas")
+															.add("uiType",DirectType.locateType)
+															.map());
+				//时间定向
+				commonSaveDriect(targetParamsMap, mapBuilder.add("uiKey","dayParting")
+															.add("uiType",DirectType.timeType)
+															.map());
+															
+				return true;
+	}
+
+	@Override
+	public boolean edit(AdGroup adGroup, Map<String, Object> targetParamsMap) {
+edit(adGroup);
+		
+		/**
+		 * 时段定向的数据更新
+		 */
+		//先删除原来的信息
+		adGroupScheduleService.deleteByAdGroupId(adGroup.getId());
+//		directService.deleteByadGroupId(adGroup.getId(), DirectType.timeType);
+		
+		//处理带定向的问题
+//		MapBuilder mapBuilder = MapBuilder.create(HashMap.class).add("adGroup", adGroup);
+		//时间定向
+		
+		//banner 表的compiledLimitation aclPlugins字段 默认值是  "true"  null
+		StringBuilder  compiledLimitationStr=new StringBuilder();
+		StringBuilder  aclPluginsStr=new StringBuilder();
+		//获取策略下的所有创意
+//		List<Ad> adList = myBatisDao.getList("adSqlMapper.findByParams", MapBuilder.create(HashMap.class)
+//														.add("adGroupId",adGroup.getId())
+//														.map());
+		List<Long> idList = null;
+		//把创意List的id保存到idList
+//		if(adList!=null&&adList.size()>0) {
+//			idList = new ArrayList<Long> ();
+//			for (Ad tempAd : adList) {
+//				idList.add(tempAd.getId());
+//			}
+//		}
+		//公共的参数
+		MapBuilder mapBuilder = MapBuilder.create(HashMap.class).add("adGroup", adGroup)
+																.add("idList", idList)
+																.add("compiledLimitationStr", compiledLimitationStr)
+																.add("aclPluginsStr",aclPluginsStr);
+		//添加策略通用处理方法
+		//地域定向	
+		commonEditDirect(targetParamsMap, mapBuilder.add("uiKey", "areas")
+												.add("uiType",DirectType.locateType)
+												.add("logical","and")
+												.add("comparison","=x")
+												.add("suffix", new String[] { "MAX_checkGeo_City('","', '=x')"})
+											    .map());
+		commonEditDirect(targetParamsMap, mapBuilder.add("uiKey", "dayParting")
+												.add("uiType",DirectType.timeType)
+												.add("logical","and")
+												.add("comparison","=~")
+												.add("suffix", new String[] { "MAX_checkTime_Day('","', '=~')"})
+											    .map());
+		
+		//修改创意的字段
+		//修改创意的compiledLimitation aclPluginsStr的字段
+		if(idList!=null){
+			if(compiledLimitationStr.length()<=0){
+				myBatisDao.save("adSqlMapper.editBatch", MapBuilder.create(HashMap.class)
+											 .add("compiledLimitation","true")
+											 .add("aclPlugins",null)
+											 .add("idList",idList)
+											 .map());
+			}else {
+				myBatisDao.save("adSqlMapper.editBatch", MapBuilder.create(HashMap.class)
+						 .add("compiledLimitation", compiledLimitationStr.toString())
+						 .add("aclPlugins",aclPluginsStr.toString())
+						 .add("idList",idList)
+						 .map());
+			}
+			
+		}else {
+			
+		}
+		
+		return true;
+	}
+
+	@Override
+	public void front2dbplace(String str, AdGroup adGroup) {
+		AdGroupPlace adGroupPlace = new AdGroupPlace();
+		if(null != str) {
+			String[] strArr = str.split(",");
+			for(int i = 0; i < strArr.length; i++) {
+				adGroupPlace.setPlaceId(Long.valueOf(strArr[i]).longValue());
+				adGroupPlace.setAdGroupId(adGroup.getId());
+				adGroupPlaceService.add(adGroupPlace);
+			}
+		}
+		
+	}
+
+	@Override
+	public boolean updatedAdgroupSupdated(Long adGroupId) {
+		myBatisDao.save("adGroupSqlMapper.updatedSupdated", adGroupId);
+		return true;
+	}
+
+	@Override
+	public List<AdGroup> findByParams(Map<String, Object> paramMap) {
+		return myBatisDao.getList("adGroupSqlMapper.findByParams1", paramMap);
+	}
+
+	@Override
+	public List<Long> findAllAdGroudByAdvertiserId(Long advertiserId) {
+		return myBatisDao.getList("adGroupSqlMapper.findAllAdGroudByAdvertiserId", advertiserId);
+	}
+
+	@Override
+	public boolean updateSupdatedByAdvertiserId(List<Long> advertiserIdList,
+			Date date) {
+		myBatisDao.save("adGroupSqlMapper.updateSupdatedByAdvertiserID",
+				MapBuilder.create(HashMap.class)
+					.add("advertiserIdList", advertiserIdList)
+					.add("modifyDate", date).map());
+		return true;
+	}
+
+	@Override
+	public boolean updateSupdatedByOrderId(List<Long> orderIdList, Date date) {
+		myBatisDao.save("adGroupSqlMapper.updateSupdatedByOrderId",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate",date).map());
+		return true;
+	}
+
+	@Override
+	public boolean updateSupdatedByCampaignId(List<Long> campaignIdList,
+			Date date) {
+		myBatisDao.save("adGroupSqlMapper.updateSupdatedByCampaignId",
+				MapBuilder.create(HashMap.class)
+					.add("campaignIdList", campaignIdList)
+					.add("modifyDate",date).map());	
+		return true;
+	}
+
+	@Override
+	public boolean updateStatusByAdvertiserId(List<Long> advertiserIdList,
+			int status) {
+		myBatisDao.save("adGroupSqlMapper.updateStatusByAdvertiserId",
+				MapBuilder.create(HashMap.class)
+					.add("advertiserIdList", advertiserIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+
+	@Override
+	public boolean updateStatusByOrderId(List<Long> orderIdList, int status) {
+		myBatisDao.save("adGroupSqlMapper.updateStatusByOrderId",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+
+	@Override
+	public boolean updateStatusByCampaignId(List<Long> campaignIdList,
+			int status) {
+		myBatisDao.save("adGroupSqlMapper.updateStatusByCampaignId",
+				MapBuilder.create(HashMap.class)
+					.add("campaignIdList", campaignIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+
+	@Override
+	public boolean updateStatusAll(List<Long> adGroupIdList, int status) {
+		Boolean adGroupFlag = updateStatus(adGroupIdList, status);
+		Boolean bannerFlag = this.bannerService.updateStatusByAdGroupId(adGroupIdList,status);
+		return adGroupFlag&&bannerFlag;
+	}
+
+	@Override
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		//这里的搜索只是对名称进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("adGroupSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public Map findAreasBack(Long adGroupId) {
+		return myBatisDao.get("adGroupSqlMapper.findAreasBack", adGroupId);
+	}
+
+	@Override
+	public List<AdGroup> findByParamsOperator(Map<String, Object> paramMap,
+			Pager pager) {
+		// 这里的搜索只是对名称进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("adGroupSqlMapper.findByParams",
+				paramMap);
+	}
+
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		Assert.isTrue(ArrayUtils.isNotEmpty(parentId));
+		String campaignId = parentId[0];
+		List<AdGroup> adGroupList = findByCampaignId(Long.parseLong(campaignId));
+		return MapBuilder.create(HashMap.class).add(campaignId, adGroupList)
+				.map();
+	}
+
+	@Override
+	public boolean saveOperator(AdGroup adGroup,
+			Map<String, Object> targetParamsMap) {
+		//创建策略
+				add(adGroup);
+				
+				//将广告位id插入表里
+				Long[] zoneId = (Long[])targetParamsMap.get("zoneId");
+				for(int i = 0; i < zoneId.length; i++) {
+					AdGroupZone adGroupZone = new AdGroupZone();
+					adGroupZone.setAdGroupId(adGroup.getId());
+					adGroupZone.setZoneId(zoneId[i]);
+					adGroupZoneService.add(adGroupZone);
+				}
+				
+				//处理带定向的问题
+				MapBuilder mapBuilder = MapBuilder.create(HashMap.class).add("adGroup", adGroup);
+				//地域定向
+				commonSaveDriect(targetParamsMap, mapBuilder.add("uiKey", "areas")
+															.add("uiType",DirectType.locateType)
+															.map());
+				//时间定向
+				commonSaveDriect(targetParamsMap, mapBuilder.add("uiKey","dayParting")
+															.add("uiType",DirectType.timeType)
+															.map());
+															
+				return true;
+	}
+
+	@Override
+	public boolean editOperator(AdGroup adGroup,
+			Map<String, Object> targetParamsMap) {
+	edit(adGroup);
+		
+		/**
+		 * 广告位的更新
+		 */
+		//先将以前存储的投放和广告位
+		adGroupZoneService.deleteByAdGroupId(adGroup.getId());
+		//将广告位id插入表里
+		Long[] zoneId = (Long[])targetParamsMap.get("zoneId");
+		for(int i = 0; i < zoneId.length; i++) {
+			AdGroupZone adGroupZone = new AdGroupZone();
+			adGroupZone.setAdGroupId(adGroup.getId());
+			adGroupZone.setZoneId(zoneId[i]);
+			adGroupZoneService.add(adGroupZone);
+		}
+		
+		/**
+		 * 时段定向的数据更新
+		 */
+		//先删除原来的信息
+		adGroupScheduleService.deleteByAdGroupId(adGroup.getId());
+//		directService.deleteByadGroupId(adGroup.getId(), DirectType.timeType);
+		
+		//处理带定向的问题
+//		MapBuilder mapBuilder = MapBuilder.create(HashMap.class).add("adGroup", adGroup);
+		//时间定向
+		
+		//banner 表的compiledLimitation aclPlugins字段 默认值是  "true"  null
+		StringBuilder  compiledLimitationStr=new StringBuilder();
+		StringBuilder  aclPluginsStr=new StringBuilder();
+		//获取策略下的所有创意
+//		List<Ad> adList = myBatisDao.getList("adSqlMapper.findByParams", MapBuilder.create(HashMap.class)
+//														.add("adGroupId",adGroup.getId())
+//														.map());
+		List<Long> idList = null;
+		//把创意List的id保存到idList
+//		if(adList!=null&&adList.size()>0) {
+//			idList = new ArrayList<Long> ();
+//			for (Ad tempAd : adList) {
+//				idList.add(tempAd.getId());
+//			}
+//		}
+		//公共的参数
+		MapBuilder mapBuilder = MapBuilder.create(HashMap.class).add("adGroup", adGroup)
+																.add("idList", idList)
+																.add("compiledLimitationStr", compiledLimitationStr)
+																.add("aclPluginsStr",aclPluginsStr);
+		//添加策略通用处理方法
+		//地域定向	
+		commonEditDirect(targetParamsMap, mapBuilder.add("uiKey", "areas")
+												.add("uiType",DirectType.locateType)
+												.add("logical","and")
+												.add("comparison","=x")
+												.add("suffix", new String[] { "MAX_checkGeo_City('","', '=x')"})
+											    .map());
+		commonEditDirect(targetParamsMap, mapBuilder.add("uiKey", "dayParting")
+												.add("uiType",DirectType.timeType)
+												.add("logical","and")
+												.add("comparison","=~")
+												.add("suffix", new String[] { "MAX_checkTime_Day('","', '=~')"})
+											    .map());
+		
+		//修改创意的字段
+		//修改创意的compiledLimitation aclPluginsStr的字段
+		if(idList!=null){
+			if(compiledLimitationStr.length()<=0){
+				myBatisDao.save("adSqlMapper.editBatch", MapBuilder.create(HashMap.class)
+											 .add("compiledLimitation","true")
+											 .add("aclPlugins",null)
+											 .add("idList",idList)
+											 .map());
+			}else {
+				myBatisDao.save("adSqlMapper.editBatch", MapBuilder.create(HashMap.class)
+						 .add("compiledLimitation", compiledLimitationStr.toString())
+						 .add("aclPlugins",aclPluginsStr.toString())
+						 .add("idList",idList)
+						 .map());
+			}
+			
+		}else {
+			
+		}
+		
+		return true;
+	}
+
+	
+public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Object> map){
+		
+		String uiKey = (String)map.get("uiKey");
+		Integer uiType = (Integer) map.get("uiType");
+		AdGroup adGroup= (AdGroup)map.get("adGroup");
+		Long adGroupId = adGroup.getId();
+		
+		if (targetParamsMap != null && targetParamsMap.containsKey(uiKey)
+				&& !targetParamsMap.get(uiKey).equals("")) {
+			// 添加地域 rv_traget_show
+			Direct direct = new Direct();
+			direct.setAdGroupId(adGroup.getId());
+			direct.setBackShow((String) targetParamsMap.get(uiKey));
+			// 将地域定向的数据转化为后台需要的数据格式
+			if(uiType == AdvertiserDirectType.locateType) {
+				direct.setData(front2dblocate((String) targetParamsMap.get(uiKey)));
+			}
+			
+			if(uiType == AdvertiserDirectType.timeType) {
+				// 将数据批量存入排期表
+		        List<AdGroupSchedule> scheduleList = AdvertiserScheduleAclsUtis.getScheduleList(
+		            adGroupId, (String) targetParamsMap.get(uiKey));
+		        
+		        //调用接口batchschedule  
+		        adGroupScheduleService.batchAdd(scheduleList);
+		        
+		        //将时间排期的数据转化为后台需要的数据格式
+		        String data = AdvertiserScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		        
+		        if(data != null && data.trim() != ""){
+		        	data = data.concat("@Asia/Shanghai");
+		        }
+		        direct.setData(data);
+		        try {
+					JSONArray sdayParting = new  JSONArray(targetParamsMap.get("sdayParting").toString());
+					JSONArray result = new JSONArray();
+					for (int i = 0; i < sdayParting.length(); i++) {
+						JSONObject obj = (JSONObject) sdayParting.get(i);
+						//默认24个时间点
+						String allHours = "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23";
+						//如果传过来的dehours是-1或空或者是空字符串,表示全选
+						if(null == obj.get("dehours") || "-1".equals(String.valueOf(obj.getString("dehours"))) ||
+								"".equals(String.valueOf(obj.getString("dehours")))) {
+							obj.put("dehours", allHours);
+						} 
+						
+						result.put(obj);
+					}
+					direct.setBackShow(result.toString());
+				} catch (JSONException e) {
+					 direct.setBackShow(targetParamsMap.get("sdayParting").toString());
+					e.printStackTrace();
+				}
+		       
+			}
+			
+			direct.setDirectType(uiType);
+			myBatisDao.save("directSqlMapper.addDirect", direct);
+		}
+	}
+	
+	// uiKey地域: "areas" uiType地域: DirectType.locateType
+	//targetParamsMap 前台UI传入的表单
+	public void commonEditDirect(Map<String,Object> targetParamsMap,Map<String,Object> map){
+
+		String uiKey = (String)map.get("uiKey");
+		Integer uiType = (Integer)map.get("uiType");
+		AdGroup adGroup= (AdGroup)map.get("adGroup");
+		List<Long> idList = (List<Long>) map.get("idList");
+		String logical = (String) map.get("logical");
+		String comparison = (String)map.get("comparison");
+		StringBuilder compiledLimitationStr=(StringBuilder) map.get("compiledLimitationStr");
+		String [] suffix=(String[]) map.get("suffix");
+		StringBuilder aclPluginsStr=(StringBuilder) map.get("aclPluginsStr");
+		//处理策略 地域定向的情况
+		if(targetParamsMap.containsKey(uiKey)){
+			//删除数据库对应的历史数据
+		    myBatisDao.delete("directSqlMapper.deleteDirect", MapBuilder.create(HashMap.class)
+		    											.add("adGroupId", adGroup.getId())
+		    											.add("directType",uiType)
+		    											.map());
+		    if(idList!=null){
+		    	myBatisDao.delete("aclsSqlMapper.deleteAclsBatch", MapBuilder.create(HashMap.class)
+						.add("idList", idList)
+						.add("type",uiType)
+						.map());	
+		    }
+			
+			if(!((String)targetParamsMap.get(uiKey)).equalsIgnoreCase("")){
+				//添加对应的定向数据 
+				Direct direct = new Direct();
+				direct.setAdGroupId(adGroup.getId());
+				direct.setBackShow((String) targetParamsMap.get(uiKey));
+				// 将地域定向的数据转化为后台需要的数据格式
+				if(uiType == AdvertiserDirectType.locateType) {
+					direct.setData(front2dblocate((String) targetParamsMap.get(uiKey)));
+				}
+				
+		        if(uiType == AdvertiserDirectType.timeType) {
+		         // 将数据批量存入排期表
+		          List<AdGroupSchedule> scheduleList = AdvertiserScheduleAclsUtis.getScheduleList(
+		              adGroup.getId(), (String) targetParamsMap.get(uiKey));
+		         
+		          //调用接口batchschedule
+		          adGroupScheduleService.batchAdd(scheduleList);
+		          String data = AdvertiserScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		          if(data != null && data.trim() != ""){
+		          	data = data.concat("@Asia/Shanghai");
+		          }
+		          direct.setData(data);
+		          try {
+			  			JSONArray sdayParting = new  JSONArray(targetParamsMap.get("sdayParting").toString());
+			  			JSONArray result = new JSONArray();
+			  			for (int i = 0; i < sdayParting.length(); i++) {
+			  				JSONObject obj = (JSONObject) sdayParting.get(i);
+			  				//默认24个时间点
+							String allHours = "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23";
+							//如果传过来的dehours是-1或空或者是空字符串,表示全选
+							if(null == obj.get("dehours") || "-1".equals(String.valueOf(obj.getString("dehours"))) ||
+									"".equals(String.valueOf(obj.getString("dehours")))) {
+								obj.put("dehours", allHours);
+							} 
+			  				result.put(obj);
+			  			}
+			  			direct.setBackShow(result.toString());
+			  		} catch (JSONException e) {
+			  			 direct.setBackShow(targetParamsMap.get("sdayParting").toString());
+			  			e.printStackTrace();
+			  		}
+		        /*  data = data.concat("@Asia/Shanghai");
+		          direct.setData(data);
+		          direct.setBackShow(targetParamsMap.get("sdayParting").toString());*/
+		        }
+				
+				direct.setDirectType(uiType);
+				myBatisDao.save("directSqlMapper.addDirect", direct);
+				//增加对应策略下的acls数据
+					if(idList!=null) {
+							Acls acls = new Acls();
+							acls.setLogical(logical);
+							acls.setType(direct.getDirectType());
+							acls.setComparison(comparison);
+							acls.setData(direct.getData());
+							acls.setAdGroupId(adGroup.getId());
+							myBatisDao.save("aclsSqlMapper.addAclsBatch",MapBuilder.create(HashMap.class)
+																						.add("idList",idList)
+																						.add("acls",acls)
+																						.add("adGroupId", adGroup.getId())
+																						.map());
+ 							if(compiledLimitationStr.length()<=0){
+ 								 compiledLimitationStr.append(suffix[0]+ direct.getData() +suffix[1]);
+						    	 aclPluginsStr.append(direct.getDirectType());
+ 							}else {
+ 								 compiledLimitationStr.append(" and "+suffix[0]+ direct.getData() +suffix[1]);
+						    	 aclPluginsStr.append(","+direct.getDirectType());
+ 							}
+							
+									}
+			}else {
+				//处理定向没有设置的情况
+			}
+			
+		}
+		
+	}	
+	
+	
+public void commonSaveDriectOperator(Map<String,Object> targetParamsMap,Map<String,Object> map){
+		
+		String uiKey = (String)map.get("uiKey");
+		String uiType = (String) map.get("uiType");
+		AdGroup adGroup= (AdGroup)map.get("adGroup");
+		Long adGroupId = adGroup.getId();
+		
+		if (targetParamsMap != null && targetParamsMap.containsKey(uiKey)
+				&& !targetParamsMap.get(uiKey).equals("")) {
+			// 添加地域 rv_traget_show
+			Direct direct = new Direct();
+			direct.setAdGroupId(adGroup.getId());
+			direct.setBackShow((String) targetParamsMap.get(uiKey));
+			// 把前台数据转化为后台需要的数据格式
+			direct.setData(front2dbOperator((String) targetParamsMap.get(uiKey),uiType));
+			
+			if(uiType.equalsIgnoreCase(DirectType.timeType)) {
+				// 将数据批量存入排期表
+		        List<AdGroupSchedule> scheduleList = OperatorScheduleAclsUtis.getScheduleList(
+		            adGroupId, (String) targetParamsMap.get(uiKey));
+		        
+		        //调用接口batchschedule  
+		        adGroupScheduleService.batchAdd(scheduleList);
+		        String data = OperatorScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		        if(data != null && data.trim() != ""){
+		        	data = data.concat("@Asia/Shanghai");
+		        }
+		        direct.setData(data);
+		        try {
+					JSONArray sdayParting = new  JSONArray(targetParamsMap.get("sdayParting").toString());
+					JSONArray result = new JSONArray();
+					for (int i = 0; i < sdayParting.length(); i++) {
+						JSONObject obj = (JSONObject) sdayParting.get(i);
+						result.put(obj);
+					}
+					direct.setBackShow(result.toString());
+				} catch (JSONException e) {
+					 direct.setBackShow(targetParamsMap.get("sdayParting").toString());
+					e.printStackTrace();
+				}
+		       
+			}
+			
+			direct.setDirectType(Integer.parseInt(uiType));
+			myBatisDao.save("directSqlMapper.addDirect", direct);
+		}
+	}
+	
+	// uiKey地域: "areas" uiType地域: DirectType.locateType
+	//targetParamsMap 前台UI传入的表单
+	public void commonEditDirectOperator(Map<String,Object> targetParamsMap,Map<String,Object> map){
+
+		String uiKey = (String)map.get("uiKey");
+		String uiType = (String)map.get("uiType");
+		AdGroup adGroup= (AdGroup)map.get("adGroup");
+		System.out.println((String)map.get(uiKey)+">>>>");
+		List<Long> idList = (List<Long>) map.get("idList");
+		String logical = (String) map.get("logical");
+		String comparison = (String)map.get("comparison");
+		StringBuilder compiledLimitationStr=(StringBuilder) map.get("compiledLimitationStr");
+		String [] suffix=(String[]) map.get("suffix");
+		StringBuilder aclPluginsStr=(StringBuilder) map.get("aclPluginsStr");
+		//处理策略 地域定向的情况
+		if(targetParamsMap.containsKey(uiKey)){
+			System.out.println("HelloWorld!");
+			//删除数据库对应的历史数据
+		    myBatisDao.delete("directSqlMapper.deleteDirect", MapBuilder.create(HashMap.class)
+		    											.add("adGroupId", adGroup.getId())
+		    											.add("directType",uiType)
+		    											.map());
+		    if(idList!=null){
+		    	myBatisDao.delete("aclsSqlMapper.deleteAclsBatch", MapBuilder.create(HashMap.class)
+						.add("idList", idList)
+						.add("type",uiType)
+						.map());	
+		    }
+			
+			if(!((String)targetParamsMap.get(uiKey)).equalsIgnoreCase("")){
+				//添加对应的定向数据 
+				Direct direct = new Direct();
+				direct.setAdGroupId(adGroup.getId());
+				direct.setBackShow((String) targetParamsMap.get(uiKey));
+				System.out.println(front2dbOperator((String) targetParamsMap.get(uiKey),uiType)+"mmmmmm");
+				// 把前台数据转化为后台需要的数据格式
+				direct.setData(front2dbOperator((String) targetParamsMap.get(uiKey),uiType));
+				
+				//注释掉排期注释代码
+		        if(uiType.equalsIgnoreCase(DirectType.timeType)) {
+		         // 将数据批量存入排期表
+		          List<AdGroupSchedule> scheduleList = OperatorScheduleAclsUtis.getScheduleList(
+		              adGroup.getId(), (String) targetParamsMap.get(uiKey));
+		         
+		          //调用接口batchschedule
+		          adGroupScheduleService.batchAdd(scheduleList);
+		          String data = OperatorScheduleAclsUtis.scheduleRoleStr(scheduleList);
+		          if(data != null && data.trim() != ""){
+		          	data = data.concat("@Asia/Shanghai");
+		          }
+		          direct.setData(data);
+		          try {
+			  			JSONArray sdayParting = new  JSONArray(targetParamsMap.get("sdayParting").toString());
+			  			JSONArray result = new JSONArray();
+			  			for (int i = 0; i < sdayParting.length(); i++) {
+			  				JSONObject obj = (JSONObject) sdayParting.get(i);
+			  				if(obj.has("dehours") && (obj.getString("dehours").equals("-1") || "".equals(obj.getString("dehours").trim()))){
+			  					obj.remove("dailyImpression");
+			  					obj.put("dailyImpression", "0");
+			  				}
+			  				result.put(obj);
+			  			}
+			  			direct.setBackShow(result.toString());
+			  		} catch (JSONException e) {
+			  			 direct.setBackShow(targetParamsMap.get("sdayParting").toString());
+			  			e.printStackTrace();
+			  		}
+		        /*  data = data.concat("@Asia/Shanghai");
+		          direct.setData(data);
+		          direct.setBackShow(targetParamsMap.get("sdayParting").toString());*/
+		        }
+				
+				direct.setDirectType(Integer.parseInt(uiType));
+				myBatisDao.save("directSqlMapper.addDirect", direct);
+				//增加对应策略下的acls数据
+					if(idList!=null) {
+							Acls acls = new Acls();
+							acls.setLogical(logical);
+							acls.setType(direct.getDirectType());
+							acls.setComparison(comparison);
+							acls.setData(direct.getData());
+							acls.setAdGroupId(adGroup.getId());
+							myBatisDao.save("aclsSqlMapper.addAclsBatch",MapBuilder.create(HashMap.class)
+																						.add("idList",idList)
+																						.add("acls",acls)
+																						.add("adGroupId", adGroup.getId())
+																						.map());
+ 							if(compiledLimitationStr.length()<=0){
+ 								 compiledLimitationStr.append(suffix[0]+ direct.getData() +suffix[1]);
+						    	 aclPluginsStr.append(direct.getDirectType());
+ 							}else {
+ 								 compiledLimitationStr.append(" and "+suffix[0]+ direct.getData() +suffix[1]);
+						    	 aclPluginsStr.append(","+direct.getDirectType());
+ 							}
+							
+									}
+			}else {
+				//处理定向没有设置的情况
+			}
+		}
+		}
+	
+	
+		private String front2dbOperator(String data ,String directType){
+			
+			if(DirectType.locateType.equalsIgnoreCase(directType)){
+		
+				return 	front2dblocate(data);
+				
+			}else if(DirectType.timeType.equalsIgnoreCase(directType)){
+				
+				return  front2dbTimeOperator(data);
+			}else if(DirectType.osType.equalsIgnoreCase(directType)){
+				//目前什么也不做,直接返回数据
+				return data;
+			}else if(DirectType.browserType.equalsIgnoreCase(directType)){
+				//目前什么也不做,直接返回数据
+				return  data;
+			}				
+			return null;
+		}
+		
+		/**
+		 * @param dateTime
+		 *            页面传入JSON的日期的数据格式
+		 *            {"Monday":{"display":[],"value":[]},"Tuesday":
+		 *            {"display":[[2,4],[11,11]],"value":[[2],[3],[4],[11]]},
+		 *            "Wednesday"
+		 *            :{"display":[],"value":[]},"Thursday":{"display":[],
+		 *            "value":[]},
+		 *            "Friday":{"display":[],"value":[]},"Saturday":{"display"
+		 *            :[],"value":[]},"Sunday":{"display":[],"value":[]}}
+		 * @return 转化成数据库需要的数据格式 0_9,0_11,1_11,1_12,2_8,2_9,3_15,3_16
+		 */
+		private  static  String front2dbTimeOperator(String dateTime) {
+
+			String[] days = { "Sunday", "Monday", "Tuesday", "Wednesday",
+					"Thursday", "Friday", "Saturday" };
+			if (dateTime != null) {
+				StringBuilder sb = new StringBuilder();
+				try {
+					JSONObject jObject = new JSONObject(dateTime);
+					for (int i = 0; i < 7; i++) {
+						if (!jObject.getJSONObject(days[i]).getString("value")
+								.equals("[]")) {
+							String tmp = jObject.getJSONObject(days[i]).getString(
+									"value");
+							String[] strs = tmp.substring(1, tmp.length() - 1)
+									.split(",");
+							for (int j = 0; j < strs.length; j++) {
+								if (sb.length() <= 0) {
+									sb.append(i + "_" + strs[j].substring(1, strs[j].length()-1));
+								} else {
+									sb.append("," + i + "_" + strs[j].substring(1, strs[j].length()-1));
+								}
+							}
+						}
+					}
+					sb.append("@Asia/Shanghai");
+					return sb.toString();
+				} catch (Exception e) {
+					// TODO: handle exception
+				}
+			}
+			return null;
+		}
+		
+		/**
+		 * 把前台获取的数据转化成后台数据库需要的数据格式 CN|/CNXAXA00|CNSHSH00|CNBJBJ00|CNAHHZ00/
+		 */
+		private String front2dblocate(String str) {
+
+			if (null != str) {
+				StringBuilder sb = new StringBuilder();
+				sb.append("CN|/");
+				String[] strArr = str.split(",");
+				for (String tmp : strArr) {
+					if (tmp.length() == 6) {
+						sb.append(tmp + "00|");
+					} else if (tmp.length() == 4) {
+						ArrayList<Location> locateList = (ArrayList<Location>) locationService
+								.findByProvince(tmp);
+						if (null != locateList) {
+							for (Location locate : locateList) {
+								sb.append(locate.getLocationT() + "|");
+							}
+						}
+					}
+				}
+				sb.deleteCharAt(sb.length() - 1);
+				sb.append("/");
+				return sb.toString();
+			}
+			return null;
+		}
+
+		@Override
+		public int countByParamsBack(Map<String, Object> paramMap) {
+			//这里的搜索只是对投放名称进行搜索
+			String searchValue = SqlHelper.doLike(paramMap.get("adGroupName"));
+			paramMap.put("adGroupName", searchValue);
+			return myBatisDao.get("adGroupSqlMapper.countByParamsBack", paramMap);
+		}
+
+		@Override
+		public List<AdGroup> findByParamsBack(Map<String, Object> paramMap,
+				Pager pager) {
+			//这里的搜索只是对投放名称进行搜索
+			String searchValue = SqlHelper.doLike(paramMap.get("adGroupName"));
+			paramMap.put("adGroupName", searchValue);
+			paramMap.put("pager", pager);
+			return myBatisDao.getList("adGroupSqlMapper.findByParams", paramMap);
+		}
+		
+		
+}

+ 70 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdGroupZoneService.java

@@ -0,0 +1,70 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.AdGroupZone;
+import com.cloudcross.ssp.service.IAdGroupZoneService;
+
+@Service
+public class AdGroupZoneService implements IAdGroupZoneService {
+	private static final Logger LOG = Logger.getLogger(AdGroupService.class);
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	@Override
+	public AdGroupZone findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<AdGroupZone> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(AdGroupZone t) {
+		myBatisDao.save("operator.adGroupZoneSqlMapper.addAdGroupZone", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(AdGroupZone t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean deleteByAdGroupId(Long adGroupId) {
+		myBatisDao.delete("operator.adGroupZoneSqlMapper.deleteByAdGroupId", adGroupId);
+		return true;
+	}
+
+	@Override
+	public List<AdGroupZone> findAllByAdGroupId(Long adGroupId) {
+		return myBatisDao.getList("operator.adGroupZoneSqlMapper.findAllByAdGroupId", adGroupId);
+	}
+
+}

+ 577 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdReportService.java

@@ -0,0 +1,577 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.Advertiser;
+import com.cloudcross.ssp.model.DeliverAnalysis;
+import com.cloudcross.ssp.service.IAccountService;
+import com.cloudcross.ssp.service.IAdReportService;
+import com.cloudcross.ssp.service.IAdvertiserService;
+
+
+@Service
+public class AdReportService implements IAdReportService {
+	@Autowired
+	private GenericIBatisDao iBatisDao;
+	@Autowired
+	private IAdvertiserService advertiserService;
+	@Autowired
+	private IAccountService accountService;
+	
+	@Override
+	public DeliverAnalysis findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(DeliverAnalysis t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(DeliverAnalysis t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public int findCountForDeliverEffectAnalysisAdvertiser(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findCountForDeliverEffectAnalysisAdvertiser", paramMap);
+	}
+
+	@Override
+	public int findCountForDeliverEffectAnalysis2(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public int findCountForLocationAdvertiser(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findCountForLocationAdvertiser", paramMap);
+	}
+
+	@Override
+	public int findCountForOs(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findCountForOs", paramMap);
+	}
+
+	@Override
+	public int findCountForScene(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findCountForScene", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByTotalReportAdvertiser(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByTotalReportAdvertiser", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByTotalReport2(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByTotalReport2", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByPlaceName(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByPlaceName", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByLocationAdvertiser(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByLocationAdvertiser", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByOs(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByOs", paramMap);
+	}
+
+	@Override
+	public Map<String, Object> findCompare(Map<String, Object> paramMap) {
+		Long advertiserId = null;
+		Long agentId = null;
+		
+		/**
+		 * 判断下是广告主,还是代理商
+		 */
+		if (!paramMap.containsKey("advertiserId")) {
+			advertiserId = null;
+		} else {
+			if (paramMap.get("advertiserId") != null
+					&& !"".equals(paramMap.get("advertiserId"))) {
+				advertiserId = Long.parseLong((String) paramMap
+						.get("advertiserId"));
+			} else {
+				advertiserId = null;
+			}
+		}
+		
+		
+		if (!paramMap.containsKey("agentId")) {
+			agentId = null;
+		} else {
+			if (paramMap.get("agentId") != null
+					&& !"".equals(paramMap.get("agentId"))) {
+				System.out.println("chenyou:paramMap" + paramMap );
+				
+				agentId = Long.parseLong(String.valueOf(paramMap.get("agentId")));
+			} else {
+				agentId = null;
+			}
+		}
+		
+		//查询用户当前余额
+		//格式化
+		DecimalFormat df = (DecimalFormat)NumberFormat.getInstance(Locale.CHINESE);
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		df.applyPattern("0.00");
+		Map<String,Object> compareMap = new HashMap<String,Object>();
+		/**
+		 * 先判断传递进来的是一个广告主id,还是代理商id
+		 */
+		if(null != advertiserId) {
+			Map<String, Object> map = null;
+			paramMap.put("advertiserId", advertiserId);
+			Advertiser advertiser = advertiserService.findById(advertiserId);
+			
+			/**
+			 * 下面是查找该广告主下的昨天和前天的曝光数和点击数
+			 */
+			paramMap.put("date", sdf.format(new Date().getTime() - 24 * 60 * 60 * 1000));
+			Long yesterdayImpressionSum = null;
+			Long yesterdayClickSum = null;
+			
+			map = findTotalImpressionAndClickByAgentId(paramMap);
+			
+			/**
+			 * 对于查询的结果进行判断,如果m找到的结果是空的,则两个值都设为0
+			 * 如果找到其中的一个值为空就把这个值设为0
+			 */
+			if(null == map) {
+				yesterdayClickSum = new Long(0);
+				yesterdayImpressionSum = new Long(0);
+			} else {
+				yesterdayClickSum = Long.parseLong(map.get("totalClick").toString());
+				yesterdayImpressionSum = Long.parseLong(map.get("totalImpression").toString());
+			}
+			
+			compareMap.put("totalImpression", yesterdayImpressionSum);
+			compareMap.put("totalClick", yesterdayClickSum);
+			
+			paramMap.put("date", sdf.format(new Date().getTime() - 2 * 24 * 60 * 60 * 1000));
+			Long beforeYesterdayImpressionSum = null;
+			Long beforeYesterdayClickSum = null;
+			map = findTotalImpressionAndClickByAgentId(paramMap);
+			
+			/**
+			 * 对于查询的结果进行判断,如果m找到的结果是空的,则两个值都设为0
+			 * 如果找到其中的一个值为空就把这个值设为0
+			 */
+			if(null == map) {
+				beforeYesterdayClickSum = new Long(0);
+				beforeYesterdayImpressionSum = new Long(0);
+			} else {
+				beforeYesterdayClickSum = Long.parseLong(map.get("totalClick").toString());
+				beforeYesterdayImpressionSum = Long.parseLong(map.get("totalImpression").toString());
+			}
+			
+			/**
+			 * 通过比对昨天和前天的数据大小判断箭头
+			 */
+			if((yesterdayImpressionSum - beforeYesterdayImpressionSum) > 0) {
+				compareMap.put("impressionStatus", "up");
+			} else if((yesterdayImpressionSum == beforeYesterdayImpressionSum)) {
+				compareMap.put("impressionStatus", "equal");
+			} else {
+				compareMap.put("impressionStatus", "down");
+			}
+			
+			if((yesterdayClickSum - beforeYesterdayClickSum) > 0) {
+				compareMap.put("clickStatus", "up");
+			} else if((yesterdayClickSum == beforeYesterdayClickSum)) {
+				compareMap.put("clickStatus", "equal");
+			} else {
+				compareMap.put("clickStatus", "down");
+			}
+			
+			
+			compareMap.put("balance",df.format(advertiser.getBalance()));
+		}
+		
+		if(null != agentId) {
+			paramMap.put("agentId", agentId);
+			Double balance = advertiserService.sumBalanceById(paramMap);
+			
+			//如果找到的余额为空则余额为0
+			if(null == balance) {
+				balance = new Double(0);
+			}
+			
+			Map<String, Object> map = null;
+			/**
+			 * 下面是查找该代理商下的所有广告主的昨天和前天的曝光数和点击数
+			 */
+			paramMap.put("date", sdf.format(new Date().getTime() - 24 * 60 * 60 * 1000));
+			
+			Long yesterdayImpressionSum = null;
+			Long yesterdayClickSum = null;
+			map = findTotalImpressionAndClickByAgentId(paramMap);
+			
+			/**
+			 * 对于查询的结果进行判断,如果没找到的结果是空的,则两个值都设为0
+			 * 如果找到其中的一个值为空就把这个值设为0
+			 */
+			if(null == map) {
+				yesterdayClickSum = new Long(0);
+				yesterdayImpressionSum = new Long(0);
+			} else {
+				System.out.println("chenyou:map" + map);
+				yesterdayClickSum = Long.parseLong(map.get("totalClick").toString());
+				yesterdayImpressionSum = Long.parseLong(map.get("totalImpression").toString());
+			}
+			
+			compareMap.put("totalImpression", yesterdayImpressionSum);
+			compareMap.put("totalClick", yesterdayClickSum);
+			
+			paramMap.put("date", sdf.format(new Date().getTime() - 2 * 24 * 60 * 60 * 1000));
+			Long beforeYesterdayImpressionSum = null;
+			Long beforeYesterdayClickSum = null;
+			map = findTotalImpressionAndClickByAgentId(paramMap);
+			
+			/**
+			 * 对于查询的结果进行判断,如果m找到的结果是空的,则两个值都设为0
+			 * 如果找到其中的一个值为空就把这个值设为0
+			 */
+			if(null == map) {
+				beforeYesterdayClickSum = new Long(0);
+				beforeYesterdayImpressionSum = new Long(0);
+			} else {
+				beforeYesterdayClickSum = Long.parseLong(map.get("totalClick").toString());
+				beforeYesterdayImpressionSum = Long.parseLong(map.get("totalImpression").toString());
+			}
+			
+			
+			/**
+			 * 通过比对昨天和前天的数据大小判断箭头
+			 */
+			if((yesterdayImpressionSum - beforeYesterdayImpressionSum) > 0) {
+				compareMap.put("impressionStatus", "up");
+			} else if((yesterdayImpressionSum == beforeYesterdayImpressionSum)) {
+				compareMap.put("impressionStatus", "equal");
+			} else {
+				compareMap.put("impressionStatus", "down");
+			}
+			
+			if((yesterdayClickSum - beforeYesterdayClickSum) > 0) {
+				compareMap.put("clickStatus", "up");
+			} else if((yesterdayClickSum == beforeYesterdayClickSum)) {
+				compareMap.put("clickStatus", "equal");
+			} else {
+				compareMap.put("clickStatus", "down");
+			}
+			
+			
+			compareMap.put("balance",df.format(balance));
+		}
+		
+		return compareMap;
+	}
+
+	@Override
+	public List<HashMap<String, Object>> findChart(String startDate,
+			String endDate, Long advertiserId) {
+		/**
+    	 * 这里查询分为是一段时间和某一天时间
+    	 */
+    	if(startDate.equals(endDate)){
+    		return iBatisDao.getList("adReportSqlMapper.findByAdvertiser1", MapBuilder.create(HashMap.class).add("startDate", startDate)
+                     .add("advertiserId", advertiserId).map());
+    	} else {
+    		 return iBatisDao.getList("adReportSqlMapper.findByAdvertiser", MapBuilder.create(HashMap.class).add("startDate", startDate)
+                     .add("endDate", endDate).add("advertiserId", advertiserId).map());      
+    	}
+		
+	}
+
+	@Override
+	public int findCountForChart(String startDate, String endDate,
+			Long advertiserId) {
+		/**
+    	 * 这里查询分为如果是一段时间或者是一天时间
+    	 */
+    	if(startDate.equals(endDate)){
+    		return iBatisDao.get("adReportSqlMapper.findCountForChart1", MapBuilder.create(HashMap.class).add("startDate", startDate)
+                     .add("advertiserId", advertiserId).map());
+    	} else {
+    		 return iBatisDao.get("adReportSqlMapper.findCountForChart", MapBuilder.create(HashMap.class).add("startDate", startDate)
+                     .add("endDate", endDate).add("advertiserId", advertiserId).map());      
+    	}
+	}
+
+	@Override
+	public List<HashMap<String, Object>> findChart(String startDate,
+			String endDate, Long advertiserId, Pager pager) {
+		/**
+    	 * 这里查询分为一段时间和某一天时间
+    	 */
+    	if(startDate.equals(endDate)){
+    		return iBatisDao.getList("adReportSqlMapper.findByAdvertiser2", MapBuilder.create(HashMap.class).add("startDate", startDate)
+                     .add("advertiserId", advertiserId).add("pager", pager).map());
+    	} else {
+    		 return iBatisDao.getList("adReportSqlMapper.findByAdvertiser3", MapBuilder.create(HashMap.class).add("startDate", startDate)
+                     .add("endDate", endDate).add("advertiserId", advertiserId).add("pager", pager).map());      
+    	}
+	}
+
+	@Override
+	public HashMap<String, Object> findTotalImpressionAndClickByAdvertiserId(
+			Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findTotalImpressionAndClickByAdvertiserId", paramMap);
+	}
+
+	@Override
+	public HashMap<String, Object> findTotalImpressionAndClickByAgentId(
+			Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findTotalImpressionAndClickByAgentId", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByTotalForExcelAdvertiser(Map<String, Object> paramMap) {
+		return iBatisDao.getList("advertiser.adReportSqlMapper.findByTotalForExcelAdvertiser", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByPlaceName(Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByPlaceNameForExcel", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByLocation(Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByLocationForExcel", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByOs(Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByOsForExcel", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findDeliverEffectAnalysisOperator(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findDeliverEffectAnalysisOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findDeliverEffectAnalysis1", paramMap);
+
+	}
+
+	@Override
+	public int countBySizeOperator(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.countBySize", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findBySizeOperator(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findBySize", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findBySizeOperator(Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findBySize1", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByPositionOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByPosition", paramMap);
+	}
+
+	@Override
+	public int countBySystemOperator(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.countBySystem", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findBySystemOperator(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findBySystem", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findBySystemOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findBySystem1", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByDeviceOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByDevice", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByArealCityOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByArealCity", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByArealOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByAreal", paramMap);
+	}
+
+	@Override
+	public int countByPlaceOperator(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.countByPlace", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByPlaceOperator(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByPlace", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByPlaceOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByPlace1", paramMap);
+	}
+
+	@Override
+	public int countByApmacOperator(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.countByApmac", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByApmacOperator(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByApmac", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByApmacOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findByApmac1", paramMap);
+	}
+
+	@Override
+	public int countByAllArealOperator(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.countByAllAreal", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByAllArealOperator(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByAllAreal", paramMap);
+	}
+
+	@Override
+	public DeliverAnalysis findSumOperator(Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findSum", paramMap);	}
+
+	@Override
+	public List<DeliverAnalysis> findAllAreaOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("adReportSqlMapper.findAllArea", paramMap);
+	}
+
+	@Override
+	public int findCountForDeliverEffectAnalysisOperator(
+			Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findCountForDeliverEffectAnalysisOperator", paramMap);
+	}
+
+	@Override
+	public int findCountForDeliverEffectAnalysisBack(
+			Map<String, Object> paramMap) {
+		return iBatisDao.get("adReportSqlMapper.findCountForDeliverEffectAnalysisBack", paramMap);
+	}
+
+	@Override
+	public int findCountForLocationBack(Map<String, Object> paramMap) {
+		return iBatisDao.get("back.adReportSqlMapper.findCountForLocationBack", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByTotalReportBack(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByTotalReportBack", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByLocationBack(
+			Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("adReportSqlMapper.findByLocationBack", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByTotalForExcelBack(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("back.adReportSqlMapper.findByTotalForExcelBack", paramMap);
+	}
+
+	@Override
+	public List<DeliverAnalysis> findByTotalForExcelOperator(
+			Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	
+}

+ 84 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdvAgentService.java

@@ -0,0 +1,84 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.AdvAgent;
+import com.cloudcross.ssp.service.IAdvAgentService;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+@Service
+public class AdvAgentService implements IAdvAgentService, ISelectorProvider {
+
+	@Autowired
+	protected GenericIBatisDao myBatisDao;
+	
+	@Override
+	public AdvAgent findById(Long id) {
+		return myBatisDao.get("advAgentSqlMapper.findById",id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advAgentSqlMapper.countByParams",paramMap);
+	}
+
+	@Override
+	public List<AdvAgent> findByParams(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advAgentSqlMapper.findByParams",paramMap);
+	}
+
+	@Override
+	public boolean add(AdvAgent t) {
+		 myBatisDao.save("advAgentSqlMapper.addAdvAgent", t);
+		 return true;
+	}
+
+	@Override
+	public boolean edit(AdvAgent t) {
+		 myBatisDao.save("advAgentSqlMapper.editAdvAgent", t);
+		 return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		myBatisDao.save("advertiserSqlMapper.updateAdvAgentStatus",
+				MapBuilder.create(HashMap.class)
+					.add("advAgentIdList", idList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+
+	@Override
+	public AdvAgent getNew(AdvAgent t) {
+		return myBatisDao.get("advAgentSqlMapper.getNew", t);
+	}
+
+	@Override
+	public List<AdvAgent> findAll() {
+		return myBatisDao.getList("advAgentSqlMapper.findAll");
+	}
+
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

+ 127 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdvBalanceService.java

@@ -0,0 +1,127 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.AdvBalance;
+import com.cloudcross.ssp.service.IAdvBalanceService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+@Service
+public class AdvBalanceService implements IAdvBalanceService{
+	@Autowired
+	private GenericIBatisDao myBatisDao;	
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advBalanceSqlMapper.countByParams", paramMap);
+	}
+	public boolean updateBalanceByAgentId(Long agentId, Float balance) {
+		myBatisDao.save("advBalanceSqlMapper.updateBalanceByAgentId.back", MapBuilder.create(HashMap.class)
+																	.add("agentId", agentId)
+																	.add("balance", balance)
+																	.map());
+		return true;
+	}
+	public int countByParamsBack(Map<String, Object> paramMap) {
+		//这里的搜索只是对日期进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		return myBatisDao.get("advBalanceSqlMapper.countByParams.back", paramMap);
+	}
+	@Override
+	public int countByParams2(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advBalanceSqlMapper.countByParams2", paramMap);
+	}
+	
+	@Override
+	public AdvBalance findById(Long id) {
+		return myBatisDao.get("advBalanceSqlMapper.selectById", id);
+	}
+	
+	@Override
+	public List<AdvBalance> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		List<AdvBalance> advBalanceList = myBatisDao.getList("advBalanceSqlMapper.selectByParams", paramMap);
+		return advBalanceList;
+	}
+	/**
+	 * back
+	 * @param paramMap
+	 * @param pager
+	 * @return
+	 */
+	public List<AdvBalance> findByParamsBack(Map<String, Object> paramMap,
+			Pager pager) {
+		//这里的搜索只是对日期进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("actTime", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("advBalanceSqlMapper.findByParams.back", paramMap);
+	}
+	
+	public List<AdvBalance> findByParams(Map<String, Object> paramMap) {
+		//这里的搜索只是对日期进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("actTime", searchValue);
+		return myBatisDao.getList("advBalanceSqlMapper.findByParams1.back", paramMap);
+	}
+	@Override
+	public List<AdvBalance> findByParams2(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("advBalanceSqlMapper.selectByParams2", paramMap);
+	}
+	
+	
+	@Override
+	public boolean edit(AdvBalance t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public AdvBalance findAdvertiserName(String advertiserName) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public boolean add(AdvBalance t) {
+		myBatisDao.save("advBalanceSqlMapper.add.back", t);
+		return true;
+	}
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	
+	@Override
+	public Float findBalanceByAgentId(Long agentId) {
+		return myBatisDao.get("advBalanceSqlMapper.findBalanceByAgentId.back", agentId);
+	}
+	
+	@Override
+	public boolean deleteAdvBalanceById(Long id) {
+		myBatisDao.save("advBalanceSqlMapper.deleteAdvBalanceById.back", id);
+		return true;
+	}
+
+}

+ 404 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdvertiserService.java

@@ -0,0 +1,404 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.awt.Image;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+import com.cloudcross.ssp.model.Advertiser;
+import com.cloudcross.ssp.service.IAdGroupService;
+import com.cloudcross.ssp.service.IAdvertiserService;
+import com.cloudcross.ssp.service.IBannerService;
+import com.cloudcross.ssp.service.ICampaignService;
+import com.cloudcross.ssp.service.IOrderService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.base.web.SimpleController;
+import com.cloudcross.ssp.base.web.result.AjaxResult;
+import com.cloudcross.ssp.common.Config;
+import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+
+@Service
+public class AdvertiserService implements IAdvertiserService, ISelectorProvider{
+
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Autowired
+	private IOrderService orderService;
+	@Autowired
+	private ICampaignService campaignService;
+	@Autowired
+	private IAdGroupService adGroupService;
+	@Autowired
+	private IBannerService bannerService;
+	@Autowired
+	Config config;
+	/****************************************************************************/
+	//文件系统可上传的文件后缀集合
+	private static Set<String> noStuffixSet = new HashSet<String>();
+	
+	//初始化可上传文件后缀
+	static {
+		noStuffixSet.add("jpg");
+		noStuffixSet.add("png");
+		noStuffixSet.add("pdf");
+		noStuffixSet.add("doc");
+		noStuffixSet.add("docx");
+		noStuffixSet.add("xlsx");
+		noStuffixSet.add("xls");
+	}
+	/****************************************************************************/
+	
+	@Override
+	public Advertiser findById(Long id) {
+		return myBatisDao.get("advertiser.advertiserSqlMapper.selectById", id);
+	}
+	@Override
+	public long findByName(String name) {	
+		return myBatisDao.get("advertiser.advertiserSqlMapper.selectByName", name);
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advertiserSqlMapper.countByParamsadvertiser", paramMap);
+	}
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advertiserSqlMapper.countByParamsoperator", paramMap);
+	}
+	
+
+	@Override
+	public List<Advertiser> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("advertiserSqlMapper.selectByParamsadvertiser", paramMap);
+	}
+	
+	public List<Advertiser> findByParamsBack(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("operator.advertiserSqlMapper.selectByParamsback", paramMap);
+	}
+	
+	public List<Advertiser> findByParamsOperator(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("operator.advertiserSqlMapper.selectByParamsoperator", paramMap);
+	}
+	
+	public List<Advertiser> findByOperator(Long operatorId){
+		//通过  操作人的 Id 来查找其对应的广告主
+		return myBatisDao.getList("advertiserSqlMapper.selectByOperatoradvertiser", operatorId);
+	}
+	public List<Advertiser> findByOperatorOperator(Long operatorId){
+		//通过  操作人的 Id 来查找其对应的广告主
+		return myBatisDao.getList("advertiserSqlMapper.selectByOperatoroperator", operatorId);
+	}
+	
+	@Override
+	public boolean add(Advertiser t) {
+		// TODO Auto-generated method stub
+		//————————————————————————————这个地方要注意一点,operator_id并没有插进去!后面需要做完善的!——————————————————————————————————————————
+		t.setUpdated(new Date());
+//		t.setIndustryId(new Long(1));//由于下拉框的功能还没有完善,测试用。
+		myBatisDao.save("advertiser.advertiserSqlMapper.addAdvertiseradvertiser", t);
+		
+		return true;
+	}
+	
+	public boolean addBack(Advertiser t) {
+		// TODO Auto-generated method stub
+		//————————————————————————————这个地方要注意一点,operator_id并没有插进去!后面需要做完善的!——————————————————————————————————————————
+		t.setUpdated(new Date());
+//		t.setIndustryId(new Long(1));//由于下拉框的功能还没有完善,测试用。
+		myBatisDao.save("advertiserSqlMapper.addAdvertiserback", t);
+		
+		return true;
+	}
+	
+	public boolean editOperator(Advertiser t) {
+		// TODO Auto-generated method stub
+		t.setUpdated(new Date());
+		myBatisDao.save("advertiserSqlMapper.addAdvertiseroperator", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(Advertiser t) {
+		// TODO Auto-generated method stub
+		t.setUpdated(new Date());
+		myBatisDao.save("advertiserSqlMapper.editAdvertiseradvertiser", t);
+		return true;
+	}
+	
+	public boolean editBack(Advertiser t) {
+		// TODO Auto-generated method stub
+		t.setUpdated(new Date());
+		myBatisDao.save("advertiserSqlMapper.editAdvertiserback", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> advertiserIdList, int status) {
+		// TODO Auto-generated method stub
+		System.out.println("yuyuyuyuyuyuyuyu----------");
+		myBatisDao.save("advertiser.advertiserSqlMapper.updateAdvertiserStatus",
+				MapBuilder.create(HashMap.class)
+					.add("advertiserIdList", advertiserIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	@Override
+	public boolean updateSupdated(List<Long> advertiserIdList, int status) {
+		myBatisDao.save("advertiser.advertiserSqlMapper.updateSupdated",
+				MapBuilder.create(HashMap.class)
+					.add("advertiserIdList", advertiserIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		// TODO Auto-generated method stub
+		System.err.println("yuan"+parentId);
+		Assert.isTrue(ArrayUtils.isNotEmpty(parentId));
+		String operaterId = parentId[0];
+		List<Advertiser> advertiserList = findByAgentId(Long.parseLong(operaterId));
+		return MapBuilder.create(HashMap.class).add("advertiserList", advertiserList)
+				.map();
+	}
+
+	@Override
+	public int countByStatus(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("advertiser.advertiserSqlMapper.countByStatus", paramMap);
+	}
+
+	@Override
+	public List<Advertiser> findByStatus(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("advertiser.advertiserSqlMapper.selectByStatus", paramMap);
+	}
+
+	@Override
+	public Double sumBalanceById(Map<String, Object> paramMap) {
+		return myBatisDao.get("advertiser.advertiserSqlMapper.sumBalanceById",paramMap);
+	}
+	@Override
+	public List<Advertiser> findByAgentId(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("advertiser.advertiserSqlMapper.selectByAgentId", id);
+	}
+	@Override
+	public List<Advertiser> findDeliverEffectAnalysis(
+			Map<String, Object> paramMap) {
+		return myBatisDao.getList("advertiser.advertiserSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+	
+	
+	/****************************************************************************/
+	public @ResponseBody AjaxResult fileUpload(HttpServletRequest request,HttpServletResponse response) {
+		Map<String,String>map = new HashMap<String,String>();
+		AjaxResult 	result = new AjaxResult();
+		
+		try {
+			// 创建一个通用的多部分解析器
+			CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
+			// 判断 request 是否有文件上传,即多部分请求
+			if (multipartResolver.isMultipart(request)) {
+				// 转换成多部分request
+				MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
+				// 取得request中的所有文件名
+				Iterator<String> iter = multiRequest.getFileNames();
+				// 取得上传文件
+				MultipartFile file = multiRequest.getFile(iter.next());
+				
+				if (file != null && file.getSize() >= 0) {
+					if (file.getSize() > 32505856) {
+						result.setStatus(SimpleController.ERROR);
+						result.setMsg("上传文件过大!");
+						return result;
+					}
+				// 取得当前上传文件的文件名称
+				String myFileName = file.getOriginalFilename();
+				// 获取文件后缀
+				String filetype = myFileName.substring(myFileName.lastIndexOf(".") + 1);
+				// 如果所属后缀为不可上传后缀,则返回
+				if (!noStuffixSet.contains(filetype)) {
+					result.setStatus(SimpleController.ERROR);
+					result.setMsg("文件类型不支持!");
+					return result;
+				}
+				String fileId = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
+				String folder = getFilePath(request);
+				String path = folder+File.separator+fileId+"."+filetype;
+				String smallName = fileId+"_small"+"."+filetype;
+				String smallPath = folder+File.separator+smallName;
+				File distFile = new File(path);
+				if (!distFile.getParentFile().exists()){
+					distFile.getParentFile().mkdirs();
+				}		
+					
+					file.transferTo(distFile);
+					smallPicture(distFile,smallPath,smallName);
+					String str = path.substring(path.indexOf("upload")-1)+","+smallPath.substring(path.indexOf("upload")-1);
+					result.setStatus(SimpleController.OK);
+					result.addData("url", str);
+				} else {
+					result.setStatus(SimpleController.ERROR);
+					result.setMsg("上传文件不能为空!");
+					return result;
+				}
+			}
+		} catch (Exception e) {
+			result.setStatus(SimpleController.ERROR);
+			result.setMsg("上传文件出现异常!");
+			return result;
+		}
+		return result;
+	}
+	
+	//生成缩略图
+	public void smallPicture(File sourceFile,String pathSmall,String uploadName) throws IOException{
+		//新建缩略图文件
+		File smallFile = new File(pathSmall);
+		if (!smallFile.getParentFile().exists()){
+			smallFile.getParentFile().mkdirs();
+		}	
+		//构造image图片
+		Image src = javax.imageio.ImageIO.read(sourceFile);
+		//表示该图像具有打包成整数的像素的8 位RGB颜色分量
+		BufferedImage tag = new BufferedImage(150, 60, BufferedImage.TYPE_INT_BGR);
+		//h绘制缩小后的图片
+		tag.getGraphics().drawImage(src, 0, 0, 150, 60, null);
+		//生成缩略图
+		ImageIO.write(tag, "jpg", smallFile);
+	}
+	
+	private String getFilePath(HttpServletRequest request){
+		// 获取当前上传的年月日
+		Calendar cal = Calendar.getInstance();
+		// 当前年
+		int year = cal.get(Calendar.YEAR);
+		// 当前月
+		int month = cal.get(Calendar.MONTH) + 1;
+		// 当前日
+		int day = cal.get(Calendar.DATE);
+		//获取文件上传目录
+		//获取项目目录
+		String realPath = request.getSession().getServletContext().getRealPath("/");
+		//获取项目的同级目录
+		String root = new File(realPath).getParentFile().getAbsolutePath();
+		//到配置文件中获取文件存放的目录
+		String upload = config.getResourceUploadDir();
+		String path = root+File.separator+upload+File.separator+"advertiser"+File.separator+year + File.separator + month + File.separator + day;
+		return path;
+	}
+	@Override
+	public String selectAdvertiserNameById(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("advertiser.advertiserSqlMapper.selectAdvertiserNameById", id);
+	}
+
+	/**
+	 * 创建人:周俊
+	 * 创建时间:2015.10.19 16.35
+	 * 修改广告主的状态,更新他的所有创意,投放的supdate位系统当前时间
+	 */
+	@Override
+	public boolean updateSupdatedAll(List<Long> advertiserIdList, Date date) {
+		List<Long>list = new ArrayList<Long>();
+		//更新广告主的所有投放的supdate
+		 Boolean adGroupFlag = this.adGroupService.updateSupdatedByAdvertiserId(advertiserIdList, date);
+		for(Long l:advertiserIdList){
+			list.addAll(adGroupService.findAllAdGroudByAdvertiserId(l));
+		}
+		
+		Boolean bannerFlag = false;
+		if(list.size()>0){
+			bannerFlag = this.bannerService.updateSupdated(list, date);
+		}else{
+			bannerFlag = true;
+			System.out.println("投放下没有创意");
+		}
+		
+		return adGroupFlag&&bannerFlag;
+	}
+	@Override
+	public boolean updateStatusAll(List<Long> advertiserIdList, int status) {
+		List<Long>list = new ArrayList<Long>();
+		Boolean advertiserFlag = updateStatus(advertiserIdList, status);
+		Boolean orderFlag = this.orderService.updateStatusByAdvertiserId(advertiserIdList,status);
+		Boolean campaignFlag = this.campaignService.updateStatusByAdvertiserId(advertiserIdList, status);
+		Boolean adGroupFlag = this.adGroupService.updateStatusByAdvertiserId(advertiserIdList, status);
+		for(Long l:advertiserIdList){
+			list.addAll(adGroupService.findAllAdGroudByAdvertiserId(l));
+		}
+		Boolean bannerFlag = false;
+		if(list.size()>0){
+			bannerFlag = this.bannerService.updateStatusByAdGroupId(list, status);
+		}else{
+			System.out.println("改投放下没有创意");
+			bannerFlag = true;
+		}
+		
+		return advertiserFlag&&orderFlag&&campaignFlag&&adGroupFlag&&bannerFlag;
+	}
+
+}

+ 138 - 0
src/main/java/com/cloudcross/ssp/service/impl/AuditBannerService.java

@@ -0,0 +1,138 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.AuditBanner;
+import com.cloudcross.ssp.service.IAuditBannerService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+
+@Service
+public class AuditBannerService implements IAuditBannerService {
+	
+	private static final Logger LOG = Logger.getLogger(AuditBannerService.class);
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	@Override
+	public AuditBanner findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		String checked = SqlHelper.doLike(paramMap.get("checked"));
+		paramMap.put("checked", checked);
+	    paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		LOG.info("paramMap的值为"+paramMap);
+		
+		return myBatisDao.get("back.auditBannerSqlMapper.countByParams", paramMap);
+		
+	}
+
+	@Override
+	public List<AuditBanner> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		LOG.info("paramMap的值为"+paramMap);
+		return myBatisDao.getList("back.auditBannerSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(AuditBanner t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(AuditBanner t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> auditBannerIdList, int checked) {
+		System.out.println("aaaaaaaaaaa==="+checked);
+		// TODO Auto-generated method stub
+		myBatisDao.save("back.auditBannerSqlMapper.updateBannerStatus",
+				MapBuilder.create(HashMap.class)
+					.add("auditBannerIdList", auditBannerIdList)
+					.add("updated", new Date())
+					.add("checked", checked).map());
+		return true;
+	}
+
+	@Override
+	public int countByOperatorIdandParams(Long operatorId,Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		LOG.info("传入的参数:" + operatorId);
+		paramMap.put("operatorId", operatorId);
+		paramMap.put("searchValue", "%" + paramMap.get("searchValue") + "%");
+		int bannerNumber = myBatisDao.get("bannerSqlMapper.countByOperatorId", paramMap);
+		LOG.info("计算素材的个数:" + bannerNumber);
+		return bannerNumber;
+	}
+
+	@Override
+	public List<AuditBanner> findByOperatorIdandParams(Long operatorId,Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		LOG.info("传入的参数:" + operatorId);
+		paramMap.put("operatorId", operatorId);
+		paramMap.put("pager", pager);
+		paramMap.put("searchValue", "%" + paramMap.get("searchValue") + "%");
+		List<AuditBanner> bannerList = myBatisDao.getList("bannerSqlMapper.findByOperatorId", paramMap);
+		LOG.info("素材列表:" + bannerList);
+		for(AuditBanner banner:bannerList){
+			System.out.println("aaa:" + banner);
+		}
+		return bannerList;
+	}
+
+	@Override
+	public boolean UpcheckStatus(List<Long> auditBannerIdList, int checked,
+			String memo) {
+		Date date = new Date();
+		myBatisDao.save("back.auditBannerSqlMapper.updateBannerStatus",
+				MapBuilder.create(HashMap.class)
+					.add("auditBannerIdList", auditBannerIdList)
+					.add("memo",memo)
+					.add("updated", date)
+					.add("checked", checked).map());
+		myBatisDao.save("back.auditBannerSqlMapper.updateOperatorBannerTime",
+				MapBuilder.create(HashMap.class)
+					.add("auditBannerIdList", auditBannerIdList)
+					.add("supdated", date)
+					.map());			
+		return true;
+	}
+
+	@Override
+	public List<AuditBanner> findAudit(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		String checked = SqlHelper.doLike(paramMap.get("checked"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("checked", checked);
+		return myBatisDao.getList("back.auditBannerSqlMapper.findAudit", paramMap);
+
+	}
+}

+ 104 - 0
src/main/java/com/cloudcross/ssp/service/impl/AuditService.java

@@ -0,0 +1,104 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.back.model.Audit;
+import com.cloudcross.ssp.back.service.IAuditService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+
+@Service
+public class AuditService implements IAuditService{
+
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	@Override
+	public Audit findById(Long id) {
+		return myBatisDao.get("auditSqlMapper.selectById", id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("auditSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<Audit> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("auditSqlMapper.selectByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(Audit t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(Audit t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> auditIdList, int checkStatus) {
+		myBatisDao.save("auditSqlMapper.updateAuditStatus",
+				MapBuilder.create(HashMap.class)
+					.add("auditIdList", auditIdList)
+					.add("modifyDate", new Date())
+					.add("checkStatus", checkStatus).map());
+		return true;
+	}
+
+	@Override
+	public int countByStatus(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("auditSqlMapper.countByStatus", paramMap);
+	
+	}
+
+	@Override
+	public List<Audit> findByStatus(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("auditSqlMapper.selectByStatus", paramMap);
+	}
+
+	@Override
+	public long findByName(String name) {
+		return myBatisDao.get("auditSqlMapper.selectByName", name);
+	}
+
+	@Override
+	public boolean updateCheckStatus(Map<String, Object> paramMap) {
+		 myBatisDao.save("auditSqlMapper.updateCheckStatus", paramMap);
+		return true;
+	}
+	@Override
+	public List<Audit> findDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		return myBatisDao.getList("auditSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+
+
+
+}

+ 356 - 0
src/main/java/com/cloudcross/ssp/service/impl/BannerService.java

@@ -0,0 +1,356 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Account;
+import com.cloudcross.ssp.model.Banner;
+import com.cloudcross.ssp.model.BannerTemplate;
+import com.cloudcross.ssp.model.Log;
+import com.cloudcross.ssp.operator.model.Zone;
+import com.cloudcross.ssp.service.IBannerService;
+import com.cloudcross.ssp.service.ILogService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Common;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+
+@Service
+public class BannerService implements IBannerService {
+	
+	private static final Logger LOG = Logger.getLogger(BannerService.class);
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Autowired
+	ILogService logService;
+	
+	@Override
+	public Banner findById(Long id) {
+		return myBatisDao.get("bannerSqlMapper.findByIdAdvertiser", id);
+	}
+	public Banner findByIdOperator(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("bannerSqlMapper.findByIdOperator",id);
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		//这里的搜索只是对名称进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+	    paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("bannerSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<Banner> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		LOG.debug("aaaaaaaaaaaa:");
+		return myBatisDao.getList("bannerSqlMapper.findByParams", paramMap);
+	}
+//新增创意,只新增一条创意记录  djp
+	@Override
+	public boolean add(Banner t) {
+		Date date = new Date();
+		t.setUpdated(date);
+		t.setSupdated(date);
+		myBatisDao.save("bannerSqlMapper.addBanner", t);
+		return true;
+	}
+	
+//编辑创意 djp
+	@Override
+	public boolean edit(Banner t) {
+		Date date = new Date();
+		t.setUpdated(date);
+		t.setSupdated(date);
+		t.getBannerTemplate().setUpdated(date);
+		myBatisDao.save("bannerSqlMapper.editBanner", t);
+		
+		return true;
+	}
+	
+	//更新创意  djp
+	@Override
+	public boolean updata(Banner t) {
+		Date date = new Date();
+		t.setUpdated(date);
+		t.setSupdated(date);
+		t.getBannerTemplate().setUpdated(date);
+		myBatisDao.save("bannerSqlMapper.updataBanner", t);
+		Long id[]={t.getId()};
+		myBatisDao.save("bannerSqlMapper.updataOperatorBanner", MapBuilder.create(HashMap.class)
+				.add("idList", id)
+				.add("supdated", date)
+				.map());
+		
+		return true;
+	}
+
+
+	@Override
+	public boolean edit(Map<String, Object> paramMap) {
+		
+	//	myBatisDao.save("bannerSqlMapper.editBanner", t);
+		
+		return true;
+	}
+	
+	//批量改变状态  djp
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		Date date = new Date();
+		//更新创意与创意模板状态
+		myBatisDao.save("bannerSqlMapper.updateBannerStatus",
+						MapBuilder.create(HashMap.class)
+						.add("status", status)
+						.add("idList", idList)
+						.add("updated", date)
+						.add("supdated", date)
+						.map());
+		/**下面为创意物理删除,暂先保留
+		//删除选择创意
+		myBatisDao.save("bannerSqlMapper.deleteBanner",
+						MapBuilder.create(HashMap.class)
+						.add("idList", idList)
+						.map());
+			*/
+		myBatisDao.save("bannerSqlMapper.updataOperatorBanner", MapBuilder.create(HashMap.class)
+				.add("idList", idList)
+				.add("supdated", date)
+				.map());
+		return true;
+	}
+	public boolean updateStatusOperator(List<Long> bannerIdList, int checked) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("bannerSqlMapper.updateBannerStatusOperator",
+				MapBuilder.create(HashMap.class)
+					.add("bannerIdList", bannerIdList)
+					.add("updated", new Date())
+					.add("checked", checked).map());
+		return true;
+	}
+	@Override
+	public int countByAdGroupId(Long adGroupId) {
+		return myBatisDao.get("bannerSqlMapper.countByAdGroupId", adGroupId);
+	}
+	@Override
+	public boolean cloneBanner(Map<String, Object> paramMap) {
+		// 查询模板
+		Long bannerTemplateId = (Long) paramMap.get("bannerTemplateId");
+		BannerTemplate bannerTemplate = myBatisDao.get("bannerTemplateSqlMapper.findById",
+				bannerTemplateId);
+		bannerTemplate.setAdvertiserId((Long)paramMap.get("advertiserId"));
+		bannerTemplate.setAgentId((Long)paramMap.get("agentId"));
+		myBatisDao.save("bannerTemplateSqlMapper.updataIds", bannerTemplate);
+		Banner banner = new Banner();
+		//设置新建创意信息
+		banner.setBannerTemplateId((Long)paramMap.get("bannerTemplateId"));
+		banner.setAdGroupId((Long) paramMap.get("adGroupId"));
+		banner.setCampaignId((Long) paramMap.get("campaignId"));
+		banner.setOrderId((Long) paramMap.get("orderId"));
+		banner.setVisitAddress("visitAddress");
+		banner.setClickAddress("clickAddress");
+		banner.setImpressionAddress("impressionAddress");
+		banner.setMemo("");
+		banner.setChecked(1);
+		banner.setStatus(bannerTemplate.getStatus());
+		Date date = new Date();
+		banner.setUpdated(date);
+		banner.setSupdated(date);
+		banner.setBannerTemplate(bannerTemplate);
+		
+		LOG.debug("banner====qqq=="+banner);
+	
+		myBatisDao.save("advertiser.bannerSqlMapper.addBanner", banner);
+		
+		/**
+		 * 创意添加成功之后要增加日志记录
+		 */
+		HttpServletRequest request = (HttpServletRequest)paramMap.get("request");
+		Account account = (Account)paramMap.get("account"); 
+		Log log = new Log();
+		//对应模块,这里应该是投放模块
+		log.setModule("Ad");
+		//对应的表名,这里是t_adgroup
+		log.setTableName("t_banner");
+		//对应的投放id
+		log.setRecordId(banner.getId());
+		//对应的操作类型
+		log.setActionType("新增");
+		//变更详情
+		log.setAction("新增了创意:" + bannerTemplate.getName());
+		log.setActionTime("100");
+		log.setAccountId(new Long(account.getId()));
+		log.setUserIp(Common.toIpAddr(request));
+		log.setAccountName(account.getAccountName());
+		logService.add(log);
+		
+
+		return true;
+	}
+	
+	//根据adGroupId更新banner的supdated时间
+	public boolean updateSupdated(List<Long> adGroupIdList, Date date) {
+		myBatisDao.save("bannerSqlMapper.updateBannerSupdated",
+				MapBuilder.create(HashMap.class)
+					.add("adGroupIdList", adGroupIdList)
+					.add("modifyDate",date ).map());
+		return true;
+	}
+	
+	public boolean updateSupdatedByOrderId(List<Long> orderIdList,Date date) {
+		myBatisDao.save("bannerSqlMapper.updateBannerSupdatedByOrderId",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate", date).map());
+		
+		return true;
+	}
+
+	@Override
+	public boolean updateSupdatedByCampaignId(List<Long> campaignIdList, Date date) {
+		myBatisDao.save("bannerSqlMapper.updateBannerSupdatedByCampaignId",
+				MapBuilder.create(HashMap.class)
+					.add("campaignIdList", campaignIdList)
+					.add("modifyDate", date).map());
+		
+		return true;
+	}
+	
+	
+	public boolean updateStatusByOrderId(List<Long> orderIdList, int status) {
+		myBatisDao.save("bannerSqlMapper.updateStatusByOrderId",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		
+		return true;
+	}
+
+	@Override
+	public boolean updateStatusByCampaignId(List<Long> campaignIdList,int status) {
+		myBatisDao.save("bannerSqlMapper.updateStatusByOrderId",
+				MapBuilder.create(HashMap.class)
+					.add("campaignIdList", campaignIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		
+		return true;
+	}
+
+	@Override
+	public boolean updateStatusByAdGroupId(List<Long> adGroupIdList, int status) {
+		myBatisDao.save("bannerSqlMapper.updateStatusByAdGroupId",
+				MapBuilder.create(HashMap.class)
+					.add("adGroupIdList", adGroupIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		
+		return true;
+	}
+
+	@Override
+	public int countByParams1(Map<String, Object> paramMap) {
+				return myBatisDao.get("bannerSqlMapper.countByParams1", paramMap);
+	}
+
+	@Override
+	public List<Banner> findByParams1(Map<String, Object> paramMap, Pager pager) {
+				paramMap.put("pager", pager);
+				return myBatisDao.getList("bannerSqlMapper.findByParams1",
+						paramMap);
+	}
+
+	@Override
+	public List<Banner> findByParams1(Map<String, Object> paramMap) {
+				return myBatisDao.getList("bannerSqlMapper.findByParams2", paramMap);
+	}
+
+	@Override
+	public boolean updateStatus1(List<Long> idList, int status) {
+		Date date = new Date();
+		myBatisDao.save("bannerSqlMapper.updateBannerStatus",MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("updated", date)
+				.add("supdated", date)
+				.map());
+		myBatisDao.save("bannerSqlMapper.updateOperatorBannerTime",MapBuilder.create(HashMap.class)
+				.add("idList", idList)
+				.add("supdated", new Date())
+				.map());
+		return true;
+	}
+	
+	public int countByOperatorIdandParams(Long operatorId,Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		LOG.info("传入的参数:" + operatorId);
+		List<Zone> zoneList = myBatisDao.getList("zoneSqlMapper.findByOperatorId", operatorId);
+		paramMap.put("zoneList", zoneList);
+		if(zoneList.size()==0){
+			return 0;
+		}
+		
+		if(paramMap.get("searchValue")!=null){
+			paramMap.put("searchValue", "%" + paramMap.get("searchValue") + "%");
+		}
+		if(paramMap.get("operatorChecked")!=null){
+			paramMap.put("operatorChecked", paramMap.get("operatorChecked"));
+		}
+		System.out.println("bbb:" + paramMap.get("checked"));
+		int bannerNumber = myBatisDao.get("bannerSqlMapper.countByOperator", paramMap);
+		LOG.info("计算素材的个数:" + bannerNumber);
+		return bannerNumber;
+	}
+	
+	public List<Banner> findByOperatorIdandParams(Long operatorId,Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		LOG.info("传入的参数:" + operatorId);
+		List<Zone> zoneList = myBatisDao.getList("zoneSqlMapper.findByOperatorId", operatorId);
+		paramMap.put("zoneList", zoneList);
+		paramMap.put("pager", pager);
+		if(zoneList.size()==0){
+			return null;
+		}
+		System.out.println("bbb1:" + paramMap.get("checked"));
+		List<Banner> bannerList = myBatisDao.getList("bannerSqlMapper.findByOpertor", paramMap);
+		LOG.info("素材列表:" + bannerList);
+		return bannerList;
+	}
+	
+	public boolean addOperatorBanner(Long bannerId,int status,Long operatorId) {
+		myBatisDao.save("bannerSqlMapper.addOperatorBanner",
+				MapBuilder.create(HashMap.class)
+					.add("operatorId", operatorId)
+					.add("bannerId",bannerId)
+					.add("supdated", new Date())
+					.add("operatorChecked", status).map());
+		return true;
+	}
+	public boolean updataOperatorBanner(Long bannerId,int status,Long operatorId) {
+		myBatisDao.save("bannerSqlMapper.updateOperatorBanner",
+				MapBuilder.create(HashMap.class)
+					.add("operatorId", operatorId)
+					.add("bannerId",bannerId)
+					.add("supdated", new Date())
+					.add("operatorChecked", status).map());
+		return true;
+	}
+}

+ 257 - 0
src/main/java/com/cloudcross/ssp/service/impl/BannerTemplateService.java

@@ -0,0 +1,257 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.advertiser.model.BannerTemplate;
+import com.cloudcross.ssp.advertiser.service.IBannerTemplateService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+
+
+@Service
+public class BannerTemplateService implements IBannerTemplateService {
+
+	private static final Logger LOG = Logger.getLogger(BannerTemplateService.class);
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public BannerTemplate findById(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("bannerTemplateSqlMapper.findById",id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		//这里的搜索只是对名称进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("bannerTemplateSqlMapper.countByParams", paramMap);
+	}
+
+	
+	public List<BannerTemplate> findByParams(Map<String, Object> paramMap, Pager pager) {
+		//这里的搜索只是对名称进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("bannerTemplateSqlMapper.findByParams", paramMap);
+	}
+	@Override
+	public boolean add(BannerTemplate t) {
+		t.setUpdated(new Date());
+		myBatisDao.save("bannerTemplateSqlMapper.addBannerTemplate", t);
+		return true;
+	}
+	
+	
+	@Override
+	public boolean save(BannerTemplate bannerTemplate,
+			Map<String, Object> targetParamsMap) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	//素材替换上传更新
+	@Override
+	public boolean edit(BannerTemplate t) {
+		Date date = new Date();
+		t.setUpdated(date);
+		myBatisDao.save("bannerTemplateSqlMapper.editadvertiser", t);
+		//更新素材对应创意审核状态
+		Long id = t.getId();
+		myBatisDao.save("bannerTemplateSqlMapper.updataBannerReplace", MapBuilder.create(HashMap.class)	
+						.add("id",id)
+						.add("supdated",date)
+						.map());
+		//更新素材对应运营商审核状态
+		myBatisDao.save("bannerTemplateSqlMapper.updataBannerOperatorReplace", MapBuilder.create(HashMap.class)	
+				.add("id",id)
+				.add("supdated",date)
+				.map());
+		return true;
+	}
+	public boolean editOperator(BannerTemplate t) {
+		t.setUpdated(new Date());
+		myBatisDao.save("bannerTemplateSqlMapper.editoperator", t);
+		return true;
+	}
+	@Override
+	public boolean updataIds(BannerTemplate t) {
+		t.setUpdated(new Date());
+		myBatisDao.save("advertiser.bannerTemplateSqlMapper.updataIds", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		Date date = new Date();
+		myBatisDao.save("bannerTemplateSqlMapper.updateBannerTemplateStatus",MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("updated", date)
+				.map());
+		//更形创意时间
+		myBatisDao.save("bannerTemplateSqlMapper.updateBannerTime", MapBuilder.create(HashMap.class)
+				.add("idList", idList)
+				.add("updataTime", date)
+				.map());
+		//更形素材运营商素材审核时间
+		myBatisDao.save("bannerTemplateSqlMapper.updateBannerOperatorTime", MapBuilder.create(HashMap.class)
+						.add("idList", idList)
+						.add("updataTime", date)
+						.map());
+		return true;
+
+	}
+	public boolean updateStatusOperator(List<Long> idList, int status) {
+		myBatisDao.save("bannerTemplateSqlMapper.updateBannerTemplateStatus",MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("updated", new Date())
+				.map());
+		return true;
+	}
+	
+	@Override
+	public boolean deleteUpdata(List<Long> idList, int status){
+		myBatisDao.save("bannerTemplateSqlMapper.updataDeleteBannerTemplateStatus",MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("updated", new Date())
+				.map());
+		return true;
+	}
+
+	@Override
+	public boolean alterName(Map<String, Object> paramMap) {
+		myBatisDao.save("bannerTemplateSqlMapper.alterName", paramMap);
+		return true;
+	}
+	
+	//@wanfu
+		@Override
+		public int countByParams2(Map<String, Object> paramMap) {
+			//这里的搜索只是对名称进行搜索
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("key", paramMap.get("searchKey"));
+			paramMap.put("value", searchValue);
+			if(paramMap.get("width") == ""){ paramMap.put("width", null); }
+			if(paramMap.get("height") == ""){ paramMap.put("height", null); }
+			if(paramMap.get("type") == ""){ paramMap.put("type", null); }
+			if(paramMap.get("status") == ""){ paramMap.put("status", null); }
+			return myBatisDao.get("bannerTemplateSqlMapper.countByParams2advertiser", paramMap);
+		}
+		public int countByParams2Operator(Map<String, Object> paramMap) {
+			//这里的搜索只是对名称进行搜索
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("key", paramMap.get("searchKey"));
+			paramMap.put("value", searchValue);
+			return myBatisDao.get("bannerTemplateSqlMapper.countByParams2operator", paramMap);
+		}
+		//@wanfu
+		@Override
+		public List<BannerTemplate> findByParams2(Map<String, Object> paramMap, Pager pager) {
+			//这里的搜索只是对名称进行搜索
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("key", paramMap.get("searchKey"));
+			paramMap.put("value", searchValue);
+			paramMap.put("pager", pager);
+			if(paramMap.get("width") == ""){ paramMap.put("width", null); }
+			if(paramMap.get("height") == ""){ paramMap.put("height", null); }
+			if(paramMap.get("type") == ""){ paramMap.put("type", null); }
+			if(paramMap.get("status") == ""){ paramMap.put("status", null); }
+			if(paramMap.get("advertiserId") == ""){ paramMap.put("advertiserId", null); }
+			if(paramMap.get("orderId") == ""){ paramMap.put("orderId", null); }
+			if(paramMap.get("campaignId") == ""){ paramMap.put("campaignId", null); }
+			if(paramMap.get("adgroupId") == ""){ paramMap.put("adgroupId", null); }
+			return myBatisDao.getList("bannerTemplateSqlMapper.findByParams2advertiser", paramMap);
+		}
+
+		public List<BannerTemplate> findByParams2Operator(Map<String, Object> paramMap, Pager pager) {
+			//这里的搜索只是对名称进行搜索
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("key", paramMap.get("searchKey"));
+			paramMap.put("value", searchValue);
+			paramMap.put("pager", pager);
+			System.out.println("bbbb3:");	
+			return myBatisDao.getList("bannerTemplateSqlMapper.findByParams2Operator", paramMap);
+		}
+		
+		@Override
+		public int countByParams3(Map<String, Object> paramMap) {
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("key", paramMap.get("searchKey"));
+			paramMap.put("value", searchValue);
+			if(paramMap.get("height")==""||paramMap.get("width")==""){
+				paramMap.put("width", null);
+				paramMap.put("height",null);
+				
+			}else{
+				paramMap.put("width", paramMap.get("width"));
+				paramMap.put("height", paramMap.get("height"));
+				
+			}
+			if(paramMap.get("type")==""){
+					paramMap.put("type",null);
+			}else{
+				paramMap.put("type",paramMap.get("type"));
+			}
+			return myBatisDao.get("bannerTemplateSqlMapper.countByParams3advertiser", paramMap);
+		}		
+		
+		public int countByParams3Operator(Map<String, Object> paramMap) {
+			return myBatisDao.get("operator.bannerTemplateSqlMapper.countByParams3operator", paramMap);
+		}
+	@Override
+	public List<BannerTemplate> findByParams4(Map<String, Object> paramMap, Pager pager) {		paramMap.put("pager", pager);
+	String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+	paramMap.put("key", paramMap.get("searchKey"));
+	paramMap.put("value", searchValue);
+	paramMap.put("pager", pager);
+	if(paramMap.get("height")==""||paramMap.get("width")==""){
+		paramMap.put("width", null);
+		paramMap.put("height",null);
+		
+	}else{
+		paramMap.put("width", paramMap.get("width"));
+		paramMap.put("height", paramMap.get("height"));
+		
+	}
+	if(paramMap.get("type")==""){
+			paramMap.put("type",null);
+	}else{
+		paramMap.put("type",paramMap.get("type"));
+	}
+		return myBatisDao.getList("bannerTemplateSqlMapper.findByParams4advertiser", paramMap);
+	}
+	public List<BannerTemplate> findByParams4Operator(Map<String, Object> paramMap, Pager pager) {
+//		//这里的搜索只是对名称进行搜索
+//		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+//		paramMap.put("key", paramMap.get("searchKey"));
+//		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("operator.bannerTemplateSqlMapper.findByParams4operator", paramMap);
+	}
+
+	
+	
+
+
+
+}

+ 229 - 0
src/main/java/com/cloudcross/ssp/service/impl/CampaignService.java

@@ -0,0 +1,229 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.advertiser.model.Campaign;
+import com.cloudcross.ssp.advertiser.service.IAdGroupService;
+import com.cloudcross.ssp.advertiser.service.IBannerService;
+import com.cloudcross.ssp.advertiser.service.ICampaignService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+
+
+/**
+ * @author Hao
+ *
+ */
+@Service
+public class CampaignService implements ICampaignService,ISelectorProvider{
+	
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Autowired
+	private IAdGroupService adGroupService;
+	@Autowired
+	private IBannerService bannerService;
+	@Override
+	public Campaign findById(Long id) {
+		return ibatisDao.get("advertiser.campaignSqlMapper.findById", id);
+	}
+	@Override
+	public long findByName(String name) {
+		return ibatisDao.get("advertiser.campaignSqlMapper.findByName", name);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// 下面的语句只能搜索活动的名称,需要改进,进行模糊搜索时用到
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return ibatisDao.get("campaignSqlMapper.countByParamsadvertiser", paramMap);
+	}
+	
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		// 下面的语句只能搜索活动的名称,需要改进,进行模糊搜索时用到
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return ibatisDao.get("operator.campaignSqlMapper.countByParamsoperator", paramMap);
+	}	
+	
+	public int countByParamsBack(Map<String, Object> paramMap) {
+		// 下面的语句只能搜索活动的名称,需要改进,进行模糊搜索时用到
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return ibatisDao.get("back.campaignSqlMapper.countByParamsback", paramMap);
+	}	
+
+	@Override
+	public List<Campaign> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return ibatisDao.getList("advertiser.campaignSqlMapper.findByParams", paramMap);
+	}
+	
+	@Override
+	public boolean add(Campaign t) {
+		Date now = new Date();
+		t.setUpDated(now);
+//		t.setActiveTime(now);
+//		t.setExpireTime(now);
+		ibatisDao.save("campaignSqlMapper.addCampaignadvertiser", t);
+		return true;
+	}
+	
+	public boolean addOperator(Campaign t) {
+		Date now = new Date();
+		t.setUpDated(now);
+		t.setActiveTime(now);
+		t.setExpireTime(now);
+		ibatisDao.save("campaignSqlMapper.addCampaignbackoroperator", t);
+		return true;
+	}
+
+
+	@Override
+	public boolean edit(Campaign t) {
+		Date now = new Date();
+		t.setUpDated(now);
+		ibatisDao.save("campaignSqlMapper.editCampaignadvertiser", t);
+		return true;
+	}
+	
+	public boolean editOperator(Campaign t) {
+		Date now = new Date();
+		t.setUpDated(now);
+		t.setExpireTime(now);
+		ibatisDao.save("campaignSqlMapper.editCampaignbackoroperator", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		ibatisDao.save(
+				"advertiser.campaignSqlMapper.updateCampaignStatus",
+				MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("upDated", new Date())
+				.map());
+         return true;
+				
+	}
+	@Override
+	public boolean updateUpstatus(List<Long> idList, int status) {
+		ibatisDao.save(
+				"advertiser.campaignSqlMapper.updateCampaignStatus",
+				MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("upDated", new Date())
+				.map());
+         return true;
+				
+	}
+
+	
+	@Override
+	public List<Campaign> findByOrderId(Long orderId) {
+		return ibatisDao.getList("campaignSqlMapper.findByOrderId", orderId);
+	}
+	
+	
+
+	
+	/**
+	 * 下拉框中搜索用到,会有两个搜索框,
+	 *      分别是广告主搜索和订单搜索
+	 * 
+	 */		
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		Assert.isTrue(ArrayUtils.isNotEmpty(parentId));
+		String orderId = parentId[0];
+		List<Campaign> campaignList = findByOrderId(Long.parseLong(orderId));
+		return MapBuilder.create(HashMap.class).add(orderId, campaignList).map();
+	}
+	
+	/**
+	 * 删除只是将status 的值改为 -1批量操作待完善
+	 */
+	
+	@Override
+	public boolean deleteByID(long id) {
+		ibatisDao.delete("advertiser.campaignSqlMapper.deleteByID", id);
+		return true;
+	}
+	
+	/**
+	 * 通过状态查找
+	 * @param paramMap
+	 * @return status
+	 */
+	@Override
+	public List<Campaign> findByStatus(Map<String, Object> paramMap) {		
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return ibatisDao.getList("advertiser.campaignSqlMapper.selectByStatus", paramMap);
+	}
+	@Override
+	public List<Campaign> findDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("advertiser.campaignSqlMapper.findDeliverEffectAnalysis", paramMap);
+
+	}
+	
+	public boolean updateSupdatedAll(List<Long> campaignIdList, Date date) {
+		Boolean adgroupFlag = this.adGroupService.updateSupdatedByCampaignId(campaignIdList, date);
+		Boolean bannerFlag = this.bannerService.updateSupdatedByCampaignId(campaignIdList, date);
+		return adgroupFlag&&bannerFlag;
+	}
+	@Override
+	public boolean updateStatusByAdvertiserId(List<Long> advertiserIdList,int status) {
+		myBatisDao.save("advertiser.campaignSqlMapper.updateStatusByAdvertiserId",
+				MapBuilder.create(HashMap.class)
+					.add("advertiserIdList", advertiserIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	
+	public boolean updateStatusByOrderId(List<Long> orderIdList,int status) {
+		myBatisDao.save("advertiser.campaignSqlMapper.updateStatusByOrderId",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	@Override
+	public boolean updateStatusAll(List<Long> campaignIdList, int status) {
+		Boolean campaignFlag = updateStatus(campaignIdList,status);
+		Boolean adgroupFlag = this.adGroupService.updateStatusByCampaignId(campaignIdList, status);
+		Boolean bannerFlag = this.bannerService.updateStatusByCampaignId(campaignIdList, status);
+		return campaignFlag&&adgroupFlag&&bannerFlag;
+	}
+	
+}

+ 136 - 0
src/main/java/com/cloudcross/ssp/service/impl/ClientAccountService.java

@@ -0,0 +1,136 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.back.model.ClientAccount;
+import com.cloudcross.ssp.back.service.IClientAccountService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+@Service
+public class ClientAccountService implements IClientAccountService{
+
+	@Autowired
+	protected GenericIBatisDao myBatisDao;
+	
+	@Override
+	public ClientAccount findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		if(paramMap.get("sysType")==null || paramMap.get("sysType")=="" || Long.valueOf(paramMap.get("sysType").toString())==0){
+			//查找全部的账号,不分媒体,不分代理商
+			paramMap.put("value", searchValue);
+			int numOperator = myBatisDao.get("clientAccountSqlMapper.countOperatorByParams", paramMap);
+			int numAgent = myBatisDao.get("clientAccountSqlMapper.countAgentByParams", paramMap);
+			return numAgent+numOperator;
+		}else if ((Long)paramMap.get("sysType")==2) {//表示只查找媒体
+			return myBatisDao.get("clientAccountSqlMapper.countOperatorByParams", paramMap);
+		}else{//只查找代理商
+			return myBatisDao.get("clientAccountSqlMapper.countAgentByParams", paramMap);
+		}
+	}
+//----------------------------
+//----------------------------
+	@Override
+	public List<ClientAccount> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		int index1 = pager.getOffset();
+		int index2 = pager.getPageSize();
+		int page = pager.getPage();
+		if (page == 0 ){
+			page = 1;
+		}
+		if(paramMap.get("sysType")==null || paramMap.get("sysType")=="" || Long.valueOf(paramMap.get("sysType").toString())==0){
+			//查找全部的账号,不分媒体,不分代理商
+			paramMap.put("value", searchValue);
+			List<ClientAccount> operatorAccountsList = myBatisDao.getList("clientAccountSqlMapper.findOperatorByParams", paramMap);
+			List<ClientAccount> agentAccountsList = myBatisDao.getList("clientAccountSqlMapper.findAgentByParams", paramMap);
+			operatorAccountsList.addAll(agentAccountsList);
+			int allNum = operatorAccountsList.size();
+			System.err.println("out"+allNum);
+			if((allNum - (page-1)*pager.getLimit())<pager.getLimit()){//要判断一下要显示的页面上总数有多少,超过list中所有的,就要调用此处!
+				List<ClientAccount> clientAccounts = operatorAccountsList.subList(index1, index1 + allNum - (page-1)*pager.getLimit());
+				return clientAccounts;
+			}
+			List<ClientAccount> clientAccountsList = operatorAccountsList.subList(index1, index1+index2);
+			return clientAccountsList;
+		}else if ((Long)paramMap.get("sysType")==2) {//表示只查找媒体
+			List<ClientAccount> operatorAccountsList = myBatisDao.getList("clientAccountSqlMapper.findOperatorByParams", paramMap);
+			int allNum = operatorAccountsList.size();
+			if((allNum - (page-1)*pager.getLimit())<pager.getLimit()){//要判断一下要显示的页面上总数有多少,超过list中所有的,就要调用此处!
+				List<ClientAccount> clientAccounts = operatorAccountsList.subList(index1, index1 + allNum - (page-1)*pager.getLimit());
+				return clientAccounts;
+			}
+			return operatorAccountsList.subList(index1, index1+index2);
+		}else{//只查找代理商
+			List<ClientAccount> agentAccountsList = myBatisDao.getList("clientAccountSqlMapper.findAgentByParams", paramMap);
+			int allNum = agentAccountsList.size();
+			if((allNum - (page-1)*pager.getLimit())<pager.getLimit()){
+				List<ClientAccount> clientAccounts = agentAccountsList.subList(index1, index1 + allNum - (page-1)*pager.getLimit());
+				return clientAccounts;
+			}
+			return agentAccountsList.subList(index1, index1+index2);
+		}
+	}
+
+	@Override
+	public boolean add(ClientAccount t) {
+		// TODO Auto-generated method stub
+		
+		
+		return true;
+	}
+
+	@Override
+	public boolean edit(ClientAccount t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<ClientAccount> findExcelAccounts(
+			HashMap<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		List<ClientAccount> res = null;
+		if(paramMap.get("sysType")==null || paramMap.get("sysType")=="" || Long.valueOf(paramMap.get("sysType").toString())==0){
+			//查找全部的账号 ,不分媒体,不分代理商
+			List<ClientAccount> operatorAccountsList = myBatisDao.getList("clientAccountSqlMapper.findOperatorByParams", paramMap);
+			List<ClientAccount> agentAccountsList = myBatisDao.getList("clientAccountSqlMapper.findAgentByParams", paramMap);
+			res = new ArrayList<ClientAccount>();
+			operatorAccountsList.addAll(agentAccountsList);
+			res.addAll(operatorAccountsList);
+		}else if ((Long)paramMap.get("sysType")==2) {//表示只查找媒体
+			res = myBatisDao.getList("clientAccountSqlMapper.findOperatorByParams", paramMap);
+		}else{//只查找代理商
+			res = myBatisDao.getList("clientAccountSqlMapper.findAgentByParams", paramMap);
+		}
+		return res;
+	}
+	
+}

+ 7 - 0
src/main/java/com/cloudcross/ssp/service/impl/CloneBanner.java

@@ -0,0 +1,7 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+public class CloneBanner {
+
+}

+ 132 - 0
src/main/java/com/cloudcross/ssp/service/impl/CodeClassService.java

@@ -0,0 +1,132 @@
+package com.cloudcross.ssp.service.impl;
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.CodeClass;
+import com.cloudcross.ssp.service.ICodeClassService;
+
+@Service
+public class CodeClassService implements ICodeClassService{
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public boolean add(CodeClass codeClass) {
+		// 添加一个用户。
+		codeClass.setUpdated(new Date());
+		myBatisDao.save("codeClassSqlMapper.addCodeClass", codeClass);
+		return true;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = "";
+		if(paramMap.get("searchValue")!=null && !"".equals(paramMap.get("searchValue")) 
+				&& !"null".equals(paramMap.get("searchValue"))){
+			searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("codeName", searchValue);
+		}else{
+			paramMap.put("codeName", null);
+		}
+		//String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		//paramMap.put("key", paramMap.get("searchKey"));
+		//paramMap.put("value", searchValue);
+		return myBatisDao.get("codeClassSqlMapper.countByParamsadvertiser", paramMap);
+	}
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("codeClassSqlMapper.countByParamsoperator", paramMap);
+	}
+	@Override
+	public boolean edit(CodeClass codeClass) {
+		        
+		codeClass.setUpdated(new Date());
+		
+		myBatisDao.save("codeClassSqlMapper.editCodeClass", codeClass);
+		return true;
+	}
+
+	
+	
+	// 根据id从数据库中查询代码分类对象。
+	@Override
+	public CodeClass findById(Long id) {
+		return myBatisDao.get("advertiser.codeClassSqlMapper.selectById", id);
+	}
+	
+
+	@Override
+	public List<CodeClass> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = "";
+		if(paramMap.get("searchValue")!=null && !"".equals(paramMap.get("searchValue")) 
+				&& !"null".equals(paramMap.get("searchValue"))){
+			searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("codeName", searchValue);
+		}else{
+			paramMap.put("codeName", null);
+		}
+		
+		//paramMap.put("key", paramMap.get("searchKey"));
+		//paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("codeClassSqlMapper.selectByParamsadvertiser", paramMap);
+	}
+	public List<CodeClass> findByParamsOperator(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		System.out.println("key="+paramMap.get("searchKey")+",value="+searchValue);
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("codeClassSqlMapper.selectByParamsoperator", paramMap);
+	}
+
+
+
+	@Override
+	public CodeClass findByName(String codeName) {
+		return myBatisDao.get("codeClassSqlMapper.selectByName", codeName);
+	}
+
+	
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		/*myBatisDao.save("advertiser.codeClassSqlMapper.updateCodeClassStatus",
+				MapBuilder.create(HashMap.class)
+					.add("idList", idList)	
+					.add("status", status).map());*/
+		System.out.println("没有sql");
+		return true;
+	
+	
+	}
+
+	/**
+	 * 根据id获取分类代码的代码值或图片
+	 * @param id
+	 * @param type
+	 * @return
+	 */
+	@Override
+	public String getCode(Long id, int type) {
+		// TODO Auto-generated method stub
+		if(type == 0){
+			return myBatisDao.get("advertiser.codeClassSqlMapper.getScriptById", id);
+		}else{
+			return myBatisDao.get("advertiser.codeClassSqlMapper.getPicyureById", id);
+		}
+	}
+	
+}

+ 132 - 0
src/main/java/com/cloudcross/ssp/service/impl/CodeConvertService.java

@@ -0,0 +1,132 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.CodeConvert;
+import com.cloudcross.ssp.service.ICodeConvertService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+@Service
+public class CodeConvertService implements ICodeConvertService{
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public boolean add(CodeConvert codeConvert) {
+	// 添加一个用户。
+		codeConvert.setUpdated(new Date());
+		myBatisDao.save("codeConvertSqlMapper.addCodeConvert", codeConvert);
+		return true;
+	}
+
+	
+	
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = "";
+		if(paramMap.get("searchValue")!=null && !"".equals(paramMap.get("searchValue")) 
+				&& !"null".equals(paramMap.get("searchValue"))){
+			searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("convertName", searchValue);
+		}else{
+			paramMap.put("convertName", null);
+		}
+		/*String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);*/
+		return myBatisDao.get("codeConvertSqlMapper.countByParamsadvertiser", paramMap);
+	}
+	
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("codeConvertSqlMapper.countByParamsOperator", paramMap);
+	}
+
+	@Override
+	public boolean edit(CodeConvert codeConvert) {
+		codeConvert.setUpdated(new Date());
+		myBatisDao.save("codeConvertSqlMapper.editCodeConvert", codeConvert);
+		return true;
+	}
+	
+	@Override
+	public CodeConvert findById(Long id) {
+		return myBatisDao.get("advertiser.codeConvertSqlMapper.selectById", id);
+	}
+	
+	@Override
+	public List<CodeConvert> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = "";
+		if(paramMap.get("searchValue")!=null && !"".equals(paramMap.get("searchValue")) 
+				&& !"null".equals(paramMap.get("searchValue"))){
+			searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("convertName", searchValue);
+		}else{
+			paramMap.put("convertName", null);
+		}
+		/*String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		System.out.println("key="+paramMap.get("searchKey")+",value="+searchValue);
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);*/
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("advertiser.codeConvertSqlMapper.selectByParamsadvertiser", paramMap);
+	}
+	public List<CodeConvert> findByParamsOperator(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		System.out.println("key="+paramMap.get("searchKey")+",value="+searchValue);
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("operator.codeConvertSqlMapper.selectByParamsoperator", paramMap);
+	}
+
+
+
+	@Override
+	public CodeConvert findByName(String convertName) {
+		return myBatisDao.get("advertiser.codeConvertSqlMapper.selectByName", convertName);
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+	
+		
+		/*myBatisDao.save("advertiser.codeConvertSqlMapper.updateCodeConvertStatus",
+				MapBuilder.create(HashMap.class)
+					.add("idList", idList)	
+					.add("status", status).map());*/
+		return true;
+	
+	
+	}
+
+	/**
+	 * 根据id获取转化代码的代码值或图片
+	 * @param id
+	 * @param type
+	 * @return
+	 */
+	@Override
+	public String getCode(Long id, int type) {
+		// TODO Auto-generated method stub
+		if(type == 0){
+			return myBatisDao.get("advertiser.codeConvertSqlMapper.getScriptById", id);
+		}else{
+			return myBatisDao.get("advertiser.codeConvertSqlMapper.getPicyureById", id);
+		}
+	}
+
+}

+ 81 - 0
src/main/java/com/cloudcross/ssp/service/impl/CodeSiteService.java

@@ -0,0 +1,81 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.CodeSite;
+import com.cloudcross.ssp.service.ICodeSiteService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.CodeSite;
+
+@Service
+public class CodeSiteService implements ICodeSiteService{
+	private static final Logger LOG = Logger.getLogger(CodeSiteService.class);
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	//广告id
+	@Override
+	public CodeSite findById(Long id) {
+		return myBatisDao.get("codeSiteSqlMapper.selectById", id);
+	}
+  
+	
+	@Override
+	public CodeSite findByAdvertiserId(Long AdvertiserId) {
+		return myBatisDao.get("codeSiteSqlMapper.selectByAdvertiserId", AdvertiserId);
+	}
+	
+	
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("codeSiteSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<CodeSite> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+	@Override
+	public boolean add(CodeSite t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(CodeSite t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+
+	@Override
+	public String getCode(Long AdvertiserId, int type) {
+		// TODO Auto-generated method stub
+		if(type == 0){
+			return myBatisDao.get("codeSiteSqlMapper.getScriptByAdId", AdvertiserId);
+		}else{
+			return myBatisDao.get("codeSiteSqlMapper.getPicyureByAdId", AdvertiserId);
+		}
+	}
+
+}

+ 92 - 0
src/main/java/com/cloudcross/ssp/service/impl/DimensionService.java

@@ -0,0 +1,92 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.Dimension;
+import com.cloudcross.ssp.service.IDimensionService;
+
+
+@Service
+public class DimensionService implements IDimensionService{	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	@Override
+	public boolean add(Dimension dimension) {
+		myBatisDao.save("dimensionSqlMapper.addDimension", dimension);
+		return true;
+	}
+	
+	//查询满足条件的记录数
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		return myBatisDao.get("dimensionSqlMapper.queryDimensionCountByAccountId", paramMap);
+	}
+	
+
+	@Override
+	public Dimension findById(Long id) {
+		return myBatisDao.get("dimensionSqlMapper.selectDimensionById", id);
+	}
+	
+	@Override
+	public List<Dimension> findByParams(Map<String, Object> paramMap, Pager pager) {
+		if(pager == null){
+			return myBatisDao.getList("dimensionSqlMapper.queryDimensionByAccountId", paramMap);
+		}else{
+			paramMap.put("pager", pager);
+			return myBatisDao.getList("dimensionSqlMapper.queryDimensionByAccountIdWithPage", paramMap);
+		}
+	}
+	
+	@Override
+	public boolean deleteById(HashMap<String, Object> paraMap) {
+		myBatisDao.delete("dimensionSqlMapper.deleteDimensionById", paraMap);
+		return true;
+	}
+	
+	@Override
+	public boolean edit(Dimension dimension) {
+		myBatisDao.save("dimensionSqlMapper.editDimension", dimension);
+		return true;
+	}
+	
+	@Override
+	public boolean updateDimensionDefault(Dimension dimension){
+		myBatisDao.save("dimensionSqlMapper.updateDimensionDefaultToFalse", dimension);
+		myBatisDao.save("dimensionSqlMapper.updateDimensionDefaulToTrue", dimension);
+		return true;
+	}
+	
+	@Override
+	public Dimension findByName(String name) {
+		return myBatisDao.get("dimensionSqlMapper.selectByName", name);
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+
+	@Override
+	public HashMap<String,Object> selectDimensionIdBydefault(Integer accountId) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("dimensionSqlMapper.selectDimensionIdBydefault",accountId);
+	}
+	
+
+}
+
+		
+	

+ 83 - 0
src/main/java/com/cloudcross/ssp/service/impl/DirectService.java

@@ -0,0 +1,83 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Direct;
+import com.cloudcross.ssp.service.IDirectService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Service
+public class DirectService implements IDirectService {
+	@Autowired
+	private GenericIBatisDao iBatisDao;
+	
+	@Override
+	public boolean add(Direct t) {
+	 
+		iBatisDao.save("directSqlMapper.addDirect", t);
+		return  true;
+	}
+	
+	@Override
+	public boolean edit(Direct t) {
+  
+		iBatisDao.save("directSqlMapper.editDirect", t);
+		return true;
+	}
+	
+	
+	
+	@Override
+	public Direct findByadGroupId(Long adGroupId, Integer directType) {
+		
+ 
+		return 	iBatisDao.get("directSqlMapper.findByAdGroupId",MapBuilder.create(HashMap.class)
+				.add("adGroupId", adGroupId)
+				.add("directType", directType)
+				.map());
+	}
+	 
+	@Override
+	public List<Direct>  findByBatch(Long adGroupId ) {
+		
+		return 	iBatisDao.getList("directSqlMapper.findByAdGroupId",MapBuilder.create(HashMap.class)
+				.add("adGroupId", adGroupId)
+				.map());
+	}
+		
+	
+	@Override
+	public boolean deleteByadGroupId(Long adGroupId, Integer directType) {
+
+		iBatisDao.delete("directSqlMapper.deleteDirect", MapBuilder.create(HashMap.class)
+				.add("adGroupId", adGroupId)
+				.add("directType", directType)
+				.map());
+		return true;
+	}
+	@Override
+	public Direct findById(Long id) {
+		throw new UnsupportedOperationException();
+	}
+	
+	@Override
+	public List<Direct> findByParams(Map<String, Object> paramMap, Pager pager) {
+		throw new UnsupportedOperationException();
+	}
+	
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		throw new UnsupportedOperationException();
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		throw new UnsupportedOperationException();
+	}
+}

+ 68 - 0
src/main/java/com/cloudcross/ssp/service/impl/FinanceService.java

@@ -0,0 +1,68 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Finance;
+import com.cloudcross.ssp.service.IFinanceService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Service
+public class FinanceService implements IFinanceService{
+	
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+
+	
+	
+	@Override
+	public Finance findById(Long id) {
+		// TODO Auto-generated method stub
+		return ibatisDao.get("advertiser.financeSqlMapper.findById", id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return ibatisDao.get("financeSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<Finance> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		paramMap.put("pager", pager);
+		return ibatisDao.getList("financeSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(Finance finance) {
+		// TODO Auto-generated method stub
+		ibatisDao.save("financeSqlMapper.addFinance",finance);
+		return true;
+	}
+
+	
+	//此时实际上为向数据表中添加记录
+	@Override
+	public boolean edit(Finance finance) {
+		// TODO Auto-generated method stub
+		ibatisDao.save("financeSqlMapper.editFinance", finance);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	
+	@Override
+	public Finance findByBalance(Map<String, Object> paramMap){
+		return ibatisDao.get("financeSqlMapper.findByBalance",paramMap);
+	}
+
+}

+ 88 - 0
src/main/java/com/cloudcross/ssp/service/impl/IndustryService.java

@@ -0,0 +1,88 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Industry;
+import com.cloudcross.ssp.service.IIndustryService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+@Service
+public class IndustryService implements IIndustryService,ISelectorProvider{
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public Industry findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public Industry findByIndustryId(Long id) {
+		return myBatisDao.get("industrySqlMapper.findByIndustryId", id);
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+	
+	@Override
+	public List<Industry> findAll() 
+	{
+		return myBatisDao.getList("industrySqlMapper.findAllIndustry");
+	}
+	
+	@Override
+	public List<Industry> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(Industry t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(Industry t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	
+	public List<Industry> findAllIndustry(){
+	List<Industry> industryList = myBatisDao.getList("industrySqlMapper.findAllIndustry");
+		return industryList;
+	}
+	//___________________________________________________________________________________________________________________
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		// TODO Auto-generated method stub//目前只有这一个是有用的!
+		List<Industry> industryList = findAllIndustry();
+		return MapBuilder.create(HashMap.class).add("allIndustry",industryList).map();
+	}
+//---------------------------------------------------------------------------------------------------------------------------
+	
+	@Override
+	public List<Industry> findAllByZoneIdOperator(Long zoneId) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("industrySqlMapper.findAllIndustryByZoneId",zoneId);
+	}
+	
+}

+ 58 - 0
src/main/java/com/cloudcross/ssp/service/impl/LocationService.java

@@ -0,0 +1,58 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Location;
+import com.cloudcross.ssp.service.ILocationService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+
+@Service
+public class LocationService implements ILocationService{
+
+	
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+
+	@Override
+	public List<Location> findAll(String country) {
+	 
+		return ibatisDao.getList("locationSqlMapper.findAll",country);
+	}
+	
+	@Override
+	public List<Location> findByProvince(String str) {
+		// TODO Auto-generated method stub
+		str = str.toUpperCase();
+		if(str.length()==4){
+			HashMap <String ,String > hashMap = new HashMap<String ,String> ();
+			hashMap.put("location1", str.substring(0,2));
+			hashMap.put("location2", str.substring(2,4));
+			System.out.println(hashMap.toString());
+			return 	ibatisDao.getList("locationSqlMapper.findByProvince",hashMap);	
+		}
+		return null;
+	}	
+	
+	@Override
+	public Location findByLocationT(String locationT) {
+		return ibatisDao.get("locationSqlMapper.findByLocationT", locationT);
+		
+	}	
+	
+	public Location findByCnAndCnCity(Map<String, String> paramMap) {
+		return ibatisDao.get("locationSqlMapper.findByCnAndCnCity", paramMap);
+	}
+
+	public List<String> findCityByProvince(String province) {
+		return ibatisDao.getList("locationSqlMapper.findCityByProvince", province);
+	}
+
+	public List<String> findAllProvince() {
+		return ibatisDao.getList("locationSqlMapper.findAllProvince");
+	}	
+}

+ 102 - 0
src/main/java/com/cloudcross/ssp/service/impl/LogService.java

@@ -0,0 +1,102 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Log;
+import com.cloudcross.ssp.service.ILogService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+
+@Service
+public class LogService implements ILogService {
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	@Override
+	public Log findById(Long id) {
+		return myBatisDao.get("logSqlMapper.selectById", id);
+	}
+	
+	@Override
+	public int countByParams(Map<String, Object> paramMap,String module) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("module", module);
+		return myBatisDao.get("logSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<Log> findByParams(Map<String, Object> paramMap, Pager pager,
+			String module ) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("module", module);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("logSqlMapper.selectByParams", paramMap);
+	}
+	
+	@Override
+	public List<Log> findByParams1(HashMap<String, Object> paramMap) {
+		return myBatisDao.getList("logSqlMapper.selectByParams1", paramMap);
+	}
+
+	@Override
+	public boolean add(Log t) {
+		t.setAccountId(t.getAccountId());
+		t.setOperTime(new Date());
+		myBatisDao.save("logSqlMapper.addLog", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(Log t) {
+		t.setOperTime(new Date());
+		myBatisDao.save("logSqlMapper.editLog", t);
+		return true;
+	}
+
+	
+	//通过模块查找信息修改记录
+	@Override
+	public Log findByModule(String module) {
+		return myBatisDao.get("logSqlMapper.findByModule", module);
+	}
+	
+	//涉及到信息修改记录的没用到这个方法
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	//涉及到信息修改记录的没用到这两个方法
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<Log> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<Log> findDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		return myBatisDao.getList("logSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+
+
+	
+	
+}

+ 62 - 0
src/main/java/com/cloudcross/ssp/service/impl/MessageReadService.java

@@ -0,0 +1,62 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.MessageRead;
+import com.cloudcross.ssp.service.IMessageReadService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+@Service("back.messageReadService")
+public class MessageReadService implements IMessageReadService{
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public MessageRead findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<MessageRead> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(MessageRead t) {	
+		myBatisDao.save("messageReadSqlMapper.addMessageRead", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(MessageRead t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<Long> selectByAccountId(Long accountId) {
+		return myBatisDao.getList("messageReadSqlMapper.selectByAccountId", accountId);
+
+	}
+
+}

+ 109 - 0
src/main/java/com/cloudcross/ssp/service/impl/MessageService.java

@@ -0,0 +1,109 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Message;
+import com.cloudcross.ssp.service.IMessageService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+@Service
+public class MessageService implements IMessageService {
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public Message findById(Long id) {
+		return myBatisDao.get("messageSqlMapper.selectById", id);
+	}
+	@Override
+	public Message selectByRead(Long id) {
+		return myBatisDao.get("messageSqlMapper.selectByRead", id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+	if(paramMap.get("searchValue")!=null && paramMap.get("searchValue")!=""){
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("value", searchValue);
+		}else{
+			paramMap.put("value", null);
+		}
+		
+		return myBatisDao.get("messageSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<Message> findByParams(Map<String, Object> paramMap, Pager pager) {
+		if(paramMap.get("searchValue")!=null && paramMap.get("searchValue")!=""){
+			String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+			paramMap.put("value", searchValue);
+		}else{
+			paramMap.put("value", null);
+		}
+		paramMap.put("pager", pager);
+	
+		return myBatisDao.getList("messageSqlMapper.selectByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(Message t) {
+		//原来类型错误,里面是new Integer(0),我改成false
+		t.setRead(false);
+		t.setSendTime(new Date());
+		myBatisDao.save("messageSqlMapper.addMessage", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(Message t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateRead(List<Long> IdList, int read) {
+		myBatisDao.save("messageSqlMapper.updateRead",
+				MapBuilder.create(HashMap.class)
+					.add("IdList", IdList)
+					.add("modifyDate", new Date())
+					.add("read", read).map());
+		return true;
+	}
+
+	@Override
+	public int countByStatus(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+
+
+	@Override
+	public List<Message> findByType(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("messageSqlMapper.selectByStatus", paramMap);
+	}
+	@Override
+	public List<Message> findByType(int type) {
+		
+		return myBatisDao.getList("messageSqlMapper.findByType", type);
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+	
+		return false;
+	}
+	
+}

+ 312 - 0
src/main/java/com/cloudcross/ssp/service/impl/ObjectBase.java

@@ -0,0 +1,312 @@
+package com.cloudcross.ssp.service.impl;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONException;
+import net.sf.json.JSONObject;
+
+import org.apache.commons.lang.StringUtils;
+
+
+
+
+public class ObjectBase {
+
+	public JSONArray getJSONArray(JSONObject obj,String key){
+		
+		JSONArray jsonArray= new JSONArray();
+		
+	
+		try {
+	        if (obj.get(key)!=null)		jsonArray=obj.getJSONArray(key);
+			
+	        
+			}catch (JSONException e){
+				
+				;
+				
+			}	
+		return jsonArray;
+		
+	}
+	public String getJSONObjectString(JSONObject obj,String key,String defaultValue){
+		
+		String ret=defaultValue;
+		
+		try {
+		 ret=obj.getString(key);
+		 
+		 if (ret==null||ret.isEmpty()) ret=defaultValue;
+		
+		}catch (JSONException e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	
+	public String getString(Object obj){
+		
+		String ret="";
+		
+		try {
+			
+		 ret=String.valueOf(obj);
+		 
+		 if (isNULLStr(ret)) ret="";
+		
+		}catch (Exception e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	public static boolean isNULLStr (String input) {
+
+		
+		if(input==null){
+			return true;
+		}
+		
+		if(StringUtils.isBlank(input)){
+			return true;
+		}
+		if(input.trim().equals("")){
+			return true;
+		}
+		
+		if(input.equalsIgnoreCase("null")){
+			return true;
+		}
+		
+		return false;
+	}
+
+	private boolean isNotNull(String str) {
+		if(str != null && !str.equals("")){
+			return true;
+		}
+		return false;
+	}
+	
+	public long getLong(Object obj){
+		
+		long ret=0;
+		
+		try {
+			
+	
+			ret=Long.parseLong(String.valueOf(obj));
+		 
+		
+		}catch (Exception e){
+			
+			//e.printStackTrace();
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	
+	public double getDouble(Object obj){
+		
+		double ret=0;
+		
+		try {
+			
+	
+			ret=Double.parseDouble(String.valueOf(obj));
+		 
+		
+		}catch (Exception e){
+			
+			//e.printStackTrace();
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	
+	public float getFloat(Object obj){
+		
+		float ret=0;
+		
+		try {
+			
+	
+			ret=Float.parseFloat(String.valueOf(obj));
+		 
+		
+		}catch (Exception e){
+			
+			//e.printStackTrace();
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	
+	public String getJSONObjectBoolean(JSONObject obj,String key){
+		
+		String ret="0";
+		
+		try {
+		 ret=obj.getString(key);
+		 
+		 if (ret.isEmpty()) {
+			 
+			 ret="0";
+		 
+		 }else if ("true".equals(ret)){
+			 
+			 ret="1";
+		 }
+			 
+				 
+		
+		}catch (JSONException e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	public String getJSONObjectLong(JSONObject obj,String key){
+		
+		String ret="0";
+		
+		try {
+		 ret=obj.getString(key);
+		 
+		 if (ret.isEmpty()) ret="0";
+		
+		}catch (JSONException e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	public double getJSONObjectDouble(JSONObject obj,String key,double defaultValue){
+		
+		double ret=0;
+		
+		try {
+		 java.text.DecimalFormat myformat=new java.text.DecimalFormat("#0.00");
+		 ret=obj.getDouble(key);//装换为double类型
+		 ret=Double.parseDouble(myformat.format(ret));//保留2为小数
+		
+		}catch (Exception e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	public float getJSONObjectFloat(JSONObject obj,String key,float defaultValue){
+		
+		float ret=0;
+		
+		try {
+		 ret=Float.parseFloat(obj.getString(key));
+		 java.text.DecimalFormat myformat=new java.text.DecimalFormat("#0.00");
+		 ret=Float.parseFloat(myformat.format(ret));//装换为double类型
+		}catch (Exception e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	public int getJSONObjectInt(JSONObject obj,String key,int defaultValue){
+		
+		int ret=0;
+		
+		try {
+		 ret=obj.getInt(key);
+		 
+		}catch (Exception ex){
+			
+			//ex.printStackTrace();
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	
+	public long getJSONObjectLong(JSONObject obj,String key,int defaultValue){
+		
+		long ret=defaultValue;
+		
+		try {
+		 ret=obj.getLong(key);
+		
+		}catch (Exception e){
+			
+			ret=defaultValue;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+	public JSONObject getJSONObject(JSONObject obj,String key){
+		
+		JSONObject ret=null;
+		
+		try {
+		 ret=obj.getJSONObject(key);
+		
+		 
+		 if (ret.isEmpty()){
+			 
+			 ret=null;
+		 }
+		}catch (JSONException e){
+			
+			;
+			
+		}
+		
+		return ret;
+		
+		
+	}
+}

+ 129 - 0
src/main/java/com/cloudcross/ssp/service/impl/OperatorBalanceService.java

@@ -0,0 +1,129 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.OperatorBalance;
+import com.cloudcross.ssp.service.IOperatorBalanceService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+@Service
+public class OperatorBalanceService implements IOperatorBalanceService {
+	private static final Logger LOG = Logger.getLogger(OperatorBalanceService.class);
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public OperatorBalance findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		return myBatisDao.get("operatorBalanceSqlMapper.countByParamsOperator", paramMap);
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		//这里的搜索只是对交易号进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("num", searchValue);
+		return myBatisDao.get("operatorBalanceSqlMapper.countByParams", paramMap);
+	}
+
+
+
+	@Override
+	public List<OperatorBalance> findByParamsOperator(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("operatorBalanceSqlMapper.findByParamsOperator", paramMap);
+	}
+
+
+
+
+	@Override
+	public List<OperatorBalance> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		//这里的搜索只是对交易号进行搜索
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("num", searchValue);
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("operatorBalanceSqlMapper.findByParams", paramMap);
+	}
+	//导出excel
+	@Override
+	public List<OperatorBalance> findFinancial(Map<String, Object> paramMap) {
+			
+			return myBatisDao.getList("operatorBalanceSqlMapper.findFinancial", paramMap);	
+	}
+
+	@Override
+	public boolean add(OperatorBalance t) {
+		myBatisDao.save("operatorBalanceSqlMapper.addOperatorBalance", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(OperatorBalance t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		myBatisDao.save("operatorBalanceSqlMapper.updateOperatorBalanceStatus",MapBuilder.create(HashMap.class)
+				.add("state", status)
+				.add("idList", idList)
+				.map());
+		return true;
+	}
+
+
+	@Override
+	public Float findAvailableMoney(Long operatorId) {
+		return myBatisDao.get("operatorBalanceSqlMapper.findAvailableMoney", operatorId);
+	}
+
+	@Override
+	public Float findSumAmountByOperatorId(Long operatorId) {
+		return myBatisDao.get("operatorBalanceSqlMapper.findSumAmountByOperatorId", operatorId);
+	}
+
+
+//	@Override
+//	public Float findAvailableMoney(Long operatorId) {
+//		return myBatisDao.get("operatorBalanceSqlMapper.findAvailableMoney", operatorId);
+//	}
+
+
+	@Override
+	public boolean updateStatus(List<Long> idList, String reason, int status) {
+		myBatisDao.save("operatorBalanceSqlMapper.updateOperatorBalanceStatus",MapBuilder.create(HashMap.class)
+				.add("state", status)
+				.add("idList", idList)
+				.add("reason", reason)
+				.map());
+		return true;
+	}
+
+	@Override
+	public boolean moneyBackToOperator(Long id) {
+		myBatisDao.save("operatorBalanceSqlMapper.moneyBackToOperator", id);
+		return true;
+	}
+	@Override
+	public List<OperatorBalance> findByParams(Map<String, Object> paramMap) {
+		return myBatisDao.getList("operatorBalanceSqlMapper.findByParams1", paramMap);
+	}
+
+}

+ 194 - 0
src/main/java/com/cloudcross/ssp/service/impl/OperatorReportService.java

@@ -0,0 +1,194 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.OperatorReport;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.service.IOperatorReportService;
+
+
+
+
+@Service("back.operatorReportService")
+public class OperatorReportService implements IOperatorReportService {
+	@Autowired
+	private GenericIBatisDao iBatisDao;
+	
+	@Override
+	public int findCountForDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.findCountForDeliverEffectAnalysis", paramMap);
+	}
+	
+	@Override
+	public List<OperatorReport> findDeliverEffectAnalysis(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+	
+	@Override
+	public int countBySize(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.countBySize", paramMap);
+	}
+	
+	@Override
+	public List<OperatorReport> findBySize(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findBySize", paramMap);
+	}
+
+	@Override
+	public int countByPosition(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.countByPosition", paramMap);
+	}
+	
+	@Override
+	public List<OperatorReport> findByPosition(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findByPosition", paramMap);
+	}
+	@Override
+	public int countBySystem(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.countBySystem", paramMap);
+	}
+	
+	@Override
+	public List<OperatorReport> findBySystem(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findBySystem", paramMap);
+	}
+	
+	@Override
+	public int countByPlace(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.countByPlace", paramMap);
+	}
+	
+	@Override
+	public List<OperatorReport> findByPlace(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findByPlace", paramMap);
+	}
+
+	@Override
+	public OperatorReport findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<OperatorReport> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(OperatorReport t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(OperatorReport t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<OperatorReport> findDeliverEffectAnalysis(
+			Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findDeliverEffectAnalysis1", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findBySize(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findBySize1", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findByPosition(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findByPosition1", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findBySystem(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findBySystem1", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findByDevice(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findByDevice", paramMap);
+	}
+
+
+	@Override
+	public List<OperatorReport> findByPlace(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findByPlace1", paramMap);
+	}
+
+	@Override
+	public OperatorReport findSum(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.findSum", paramMap);
+	}
+
+	@Override
+	public int countByAllAreal(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.countByAllAreal", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findByAllAreal(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findByAllAreal", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findByAreal(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findByAreal", paramMap);
+	}
+
+
+	@Override
+	public List<OperatorReport> findAllArea(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findAllArea", paramMap);
+	}
+
+	@Override
+	public int countByApmac(Map<String, Object> paramMap) {
+		return iBatisDao.get("operatorReportSqlMapper.countByApmac", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findByApmac(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return iBatisDao.getList("operatorReportSqlMapper.findByApmac", paramMap);
+	}
+
+	@Override
+	public List<OperatorReport> findByApmac(Map<String, Object> paramMap) {
+		return iBatisDao.getList("operatorReportSqlMapper.findByApmac1", paramMap);
+	}
+	
+	
+
+	
+	
+}

+ 115 - 0
src/main/java/com/cloudcross/ssp/service/impl/OperatorService.java

@@ -0,0 +1,115 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.Operator;
+import com.cloudcross.ssp.service.IOperatorService;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+@Service
+public class OperatorService implements IOperatorService,ISelectorProvider{
+
+	@Autowired
+	protected GenericIBatisDao myBatisDao;
+	@Override
+	public Operator findById(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("operatorSqlMapper.findById",id);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("operatorSqlMapper.countByParams",paramMap);
+	}
+	
+		@Override
+	public int countByParamsBack(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("operatorSqlMapper.countByParams",paramMap);
+	}
+	
+
+	@Override
+	public List<Operator> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		paramMap.put("paramMap", paramMap);
+		return myBatisDao.getList("operatorSqlMapper.findByParams", paramMap);
+	}
+	
+		@Override
+	public List<Operator> findByParamsBack(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		paramMap.put("pager", pager);
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("operatorSqlMapper.findByParams", paramMap);
+	}
+	
+
+	@Override
+	public boolean add(Operator t) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("operatorSqlMapper.add", t);
+		return true;
+	}
+	
+	
+
+	@Override
+	public boolean edit(Operator t) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("operatorSqlMapper.editOperator", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	
+	@Override
+	public boolean updateStatusBack(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("operatorSqlMapper.updateOperatorStatus",
+				MapBuilder.create(HashMap.class)
+					.add("operatorIdList", idList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	
+	public List<Operator> findAllOperator(){
+		return myBatisDao.getList("operatorSqlMapper.findAllOperator");
+	}
+	
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		// TODO Auto-generated method stub
+//		Assert.isTrue(ArrayUtils.isNotEmpty(parentId));
+		String operaterId = parentId[0];
+		List<Operator> operatorList = findAllOperator();
+		return MapBuilder.create(HashMap.class).add("operatorList", operatorList)
+				.map();
+	}
+
+	@Override
+	public Operator getNew(Operator o) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("operatorSqlMapper.getNew", o);
+	}
+}

+ 231 - 0
src/main/java/com/cloudcross/ssp/service/impl/OrderService.java

@@ -0,0 +1,231 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Order;
+import com.cloudcross.ssp.advertiser.service.IAdGroupService;
+import com.cloudcross.ssp.advertiser.service.IBannerService;
+import com.cloudcross.ssp.advertiser.service.ICampaignService;
+import com.cloudcross.ssp.service.IOrderService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+@Service
+public class OrderService implements IOrderService,ISelectorProvider {
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Autowired
+	private ICampaignService campaignService;
+	@Autowired
+	private IAdGroupService adGroupService;
+	@Autowired
+	private IBannerService bannerService;
+
+	
+
+	@Override
+	public Order findById(Long id) {
+		return myBatisDao.get("orderSqlMapper.selectById", id);
+	}
+	
+	@Override
+	public long findByName(String name) {
+		return myBatisDao.get("orderSqlMapper.selectByName", name);
+	}
+	
+	@Override
+	public int countByParamsAdvertiser(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("orderSqlMapper.countByParamsAdvertiser", paramMap);
+	}
+	
+		@Override
+	public int countByParamsBack(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("orderSqlMapper.countByParamsBack", paramMap);
+	}
+		@Override
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.get("orderSqlMapper.countByParamsOperator", paramMap);
+	}
+	
+	
+	
+	
+	
+	
+	
+	@Override
+	public List<Order> findByParamsAdvertiser(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+	
+		return myBatisDao.getList("orderSqlMapper.selectByParamsAdvertiser", paramMap);
+	}
+		@Override
+	public List<Order> findByParamsOperator(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+	
+		return myBatisDao.getList("orderSqlMapper.selectByParamsOperator", paramMap);
+	}
+		@Override
+	public List<Order> findByParamsBack(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+	
+		return myBatisDao.getList("orderSqlMapper.selectByParamsBack", paramMap);
+	}
+	
+	/**
+	 * @param setUpdated the setUpdated to set
+	 */
+	@Override
+	public boolean add(Order t) {
+		t.setAdvertiserId(t.getAdvertiserId());
+		//t.setStatus(Status.enable.value);
+		t.setUpdated(new Date());
+		myBatisDao.save("orderSqlMapper.addOrder", t);
+		return true;
+	}
+	
+		@Override
+	public boolean addBack(Order t) {
+		t.setAdvertiserId(t.getAdvertiserId());
+		//t.setStatus(Status.enable.value);
+		t.setUpdated(new Date());
+		myBatisDao.save("orderSqlMapper.addOrderBack", t);
+		return true;
+	}
+	
+
+	@Override
+	public boolean edit(Order t) {
+		t.setUpdated(new Date());
+		myBatisDao.save("orderSqlMapper.editOrder", t);
+		return true;
+	}
+
+
+	@Override
+	public boolean updateStatus(List<Long> orderIdList, int status) {
+		myBatisDao.save("orderSqlMapper.updateOrderStatus",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	
+	@Override
+	//改变投放的Supdated
+	public boolean updateSupdated(List<Long> orderIdList, int status) {
+		myBatisDao.save("orderSqlMapper.updateSupdated",
+				MapBuilder.create(HashMap.class)
+					.add("orderIdList", orderIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+
+	
+	@Override
+	public List<Order> findByAdvertiserType(String advertiserType) {
+		return myBatisDao.getList("orderSqlMapper.selectByAdvertiserType",
+				advertiserType);
+	}
+	
+	@Override
+	public List<Order> findByAdvertiserId(Long advertiserId) {
+		return myBatisDao.getList("orderSqlMapper.findByAdvertiserId", advertiserId);
+	}
+	
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] advertiserId) {
+		Assert.isTrue(ArrayUtils.isNotEmpty(advertiserId));
+		String advertiserType = advertiserId[0];
+		List<Order> orderList = findByAdvertiserType(advertiserType);
+		return MapBuilder.create(HashMap.class).add("orderList", orderList).map();
+	}
+
+	@Override
+	public List<Order> findByStatus(Map<String, Object> paramMap) {
+		
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		return myBatisDao.getList("orderSqlMapper.selectByStatus", paramMap);
+	}
+
+	@Override
+	public List<Order> findDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		return myBatisDao.getList("orderSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+
+	@Override
+	public String selectOrderNameById(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("orderSqlMapper.selectOrderNameById", id);
+	}
+	@Override
+	public boolean updateSupdatedAll(List<Long> orderIdList, Date date) {
+		Boolean adgroupFlag = this.adGroupService.updateSupdatedByOrderId(orderIdList, date);
+		Boolean bannerFlag = this.bannerService.updateSupdatedByOrderId(orderIdList, date);
+		return adgroupFlag&&bannerFlag;
+	}
+
+	@Override
+	public boolean updateStatusByAdvertiserId(List<Long> advertiserIdList,int status) {
+		myBatisDao.save("orderSqlMapper.updateStatusByAdvertiserId",
+				MapBuilder.create(HashMap.class)
+					.add("advertiserIdList", advertiserIdList)
+					.add("modifyDate", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	
+	public boolean updateStatusAll(List<Long> orderIdList, int status) {
+		Boolean orderFlag = updateStatus(orderIdList,status);
+		Boolean campaignFlag = this.campaignService.updateStatusByOrderId(orderIdList, status);
+		Boolean adGroupFlag =this.adGroupService.updateStatusByOrderId(orderIdList, status);
+		Boolean bannerFlag = this.bannerService.updateStatusByOrderId(orderIdList, status);
+		return orderFlag&&campaignFlag&&adGroupFlag&&bannerFlag;
+	}
+	@Override
+	public List<Order> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+}

+ 76 - 0
src/main/java/com/cloudcross/ssp/service/impl/PlaceOperatorService.java

@@ -0,0 +1,76 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.PlaceOperator;
+import com.cloudcross.ssp.service.IPlaceOperatorService;
+
+@Service
+public class PlaceOperatorService implements IPlaceOperatorService{
+	private static final Logger LOG = Logger.getLogger(PlaceOperatorService.class);
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public Long findByNameAndOperatorId(Map<String, Object> paramMap) {
+		return myBatisDao.get("placeOperatorSqlMapper.findByNameAndOperatorId", paramMap); 
+	}
+
+	@Override
+	public List<String> findPlaceByOperator(Long OperatorId) {
+		return myBatisDao.getList("placeOperatorSqlMapper.findPlaceByOperator", OperatorId);
+	}
+
+	@Override
+	public List<Map<Long, String>> findPlace(Long OperatorId) {
+		return myBatisDao.getList("placeOperatorSqlMapper.findPlace", OperatorId);
+	}
+
+	@Override
+	public PlaceOperator findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		return myBatisDao.get("placeOperatorSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<PlaceOperator> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("placeOperatorSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(PlaceOperator t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(PlaceOperator t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<PlaceOperator> findByParams(Map<String, Object> paramMap) {
+		return myBatisDao.getList("placeOperatorSqlMapper.findByParams1", paramMap);
+	}
+}

+ 63 - 0
src/main/java/com/cloudcross/ssp/service/impl/PlaceService.java

@@ -0,0 +1,63 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Place;
+import com.cloudcross.ssp.service.IPlaceService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Service
+public class PlaceService implements IPlaceService {
+
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+	@Override
+	public Place findById(Long id) {
+		return ibatisDao.get("placeSqlMapper.findById", id);
+	}
+	@Override
+	public List<Place> findAll() {
+		return ibatisDao.getList("placeSqlMapper.findAll");
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<Place> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(Place t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(Place t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public List<Place> findPlace() {
+		// TODO Auto-generated method stub
+		return ibatisDao.getList("placeSqlMapper.findAll");
+	}
+
+
+}

+ 148 - 0
src/main/java/com/cloudcross/ssp/service/impl/ResourcesService.java

@@ -0,0 +1,148 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.AccountResources;
+import com.cloudcross.ssp.model.Resources;
+import com.cloudcross.ssp.model.ResourcesRole;
+import com.cloudcross.ssp.service.IResourcesService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.pulgin.mybatis.plugin.PageView;
+@Service
+public class ResourcesService implements IResourcesService {
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Override
+	public PageView query(PageView pageView, Resources t) {
+		// TODO Auto-generated method stub
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("paging", pageView);
+		map.put("t", t);
+		List<Resources> list = myBatisDao.getList("resourcesSqlMapper.query", map);
+		pageView.setRecords(list);
+		return pageView;
+	}
+
+	@Override
+	public List<Resources> queryAll(Resources t) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("resourcesSqlMapper.queryAll",t);
+	}
+	public boolean deleteResourceByAccount(Long accountId){
+		myBatisDao.save("resourcesSqlMapper.deleteAccountResources", accountId);
+		return true;
+	}
+	@Override
+	public void delete(String id) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("resourcesSqlMapper.delete", id);
+	}
+	public boolean addAccountResourcess(Long accountId, List<Long> list) {
+		// TODO Auto-generated method stub
+		//先将权限表中所有对应这一accountId的权限都删掉
+		myBatisDao.save("resourcesSqlMapper.deleteAccountResources", accountId);
+		for (Long l : list) {
+			//再循环将新传进来的权限一个一个添加进来
+			AccountResources ar = new AccountResources();
+			ar.setAccountId(accountId);
+			ar.setResourceId(l);
+			myBatisDao.save("resourcesSqlMapper.addAccountResourcess", ar);;
+		}
+		return true;
+	}
+	@Override
+	public void update(Resources t) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("resourcesSqlMapper.update", t);
+	}
+
+	@Override
+	public Resources getById(String id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("resourcesSqlMapper.getById", id);
+	}
+
+	@Override
+	public void add(Resources t) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("resourcesSqlMapper.add",t);
+	}
+//-----------------------↓↓↓↓↓↓↓↓↓↓↓↓↓↓这部分主要用于对于t_res_accounts表的增、查、改、删-----------------------------------------------------------------------------------------
+	@Override
+	public List<Resources> findResourcesByAccount(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("resourcesSqlMapper.findResourcesByAccount",id);
+	}
+		@Override
+	public List<Resources> findAccountResourcess(String accountId) {
+		// TODO Auto-generated method stub
+		System.out.println("我爱你啦啦啦");
+		return myBatisDao.getList("resourcesSqlMapper.findAccountResourcess",accountId);
+	}
+//-----------------------↑↑↑↑↑↑↑↑↑↑↑↑↑这部分主要用于对于t_res_accounts表的增、查、改、删-----------------------------------------------------------------------------------------
+	@Override
+	public List<Resources> findRoleRes(String roleId) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("resourcesSqlMapper.findRoleRes", roleId);
+	}
+
+	@Override
+	public List<Resources> queryByParentId(Resources resources) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("resourcesSqlMapper.queryByParentId", resources);
+	}
+
+	@Override
+	public void updateSortOrder(List<Resources> menus) {
+		// TODO Auto-generated method stub
+		for (Resources m : menus) {
+			myBatisDao.save("resourcesSqlMapper.updateSortOrder", m);
+		}
+	}
+
+	@Override
+	public void addRoleRes(String roleId, List<String> list) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("resourcesSqlMapper.deleteResourcesRole", roleId);
+		for (String string : list) {
+			ResourcesRole rr = new ResourcesRole();
+			rr.setRoleId(roleId);
+			rr.setResId(string);
+			myBatisDao.save("resourcesSqlMapper.addRoleRes", rr);;
+		}
+
+	}
+
+	@Override
+	public Resources isExist(String menuName) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("resourcesSqlMapper.isExist", menuName);
+	}
+
+	@Override
+	public int getMaxLevel() {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("resourcesSqlMapper.getMaxLevel",null);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<Resources> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	
+}

+ 108 - 0
src/main/java/com/cloudcross/ssp/service/impl/RolesService.java

@@ -0,0 +1,108 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.RoleAccount;
+import com.cloudcross.ssp.model.Roles;
+import com.cloudcross.ssp.service.IRolesService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Common;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.pulgin.mybatis.plugin.PageView;
+@Service
+public class RolesService implements IRolesService {
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Override
+	public PageView query(PageView pageView, Roles t) {
+		// TODO Auto-generated method stub
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("paging", pageView);
+		map.put("t", t);
+		List<Roles> list = myBatisDao.getList("roleSqlMapper.query", map);
+		pageView.setRecords(list);
+		return pageView;
+	}
+
+	@Override
+	public List<Roles> queryAll(Roles t) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("roleSqlMapper.queryAll", t);
+	}
+
+	@Override
+	public void delete(String id) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("roleSqlMapper.delete", id);
+	}
+
+	@Override
+	public void update(Roles t) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("roleSqlMapper.update", t);
+	}
+
+	@Override
+	public Roles getById(String id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("roleSqlMapper.getById", id);
+	}
+
+	@Override
+	public void add(Roles t) throws Exception {
+		// TODO Auto-generated method stub
+		myBatisDao.save("roleSqlMapper.add", t);
+	}
+
+	@Override
+	public Roles isExist(String name) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("roleSqlMapper.getById", name);
+	}
+
+	@Override
+	public Roles findbyAccountRole(String accountId) {
+		// TODO Auto-generated method stub
+		 return myBatisDao.get("roleSqlMapper.getById", accountId);
+	}
+
+	@Override
+	public void addAccRole(RoleAccount roleAccount) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("roleMapper.deleteAccountRole", (roleAccount.getAccountId().toString()));
+		myBatisDao.save("roleMapper.addAccRole", roleAccount);
+		
+	}
+
+	@Override
+	public void addAccRole(String accountId, List<String> ids) {
+		// TODO Auto-generated method stub
+		myBatisDao.save("roleMapper.deleteAccountRole", accountId);
+		for (String roleId : ids) {
+			if(!Common.isEmpty(roleId)){
+				RoleAccount roleAccount = new RoleAccount();
+				roleAccount.setAccountId(Integer.parseInt(accountId) );
+				roleAccount.setRoleId(Integer.parseInt(roleId) );
+				myBatisDao.save("roleMapper.addAccRole", roleAccount);
+			}
+		}
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<Roles> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

+ 70 - 0
src/main/java/com/cloudcross/ssp/service/impl/RptAdvertiserHourService.java

@@ -0,0 +1,70 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.Advertiser;
+import com.cloudcross.ssp.model.RptAdvertiserHour;
+import com.cloudcross.ssp.service.IRptAdvertiserHourService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Service
+public class RptAdvertiserHourService implements IRptAdvertiserHourService{
+	private static final Logger LOG = Logger.getLogger(RptAdvertiserHourService.class);
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Override
+	public RptAdvertiserHour findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+	@Override
+	public List<RptAdvertiserHour> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public boolean add(RptAdvertiserHour t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public boolean edit(RptAdvertiserHour t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public List<RptAdvertiserHour> findEveryHourData(
+			Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("rptAdvertiserHourSqlMapper.findEveryHourData", paramMap);
+		
+	}
+	@Override
+	public List<Advertiser> findDeliverEffectAnalysis(
+			Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+	
+	
+	
+	}
+

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

@@ -0,0 +1,60 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.RptZoneHour;
+import com.cloudcross.ssp.service.IRptZoneHourService;
+
+@Service
+public class RptZoneHourService implements IRptZoneHourService{
+	private static final Logger LOG = Logger.getLogger(RptZoneHourService.class);
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Override
+	public RptZoneHour findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+	@Override
+	public List<RptZoneHour> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public boolean add(RptZoneHour t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public boolean edit(RptZoneHour t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	@Override
+	public List<RptZoneHour> findEveryHourData(Map<String, Object> paramMap) {
+		return myBatisDao.getList("rptZoneHourSqlMapper.findEveryHourDataOperator", paramMap);
+	}
+	
+	@Override
+	public List<RptZoneHour> findEveryHourDataBack(Map<String, Object> paramMap) {
+		return myBatisDao.getList("rptZoneHourSqlMapper.findEveryHourDataBack", paramMap);
+	}
+}

+ 71 - 0
src/main/java/com/cloudcross/ssp/service/impl/RptZoneService.java

@@ -0,0 +1,71 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.RptZone;
+import com.cloudcross.ssp.service.IRptZoneService;
+
+@Service
+public class RptZoneService implements IRptZoneService{
+	private static final Logger LOG = Logger.getLogger(RptZoneService.class);
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public RptZone findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<RptZone> findByParams(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("rptZoneSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(RptZone t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(RptZone t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public RptZone findByOperatorIdAndDate(Map paramMap) {
+		return myBatisDao.get("rptZoneSqlMapper.findByOperatorIdAndDate", paramMap);
+	}
+
+	@Override
+	public RptZone findByDate(Map<String, Object> paramMap) {
+		return myBatisDao.get("rptZoneSqlMapper.findByDate", paramMap);
+	}
+	
+	@Override
+	public List<RptZone> findByParams(Map<String, Object> paramMap) {
+		return myBatisDao.getList("rptZoneSqlMapper.findByParams1", paramMap);
+	}
+}

+ 82 - 0
src/main/java/com/cloudcross/ssp/service/impl/SizeService.java

@@ -0,0 +1,82 @@
+package com.cloudcross.ssp.service.impl;
+
+
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.operator.model.Size;
+import com.cloudcross.ssp.operator.service.ISizeService;
+
+
+@Service
+public class SizeService implements ISizeService{
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	public List<Size> findAllSize() {
+		return myBatisDao.getList("sizeSqlMapper.findAllSize");
+	}
+
+	
+	@Override
+	public Size findSize(Long id) {
+		return myBatisDao.get("sizeSqlMapper.findSize", id);
+	}
+	
+	@Override
+	public Size findSizeId(Long height,Long width) {
+		HashMap<String,Object> map = new HashMap<String,Object>();
+		map.put("width", width);
+		map.put("height", height);
+		return myBatisDao.get("sizeSqlMapper.findSizeId", map);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean add(Size t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(Size t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+
+	@Override
+	public Size findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+
+	@Override
+	public List<Size> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}

+ 57 - 0
src/main/java/com/cloudcross/ssp/service/impl/SystemReportService.java

@@ -0,0 +1,57 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.SystemReport;
+import com.cloudcross.ssp.service.ISystemReportService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Service
+public class SystemReportService implements ISystemReportService{
+	
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+
+	@Override
+	public SystemReport findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return ibatisDao.get("systemReportSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<SystemReport> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		paramMap.put("pager", pager);
+		return ibatisDao.getList("systemReportSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(SystemReport t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(SystemReport t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

+ 57 - 0
src/main/java/com/cloudcross/ssp/service/impl/TypeReportService.java

@@ -0,0 +1,57 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.TypeReport;
+import com.cloudcross.ssp.service.ITypeReportService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Service
+public class TypeReportService implements ITypeReportService{
+	
+	@Autowired
+	private GenericIBatisDao ibatisDao;
+
+	@Override
+	public TypeReport findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return ibatisDao.get("typereportSqlMapper.countByParams", paramMap);
+	}
+
+	@Override
+	public List<TypeReport> findByParams(Map<String, Object> paramMap, Pager pager) {
+		// TODO Auto-generated method stub
+		paramMap.put("pager", pager);
+		return ibatisDao.getList("typereportSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(TypeReport t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean edit(TypeReport t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

+ 71 - 0
src/main/java/com/cloudcross/ssp/service/impl/UserLoginService.java

@@ -0,0 +1,71 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.UserLogin;
+import com.cloudcross.ssp.service.IUserLoginService;
+import com.cloudcross.ssp.pulgin.mybatis.plugin.PageView;
+
+@Service
+public class UserLoginService implements IUserLoginService {
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Override
+	public PageView query(PageView pageView, UserLogin t) {
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("paging", pageView);
+		map.put("t", t);
+		List<UserLogin> list = myBatisDao.getList("userLoginSqlMapper.query", map);
+		pageView.setRecords(list);
+		return pageView;
+	}
+
+	@Override
+	public List<UserLogin> queryAll(UserLogin t) {
+		return myBatisDao.getList("userLoginSqlMapper.queryAll", t);
+	}
+
+	@Override
+	public void delete(String id) throws Exception {
+		myBatisDao.save("userLoginSqlMapper.delete", id);
+
+	}
+
+	@Override
+	public void update(UserLogin t) throws Exception {
+		myBatisDao.save("userLoginSqlMapper.update", t);
+
+	}
+
+	@Override
+	public UserLogin getById(String id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("userLoginSqlMapper.getById", id);
+	}
+
+	@Override
+	public void add(UserLogin t) throws Exception {
+		myBatisDao.save("userLoginSqlMapper.add", t);
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<UserLogin> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

+ 216 - 0
src/main/java/com/cloudcross/ssp/service/impl/WifiService.java

@@ -0,0 +1,216 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.model.AdGroup;
+import com.cloudcross.ssp.model.AdGroupPlace;
+import com.cloudcross.ssp.model.Location;
+import com.cloudcross.ssp.model.Wifi;
+import com.cloudcross.ssp.service.IAdGroupScheduleService;
+import com.cloudcross.ssp.service.IWifiService;
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+
+@Service
+public class WifiService implements IWifiService{
+
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	/**
+	 * 以经度为longitude,纬度为latitude周围距离dis千米的所有热点
+	 */
+	@Override
+	public List<Wifi> findNeighPosition(double longitude,double latitude,double dis,String location) {
+		//先计算查询点的经纬度范围
+		double r = 6371;//地球半径千米
+		double dlng =  2*Math.asin(Math.sin(dis/(2*r))/Math.cos(latitude*Math.PI/180));
+		dlng = dlng*180/Math.PI;//角度转为弧度
+		double dlat = dis/r;
+		dlat = dlat*180/Math.PI;		
+		Double minlat =latitude-dlat;
+		Double maxlat = latitude+dlat;
+		Double minlng = longitude -dlng;
+		Double maxlng = longitude + dlng;	
+		HashMap<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("minlat", minlat);
+		paramMap.put("maxlat", maxlat);
+		paramMap.put("minlng", minlng);
+		paramMap.put("maxlng", maxlng);
+		paramMap.put("location", location);
+		System.out.println(paramMap + "kkkk");
+		return myBatisDao.getList("wifiSqlMapper.findWifi",paramMap);		
+//		return null;
+	}
+	//找到城市下面的所有的wifi热点
+	public List<Wifi> findAllLocation(String location) {
+		
+		return myBatisDao.getList("wifiSqlMapper.findLocation",location);
+		
+	}
+	
+	//找到已选择的所有的wifi热点
+	public List<Wifi> findAllAdgroupWifi(Long adGroupId) {
+		return myBatisDao.getList("wifiSqlMapper.findAllAdgroupWifi",adGroupId);
+	}
+	
+	@Override
+	public Wifi findAddress(String address) {
+		
+		return myBatisDao.get("wifiSqlMapper.findAddress", address);
+	}
+		      
+    /** 
+     * 返回输入地址的经纬度坐标 
+     * key lng(经度),lat(纬度) 
+     */ 
+	@Override
+    public Map<String,String> getGeocoderLatitude(String address){  
+    	final String KEY_1 = "fc9dbd184cd52c9855fcec1ef1bffb7c";
+    	BufferedReader in = null;  
+        try {  
+            //将地址转换成utf-8的16进制  
+            address = URLEncoder.encode(address, "UTF-8");  
+//	           如果有代理,要设置代理,没代理可注释  
+//	      System.setProperty("http.proxyHost","192.168.1.188");  
+//	      System.setProperty("http.proxyPort","3128");  
+            URL tirc = new URL("http://api.map.baidu.com/geocoder?address="+ address +"&output=json&key="+ KEY_1);  
+              
+            in = new BufferedReader(new InputStreamReader(tirc.openStream(),"UTF-8"));  
+            String res;  
+            StringBuilder sb = new StringBuilder("");  
+            while((res = in.readLine())!=null){  
+                sb.append(res.trim());  
+            }  
+            String str = sb.toString();  
+            Map<String,String> map = null;  
+            if(StringUtils.isNotEmpty(str)){  
+                int lngStart = str.indexOf("lng\":");  
+                int lngEnd = str.indexOf(",\"lat");  
+                int latEnd = str.indexOf("},\"precise");  
+                if(lngStart > 0 && lngEnd > 0 && latEnd > 0){  
+                    String lng = str.substring(lngStart+5, lngEnd);  
+                    String lat = str.substring(lngEnd+7, latEnd);  
+                    map = new HashMap<String,String>();  
+                    map.put("lng", lng);  
+                    map.put("lat", lat);  
+                    return map;  
+                }  
+            }  
+        }catch (Exception e) {  
+            e.printStackTrace();  
+        }finally{  
+            try {  
+                in.close();  
+            } catch (IOException e) {  
+                e.printStackTrace();  
+            }  
+        }  
+        return null;  
+    }  
+		
+	public List<Location>findLocation(String location) {
+		
+		return null;
+	}
+	
+	
+	@Override
+	public Wifi findById(Long id) {
+		return myBatisDao.get("wifiSqlMapper.findById", id);
+	}
+	
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		System.out.println(paramMap.get("searchValue") + "22222");
+		System.out.println(paramMap.get("searchKey") + "11111");
+		return myBatisDao.get("wifiSqlMapper.countByParamsAdvertiser", paramMap);
+	}
+	
+	@Override
+	public int countByParamsOperator(Map<String, Object> paramMap) {
+		return myBatisDao.get("wifiSqlMapper.countByParamsOperator", paramMap);
+	}
+
+	@Override
+	public List<Wifi> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		System.out.println(paramMap.get("searchKey") + "11111");
+		System.out.println(paramMap.get("searchValue") + "22222");
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("wifiSqlMapper.selectByParams", paramMap);
+//		return null;
+	}
+	
+	@Override
+	public List<Wifi> findByParamsOperator(Map<String, Object> paramMap, Pager pager) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("wifiSqlMapper.findByParams", paramMap);
+	}
+
+	@Override
+	public boolean add(Wifi t) {
+		myBatisDao.save("wifiSqlMapper.add", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(Wifi t) {
+		myBatisDao.save("wifiSqlMapper.editWifi", t);
+		return true;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		myBatisDao.save("wifiSqlMapper.updateWifiStatus",MapBuilder.create(HashMap.class)
+				.add("status", status)
+				.add("idList", idList)
+				.add("updated", new Date())
+				.map());
+		return true;
+	}
+	
+	public boolean deleteWifi(Long adGroupId) {
+		//删除之前保存的wifi热点
+		myBatisDao.delete("wifiSqlMapper.deleteAdgroupWifi", adGroupId);
+		return true;
+	}
+	//将选择的wifi热点保存到数据库t_adgroup_wifi里面
+	public void front2dbwifi(String str,Long adGroupId) {
+		HashMap<String, Object> map = new HashMap<String, Object>();
+		if(null != str) {
+			String[] strArr = str.split(",");
+			for(int i = 0; i < strArr.length; i++) {
+				Long wifiId = Long.valueOf(strArr[i]).longValue();
+				map.put("adGroupId", adGroupId);
+				map.put("wifiId", wifiId);
+				myBatisDao.get("wifiSqlMapper.addAdgroupWifi", map);
+			}
+		}
+	}
+
+	@Override
+	public List<Wifi> findByParams(Map<String, Object> paramMap) {
+		return myBatisDao.getList("wifiSqlMapper.findByParams1", paramMap);
+	}
+	
+}

+ 81 - 0
src/main/java/com/cloudcross/ssp/service/impl/ZoneDomainService.java

@@ -0,0 +1,81 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.Zone;
+import com.cloudcross.ssp.model.ZoneDomain;
+import com.cloudcross.ssp.service.IZoneDomainService;
+
+@Service
+public class ZoneDomainService implements IZoneDomainService {
+//	private static final Logger LOG = Logger.getLogger(ZoneService.class);
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+
+	
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public List<ZoneDomain> findAll(Long zoneId) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("zoneDomainSqlMapper.findAllDomain",zoneId);
+	}
+
+	@Override
+	public boolean add(ZoneDomain t) {
+		t.setSupdated(new Date());
+		// TODO Auto-generated method stub
+		myBatisDao.save("zoneDomainSqlMapper.addZoneDomain", t);
+		return false;
+	}
+	
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<ZoneDomain> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+	@Override
+	public boolean delete(Zone t) {
+		t.setSupdated(new Date());
+		myBatisDao.save("zoneDomainSqlMapper.deleteZoneDomain", t);
+		
+		return true;
+	}
+
+	@Override
+	public boolean edit(ZoneDomain zoneDomain) {
+		zoneDomain.setSupdated(new Date());
+		myBatisDao.save("zoneDomainSqlMapper.editZoneDomain", zoneDomain);
+		return true;
+	}
+
+	@Override
+	public ZoneDomain findById(Long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("zoneDomainSqlMapper.selectById", id);
+		
+	}
+
+
+}

+ 76 - 0
src/main/java/com/cloudcross/ssp/service/impl/ZoneIndustryService.java

@@ -0,0 +1,76 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.model.Zone;
+import com.cloudcross.ssp.model.ZoneIndustry;
+import com.cloudcross.ssp.service.IZoneIndustryService;
+
+
+
+@Service
+public class ZoneIndustryService implements IZoneIndustryService {
+	//private static final Logger LOG = Logger.getLogger(ZoneService.class);	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	public List<ZoneIndustry> findAll(Long zoneId) {
+		return myBatisDao.getList("zoneIndustrySqlMapper.findAll", zoneId);
+	}
+	
+	@Override
+	public boolean delete(Zone t) {
+		t.setSupdated(new Date());
+		myBatisDao.save("zoneIndustrySqlMapper.deleteZoneIndustry",t);
+		
+		return true;
+	}
+	
+	@Override
+	public boolean add(ZoneIndustry t) {
+		t.setSupdated(new Date());
+		myBatisDao.save("zoneIndustrySqlMapper.addZoneIndustry", t);
+		return true;
+	}
+
+	@Override
+	public boolean edit(ZoneIndustry t) {
+		t.setSupdated(new Date());
+		myBatisDao.save("zoneIndustrySqlMapper.editZoneIndustry", t);
+		return true;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public ZoneIndustry findById(Long id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<ZoneIndustry> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

+ 193 - 0
src/main/java/com/cloudcross/ssp/service/impl/ZoneService.java

@@ -0,0 +1,193 @@
+package com.cloudcross.ssp.service.impl;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.cloudcross.ssp.base.dao.GenericIBatisDao;
+import com.cloudcross.ssp.common.Config;
+import com.cloudcross.ssp.common.utils.Assert;
+import com.cloudcross.ssp.common.utils.MapBuilder;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.Zone;
+import com.cloudcross.ssp.service.IZoneService;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelector;
+import com.cloudcross.ssp.web.widget.SelectorController.ISelectorProvider;
+
+    @Service("operator.zoneService")
+    public class ZoneService implements IZoneService,ISelectorProvider{
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	@Autowired
+	Config config;
+	//文件系统可上传的文件后缀集合
+	private static Set<String> noStuffixSet = new HashSet<String>();
+		
+	//初始化可上传文件后缀
+	static {
+		noStuffixSet.add("jpg");
+		noStuffixSet.add("gif");
+	}
+	
+	@Override
+	public boolean add( Zone t) {
+		Date date = new Date();
+		t.setUpdated(date);
+		t.setSupdated(date);
+		myBatisDao.save("zoneSqlMapper.addZone", t);		
+		return true;
+	}
+
+	@Override
+	public int countByParams(Map<String, Object> paramMap) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("width", SqlHelper.doLike(paramMap.get("width")));
+		paramMap.put("height", SqlHelper.doLike(paramMap.get("height")));
+		paramMap.put("device", SqlHelper.doLike(paramMap.get("device")));
+		paramMap.put("position", SqlHelper.doLike(paramMap.get("position")));
+		paramMap.put("status", SqlHelper.doLike(paramMap.get("status")));
+		return myBatisDao.get("zoneSqlMapper.countByParams", paramMap);
+	}
+	@Override
+	public int countByParamsBack(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public boolean edit(Zone zone) {
+		Date date = new Date();
+		zone.setUpdated(date);
+		zone.setSupdated(date);
+		myBatisDao.save("zoneSqlMapper.editZone", zone);
+		return true;
+	}
+	@Override
+	public Zone findZone(Long zoneId) {
+		return myBatisDao.get("zoneSqlMapper.findZone", zoneId);	
+	}
+	
+	@Override
+	public Zone findById(Long id) {
+//		System.out.println("bbb"+id);
+		return myBatisDao.get("zoneSqlMapper.selectByIdOperator", id);
+	}
+	
+	@Override
+	public Zone findByIdBack(Long id) {
+		return myBatisDao.get("zoneSqlMapper.selectByIdBack", id);
+	}
+	@Override
+	public List<Zone> findByParams(Map<String, Object> paramMap, Pager pager) {
+		String searchValue = SqlHelper.doLike(paramMap.get("searchValue"));
+		paramMap.put("key", paramMap.get("searchKey"));
+		paramMap.put("value", searchValue);
+		paramMap.put("pager", pager);
+		paramMap.put("width", SqlHelper.doLike(paramMap.get("width")));
+		paramMap.put("height", SqlHelper.doLike(paramMap.get("height")));
+		paramMap.put("device", SqlHelper.doLike(paramMap.get("device")));
+		paramMap.put("position", SqlHelper.doLike(paramMap.get("position")));
+		paramMap.put("status", SqlHelper.doLike(paramMap.get("status")));
+		return myBatisDao.getList("zoneSqlMapper.selectByParams", paramMap);
+	}
+	@Override
+	public boolean updateStatus(List<Long> zoneIdList, int status) {
+		myBatisDao.save("zoneSqlMapper.updateZoneStatus",
+				MapBuilder.create(HashMap.class)
+					.add("zoneIdList", zoneIdList)
+					.add("updated", new Date())
+					.add("status", status).map());
+		return true;
+	}
+	
+	//导出excel
+	@Override
+	public List<Zone> findDeliverEffectAnalysis(Map<String, Object> paramMap) {
+		
+		return myBatisDao.getList("zoneSqlMapper.findDeliverEffectAnalysis", paramMap);
+	}
+	
+	
+	
+	@Override
+	public long findByName(String name) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("zoneSqlMapper.findByName", name);
+	}
+
+	@Override
+	public String deleteById(long id) {
+		// TODO Auto-generated method stub
+		return myBatisDao.get("zoneSqlMapper.deleteById", id);
+	}
+
+	@Override
+	public List<Zone> findByDeviceAndPlaceId(Map<String, Object> paramMap) {
+		return myBatisDao.getList("zoneSqlMapper.findByDeviceAndPlaceId", paramMap);
+	}
+	
+	@Override
+	public List<String> findAdgroupNameByZoneIdAndSchedule(Map<String, Object> paramMap) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("zoneSqlMapper.findAdgroupNameByZoneIdAndSchedule", paramMap);
+	}
+	
+	/**
+	 * 首页查找设备 用到,勿删
+	 */
+	@Override
+	public List<Zone> findByDevice(Integer device){
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("zoneSqlMapper.findByDevice", device);
+	}
+
+
+	@Override
+	public Map<String, List<? extends ISelector>> provideData(String[] parentId) {
+		Assert.isTrue(ArrayUtils.isNotEmpty(parentId));
+		Integer operatorId = Integer.parseInt(parentId[0]);
+		List<Zone> zoneList = findByOperatorId(operatorId);
+		return MapBuilder.create(HashMap.class).add("zoneList", zoneList).map();
+	}
+	//operatorId类型居然搞不一样
+	@Override
+	public Map<String, List<? extends ISelector>> provideDataBack(String[] parentId) {
+		Assert.isTrue(ArrayUtils.isNotEmpty(parentId));
+		Long operatorId = Long.parseLong(parentId[0]);
+		List<Zone> zoneList = findByOperatorId(operatorId);
+		return MapBuilder.create(HashMap.class).add("zoneList", zoneList).map();
+	}
+
+
+	@Override
+	public List<Zone> findByOperatorId(Integer operatorId) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("zoneSqlMapper.findByOperatorIdOperator", operatorId);
+	}
+	
+	@Override
+	public List<Zone> findByOperatorIdBack(Integer operatorId) {
+		// TODO Auto-generated method stub
+		return myBatisDao.getList("zoneSqlMapper.findByOperatorIdBack", operatorId);
+	}
+
+	@Override
+	public List<Zone> findByOperatorId(Long operatorId) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
+