Browse Source

媒体自投

jun.zhou 9 years ago
parent
commit
ba9399ce02
19 changed files with 209 additions and 70 deletions
  1. 2 5
      src/main/java/com/cloudcross/ssp/model/mapper/ad-group.sql.xml
  2. 4 0
      src/main/java/com/cloudcross/ssp/model/mapper/adgroup-wifigroup.sql.xml
  3. 6 0
      src/main/java/com/cloudcross/ssp/model/mapper/adgroup-zone.sql.xml
  4. 1 1
      src/main/java/com/cloudcross/ssp/model/mapper/campaign.sql.xml
  5. 5 6
      src/main/java/com/cloudcross/ssp/model/mapper/wifi.sql.xml
  6. 1 1
      src/main/java/com/cloudcross/ssp/model/mapper/zone.sql.xml
  7. 4 1
      src/main/java/com/cloudcross/ssp/service/IAdGroupService.java
  8. 1 0
      src/main/java/com/cloudcross/ssp/service/IAdgroupWifigroupService.java
  9. 7 1
      src/main/java/com/cloudcross/ssp/service/IAdgroupZoneService.java
  10. 2 0
      src/main/java/com/cloudcross/ssp/service/impl/AdGroupPlaceService.java
  11. 78 5
      src/main/java/com/cloudcross/ssp/service/impl/AdGroupService.java
  12. 9 0
      src/main/java/com/cloudcross/ssp/service/impl/AdgroupWifigroupService.java
  13. 13 0
      src/main/java/com/cloudcross/ssp/service/impl/AdgroupZoneService.java
  14. 2 0
      src/main/java/com/cloudcross/ssp/service/impl/WifiService.java
  15. 61 40
      src/main/java/com/cloudcross/ssp/web/advertiser/main/ad/target/OperatorAdGroupController.java
  16. 1 1
      src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/ad-group/create.ftl
  17. 6 4
      src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/ad-group/edit.ftl
  18. 1 1
      src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/operator-ad-group/create.ftl
  19. 5 4
      src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/operator-ad-group/edit.ftl

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

@@ -344,11 +344,8 @@
 	</select>
 	
 	<update id="editAdGroup" parameterType="com.cloudcross.ssp.model.AdGroup">
-		update t_adgroup
-		set name = #{adGroupName},
-		active_time = #{startDate},
-		expire_time = #{endDate},		
-		totalbudget = #{totalBudget},
+		update t_adgroup set 
+		mode = #{mode},
 		price = #{price},		
 		dailybudget = IFNULL(#{dailyBudget},default(dailybudget)),
 		impression = IFNULL(#{maxImpression},default(impression)),

+ 4 - 0
src/main/java/com/cloudcross/ssp/model/mapper/adgroup-wifigroup.sql.xml

@@ -41,4 +41,8 @@
 		values (#{adgroupId},#{wifigroupId},#{status},#{supdated})
 	</insert>
 
+	<update id="updateAdgroupWifigroup" parameterType="java.util.Map">
+		update t_adgroup_wifigroup set status = -1, supdated = #{supdated} where adgroup_id = #{adgroupId}
+	</update>
+
 </mapper>

+ 6 - 0
src/main/java/com/cloudcross/ssp/model/mapper/adgroup-zone.sql.xml

@@ -11,5 +11,11 @@
 		values (#{adgroupId},#{zoneId},#{status},#{supdated})
 	</insert>
 	
+	<select id="queryZoneIdByAdgroupId" parameterType="java.lang.Long" resultType="java.lang.Long">
+		select zone_id zoneId from t_adgroup_zone where status = 0 and adgroup_id = #{adgroupId}
+	</select>
 	
+	<update id="updateAdgroupZoneByAdgroupId" parameterType="java.util.Map">
+		update t_adgroup_zone set status = -1 and supdated = #{supdated} where adgroup_id = #{adgroupId} 
+	</update>
 </mapper>

+ 1 - 1
src/main/java/com/cloudcross/ssp/model/mapper/campaign.sql.xml

@@ -142,7 +142,7 @@
 		<include refid="base_column" />
 		,count(t_adgroup.campaign_id) as groupNumber from t_campaign left join t_adgroup
 		    on t_campaign.id = t_adgroup.campaign_id 
-		    where t_campaign.order_id = #{orderId} and t_campaign.status != -1
+		    where t_campaign.order_id = #{orderId} and t_campaign.status != -1 AND t_adgroup.status != -1
 		 	<if test="key!=null and value!=null">
 	            <choose>
 					<when test="key=='name'">

+ 5 - 6
src/main/java/com/cloudcross/ssp/model/mapper/wifi.sql.xml

@@ -292,14 +292,13 @@
 	
 	
 	<insert id="addAdgroupWifi" parameterType="map">
-		insert into
-		t_adgroup_wifi (adgroup_id,wifi_id)
-		values (#{adGroupId},#{wifiId})
+		insert into t_adgroup_wifi (adgroup_id,wifi_id,status,supdated)
+		values (#{adGroupId},#{wifiId},#{status},#{supdated})
 	</insert>
 	
-	<delete id="deleteAdgroupWifi" parameterType="long"> 
-	delete from t_adgroup_wifi where adgroup_id = #{adGroupId} 
-	</delete>
+	<update id="deleteAdgroupWifi" parameterType="long"> 
+	update t_adgroup_wifi set status = -1 where adgroup_id = #{adGroupId} 
+	</update>
 	
 	<select id="selectByParams"  parameterType="map" resultType="com.cloudcross.ssp.model.Wifi">
 		select 

+ 1 - 1
src/main/java/com/cloudcross/ssp/model/mapper/zone.sql.xml

@@ -227,6 +227,6 @@
      
      <!-- 根据投放查询广告位 -->
      <select id="queryZoneByAdgroupId" parameterType="java.lang.Long" resultType="com.cloudcross.ssp.model.Zone" >
-     	select tz.id id,tz.name as name from t_zone tz,t_adgroup_zone taz where tz.id=taz.zone_id and taz.status=0 and tz.status=0 and taz.adgroup_id = #{adgroupId}
+     	select DISTINCT(tz.id) id,tz.name as name from t_zone tz,t_adgroup_zone taz where tz.id=taz.zone_id and taz.status=0 and tz.status=0 and taz.adgroup_id = #{adgroupId}
      </select>
 </mapper>

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

@@ -57,5 +57,8 @@ public interface IAdGroupService extends IGenericService<AdGroup> {
 	public Integer queryAdGroupCountByCondition(Map<String, Object> paramMap);
 	public List<AdGroup> queryAdGroupByCondition(Map<String, Object> paramMap, Pager pager);
 	
-	public void front2dbplaceorgroup(AdGroup adGroup);
+	public boolean updateAdgroupZone(AdGroup adGroup, Map<String,Object> condition);
+	
+	public void front2dbplaceorgroup(AdGroup adGroup,String place);
+	public void updatePleaceOrGroup(AdGroup adGroup,String place);
 }

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

@@ -7,4 +7,5 @@ import com.cloudcross.ssp.model.AdgroupWifigroup;
 public interface IAdgroupWifigroupService {
 	public void saveAdgroupWifigroup(AdgroupWifigroup adgroupWifigroup,List<Long>wifigroupIdList);
 	public boolean addAdgroupWifigroup(AdgroupWifigroup adgroupWifigroup);
+	public boolean updateAdgroupWifigroup(Long adgroupId);
 }

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

@@ -1,9 +1,15 @@
 package com.cloudcross.ssp.service;
 
 
+
+
+import java.util.List;
+import java.util.Map;
+
 import com.cloudcross.ssp.model.AdgroupZone;
 
 public interface IAdgroupZoneService{
 	public void saveAdgroupZone(AdgroupZone adgroupZone);
-	
+	public boolean updateZoneIdByAdgroupId(Map<String,Object>map);
+	public List<Long> queryZoneIdByAdgroupId(Long adgroupId);
 }

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

@@ -102,4 +102,6 @@ public class AdGroupPlaceService implements IAdGroupPlaceService{
 				.map());
 		return true;
 	}
+	
+	
 }

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

@@ -64,6 +64,7 @@ public class AdGroupService implements IAdGroupService, ISelectorProvider {
 	private IAdgroupWifigroupService adgroupWifigroupService;
 	@Autowired
 	private IPlaceClassService placeClassService;
+	
 	private static final Logger LOG = Logger.getLogger(AdGroupService.class);
 
 	@Override
@@ -130,7 +131,7 @@ public class AdGroupService implements IAdGroupService, ISelectorProvider {
 
 	@Override
 	public boolean edit(AdGroup adGroup, Map<String, Object> targetParamsMap) {
-edit(adGroup);
+		edit(adGroup);
 		
 		/**
 		 * 时段定向的数据更新
@@ -222,9 +223,8 @@ edit(adGroup);
 		
 	}
 
-	public void front2dbplaceorgroup(AdGroup adGroup) {
+	public void front2dbplaceorgroup(AdGroup adGroup,String place) {
 		Long supdated = new Date().getTime()/1000;
-		String place = adGroup.getPlace();
 		boolean placeFlag = false;
 		boolean groupFlag = false;
 		
@@ -581,7 +581,6 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 		public boolean saveAll(AdGroup adGroup, Map<String,Object> condition) {
 			//添加投放,时间定向,地域定向
 			save(adGroup,condition);
-			
 			Long adgroupId = adGroup.getId();
 			Long supdated = new Date().getTime()/1000;
 			//添加投放与广告位对应关系
@@ -601,6 +600,33 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 			return true;
 		}
 
+		public boolean updateAdgroupZone(AdGroup adGroup, Map<String,Object> condition){
+			Long adgroupId = adGroup.getId();
+			Long supdated = new Date().getTime()/1000;
+			//伪删除
+			Map<String,Object>map = new HashMap<String,Object>();
+			map.put("adgroupId", adgroupId);
+			map.put("supdated", supdated);
+			adgroupZoneService.updateZoneIdByAdgroupId(map);
+			
+			
+			//添加投放与广告位对应关系
+			String zoneIdStr = String.valueOf(condition.get("zoneId"));
+			if(zoneIdStr != null && zoneIdStr != ""){
+				String[]zoneId = zoneIdStr.split(",");
+				AdgroupZone adgroupZone = new AdgroupZone();
+				for(int i=0;i<zoneId.length;i++){
+					adgroupZone.setAdgroupId(adgroupId);
+					adgroupZone.setStatus(0);//开启状态
+					adgroupZone.setSupdated(supdated);
+					adgroupZone.setZoneId(Long.valueOf(zoneId[i]).longValue());
+					this.adgroupZoneService.saveAdgroupZone(adgroupZone);
+				}
+				
+			}
+			return true;
+		}
+		
 		@Override
 		public List<AdGroup> queryAdGroupByCondition(Map<String, Object> paramMap, Pager pager) {
 			paramMap.put("pager", pager);
@@ -614,5 +640,52 @@ public void commonSaveDriect(Map<String,Object> targetParamsMap,Map<String,Objec
 		
 		
 		
-		
+		public void updatePleaceOrGroup(AdGroup adGroup,String place) {
+			Long supdated = new Date().getTime()/1000;
+			boolean placeFlag = false;
+			boolean groupFlag = false;
+			
+			placeFlag = place.startsWith("a");
+			groupFlag = place.startsWith("b");
+			if(placeFlag){
+				boolean flag = adGroupPlaceService.updateAdgroupPlaceByAdgroupId(adGroup.getId());//伪删除
+				if(flag){
+					place = place.substring(2);
+					String[] placeStr = place.split(",");//得到的大类场景
+					AdGroupPlace adGroupPlace = new AdGroupPlace();
+					for(int i=0;i<placeStr.length;i++){
+						Long classId = Long.valueOf(placeStr[i]).longValue();
+						List<Long>placeIdList = placeClassService.queryPlaceIdByClassId(classId);
+						if(placeIdList != null && placeIdList.size() > 0){
+							adGroupPlace.setAdGroupId(adGroup.getId());
+							adGroupPlace.setStatus(0);
+							adGroupPlace.setSupdated(supdated);
+							adGroupPlaceService.saveAdGroupPlace(adGroupPlace,placeIdList);
+						}else{
+							LOG.debug("大类场景找不到对应的小类场景");
+						}
+					}	
+				}
+				
+			}
+			
+			if(groupFlag){
+				boolean flag = adgroupWifigroupService.updateAdgroupWifigroup(adGroup.getId());//伪删除
+				if(flag){
+					place = place.substring(2);
+					String[] placeStr = place.split(",");
+					AdgroupWifigroup adgroupWifigroup = new AdgroupWifigroup();
+					for(int i=0;i<placeStr.length;i++){
+						adgroupWifigroup.setAdgroupId(adGroup.getId());
+						adgroupWifigroup.setWifigroupId(Long.valueOf(placeStr[i]).longValue());
+						adgroupWifigroup.setStatus(0);
+						adgroupWifigroup.setSupdated(supdated);
+						adgroupWifigroupService.addAdgroupWifigroup(adgroupWifigroup);
+					}	
+				}
+				
+			}
+			
+			
+		}
 }

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

@@ -1,5 +1,6 @@
 package com.cloudcross.ssp.service.impl;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -31,4 +32,12 @@ public class AdgroupWifigroupService implements IAdgroupWifigroupService{
 		myBatisDao.save("adgroupWifigroupSqlMapper.addAdgroupWifigroup",adgroupWifigroup);
 		return true;
 	}
+	
+	public boolean updateAdgroupWifigroup(Long adgroupId) {
+		myBatisDao.save("adgroupWifigroupSqlMapper.updateAdgroupWifigroup",MapBuilder.create(HashMap.class)
+				.add("adgroupId",adgroupId)
+				.add("supdated",new Date().getTime()/1000)
+				.map());
+		return true;
+	}
 }

+ 13 - 0
src/main/java/com/cloudcross/ssp/service/impl/AdgroupZoneService.java

@@ -1,6 +1,12 @@
 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;
 
@@ -19,6 +25,13 @@ public class AdgroupZoneService implements IAdgroupZoneService {
 		myBatisDao.save("adgroupZoneSqlMapper.addAdgroupZone",adgroupZone);
 	}
 
+	public boolean updateZoneIdByAdgroupId(Map<String,Object>map){
+		myBatisDao.save("adgroupZoneSqlMapper.updateAdgroupZoneByAdgroupId",map);
+		return true;
+	}
 	
+	public List<Long> queryZoneIdByAdgroupId(Long adgroupId){
+		return myBatisDao.getList("adgroupZoneSqlMapper.queryZoneIdByAdgroupId", adgroupId);
+	}
 
 }

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

@@ -199,6 +199,8 @@ public class WifiService implements IWifiService{
 				Long wifiId = Long.valueOf(strArr[i]).longValue();
 				map.put("adGroupId", adGroupId);
 				map.put("wifiId", wifiId);
+				map.put("status", 0);
+				map.put("supdated", new Date().getTime()/1000);
 				myBatisDao.get("wifiSqlMapper.addAdgroupWifi", map);
 			}
 		}

+ 61 - 40
src/main/java/com/cloudcross/ssp/web/advertiser/main/ad/target/OperatorAdGroupController.java

@@ -65,6 +65,7 @@ import com.cloudcross.ssp.service.ILogService;
 import com.cloudcross.ssp.service.IOrderService;
 import com.cloudcross.ssp.service.IPlaceService;
 import com.cloudcross.ssp.service.IWifiService;
+import com.cloudcross.ssp.service.impl.AdgroupZoneService;
 import com.cloudcross.ssp.service.impl.PlaceClassInformationService;
 import com.cloudcross.ssp.service.impl.WifiGroupInfoService;
 import com.cloudcross.ssp.service.impl.ZoneService;
@@ -109,6 +110,8 @@ public class OperatorAdGroupController extends SimpleController{
 	private WifiGroupInfoService wifiGroupInfoService;
 	@Autowired
 	private PlaceClassInformationService placeClassInformationService;
+	@Autowired
+	private AdgroupZoneService adgroupZoneService;
 	/**
 	 *
 	 * @param model 存放传到前台的参数
@@ -217,7 +220,7 @@ public class OperatorAdGroupController extends SimpleController{
 		model.addAttribute("advertiserId", campaign.getAdvertiserId());	
 		model.addAttribute("orderId", campaign.getOrderId());
 		model.addAttribute("agentId", campaign.getAgentId());
-		model.addAttribute("budget", campaign.getOrderBudget());
+		model.addAttribute("budget", campaign.getTotalBudget());
 		model.addAttribute("placeList",placeList);
 		model.addAttribute("zoneList",zoneList);
 		return page("create");
@@ -284,7 +287,7 @@ public class OperatorAdGroupController extends SimpleController{
 		//找到这个投放对应的活动,然后保存活动预算
 		Campaign campaign = campaignService.findById(adGroup.getCampaignId());
 		model.addAttribute("budget", campaign.getTotalBudget());
-		
+
 		Integer placeStatus = -1;//场景状态   1表示场景,2表示分组
 		String placeIdStr = "";
 		int len = 0;
@@ -332,6 +335,18 @@ public class OperatorAdGroupController extends SimpleController{
 		
 		//已选广告位
 		List<Zone> selectZoneList =  this.zoneService.queryZoneByAdgroupId(id);
+		if(null != selectZoneList && selectZoneList.size()>0){
+			String zoneId = "";
+			int selectLen = selectZoneList.size();
+			for(int i=0;i<selectLen;i++){
+				if(i<selectLen-1){
+					zoneId = zoneId + selectZoneList.get(i).getId()+",";
+					continue;
+				}
+				zoneId = zoneId + selectZoneList.get(i).getId();
+			}
+			model.addAttribute("zoneId", zoneId);
+		}
 		Map<String,Object> condition = new HashMap<String,Object>();
 		condition.put("operatorId", getLoginUser().getOperatorId());
 		//全部广告位
@@ -402,10 +417,10 @@ public class OperatorAdGroupController extends SimpleController{
 			}
 		}
 		
-		model.addAttribute("campaignId", campaignId);
-		model.addAttribute("advertiserId", campaign.getAdvertiserId());	
-		model.addAttribute("orderId", campaign.getOrderId());
-		model.addAttribute("agentId", campaign.getAgentId());
+		model.addAttribute("campaignId", adGroup.getCampaignId());
+		model.addAttribute("advertiserId", adGroup.getAdvertiserId());	
+		model.addAttribute("orderId", adGroup.getOrderId());
+		model.addAttribute("agentId", adGroup.getAgentId());
 		
 		model.addAttribute("areas", areas);
 		model.addAttribute("selectedwifi", selectedWifi);
@@ -440,27 +455,7 @@ public class OperatorAdGroupController extends SimpleController{
 		return all;
 	}
 	
-	/**
-	 *已选的场景
-	 * @param adgroupId
-	 * @return
-	 */
-	/*@RequestMapping("/selectedPlace")
-	@ResponseBody
-	public List<PlaceClassInformation> queryPlaceClassInformationByAdgroupId(Long adgroupId){
-		return this.placeClassInformationService.queryPlaceClassInformationByAdgroupId(adgroupId);
-	}*/
 	
-	/**
-	 * 已选分组
-	 * @param adgroupId
-	 * @return
-	 */
-	/*@RequestMapping("/selectedWifigroup")
-	@ResponseBody
-	public List<WifiGroupInfo> queryWifiGroupInfobByAdgroupId(Long adgroupId){
-		return this.wifiGroupInfoService.queryWifiGroupInfoByadgroupId(adgroupId);
-	}*/
 	
 	@RequestMapping("/enable")
 	@ResponseBody
@@ -778,6 +773,7 @@ public class OperatorAdGroupController extends SimpleController{
 	public String saveAdGroup(HttpServletRequest request, Model model,@ModelAttribute("form") AdGroup adGroup
 			,@RequestParam String areas,@RequestParam Map<String, Object> paramMap){
 		String placeName = adGroup.getPlaceName();
+		String place = paramMap.get("place").toString();
 		adGroup.setStatus(0);//开启
 		
 		/**
@@ -1026,7 +1022,7 @@ public class OperatorAdGroupController extends SimpleController{
 				logService.add(log);
 			}
 			//将场景或分组保存到数据库中
-			adGroupService.front2dbplaceorgroup(adGroup);		
+			adGroupService.front2dbplaceorgroup(adGroup,place);		
 			/**
 			 * 保存已选的wifi到数据库t_adgroup_wifi
 			 */
@@ -1038,7 +1034,6 @@ public class OperatorAdGroupController extends SimpleController{
 			 * 场景的新增记录
 			 */
 			//这里判断一下就是为了知道是不是有场景字符串有就会插入表,如果没有就不会插入表中也就不会有新增记录
-			String place = adGroup.getPlace();
 			if(null != place) {
 				boolean placeFlag = false;
 				boolean groupFlag = false;
@@ -1124,7 +1119,7 @@ public class OperatorAdGroupController extends SimpleController{
 			
 			//如果之前的有选择wifi删除之前保存的wifi以便编辑之后保存的wifi不冲突			
 			if(formerWifiList != null) {
-				wifiService.deleteWifi(adGroup.getId());
+				wifiService.deleteWifi(adGroup.getId());//逻辑删除
 			}			
 		
 			 //保存编辑之后已选wifi
@@ -1678,7 +1673,6 @@ public class OperatorAdGroupController extends SimpleController{
 			 * 如果以前的场景和现在的场景一个为空一个不为空则说明发生了变化
 			 * 如果都不为空则逐个比较再看是否发生变化
 			 */
-			String place = adGroup.getPlace();
 			if((0 != formerAdGroupPlaceList.size() && null == place) || (0 == formerAdGroupPlaceList.size() && null != place)) {
 				updatedMark = true;
 				
@@ -1708,7 +1702,7 @@ public class OperatorAdGroupController extends SimpleController{
 				
 			}
 			
-			if(0 != formerAdGroupPlaceList.size() && null != place) {
+			/*if(0 != formerAdGroupPlaceList.size() && null != place) {
 				String[] placeIdString = place.split(",");
 				Long[] placeId = new Long[placeIdString.length];
 				Long[] formerPlaceId = new Long[formerAdGroupPlaceList.size()];
@@ -1723,12 +1717,12 @@ public class OperatorAdGroupController extends SimpleController{
 				for(int i = 0; i < placeIdString.length; i++) {
 					placeId[i] = Long.parseLong(placeIdString[i]);
 				}
-				Arrays.sort(placeId);
+				Arrays.sort(placeId);*/
 				
 				
 				//对比一下编辑前后的广告位id是否发生变化如果发生变化就去更新表并且新增修改记录
 				//首先对比一下广告位的id数量是不是一样多如果发生变化就说明广告位有了变化否则再一条一条的对比
-				if(placeId.length == formerPlaceId.length) {
+				/*if(placeId.length == formerPlaceId.length) {
 					for(int i = 0; i < placeId.length; i++) {
 						if(placeId[i] != formerPlaceId[i]) {
 							updatedMark = true;
@@ -1737,27 +1731,54 @@ public class OperatorAdGroupController extends SimpleController{
 					}
 				} else {
 					updatedMark = true;
+				}*/
+				
+				//分组或场景
+				adGroupService.updatePleaceOrGroup(adGroup,place);
+				//广告位
+				boolean zoneFlag = false;
+				List<Long>zoneIdList = adgroupZoneService.queryZoneIdByAdgroupId(adGroup.getId());
+				String zoneIdStr = String.valueOf(paramMap.get("zoneId"));
+				if(zoneIdStr != null && !"".endsWith(zoneIdStr)){
+					String []zoneId = zoneIdStr.split(",");
+					int len = zoneId.length;
+					int lenList = zoneIdList.size();
+					if(lenList == 0){
+						zoneFlag = true;
+					}else{
+						for(int i=0;i<len;i++){
+							for(int j=0;j<lenList;j++){
+								if(!Long.valueOf(zoneId[i]).equals(zoneIdList.get(j))){
+									zoneFlag = true;
+									break;
+								}
+							}	
+						}
+					}
+					
+				}
+				if(zoneFlag){
+					boolean adgroupZoneFlag = adGroupService.updateAdgroupZone(adGroup,paramMap);
 				}
-				
 				//存储场景名称
 				formerPlaceNameString = "编辑之前的场景有:";
 				updatedPlaceNameString = "编辑之后的场景有:";
 				
-				for(int i = 0; i < formerAdGroupPlaceList.size(); i++) {
+			/*	for(int i = 0; i < formerAdGroupPlaceList.size(); i++) {
 					formerPlaceNameString = formerPlaceNameString + placeService.findById(formerAdGroupPlaceList.get(i).getPlaceId()).getName() + ", ";
-				}
+				}*/
 				
-				for(int i = 0; i < placeId.length; i++) {
+			/*	for(int i = 0; i < placeId.length; i++) {
 					//得到对应的广告位名称
 					updatedPlaceNameString = updatedPlaceNameString + placeService.findById(placeId[i]).getName() + ", ";
-				}
+				}*/
 				
 				
 			}
 			
 			
 			
-			if(updatedMark) {
+			/*if(updatedMark) {
 				adGroupPlaceService.updateAdgroupPlaceByAdgroupId(adGroup.getId());//删除之前保存的场景
 				adGroupService.front2dbplace(place,adGroup);//保存编辑之后的场景
 				//场景进行了改变,将表t_adgroup_place里面的supdated进行更新
@@ -1769,7 +1790,7 @@ public class OperatorAdGroupController extends SimpleController{
 					
 					logService.add(log);
 			}
-		}
+		}*/
 	    
 		model.addAttribute("campaignId", adGroup.getCampaignId());
 		return redirect(page("list"));

+ 1 - 1
src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/ad-group/create.ftl

@@ -67,7 +67,7 @@
 					<label class="input-label-other"><span class="lbl-yes">*</span>总预算:</label>
 					<input name="budget" type="hidden" id="budget" value="${budget!}"/>
 					<input class="input-text" tabindex="3" id="totalBudget" name="totalBudget" type="text" value="" verify="float/11/1/2"/>
-					<span class="input-span">元</span><span class="help-inline">总预算不能大于订单总预算</span>
+					<span class="input-span">元</span><span class="help-inline">总预算不能大于活动总预算</span>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>投放模式:</label>

+ 6 - 4
src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/ad-group/edit.ftl

@@ -54,20 +54,22 @@
 				<input type="hidden" name="selectedwifi" id="selectedwifi" value="${selectedwifi!}"/>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>投放名称:</label>
+					<input name="budget" type="hidden" name="adGroupName" value="${adGroup.adGroupName!}"/>
 					<input class="input-text" tabindex="1" id="adGroupName" name="adGroupName" type="text" value="${adGroup.adGroupName!}" verify="unspecial/255/1/0"/><span class="spanVaildate"></span>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>活动周期:</label>
 					<span id="input-calendar">
 						<i class="icon-calendar"></i>   
-						<input type="text" tabindex="2" name="activeTime" id="dateRangePicker" value="${activeTime!}" readonly/>
+						<input type="hidden" name="activeTime" value="${activeTime!}"/>
+						<input type="text" tabindex="2" name="activeTime" id="dateRangePicker" value="${activeTime!}"  disabled="true"/>
 					</span>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>总预算:</label>
-					<input name="budget" type="hidden" id="budget" value="${budget!}"/>
-					<input class="input-text" tabindex="3" id="totalBudget" name="totalBudget" type="text" value="${adGroup.totalBudget!}" verify="float/11/1/2"/>
-					<span class="input-span">元</span><span class="help-inline">总预算不能大于订单总预算</span>
+					<input name="budget" type="hidden" name="totalBudget" value="${adGroup.totalBudget!}"/>
+					<input class="input-text" tabindex="3" id="totalBudget" name="totalBudget" type="text" value="${adGroup.totalBudget!}" disabled="true"/>
+					<span class="input-span">元</span>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>投放模式:</label>

+ 1 - 1
src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/operator-ad-group/create.ftl

@@ -69,7 +69,7 @@
 					<label class="input-label-other"><span class="lbl-yes">*</span>总预算:</label>
 					<input name="budget" type="hidden" id="budget" value="${budget!}"/>
 					<input class="input-text" tabindex="3" id="totalBudget" name="totalBudget" type="text" value="" verify="float/11/1/2"/>
-					<span class="input-span">元</span><span class="help-inline">总预算不能大于订单总预算</span>
+					<span class="input-span">元</span><span class="help-inline">总预算不能大于活动总预算</span>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>投放模式:</label>

+ 5 - 4
src/main/webapp/WEB-INF/pages/advertiser/main/ad/target/operator-ad-group/edit.ftl

@@ -57,7 +57,8 @@
 				<input type="hidden" id="placeName" name="placeName" value="${placeNameStr!}"/>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>投放名称:</label>
-					<input class="input-text" tabindex="1" disabled="true" id="adGroupName" name="adGroupName" type="text" value="${adGroup.adGroupName!}" verify="unspecial/255/1/0"/><span class="spanVaildate"></span>
+					<input name="budget" type="hidden" name="adGroupName" value="${adGroup.adGroupName!}"/>
+					<input class="input-text" tabindex="1" disabled="true" id="adGroupName" name="adGroupName" type="text" value="${adGroup.adGroupName!}"/>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>活动周期:</label>
@@ -69,9 +70,9 @@
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>总预算:</label>
-					<input name="budget" type="hidden" id="budget" value="${budget!}"/>
-					<input class="input-text" tabindex="3" disabled="true"  id="totalBudget" name="totalBudget" type="text" value="${adGroup.totalBudget!}" verify="float/11/1/2"/>
-					<span class="input-span">元</span><span class="help-inline">总预算不能大于订单总预算</span><span class="spanVaildate"></span>
+					<input name="budget" type="hidden" name="totalBudget" value="${adGroup.totalBudget!}"/>
+					<input class="input-text" tabindex="3" disabled="true"  id="totalBudget" name="totalBudget" type="text" value="${adGroup.totalBudget!}"/>
+					<span class="input-span">元</span>
 				</div>
 				<div class="input-group">
 					<label class="input-label-other"><span class="lbl-yes">*</span>投放模式:</label>