提交 eebdf3dd 作者: xiaowang

洁哥要的

上级 4d65b85c
......@@ -4,6 +4,8 @@ import com.mmc.pms.common.ResultBody;
import com.mmc.pms.controller.BaseController;
import com.mmc.pms.model.mall.GoodsListVO;
import com.mmc.pms.model.mall.MallGoodsVO;
import com.mmc.pms.model.mall.UavCartDTO;
import com.mmc.pms.model.qo.mall.PriceStockQO;
import com.mmc.pms.service.mall.AppMallGoodsService;
import com.mmc.pms.service.mall.MallGoodsService;
import io.swagger.annotations.Api;
......@@ -56,4 +58,9 @@ public class AppMallGoodsController extends BaseController {
public ResultBody<GoodsListVO> brandStoreList(@RequestBody List<Integer> userAccountIds) {
return appMallGoodsService.brandStoreList(userAccountIds);
}
@PostMapping("listPriceStock")
List<UavCartDTO> listPriceStock(@RequestBody List<PriceStockQO> priceStockQOS) {
return appMallGoodsService.listPriceStock(priceStockQOS);
}
}
package com.mmc.pms.dao.mall;
import com.mmc.pms.entity.mall.MallGoodsDO;
import com.mmc.pms.model.qo.mall.PriceStockQO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -17,4 +18,5 @@ public interface AppMallGoodsDao {
List<MallGoodsDO> brandStoreList(List<Integer> list);
List<MallGoodsDO> listPriceStock(List<PriceStockQO> param);
}
......@@ -2,6 +2,7 @@ package com.mmc.pms.entity.mall;
import com.mmc.pms.model.mall.GoodsResourcesVO;
import com.mmc.pms.model.mall.MallGoodsVO;
import com.mmc.pms.model.mall.UavCartDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -82,6 +83,8 @@ public class MallGoodsDO implements Serializable {
private Integer imgId;
private List<MallGoodsDO> mallGoodsDOList;
private PriceStockDO priceStockDO;
public MallGoodsDO(MallGoodsVO mallGoodsVO) {
this.id = mallGoodsVO.getId();
this.tradeName = mallGoodsVO.getTradeName();
......@@ -112,5 +115,12 @@ public class MallGoodsDO implements Serializable {
.categoryPrimaryId(categoryPrimaryId).labelShow(labelShow).goodsLabel(goodsLabel).categorySubId(categorySubId)
.shelfStatus(shelfStatus).createTime(createTime).description(description).priceShow(priceShow).build();
}
public UavCartDTO buildUavCartDTO() {
return UavCartDTO.builder().mallGoodsId(id).thirdBackUserAccountId(userAccountId).tradeName(tradeName)
.productSpec(priceStockDO.getProductSpec()).salePrice(priceStockDO.getSalePrice())
.skuImage(priceStockDO.getSkuImage() == null ? url : priceStockDO.getSkuImage())
.skuNo(priceStockDO.getSkuNo()).priceShow(priceShow).deleted(deleted).shelfStatus(shelfStatus).build();
}
}
package com.mmc.pms.model.mall;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/9/16 14:08
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UavCartDTO implements Serializable {
private static final long serialVersionUID = 4386011514861211847L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "用户ID")
private Integer userAccountId;
@ApiModelProperty(value = "商家id")
private Integer thirdBackUserAccountId;
@ApiModelProperty(value = "商家名称")
private String companyName;
@ApiModelProperty(value = "商品id")
private Integer mallGoodsId;
@ApiModelProperty(value = "商品名称")
private String tradeName;
@ApiModelProperty(value = "商品规格id")
private Integer priceStockId;
@ApiModelProperty(value = "商品规格名称")
private String productSpec;
@ApiModelProperty(value = "数量")
private Integer orderNum;
@ApiModelProperty(value = "售卖价")
private BigDecimal salePrice;
@ApiModelProperty(value = "主图或规格图")
private String skuImage;
@ApiModelProperty(value = "规格编号")
private String skuNo;
@ApiModelProperty(value = "生成时间")
private Date createTime;
@ApiModelProperty(value = "是否展示价格,0 不显示 1显示")
private Integer priceShow;
@ApiModelProperty(value = "是否删除")
private Integer deleted;
@ApiModelProperty(value = "上架状态")
private Integer shelfStatus;
}
package com.mmc.pms.model.qo.mall;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author: zj
* @Date: 2023/9/19 15:08
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PriceStockQO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "商品id")
private Integer mallGoodsId;
@ApiModelProperty(value = "商品规格名称")
private String productSpec;
}
......@@ -3,6 +3,8 @@ package com.mmc.pms.service.mall;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.mall.GoodsListVO;
import com.mmc.pms.model.mall.MallGoodsVO;
import com.mmc.pms.model.mall.UavCartDTO;
import com.mmc.pms.model.qo.mall.PriceStockQO;
import java.util.List;
......@@ -17,4 +19,6 @@ public interface AppMallGoodsService {
ResultBody<MallGoodsVO> queryGoodsInfoByCategorySub(List<Integer> categorySubIds);
ResultBody<GoodsListVO> brandStoreList(List<Integer> userAccountIds);
List<UavCartDTO> listPriceStock(List<PriceStockQO> priceStockQOS);
}
......@@ -5,6 +5,8 @@ import com.mmc.pms.dao.mall.AppMallGoodsDao;
import com.mmc.pms.entity.mall.MallGoodsDO;
import com.mmc.pms.model.mall.GoodsListVO;
import com.mmc.pms.model.mall.MallGoodsVO;
import com.mmc.pms.model.mall.UavCartDTO;
import com.mmc.pms.model.qo.mall.PriceStockQO;
import com.mmc.pms.service.mall.AppMallGoodsService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
......@@ -48,7 +50,7 @@ public class AppMallGoodsServiceImpl implements AppMallGoodsService {
@Override
public ResultBody<GoodsListVO> brandStoreList(List<Integer> userAccountIds) {
List<GoodsListVO> goodsList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(userAccountIds)){
if (CollectionUtils.isNotEmpty(userAccountIds)) {
List<MallGoodsDO> mallGoodsDOList = appMallGoodsDao.brandStoreList(userAccountIds);
List<MallGoodsVO> list = mallGoodsDOList.stream().map(MallGoodsDO::buildListMallGoodsVO).collect(Collectors.toList());
Map<Integer, List<MallGoodsVO>> map = list.
......@@ -62,4 +64,11 @@ public class AppMallGoodsServiceImpl implements AppMallGoodsService {
}
return ResultBody.success(goodsList);
}
@Override
public List<UavCartDTO> listPriceStock(List<PriceStockQO> param) {
// 根据商品id和规格套装查询
List<MallGoodsDO> mallGoodsList = appMallGoodsDao.listPriceStock(param);
return mallGoodsList.stream().map(MallGoodsDO::buildUavCartDTO).collect(Collectors.toList());
}
}
......@@ -65,4 +65,47 @@
WHERE
row_num &lt;= 6 and mg.is_deleted = 0 and mg.shelf_status = 1
</select>
<resultMap id="resultMallGoodsMap" type="com.mmc.pms.entity.mall.MallGoodsDO">
<id column="id" property="id"/>
<result column="trade_name" property="tradeName"/>
<result column="price_show" property="priceShow"/>
<result column="user_account_id" property="userAccountId"/>
<result column="url" property="url"/>
<result column="is_deleted" property="deleted"/>
<result column="shelf_status" property="shelfStatus"/>
<association property="priceStockDO" javaType="com.mmc.pms.entity.mall.PriceStockDO">
<result column="product_spec" property="productSpec"/>
<result column="sku_image" property="skuImage"/>
<result column="sale_price" property="salePrice"/>
<result column="sku_no" property="skuNo"/>
</association>
</resultMap>
<select id="listPriceStock" resultMap="resultMallGoodsMap">
SELECT
mg.id,
mg.trade_name,
mg.price_show,
mg.user_account_id,
mg.is_deleted,
mg.shelf_status,
mgr.url url,
ps.product_spec,
ps.sale_price,
ps.sku_image,
ps.sku_no
FROM
mall_goods mg
INNER JOIN mall_goods_resources mgr on mg.id = mgr.mall_goods_id
AND mgr.type = 0
LEFT JOIN price_stock ps ON ps.mall_goods_id = mg.id
<where>
<foreach collection="list" item="item" separator="," open="and ps.mall_goods_id in (" close=")">
#{item.mallGoodsId}
</foreach>
<foreach collection="list" item="item" separator="," open="and ps.product_spec in (" close=")">
#{item.productSpec}
</foreach>
</where>
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论