springBoot项目搭建细节笔记3
1、删除收货地址业务层代码
/** * 删除指定的收货地址数据 * @param aid 收货地址的aid * @param uid 用户uid * @param username 表示修改执行的人 */ @Override public void delete(Integer aid, Integer uid, String username) { //1、判断选中删除的收货地址存不存在 Address byAid = mapper.findByAid(aid); if(byAid==null) { throw new AddressNotFoundException("收货地址数据不存在"); } //2、选中删除的收货地址是不是属于该用户的 if(!byAid.getUid().equals(uid)) { throw new AccessDeniedException("非法数据访问"); } //3、执行删除操作 Integer row = mapper.deleteByAid(aid); if(row!=1) { throw new DeleteException("删除数据时产生的未知的异常"); } //4、删除数据后收获地址数量是否为0 Integer count = mapper.countByUid(uid); if(count==0) { //为0 直接终止程序 / 没有数据了 return; } //count不为0 //5、删除的收货地址是默认的,需要将最近时间修改的记录作为默认的收货地址 if(byAid.getIsDefault()==1) { Address address = mapper.findLastModified(uid); Integer update = mapper.updateDefaultByAid(address.getAid(), username, new Date()); if(update!=1) { throw new UpdateServiceException("更新数据时产生的未知的异常"); } } }
2、VO值对象
VO:Value Object,值对象,当进行SELECT 查询时,查询的结果数据包含多张表中的内容。
此时发现结果集不能直接使用某个pojo 实体类来接受,pojo实体类不能包含多表查询出来的结果。
解决方式是:重新去构建一个新的对象,这个对象能够接受用户查询出来的结果集,所以把这个对象称之为值对象。