|  |  | 
 |  |  |  | 
 |  |  | import cc.mrbird.febs.common.entity.FebsResponse; | 
 |  |  | import cc.mrbird.febs.common.entity.QueryRequest; | 
 |  |  | import cc.mrbird.febs.common.utils.AppContants; | 
 |  |  | import cc.mrbird.febs.mall.conversion.MallGoodsConversion; | 
 |  |  | import cc.mrbird.febs.mall.dto.*; | 
 |  |  | import cc.mrbird.febs.mall.entity.*; | 
 |  |  | 
 |  |  |     private final MallShoppingCartMapper mallShoppingCartMapper; | 
 |  |  |     private final MallCarriageRuleMapper mallCarriageRuleMapper; | 
 |  |  |     private final MallCarriageRuleInfoMapper mallCarriageRuleInfoMapper; | 
 |  |  |     private final MallGoodsCouponMapper mallGoodsCouponMapper; | 
 |  |  |     private final CouponGoodsMapper couponGoodsMapper; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) { | 
 |  |  | 
 |  |  |             return new FebsResponse().fail().message("商品编号不能重复"); | 
 |  |  |         } | 
 |  |  |         Integer carriageType = addMallGoodsDto.getCarriageType(); | 
 |  |  |         if(1 == carriageType){ | 
 |  |  |             if(ObjectUtil.isEmpty(addMallGoodsDto.getCarriageAmount()) | 
 |  |  |                     || BigDecimal.ZERO.compareTo(addMallGoodsDto.getCarriageAmount()) > 0){ | 
 |  |  |                 return new FebsResponse().fail().message("固定邮费不能小于零"); | 
 |  |  |             } | 
 |  |  |         }else{ | 
 |  |  |             Long carriageRuleId = addMallGoodsDto.getCarriageRuleId(); | 
 |  |  |             MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); | 
 |  |  |             if(ObjectUtil.isEmpty(mallCarriageRule)){ | 
 |  |  |                 return new FebsResponse().fail().message("邮费模板不能为空"); | 
 |  |  |         if (addMallGoodsDto.getGoodsType() == 1) { | 
 |  |  |             if (1 == carriageType) { | 
 |  |  |                 if (ObjectUtil.isEmpty(addMallGoodsDto.getCarriageAmount()) | 
 |  |  |                         || BigDecimal.ZERO.compareTo(addMallGoodsDto.getCarriageAmount()) > 0) { | 
 |  |  |                     return new FebsResponse().fail().message("固定邮费不能小于零"); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 Long carriageRuleId = addMallGoodsDto.getCarriageRuleId(); | 
 |  |  |                 MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); | 
 |  |  |                 if (ObjectUtil.isEmpty(mallCarriageRule)) { | 
 |  |  |                     return new FebsResponse().fail().message("邮费模板不能为空"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |                     if (StrUtil.isEmpty(originalPrice)) { | 
 |  |  |                         return new FebsResponse().fail().message("商品规格原价不能为空"); | 
 |  |  |                     } | 
 |  |  | //                    addSku.setPresentPrice(addSku.getOriginalPrice()); | 
 |  |  | //                    String presentPrice = addSku.getPresentPrice(); | 
 |  |  | //                    if (StrUtil.isEmpty(presentPrice)) { | 
 |  |  | //                        return new FebsResponse().fail().message("商品规格现价不能为空"); | 
 |  |  | //                    } | 
 |  |  |                     String presentPrice = addSku.getPresentPrice(); | 
 |  |  |                     if (StrUtil.isEmpty(presentPrice)) { | 
 |  |  |                         return new FebsResponse().fail().message("商品规格现价不能为空"); | 
 |  |  |                     } | 
 |  |  |                     if (StrUtil.isEmpty(addSku.getLevelOnePrice()) | 
 |  |  |                     || StrUtil.isEmpty(addSku.getLevelTwoPrice()) | 
 |  |  |                             || StrUtil.isEmpty(addSku.getLevelThreePrice())) { | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Long goodsId = mallGoods.getId(); | 
 |  |  |         QueryWrapper<CouponGoods> objectQueryWrapper = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapper.eq("goods_id",goodsId); | 
 |  |  |         List<CouponGoods> mallGoodsCoupons = couponGoodsMapper.selectList(objectQueryWrapper); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsCoupons)){ | 
 |  |  |             for(CouponGoods couponGoods : mallGoodsCoupons){ | 
 |  |  |                 couponGoodsMapper.deleteById(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if(CollUtil.isNotEmpty(addMallGoodsDto.getCouponIds())){ | 
 |  |  |             List<Long> couponIds = addMallGoodsDto.getCouponIds(); | 
 |  |  |             for(Long couponId : couponIds){ | 
 |  |  |                 CouponGoods couponGoods = new CouponGoods(); | 
 |  |  |                 couponGoods.setGoodsId(goodsId); | 
 |  |  |                 couponGoods.setCouponId(couponId); | 
 |  |  |                 couponGoodsMapper.insert(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (addMallGoodsDto.getGoodsType() == 2) { | 
 |  |  |             return new FebsResponse().success().message("添加成功"); | 
 |  |  |         } | 
 |  |  | 
 |  |  |             sku.setSkuImage(mallGoods.getThumb()); | 
 |  |  |             sku.setSkuName(mallGoods.getGoodsName()); | 
 |  |  |             sku.setCostPrice(mallGoods.getCostPrice()); | 
 |  |  | //            sku.setPresentPrice(new BigDecimal(mallGoods.getPresentPrice())); | 
 |  |  |             sku.setPresentPrice(new BigDecimal(mallGoods.getOriginalPrice())); | 
 |  |  |             sku.setPresentPrice(new BigDecimal(mallGoods.getPresentPrice())); | 
 |  |  |             sku.setOriginalPrice(new BigDecimal(mallGoods.getOriginalPrice())); | 
 |  |  |             sku.setLevelOnePrice(mallGoods.getLevelOnePrice()); | 
 |  |  |             sku.setLevelTwoPrice(mallGoods.getLevelTwoPrice()); | 
 |  |  | 
 |  |  |  | 
 |  |  |         List<MallGoodsSku> skus = mallGoodsSkuMapper.selectSkuByGoodsId(mallGoods.getId()); | 
 |  |  |         List<String> thumbs = mallGoodsImagesMapper.selectByGoodId(mallGoods.getId()); | 
 |  |  |         List<Long> couponIds = couponGoodsMapper.selectByGoodId(mallGoods.getId()); | 
 |  |  |         mallGoods.setImages(thumbs); | 
 |  |  |         mallGoods.setSkus(skus); | 
 |  |  |         mallGoods.setCouponIds(couponIds); | 
 |  |  |         return mallGoods; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |                     if (originalPrice.compareTo(BigDecimal.ZERO) <= 0) { | 
 |  |  |                         return new FebsResponse().fail().message("商品规格原价不能小于0"); | 
 |  |  |                     } | 
 |  |  | //                    addSku.setPresentPrice(addSku.getOriginalPrice()); | 
 |  |  | //                    BigDecimal presentPrice = addSku.getPresentPrice(); | 
 |  |  | //                    if (presentPrice.compareTo(BigDecimal.ZERO) < 0) { | 
 |  |  | //                        return new FebsResponse().fail().message("商品规格现价不能小于0"); | 
 |  |  | //                    } | 
 |  |  |                     if (addSku.getLevelOnePrice().compareTo(BigDecimal.ZERO) < 0) { | 
 |  |  |                         return new FebsResponse().fail().message("商品等级价格不能小于0"); | 
 |  |  |                     } | 
 |  |  |                     if (addSku.getLevelTwoPrice().compareTo(BigDecimal.ZERO) < 0) { | 
 |  |  |                         return new FebsResponse().fail().message("商品等级价格不能小于0"); | 
 |  |  |                     } | 
 |  |  |                     if (addSku.getLevelThreePrice().compareTo(BigDecimal.ZERO) < 0) { | 
 |  |  |                         return new FebsResponse().fail().message("商品等级价格不能小于0"); | 
 |  |  |                     BigDecimal presentPrice = addSku.getPresentPrice(); | 
 |  |  |                     if (presentPrice.compareTo(BigDecimal.ZERO) < 0) { | 
 |  |  |                         return new FebsResponse().fail().message("商品规格现价不能小于0"); | 
 |  |  |                     } | 
 |  |  |                     BigDecimal goodsWeight = addSku.getGoodsWeight(); | 
 |  |  |                     if(BigDecimal.ZERO.compareTo(goodsWeight) > 0){ | 
 |  |  | 
 |  |  |                     mallGoodsImagesMapper.insert(mallGoodsImages); | 
 |  |  |                     i++; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Long goodsId = mallGoodsUpdateDto.getId(); | 
 |  |  |         QueryWrapper<CouponGoods> objectQueryWrapper = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapper.eq("goods_id",goodsId); | 
 |  |  |         List<CouponGoods> mallGoodsCoupons = couponGoodsMapper.selectList(objectQueryWrapper); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsCoupons)){ | 
 |  |  |             for(CouponGoods couponGoods : mallGoodsCoupons){ | 
 |  |  |                 couponGoodsMapper.deleteById(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsUpdateDto.getCouponIds())){ | 
 |  |  |             List<Long> couponIds = mallGoodsUpdateDto.getCouponIds(); | 
 |  |  |             for(Long couponId : couponIds){ | 
 |  |  |                 CouponGoods couponGoods = new CouponGoods(); | 
 |  |  |                 couponGoods.setGoodsId(goodsId); | 
 |  |  |                 couponGoods.setCouponId(couponId); | 
 |  |  |                 couponGoodsMapper.insert(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |         List<MallCarriageRule> mallCarriageRules = mallCarriageRuleMapper.selectList(new QueryWrapper<>()); | 
 |  |  |         return mallCarriageRules; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public IPage<MallGoodsCoupon> getMallGoodsCouponListInPage(MallGoodsCoupon mallGoodsCoupon, QueryRequest request) { | 
 |  |  |         Page<MallGoodsCoupon> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
 |  |  |         IPage<MallGoodsCoupon> mallGoodsCouponIPage = mallGoodsCouponMapper.selectMallGoodsCouponListInPage(page, mallGoodsCoupon); | 
 |  |  |         return mallGoodsCouponIPage; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse couponRuleAdd(CouponRuleAddDto couponRuleAddDto) { | 
 |  |  |         String name = couponRuleAddDto.getName(); | 
 |  |  |         QueryWrapper<MallGoodsCoupon> objectQueryWrapper = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapper.eq("name",name); | 
 |  |  |         List<MallGoodsCoupon> mallGoodsCoupons = mallGoodsCouponMapper.selectList(objectQueryWrapper); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsCoupons)){ | 
 |  |  |             return new FebsResponse().fail().message("名称不能重复"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         MallGoodsCoupon mallGoodsCoupon = new MallGoodsCoupon(); | 
 |  |  |         mallGoodsCoupon.setName(name); | 
 |  |  |         mallGoodsCoupon.setExpireDay(couponRuleAddDto.getExpireDay()); | 
 |  |  |         mallGoodsCoupon.setCostAmount(couponRuleAddDto.getCostAmount()); | 
 |  |  |         mallGoodsCoupon.setType(couponRuleAddDto.getType()); | 
 |  |  |         mallGoodsCoupon.setRealAmount(couponRuleAddDto.getRealAmount()); | 
 |  |  |         mallGoodsCouponMapper.insert(mallGoodsCoupon); | 
 |  |  |  | 
 |  |  |         Long couponId = mallGoodsCoupon.getId(); | 
 |  |  |         QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapperCoupon.eq("coupon_id",couponId); | 
 |  |  |         List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); | 
 |  |  |         if(CollUtil.isNotEmpty(couponGoodsList)){ | 
 |  |  |             for(CouponGoods couponGoods : couponGoodsList){ | 
 |  |  |                 couponGoodsMapper.deleteById(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if(CollUtil.isNotEmpty(couponRuleAddDto.getGoodsIds())){ | 
 |  |  |             List<Long> goodsIds = couponRuleAddDto.getGoodsIds(); | 
 |  |  |             for(Long goodsId : goodsIds){ | 
 |  |  |                 CouponGoods couponGoods = new CouponGoods(); | 
 |  |  |                 couponGoods.setGoodsId(goodsId); | 
 |  |  |                 couponGoods.setCouponId(couponId); | 
 |  |  |                 couponGoodsMapper.insert(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return new FebsResponse().success().message("操作成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse couponRuleDel(Long id) { | 
 |  |  |         MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); | 
 |  |  |         if (ObjectUtil.isEmpty(mallGoodsCoupon)) { | 
 |  |  |             return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); | 
 |  |  |         } | 
 |  |  |         Integer state = mallGoodsCoupon.getState(); | 
 |  |  |         if(2 == state){ | 
 |  |  |             return new FebsResponse().fail().message("请先下架优惠卷"); | 
 |  |  |         } | 
 |  |  |         mallGoodsCouponMapper.deleteById(id); | 
 |  |  |         return new FebsResponse().success(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse upCoupon(Long id) { | 
 |  |  |         MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); | 
 |  |  |         if (ObjectUtil.isEmpty(mallGoodsCoupon)) { | 
 |  |  |             return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); | 
 |  |  |         } | 
 |  |  |         mallGoodsCoupon.setState(2); | 
 |  |  |         mallGoodsCouponMapper.updateById(mallGoodsCoupon); | 
 |  |  |         return new FebsResponse().success(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse downCoupon(Long id) { | 
 |  |  |         MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); | 
 |  |  |         if (ObjectUtil.isEmpty(mallGoodsCoupon)) { | 
 |  |  |             return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); | 
 |  |  |         } | 
 |  |  |         mallGoodsCoupon.setState(1); | 
 |  |  |         mallGoodsCouponMapper.updateById(mallGoodsCoupon); | 
 |  |  |         return new FebsResponse().success().message("操作成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public AdminMallGoodsCouponVo selectGoodsCouponById(long id) { | 
 |  |  |         List<Long> goodsIds = couponGoodsMapper.selectByCouponId(id); | 
 |  |  |         AdminMallGoodsCouponVo adminMallGoodsCouponVo = mallGoodsCouponMapper.selectGoodsCouponById(id); | 
 |  |  |         adminMallGoodsCouponVo.setGoodsIds(goodsIds); | 
 |  |  |         return adminMallGoodsCouponVo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse couponUpdate(AdminMallGoodsCouponVo adminMallGoodsCouponVo) { | 
 |  |  |         Long id = adminMallGoodsCouponVo.getId(); | 
 |  |  |         MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); | 
 |  |  |         if (ObjectUtil.isEmpty(mallGoodsCoupon)) { | 
 |  |  |             return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); | 
 |  |  |         } | 
 |  |  |         Integer state = mallGoodsCoupon.getState(); | 
 |  |  |         if(2 == state){ | 
 |  |  |             return new FebsResponse().fail().message("请先下架优惠卷"); | 
 |  |  |         } | 
 |  |  |         mallGoodsCoupon.setName(adminMallGoodsCouponVo.getName()); | 
 |  |  |         mallGoodsCoupon.setExpireDay(adminMallGoodsCouponVo.getExpireDay()); | 
 |  |  |         mallGoodsCoupon.setCostAmount(adminMallGoodsCouponVo.getCostAmount()); | 
 |  |  |         mallGoodsCoupon.setType(adminMallGoodsCouponVo.getType()); | 
 |  |  |         mallGoodsCoupon.setRealAmount(adminMallGoodsCouponVo.getRealAmount()); | 
 |  |  |         mallGoodsCouponMapper.updateById(mallGoodsCoupon); | 
 |  |  |  | 
 |  |  |         Long couponId = mallGoodsCoupon.getId(); | 
 |  |  |         QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapperCoupon.eq("coupon_id",couponId); | 
 |  |  |         List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); | 
 |  |  |         if(CollUtil.isNotEmpty(couponGoodsList)){ | 
 |  |  |             for(CouponGoods couponGoods : couponGoodsList){ | 
 |  |  |                 couponGoodsMapper.deleteById(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if(CollUtil.isNotEmpty(adminMallGoodsCouponVo.getGoodsIds())){ | 
 |  |  |             List<Long> goodsIds = adminMallGoodsCouponVo.getGoodsIds(); | 
 |  |  |             for(Long goodsId : goodsIds){ | 
 |  |  |                 CouponGoods couponGoods = new CouponGoods(); | 
 |  |  |                 couponGoods.setGoodsId(goodsId); | 
 |  |  |                 couponGoods.setCouponId(couponId); | 
 |  |  |                 couponGoodsMapper.insert(couponGoods); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return new FebsResponse().success().message("操作成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<AdminMallGoodsCouponTreeVo> findAdminMallGoodsCouponVoTree() { | 
 |  |  |         QueryWrapper<MallGoodsCoupon> objectQueryWrapper = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapper.eq("state",2); | 
 |  |  |         List<MallGoodsCoupon> mallGoodsCoupons = mallGoodsCouponMapper.selectList(objectQueryWrapper); | 
 |  |  |  | 
 |  |  |         List<AdminMallGoodsCouponTreeVo> objects = new ArrayList<>(); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsCoupons)){ | 
 |  |  |             for(MallGoodsCoupon mallGoodsCoupon : mallGoodsCoupons){ | 
 |  |  |                 AdminMallGoodsCouponTreeVo adminMallGoodsCouponTreeVo = new AdminMallGoodsCouponTreeVo(); | 
 |  |  |                 adminMallGoodsCouponTreeVo.setCouponId(mallGoodsCoupon.getId()); | 
 |  |  |                 adminMallGoodsCouponTreeVo.setCouponName(mallGoodsCoupon.getName()); | 
 |  |  |                 objects.add(adminMallGoodsCouponTreeVo); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return objects; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<AdminMallGoodsCouponTreeListVo> findAdminMallGoodsCouponVoTreeList() { | 
 |  |  |         QueryWrapper<MallGoodsCoupon> objectQueryWrapper = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapper.eq("state",2); | 
 |  |  |         List<MallGoodsCoupon> mallGoodsCoupons = mallGoodsCouponMapper.selectList(objectQueryWrapper); | 
 |  |  |  | 
 |  |  |         List<AdminMallGoodsCouponTreeListVo> objects = new ArrayList<>(); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsCoupons)){ | 
 |  |  |             for(MallGoodsCoupon mallGoodsCoupon : mallGoodsCoupons){ | 
 |  |  |                 AdminMallGoodsCouponTreeListVo adminMallGoodsCouponTreeListVo = new AdminMallGoodsCouponTreeListVo(); | 
 |  |  |                 adminMallGoodsCouponTreeListVo.setId(mallGoodsCoupon.getId()); | 
 |  |  |                 adminMallGoodsCouponTreeListVo.setName(mallGoodsCoupon.getName()); | 
 |  |  |                 objects.add(adminMallGoodsCouponTreeListVo); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return objects; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<AdminMallGoodsCouponTreeListVo> findAdminMallGoodsVoTreeList() { | 
 |  |  |         QueryWrapper<MallGoods> objectQueryWrapper = new QueryWrapper<>(); | 
 |  |  |         objectQueryWrapper.eq("is_sale",1); | 
 |  |  |         List<MallGoods> mallGoodsList = mallGoodsMapper.selectList(objectQueryWrapper); | 
 |  |  |  | 
 |  |  |         List<AdminMallGoodsCouponTreeListVo> objects = new ArrayList<>(); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoodsList)){ | 
 |  |  |             for(MallGoods mallGoods : mallGoodsList){ | 
 |  |  |                 AdminMallGoodsCouponTreeListVo adminMallGoodsCouponTreeListVo = new AdminMallGoodsCouponTreeListVo(); | 
 |  |  |                 adminMallGoodsCouponTreeListVo.setId(mallGoods.getId()); | 
 |  |  |                 adminMallGoodsCouponTreeListVo.setName(mallGoods.getGoodsName()); | 
 |  |  |                 objects.add(adminMallGoodsCouponTreeListVo); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return objects; | 
 |  |  |     } | 
 |  |  | } |