From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java | 98 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 80 insertions(+), 18 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java index beb2596..79f80b0 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java @@ -1,6 +1,7 @@ package com.panzhihua.service_community.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -15,7 +16,6 @@ import com.panzhihua.common.model.vos.shop.*; import com.panzhihua.common.utlis.DifferentLongListUtil; import com.panzhihua.common.utlis.Snowflake; -import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComShopFlowerGoodsAttrService; @@ -23,12 +23,18 @@ 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; /** @@ -53,8 +59,11 @@ 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", "数据为空!"); @@ -128,16 +137,26 @@ shopFlowerGoodsAttrDAO.selectList(new QueryWrapper<ComShopFlowerGoodsAttrDO>().lambda() .eq(ComShopFlowerGoodsAttrDO::getGoodsId, shopGoods.getId())); ArrayList<AddShopFlowerGoodsAttrVO> goodsAttrVOList = Lists.newArrayList(); + StringBuilder sbr = new StringBuilder(); + int stock = 0; for (ComShopFlowerGoodsAttrDO oneGoodsAttrDO : goodsAttrDOs) { AddShopFlowerGoodsAttrVO goodsAttrVO = new AddShopFlowerGoodsAttrVO(); BeanUtils.copyProperties(oneGoodsAttrDO, goodsAttrVO); - goodsAttrVO.setGoodsAttrId(oneGoodsAttrDO.getId()); + goodsAttrVO.setId(oneGoodsAttrDO.getId()); goodsAttrVOList.add(goodsAttrVO); + 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); }); } return R.ok(comShopStoreVOIPage); @@ -163,9 +182,11 @@ 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); @@ -178,43 +199,57 @@ if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes)) { return R.fail(403, "商品不存在"); } - if (!goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) { - return R.fail(405, "商品已下架"); - } +// if (!goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) { +// return R.fail(405, "商品已下架"); +// } // 根据商品id查询商品规格信息 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", "数据为空!"); @@ -236,7 +271,7 @@ .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()); @@ -246,7 +281,7 @@ } else { List<Long> attrIds = comShopFlowerGoodsAttrDOS.stream().map(ComShopFlowerGoodsAttrDO::getId).collect(Collectors.toList()); - List<Long> voAttrIds = addShopFlowerGoodsVO.getGoodsAttrVOList().stream().map(AddShopFlowerGoodsAttrVO::getGoodsAttrId) + List<Long> voAttrIds = addShopFlowerGoodsVO.getGoodsAttrVOList().stream().map(AddShopFlowerGoodsAttrVO::getId) .collect(Collectors.toList()); // 需要删除的规格ID——针对编辑时删除了规格的情况 List<Long> deleteIds = DifferentLongListUtil.getDiffrent(attrIds, voAttrIds); @@ -254,7 +289,7 @@ shopFlowerGoodsAttrDAO.deleteBatchIds(deleteIds); } addShopFlowerGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> { - ComShopFlowerGoodsAttrDO comShopGoodsAttrDO = shopFlowerGoodsAttrDAO.selectById(goodsAttr.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO comShopGoodsAttrDO = shopFlowerGoodsAttrDAO.selectById(goodsAttr.getId()); if (comShopGoodsAttrDO != null) { comShopGoodsAttrDO.setPrice(goodsAttr.getPrice()); comShopGoodsAttrDO.setCollatePrice(goodsAttr.getCollatePrice()); @@ -284,6 +319,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public R deleteShopFlowerGoods(Long id) { ComShopFlowerGoodsDO comShopFlowerGoodsDO = this.baseMapper.selectById(id); comShopFlowerGoodsDO.setDeleteStatus(ComShopFlowerGoodsDO.deleteStatus.yes); @@ -292,6 +328,7 @@ } @Override + @Transactional(rollbackFor = Exception.class) public R changeStatus(Long id, Integer status) { ComShopFlowerGoodsDO shopGoodsDO = this.baseMapper.selectById(id); if (shopGoodsDO == null) { @@ -301,4 +338,29 @@ 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); + } } -- Gitblit v1.7.1