| | |
| | | package com.panzhihua.service_community.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.NumberUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static java.util.Objects.isNull; |
| | | import static java.util.Objects.nonNull; |
| | | |
| | | /** |
| | |
| | | private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO; |
| | | @Resource |
| | | private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO; |
| | | @Resource |
| | | private ComShopFlowerGoodsViewStatisticsDAO comShopFlowerGoodsViewStatisticsDAO; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R saveShopFlowerGoods(AddShopFlowerGoodsVO addShopFlowerGoodsVO) { |
| | | if (addShopFlowerGoodsVO == null) { |
| | | return R.ok("500", "数据为空!"); |
| | |
| | | shopFlowerGoodsAttrDAO.selectList(new QueryWrapper<ComShopFlowerGoodsAttrDO>().lambda() |
| | | .eq(ComShopFlowerGoodsAttrDO::getGoodsId, shopGoods.getId())); |
| | | ArrayList<AddShopFlowerGoodsAttrVO> goodsAttrVOList = Lists.newArrayList(); |
| | | StringBuilder sbr = new StringBuilder(); |
| | | int stock = 0; |
| | | int sale = 0; |
| | | for (ComShopFlowerGoodsAttrDO oneGoodsAttrDO : goodsAttrDOs) { |
| | | AddShopFlowerGoodsAttrVO goodsAttrVO = new AddShopFlowerGoodsAttrVO(); |
| | | BeanUtils.copyProperties(oneGoodsAttrDO, goodsAttrVO); |
| | | goodsAttrVO.setGoodsAttrId(oneGoodsAttrDO.getId()); |
| | | goodsAttrVOList.add(goodsAttrVO); |
| | | sale = sale + oneGoodsAttrDO.getSale(); |
| | | stock = stock +oneGoodsAttrDO.getStock(); |
| | | sbr.append(oneGoodsAttrDO.getGoodsAttrName()).append(" "); |
| | | } |
| | | shopGoods.setGoodsAttrName(sbr.toString()); |
| | | shopGoods.setGoodsAttrs(goodsAttrVOList); |
| | | if (CollUtil.isNotEmpty(goodsAttrDOs)){ |
| | | shopGoods.setGoodsPic(goodsAttrDOs.get(0).getAttrPic()); |
| | | } |
| | | //设置商品总浏览量 |
| | | shopGoods.setViewNum(comShopFlowerGoodsViewStatisticsDAO.selectTotalViewNum(shopGoods.getId())); |
| | | String categoryNames = convenientGoodsCategoryDAO.selectCategoryScopeByGoodsId(shopGoods.getId()); |
| | | shopGoods.setCategoryName(categoryNames); |
| | | shopGoods.setStock(stock); |
| | | shopGoods.setSale(sale); |
| | | }); |
| | | } |
| | | return R.ok(comShopStoreVOIPage); |
| | |
| | | goodsVo.setGoodsAttrList(goodsAttrList); |
| | | goodsVo.setGoodsPic(comShopFlowerGoodsAttrVO.getAttrPic()); |
| | | goodsVo.setOriginalPrice(comShopFlowerGoodsAttrVO.getPrice()); |
| | | goodsVo.setPrice(comShopFlowerGoodsAttrVO.getCollatePrice()); |
| | | goodsVo.setCollatePrice(comShopFlowerGoodsAttrVO.getCollatePrice()); |
| | | goodsVo.setFreeShippingPrice(comShopFlowerGoodsAttrVO.getFreeShippingPrice()); |
| | | } |
| | | |
| | | //设置商品总浏览量 |
| | | goodsVo.setViewNum(comShopFlowerGoodsViewStatisticsDAO.selectTotalViewNum(goodsId)); |
| | | }); |
| | | } |
| | | return R.ok(goodsVOIPage); |
| | |
| | | List<ComShopFlowerGoodsAttrVO> goodsAttrList = new ArrayList<>(); |
| | | List<ComShopFlowerGoodsAttrDO> goodsAttrDOS = |
| | | shopFlowerGoodsAttrDAO.selectList(new QueryWrapper<ComShopFlowerGoodsAttrDO>().eq("goods_id", goodsId)); |
| | | List<String> images = new ArrayList<>(); |
| | | goodsAttrDOS.forEach(attrDO -> { |
| | | // List<String> images = new ArrayList<>(); |
| | | int stock = 0; |
| | | for (ComShopFlowerGoodsAttrDO attrDO : goodsAttrDOS) { |
| | | ComShopFlowerGoodsAttrVO goodsAttrVO = new ComShopFlowerGoodsAttrVO(); |
| | | BeanUtils.copyProperties(attrDO, goodsAttrVO); |
| | | String attrPic = attrDO.getAttrPic(); |
| | | images.add(attrPic); |
| | | // images.add(attrPic); |
| | | goodsAttrList.add(goodsAttrVO); |
| | | }); |
| | | |
| | | |
| | | stock = stock +attrDO.getStock(); |
| | | } |
| | | // 查询商品店铺信息 |
| | | ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(goodsDO.getStoreId()); |
| | | ConvenientMerchantVO convenientMerchantVO = new ConvenientMerchantVO(); |
| | | BeanUtils.copyProperties(convenientMerchantDO, convenientMerchantVO); |
| | | |
| | | BigDecimal score = comShopFlowerEvaluateDAO.statisticsScore(convenientMerchantDO.getId()); |
| | | convenientMerchantVO.setScore(null == score ? BigDecimal.ZERO : NumberUtil.round(score, 1)); |
| | | // 设置值 |
| | | ComShopFlowerGoodsVO shopGoods = new ComShopFlowerGoodsVO(); |
| | | BeanUtils.copyProperties(goodsDO, shopGoods); |
| | | shopGoods.setGoodsAttrList(goodsAttrList); |
| | | shopGoods.setConvenientMerchantVO(convenientMerchantVO); |
| | | shopGoods.setImages(StringUtils.join(images,",")); |
| | | // shopGoods.setImages(StringUtils.join(images,",")); |
| | | Integer orderNum = comShopFlowerOrderGoodsDAO.selectCount(new LambdaQueryWrapper<ComShopFlowerOrderGoodsDO>().eq(ComShopFlowerOrderGoodsDO::getGoodsId, goodsId)); |
| | | shopGoods.setOrderNum(orderNum); |
| | | List<ComShopFlowerEvaluateVO> comShopFlowerEvaluateVOList = comShopFlowerEvaluateDAO.selectListLimit(goodsId); |
| | | shopGoods.setShopFlowerEvaluateVOList(comShopFlowerEvaluateVOList); |
| | | Integer evaluateNum = comShopFlowerEvaluateDAO.selectCountByGoodsId(goodsId); |
| | | shopGoods.setEvaluateNum(evaluateNum); |
| | | |
| | | List<Long> categoryIds = convenientGoodsCategoryDAO.selectCategoryIdsForGoods(goodsId); |
| | | shopGoods.setCategoryIds(categoryIds); |
| | | ComShopFlowerGoodsAttrVO comShopFlowerGoodsAttrVO = goodsAttrList.get(0); |
| | | shopGoods.setOriginalPrice(comShopFlowerGoodsAttrVO.getPrice()); |
| | | shopGoods.setCollatePrice(comShopFlowerGoodsAttrVO.getCollatePrice()); |
| | | shopGoods.setFreeShippingPrice(comShopFlowerGoodsAttrVO.getFreeShippingPrice()); |
| | | shopGoods.setStock(stock); |
| | | |
| | | |
| | | return R.ok(shopGoods); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R editFlowerShopGoods(Long id, AddShopFlowerGoodsVO addShopFlowerGoodsVO) { |
| | | if (addShopFlowerGoodsVO == null) { |
| | | return R.ok("500", "数据为空!"); |
| | |
| | | .delete(new LambdaQueryWrapper<ComShopFlowerGoodsAttrDO>().eq(ComShopFlowerGoodsAttrDO::getGoodsId, id)); |
| | | ComShopFlowerGoodsAttrDO comShopFlowerGoodsAttrDO = new ComShopFlowerGoodsAttrDO(); |
| | | comShopFlowerGoodsAttrDO.setGoodsId(id); |
| | | comShopFlowerGoodsAttrDO.setStoreId(addShopFlowerGoodsVO.getStoreId()); |
| | | comShopFlowerGoodsAttrDO.setStoreId(shopGoodsDO.getStoreId()); |
| | | comShopFlowerGoodsAttrDO.setGoodsName(addShopFlowerGoodsVO.getName()); |
| | | comShopFlowerGoodsAttrDO.setGoodsAttrName("默认"); |
| | | comShopFlowerGoodsAttrDO.setAttrPic(addShopFlowerGoodsVO.getGoodsPic()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R deleteShopFlowerGoods(Long id) { |
| | | ComShopFlowerGoodsDO comShopFlowerGoodsDO = this.baseMapper.selectById(id); |
| | | comShopFlowerGoodsDO.setDeleteStatus(ComShopFlowerGoodsDO.deleteStatus.yes); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R changeStatus(Long id, Integer status) { |
| | | ComShopFlowerGoodsDO shopGoodsDO = this.baseMapper.selectById(id); |
| | | if (shopGoodsDO == null) { |
| | |
| | | this.baseMapper.updateById(shopGoodsDO); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Override |
| | | public R incrGoodsView(Long goodsId) { |
| | | ComShopFlowerGoodsDO comShopFlowerGoodsDO = this.baseMapper.selectById(goodsId); |
| | | if (isNull(comShopFlowerGoodsDO)) { |
| | | return R.fail("商品不存在"); |
| | | } |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String nowDate = simpleDateFormat.format(new Date()); |
| | | ComShopFlowerGoodsViewStatisticsDO statisticsDO = comShopFlowerGoodsViewStatisticsDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerGoodsViewStatisticsDO>() |
| | | .eq(ComShopFlowerGoodsViewStatisticsDO::getGoodsId, goodsId).eq(ComShopFlowerGoodsViewStatisticsDO::getStatisticDate, nowDate)); |
| | | if (isNull(statisticsDO)) { |
| | | comShopFlowerGoodsViewStatisticsDAO.createTodayStatistic(goodsId,nowDate); |
| | | } else { |
| | | comShopFlowerGoodsViewStatisticsDAO.incrViewNum(goodsId, nowDate); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Override |
| | | public R countSaleByUserId(Long userId){ |
| | | List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.countSaleByUserId(userId); |
| | | Map<String, Integer> collect = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum)); |
| | | return R.ok(collect); |
| | | } |
| | | } |