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实体类不能包含多表查询出来的结果。

解决方式是:重新去构建一个新的对象,这个对象能够接受用户查询出来的结果集,所以把这个对象称之为值对象

posted @ 2022-04-27 19:21  Lfollow  阅读(24)  评论(0编辑  收藏  举报