城市-区域-县 三级联动







/*
* * 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 &lt;=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>

 

转载于:https://www.cnblogs.com/wangchuanfu/p/5959292.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值