获取省市区的名称【项目 商城】

简介: 获取省市区的名称【项目 商城】

获取省市区的名称

1 获取省市区的名称–持久层

1.根据当前的code来获取当前省市区的名称,对应就是一条查询语句。

select * from t_dist_district where code=?

2.在DistrictMapper接口中定义出来。

String findNameByCode(String code);

3.在DistrictMapper.xml文件中添加抽象方法的映射。

   <!-- 根据省/市/区的行政代号获取省/市/区的名称:String findNameByCode(String code) -->
    <select id="findNameByCode" resultType="java.lang.String">
        SELECT name FROM t_dict_district WHERE code=#{code}
    </select>

DistrictMapper–findByParent


测试

4.单元测试编写。

package com.cy.store.mapper;
import com.cy.store.entity.Address;
import com.cy.store.entity.District;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
//@SpringBootTest:表示标注当前的类是测试类,不会随同项目一块打包
@SpringBootTest
//@RunWith:表示启动这个单元测试类(单元测试类是不能够运行的),需要传递一个参数,必须是SpringRunner的实例类型
//@RunWith(SpringRunner.class)
public class DistrictMapperTests {
    @Autowired
    private DistrictMapper districtMapper;
    @Test
    public void findByParent(){
        List<District> list = districtMapper.findByParent("110100");
        for (District d:list) {
            System.out.println(d);
        }
    }
    @Test
    public void findNameByCode(){
        String name = districtMapper.findNameByCode("610000");
        System.out.println(name);
    }
}

DistrictMapperTests–findByParent


2 获取省市区的名称–业务层

1.在业务层没有异常要处理。

2.定义对应的业务层接口的抽象方法。

    String getNameByCode(String code);

3.在子类中进行实现

  @Override
    public String getNameByCode(String code) {
        return districtMapper.findNameByCode(code);
    }

DistrictService–getNameByCode

测试

4.测试可以省略不写(超过8行以上的代码都要进行独立的测试)

3 获取省市区的名称–业务层优化

1.AddressServiceImpl添加地址层依赖于IDistrictService层。

  //在添加用户的收货地址的业务层依赖于IDistrictService的业务接口
    @Autowired
    private IDistrictService districtService;

2.在addNewAddress方法中IDistrictService接口中获取到的省市区数据转移到address对象中,这个对象中就包含了所有的用户收货地址信息。

    //对address对象中的数据进行补全:省市区
        String provinceName = districtService.getNameByCode(address.getProvinceCode());
        String cityName = districtService.getNameByCode(address.getCityCode());
        String areaName = districtService.getNameByCode(address.getAreaCode());
        address.setProvinceName(provinceName);
        address.setCityName(cityName);
        address.setAreaName(areaName);

AddressServiceImpl–IDistrictService

4 获取省市区的名称–前端页面

1.addAddress.html页面中来编写对应省市区展示即根据隐晦的不同选择来显示对应的标签中的内容。

2.编写相关的事件代码。

    <!--  showList  -->
    <script type="text/javascript">
      //value属性用于表示当前区域的code值
      let defaultOption = '<option value="0">----- 请选择 -----</option>';
      $(document).ready(function() {
        showProvinceList();
        //设置默认的“请选择”的值,作为控件的默认值
        $("#city-list").append(defaultOption);
        $("#area-list").append(defaultOption);
      });
      /**
       * change()函数用于测试某个控件是否发生改变,,一旦发生改变就会触发参数的函数。
       * 需要传递一个function(){}
       */
      $("#province-list").change(function() {
        showCityList();
      });
      $("#city-list").change(function() {
        showAreaList();
      });
      //省的下拉列表数据展示
      function showProvinceList() {
        $("#province-list").append(defaultOption);
        $.ajax({
          url: "/districts",
          type: "GET",
          data: "parent=86",
          dataType: "JSON",
          success: function(json) {
            if (json.state == 200) {
              let list = json.data;
              console.log("count=" + list.length);
              for (let i = 0; i < list.length; i++) {
                console.log(list[i].name);
                let option = '<option value="' + list[i].code + '">' + list[i].name + '</option>';
                $("#province-list").append(option);
              }
            }else{
              alert("省/直辖市信息加载失败!");
            }
          }
        });
      }
      function showCityList() {
        //先获取到行政区父代码
        let parent = $("#province-list").val();
        //表示清空select下拉列表中的所有option元素
        $("#city-list").empty();
        $("#area-list").empty();
        //填充默认值
        $("#city-list").append(defaultOption);
        $("#area-list").append(defaultOption);
        if (parent == 0) {
          return;
        }
        $.ajax({
          url: "/districts",
          type: "GET",
          data: "parent=" + parent,
          dataType: "JSON",
          success: function(json) {
            if (json.state == 200) {
              let list = json.data;
              console.log("count=" + list.length);
              for (let i = 0; i < list.length; i++) {
                console.log(list[i].name);
                let option = '<option value="' + list[i].code + '">' + list[i].name + '</option>';
                $("#city-list").append(option);
              }
            }else{
              alert("城市信息加载失败!");
            }
          }
        });
      }
      function showAreaList() {
        let parent = $("#city-list").val();
        $("#area-list").empty();
        $("#area-list").append(defaultOption);
        if (parent == 0) {
          return;
        }
        $.ajax({
          url: "/districts",
          type: "GET",
          data: "parent=" + parent,
          dataType: "JSON",
          success: function(json) {
            if (json.state == 200) {
              let list = json.data;
              console.log("count=" + list.length);
              for (let i = 0; i < list.length; i++) {
                console.log(list[i].name);
                let option = '<option value="' + list[i].code + '">' + list[i].name + '</option>';
                $("#area-list").append(option);
              }
            }else{
              alert("县区信息加载失败!");
            }
          }
        });
      }
    </script>
    <!--  showList  -->

addAddress.html–showList


测试


README–获取省市区的名称

相关文章
|
7月前
|
前端开发 数据库 Python
Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址
Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址
|
2月前
|
存储 JSON API
淘宝API接口实战:高效获取商品标题、分类及店铺名称
在淘宝API接口实战中,通过以下步骤高效获取商品标题、分类及店铺名称:1. 准备工作:了解淘宝开放平台文档,注册开发者账号,选择开发语言和工具。2. 获取API访问权限:申请相应权限,提供应用场景说明。3. 调用API接口:构建HTTP请求,提供必要参数。4. 解析响应数据:提取JSON数据中的所需信息。5. 数据处理和存储:进一步处理并存储数据。6. 注意事项:遵守使用规范,注意调用频率和数据安全。示例代码使用Python调用淘宝API。
|
7月前
|
前端开发 JavaScript Python
Django项目之电商购物商城 -- 新增收货地址
Django项目之电商购物商城 -- 新增收货地址
|
SQL 前端开发
新增收货地址【项目 商城】
新增收货地址【项目 商城】
128 0
|
SQL 存储 前端开发
显示购物车列表【项目 商城】
显示购物车列表【项目 商城】
153 0
|
数据采集 小程序
微信小程序的动态表单,实现房屋租赁的多租客录入(一)
微信小程序的动态表单,实现房屋租赁的多租客录入
238 0
|
监控 前端开发
29分布式电商项目 - 商品录入(三级联动菜单)
29分布式电商项目 - 商品录入(三级联动菜单)
70 0
|
前端开发 JavaScript 数据库
获取省市区列表【项目 商城】
获取省市区列表【项目 商城】
292 0
|
SQL XML 前端开发
收货地址列表展示【项目 商城】
收货地址列表展示【项目 商城】
118 0
|
SQL 前端开发 测试技术
删除收货地址【项目 商城】
删除收货地址【项目 商城】
94 0