Browse Source

媒体自用分组

jun.zhou 9 years ago
parent
commit
86550206eb

+ 62 - 0
src/main/java/com/cloudcross/ssp/model/WifiGroup.java

@@ -0,0 +1,62 @@
+package com.cloudcross.ssp.model;
+
+import java.util.Date;
+
+/**
+ * 
+ *
+ * 类名称:WifiGroup
+ * 类描述:wifi热点与分组关联
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午12:18:21
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+public class WifiGroup {
+	private Long id;//关联ID
+	private Long wifiId;//热点ID
+	private Long groupId;//分组ID
+	private Integer status;//状态
+	private Date supdated;//更新时间
+	public Long getId() {
+		return id;
+	}
+	public void setId(Long id) {
+		this.id = id;
+	}
+	public Long getWifiId() {
+		return wifiId;
+	}
+	public void setWifiId(Long wifiId) {
+		this.wifiId = wifiId;
+	}
+	public Long getGroupId() {
+		return groupId;
+	}
+	public void setGroupId(Long groupId) {
+		this.groupId = groupId;
+	}
+	public Integer getStatus() {
+		return status;
+	}
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+	public Date getSupdated() {
+		return supdated;
+	}
+	public void setSupdated(Date supdated) {
+		this.supdated = supdated;
+	}
+	@Override
+	public String toString() {
+		return "WifiGroup [id=" + id + ", wifiId=" + wifiId + ", groupId="
+				+ groupId + ", status=" + status + ", supdated=" + supdated
+				+ "]";
+	}
+	
+	
+
+}

+ 54 - 0
src/main/java/com/cloudcross/ssp/model/WifiGroupInfo.java

@@ -0,0 +1,54 @@
+package com.cloudcross.ssp.model;
+
+import java.util.Date;
+
+/**
+ * 
+ *
+ * 类名称:WifiGroupInfo
+ * 类描述:wifi热点分组
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午12:11:53
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+public class WifiGroupInfo {
+	private Long id;
+	private String name;//分组名称
+	private Integer status;//分组状态
+	private Date updated;//更新时间
+	public Long getId() {
+		return id;
+	}
+	public void setId(Long id) {
+		this.id = id;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Integer getStatus() {
+		return status;
+	}
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+	public Date getUpdated() {
+		return updated;
+	}
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+	@Override
+	public String toString() {
+		return "WifiGroupInfo [id=" + id + ", name=" + name + ", status="
+				+ status + ", updated=" + updated + "]";
+	}
+	
+	
+
+}

+ 93 - 0
src/main/java/com/cloudcross/ssp/model/mapper/wifi.sql.xml

@@ -293,4 +293,97 @@
 		</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 
+		<if test="operatorId != null">
+		and wifi.operator_id = #{operatorId}
+		</if>
+		<if test="apmac != null">
+		and wifi.apmac = #{apmac}
+		</if>
+		<if test="name != null">
+		and wgi.name = #{name}
+		</if>
+	</select>
+	
+	<select id="queryWifiGroup" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.pojo.WifiPojo">
+		SELECT
+			wifi.id id,
+			wifi.operator_id operatorId,
+			wifi.name name,
+			wifi.SSID SSID,
+			wifi.location location,
+			wifi.apmac apmac,
+			wifi.address adderss,
+			wifi.longitude longitude,
+			wifi.latitude latitude,
+			wgi.name groupName,
+			wg.supdated supdated,
+			wg.status status
+		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
+		<if test="operatorId != null">
+		and wifi.operator_id = #{operatorId}
+		</if>
+		<if test="apmac != null">
+		and wifi.apmac = #{apmac}
+		</if>
+		<if test="name != null">
+		and wgi.name = #{name}
+		</if>
+	</select>
+	
+	<select id="queryWifiByCondition" parameterType="java.util.Map" resultType="com.cloudcross.ssp.model.Wifi">
+		SELECT
+			wifi.id id,
+			wifi.NAME name,
+			wifi.SSID SSID,
+			wifi.location location,
+			wifi.apmac apmac,
+			wifi.address address,
+			wifi.longitude longitude,
+			wifi.latitude latitude,
+			loc.cn cn,
+			loc.cn_city cnCity
+		FROM
+			t_wifi wifi,
+			t_location loc
+		WHERE
+			wifi.place_id = loc.id
+			<if test="operatorId != null">
+				and wifi.operator_id = #{operatorId}
+			</if>
+			<if test="apmac != null">
+				and wifi.apmac = #{apmac}
+			</if>
+			<if test="cn != null">
+				and loc.cn = #{cn}
+			</if> 
+			<if test="cnCity != null">
+				and loc.cn_city = #{cnCity}
+			</if>
+	</select>
+	
+	<select id="queryWifiCountByCondition" 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
+			<if test="operatorId != null">
+				and wifi.operator_id = #{operatorId}
+			</if>
+			<if test="apmac != null">
+				and wifi.apmac = #{apmac}
+			</if>
+			<if test="cn != null">
+				and loc.cn = #{cn}
+			</if> 
+			<if test="cnCity != null">
+				and loc.cn_city = #{cnCity}
+			</if>
+	</select>
 </mapper>

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

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="wifiGroupSqlMapper">
+	<insert id="addWifiGroup" parameterType="com.cloudcross.ssp.model.WifiGroup">
+		insert into t_wifi_group
+		 <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="wifiId != null">
+                wifi_id,
+            </if>
+            <if test="groupId != null">
+                group_id,
+            </if>
+            <if test="status != null">
+                status,
+            </if>
+            <if test="supdated != null">
+                supdated
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="wifiId != null">
+                #{wifiId},
+            </if>
+            <if test="groupId != null">
+                #{groupId},
+            </if>
+            <if test="status != null">
+                #{status},
+            </if>
+            <if test="supdated != null">
+               #{supdated}
+            </if>
+        </trim>
+	</insert>
+	
+</mapper>

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

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="wifiGroupInfoSqlMapper">
+	
+	<insert id="addWifiGroupInfo" parameterType="com.cloudcross.ssp.model.WifiGroupInfo">
+		insert into t_wifi_group_info
+		 <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="name != null">
+                name,
+            </if>
+            <if test="status != null">
+                status,
+            </if>
+            <if test="updated != null">
+                updated
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="name != null">
+                #{name},
+            </if>
+            <if test="status != null">
+                #{status},
+            </if>
+            <if test="updated != null">
+                #{updated}
+            </if>
+        </trim>
+	</insert>
+	
+	<select id="queryGroupNames" resultType="com.cloudcross.ssp.model.WifiGroupInfo">
+		select id,name from t_wifi_group_info where status = 0
+	</select>
+</mapper>

+ 61 - 0
src/main/java/com/cloudcross/ssp/model/pojo/WifiPojo.java

@@ -0,0 +1,61 @@
+package com.cloudcross.ssp.model.pojo;
+
+import java.util.Date;
+
+import com.cloudcross.ssp.model.Wifi;
+/**
+ * 
+ *
+ * 类名称:WifiPojo
+ * 类描述:
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午3:39:55
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+public class WifiPojo extends Wifi{
+	private String groupName;//分组名
+	private Date supdated;//分组修改时间
+	private Integer status;//分组热点对应关系状态
+	
+	
+	public String getGroupName() {
+		return groupName;
+	}
+
+
+	public void setGroupName(String groupName) {
+		this.groupName = groupName;
+	}
+
+
+	public Date getSupdated() {
+		return supdated;
+	}
+
+
+	public void setSupdated(Date supdated) {
+		this.supdated = supdated;
+	}
+
+
+	public Integer getStatus() {
+		return status;
+	}
+
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+
+	@Override
+	public String toString() {
+		return "WifiPojo [groupName=" + groupName + ", supdated=" + supdated
+				+ ", status=" + status + "]";
+	}
+	
+	
+}

+ 20 - 0
src/main/java/com/cloudcross/ssp/service/IWifiGroupInfoService.java

@@ -0,0 +1,20 @@
+package com.cloudcross.ssp.service;
+
+import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.model.WifiGroupInfo;
+
+/**
+ * 
+ *
+ * 类名称:IWifiGroupInfoService
+ * 类描述:IWifiGroupInfoService接口
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午12:33:08
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+public interface IWifiGroupInfoService extends IGenericService<WifiGroupInfo>{
+
+}

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

@@ -0,0 +1,20 @@
+package com.cloudcross.ssp.service;
+
+import com.cloudcross.ssp.base.service.IGenericService;
+import com.cloudcross.ssp.model.WifiGroup;
+
+/**
+ * 
+ *
+ * 类名称:IWifiGroupService
+ * 类描述:IWifiGroupService接口
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午12:32:57
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+public interface IWifiGroupService extends IGenericService<WifiGroup>{
+
+}

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

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.cloudcross.ssp.model.Wifi;
+import com.cloudcross.ssp.model.pojo.WifiPojo;
 import com.cloudcross.ssp.base.service.IGenericService;
 import com.cloudcross.ssp.common.utils.Pager;
 
@@ -23,4 +24,15 @@ public interface IWifiService extends IGenericService<Wifi> {
 	public int countByParamsBack(Map<String, Object> paramMap); 
 	List<Wifi> findByParamsBack(Map<String, Object> paramMap, Pager pager);
 	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 queryWifiCountByCondition(Map<String,Object>condition);
+	public List<WifiPojo> queryWifiByCondition(Map<String,Object>condition,Pager pager);
+	
+	
+	public int findWifiCountByCondition(Map<String,Object>condition);
+	public List<Wifi>findWifiByCondition(Map<String,Object>condition,Pager pager);
 }

+ 66 - 0
src/main/java/com/cloudcross/ssp/service/impl/WifiGroupInfoService.java

@@ -0,0 +1,66 @@
+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.WifiGroupInfo;
+import com.cloudcross.ssp.service.IWifiGroupInfoService;
+/**
+ * 
+ *
+ * 类名称:WifiGroupInfoService
+ * 类描述:
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午1:50:54
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+@Service
+public class WifiGroupInfoService implements IWifiGroupInfoService{
+	
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public WifiGroupInfo 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<WifiGroupInfo> findByParams(Map<String, Object> paramMap,Pager pager) {
+		return myBatisDao.getList("wifiGroupInfoSqlMapper.queryGroupNames");
+	}
+
+	@Override
+	public boolean add(WifiGroupInfo wifiGroupInfo) {
+		myBatisDao.save("wifiGroupInfoSqlMapper.addWifiGroupInfo", wifiGroupInfo);
+		return true;
+	}
+
+	@Override
+	public boolean edit(WifiGroupInfo t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

+ 67 - 0
src/main/java/com/cloudcross/ssp/service/impl/WifiGroupService.java

@@ -0,0 +1,67 @@
+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.WifiGroup;
+import com.cloudcross.ssp.service.IWifiGroupService;
+/**
+ * 
+ *
+ * 类名称:WifiGroupService
+ * 类描述:
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午1:50:09
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+@Service
+public class WifiGroupService implements IWifiGroupService{
+	@Autowired
+	private GenericIBatisDao myBatisDao;
+	
+	@Override
+	public WifiGroup 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<WifiGroup> findByParams(Map<String, Object> paramMap,
+			Pager pager) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean add(WifiGroup wifiGroup) {
+		myBatisDao.save("wifiGroupSqlMapper.addWifiGroup", wifiGroup);
+		return true;
+	}
+
+	@Override
+	public boolean edit(WifiGroup t) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean updateStatus(List<Long> idList, int status) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

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

@@ -18,6 +18,7 @@ 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.model.pojo.WifiPojo;
 import com.cloudcross.ssp.service.IAdGroupScheduleService;
 import com.cloudcross.ssp.service.IWifiService;
 import com.cloudcross.ssp.base.dao.GenericIBatisDao;
@@ -220,5 +221,34 @@ public class WifiService implements IWifiService{
 	public List<Wifi> findByParamsBack(Map<String, Object> paramMap) {
 		return myBatisDao.getList("wifiSqlMapper.findByParams1Back", paramMap);
 	}
+	@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) {
+		paramMap.put("pager", pager);
+		return myBatisDao.getList("wifiSqlMapper.queryWifiGroup", paramMap);
+	}
+	@Override
+	public int queryWifiCountByCondition(Map<String, Object> condition) {
+		return myBatisDao.get("wifiSqlMapper.queryWifiGroupCount", condition);
+	}
+	@Override
+	public List<WifiPojo> queryWifiByCondition(Map<String, Object> condition,Pager pager) {
+		condition.put("pager", pager);
+		return myBatisDao.getList("wifiSqlMapper.queryWifiGroup", condition);
+	}
+	@Override
+	public int findWifiCountByCondition(Map<String, Object> condition) {
+		return myBatisDao.get("wifiSqlMapper.queryWifiCountByCondition", condition);
+	}
+	@Override
+	public List<Wifi> findWifiByCondition(Map<String, Object> condition,Pager pager) {
+		condition.put("pager", pager);
+		return myBatisDao.getList("wifiSqlMapper.queryWifiByCondition", condition);
+	}
+	
+	
 	
 }

+ 274 - 0
src/main/java/com/cloudcross/ssp/web/operator/main/ap/ApgroupController.java

@@ -0,0 +1,274 @@
+package com.cloudcross.ssp.web.operator.main.ap;
+
+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.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.cloudcross.ssp.base.web.SimpleController;
+import com.cloudcross.ssp.common.utils.Pager;
+import com.cloudcross.ssp.common.utils.SqlHelper;
+import com.cloudcross.ssp.model.Account;
+import com.cloudcross.ssp.model.Wifi;
+import com.cloudcross.ssp.model.WifiGroup;
+import com.cloudcross.ssp.model.WifiGroupInfo;
+import com.cloudcross.ssp.model.pojo.WifiPojo;
+import com.cloudcross.ssp.service.IWifiGroupInfoService;
+import com.cloudcross.ssp.service.IWifiGroupService;
+import com.cloudcross.ssp.service.IWifiService;
+/**
+ * 
+ *
+ * 类名称:WifiGroupController
+ * 类描述:热点分组
+ * 创建人:zhoujun
+ * 修改人:zhoujun
+ * 修改时间:2015年11月19日 下午12:26:50
+ * 修改备注:
+ * @version 1.0.0
+ *
+ */
+@Controller
+@RequestMapping("/operator/main/ap/apgroup")
+public class ApgroupController extends SimpleController{
+	private static final Logger LOG = Logger.getLogger(ApgroupController.class);
+	
+	@Autowired
+	private IWifiGroupInfoService wifiGroupInfoService;
+	@Autowired
+	private IWifiGroupService wifiGroupService;
+	@Autowired
+	private IWifiService wifiService;
+	
+	/**
+	 * 媒体自用分组list页数据加载
+	 * list:(这里用一句话描述这个方法的作用)
+	 * (这里描述这个方法适用条件 – 可选)
+	 * 创建人:zhoujun
+	 * 修改人:zhoujun
+	 * @param model
+	 * @param paramMap
+	 * @param page
+	 * @return
+	 *String
+	 * @exception
+	 * @since  1.0.0
+	 */
+	@RequestMapping("/list")
+	public String list(Model model,@RequestParam Map<String,Object>paramMap,@RequestParam(defaultValue="1")int page){
+		//通过登录账号得到当前登录的运营商id
+		Account account = getLoginUser();
+		paramMap.put("operatorId", account.getOperatorId());
+		
+		Pager pager = new Pager();
+		//查询符合条件的总的条数
+		int totalRow = wifiService.countWifiGroupByCondition(paramMap);
+		pager.setPage(page);
+		pager.setTotalRow(totalRow);
+		List<WifiPojo> wifiList = wifiService.queryWifiGroupByCondition(paramMap, pager);
+		model.addAttribute("pager",pager);
+		model.addAttribute("wifiList", wifiList);
+		return page("list");
+	}
+	
+	/**
+	 * 到创建分组页
+	 * create:(这里用一句话描述这个方法的作用)
+	 * (这里描述这个方法适用条件 – 可选)
+	 * 创建人:zhoujun
+	 * 修改人:zhoujun
+	 * @param model
+	 * @return
+	 *String
+	 * @exception
+	 * @since  1.0.0
+	 */
+	@RequestMapping("/create")
+	public String create(Model model){
+		model.addAttribute("operatorId", getLoginUser().getOperatorId());
+		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 = wifiService.queryWifiByCondition(condition,pager);
+		return wifiList;
+	}
+	
+	/**
+	 *创建分组页添加分组
+	 * addGroupName:(这里用一句话描述这个方法的作用)
+	 * (这里描述这个方法适用条件 – 可选)
+	 * 创建人:zhoujun
+	 * 修改人:zhoujun
+	 * @param name
+	 * @return
+	 *String
+	 * @exception
+	 * @since  1.0.0
+	 */
+	@RequestMapping("/addGroupName")
+	@ResponseBody
+	public String  addGroupName(String name){
+		Boolean bool = false; 
+		WifiGroupInfo wifiGroupInfo = new WifiGroupInfo();
+		wifiGroupInfo.setName(name);
+		wifiGroupInfo.setStatus(0);//开启
+		wifiGroupInfo.setUpdated(new Date());
+		bool = this.wifiGroupInfoService.add(wifiGroupInfo);
+		if(bool){
+			return "true";
+		}else{
+			return "false";
+		}
+		
+	}
+	
+	/**
+	 * 分组页查询所有分组名
+	 * queryWifiGroupInfoNames:(这里用一句话描述这个方法的作用)
+	 * (这里描述这个方法适用条件 – 可选)
+	 * 创建人:zhoujun
+	 * 修改人:zhoujun
+	 * @param model
+	 *void
+	 * @exception
+	 * @since  1.0.0
+	 */
+	@RequestMapping("/queryGroupName")
+	@ResponseBody
+	public void queryWifiGroupInfoNames(Model model){
+		List<WifiGroupInfo> listGroupName = null;
+		listGroupName = this.wifiGroupInfoService.findByParams(null, null);
+		model.addAttribute("listGroupName", listGroupName);
+	}
+	
+	@RequestMapping("/update")
+	public String list(Model model, @RequestParam HashMap<String, Object> paramMap,
+			@RequestParam(defaultValue = "1") int page) {
+		
+		//通过登录账号得到当前登录的运营商id
+		Account account = getLoginUser();
+		paramMap.put("operatorId", account.getOperatorId());
+		
+		String cn = null;
+		String cnCity = null;
+		String searchValue = null;
+		/**
+		 * 下面对传递过来的几个参数进行处理
+		 */
+		if(null != paramMap.get("cn") && !"".equals(paramMap.get("cn"))) {
+			cn = String.valueOf(paramMap.get("cn"));
+		} 
+		
+		if(null != paramMap.get("cnCity") && !"".equals(paramMap.get("cnCity"))) {
+			cnCity = String.valueOf(paramMap.get("cnCity"));
+		}
+		paramMap.put("cn", cn);
+		paramMap.put("cnCity", cnCity);
+		
+		//按热点名称和详细地址搜索
+		if(null != paramMap.get("searchValue") && !"".equals(paramMap.get("searchValue"))) {
+				String name = (String) paramMap.get("searchValue");
+				searchValue = (String) paramMap.get("searchValue");
+				paramMap.put("searchValue", SqlHelper.doLike(name.trim()));
+		} else {
+			paramMap.put("searchValue", null);
+		}
+		
+		int totalRow = 0;
+		Pager pager = null;
+		pager = new Pager();
+		//查询符合条件的总的条数
+		totalRow = wifiService.findWifiCountByCondition(paramMap);
+		pager.setPage(page);
+		pager.setTotalRow(totalRow);
+		
+		List<Wifi> wifiList = wifiService.findWifiByCondition(paramMap, pager);
+		List<WifiGroupInfo> listGroupName = this.wifiGroupInfoService.findByParams(null, null);
+		//如果下拉框传的是默认值,则回传一个对应的值给前端
+		if(null == cn) {
+			cn = "省";
+		}
+		
+		if(null == cnCity) {
+			cnCity = "市";
+		}
+		paramMap.put("cn", cn);
+		paramMap.put("cnCity", cnCity);
+		paramMap.put("searchValue", searchValue);
+		model.addAttribute("pager",pager);
+		model.addAllAttributes(paramMap);
+		model.addAttribute("wifiList", wifiList);
+		model.addAttribute("listGroupName", listGroupName);
+		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());
+		flag = this.wifiGroupService.add(wifiGroup);
+		if(flag){
+			result = "成功";
+		}else{
+			result = "失败";
+		}
+		return result;	
+	}
+	
+}

+ 83 - 0
src/main/webapp/WEB-INF/pages/operator/main/ap/apgroup/create.ftl

@@ -0,0 +1,83 @@
+<@override name="head">
+	<title>创建自用分组管理</title>
+	<link rel="stylesheet" href="${ctx}/assets/css/public-head.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/ap-apmac.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/zbone.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/bootstrap.min.css"/>
+	
+	<script type="text/javascript" src="${ctx}/assets/js/lib/jquery-1.9.1.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/jquery.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/bootstrap.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/bootbox.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/divselect.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/ap-apmac.js"></script>
+	
+	<script type="text/javascript">
+	$(function(){
+		$("#name_add").click(function(){
+			var name = $("#name").val();
+			$.ajax({
+				type:"post",
+				url:"${ctx}/operator/main/ap/apgroup/addGroupName",
+				data:{name:name},
+				success:function(data){
+					if("ture".equals(data)){
+						queryGroupName();
+					}
+				}
+			})
+		});
+	})
+	function queryGroupName(){
+		$.ajax({
+			type:"post",
+			url:"${ctx}/operator/main/ap/apgroup/queryGroupName",
+			data:{},
+			success:function(data){
+				alert(data);
+			}
+		})
+	}
+</script>
+</@override>
+
+<@override name="body">
+<div id=content_bg>
+	<#include "/operator/main/public-head.ftl">
+    <div id= "pagecontent">
+		<div id="handler">
+			<ul>
+				<li class="size1"><i class="icon-home" style="background-image:none;margin-top:3px;"></i> <a href="${ctx}/operator/main/dashboard">首页</a>
+				<span class="divider1"><i class="icon-angle-right"></i></span></li>
+				<li class="size2">分组分类</li>
+			</ul>  
+		</div>
+		<div id="content">
+			
+			<div id="groupNames">
+				<div>
+					<input type="text" name="name" id="name">
+					<input type="button" value="提交" id="name_add">
+				</div>
+				<div>
+				<#if listGroupName ??>
+					<#list listGroupName as groupName>
+						<table border="1">
+							<tr>
+							<td>${groupName.name}</td>
+							<td>${groupName.id}</td>
+							</tr>
+						</table>
+					</#list>
+				</#if>
+				</div>
+			</div>
+				
+			<div id="hotDetails">
+				
+			</div>
+		</div>
+	</div>
+</div>
+</@override>
+<@extends name="/common/simple.ftl"/>

+ 148 - 0
src/main/webapp/WEB-INF/pages/operator/main/ap/apgroup/edit.ftl

@@ -0,0 +1,148 @@
+<@override name="head">
+	<title>热点管理</title>
+	<link rel="stylesheet" href="${ctx}/assets/css/public-head.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/ap-apmac.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/zbone.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/bootstrap.min.css"/>
+	
+	<script type="text/javascript" src="${ctx}/assets/js/lib/jquery-1.9.1.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/jquery.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/bootstrap.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/bootbox.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/divselect.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/ap-apmac.js"></script>
+	
+	<script type="text/javascript" >
+		$(function(){
+	
+			//复选框按钮
+			$('.tablefig th input:checkbox').live("click", function() {
+				var that = this;
+				$(this).closest('table').find('tr > td:first-child input:checkbox').each(function(){
+					this.checked = that.checked;
+				});
+			});
+
+			//提交
+			$("#all-btn-submit").click(function(){
+				var checkboxs = $("#tablefig tbody input[type='checkbox']:checked");
+				var _param = checkboxs.serialize();
+				var url = "${ctx}/operator/main/ap/apgroup/";
+				if(checkboxs.length > 0){
+					bootbox.confirm("确定" +$(this).text() + "吗?", function(ensure) {					
+						if (ensure) {	
+							$.post(url, _param, function(data) {
+								alert(111);
+							});
+						}
+					});
+				}else{
+					bootbox.alert("请选择需要"+$(this).text()+"的数据!");
+				}
+			});
+			
+			
+			// 分页中超链接跳转
+			$('#pagecontent .pagination ul li a[href]').live('click' ,function(){
+				var _page = $(this).attr('href').substr(1);
+				var _form = $('#wifiForm');
+				_form.find('input:hidden[name="page"]').val(_page);
+				_form.submit();
+				return false;
+			});
+		});
+		
+		
+	</script>
+	
+</@override>
+
+<@override name="body">
+<div id=content_bg>
+	<#include "/operator/main/public-head.ftl">
+    <div id= "pagecontent">
+		<div id="handler">
+			<ul>
+				<li class="size1"><i class="icon-home" style="background-image:none;margin-top:3px;"></i> <a href="${ctx}/operator/main/dashboard">首页</a>
+				<span class="divider1"><i class="icon-angle-right"></i></span></li>
+				<li class="size2">媒体AP列表</li>
+			</ul>  
+		</div>
+		<div id="content">
+			<div id="hotDetails">
+				<form id="wifiForm" action="${ctx}/operator/main/ap/apgroup/update" method="post">
+				    <input type="hidden" id="page" name="page" value="${pager.page}">
+				    <div id="selectuls">
+						<ul id="main_cnul">
+							<li class="select_box" id="cnul_box">
+								<span id="cnul_span">${cn!}</span>
+								<ul class="son_ul" id="cn_son_ul"></ul>
+							</li>
+						</ul>
+						<input type="hidden" name="cn" id="cn" value="${cn!}">
+						<ul id="main_cnCityul">
+							<li class="select_box" id="cnCityul_box">
+								<span id="cnCityul_span">${cnCity!}</span>
+								<ul class="son_ul" id="cnCityul_son_ul"></ul>
+							</li>
+						</ul>
+						<input id="apmac" type="text" name="apmac" value="请输入MAC地址">
+				  		<input id="sign" type="submit" value="查询">
+				  	</div>
+					<div id="account-table">
+						<table border="1" class="tablefig">
+							<thead>
+								<tr>
+									<th width="3%">
+										<label><input type="checkbox" class="input_checkbox"><span class="lbl"></span></label>
+									</th>
+									<th class="td1" style="width:3%">ID</th>
+				                    <th class="td1" style="width:5%">热点名称</th>
+				                    <th class="td1" style="width:7%">SSID</th>
+				                    <th class="td1" style="width:5%">省</th>
+				                    <th class="td1" style="width:5%">市</th>
+				                    <th class="td1" style="width:9%">详细地址</th>
+				                    <th class="td1" style="width:5%">经度</th>
+				                    <th class="td1" style="width:5%">纬度</th>
+				                    <th class="td1" style="width:8%">apmac</th>
+								</tr>
+							</thead>
+							<tbody>
+							<#if wifiList ??>
+							<#list wifiList as wifi>
+								<tr class="">
+									<td class="center">
+										<label><input  autocomplete="off" type="checkbox" name="id" value="#{wifi.id!}"><span class="lbl"></span></label>
+									</td>
+									<td class="td2">${wifi.id!}</td> 
+					                <td class="td2">${wifi.name!}</td> 
+					                <td class="td2">${wifi.SSID!}</td>
+					                <td class="td2">${wifi.cn!}</td>
+					                <td class="td2">${wifi.cnCity!}</td>
+					                <td class="td2">${wifi.address!}</td>
+					                <td class="td2">${wifi.longitude!}</td>
+					                <td class="td2">${wifi.latitude!}</td>
+					                <td class="td2">${wifi.apmac!}</td>  
+								</tr>
+							</#list>
+							</#if>
+						</tbody>
+						</table>
+	
+						<div id="pageDiv">
+			               	<#include "/common/pagination/simple.ftl"/>
+			            </div>
+			            <div id="groupName">
+							请选择分组:
+							
+						</div>	
+		            </div>
+				</form>
+			</div>
+		</div>
+		
+	</div>
+	
+</div>
+</@override>
+<@extends name="/common/simple.ftl"/>

+ 187 - 0
src/main/webapp/WEB-INF/pages/operator/main/ap/apgroup/list.ftl

@@ -0,0 +1,187 @@
+<@override name="head">
+	<title>媒体自用分组管理</title>
+	<link rel="stylesheet" href="${ctx}/assets/css/public-head.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/ap-apmac.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/zbone.css"/>
+	<link rel="stylesheet" href="${ctx}/assets/css/bootstrap.min.css"/>
+	
+	<script type="text/javascript" src="${ctx}/assets/js/lib/jquery-1.9.1.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/jquery.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/bootstrap.min.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/lib/bootbox.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/divselect.js"></script>
+	<script type="text/javascript" src="${ctx}/assets/js/ap-apmac.js"></script>
+	
+	<script type="text/javascript" >
+		$(function(){
+			//新建热点详情
+			$("#btn-create").unbind('click').click(function(){
+				location.href = "${ctx}/operator/main/ap/apgroup/create";
+			});
+			
+			$("#all-btn-edit").unbind('click').click(function(){
+				location.href = "${ctx}/operator/main/ap/apgroup/update";
+			});
+			
+			//编辑
+			$("#btn-edit").live("click", function() {
+				var wifiId = parseInt($(this).attr("value"));
+				location.href = "${ctx}/operator/main/ap/apgroup/edit?id="+wifiId;
+			});
+			
+		
+
+			//批量开启,批量暂停,批量删除
+			$("#all-btn-enable,#all-btn-disable,#all-btn-delete").click(function(){
+				var checkboxs = $("#tablefig tbody input[type='checkbox']:checked");
+				var _param = checkboxs.serialize();
+				var url = "";
+				if($(this).attr("id") == "all-btn-enable"){
+					url = "${ctx}/operator/main/ap/apgroup/enable";
+				}else if($(this).attr("id") == "all-btn-disable"){
+					url = "${ctx}/operator/main/ap/apgroup/disable";
+				}else if($(this).attr("id") == "all-btn-delete"){
+					url = "${ctx}/operator/main/ap/apgroup/delete";
+				}
+				if(checkboxs.length > 0){
+					bootbox.confirm("确定" +$(this).text() + "吗?", function(ensure) {					
+						if (ensure) {	
+							$.post(url, _param, function(data) {
+								$('#wifiForm').submit();
+							});
+						}
+					});
+				}else{
+					bootbox.alert("请选择需要"+$(this).text()+"的数据!");
+				}
+			});
+			
+			//开启,暂停
+			$('#btn-enable,#btn-disable').live('click' ,function(){
+				var url = "";
+				var wifiId = parseInt($(this).attr("value"));
+				if($(this).attr("id") == "btn-enable"){
+					url = "${ctx}/operator/main/ap/apgroup/enable";
+				}else if($(this).attr("id") == "btn-disable"){
+					url = "${ctx}/operator/main/ap/apgroup/disable";
+				}
+				$.post(url, {id:wifiId}, function(data) {
+					$('#wifiForm').submit();
+				});
+			});
+			
+			// 分页中超链接跳转
+			$('#pagecontent .pagination ul li a[href]').live('click' ,function(){
+				var _page = $(this).attr('href').substr(1);
+				var _form = $('#wifiForm');
+				_form.find('input:hidden[name="page"]').val(_page);
+				_form.submit();
+				return false;
+			});
+		});
+	</script>
+	
+</@override>
+
+<@override name="body">
+<div id=content_bg>
+	<#include "/operator/main/public-head.ftl">
+    <div id= "pagecontent">
+		<div id="handler">
+			<ul>
+				<li class="size1"><i class="icon-home" style="background-image:none;margin-top:3px;"></i> <a href="${ctx}/operator/main/dashboard">首页</a>
+				<span class="divider1"><i class="icon-angle-right"></i></span></li>
+				<li class="size2">媒体自用分组管理</li>
+			</ul>  
+		</div>
+		<div id="content">
+			<div id="diagramHead">
+				<span>媒体AP列表</span>
+				<span></span>
+			</div>
+			<div id="hotDetails">
+				<form id="wifiForm" action="${ctx}/operator/main/ap/apgroup/list" method="post">
+					<div id="buttons">
+				  		<div id="btn-create" class="btn1">新建分组</div>      
+				        <div id="all-btn-enable" class="btn1">批量开启</div>  
+				        <div id="all-btn-disable" class="btn1">批量暂停</div> 
+				        <div id="all-btn-delete" class="btn1">批量删除</div>
+				        <div id="all-btn-edit" class="btn1">修改</div>
+				        <div id="serachData">
+				        	<input type="hidden" id="page" name="page" value="${pager.page}">
+						</div>
+				    </div>
+				  
+					<div id="account-table">
+						<table border="1" class="tablefig">
+							<thead>
+								<tr>
+									<th width="3%">
+										<label><input type="checkbox" class="input_checkbox"><span class="lbl"></span></label>
+									</th>
+									<th class="td1" style="width:3%">ID</th>
+				                    <th class="td1" style="width:5%">热点名称</th>
+				                    <th class="td1" style="width:7%">SSID</th>
+				                    <th class="td1" style="width:5%">省</th>
+				                    <th class="td1" style="width:5%">市</th>
+				                    <th class="td1" style="width:9%">详细地址</th>
+				                    <th class="td1" style="width:5%">经度</th>
+				                    <th class="td1" style="width:5%">纬度</th>
+				                    <th class="td1" style="width:8%">apmac</th>
+				                    <th class="td1" style="width:7%">分组场景</th>
+				                    <th class="td1" style="width:10%">最后更新时间</th>
+				                    <th class="td1" style="width:5%">状态</th>
+				                    <th class="td1" style="width:10%">操作</th>
+								</tr>
+							</thead>
+							<tbody>
+							<#if wifiList ??>
+							<#list wifiList as wifi>
+								<tr class="">
+									<td class="center">
+										<label><input  autocomplete="off" type="checkbox" name="id" value="#{wifi.id!}"><span class="lbl"></span></label>
+									</td>
+									<td class="td2">${wifi.id!}</td> 
+					                <td class="td2">${wifi.name!}</td> 
+					                <td class="td2">${wifi.SSID!}</td>
+					                <td class="td2">${wifi.cn!}</td>
+					                <td class="td2">${wifi.cnCity!}</td>
+					                <td class="td2">${wifi.address!}</td>
+					                <td class="td2">${wifi.longitude!}</td>
+					                <td class="td2">${wifi.latitude!}</td>
+					                <td class="td2">${wifi.apmac!}</td>  
+					                <td class="td2">${wifi.place!}</td>
+					                <td class="td2">${wifi.placeName!}</td>
+					                <td class="td2"><a href="${ctx}/operator/main/ap/apgroup/update?id=${wifi.id!}">${wifi.updated!?datetime}</a></td>
+					                <td class="td2"><#if wifi.status==1>暂停<#else>开启</#if></td>
+									<td>
+										<div id="btndiv">
+											<div id="btn-edit" class="btn11" value="${wifi.id!}">编辑</div>
+											<#if wifi.status==0>
+											<div id="btn-disable" class="btn11" value="${wifi.id!}">暂停</div>
+											<#elseif wifi.status==1>
+											<div id="btn-enable" class="btn11" value="${wifi.id!}">开启</div>
+											</#if>
+										</div>
+									</td>
+								</tr>
+							</#list>
+							</#if>
+						</tbody>
+						</table>
+						
+						<!-- <div id="daochu" >
+							<a class="ljbtn2" id="exportExcel" href="javascript:void(0);" onClick="exportExcel()">导出Excel</a>
+						</div> -->
+									
+						<div id="pageDiv">
+			               	<#include "/common/pagination/simple.ftl"/>
+			            </div>	
+		            </div>
+				</form>
+			</div>
+		</div>
+	</div>
+</div>
+</@override>
+<@extends name="/common/simple.ftl"/>

+ 5 - 1
src/main/webapp/WEB-INF/pages/operator/main/public-head.ftl

@@ -26,10 +26,14 @@
 		
 		<@sec.authorize access="hasAnyRole('ROLE_operator_ap,ROLE_MANAGER')">
 			<li><a href="${ctx}/operator/main/ap/apmac/list"><span>热点管理</span></a></li>	
+		</@sec.authorize>
+		
+		
+		<@sec.authorize access="hasAnyRole('ROLE_operator_apgroup,ROLE_MANAGER')">
+			<li><a href="${ctx}/operator/main/ap/apgroup/list"><span>自用分组管理</span></a></li>	
 		</@sec.authorize>	 
 	
 	
-	
 		<@sec.authorize access="hasAnyRole('ROLE_operator_authority,ROLE_MANAGER')">
 			<li><a href="${ctx}/operator/main/authority/list"><span>权限管理</span></a></li>	 
 		</@sec.authorize>