springboot电脑商城项目 8.收货地址列表展示 9.设置默认收货地址 10 删除收货地址

您所在的位置:网站首页 收货地址怎样写农村 springboot电脑商城项目 8.收货地址列表展示 9.设置默认收货地址 10 删除收货地址

springboot电脑商城项目 8.收货地址列表展示 9.设置默认收货地址 10 删除收货地址

2024-07-15 19:35| 来源: 网络整理| 查看: 265

8.收货地址列表展示 1.持久层

1.数据库的查询操作:

select * from t_address where uid = #{uid} order by is_default DESC ,created_time DESC

2.接口和抽象方法

/** * 根据用户的id查询用户的收货地址数据 * @param uid 用户id * @return 收货地址列表 */ List findByUid(Integer uid);

3.在xml文件中添加对应的sql语句映射

select * from t_address where uid = #{uid} order by is_default DESC ,created_time DESC

4.单元测试方法

@Test public void findByUid(){ List list = addressMapper.findByUid(29); for (Address address : list) { System.out.println(address); } } 2.业务层

1.不用抛出相关异常

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

List getAddressByUid(Integer uid);

3.在实现类中实现此方法

@Override public List getAddressByUid(Integer uid) { List list = addressMapper.findByUid(uid); for (int i = 0; i < list.size(); i++) { Address data = new Address(); Address address = list.get(i); String name = address.getName(); String addressAddress = address.getAddress(); String provinceName = address.getProvinceName(); String cityName = address.getCityName(); String areaName = address.getAreaName(); String tag = address.getTag(); String zip = address.getZip(); String phone = address.getPhone(); data.setName(name); data.setAddress(addressAddress); data.setProvinceName(provinceName); data.setCityName(cityName); data.setAreaName(areaName); data.setTag(tag); data.setZip(zip); data.setPhone(phone); list.set(i,data); }

3.单元测试

3.控制层

1.请求设计

/address HttpSession session GET JsonResult

2.实现请求方法的编写

@RequestMapping({"/",""}) public JsonResult getAddressByUid(HttpSession session){ Integer uid = getUidFromSession(session); String username = getUsernameFormSession(session); List data = addressService.getAddressByUid(uid); return new JsonResult(OK, data); }

3.先登录,再访问请求的地址进行数据的测试

4.前端界面 $(document).ready(function () { showAddressList(); }) function showAddressList(){ $.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++) { let tr = '' + '#{tag}' + '#{name}' + '#{address}' + '#{phone}' + ' 修改' + ' 删除' + '设为默认' + ''; tr = tr.replace("#{tag}",list[i].tag); tr = tr.replace("#{name}",list[i].name); 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("用户收货地址数据加载失败") } } }); } 9.设置默认收货地址 1.持久层 1.1 SQL语句规划

1.检测当前用户想设置为默认收货地址的这条数据是否存在。

select * from t_address aid = ?

2.在修改用户的收货地址之前,先将所有的收货地址设置为非默认

update t_address set is_default=0 where uid = ?

3.将用户当前选中的这条记录设置为默认收货地址

update t_address set is_default,modified_user = ?,modified_time = ? where aid = ? 1.2 接口和抽象方法 /** * 根据aid查询收货地址数据 * @param aid 收货地址id * @return 收货地址数据,如果没有找到,则返回null */ Address findByAid(Integer aid); /** * 根据用户的uid来修改用户的收货地址,将该用户的所有收货地址设置为非默认 * @param uid 用户的uid * @return 受影响的行数 */ Integer updateNonDefault(Integer uid); /** * 将选中地址设置为默认 * @param aid * @param modifiedUser * @param modifiedTime * @return */ Integer updateDefaultByAid( @Param("aid") Integer aid, @Param("modifiedUser") String modifiedUser, @Param("modifiedTime") Date modifiedTime); 1.3 配置SQL映射

AddressMapper.xml文件中进行配置

select * from t_address where aid = #{aid} update t_address set is_default = 0 where uid = #{uid} update t_address set is_default = 1,modified_user = #{modifiedUser}, modified_time = #{modifiedTime} where aid = #{aid}

在单元测试方法中进行测试

@Test public void findByAid(){ Address address = addressMapper.findByAid(17); System.out.println(address); } @Test public void updateNonDefault(){ addressMapper.updateNonDefault(29); } @Test public void updateDefaultByAid(){ addressMapper.updateDefaultByAid(17,"管理员",new Date()); } 2. 业务层 2.1 异常规划

1.在执行更新时产生位置的UpdateException异常.该异常已经创建

2.访问的数据不是当前登录用户的收货地址,非法访问:AccessDeniedException异常。

3.收货地址可能不存在异常:addressNotFoundException异常

2.2 抽象方法

在接口IAddressService中编写抽象方法

/** * 修改某个用户的某条收货地址数据为默认收货地址 * @param aid 收货地址的id * @param uid 用户的id * @param username 表示修改的执行人 */ void setAddressDefault(Integer aid,Integer uid,String username);

在AddressServiceImpl中实现方法

@Override public void setAddressDefault(Integer aid, Integer uid, String username) { Address result = addressMapper.findByAid(aid); if (result == null){ throw new AddressNotFoundException("收货地址不存在异常"); } //检测当前获取到的收货地址数据的归属 if (!result.getUid().equals(uid)) { throw new AccessDeniedException("非法访问异常"); } //先将所有的收货地址设置为非默认 Integer rows = addressMapper.updateNonDefault(uid); if (rows


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3