/** * ec前台用的省市县地区联动下拉框 * @param {} proviceDomId * @param {} cityDomId * @param {} areaDomId */
createAreaLinkage("provinceId","cityId","areaId",proFn,cityFn,areaFn);
function createAreaLinkage(proviceDomId,cityDomId,areaDomId,proFn,cityFn,areaFn){ var dfFn1 = function(){} var dfFn2 = function(){} var dfFn3 = function(){} if($.isFunction(proFn)){ dfFn1 = proFn; } if($.isFunction(cityFn)){ dfFn2 = cityFn; } if($.isFunction(areaFn)){ dfFn3 = areaFn; } $("#"+proviceDomId).combobox({ url:appPath+"/page/areaCommon/1/subLinkage", valueField:"id", textField:"text", panelHeight:"200", editable:false, onLoadSuccess:dfFn1, onSelect:function(record){ if(record.id){ $("#"+cityDomId).combobox("reload",appPath+"/page/areaCommon/"+record.id+"/subLinkage"); $("#"+areaDomId).combobox("clear"); $("#"+areaDomId).combobox("loadData",[{id:"",text:"请选择"}]); }else{ $("#"+cityDomId).combobox("clear"); $("#"+cityDomId).combobox("loadData",[{id:"",text:"请选择"}]); $("#"+areaDomId).combobox("clear"); $("#"+areaDomId).combobox("loadData",[{id:"",text:"请选择"}]); } } }); $("#"+cityDomId).combobox({ data:[{id:"",text:"请选择"}], valueField:"id", textField:"text", panelHeight:"200", editable:false, onLoadSuccess:dfFn2, onSelect:function(record){ if(record.id){ $("#"+areaDomId).val(""); $("#"+areaDomId).combobox("reload",appPath+"/page/areaCommon/"+record.id+"/subLinkage"); }else{ $("#"+areaDomId).combobox("clear"); $("#"+areaDomId).combobox("loadData",[{id:"",text:"请选择"}]); } } }); $("#"+areaDomId).combobox({ data:[{id:"",text:"请选择"}], valueField:"id", textField:"text", panelHeight:"200", editable:false, onLoadSuccess:dfFn3 }); }
package com.founder.ec.common.action; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.founder.ec.admin.model.EcArea; import com.founder.ec.base.action.BaseAction; import com.founder.ec.common.service.AreaService; @Controller public class AreaCommonAction extends BaseAction{ @Autowired private AreaService areaService; /** * 获取地区联动下拉列表 * @param parentId * @return */ @RequestMapping("areaCommon/{parentId}/subLinkage") @ResponseBody public List<Object> findTypesByParentId(@PathVariable Long parentId){ List<Object> linkageRes = new ArrayList<Object>(); Map<String,Object> defaultValue = new HashMap<String,Object>(); defaultValue.put("id", ""); defaultValue.put("text", "请选择"); defaultValue.put("selected", true); linkageRes.add(defaultValue); List<EcArea> areaList = areaService.getAreaByParentId(parentId); if(null!=areaList && !areaList.isEmpty()){ for(EcArea t : areaList){ Map<String,Object> typeMap = new HashMap<String,Object>(); typeMap.put("id", t.getAreaId()); typeMap.put("text", t.getAreaName()); linkageRes.add(typeMap); } } return linkageRes; } /** * 根据等级 获取省,市,区 * @param areaLevel * @return */ @RequestMapping("getEcAreaInfoList/{areaLevel}/subLinkage") @ResponseBody public List<Object> getEcAreaInfoList(@PathVariable Integer areaLevel){ List<Object> linkageRes = new ArrayList<Object>(); Map<String,Object> defaultValue = new HashMap<String,Object>(); defaultValue.put("id", ""); defaultValue.put("text", "请选择"); defaultValue.put("selected", true); linkageRes.add(defaultValue); EcArea ar=new EcArea(); ar.setAreaLevel(areaLevel); List<EcArea> areaList = areaService.getEcAreaInfoList(ar); if(null!=areaList && !areaList.isEmpty()){ for(EcArea t : areaList){ Map<String,Object> typeMap = new HashMap<String,Object>(); typeMap.put("id", t.getAreaId()); typeMap.put("text", t.getAreaName()); linkageRes.add(typeMap); } } return linkageRes; } }
package com.founder.ec.common.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.founder.ec.admin.model.EcArea; import com.founder.ec.base.service.impl.BaseServiceImpl; import com.founder.ec.common.aop.Cached; import com.founder.ec.common.dao.CommonDao; import com.founder.ec.common.service.AreaService; @Service public class AreaServiceImpl extends BaseServiceImpl implements AreaService { @Autowired private CommonDao commonDao; @Cached(name="ecArea") public List<EcArea> getAreaByParentId(Long parentId) { return (List<EcArea>)commonDao.queryForList("EcArea.getByParentId", parentId); } @Override public EcArea getEcAreaInfo(EcArea ecArea) { return (EcArea)commonDao.queryForObject("EcArea.getEcAreaInfo", ecArea); } @Override public List<EcArea> getEcAreaInfoList(EcArea ecArea) { return (List<EcArea>)commonDao.queryForList("EcArea.getEcAreaInfo", ecArea); } }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="aArea"> <typeAlias alias="AArea" type="com.founder.ec.admin.model.AArea"/> <resultMap id="aAreaResult" class="AArea"> <result column="ID" property="id" /> <result column="NAME" property="name" /> <result column="PARENT_ID" property="parentId" /> <result column="TYPE" property="type" /> <result column="ZIP" property="zip" /> </resultMap> <insert id="insert" parameterClass="AArea"> insert into A_AREA (ID, NAME, PARENT_ID, TYPE, ZIP) values (#id#, #name#, #parentId#, #type#, #zip#) </insert> <!-- 根据父ID查询子类型 --> <select id="getByParentId" resultMap="aAreaResult" parameterClass="String"> select * from a_area where parent_id=#value# order by id <!-- select * from ec_area where parent_area_id=#value# and and is_delete='N' order by area_order --> </select> </sqlMap>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="EcArea"> <typeAlias alias="EcArea" type="com.founder.ec.admin.model.EcArea"/> <resultMap id="ecAreaResult" class="EcArea"> <result column="area_id" property="areaId" /> <result column="parent_area_id" property="parentAreaId" /> <result column="is_leaf" property="isLeaf" /> <result column="full_index" property="fullIndex" /> <result column="area_level" property="areaLevel" /> <result column="area_no" property="areaNo" /> <result column="area_order" property="areaOrder" /> <result column="area_name" property="areaName" /> <result column="is_delete" property="isDelete" /> <result column="add_time" property="addTime" /> <result column="add_user_id" property="addUserId" /> <result column="edit_time" property="editTime" /> <result column="edit_user_id" property="editUserId" /> <result column="area_notes" property="areaNotes" /> <result column="area_post" property="areaPost"/> <result column="IS_ALLOW_HDFK" property="isAllowHdfk"/> </resultMap> <insert id="save" parameterClass="EcArea"> <selectKey resultClass="long" keyProperty="areaId" > SELECT EC_AREA_SEQ.NEXTVAL AS area_id from dual </selectKey> insert into ec_area (area_id, parent_area_id, is_leaf, full_index, area_level, area_no, area_order, area_name, add_time, add_user_id, edit_time, edit_user_id, area_notes, area_post,IS_ALLOW_HDFK) values (#areaId#, #parentAreaId#, #isLeaf#, #fullIndex#, #areaLevel#, #areaNo#, #areaOrder#, #areaName#, #addTime#, #addUserId#, #editTime#, #editUserId#, #areaNotes#, #areaPost#,#isAllowHdfk#) <selectKey resultClass="long" keyProperty="areaId" > <![CDATA[ SELECT LAST_INSERT_ID() as id ]]> </selectKey> </insert> <update id="update" parameterClass="EcArea"> update ec_area <dynamic prepend="set"> <isNotNull prepend="," property="parentAreaId"> parent_area_id = #parentAreaId# </isNotNull> <isNotNull prepend="," property="isLeaf"> is_leaf = #isLeaf# </isNotNull> <isNotNull prepend="," property="fullIndex"> full_index = #fullIndex# </isNotNull> <isNotNull prepend="," property="areaLevel"> area_level = #areaLevel# </isNotNull> <isNotNull prepend="," property="areaNo"> area_no = #areaNo# </isNotNull> <isNotNull prepend="," property="areaOrder"> area_order = #areaOrder# </isNotNull> <isNotNull prepend="," property="areaName"> area_name = #areaName# </isNotNull> <isNotNull prepend="," property="isDelete"> is_delete = #isDelete# </isNotNull> <isNotNull prepend="," property="addTime"> add_time = #addTime# </isNotNull> <isNotNull prepend="," property="addUserId"> add_user_id = #addUserId# </isNotNull> <isNotNull prepend="," property="editTime"> edit_time = #editTime# </isNotNull> <isNotNull prepend="," property="editUserId"> edit_user_id = #editUserId# </isNotNull> <isNotNull prepend="," property="areaNotes"> area_notes = #areaNotes# </isNotNull> <isNotNull prepend="," property="areaPost"> area_post = #areaPost# </isNotNull> <isNotNull prepend="," property="isAllowHdfk"> IS_ALLOW_HDFK = #isAllowHdfk# </isNotNull> </dynamic> where area_id = #areaId# </update> <!-- 根据父ID查询子类型 --> <select id="getByParentId" resultMap="ecAreaResult" parameterClass="Long"> select * from ec_area where parent_area_id=#value# and is_delete='N' order by area_order </select> <!-- 根据子ID查询全部父级信息 --> <select id="getByParentAreaInfoByAreaId" resultMap="ecAreaResult" parameterClass="Long"> select * from ec_area ea connect by prior ea.parent_area_id=ea.area_id start with ea.area_id=(select area_id from order_delivery where order_id=#orderId# and rownum <=1) and ea.is_delete='N' order by ea.area_id asc </select> <!-- 根据父ID查询子类型 --> <select id="getByEcParentId" resultMap="ecAreaResult" parameterClass="java.util.Map"> select * from ec_area where parent_area_id=#parentId# and is_delete='N' order by area_order </select> <select id="getEcAreaInfo" resultMap="ecAreaResult" parameterClass="EcArea"> select * from ec_area where is_delete = 'N' <isNotNull prepend="and" property="areaId"> area_id=#areaId# </isNotNull> <isNotNull prepend="and" property="parentAreaId"> parent_area_id=#parentAreaId# </isNotNull> <isNotNull prepend="and" property="isLeaf"> is_leaf=#isLeaf# </isNotNull> <isNotNull prepend="and" property="fullIndex"> full_index=#fullIndex# </isNotNull> <isNotNull prepend="and" property="areaLevel"> area_level=#areaLevel# </isNotNull> <isNotNull prepend="and" property="areaNo"> area_no=#areaNo# </isNotNull> <isNotNull prepend="and" property="areaOrder"> area_order=#areaOrder# </isNotNull> <isNotNull prepend="and" property="areaName"> area_name like '%$areaName$%' </isNotNull> <isNotNull prepend="and" property="areaNotes"> area_notes like '%$areaNotes$%' </isNotNull> <isNotNull prepend="and" property="isAllowHdfk"> IS_ALLOW_HDFK = #isAllowHdfk# </isNotNull> </select> <!-- 绑定省 --> <select id="getEcAreaInfo1" resultMap="ecAreaResult" parameterClass="EcArea"> select * from ec_area where is_delete = 'N' and parent_area_id='1' and IS_ALLOW_HDFK='Y' </select> <!-- 注册 得到地区名称 --> <select id="getAreaName" parameterClass="HashMap" resultClass="String"> SELECT area_name as areaName FROM ec_area WHERE area_id=#areaId# </select> <select id="getValidUserProvince" resultMap="ecAreaResult" parameterClass="Long"> select distinct ea.* from ec_area ea,sys_user su where ea.area_id=su.province_id and ea.is_delete='N' and su.is_delete='N' and ea.parent_area_id=#value# order by ea.area_order </select> <select id="getValidUserCity" resultMap="ecAreaResult" parameterClass="Long"> select distinct ea.* from ec_area ea,sys_user su where ea.area_id=su.city_id and ea.is_delete='N' and su.is_delete='N' and ea.parent_area_id=#value# order by ea.area_order </select> <select id="getValidUserArea" resultMap="ecAreaResult" parameterClass="Long"> select distinct ea.* from ec_area ea,sys_user su where ea.area_id=su.area_id and ea.is_delete='N' and su.is_delete='N' and ea.parent_area_id=#value# order by ea.area_order </select> <select id="getNameById" parameterClass="Long" resultClass="String"> select t.area_name from ec_area t where t.area_id = #areaId# </select> <select id="getByNameAndLevel" parameterClass="EcArea" resultMap="ecAreaResult"> select * from ec_area where is_delete='N' <isNotEmpty prepend="and" property="parentAreaId"> parent_area_id=#parentAreaId# </isNotEmpty> <isNotEmpty prepend="and" property="areaName"> area_name=#areaName# </isNotEmpty> <isNotEmpty prepend="and" property="areaLevel"> area_level=#areaLevel# </isNotEmpty> </select> </sqlMap>