package cc.mrbird.febs.mall.service.impl;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.entity.QueryRequest;
|
import cc.mrbird.febs.mall.dto.AddMallGoodsDto;
|
import cc.mrbird.febs.mall.dto.AddMallGoodsSkuDto;
|
import cc.mrbird.febs.mall.dto.UpMallGoodsDto;
|
import cc.mrbird.febs.mall.entity.MallGoods;
|
import cc.mrbird.febs.mall.entity.MallGoodsCategory;
|
import cc.mrbird.febs.mall.entity.MallGoodsSku;
|
import cc.mrbird.febs.mall.entity.MallGoodsStyle;
|
import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper;
|
import cc.mrbird.febs.mall.mapper.MallGoodsMapper;
|
import cc.mrbird.febs.mall.mapper.MallGoodsSkuMapper;
|
import cc.mrbird.febs.mall.mapper.MallGoodsStyleMapper;
|
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
|
import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo;
|
import cc.mrbird.febs.mall.vo.AdminMailGoodsSkuDetailVo;
|
import cc.mrbird.febs.mall.vo.AdminMallGoodsVo;
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
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.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class AdminMallGoodsService extends ServiceImpl<MallGoodsMapper, MallGoods> implements IAdminMallGoodsService {
|
|
private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
|
private final MallGoodsMapper mallGoodsMapper;
|
private final MallGoodsSkuMapper mallGoodsSkuMapper;
|
private final MallGoodsStyleMapper mallGoodsStyleMapper;
|
|
@Override
|
public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
|
Page<AdminMallGoodsVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminMallGoodsVo> adminMallGoodsVos = this.baseMapper.selectMallGoodsInPage(page, mallGoods);
|
return adminMallGoodsVos;
|
}
|
|
@Override
|
public FebsResponse addMallGoods(AddMallGoodsDto addMallGoodsDto) {
|
String goodsName = addMallGoodsDto.getGoodsName();
|
if(StrUtil.isEmpty(goodsName)){
|
return new FebsResponse().fail().message("商品名称不能为空");
|
}
|
Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsName(goodsName);
|
if(mallGoodsByGoodsName > 0){
|
return new FebsResponse().fail().message("商品名称不能重复");
|
}
|
String goodsNo = addMallGoodsDto.getGoodsNo();
|
if(StrUtil.isEmpty(goodsNo)){
|
return new FebsResponse().fail().message("商品编号不能为空");
|
}
|
Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNo(goodsNo);
|
if(mallGoodsByGoodsNo > 0){
|
return new FebsResponse().fail().message("商品编号不能重复");
|
}
|
Long categoryId = addMallGoodsDto.getCategoryId();
|
if(ObjectUtil.isEmpty(categoryId)){
|
return new FebsResponse().fail().message("商品分类不能为空");
|
}
|
//新增商品
|
MallGoods mallGoods = new MallGoods();
|
mallGoods.setGoodsNo(addMallGoodsDto.getGoodsNo());
|
mallGoods.setGoodsName(addMallGoodsDto.getGoodsName());
|
mallGoods.setGoodsIntrodution(addMallGoodsDto.getGoodsIntrodution());
|
mallGoods.setUnit(addMallGoodsDto.getUnit());
|
mallGoods.setThumb(addMallGoodsDto.getThumb());
|
mallGoods.setGoodsDetails(addMallGoodsDto.getGoodsDetails());
|
mallGoods.setOriginalPrice(addMallGoodsDto.getOriginalPrice());
|
mallGoods.setCategoryId(addMallGoodsDto.getCategoryId());
|
mallGoods.setPresentPrice(addMallGoodsDto.getPresentPrice());
|
mallGoods.setIsHot(addMallGoodsDto.getIsHot());
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
|
mallGoodsMapper.insert(mallGoods);
|
|
List<AddMallGoodsSkuDto> addMallGoodsSkuDtos = addMallGoodsDto.getAddMallGoodsSkuDtos();
|
if(CollUtil.isNotEmpty(addMallGoodsSkuDtos)){
|
for(AddMallGoodsSkuDto addMallGoodsSkuDto : addMallGoodsSkuDtos){
|
//新增样式
|
MallGoodsStyle mallGoodsStyle = new MallGoodsStyle();
|
mallGoodsStyle.setName(addMallGoodsSkuDto.getSkuName());
|
mallGoodsStyle.setGoodsId(mallGoods.getId());
|
mallGoodsStyleMapper.insert(mallGoodsStyle);
|
|
//新增商品规格
|
MallGoodsSku mallGoodsSku = new MallGoodsSku();
|
mallGoodsSku.setSkuName(addMallGoodsSkuDto.getSkuName());
|
mallGoodsSku.setSkuImage(addMallGoodsSkuDto.getSkuImage());
|
mallGoodsSku.setStock(addMallGoodsSkuDto.getStock());
|
mallGoodsSku.setSkuVolume(addMallGoodsSkuDto.getSkuVolume());
|
mallGoodsSku.setOriginalPrice(new BigDecimal(addMallGoodsSkuDto.getOriginalPrice()));
|
mallGoodsSku.setPresentPrice(new BigDecimal(addMallGoodsSkuDto.getPresentPrice()));
|
mallGoodsSku.setStyleId(mallGoodsStyle.getId());
|
mallGoodsSku.setGoodsId(mallGoods.getId());
|
mallGoodsSkuMapper.insert(mallGoodsSku);
|
}
|
}
|
|
return new FebsResponse().success().message("操作成功");
|
}
|
|
@Override
|
public FebsResponse upMallGoods(Long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
if(ObjectUtil.isEmpty(mallGoods)){
|
return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
|
}
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_ENABLE);
|
mallGoodsMapper.updateById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse downMallGoods(Long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
if(ObjectUtil.isEmpty(mallGoods)){
|
return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
|
}
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
|
mallGoodsMapper.updateById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse delMallGoods(Long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
if(ObjectUtil.isEmpty(mallGoods)){
|
return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
|
}
|
Integer isSale = mallGoods.getIsSale();
|
if(MallGoods.ISSALE_STATUS_DISABLED != isSale){
|
return new FebsResponse().fail().message("请先下架该商品");
|
}
|
|
mallGoodsStyleMapper.deleteByGoodsId(id);
|
mallGoodsSkuMapper.deleteByGoodsId(id);
|
mallGoodsMapper.deleteById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public AdminMailGoodsDetailVo getMallGoodsInfoById(long id) {
|
AdminMailGoodsDetailVo adminMailGoodsDetailVo = mallGoodsMapper.selectMallGoodsInfoById(id);
|
List<AdminMailGoodsSkuDetailVo> adminMailGoodsSkuDetailVos = mallGoodsSkuMapper.selectByGoodId(id);
|
adminMailGoodsDetailVo.setMailGoodsSkuDetailVo(adminMailGoodsSkuDetailVos);
|
return adminMailGoodsDetailVo;
|
}
|
|
|
}
|