(八)搭建springboot商城--收货地址展示

1.持久层

1.1数据库查询操作

select * from t_address where uid=? order by is_default DESC,created_time DESC

1.2 接口和抽象方法

    /**
     * 根据用户id查询用户的收货地址数据
     * @param uid 用户id
     * @return 收货地址数据
     */
    List<Address> findByUid(String uid);

1.3 在xml文件中添加对应sql语句映射

<select id="findByUid" resultMap="AddressEntityMap">
        select * from t_address where uid=#{uid}
        order by id_default DESC,created_time DESC
    </select>

1.4 单元测试 

  @Test
    public void findByUid(){
        List<Address> list = addressMapper.findByUid(9);
        System.out.println(list);
    }

2 业务层 

2.1 异常

不用抛出相关的异常,不需要进行异常的设计。

2.2 设计业务层的接口和抽象方法

List<Address> getByUid(Integer uid);

2.3 需要在实现类中实现此方法的逻辑 


    @Override
    public List<Address> getByUid(Integer uid) {
        List<Address> list=addressMapper.findByUid(uid);
         for(Address address:list){
             address.setAid(null);
             address.setUid(null);
             address.setProvinceCode(null);
             address.setCityCode(null);
             address.setAreaCode(null);
             address.setTel(null);
             address.setIsDefault(null);
             address.setCreatedTime(null);
             address.setCreatedUser(null);
             address.setModifiedTime(null);
             address.setModifiedUser(null);
         }
        return list;
    }

2.3 单元测试 

 单元测试暂时省略

3 控制层

3.1请求设计

/addresses

HttpSession session

GET

JsonResult<Address>

3.2 实现请求方法的实现

  @RequestMapping({"/",""})
    public JsonResult<List<Address>> getByUid(HttpSession session){
        Integer uid = getUidFromSession(session);
        List<Address> data = addressService.getByUid(uid);
        return new JsonResult<>(OK,data);

    }

3.3测试

先登陆,再进行访问请求地址进行数据的测试。

4 前端页面

在address.html页面中编写查询用户收货地址数据的展示列表。

<script type="text/javascript">
	$(document).ready(function () {
		showAddressList();

	});
	//展示用户收货地址数据列表
	function showAddressList(){
		$.ajax({
			url:"/addresses",
			type:"GET",
			dataType:"JSON",
			success:function (json) {
				if(json.state ==200){
					let list=json.data;
					console.log(list);
					for (let i = 0; i < list.length; i++) {
						//TODO
						let tr='<tr>\n' +
								'<td>#{tag}</td>\n' +
								'<td>#{name}</td>\n' +
								'<td>#{address}</td>\n' +
								'<td>#{phone}</td>\n' +
								'<td><a class="btn btn-xs btn-info"><span class="fa fa-edit"></span> 修改</a></td>\n' +
								'<td><a class="btn btn-xs add-del btn-info"><span class="fa fa-trash-o"></span> 删除</a></td>\n' +
								'<td><a class="btn btn-xs add-def btn-default">设为默认</a></td>\n' +
								'</tr>';
						tr=tr.replace(/#{tag}/g,list[i].tag);
						tr=tr.replace(/#{name}/g,list[i].name);
						tr=tr.replace("#{phone}",list[i].phone);
						tr=tr.replace("#{address}",list[i].address);

						$("#address-list").append(tr);
					}
					//将某个元素隐藏使用hide()方法
					$(".add-def:eq(0)").hide();
				}else{
					alert("收货地址数据加载失败")
				}
			},
		})
	}

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值