| | |
| | | package cc.mrbird.febs.mall.service.impl; |
| | | |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.mall.conversion.MallGoodsConversion; |
| | | import cc.mrbird.febs.mall.conversion.MallMemberConversion; |
| | | import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto; |
| | | import cc.mrbird.febs.mall.dto.MallGoodsQueryDto; |
| | | import cc.mrbird.febs.mall.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.mall.entity.MallGoods; |
| | | import cc.mrbird.febs.mall.entity.MallGoodsComment; |
| | | import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallGoodsCommentMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallGoodsImagesMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallGoodsMapper; |
| | | import cc.mrbird.febs.mall.service.IApiMallGoodsService; |
| | | import cc.mrbird.febs.mall.vo.MallGoodsListVo; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | @RequiredArgsConstructor |
| | | public class ApiMallGoodsServiceImpl extends ServiceImpl<MallGoodsMapper, MallGoods> implements IApiMallGoodsService { |
| | | |
| | | private final MallGoodsImagesMapper goodsImagesMapper; |
| | | private final MallGoodsCommentMapper mallGoodsCommentMapper; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | |
| | | |
| | | @Override |
| | | public IPage<MallGoodsListVo> findMallGoodsListInPage(MallGoodsQueryDto queryDto) { |
| | | Page<MallGoodsListVo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize()); |
| | | return this.baseMapper.selectMallGoodsListQueryInPage(queryDto, page); |
| | | } |
| | | |
| | | @Override |
| | | public List<MallGoodsListVo> findMallGoodsListNoPage(MallGoodsQueryDto queryDto) { |
| | | return this.baseMapper.selectMallGoodsListQueryNoPage(queryDto); |
| | | } |
| | | |
| | | @Override |
| | | public MallGoodsDetailsVo findMallGoodsDetailsById(Long id) { |
| | | MallGoods mallGoods = this.baseMapper.selectGoodsDetailById(id); |
| | | if (mallGoods == null) { |
| | | throw new FebsException("商品不存在"); |
| | | } |
| | | List<String> images = goodsImagesMapper.selectGoodsImagesByGoodsId(mallGoods.getId()); |
| | | MallGoodsDetailsVo mallGoodsDetailsVo = MallGoodsConversion.INSTANCE.entityToDetailsVo(mallGoods); |
| | | |
| | | if (CollUtil.isNotEmpty(mallGoods.getStyles())) { |
| | | Map<String, BigDecimal> stockAndVolume = this.baseMapper.selectGoodsStockAndVolume(id); |
| | | mallGoodsDetailsVo.setStock(stockAndVolume.get("stock").intValue()); |
| | | mallGoodsDetailsVo.setVolume(stockAndVolume.get("volume").intValue()); |
| | | } |
| | | mallGoodsDetailsVo.setImages(images); |
| | | |
| | | QueryWrapper<MallGoodsComment> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("goods_id",id); |
| | | Integer commentCount = mallGoodsCommentMapper.selectCount(objectQueryWrapper); |
| | | mallGoodsDetailsVo.setCommentCount(commentCount); |
| | | return mallGoodsDetailsVo; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MallGoodsCommentVo> findMallGoodsCommentByGoodsId(ApiMallGoodsCommentDto queryDto) { |
| | | Page<MallGoodsCommentVo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize()); |
| | | MallGoodsComment mallGoodsComment = new MallGoodsComment(); |
| | | mallGoodsComment.setGoodsId(queryDto.getGoodsId()); |
| | | mallGoodsComment.setCommentType(queryDto.getCommentType()); |
| | | return this.baseMapper.selectMallGoodsCommentListQueryInPage(page,mallGoodsComment); |
| | | } |
| | | |
| | | @Override |
| | | public ApiMallGoodsDeliveryVo findDeliverySetting() { |
| | | ApiMallGoodsDeliveryVo apiMallGoodsDeliveryVo = new ApiMallGoodsDeliveryVo(); |
| | | DataDictionaryCustom deliverySetting = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getType(), DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getCode()); |
| | | if(ObjectUtil.isNotNull(deliverySetting)){ |
| | | apiMallGoodsDeliveryVo.setHomeDeliveryServiceAmount(Double.parseDouble(deliverySetting.getValue())); |
| | | } |
| | | List<DataDictionaryCustom> homeDeliverySettings = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.FRIST_COST_LEVEL.getType()); |
| | | if(CollUtil.isNotEmpty(homeDeliverySettings)){ |
| | | List<ApiMallGoodsDeliverySettingVo> apiMallGoodsDeliverySettingVos = new ArrayList<>(); |
| | | for(DataDictionaryCustom dic : homeDeliverySettings){ |
| | | String apiMallGoodsDeliverySettingVoJson = dic.getValue(); |
| | | ApiMallGoodsDeliverySettingVo apiMallGoodsDeliverySettingVo = JSONUtil.toBean(apiMallGoodsDeliverySettingVoJson, ApiMallGoodsDeliverySettingVo.class); |
| | | apiMallGoodsDeliverySettingVos.add(apiMallGoodsDeliverySettingVo); |
| | | } |
| | | apiMallGoodsDeliveryVo.setApiMallGoodsDeliverySettingVos(apiMallGoodsDeliverySettingVos); |
| | | } |
| | | return apiMallGoodsDeliveryVo; |
| | | } |
| | | |
| | | @Override |
| | | public MallGoodsCommentVo findMallGoodsCommentLevelByGoodsId(Long id) { |
| | | return this.baseMapper.findMallGoodsCommentLevelByGoodsId(id); |
| | | } |
| | | } |