package cc.mrbird.febs.dapp.service.impl;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.entity.QueryRequest;
|
import cc.mrbird.febs.dapp.dto.AddMallGoodsDto;
|
import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto;
|
import cc.mrbird.febs.dapp.dto.MallOrderInfoDto;
|
import cc.mrbird.febs.dapp.entity.MallGoods;
|
import cc.mrbird.febs.dapp.entity.MallOrderInfo;
|
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
|
import cc.mrbird.febs.dapp.mapper.MallGoodsMapper;
|
import cc.mrbird.febs.dapp.mapper.MallOrderInfoMapper;
|
import cc.mrbird.febs.dapp.service.IAdminMallGoodsService;
|
import cc.mrbird.febs.dapp.vo.AdminMallMoneyFlowVo;
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
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 org.springframework.transaction.annotation.Transactional;
|
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
@Transactional
|
public class AdminMallGoodsService extends ServiceImpl<MallGoodsMapper, MallGoods> implements IAdminMallGoodsService {
|
|
private final MallGoodsMapper mallGoodsMapper;
|
private final MallOrderInfoMapper mallOrderInfoMapper;
|
private final DappFundFlowDao dappFundFlowDao;
|
|
@Override
|
public IPage<MallGoods> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
|
Page<MallGoods> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<MallGoods> adminMallGoodsVos = this.baseMapper.selectMallGoodsInPage(page, mallGoods);
|
return adminMallGoodsVos;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse addMallGoods(AddMallGoodsDto addMallGoodsDto) {
|
String goodsName = addMallGoodsDto.getGoodsName();
|
Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsName(goodsName);
|
if (mallGoodsByGoodsName > 0) {
|
return new FebsResponse().fail().message("商品名称不能重复");
|
}
|
String goodsNo = addMallGoodsDto.getGoodsNo();
|
Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNo(goodsNo);
|
if (mallGoodsByGoodsNo > 0) {
|
return new FebsResponse().fail().message("商品编号不能重复");
|
}
|
MallGoods mallGoods = new MallGoods();
|
//新增商品
|
BeanUtil.copyProperties(addMallGoodsDto, mallGoods);
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
|
mallGoodsMapper.insert(mallGoods);
|
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
|
@Transactional
|
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("请先下架该商品");
|
}
|
|
mallGoodsMapper.deleteById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public MallGoods selectGoodsById(long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
return mallGoods;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse updateMallGoods(MallGoodsUpdateDto mallGoodsUpdateDto) {
|
String goodsName = mallGoodsUpdateDto.getGoodsName();
|
Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsNameAndGoodId(goodsName, mallGoodsUpdateDto.getId());
|
if (mallGoodsByGoodsName > 0) {
|
return new FebsResponse().fail().message("商品名称不能重复");
|
}
|
String goodsNo = mallGoodsUpdateDto.getGoodsNo();
|
Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNoAndGoodId(goodsNo, mallGoodsUpdateDto.getId());
|
if (mallGoodsByGoodsNo > 0) {
|
return new FebsResponse().fail().message("商品编号不能重复");
|
}
|
|
//新增商品
|
MallGoods mallGoods = mallGoodsMapper.selectById(mallGoodsUpdateDto.getId());
|
|
BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods);
|
mallGoodsMapper.updateById(mallGoods);
|
|
return new FebsResponse().success().message("操作成功");
|
}
|
|
@Override
|
public IPage<MallOrderInfo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
|
Page<MallOrderInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<MallOrderInfo> adminMallOrderInfoVos = mallGoodsMapper.selectOrderListInPage(page, mallOrderInfo);
|
return adminMallOrderInfoVos;
|
}
|
|
@Override
|
public IPage<AdminMallMoneyFlowVo> orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo) {
|
MallOrderInfo mallOrder = mallOrderInfoMapper.selectById(mallOrderInfo.getId());
|
Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = dappFundFlowDao.selectOrderMoneyFlowInPage(page, mallOrder);
|
return adminMallMoneyFlowVos;
|
}
|
}
|