|  |  |  | 
|---|
|  |  |  | package com.panzhihua.service_community.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | 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 com.google.common.collect.Lists; | 
|---|
|  |  |  | import com.panzhihua.common.exceptions.ServiceException; | 
|---|
|  |  |  | import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO; | 
|---|
|  |  |  | import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.R; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.AddShopGoodsAttrVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.PageShopGoodsVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.AddShopGoodsVO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.ComShopGoodsAttrVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.ComShopGoodsVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.ComShopStoreVO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO; | 
|---|
|  |  |  | import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.ComShopStoreVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.ShopGoodsVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.R; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.shop.*; | 
|---|
|  |  |  | import com.panzhihua.common.utlis.DifferentLongListUtil; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComShopGoodsDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComShopStoreDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComShopGoodsDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComShopStoreDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.service.ComShopGoodsService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.Arrays; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @auther lyq | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | public class ComShopGoodsServiceImpl extends ServiceImpl<ComShopGoodsDAO, ComShopGoodsDO> implements ComShopGoodsService { | 
|---|
|  |  |  | public class ComShopGoodsServiceImpl extends ServiceImpl<ComShopGoodsDAO, ComShopGoodsDO> | 
|---|
|  |  |  | implements ComShopGoodsService { | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComShopGoodsAttrServiceImpl goodsAttrService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | 
|---|
|  |  |  | if (addShopGoodsVO == null) { | 
|---|
|  |  |  | return R.ok("500", "数据为空!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String[] images = addShopGoodsVO.getGoodsPic().split(","); | 
|---|
|  |  |  | ComShopGoodsDO shopGoodsDO = new ComShopGoodsDO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(addShopGoodsVO, shopGoodsDO); | 
|---|
|  |  |  | shopGoodsDO.setOriginalPrice(addShopGoodsVO.getPrice()); | 
|---|
|  |  |  | if (images.length > 1) { | 
|---|
|  |  |  | shopGoodsDO.setGoodsPic(images[0]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shopGoodsDO.setImages(addShopGoodsVO.getGoodsPic()); | 
|---|
|  |  |  | shopGoodsDO.setSale(0); | 
|---|
|  |  |  | shopGoodsDO.setDetails(addShopGoodsVO.getDetails()); | 
|---|
|  |  |  | int goodsId = this.baseMapper.insert(shopGoodsDO); | 
|---|
|  |  |  | if (goodsId > 0) { | 
|---|
|  |  |  | ArrayList<ComShopGoodsAttrDO> goodsAttrDOS = Lists.newArrayList(); | 
|---|
|  |  |  | addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> { | 
|---|
|  |  |  | ComShopGoodsDO goodDO = this.baseMapper.selectById(shopGoodsDO.getId()); | 
|---|
|  |  |  | //维护商品规格表 | 
|---|
|  |  |  | ComShopGoodsDO goodDO = this.baseMapper.selectById(shopGoodsDO.getId()); | 
|---|
|  |  |  | addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> {// 维护商品规格表 | 
|---|
|  |  |  | if (goodDO == null) { | 
|---|
|  |  |  | throw new ServiceException("商家id不存在!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsId(shopGoodsDO.getId()); | 
|---|
|  |  |  | shopGoodsAttrDO.setStoreId(goodDO.getStoreId()); | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsName(goodDO.getName()); | 
|---|
|  |  |  | //如果没有规格加默认 | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); | 
|---|
|  |  |  | shopGoodsAttrDO.setIsDefault(1); | 
|---|
|  |  |  | shopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); | 
|---|
|  |  |  | shopGoodsAttrDO.setAttrPic(images[0]); | 
|---|
|  |  |  | goodsAttrDOS.add(shopGoodsAttrDO); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (addShopGoodsVO.getGoodsAttrVOList().size() < 1) {// 如果没有规格参数加默认 | 
|---|
|  |  |  | ComShopGoodsAttrDO shopGoodsAttrDO = new ComShopGoodsAttrDO(); | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsId(shopGoodsDO.getId()); | 
|---|
|  |  |  | shopGoodsAttrDO.setStoreId(goodDO.getStoreId()); | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsName(goodDO.getName()); | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsAttr("默认"); | 
|---|
|  |  |  | shopGoodsAttrDO.setIsDefault(1); | 
|---|
|  |  |  | shopGoodsAttrDO.setPrice(goodDO.getPrice()); | 
|---|
|  |  |  | shopGoodsAttrDO.setAttrPic(images[0]); | 
|---|
|  |  |  | goodsAttrService.save(shopGoodsAttrDO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (goodsAttrDOS.size() > 0) { | 
|---|
|  |  |  | goodsAttrService.saveBatch(goodsAttrDOS); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R pageGoodsList(PageComShopGoodsDTO pageComShopGoodsDTO) { | 
|---|
|  |  |  | Page page = new Page<>(pageComShopGoodsDTO.getPageNum(), pageComShopGoodsDTO.getPageSize()); | 
|---|
|  |  |  | long pageNum = pageComShopGoodsDTO.getPageNum() != null ? pageComShopGoodsDTO.getPageNum() : 1; | 
|---|
|  |  |  | long pageSize = pageComShopGoodsDTO.getPageSize() != null ? pageComShopGoodsDTO.getPageSize() : 10; | 
|---|
|  |  |  | Page page = new Page<>(pageNum, pageSize); | 
|---|
|  |  |  | IPage<PageShopGoodsVO> comShopStoreVOIPage = this.baseMapper.pageShopGoods(page, pageComShopGoodsDTO); | 
|---|
|  |  |  | List<PageShopGoodsVO> shopGoodsVOS = comShopStoreVOIPage.getRecords(); | 
|---|
|  |  |  | List<Long> goodsIds = shopGoodsVOS.stream().map(PageShopGoodsVO::getId).collect(Collectors.toList()); | 
|---|
|  |  |  | LambdaQueryWrapper<ComShopGoodsAttrDO> in = new LambdaQueryWrapper<ComShopGoodsAttrDO>().in(ComShopGoodsAttrDO::getGoodsId, goodsIds); | 
|---|
|  |  |  | //分页查询商品规格,组装数据 | 
|---|
|  |  |  | List<ComShopGoodsAttrDO> goodsAttrDOS = goodsAttrService.getBaseMapper().selectList(in); | 
|---|
|  |  |  | comShopStoreVOIPage.getRecords().forEach(vo -> { | 
|---|
|  |  |  | List<ComShopGoodsAttrDO> goodsAttrDOs = goodsAttrDOS.stream().filter(goodsAttr -> goodsAttr.getGoodsId().equals(vo.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | ArrayList<AddShopGoodsAttrVO> goodsAttrVOList = Lists.newArrayList(); | 
|---|
|  |  |  | for (ComShopGoodsAttrDO oneGoodsAttrDO :goodsAttrDOs) { | 
|---|
|  |  |  | AddShopGoodsAttrVO goodsAttrVO = new AddShopGoodsAttrVO(); | 
|---|
|  |  |  | goodsAttrVO.setGoodsAttrId(oneGoodsAttrDO.getId()); | 
|---|
|  |  |  | goodsAttrVO.setGoodsAttr(oneGoodsAttrDO.getGoodsAttr()); | 
|---|
|  |  |  | goodsAttrVO.setAttrPrice(oneGoodsAttrDO.getPrice()); | 
|---|
|  |  |  | goodsAttrVOList.add(goodsAttrVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | vo.setGoodsAttts(goodsAttrVOList); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (!comShopStoreVOIPage.getRecords().isEmpty()) { | 
|---|
|  |  |  | comShopStoreVOIPage.getRecords().forEach(shopGoods -> { | 
|---|
|  |  |  | List<ComShopGoodsAttrDO> goodsAttrDOs = | 
|---|
|  |  |  | shopGoodsAttrDAO.selectList(new QueryWrapper<ComShopGoodsAttrDO>().lambda() | 
|---|
|  |  |  | .eq(ComShopGoodsAttrDO::getGoodsId, shopGoods.getId())); | 
|---|
|  |  |  | ArrayList<AddShopGoodsAttrVO> goodsAttrVOList = Lists.newArrayList(); | 
|---|
|  |  |  | for (ComShopGoodsAttrDO oneGoodsAttrDO : goodsAttrDOs) { | 
|---|
|  |  |  | AddShopGoodsAttrVO goodsAttrVO = new AddShopGoodsAttrVO(); | 
|---|
|  |  |  | goodsAttrVO.setGoodsAttrId(oneGoodsAttrDO.getId()); | 
|---|
|  |  |  | goodsAttrVO.setGoodsAttr(oneGoodsAttrDO.getGoodsAttr()); | 
|---|
|  |  |  | goodsAttrVO.setAttrPrice(oneGoodsAttrDO.getPrice()); | 
|---|
|  |  |  | goodsAttrVOList.add(goodsAttrVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shopGoods.setGoodsAttts(goodsAttrVOList); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(comShopStoreVOIPage); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if (addShopGoodsVO == null) { | 
|---|
|  |  |  | return R.ok("500", "数据为空!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LambdaQueryWrapper<ComShopGoodsDO> query = new LambdaQueryWrapper<ComShopGoodsDO>().eq(ComShopGoodsDO::getId, id); | 
|---|
|  |  |  | LambdaQueryWrapper<ComShopGoodsDO> query = | 
|---|
|  |  |  | new LambdaQueryWrapper<ComShopGoodsDO>().eq(ComShopGoodsDO::getId, id); | 
|---|
|  |  |  | ComShopGoodsDO shopGoodsDO = new ComShopGoodsDO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(addShopGoodsVO, shopGoodsDO); | 
|---|
|  |  |  | shopGoodsDO.setOriginalPrice(addShopGoodsVO.getPrice()); | 
|---|
|  |  |  | int update = this.baseMapper.update(shopGoodsDO, query); | 
|---|
|  |  |  | if (update < 1) { | 
|---|
|  |  |  | throw new ServiceException("修改失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ArrayList<ComShopGoodsAttrDO> goodsAttrDOS = Lists.newArrayList(); | 
|---|
|  |  |  | addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> { | 
|---|
|  |  |  | if (goodsAttr.getGoodsAttrId() == null) { | 
|---|
|  |  |  | throw new ServiceException("规格Id为空"); | 
|---|
|  |  |  | // 修改规格表 | 
|---|
|  |  |  | List<ComShopGoodsAttrDO> comShopGoodsAttrDOS = shopGoodsAttrDAO | 
|---|
|  |  |  | .selectList(new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id)); | 
|---|
|  |  |  | if (addShopGoodsVO.getGoodsAttrVOList().size() == 0) { | 
|---|
|  |  |  | shopGoodsAttrDAO | 
|---|
|  |  |  | .delete(new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id)); | 
|---|
|  |  |  | ComShopGoodsAttrDO comShopGoodsAttrDO = new ComShopGoodsAttrDO(); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsId(id); | 
|---|
|  |  |  | comShopGoodsAttrDO.setStoreId(addShopGoodsVO.getStoreId()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsName(addShopGoodsVO.getName()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsAttr("默认"); | 
|---|
|  |  |  | comShopGoodsAttrDO.setAttrPic(addShopGoodsVO.getGoodsPic()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setIsDefault(1); | 
|---|
|  |  |  | comShopGoodsAttrDO.setPrice(addShopGoodsVO.getPrice()); | 
|---|
|  |  |  | shopGoodsAttrDAO.insert(comShopGoodsAttrDO); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | List<Long> attrIds = | 
|---|
|  |  |  | comShopGoodsAttrDOS.stream().map(ComShopGoodsAttrDO::getId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<Long> voAttrIds = addShopGoodsVO.getGoodsAttrVOList().stream().map(AddShopGoodsAttrVO::getGoodsAttrId) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | // 需要删除的规格ID——针对编辑时删除了规格的情况 | 
|---|
|  |  |  | List<Long> deleteIds = DifferentLongListUtil.getDiffrent(attrIds, voAttrIds); | 
|---|
|  |  |  | if (deleteIds.size() != 0) { | 
|---|
|  |  |  | shopGoodsAttrDAO.deleteBatchIds(deleteIds); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //先删除 | 
|---|
|  |  |  | ComShopGoodsAttrDO goodsAttrDO = goodsAttrService.getBaseMapper().selectById(goodsAttr.getGoodsAttrId()); | 
|---|
|  |  |  | if (goodsAttrDO == null) { | 
|---|
|  |  |  | throw new ServiceException("规格为空,请检查规格Id"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ComShopGoodsAttrDO shopGoodsAttrDO = new ComShopGoodsAttrDO(); | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsId(id); | 
|---|
|  |  |  | shopGoodsAttrDO.setStoreId(shopGoodsDO.getStoreId()); | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsName(shopGoodsDO.getName()); | 
|---|
|  |  |  | //如果没有规格加默认 | 
|---|
|  |  |  | shopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); | 
|---|
|  |  |  | shopGoodsAttrDO.setIsDefault(1); | 
|---|
|  |  |  | shopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); | 
|---|
|  |  |  | goodsAttrDOS.add(shopGoodsAttrDO); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (goodsAttrDOS.size() > 0) { | 
|---|
|  |  |  | LambdaQueryWrapper<ComShopGoodsAttrDO> oldGoodsAttrQuery = new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id); | 
|---|
|  |  |  | //删除旧商品规格,再行添加 | 
|---|
|  |  |  | goodsAttrService.getBaseMapper().delete(oldGoodsAttrQuery); | 
|---|
|  |  |  | goodsAttrService.saveBatch(goodsAttrDOS); | 
|---|
|  |  |  | addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> { | 
|---|
|  |  |  | ComShopGoodsAttrDO comShopGoodsAttrDO = shopGoodsAttrDAO.selectById(goodsAttr.getGoodsAttrId()); | 
|---|
|  |  |  | if (comShopGoodsAttrDO != null) { | 
|---|
|  |  |  | comShopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); | 
|---|
|  |  |  | shopGoodsAttrDAO.updateById(comShopGoodsAttrDO); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | comShopGoodsAttrDO = new ComShopGoodsAttrDO(); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsId(id); | 
|---|
|  |  |  | comShopGoodsAttrDO.setStoreId(addShopGoodsVO.getStoreId()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsName(addShopGoodsVO.getName()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setAttrPic(addShopGoodsVO.getGoodsPic()); | 
|---|
|  |  |  | comShopGoodsAttrDO.setIsDefault(1); | 
|---|
|  |  |  | comShopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); | 
|---|
|  |  |  | shopGoodsAttrDAO.insert(comShopGoodsAttrDO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R deleteShopGoods(Long[] id) { | 
|---|
|  |  |  | ComShopGoodsDO storeDO = new ComShopGoodsDO(); | 
|---|
|  |  |  | storeDO.setDeleteStatus(2); | 
|---|
|  |  |  | LambdaQueryWrapper<ComShopGoodsDO> query = new LambdaQueryWrapper<ComShopGoodsDO>().eq(ComShopGoodsDO::getId, id); | 
|---|
|  |  |  | int update = this.baseMapper.update(storeDO, query); | 
|---|
|  |  |  | return update > 0 ? R.ok() : R.fail(); | 
|---|
|  |  |  | LambdaQueryWrapper<ComShopGoodsDO> query = | 
|---|
|  |  |  | new LambdaQueryWrapper<ComShopGoodsDO>().in(ComShopGoodsDO::getId, id); | 
|---|
|  |  |  | List<ComShopGoodsDO> comShopGoodsDOS = this.baseMapper.selectList(query); | 
|---|
|  |  |  | for (ComShopGoodsDO one : comShopGoodsDOS) { | 
|---|
|  |  |  | one.setDeleteStatus(2); | 
|---|
|  |  |  | this.baseMapper.updateById(one); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R changeStatus(Long id, Integer status) { | 
|---|
|  |  |  | ComShopGoodsDO shopGoodsDO = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if(shopGoodsDO==null){ | 
|---|
|  |  |  | if (shopGoodsDO == null) { | 
|---|
|  |  |  | return R.fail("id有误!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | shopGoodsDO.setStatus(status); | 
|---|
|  |  |  | this.baseMapper.updateById(shopGoodsDO); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 分页查询商品列表 | 
|---|
|  |  |  | * @param comShopGoodsDTO   请求参数 | 
|---|
|  |  |  | * @return  商品列表 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param comShopGoodsDTO | 
|---|
|  |  |  | *            请求参数 | 
|---|
|  |  |  | * @return 商品列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO){ | 
|---|
|  |  |  | Page page = new Page<>(comShopGoodsDTO.getPageNum(),comShopGoodsDTO.getPageSize()); | 
|---|
|  |  |  | return R.ok(this.baseMapper.pageShopGoods(page,comShopGoodsDTO)); | 
|---|
|  |  |  | public R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO) { | 
|---|
|  |  |  | Page page = new Page<>(comShopGoodsDTO.getPageNum(), comShopGoodsDTO.getPageSize()); | 
|---|
|  |  |  | IPage<ComShopGoodsVO> goodsVOIPage = this.baseMapper.pageShopGoodByApps(page, comShopGoodsDTO); | 
|---|
|  |  |  | if (!goodsVOIPage.getRecords().isEmpty()) { | 
|---|
|  |  |  | goodsVOIPage.getRecords().forEach(goodsVo -> { | 
|---|
|  |  |  | List<ComShopGoodsAttrVO> goodsAttrList = shopGoodsAttrDAO.getGoodsAttr(goodsVo.getId()); | 
|---|
|  |  |  | if (!goodsAttrList.isEmpty()) { | 
|---|
|  |  |  | goodsVo.setGoodsAttrList(goodsAttrList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(goodsVOIPage); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据商品id查询商品信息 | 
|---|
|  |  |  | * @param goodsId   商品id | 
|---|
|  |  |  | * @return  商品信息 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param goodsId | 
|---|
|  |  |  | *            商品id | 
|---|
|  |  |  | * @return 商品信息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public R shopGoodsDetail(Long goodsId){ | 
|---|
|  |  |  | public R shopGoodsDetail(Long goodsId) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //根据id查询商品信息 | 
|---|
|  |  |  | // 根据id查询商品信息 | 
|---|
|  |  |  | ComShopGoodsDO goodsDO = this.baseMapper.selectById(goodsId); | 
|---|
|  |  |  | if(goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.deleteStatus.yes)){ | 
|---|
|  |  |  | return R.fail(403,"商品不存在"); | 
|---|
|  |  |  | if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.deleteStatus.yes)) { | 
|---|
|  |  |  | return R.fail(403, "商品不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!goodsDO.getStatus().equals(ComShopGoodsDO.status.sell)){ | 
|---|
|  |  |  | return R.fail(405,"商品已下架"); | 
|---|
|  |  |  | if (!goodsDO.getStatus().equals(ComShopGoodsDO.status.sell)) { | 
|---|
|  |  |  | return R.fail(405, "商品已下架"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //根据商品id查询商品规格信息 | 
|---|
|  |  |  | // 根据商品id查询商品规格信息 | 
|---|
|  |  |  | List<ComShopGoodsAttrVO> goodsAttrList = new ArrayList<>(); | 
|---|
|  |  |  | List<ComShopGoodsAttrDO> goodsAttrDOS = shopGoodsAttrDAO.selectList(new QueryWrapper<ComShopGoodsAttrDO>().eq("goods_id",goodsId)); | 
|---|
|  |  |  | goodsAttrDOS.forEach(attrDO->{ | 
|---|
|  |  |  | List<ComShopGoodsAttrDO> goodsAttrDOS = | 
|---|
|  |  |  | shopGoodsAttrDAO.selectList(new QueryWrapper<ComShopGoodsAttrDO>().eq("goods_id", goodsId)); | 
|---|
|  |  |  | goodsAttrDOS.forEach(attrDO -> { | 
|---|
|  |  |  | ComShopGoodsAttrVO goodsAttrVO = new ComShopGoodsAttrVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(attrDO,goodsAttrVO); | 
|---|
|  |  |  | BeanUtils.copyProperties(attrDO, goodsAttrVO); | 
|---|
|  |  |  | goodsAttrList.add(goodsAttrVO); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //查询商品店铺信息 | 
|---|
|  |  |  | // 查询商品店铺信息 | 
|---|
|  |  |  | ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId()); | 
|---|
|  |  |  | ComShopStoreVO shopStoreVO = new ComShopStoreVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(shopStoreDO,shopStoreVO); | 
|---|
|  |  |  | PageShopStoreVO shopStoreVO = new PageShopStoreVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(shopStoreDO, shopStoreVO); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //设置值 | 
|---|
|  |  |  | // 设置值 | 
|---|
|  |  |  | ComShopGoodsVO shopGoods = new ComShopGoodsVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(goodsDO,shopGoods); | 
|---|
|  |  |  | BeanUtils.copyProperties(goodsDO, shopGoods); | 
|---|
|  |  |  | shopGoods.setGoodsAttrList(goodsAttrList); | 
|---|
|  |  |  | shopGoods.setShopStoreVO(shopStoreVO); | 
|---|
|  |  |  | return R.ok(shopGoods); | 
|---|