master:商城首页库存列表查询;
parent
9893b6e8ea
commit
53273743a9
|
|
@ -52,6 +52,13 @@ public class StoreProductStockController extends XktBaseController {
|
|||
return R.ok(storeProdStockService.selectPage(BeanUtil.toBean(pageVO, StoreProdStockPageDTO.class)));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()")
|
||||
@ApiOperation(value = "商城首页库存查询", httpMethod = "POST", response = R.class)
|
||||
@PostMapping("/website/page")
|
||||
public R<Page<StoreProdStockWebsitePageResDTO>> selectWebsitePage(@Validated @RequestBody StoreProdWebsiteStockPageVO websitePageVO) {
|
||||
return R.ok(storeProdStockService.selectWebsitePage(BeanUtil.toBean(websitePageVO, StoreProdWebsiteStockPageDTO.class)));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()")
|
||||
@ApiOperation(value = "档口商品库存清零", httpMethod = "PUT", response = R.class)
|
||||
@Log(title = "档口商品库存清零", businessType = BusinessType.UPDATE)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.ruoyi.web.controller.xkt.vo.storeProdStock;
|
||||
|
||||
import com.ruoyi.web.controller.xkt.vo.BasePageVO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@ApiModel
|
||||
public class StoreProdWebsiteStockPageVO extends BasePageVO {
|
||||
|
||||
@ApiModelProperty(value = "商品货号")
|
||||
private String prodArtNum;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package com.ruoyi.xkt.dto.storeProductStock;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class StoreProdStockWebsitePageResDTO {
|
||||
|
||||
@ApiModelProperty(value = "档口商品库存ID")
|
||||
private Long storeProdStockId;
|
||||
@ApiModelProperty(value = "档口ID")
|
||||
private Long storeId;
|
||||
@ApiModelProperty(value = "档口名称")
|
||||
private String storeName;
|
||||
@ApiModelProperty(value = "档口商品ID")
|
||||
private Long storeProdId;
|
||||
@ApiModelProperty(value = "档口商品主图url")
|
||||
private String mainPicUrl;
|
||||
@ApiModelProperty(value = "商品货号")
|
||||
private String prodArtNum;
|
||||
@ApiModelProperty(value = "颜色名称")
|
||||
private String colorName;
|
||||
@ApiModelProperty(value = "商品价格")
|
||||
private BigDecimal price;
|
||||
@ApiModelProperty(value = "尺码30")
|
||||
private Integer size30;
|
||||
@ApiModelProperty(value = "尺码31")
|
||||
private Integer size31;
|
||||
@ApiModelProperty(value = "尺码32")
|
||||
private Integer size32;
|
||||
@ApiModelProperty(value = "尺码33")
|
||||
private Integer size33;
|
||||
@ApiModelProperty(value = "尺码34")
|
||||
private Integer size34;
|
||||
@ApiModelProperty(value = "尺码35")
|
||||
private Integer size35;
|
||||
@ApiModelProperty(value = "尺码36")
|
||||
private Integer size36;
|
||||
@ApiModelProperty(value = "尺码37")
|
||||
private Integer size37;
|
||||
@ApiModelProperty(value = "尺码38")
|
||||
private Integer size38;
|
||||
@ApiModelProperty(value = "尺码39")
|
||||
private Integer size39;
|
||||
@ApiModelProperty(value = "尺码40")
|
||||
private Integer size40;
|
||||
@ApiModelProperty(value = "尺码41")
|
||||
private Integer size41;
|
||||
@ApiModelProperty(value = "尺码42")
|
||||
private Integer size42;
|
||||
@ApiModelProperty(value = "尺码43")
|
||||
private Integer size43;
|
||||
@ApiModelProperty(value = "总数量")
|
||||
private Integer totalStock;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.ruoyi.xkt.dto.storeProductStock;
|
||||
|
||||
import com.ruoyi.xkt.dto.BasePageDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@ApiModel
|
||||
public class StoreProdWebsiteStockPageDTO extends BasePageDTO {
|
||||
|
||||
@ApiModelProperty(value = "商品货号")
|
||||
private String prodArtNum;
|
||||
|
||||
}
|
||||
|
|
@ -3,10 +3,7 @@ package com.ruoyi.xkt.mapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.xkt.domain.StoreProductStock;
|
||||
import com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO;
|
||||
import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockAppPageResDTO;
|
||||
import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockDownloadDTO;
|
||||
import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockPageDTO;
|
||||
import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockPageResDTO;
|
||||
import com.ruoyi.xkt.dto.storeProductStock.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
|
|
@ -19,6 +16,7 @@ import java.util.List;
|
|||
* @date 2025-03-26
|
||||
*/
|
||||
public interface StoreProductStockMapper extends BaseMapper<StoreProductStock> {
|
||||
|
||||
/**
|
||||
* 档口商品库存分页查询
|
||||
*
|
||||
|
|
@ -29,6 +27,7 @@ public interface StoreProductStockMapper extends BaseMapper<StoreProductStock> {
|
|||
|
||||
/**
|
||||
* 查询APP库存列表
|
||||
*
|
||||
* @param pageDTO 入参
|
||||
* @return List<StoreProdStockPageResDTO>
|
||||
*/
|
||||
|
|
@ -57,4 +56,13 @@ public interface StoreProductStockMapper extends BaseMapper<StoreProductStock> {
|
|||
* @return List<StoreProdStockDownloadDTO>
|
||||
*/
|
||||
List<StoreProdStockDownloadDTO> selectAllStockList();
|
||||
|
||||
/**
|
||||
* 筛选商城库存列表
|
||||
*
|
||||
* @param pageDTO 入参
|
||||
* @return List<StoreProdStockPageResDTO>
|
||||
*/
|
||||
List<StoreProdStockWebsitePageResDTO> selectWebsitePage(StoreProdWebsiteStockPageDTO pageDTO);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,4 +106,13 @@ public interface IStoreProductStockService {
|
|||
* @return List<StoreProdStockPageResDTO>
|
||||
*/
|
||||
Page<StoreProdStockAppPageResDTO> selectAppPage(StoreProdStockPageDTO pageDTO);
|
||||
|
||||
/**
|
||||
* 商城首页库存查询
|
||||
*
|
||||
* @param pageDTO 查询入参
|
||||
* @return Page<StoreProdStockWebsitePageResDTO>
|
||||
*/
|
||||
Page<StoreProdStockWebsitePageResDTO> selectWebsitePage(StoreProdWebsiteStockPageDTO pageDTO);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,6 +73,23 @@ public class StoreProductStockServiceImpl implements IStoreProductStockService {
|
|||
return Page.convert(new PageInfo<>(stockList));
|
||||
}
|
||||
|
||||
/**
|
||||
* 商城首页库存查询
|
||||
*
|
||||
* @param pageDTO 查询入参
|
||||
* @return Page<StoreProdStockWebsitePageResDTO>
|
||||
*/
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public Page<StoreProdStockWebsitePageResDTO> selectWebsitePage(StoreProdWebsiteStockPageDTO pageDTO) {
|
||||
PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize());
|
||||
List<StoreProdStockWebsitePageResDTO> stockList = this.storeProdStockMapper.selectWebsitePage(pageDTO);
|
||||
if (CollectionUtils.isEmpty(stockList)) {
|
||||
return Page.empty(pageDTO.getPageSize(), pageDTO.getPageNum());
|
||||
}
|
||||
return CollectionUtils.isEmpty(stockList) ? Page.empty(pageDTO.getPageSize(), pageDTO.getPageNum()) : Page.convert(new PageInfo<>(stockList));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public Page<StoreProdStockPageResDTO> selectPage(StoreProdStockPageDTO pageDTO) {
|
||||
|
|
|
|||
|
|
@ -154,5 +154,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
sps.del_flag = 0
|
||||
</select>
|
||||
|
||||
<select id="selectWebsitePage" resultType="com.ruoyi.xkt.dto.storeProductStock.StoreProdStockWebsitePageResDTO">
|
||||
SELECT
|
||||
sps.id AS storeProdStockId,
|
||||
sp.store_id,
|
||||
s.store_name,
|
||||
sps.store_prod_id,
|
||||
sf.file_url AS mainPicUrl,
|
||||
sp.prod_art_num,
|
||||
sps.color_name,
|
||||
spcs_min.min_price AS price,
|
||||
NULLIF( sps.size_30, 0 ) AS size30,
|
||||
NULLIF( sps.size_31, 0 ) AS size31,
|
||||
NULLIF( sps.size_32, 0 ) AS size32,
|
||||
NULLIF( sps.size_33, 0 ) AS size33,
|
||||
NULLIF( sps.size_34, 0 ) AS size34,
|
||||
NULLIF( sps.size_35, 0 ) AS size35,
|
||||
NULLIF( sps.size_36, 0 ) AS size36,
|
||||
NULLIF( sps.size_37, 0 ) AS size37,
|
||||
NULLIF( sps.size_38, 0 ) AS size38,
|
||||
NULLIF( sps.size_39, 0 ) AS size39,
|
||||
NULLIF( sps.size_40, 0 ) AS size40,
|
||||
NULLIF( sps.size_41, 0 ) AS size41,
|
||||
NULLIF( sps.size_42, 0 ) AS size42,
|
||||
NULLIF( sps.size_43, 0 ) AS size43,
|
||||
( IFNULL( sps.size_30, 0 ) + IFNULL( sps.size_31, 0 ) + IFNULL( sps.size_32, 0 ) + IFNULL( sps.size_33, 0 ) + IFNULL( sps.size_34, 0 ) +
|
||||
IFNULL( sps.size_35, 0 ) + IFNULL( sps.size_36, 0 ) + IFNULL( sps.size_37, 0 ) + IFNULL( sps.size_38, 0 ) + IFNULL( sps.size_39, 0 ) +
|
||||
IFNULL( sps.size_40, 0 ) + IFNULL( sps.size_41, 0 ) + IFNULL( sps.size_42, 0 ) + IFNULL( sps.size_43, 0 )) AS totalStock
|
||||
FROM
|
||||
store_product_stock sps
|
||||
JOIN store_product sp ON sps.store_prod_id = sp.id AND sps.del_flag = 0
|
||||
JOIN store s ON sp.store_id = s.id
|
||||
JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.file_type = 1 AND spf.order_num = 1 AND spf.del_flag = 0
|
||||
JOIN sys_file sf ON spf.file_id = sf.id
|
||||
LEFT JOIN ( SELECT store_prod_id, MIN( price ) AS min_price
|
||||
FROM store_product_color_size WHERE del_flag = 0 GROUP BY store_prod_id ) spcs_min ON sp.id = spcs_min.store_prod_id
|
||||
<where>
|
||||
<if test="prodArtNum != null and prodArtNum != ''">
|
||||
AND sp.prod_art_num LIKE CONCAT( '%', #{prodArtNum}, '%' )
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue