master:下载商品页面优化;

pull/1121/head
liujiang 2025-10-08 18:25:05 +08:00
parent a5d56730be
commit 3deaf5c895
9 changed files with 165 additions and 1 deletions

View File

@ -75,6 +75,7 @@ public class StoreProductController extends XktBaseController {
return R.ok(storeProdService.page(BeanUtil.toBean(pageVO, StoreProdPageDTO.class)));
}
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()")
@ApiOperation(value = "获取档口商品详细信息", httpMethod = "GET", response = R.class)
@GetMapping(value = "/detail/{storeProdId}")
public R<StoreProdResVO> getInfo(@PathVariable("storeProdId") Long storeProdId) {
@ -142,6 +143,13 @@ public class StoreProductController extends XktBaseController {
BeanUtil.toBean(cateCountVO, StoreProdStatusCateNumDTO.class)), StoreProdStatusCateCountResVO.class));
}
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin,seller,agent')")
@ApiOperation(value = "获取下载页商品数据", httpMethod = "GET", response = R.class)
@GetMapping(value = "/pc/download/{storeProdId}")
public R<StoreProdPcDownloadInfoResVO> getPcDownloadInfo(@PathVariable("storeProdId") Long storeProdId) {
return R.ok(BeanUtil.toBean(storeProdService.getPcDownloadInfo(storeProdId), StoreProdPcDownloadInfoResVO.class));
}
@ApiOperation(value = "获取商品图包列表", httpMethod = "GET", response = R.class)
@GetMapping(value = "/pic-pack/{storeProdId}")
public R<List<PicPackSimpleVO>> listPickPack(@PathVariable("storeProdId") Long storeProdId) {
@ -149,6 +157,7 @@ public class StoreProductController extends XktBaseController {
return success(BeanUtil.copyToList(dtoList, PicPackSimpleVO.class));
}
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin,seller,agent')")
@Log(title = "获取商品图包下载链接", businessType = BusinessType.OTHER)
@ApiOperation(value = "获取商品图包下载链接", httpMethod = "POST", response = R.class)
@PostMapping(value = "/pic-pack/url")
@ -159,4 +168,7 @@ public class StoreProductController extends XktBaseController {
return success(BeanUtil.toBean(infoDTO, PicPackInfoVO.class));
}
}

View File

@ -0,0 +1,41 @@
package com.ruoyi.web.controller.xkt.vo.storeProd;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@Data
@ApiModel
public class StoreProdPcDownloadInfoResVO {
@ApiModelProperty(value = "档口名称")
private String storeName;
@ApiModelProperty(value = "商品货号")
private String prodArtNum;
@ApiModelProperty(value = "商品主图")
private String mainPicUrl;
@ApiModelProperty(value = "档口下载图包列表")
List<SPPDIFileVO> fileList;
@Data
public static class SPPDIFileVO {
@ApiModelProperty(value = "文件名称")
private String fileName;
@ApiModelProperty(value = "文件路径")
private String fileUrl;
@ApiModelProperty(value = "文件大小")
private BigDecimal fileSize;
@ApiModelProperty(value = "文件类型 3下载图片包 4 450px 5 750px")
private Integer fileType;
}
}

View File

@ -0,0 +1,42 @@
package com.ruoyi.xkt.dto.storeProduct;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.List;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@Data
@ApiModel
@Accessors(chain = true)
public class StoreProdPcDownloadInfoResDTO {
@ApiModelProperty(value = "档口名称")
private String storeName;
@ApiModelProperty(value = "商品货号")
private String prodArtNum;
@ApiModelProperty(value = "商品主图")
private String mainPicUrl;
@ApiModelProperty(value = "档口下载图包列表")
List<SPPDIFileDTO> fileList;
@Data
public static class SPPDIFileDTO {
@ApiModelProperty(value = "文件名称")
private String fileName;
@ApiModelProperty(value = "文件路径")
private String fileUrl;
@ApiModelProperty(value = "文件大小")
private BigDecimal fileSize;
@ApiModelProperty(value = "文件类型 3下载图片包 4 450px 5 750px")
private Integer fileType;
}
}

View File

@ -3,8 +3,8 @@ package com.ruoyi.xkt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.xkt.domain.StoreProductFile;
import com.ruoyi.xkt.dto.advertRound.app.strength.APPStrengthStoreFileDTO;
import com.ruoyi.xkt.dto.storeProduct.StoreProdPcDownloadInfoResDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileLatestFourProdDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFilePicSpaceResDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdMainPicDTO;
import org.apache.ibatis.annotations.Param;
@ -79,4 +79,12 @@ public interface StoreProductFileMapper extends BaseMapper<StoreProductFile> {
* @return List<APPStrengthStoreFileDTO>
*/
List<APPStrengthStoreFileDTO> selectRandomStoreFileList(@Param("storeIdList") List<Long> storeIdList);
/**
*
*
* @param storeProdId ID
* @return List<StoreProdPcDownloadInfoResDTO.SPPDIFileDTO>
*/
List<StoreProdPcDownloadInfoResDTO.SPPDIFileDTO> selectDownloadFileList(@Param("storeProdId") Long storeProdId);
}

View File

@ -138,5 +138,13 @@ public interface StoreProductMapper extends BaseMapper<StoreProduct> {
*/
List<StoreRecommendResDTO> selectLatest10List(@Param("storeId") Long storeId);
/**
*
*
* @param storeProdId ID
* @return StoreProdPcDownloadInfoResDTO
*/
StoreProdPcDownloadInfoResDTO selectDownloadProdInfo(@Param("storeProdId") Long storeProdId);
}

View File

@ -170,4 +170,12 @@ public interface IStoreProductService {
* @return StoreProdStatusCountResDTO
*/
StoreProdStatusCountResDTO getPcStatusNum(Long storeId);
/**
* PC
*
* @param storeProdId ID
* @return
*/
StoreProdPcDownloadInfoResDTO getPcDownloadInfo(Long storeProdId);
}

View File

@ -730,6 +730,20 @@ public class StoreProductServiceImpl implements IStoreProductService {
return this.storeProdMapper.getStatusNum(storeId);
}
/**
* PC
*
* @param storeProdId ID
* @return StoreProdPcDownloadInfoResDTO
*/
@Override
@Transactional(readOnly = true)
public StoreProdPcDownloadInfoResDTO getPcDownloadInfo(Long storeProdId) {
StoreProdPcDownloadInfoResDTO downloadInfo = this.storeProdMapper.selectDownloadProdInfo(storeProdId);
// 获取下载图包
return downloadInfo.setFileList(this.storeProdFileMapper.selectDownloadFileList(storeProdId));
}
/**
* ID

View File

@ -170,5 +170,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
JOIN sys_file sf ON random_files.file_id = sf.id;
</select>
<select id="selectDownloadFileList">
SELECT
sf.file_name,
sf.file_url,
sf.file_size,
spf.file_type
FROM
store_product_file spf
JOIN sys_file sf ON spf.file_id = sf.id
WHERE
spf.del_flag = 0
AND spf.file_type IN ( 3, 4, 5 )
AND spf.store_prod_id = #{storeProdId}
ORDER BY
spf.file_type
</select>
</mapper>

View File

@ -332,5 +332,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LIMIT 10
</select>
<select id="selectDownloadProdInfo" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPcDownloadInfoResDTO">
SELECT
s.store_name,
sp.prod_art_num,
sf.file_url AS mainPicUrl
FROM
store_product sp
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
WHERE
sp.del_flag = 0 AND sp.id = #{storeProdId}
</select>
</mapper>