收货地址列表展示【项目 商城】
原创
©著作权归作者所有:来自51CTO博客作者日星月云的原创作品,请联系作者获取转载授权,否则将追究法律责任
收货地址列表展示【项目 商城】
收货地址列表展示
1.持久层
规划查询SQL语句
1.数据库数据的查询操作
select * from t_address where uid=? order by is_default DESC,created_time DESC
2.接口与抽象方法
/**
* 根据用户的id查询用户的收货地址数据
* @param uid 用户id
* @return 收货地址数据
*/
List<Address> findByUid(Integer uid);
3.在.xml文件中添加对应的SQL语句映射。
<select id="findByUid">
select * from t_address where uid=#{uid}
order by is_default DESC,created_time DESC
</select>
AddressMapper–findByUid
测试
4.完成单元测试方法。
@Test
public void findByUid(){
List<Address> list = addressMapper.findByUid(8);
System.out.println(list);
}
2.业务层
1.不用抛出相关的异常,不用进行异常的设计
2.设计业务层的接口和抽象方法
List<Address> getByUid(Integer uid);
3.需要在实现类中实现此方法的逻辑
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.setZip(null);
address.setTel(null);
address.setIsDefault(null);
address.setCreatedUser(null);
address.setCreatedTime(null);
address.setModifiedUser(null);
address.setModifiedTime(null);
}
return list;
}
AddressService–getByUid
测试
4.单元测试暂时省略。
实现抽象方法
3.控制器
1.请求设计
/address
HttpSession
GET
JsonResult<List<Address>>
2.实现请求方法的编写
@RequestMapping({"","/"})
public JsonResult<List<Address>> getByUid(HttpSession session){
Integer uid = getuidFromSession(session);
List<Address> data = addressService.getByUid(uid);
return new JsonResult<>(OK,data);
}
AddressController–getByUid
测试
3.先登录,再访问请求的地址进行数据的测试。
前端页面
在address.html页面中编写查询用户收货地址数据的列表展示。
// <!--showAddressList-->
$(document).ready(function () {
showAddressList();
});
function showAddressList() {
$("#address-list").empty();
$.ajax({
url: "/address",
type: "GET",
dataType: "JSON",
success: function (json) {
if (json.state==200) {
let list = json.data;
for (let i = 0; i < list.length; i++) {
console.log(list[i].name);
let tr = '<tr>'
+ '<td>#{tag}</td>'
+ '<td>#{name}</td>'
+ '<td>#{province}#{city}#{area}#{address}</td>'
+ '<td>#{phone}</td>'
+ '<td><a class="btn btn-xs btn-info"><span class="fa fa-edit"></span> 修改</a></td>'
+ '<td><a οnclick="deleteByAid(#{aid})" class="btn btn-xs add-del btn-info"><span class="fa fa-trash-o"></span> 删除</a></td>'
+ '<td><a οnclick="setDefault(#{aid})" class="btn btn-xs add-def btn-default">设为默认</a></td>'
+ '</tr>';
tr = tr.replace(/#{aid}/g, list[i].aid);
tr = tr.replace(/#{tag}/g, list[i].tag);
tr = tr.replace("#{name}", list[i].name);
tr = tr.replace("#{province}", list[i].provinceName);
tr = tr.replace("#{city}", list[i].cityName);
tr = tr.replace("#{area}", list[i].areaName);
tr = tr.replace("#{address}", list[i].address);
tr = tr.replace("#{phone}", list[i].phone);
$("#address-list").append(tr);
}
//将某个元素隐藏使用hide()
$(".add-def:eq(0)").hide();
}else{
alert("用户收货地址加载失败")
}
}
});
}
// <!--showAddressList-->
address.html–showAddressList
测试
README–收货地址列表展示