Browse Source

热点分组功能优化

jun.zhou 9 years ago
parent
commit
25badced65

+ 42 - 21
src/main/java/com/cloudcross/ssp/model/mapper/wifi.sql.xml

@@ -328,46 +328,64 @@
 		</if>
 	</select>
 	
-	<select id="queryWifiGroupCount" parameterType="java.util.Map" resultType="java.lang.Integer">
-		SELECT count(wifi.id) FROM t_wifi wifi,t_wifi_group wg,t_wifi_group_info wgi
-		WHERE wg.wifi_id = wifi.id AND wg.group_id = wgi.id 
-		and wifi.operator_id = #{operatorId} and wgi.name = #{name}
+	<!-- 热点分组add-count -->
+	<select id="queryWifiCountByCondition" parameterType="java.util.Map" resultType="java.lang.Integer">
+		SELECT 
+			count(DISTINCT(wifi.id ))
+		FROM
+			t_wifi wifi,
+			t_location loc,
+			t_wifi_group twg,
+			t_wifi_group_info twgi
+		WHERE
+			wifi.status != -1 and twgi.status = 0 and twg.status = 0
+			and wifi.place_id = loc.id
+			and wifi.id = twg.wifi_id
+			and twg.group_id = twgi.id
+		and wifi.operator_id = #{operatorId}
+		<if test="name != null">
+		and twgi.name = #{name}
+		</if>
 		<if test="apmac != null">
 		and wifi.apmac = #{apmac}
 		</if>
-		
 	</select>
 	
-	<select id="queryWifiGroup" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.Wifi">
-		SELECT
-			wifi.id id,
-			wifi.operator_id operatorId,
-			wifi.name name,
+	<!-- 热点分组add -->
+	<select id="queryWifiByCondition" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.Wifi">
+		SELECT 
+			DISTINCT(wifi.id ) id,
+			wifi.NAME name,
 			wifi.SSID SSID,
 			wifi.location location,
 			wifi.apmac apmac,
-			wifi.address adderss,
+			wifi.address address,
 			wifi.longitude longitude,
 			wifi.latitude latitude,
-			wgi.name groupName,
-			wg.supdated supdated,
-			wg.status status
+			loc.cn cn,
+			loc.cn_city cnCity
 		FROM
 			t_wifi wifi,
-			t_wifi_group wg,
-			t_wifi_group_info wgi
+			t_location loc,
+			t_wifi_group twg,
+			t_wifi_group_info twgi
 		WHERE
-			wg.wifi_id = wifi.id
-		AND wg.group_id = wgi.id
+			wifi.status != -1 and twgi.status = 0 and twg.status = 0
+			and wifi.place_id = loc.id
+			and wifi.id = twg.wifi_id
+			and twg.group_id = twgi.id
 		and wifi.operator_id = #{operatorId}
-		and wgi.name = #{name}
+		<if test="name != null">
+		and twgi.name = #{name}
+		</if>
 		<if test="apmac != null">
 		and wifi.apmac = #{apmac}
 		</if>
 		limit #{pager.offset}, #{pager.limit}
 	</select>
 	
-	<select id="queryWifiByCondition" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.Wifi">
+	<!-- 热点分组edit -->
+	<select id="findWifiByCondition" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.Wifi">
 		SELECT
 			wifi.id id,
 			wifi.NAME name,
@@ -384,6 +402,7 @@
 			t_location loc
 		WHERE
 			wifi.place_id = loc.id
+			and wifi.status != -1
 			<if test="operatorId != null">
 				and wifi.operator_id = #{operatorId}
 			</if>
@@ -399,9 +418,11 @@
 			limit #{pager.offset}, #{pager.limit}
 	</select>
 	
-	<select id="queryWifiCountByCondition" parameterType="java.util.Map" resultType="java.lang.Integer">
+	<!-- 热点分组edit-count -->
+	<select id="findWifiCountByCondition" parameterType="java.util.Map" resultType="java.lang.Integer">
 		SELECT count(wifi.id) FROM t_wifi wifi,t_location loc WHERE
 			wifi.place_id = loc.id
+			and wifi.status != -1
 			<if test="operatorId != null">
 				and wifi.operator_id = #{operatorId}
 			</if>

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

@@ -10,10 +10,10 @@
 	</insert>
 	
 	<!-- 将wifi移除分组 -->
-	<update id="updateWifiGroupStatus" parameterType="java.util.Map">
+	<update id="updateStatusByGroupId" parameterType="java.util.Map">
 		update t_wifi_group 
 			set status = #{status},supdated = #{supdated}
-			where t_wifi_group.wifi_id in
+			where group_id = #{groupId} and wifi_id in
 			<foreach item="id" collection="idList"
 		      open="(" separator="," close=")">
 		        #{id}
@@ -27,7 +27,7 @@
 			where t_wifi_group.group_id = #{id}
 	</select>
 	
-	<select id="queryWifiIdByGroupId" parameterType="java.lang.Long" resultType="com.cloudcross.ssp.model.WifiGroup">
-		select wifi_id as wifiId from t_wifi_group where group_id = #{groupId}
+	<select id="queryWifiIdByGroupId" parameterType="java.lang.Long" resultType="java.lang.Long">
+		select wifi_id as wifiId from t_wifi_group where status = 0 and group_id = #{groupId}
 	</select>
 </mapper>

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

@@ -38,11 +38,11 @@
 	
 	<!-- operatorId查询分组信息 -->
 	<select id="queryGroupNames" resultType="com.cloudcross.ssp.model.WifiGroupInfo" parameterType="java.util.Map">
-		select <include refid="column"/> from t_wifi_group_info where status != -1 and operator_id = #{operatorId} limit #{pager.offset}, #{pager.limit}
+		select <include refid="column"/> from t_wifi_group_info where status = 0 and operator_id = #{operatorId} limit #{pager.offset}, #{pager.limit}
 	</select>
 	
 	<select id="queryGroupNamesCount" resultType="java.lang.Integer" parameterType="java.util.Map">
-		select count(id) from t_wifi_group_info where status != -1 and operator_id = #{operatorId}
+		select count(id) from t_wifi_group_info where status = 0 and operator_id = #{operatorId}
 	</select>
 	
 	<select id="queryWifiGroupInfoByCondition" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.WifiGroupInfo">
@@ -58,13 +58,13 @@
 	</select>
 	
 	<select id="queryGroupNameAll" resultType="com.cloudcross.ssp.model.WifiGroupInfo" parameterType="java.util.Map">
-		select <include refid="column"/> from t_wifi_group_info where status != -1 and operator_id = #{operatorId} 
+		select <include refid="column"/> from t_wifi_group_info where status = 0 and operator_id = #{operatorId} 
 	</select>
 	
 	<!-- 删除分组 -->
 	<update id="updateStatusById" parameterType="java.util.Map">
 		update t_wifi_group_info 
 			set status = #{status},updated = #{updated}
-			where t_wifi_group_info.id = ${id}
+			where t_wifi_group_info.id = #{id}
 	</update>
 </mapper>

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

@@ -21,4 +21,5 @@ public interface IWifiGroupService extends IGenericService<WifiGroup>{
 	public boolean updateStatusById(Long id, int status);
 	public boolean addWifiToGroup(List<Long>wifiIdList,WifiGroup wifiGroup);
 	public List<Long> queryWifiIdByGroupId(Long groupId);
+	boolean updateStatusByGroupId(List<Long> idList, int status, Long groupId);
 }

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

@@ -26,8 +26,8 @@ public interface IWifiService extends IGenericService<Wifi> {
 	List<Wifi> findByParamsBack(Map<String, Object> paramMap);
 	
 	//wifi分组
-	public int countWifiGroupByCondition(Map<String,Object>paramMap);
-	public List<WifiPojo> queryWifiGroupByCondition(Map<String, Object> paramMap, Pager pager);
+	/*public int countWifiGroupByCondition(Map<String,Object>paramMap);
+	public List<WifiPojo> queryWifiGroupByCondition(Map<String, Object> paramMap, Pager pager);*/
 	
 	public int queryWifiCountByCondition(Map<String,Object>condition);
 	public List<Wifi> queryWifiByCondition(Map<String,Object>condition,Pager pager);

+ 10 - 3
src/main/java/com/cloudcross/ssp/service/impl/WifiGroupService.java

@@ -60,12 +60,13 @@ public class WifiGroupService implements IWifiGroupService{
 		// TODO Auto-generated method stub
 		return false;
 	}
-
+	
 	@Override
-	public boolean updateStatus(List<Long> idList, int status) {
-		myBatisDao.save("wifiGroupSqlMapper.updateWifiGroupStatus",
+	public boolean updateStatusByGroupId(List<Long> idList, int status,Long groupId) {
+		myBatisDao.save("wifiGroupSqlMapper.updateStatusByGroupId",
 				MapBuilder.create(HashMap.class)
 					.add("idList", idList)
+					.add("groupId", groupId)
 					.add("supdated", new Date().getTime()/1000)
 					.add("status", status).map());
 		return true;
@@ -93,4 +94,10 @@ public class WifiGroupService implements IWifiGroupService{
 	public List<Long> queryWifiIdByGroupId(Long groupId){
 		return myBatisDao.getList("wifiGroupSqlMapper.queryWifiIdByGroupId", groupId);
 	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
 }

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

@@ -237,32 +237,32 @@ public class WifiService implements IWifiService{
 	public List<Wifi> findByParamsBack(Map<String, Object> paramMap) {
 		return myBatisDao.getList("wifiSqlMapper.findByParams1Back", paramMap);
 	}
-	@Override
+	/*@Override
 	public int countWifiGroupByCondition(Map<String, Object> paramMap) {
-		return myBatisDao.get("wifiSqlMapper.queryWifiGroupCount", paramMap);
-	}
-	@Override
-	public List<WifiPojo> queryWifiGroupByCondition(Map<String, Object> paramMap, Pager pager) {
+		return myBatisDao.get("wifiSqlMapper.", paramMap);
+	}*/
+	
+	/*public List<WifiPojo> queryWifiGroupByCondition(Map<String, Object> paramMap, Pager pager) {
 		paramMap.put("pager", pager);
-		return myBatisDao.getList("wifiSqlMapper.queryWifiGroup", paramMap);
-	}
+		return myBatisDao.getList("wifiSqlMapper.", paramMap);
+	}*/
 	@Override
 	public int queryWifiCountByCondition(Map<String, Object> condition) {
-		return myBatisDao.get("wifiSqlMapper.queryWifiGroupCount", condition);
+		return myBatisDao.get("wifiSqlMapper.queryWifiCountByCondition", condition);
 	}
 	@Override
 	public List<Wifi> queryWifiByCondition(Map<String, Object> condition,Pager pager) {
 		condition.put("pager", pager);
-		return myBatisDao.getList("wifiSqlMapper.queryWifiGroup", condition);
+		return myBatisDao.getList("wifiSqlMapper.queryWifiByCondition", condition);
 	}
 	@Override
 	public int findWifiCountByCondition(Map<String, Object> condition) {
-		return myBatisDao.get("wifiSqlMapper.queryWifiCountByCondition", condition);
+		return myBatisDao.get("wifiSqlMapper.findWifiCountByCondition", condition);
 	}
 	@Override
 	public List<Wifi> findWifiByCondition(Map<String, Object> condition,Pager pager) {
 		condition.put("pager", pager);
-		return myBatisDao.getList("wifiSqlMapper.queryWifiByCondition", condition);
+		return myBatisDao.getList("wifiSqlMapper.findWifiByCondition", condition);
 	}
 	
 	public String queryWifiNameById(Long id){

+ 58 - 139
src/main/java/com/cloudcross/ssp/web/operator/main/ap/ApgroupController.java

@@ -74,7 +74,7 @@ public class ApgroupController extends SimpleController{
 	 * @exception
 	 * @since  1.0.0
 	 */
-	@RequestMapping("/list")
+	/*@RequestMapping("/list")
 	public String list(Model model,@RequestParam Map<String,Object>paramMap,@RequestParam(defaultValue="1")int page){
 		//通过登录账号得到当前登录的运营商id
 		Account account = getLoginUser();
@@ -90,8 +90,8 @@ public class ApgroupController extends SimpleController{
 		model.addAttribute("wifiList", wifiList);
 		return page("list");
 	}
-	
-	/**!!!!!!!!!!!!!!create页面的所有数据加载都用这个方法
+	*/
+	/**create页面的所有数据加载都用这个方法
 	 * 到创建分组页
 	 * create:(这里用一句话描述这个方法的作用)
 	 * (这里描述这个方法适用条件 – 可选)
@@ -156,38 +156,6 @@ public class ApgroupController extends SimpleController{
 		return page("create");
 	}
 	
-	/**
-	 * 点击分组,看到分组详情
-	 * queryWifiByCondition:(这里用一句话描述这个方法的作用)
-	 * (这里描述这个方法适用条件 – 可选)
-	 * 创建人:zhoujun
-	 * 修改人:zhoujun
-	 * @param page
-	 * @param apgroupId
-	 * @param apmac
-	 * @return
-	 *List<WifiPojo>
-	 * @exception
-	 * @since  1.0.0
-	 */
-	/*@RequestMapping("/wifidetail")
-	public List<WifiPojo> queryWifiByCondition(@RequestParam(defaultValue="1")int page,String apgroupId,String apmac){
-		List<WifiPojo> wifiList = null;
-		Map<String,Object>condition = new HashMap<String,Object>();
-		if(null != apgroupId && !"".equals(apgroupId) ){
-			condition.put("apgroupId", apgroupId);
-		}
-		if(null != apmac && !"".equals(apmac)){
-			condition.put("apmac", apmac);
-		}
-		Pager pager = new Pager();
-		int totalRow = wifiService.queryWifiCountByCondition(condition);
-		pager.setPage(page);
-		pager.setTotalRow(totalRow);
-		wifiList = null;//wifiService.queryWifiByCondition(condition,pager);
-		return wifiList;
-	}*/
-	
 	/**
 	 *创建分组页添加分组
 	 * addGroupName:(这里用一句话描述这个方法的作用)
@@ -230,86 +198,64 @@ public class ApgroupController extends SimpleController{
 		}
 		return flag;
 	}
+	
 	/**
-	 * 分组页查询所有分组名
-	 * queryWifiGroupInfoNames:(这里用一句话描述这个方法的作用)
-	 * (这里描述这个方法适用条件 – 可选)
-	 * 创建人:zhoujun
-	 * 修改人:zhoujun
-	 * @param model
-	 *void
-	 * @exception
-	 * @since  1.0.0
+	 * 分组编辑页面
+	 * @param model 后台传回页面的参数
+	 * @param paramMap 页面传过来的参数
+	 * @param page 分页
+	 * @return 到edit页面
 	 */
-	/*@RequestMapping("/queryGroupName")
-	@ResponseBody
-	public String queryWifiGroupInfoNames(Model model,@RequestParam(defaultValue = "1") int page){
-		Map<String,Object> condition = new HashMap<String,Object>();
-		condition.put("operatorId", getLoginUser().getOperatorId());
-		List<WifiGroupInfo> listGroupName = this.wifiGroupInfoService.findByParams(condition, null);
-		model.addAttribute("listGroupName", listGroupName);
-		Pager1 pager1 = new Pager1();
-		pager1.setPage(page);
-		pager1.setTotalRow(30);
-		model.addAttribute("pager",pager1);
-		return page("create");
-	}*/
-	
 	@RequestMapping("/edit")
-	public String list(Model model, @RequestParam HashMap<String, Object> paramMap,
-			@RequestParam(defaultValue = "1") int page) {
-		
-		//通过登录账号得到当前登录的运营商id
-		Account account = getLoginUser();
-		paramMap.put("operatorId", account.getOperatorId());
+	public String edit(Model model, @RequestParam HashMap<String, Object> paramMap,@RequestParam(defaultValue = "1") int page) {
+		Long operatorId = getLoginUser().getOperatorId();//当前登录的账户关联的运营商id
+		Map<String,Object>condition = new HashMap<String,Object>();//存放查询条件
+		condition.put("operatorId",operatorId);
 		
-		String cn = null;
-		String cnCity = null;
-		/**
-		 * 下面对传递过来的几个参数进行处理
-		 */
-		if(null != paramMap.get("cn") && !"".equals(paramMap.get("cn"))) {
-			cn = String.valueOf(paramMap.get("cn"));
-		} 
+		//查理查询条件
+		Object cnObj = paramMap.get("cn");
+		String cn = "";
+		if(null != cnObj && !"".equals(cnObj)){
+			cn = String.valueOf(cnObj);
+			condition.put("cn", cn);
+		}else{
+			cn = "省";
+		}
 		
-		if(null != paramMap.get("cnCity") && !"".equals(paramMap.get("cnCity"))) {
-			cnCity = String.valueOf(paramMap.get("cnCity"));
+		Object cnCityObj = paramMap.get("cnCity");
+		String cnCity = ""; 
+		if(null != cnCityObj && !"".equals(cnCityObj)){
+			cnCity = String.valueOf(cnCityObj);
+			condition.put("cnCity", cnCity);
+		}else{
+			cnCity = "市";
 		}
-		paramMap.put("cn", cn);
-		paramMap.put("cnCity", cnCity);
 		
-		//按热点名称和详细地址搜索
+		Object macObj = paramMap.get("serachValue");
 		String apmac = "";
-		if(null != paramMap.get("searchValue") && !"".equals(paramMap.get("searchValue"))) {
-				apmac = (String) paramMap.get("searchValue");
-				paramMap.put("apmac", apmac);
-		} else {
-			paramMap.put("searchValue", null);
+		if(null != macObj && !"".equals(macObj)){
+			apmac = String.valueOf(macObj);
+			condition.put("apmac", apmac);
 		}
 		
-		int totalRow = 0;
-		Pager pager = null;
-		pager = new Pager();
+		model.addAttribute("cn", cn);
+		model.addAttribute("cnCity", cnCity);
+		model.addAttribute("searchValue", apmac);
+		
+
+		Pager pager = new Pager();
 		//查询符合条件的总的条数
-		totalRow = wifiService.findWifiCountByCondition(paramMap);
+		int totalRow = wifiService.findWifiCountByCondition(condition);
 		pager.setPage(page);
 		pager.setTotalRow(totalRow);
-		List<Wifi> wifiList = wifiService.findWifiByCondition(paramMap, pager);
+		List<Wifi> wifiList = wifiService.findWifiByCondition(condition, pager);
 		//分组名
 		Map<String,Object>map = new HashMap<String,Object>();
-		map.put("operatorId", getLoginUser().getOperatorId());
+		map.put("operatorId", operatorId);
 		List<WifiGroupInfo> listGroupName = this.wifiGroupInfoService.queryGroupNameAll(map);
-		//如果下拉框传的是默认值,则回传一个对应的值给前端
-		if(null == cn) {
-			cn = "省";
-		}
 		
-		if(null == cnCity) {
-			cnCity = "市";
-		}
-		paramMap.put("cn", cn);
-		paramMap.put("cnCity", cnCity);
-		paramMap.put("searchValue", apmac);
+		
+		
 		model.addAttribute("pager",pager);
 		model.addAllAttributes(paramMap);
 		model.addAttribute("wifiList", wifiList);
@@ -317,39 +263,7 @@ public class ApgroupController extends SimpleController{
 		return page("edit");
 	}
 	
-	/**
-	 * 想分组里添加热点
-	 * addWifiGroup:(这里用一句话描述这个方法的作用)
-	 * (这里描述这个方法适用条件 – 可选)
-	 * 创建人:zhoujun
-	 * 修改人:zhoujun
-	 * @param model
-	 * @param wifiId
-	 * @param groupId
-	 * @return
-	 *String
-	 * @exception
-	 * @since  1.0.0
-	 */
-	/*@RequestMapping("/addWifiGroup")
-	@ResponseBody
-	public String addWifiGroup(Model model,long wifiId,long groupId){
-		Boolean flag = false;
-		String result = "";
-		WifiGroup wifiGroup = new WifiGroup();
-		wifiGroup.setGroupId(groupId);
-		wifiGroup.setWifiId(wifiId);
-		wifiGroup.setStatus(0);
-		wifiGroup.setSupdated(new Date().getTime()/1000);
-		flag = this.wifiGroupService.add(wifiGroup);
-		if(flag){
-			result = "成功";
-		}else{
-			result = "失败";
-		}
-		return result;	
-	}
-	*/
+	
 	/**
 	 * 根据wifiID将热点移除分组
 	 * @param id wifi的id
@@ -358,7 +272,8 @@ public class ApgroupController extends SimpleController{
 	 */
 	@RequestMapping("/removeWifiFromGroupByWifiId")
 	@ResponseBody
-	public String removeWifiFromGroupByWifiId(Long[] id,HttpServletRequest request) {
+	public String removeWifiFromGroupByWifiId(Long[] id,Long groupId,HttpServletRequest request) {
+		
 		if (ArrayUtils.isNotEmpty(id)) {
 			//循环得到订单名称(批量或者单个都可以)_________为了插入log记录的时候显示订单名称!
 			List<String> list = new ArrayList<String>();
@@ -367,8 +282,8 @@ public class ApgroupController extends SimpleController{
 				String wifiName = this.wifiService.queryWifiNameById(id[i]);
 				list.add(wifiName);
 			}
-			
-			if(wifiGroupService.updateStatus(LangUtil.array2List(id),Status.delete.value) ) {
+			boolean flag =  wifiGroupService.updateStatusByGroupId(LangUtil.array2List(id),Status.delete.value,groupId);
+			if(flag) {
 				//如果删除订单成功,向log数据库中插入记录!
 				for (int i = 0;i < id.length;i++) {
 				Log logDel= new Log();
@@ -442,12 +357,9 @@ public class ApgroupController extends SimpleController{
 	@RequestMapping("save")
 	@ResponseBody
 	public String addWifiToGroup(Long[]id,Long wifiGroupInfoId,HttpServletRequest request) {
-		WifiGroup wifiGroup = new WifiGroup();
-		wifiGroup.setGroupId(wifiGroupInfoId);
-		wifiGroup.setStatus(0);
-		wifiGroup.setSupdated(new Date().getTime()/1000);
 		//查询分组里的wifi
 		List<Long> wifiIdList = this.wifiGroupService.queryWifiIdByGroupId(wifiGroupInfoId);
+
 		List<Long> idList = LangUtil.array2List(id);
 		if(wifiIdList != null && wifiIdList.size()>0){
 			int len = wifiIdList.size(); 
@@ -455,7 +367,14 @@ public class ApgroupController extends SimpleController{
 				idList.remove(wifiIdList.get(i));
 			}
 		}
-		boolean flag = this.wifiGroupService.addWifiToGroup(idList,wifiGroup);
+		boolean flag = false;
+		if(idList != null && idList.size()>0){
+			WifiGroup wifiGroup = new WifiGroup();
+			wifiGroup.setGroupId(wifiGroupInfoId);
+			wifiGroup.setStatus(0);
+			wifiGroup.setSupdated(new Date().getTime()/1000);
+			flag = this.wifiGroupService.addWifiToGroup(idList,wifiGroup);
+		}
 		if(flag){
 			for(int i=0;i<id.length;i++){
 				Log log = new Log();