Browse Source

投放管理场景修改;创建投放,状态默认为开启

jun.zhou 9 years ago
parent
commit
71984f4965

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

@@ -58,4 +58,8 @@
 		select t_place.id as id, t_place.name as name from t_place
 		where id in (select place_id from t_place_class where class_id = #{placeClassId})
 	</select>
+	
+	<select id="queryPlaceNameByClassId" parameterType="java.lang.Long" resultType="java.lang.String">
+		select tp.name name from t_place tp,t_place_class tpc where tp.id = tpc.place_id and tpc.class_id = #{classId}
+	</select>
 </mapper>

+ 5 - 1
src/main/java/com/cloudcross/ssp/model/mapper/placeclass-information.sql.xml

@@ -23,6 +23,10 @@
 		select DISTINCT(tpci.id) id,tpci.name name from t_place_class_info tpci,t_place_class tpc where tpci.id = tpc.class_id and place_id in
 		<foreach item="placeId" collection="placeIdList" open="(" separator="," close=")">
 		        #{placeId}
-			</foreach>
+		</foreach>
+	</select>
+	
+	<select id="queryClassIdByAdgroupId" parameterType="java.lang.Long" resultType="java.lang.Long">
+		select DISTINCT(class_id) classId from t_place_class where place_id in (select place_id from t_adgroup_place where adgroup_id = #{adgroupId})
 	</select>
 </mapper>

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

@@ -29,4 +29,6 @@ public interface IPlaceClassInformationService extends IGenericService<PlaceClas
 	
 	
 	List<PlaceClassInformation> queryPlaceClassInformationByAdgroupId(Long adgroupId);
+	
+	public List<Long>queryPlaceClassIndfoIdByAdgroupId(Long adgroupId);
 }

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

@@ -35,5 +35,5 @@ public interface IPlaceService extends IGenericService<Place> {
 	 */
 	List<Place> findPlaceByPlaceClassId(Long placeClassId);
 	
-	
+	List<String>queryPlaceNameByClassId(Long classId);
 }

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

@@ -27,6 +27,7 @@ public class AdGroupPlaceService implements IAdGroupPlaceService{
 	}
 	
 	public List<AdGroupPlace> findAll(Long adGroupId) {
+		
 		return ibatisDao.getList("adGroupPlaceSqlMapper.findAll", adGroupId);
 	}
 

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

@@ -204,14 +204,19 @@ edit(adGroup);
 
 	@Override
 	public void front2dbplace(String str, AdGroup adGroup) {
-		
+		Long supdated = new Date().getTime()/1000;
 		AdGroupPlace adGroupPlace = new AdGroupPlace();
-		if(null != str) {
+		if(null != str && !"".equals(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);
+				Long classId = Long.valueOf(strArr[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);
+				}
 			}
 		}
 		

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

@@ -87,5 +87,8 @@ public class PlaceClassInformationService implements IPlaceClassInformationServi
 		condition.put("placeIdList", placeIdList);
 		return myBatisDao.getList("placeClassInformationSqlMapper.queryPlaceClassInfoByplaceId", condition);
 	}
+	public List<Long>queryPlaceClassIndfoIdByAdgroupId(Long adgroupId){
+		return myBatisDao.getList("placeClassInformationSqlMapper.queryClassIdByAdgroupId", adgroupId);
+	}
 
 }

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

@@ -70,6 +70,10 @@ public class PlaceService implements IPlaceService {
 	public int countUnclassfiedPlace() {
 		return ibatisDao.get("placeSqlMapper.countUnclassfiedPlace", null);
 	}
+	@Override
+	public List<String> queryPlaceNameByClassId(Long classId) {
+		return ibatisDao.getList("placeSqlMapper.queryPlaceNameByClassId", classId);
+	}
 
 
 }

+ 22 - 13
src/main/java/com/cloudcross/ssp/web/advertiser/main/ad/target/AdGroupController.java

@@ -39,7 +39,6 @@ import com.cloudcross.ssp.common.utils.LangUtil;
 import com.cloudcross.ssp.common.utils.Pager;
 import com.cloudcross.ssp.common.utils.AdvertiserSortByDate;
 import com.cloudcross.ssp.common.utils.SqlHelper;
-import com.cloudcross.ssp.model.Account;
 import com.cloudcross.ssp.model.AdGroup;
 import com.cloudcross.ssp.model.AdGroupPlace;
 import com.cloudcross.ssp.model.Advertiser;
@@ -49,12 +48,9 @@ import com.cloudcross.ssp.model.Direct;
 import com.cloudcross.ssp.model.Location;
 import com.cloudcross.ssp.model.Log;
 import com.cloudcross.ssp.model.Order;
-import com.cloudcross.ssp.model.Place;
+
 import com.cloudcross.ssp.model.PlaceClassInformation;
 import com.cloudcross.ssp.model.Wifi;
-import com.cloudcross.ssp.model.WifiGroupInfo;
-import com.cloudcross.ssp.model.Zone;
-import com.cloudcross.ssp.model.pojo.CampaignPojo;
 import com.cloudcross.ssp.service.IAdGroupPlaceService;
 import com.cloudcross.ssp.service.IAdGroupService;
 import com.cloudcross.ssp.service.IAdvertiserService;
@@ -438,8 +434,7 @@ public class AdGroupController extends SimpleController {
 	
 
 	@RequestMapping("/create")
-	public String create(Model model
-			, @RequestParam Long campaignId) {
+	public String create(Model model, @RequestParam Long campaignId) {
 		Campaign campaign = campaignService.findById(campaignId);		
 		Long orderId = campaign.getOrderId();
 		Order order = orderService.findById(orderId);
@@ -473,8 +468,19 @@ public class AdGroupController extends SimpleController {
 		
 		//获取所有已选择的场景并且用","分割存放到place里面
 		String place = "";
+		List<Long>placeClassIndfoIdList = placeClassInformationService.queryPlaceClassIndfoIdByAdgroupId(adGroup.getId());
+		if(placeClassIndfoIdList != null && placeClassIndfoIdList.size()>0){
+			int len = placeClassIndfoIdList.size();
+			for(int i=0;i<len;i++){
+				if(i < len-1){
+					place = place + placeClassIndfoIdList.get(i) + ",";
+					continue;
+				}
+				place = place + placeClassIndfoIdList.get(i);
+			}
+		}
 		
-		List<AdGroupPlace> adGroupPlaceList = adGroupPlaceService.findAll(adGroup.getId());
+		/*List<AdGroupPlace> adGroupPlaceList = adGroupPlaceService.findAll(adGroup.getId());
 		for(int i = 0; i < adGroupPlaceList.size(); i++) {
 			//如果遍历到最后一个时就不必再加逗号
 			if(i == (adGroupPlaceList.size() - 1)) {
@@ -482,7 +488,7 @@ public class AdGroupController extends SimpleController {
 			} else {
 				place = place + adGroupPlaceList.get(i).getPlaceId() + ",";
 			}
-		}
+		}*/
 		
 		// 千次转换
 	    adGroup.setMaxImpression(adGroup.getMaxImpression() / 1000);
@@ -549,7 +555,7 @@ public class AdGroupController extends SimpleController {
 		model.addAttribute("activeTime", activeTime);
 		model.addAttribute("place",place);
 		model.addAttribute("adGroup", adGroup);
-		model.addAttribute("adGroupPlaceList",adGroupPlaceList);
+		//model.addAttribute("adGroupPlaceList",adGroupPlaceList);
 		model.addAllAttributes(paramMap);
 		return page("edit");
 	}
@@ -606,7 +612,7 @@ public class AdGroupController extends SimpleController {
 		adGroup.setAgentId(Long.parseLong(String.valueOf(paramMap.get("agentId"))));
 		adGroup.setCampaignId(campaignId);
 		adGroup.setOrderId(orderId);
-		adGroup.setStatus(1);
+		adGroup.setStatus(0);
 		
 		/**
 		 * 在这里做时间定向的功能处理
@@ -869,6 +875,8 @@ public class AdGroupController extends SimpleController {
 				logService.add(log);
 			}
 			
+			
+			
 			adGroupService.front2dbplace(place,adGroup);//place是场景place把选择的场景存放到相应的数据库中		
 			/**
 			 * 保存已选的wifi到数据库t_adgroup_wifi
@@ -887,7 +895,7 @@ public class AdGroupController extends SimpleController {
 				String[] strArr = place.split(",");
 					for(int i = 0; i < strArr.length; i++) {
 						//通过场景id得到场景的名称
-						placeNameString = placeNameString + placeService.findById(Long.valueOf(strArr[i]).longValue()).getName() + ", " ;
+						placeNameString = placeNameString + placeService.queryPlaceNameByClassId(Long.valueOf(strArr[i]).longValue())+ ", " ;
 					}
 					
 					//对应的操作
@@ -1580,7 +1588,7 @@ public class AdGroupController extends SimpleController {
 				
 				for(int i = 0; i < placeId.length; i++) {
 					//得到对应的广告位名称
-					updatedPlaceNameString = updatedPlaceNameString + placeService.findById(placeId[i]).getName() + ", ";
+					updatedPlaceNameString = updatedPlaceNameString + placeService.queryPlaceNameByClassId(Long.valueOf(placeId[i]).longValue()) + ", ";
 				}
 				
 				
@@ -1589,6 +1597,7 @@ public class AdGroupController extends SimpleController {
 			
 			
 			if(updatedMark) {
+				//物理删除还是伪删除????????????????????????
 				adGroupPlaceService.delete(adGroup.getId());//删除之前保存的场景
 				adGroupService.front2dbplace(place,adGroup);//保存编辑之后的场景
 				//场景进行了改变,将表t_adgroup_place里面的supdated进行更新