创建直播商品VO,显示直播商品的库存以及店铺名称

This commit is contained in:
lifenlong 2021-05-26 18:40:54 +08:00
parent 99b9e8cf91
commit c58524cf94
7 changed files with 55 additions and 19 deletions

View File

@ -61,6 +61,4 @@ public class Commodity extends BaseEntity {
@ApiModelProperty(value = "规格ID")
private String skuId;
@ApiModelProperty(value = "SKU库存")
private Integer quantity;
}

View File

@ -11,9 +11,12 @@ import lombok.Data;
*/
@Data
public class CommodityDTO {
//商品ID
private Integer goods_id;
//商品名称
private String name;
//地址
private String url;
//审核状态
private Integer audit_status;
}

View File

@ -0,0 +1,21 @@
package cn.lili.modules.broadcast.entity.vos;
import cn.lili.modules.broadcast.entity.dos.Commodity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 直播商品VO
*
* @author Bulbasaur
* @date: 2021/5/26 6:09 下午
*/
@Data
public class CommodityVO extends Commodity {
@ApiModelProperty(value = "SKU库存")
private Integer quantity;
@ApiModelProperty(value = "店铺名称")
private String storeName;
}

View File

@ -2,7 +2,12 @@ package cn.lili.modules.broadcast.mapper;
import cn.lili.modules.broadcast.entity.dos.Commodity;
import cn.lili.modules.broadcast.entity.dto.SimpleCommodity;
import cn.lili.modules.broadcast.entity.vos.CommodityVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@ -18,10 +23,13 @@ public interface CommodityMapper extends BaseMapper<Commodity> {
@Select("SELECT live_goods_id FROM li_commodity WHERE audit_status='0' or audit_status='1'")
List<String> getAuditCommodity();
@Select("SELECT * FROM li_commodity c WINNER JOIN li_studio_commodity sc ON sc.goods_id = c.live_goods_id WHERE sc.room_id =#{roomId}")
@Select("SELECT * FROM li_commodity c INNER JOIN li_studio_commodity sc ON sc.goods_id = c.live_goods_id WHERE sc.room_id =#{roomId}")
List<Commodity> getCommodityByRoomId(Integer roomId);
@Select("SELECT name,goods_image FROM li_commodity c WINNER JOIN li_studio_commodity sc ON sc.goods_id = c.live_goods_id WHERE sc.room_id =#{roomId}")
@Select("SELECT name,goods_image FROM li_commodity c INNER JOIN li_studio_commodity sc ON sc.goods_id = c.live_goods_id WHERE sc.room_id =#{roomId}")
List<SimpleCommodity> getSimpleCommodityByRoomId(Integer roomId);
@Select("SELECT c.*,gs.quantity,s.store_name FROM li_commodity c INNER JOIN li_goods_sku gs ON c.sku_id = gs.id INNER JOIN li_store s ON s.id=c.store_id ${ew.customSqlSegment}")
IPage<CommodityVO> commodityVOList(IPage<CommodityVO> page, @Param(Constants.WRAPPER) Wrapper<CommodityVO> queryWrapper);
}

View File

@ -2,6 +2,7 @@ package cn.lili.modules.broadcast.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.broadcast.entity.dos.Commodity;
import cn.lili.modules.broadcast.entity.vos.CommodityVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@ -40,5 +41,5 @@ public interface CommodityService extends IService<Commodity> {
* @param auditStatus 审核状态
* @return 直播商品分页
*/
IPage<Commodity> commodityList(PageVO pageVO,String name,String auditStatus);
IPage<CommodityVO> commodityList(PageVO pageVO, String name, String auditStatus);
}

View File

@ -6,10 +6,12 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.common.utils.PageUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.broadcast.entity.dos.Commodity;
import cn.lili.modules.broadcast.entity.dto.CommodityDTO;
import cn.lili.modules.broadcast.entity.vos.CommodityVO;
import cn.lili.modules.broadcast.mapper.CommodityMapper;
import cn.lili.modules.broadcast.service.CommodityService;
import cn.lili.modules.broadcast.util.WechatLivePlayerUtil;
@ -17,6 +19,7 @@ import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.service.GoodsSkuService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -55,17 +58,19 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
}
return true;
}
private void checkCommodity(Commodity commodity){
private void checkCommodity(Commodity commodity) {
//商品是否审核通过
GoodsSku goodsSku=goodsSkuService.getById(commodity.getSkuId());
if(!goodsSku.getIsAuth().equals(GoodsAuthEnum.PASS.name())){
throw new ServiceException(goodsSku.getGoodsName()+" 未审核通过,不能添加直播商品");
GoodsSku goodsSku = goodsSkuService.getById(commodity.getSkuId());
if (!goodsSku.getIsAuth().equals(GoodsAuthEnum.PASS.name())) {
throw new ServiceException(goodsSku.getGoodsName() + " 未审核通过,不能添加直播商品");
}
//是否已添加规格商品
if(this.count(new LambdaQueryWrapper<Commodity>().eq(Commodity::getSkuId,commodity.getSkuId()))>0){
throw new ServiceException(goodsSku.getGoodsName()+" 已添加规格商品,无法重复增加");
if (this.count(new LambdaQueryWrapper<Commodity>().eq(Commodity::getSkuId, commodity.getSkuId())) > 0) {
throw new ServiceException(goodsSku.getGoodsName() + " 已添加规格商品,无法重复增加");
}
}
@Override
public boolean deleteCommodity(String goodsId) {
JSONObject json = wechatLivePlayerUtil.deleteGoods(goodsId);
@ -94,11 +99,10 @@ public class CommodityServiceImpl extends ServiceImpl<CommodityMapper, Commodity
}
@Override
public IPage<Commodity> commodityList(PageVO pageVO, String name, String auditStatus) {
return this.page(PageUtil.initPage(pageVO),
new LambdaQueryWrapper<Commodity>().like(name!=null,Commodity::getName,name)
.eq(auditStatus!=null,Commodity::getAuditStatus,auditStatus));
public IPage<CommodityVO> commodityList(PageVO pageVO, String name, String auditStatus) {
return this.baseMapper.commodityVOList(PageUtil.initPage(pageVO),
new QueryWrapper<CommodityVO>().like(name != null, "c.name", name)
.eq(auditStatus != null, "c.audit_status", auditStatus)
.eq(UserContext.getCurrentUser().getRole().equals(UserEnums.STORE), "c.store_id", UserContext.getCurrentUser().getStoreId()));
}
}

View File

@ -6,6 +6,7 @@ import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.broadcast.entity.dos.Commodity;
import cn.lili.modules.broadcast.entity.vos.CommodityVO;
import cn.lili.modules.broadcast.service.CommodityService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
@ -37,7 +38,7 @@ public class CommodityController {
@ApiImplicitParam(name = "auditStatus", value = "直播商品状态", dataType = "String", paramType = "query")
})
@GetMapping
public ResultMessage<IPage<Commodity>> page(String auditStatus, String name, PageVO pageVO) {
public ResultMessage<IPage<CommodityVO>> page(String auditStatus, String name, PageVO pageVO) {
return ResultUtil.data(commodityService.commodityList(pageVO, name, auditStatus));
}