master:档口商品分页数据;

pull/1121/head
liujiang 2025-03-29 11:44:26 +08:00
parent bfe0341247
commit 5ac59b4819
25 changed files with 365 additions and 116 deletions

View File

@ -19,8 +19,8 @@ import com.ruoyi.xkt.dto.storeProduct.StoreProdStatusDTO;
import com.ruoyi.xkt.service.IStoreProductService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -36,22 +36,20 @@ import java.util.List;
*/
@RestController
@RequestMapping("/rest/v1/prods")
@RequiredArgsConstructor
@Api(tags = "档口商品")
public class StoreProductController extends XktBaseController {
@Autowired
private IStoreProductService storeProductService;
final IStoreProductService storeProductService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:product:list')")
@GetMapping("/list")
public TableDataInfo list(StoreProdPageVO pageVO) {
@PostMapping("/page")
public TableDataInfo page(@Validated @RequestBody StoreProdPageVO pageVO) {
startPage();
List<StoreProdPageResDTO> list = storeProductService.selectPage(ObjectUtils.isEmpty(pageVO) ? null : BeanUtil.toBean(pageVO, StoreProdPageDTO.class));
// TODO 处理返回的VO
// TODO 处理返回的VO
// TODO 处理返回的VO
return getDataTable(list);
}
@ -91,7 +89,7 @@ public class StoreProductController extends XktBaseController {
*
*/
@PreAuthorize("@ss.hasPermi('system:product:edit')")
@ApiOperation(value = "修改档口商品", httpMethod = "POST", response = R.class)
@ApiOperation(value = "修改档口商品", httpMethod = "PUT", response = R.class)
@Log(title = "档口商品", businessType = BusinessType.UPDATE)
@PutMapping("/{storeProdId}")
public R edit(@PathVariable Long storeProdId, @Validated @RequestBody StoreProdVO storeProdVO) {
@ -102,7 +100,8 @@ public class StoreProductController extends XktBaseController {
*
*/
@PreAuthorize("@ss.hasPermi('system:product:edit')")
@Log(title = "档口商品", businessType = BusinessType.UPDATE)
@Log(title = "修改档口商品状态", businessType = BusinessType.UPDATE)
@ApiOperation(value = "修改档口商品状态", httpMethod = "PUT", response = R.class)
@PutMapping("/prod-status")
public R editProdStatus(@Validated @RequestBody StoreProdStatusVO prodStatusVO) {
storeProductService.updateStoreProductStatus(BeanUtil.toBean(prodStatusVO, StoreProdStatusDTO.class));

View File

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author liujiang
* @version v1.0
@ -17,5 +19,8 @@ public class StoreProdPageVO {
private String prodArtNum;
@ApiModelProperty(name = "商品分类ID")
private Long prodCateId;
@ApiModelProperty(name = "档口ID")
@NotNull(message = "档口ID不能为空")
private Long storeId;
}

View File

@ -6,6 +6,7 @@ import com.ruoyi.web.controller.xkt.vo.storePordColor.StoreProdColorVO;
import com.ruoyi.web.controller.xkt.vo.storeProdCateAttr.StoreProdCateAttrVO;
import com.ruoyi.web.controller.xkt.vo.storeProdColorPrice.StoreProdColorPriceVO;
import com.ruoyi.web.controller.xkt.vo.storeProdDetail.StoreProdDetailVO;
import com.ruoyi.web.controller.xkt.vo.storeProdProcess.StoreProdProcessVO;
import com.ruoyi.web.controller.xkt.vo.storeProdSvc.StoreProdSvcVO;
import com.ruoyi.web.controller.xkt.vo.storeProductFile.StoreProdFileResVO;
import com.ruoyi.web.controller.xkt.vo.storeProductFile.StoreProdFileVO;
@ -70,5 +71,7 @@ public class StoreProdResVO {
private StoreProdSvcVO svc;
@ApiModelProperty(name = "详情内容")
private StoreProdDetailVO detail;
@ApiModelProperty(name = "档口商品生产工艺")
private StoreProdProcessVO process;
}

View File

@ -7,6 +7,7 @@ import com.ruoyi.web.controller.xkt.vo.storeProdCateAttr.StoreProdCateAttrVO;
import com.ruoyi.web.controller.xkt.vo.storeProdColorPrice.StoreProdColorPriceVO;
import com.ruoyi.web.controller.xkt.vo.storeProdColorSize.StoreProdColorSizeVO;
import com.ruoyi.web.controller.xkt.vo.storeProdDetail.StoreProdDetailVO;
import com.ruoyi.web.controller.xkt.vo.storeProdProcess.StoreProdProcessVO;
import com.ruoyi.web.controller.xkt.vo.storeProdSvc.StoreProdSvcVO;
import com.ruoyi.web.controller.xkt.vo.storeProductFile.StoreProdFileVO;
import io.swagger.annotations.ApiModel;
@ -92,5 +93,7 @@ public class StoreProdVO {
@Valid
@ApiModelProperty(name = "详情内容")
private StoreProdDetailVO detail;
@ApiModelProperty(name = "档口生产工艺")
private StoreProdProcessVO process;
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.web.controller.xkt.vo.storeProdProcess;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@ApiModel("档口商品工艺信息")
@Data
public class StoreProdProcessVO {
@ApiModelProperty(name = "档口商品ID")
private Long storeProdId;
@ApiModelProperty(name = "鞋型")
private String shoeType;
@ApiModelProperty(name = "楦号")
private String shoeSize;
@ApiModelProperty(name = "主皮")
private String mainSkin;
@ApiModelProperty(name = "主皮用量")
private String mainSkinUsage;
@ApiModelProperty(name = "配皮")
private String matchSkin;
@ApiModelProperty(name = "配皮用量")
private String matchSkinUsage;
@ApiModelProperty(name = "领口")
private String neckline;
@ApiModelProperty(name = "膛底")
private String insole;
@ApiModelProperty(name = "扣件/拉头")
private String fastener;
@ApiModelProperty(name = "辅料")
private String shoeAccessories;
@ApiModelProperty(name = "包头")
private String toeCap;
@ApiModelProperty(name = "包边")
private String edgeBinding;
@ApiModelProperty(name = "中大底")
private String midOutsole;
@ApiModelProperty(name = "防水台")
private String platformSole;
@ApiModelProperty(name = "中底厂家编码")
private String midsoleFactoryCode;
@ApiModelProperty(name = "外底厂家编码")
private String outsoleFactoryCode;
@ApiModelProperty(name = "跟厂编码")
private String heelFactoryCode;
@ApiModelProperty(name = "配料")
private String components;
@ApiModelProperty(name = "第二底料")
private String secondSoleMaterial;
@ApiModelProperty(name = "第二配料")
private String secondUpperMaterial;
@ApiModelProperty(name = "自定义")
private String customAttr;
}

View File

@ -75,11 +75,16 @@ public class XktBaseController {
*/
@SuppressWarnings({"rawtypes", "unchecked"})
protected TableDataInfo getDataTable(List<?> list) {
PageDomain pageDomain = TableSupport.buildPageRequest();
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setTotal(new PageInfo(list).getTotal());
rspData.setPageNum(pageDomain.getPageNum());
rspData.setPageSize(pageDomain.getPageSize());
long total = new PageInfo(list).getTotal();
rspData.setTotal(total);
rspData.setTotalPage((long) Math.ceil((double) total / pageDomain.getPageSize()));
return rspData;
}

View File

@ -5,81 +5,116 @@ import java.util.List;
/**
*
*
*
* @author ruoyi
*/
public class TableDataInfo implements Serializable
{
public class TableDataInfo implements Serializable {
private static final long serialVersionUID = 1L;
/** 总记录数 */
/**
*
*/
private long pageNum;
/**
*
*/
private long pageSize;
/**
*
*/
private long totalPage;
/**
*
*/
private long total;
/** 列表数据 */
/**
*
*/
private List<?> rows;
/** 消息状态码 */
/**
*
*/
private int code;
/** 消息内容 */
/**
*
*/
private String msg;
/**
*
*/
public TableDataInfo()
{
public TableDataInfo() {
}
/**
*
*
* @param list
*
* @param list
* @param total
*/
public TableDataInfo(List<?> list, long total)
{
public TableDataInfo(List<?> list, long total) {
this.rows = list;
this.total = total;
}
public long getTotal()
{
public long getTotal() {
return total;
}
public void setTotal(long total)
{
public void setTotal(long total) {
this.total = total;
}
public List<?> getRows()
{
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows)
{
public void setRows(List<?> rows) {
this.rows = rows;
}
public int getCode()
{
public int getCode() {
return code;
}
public void setCode(int code)
{
public void setCode(int code) {
this.code = code;
}
public String getMsg()
{
public String getMsg() {
return msg;
}
public void setMsg(String msg)
{
public void setMsg(String msg) {
this.msg = msg;
}
public long getPageNum() {
return pageNum;
}
public void setPageNum(long pageNum) {
this.pageNum = pageNum;
}
public long getPageSize() {
return pageSize;
}
public void setPageSize(long pageSize) {
this.pageSize = pageSize;
}
public long getTotalPage() {
return totalPage;
}
public void setTotalPage(long totalPage) {
this.totalPage = totalPage;
}
}

View File

@ -64,9 +64,7 @@ public class SysLoginService
public String login(String username, String password, String code, String uuid)
{
// 验证码校验
// TODO 测试暂时注释掉
// validateCaptcha(username, code, uuid);
// TODO 测试暂时注释掉
validateCaptcha(username, code, uuid);
// 登录前置校验
loginPreCheck(username, password);
// 用户验证

View File

@ -39,6 +39,12 @@ public class StoreProductColor extends XktBaseEntity {
@Excel(name = "档口商品ID")
private Long storeProdId;
/**
* ID
*/
@Excel(name = "档口ID")
private Long storeId;
/**
*
*/

View File

@ -5,6 +5,7 @@ import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.XktBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* store_product_process
@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class StoreProductProcess extends XktBaseEntity {
private static final long serialVersionUID = 1L;
@ -129,7 +131,7 @@ public class StoreProductProcess extends XktBaseEntity {
*
*/
@Excel(name = "跟厂编码")
private String heelfactorycode;
private String heelFactoryCode;
/**
*

View File

@ -0,0 +1,61 @@
package com.ruoyi.xkt.dto.storeProdProcess;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@ApiModel("档口商品工艺信息")
@Data
public class StoreProdProcessDTO {
@ApiModelProperty(name = "档口商品ID")
private Long storeProdId;
@ApiModelProperty(name = "鞋型")
private String shoeType;
@ApiModelProperty(name = "楦号")
private String shoeSize;
@ApiModelProperty(name = "主皮")
private String mainSkin;
@ApiModelProperty(name = "主皮用量")
private String mainSkinUsage;
@ApiModelProperty(name = "配皮")
private String matchSkin;
@ApiModelProperty(name = "配皮用量")
private String matchSkinUsage;
@ApiModelProperty(name = "领口")
private String neckline;
@ApiModelProperty(name = "膛底")
private String insole;
@ApiModelProperty(name = "扣件/拉头")
private String fastener;
@ApiModelProperty(name = "辅料")
private String shoeAccessories;
@ApiModelProperty(name = "包头")
private String toeCap;
@ApiModelProperty(name = "包边")
private String edgeBinding;
@ApiModelProperty(name = "中大底")
private String midOutsole;
@ApiModelProperty(name = "防水台")
private String platformSole;
@ApiModelProperty(name = "中底厂家编码")
private String midsoleFactoryCode;
@ApiModelProperty(name = "外底厂家编码")
private String outsoleFactoryCode;
@ApiModelProperty(name = "跟厂编码")
private String heelFactoryCode;
@ApiModelProperty(name = "配料")
private String components;
@ApiModelProperty(name = "第二底料")
private String secondSoleMaterial;
@ApiModelProperty(name = "第二配料")
private String secondUpperMaterial;
@ApiModelProperty(name = "自定义")
private String customAttr;
}

View File

@ -6,6 +6,7 @@ import com.ruoyi.xkt.dto.storeProdColor.StoreProdColorDTO;
import com.ruoyi.xkt.dto.storeProdColorPrice.StoreProdColorPriceDTO;
import com.ruoyi.xkt.dto.storeProdColorSize.StoreProdColorSizeDTO;
import com.ruoyi.xkt.dto.storeProdDetail.StoreProdDetailDTO;
import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessDTO;
import com.ruoyi.xkt.dto.storeProdSvc.StoreProdSvcDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileDTO;
import io.swagger.annotations.ApiModel;
@ -69,5 +70,7 @@ public class StoreProdDTO {
private StoreProdSvcDTO svc;
@ApiModelProperty(name = "详情内容")
private StoreProdDetailDTO detail;
@ApiModelProperty(name = "档口生产工艺")
private StoreProdProcessDTO process;
}

View File

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author liujiang
* @version v1.0
@ -17,5 +19,7 @@ public class StoreProdPageDTO {
private String prodArtNum;
@ApiModelProperty(name = "商品分类ID")
private Long prodCateId;
@ApiModelProperty(name = "档口ID")
private Long storeId;
}

View File

@ -21,6 +21,8 @@ public class StoreProdPageResDTO {
@ApiModelProperty(name = "档口商品ID")
private Long storeProdId;
@ApiModelProperty(name = "档口ID")
private Long storeId;
@ApiModelProperty(name = "档口商品主图url")
private String mainPicUrl;
@ApiModelProperty(name = "商品货号")

View File

@ -2,10 +2,11 @@ package com.ruoyi.xkt.dto.storeProduct;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.xkt.dto.storeColor.StoreColorDTO;
import com.ruoyi.xkt.dto.storeProdColor.StoreProdColorDTO;
import com.ruoyi.xkt.dto.storeProdCateAttr.StoreProdCateAttrDTO;
import com.ruoyi.xkt.dto.storeProdColor.StoreProdColorDTO;
import com.ruoyi.xkt.dto.storeProdColorPrice.StoreProdColorPriceDTO;
import com.ruoyi.xkt.dto.storeProdDetail.StoreProdDetailDTO;
import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessDTO;
import com.ruoyi.xkt.dto.storeProdSvc.StoreProdSvcDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO;
import io.swagger.annotations.ApiModel;
@ -66,5 +67,7 @@ public class StoreProdResDTO {
private StoreProdSvcDTO svc;
@ApiModelProperty(name = "详情内容")
private StoreProdDetailDTO detail;
@ApiModelProperty(name = "档口生产工艺信息")
private StoreProdProcessDTO process;
}

View File

@ -0,0 +1,21 @@
package com.ruoyi.xkt.dto.storeProductFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liujiang
* @version v1.0
* @date 2025/3/27 15:12
*/
@ApiModel("档口商品主图返回数据")
@Data
public class StoreProdMainPicDTO {
@ApiModelProperty("档口商品名称")
private Long storeProdId;
@ApiModelProperty(name = "文件路径")
private String fileUrl;
}

View File

@ -3,6 +3,8 @@ package com.ruoyi.xkt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.xkt.domain.StoreProductColor;
import com.ruoyi.xkt.dto.storeProdColor.StoreProdColorDTO;
import com.ruoyi.xkt.dto.storeProduct.StoreProdPageDTO;
import com.ruoyi.xkt.dto.storeProduct.StoreProdPageResDTO;
import java.util.List;
@ -65,4 +67,6 @@ public interface StoreProductColorMapper extends BaseMapper<StoreProductColor> {
List<StoreProdColorDTO> selectListByStoreProdId(Long storeProdId);
List<StoreProdPageResDTO> selectStoreProdColorPage(StoreProdPageDTO pageDTO);
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.xkt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.xkt.domain.StoreProductFile;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdMainPicDTO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
@ -68,9 +69,7 @@ public interface StoreProductFileMapper extends BaseMapper<StoreProductFile> {
List<StoreProdFileResDTO> selectListByStoreProdId(Long storeProdId);
// 指定 Map 的 key 字段
@MapKey("storeProdId")
Map<Long, String> selectMainPicByStoreProdIdList(@Param("storeProdIdList") List<Long> storeProdIdList,
@Param("fileType") String fileType,
@Param("orderNum") Integer orderNum);
List<StoreProdMainPicDTO> selectMainPicByStoreProdIdList(@Param("storeProdIdList") List<Long> storeProdIdList,
@Param("fileType") String fileType,
@Param("orderNum") Integer orderNum);
}

View File

@ -62,5 +62,5 @@ public interface StoreProductMapper extends BaseMapper<StoreProduct> {
*/
public int deleteStoreProductByStoreProdIds(Long[] storeProdIds);
List<StoreProdPageResDTO> selectStoreProdPage(StoreProdPageDTO pageDTO);
}

View File

@ -59,4 +59,8 @@ public interface StoreProductProcessMapper extends BaseMapper<StoreProductProces
* @return
*/
public int deleteStoreProductProcessByStoreProdProcessIds(Long[] storeProdProcessIds);
void updateDelFlagByStoreProdId(Long storeProdId);
StoreProductProcess selectByStoreProdId(Long storeProdId);
}

View File

@ -11,10 +11,12 @@ import com.ruoyi.xkt.dto.storeProdCateAttr.StoreProdCateAttrDTO;
import com.ruoyi.xkt.dto.storeProdColor.StoreProdColorDTO;
import com.ruoyi.xkt.dto.storeProdColorPrice.StoreProdColorPriceDTO;
import com.ruoyi.xkt.dto.storeProdDetail.StoreProdDetailDTO;
import com.ruoyi.xkt.dto.storeProdProcess.StoreProdProcessDTO;
import com.ruoyi.xkt.dto.storeProdSvc.StoreProdSvcDTO;
import com.ruoyi.xkt.dto.storeProduct.*;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdFileResDTO;
import com.ruoyi.xkt.dto.storeProductFile.StoreProdMainPicDTO;
import com.ruoyi.xkt.mapper.*;
import com.ruoyi.xkt.service.IStoreProductService;
import lombok.RequiredArgsConstructor;
@ -46,6 +48,7 @@ public class StoreProductServiceImpl implements IStoreProductService {
final StoreColorMapper storeColorMapper;
final SysFileMapper fileMapper;
final StoreProductColorSizeMapper storeProdColorSizeMapper;
final StoreProductProcessMapper storeProdProcMapper;
/**
@ -57,7 +60,9 @@ public class StoreProductServiceImpl implements IStoreProductService {
@Override
@Transactional(readOnly = true)
public StoreProdResDTO selectStoreProductByStoreProdId(Long storeProdId) {
StoreProduct storeProd = Optional.ofNullable(storeProdMapper.selectById(storeProdId)).orElseThrow(() -> new ServiceException("档口商品不存在!", HttpStatus.ERROR));
StoreProduct storeProd = Optional.ofNullable(this.storeProdMapper.selectOne(new LambdaQueryWrapper<StoreProduct>()
.eq(StoreProduct::getStoreProdId, storeProdId).eq(StoreProduct::getDelFlag, "0")))
.orElseThrow(() -> new ServiceException("档口商品不存在!", HttpStatus.ERROR));
StoreProdResDTO storeProdResDTO = BeanUtil.toBean(storeProd, StoreProdResDTO.class);
// 档口文件(商品主图、主图视频、下载的商品详情)
List<StoreProdFileResDTO> fileResList = this.storeProdFileMapper.selectListByStoreProdId(storeProdId);
@ -80,6 +85,9 @@ public class StoreProductServiceImpl implements IStoreProductService {
// 档口服务承诺
StoreProductService storeProductSvc = this.storeProdSvcMapper.selectByStoreProdId(storeProdId);
storeProdResDTO.setSvc(ObjectUtils.isEmpty(storeProductSvc) ? null : BeanUtil.toBean(storeProductSvc, StoreProdSvcDTO.class));
// 档口生产工艺信息
StoreProductProcess prodProcess = this.storeProdProcMapper.selectByStoreProdId(storeProdId);
storeProdResDTO.setProcess(ObjectUtils.isEmpty(prodProcess) ? null : BeanUtil.toBean(prodProcess, StoreProdProcessDTO.class));
return storeProdResDTO;
}
@ -103,7 +111,7 @@ public class StoreProductServiceImpl implements IStoreProductService {
@Override
public List<StoreProdPageResDTO> selectPage(StoreProdPageDTO pageDTO) {
// 调用Mapper方法查询商店产品分页信息
List<StoreProdPageResDTO> page = storeProdMapper.selectStoreProdPage(pageDTO);
List<StoreProdPageResDTO> page = storeProdColorMapper.selectStoreProdColorPage(pageDTO);
// 如果查询结果为空,则直接返回空列表
if (CollectionUtils.isEmpty(page)) {
return new ArrayList<>();
@ -111,11 +119,13 @@ public class StoreProductServiceImpl implements IStoreProductService {
// 提取查询结果中的商店产品ID列表
List<Long> storeProdIdList = page.stream().map(StoreProdPageResDTO::getStoreProdId).collect(Collectors.toList());
// 查找排名第一个商品主图列表
Map<Long, String> mainPicMap = this.storeProdFileMapper.selectMainPicByStoreProdIdList(storeProdIdList, "MAIN_PIC", 1);
List<StoreProdMainPicDTO> mainPicList = this.storeProdFileMapper.selectMainPicByStoreProdIdList(storeProdIdList, "MAIN_PIC", 1);
Map<Long, String> mainPicMap = CollectionUtils.isEmpty(mainPicList) ? new HashMap<>() : mainPicList.stream()
.collect(Collectors.toMap(StoreProdMainPicDTO::getStoreProdId, StoreProdMainPicDTO::getFileUrl));
// 查找档口商品的标准尺码
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<StoreProductColorSize>().in(StoreProductColorSize::getStoreProdId, storeProdIdList)
LambdaQueryWrapper<StoreProductColorSize> queryWrapper = new LambdaQueryWrapper<StoreProductColorSize>().in(StoreProductColorSize::getStoreProdId, storeProdIdList)
.eq(StoreProductColorSize::getDelFlag, "0").eq(StoreProductColorSize::getStandard, "1");
List<StoreProductColorSize> standardSizeList = this.storeProdColorPriceMapper.selectList(queryWrapper);
List<StoreProductColorSize> standardSizeList = this.storeProdColorSizeMapper.selectList(queryWrapper);
// 将标准尺码列表转换为映射,以便后续处理
Map<Long, List<Integer>> standardSizeMap = CollectionUtils.isEmpty(standardSizeList) ? new HashMap<>() : standardSizeList.stream().collect(Collectors
.groupingBy(StoreProductColorSize::getStoreProdId, Collectors.mapping(StoreProductColorSize::getSize, Collectors.toList())));
@ -178,6 +188,11 @@ public class StoreProductServiceImpl implements IStoreProductService {
this.storeProdSvcMapper.insert(BeanUtil.toBean(storeProdDTO.getSvc(), StoreProductService.class)
.setStoreProdId(storeProd.getStoreProdId()));
}
// 档口生产工艺信息
if (ObjectUtils.isNotEmpty(storeProdDTO.getProcess())) {
this.storeProdProcMapper.insert(BeanUtil.toBean(storeProdDTO.getProcess(), StoreProductProcess.class)
.setStoreProdId(storeProd.getStoreProdId()));
}
return count;
}
@ -210,6 +225,8 @@ public class StoreProductServiceImpl implements IStoreProductService {
this.storeProdDetailMapper.updateDelFlagByStoreProdId(storeProdId);
// 档口服务承诺的del_flag置为2
this.storeProdSvcMapper.updateDelFlagByStoreProdId(storeProdId);
// 档口工艺信息的del_flag置为2
this.storeProdProcMapper.updateDelFlagByStoreProdId(storeProdId);
// 重新执行插入数据操作
return this.insertStoreProduct(storeProdDTO);
}

View File

@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="storeProdColorId" column="store_prod_color_id" />
<result property="storeColorId" column="store_color_id" />
<result property="storeProdId" column="store_prod_id" />
<result property="storeId" column="store_id" />
<result property="colorName" column="color_name" />
<result property="version" column="version" />
<result property="delFlag" column="del_flag" />
@ -18,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectStoreProductColorVo">
select store_prod_color_id, store_color_id, store_prod_id, color_name, version, del_flag, create_by, create_time, update_by, update_time from store_product_color
select store_prod_color_id, store_color_id, store_prod_id, store_id, color_name, version, del_flag, create_by, create_time, update_by, update_time from store_product_color
</sql>
<select id="selectStoreProductColorList" parameterType="StoreProductColor" resultMap="StoreProductColorResult">
@ -105,5 +106,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
del_flag = 0 AND store_prod_id = #{storeProdId}
</select>
<select id="selectStoreProdColorPage" parameterType="com.ruoyi.xkt.dto.storeProduct.StoreProdPageDTO" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPageResDTO">
SELECT
spc.store_prod_id AS storeProdId,
spc.store_id AS storeId,
sp.prod_art_num AS prodArtNum,
spc.color_name AS colorName,
sp.prod_cate_id AS prodCateId,
spcp.price,
sp.prod_status AS prodStatus,
spc.create_time AS createTime
FROM
store_product_color spc
LEFT JOIN store_product sp ON spc.store_prod_id = sp.store_prod_id
LEFT JOIN store_product_color_price spcp ON spc.store_color_id = spcp.store_color_id
AND spc.store_prod_id = spcp.store_prod_id
AND spc.store_color_id = spcp.store_color_id
WHERE
spc.store_id = #{storeId}
<if test="prodArtNum != null and prodArtNum != ''"> and sp.prod_art_num like concat('%', #{prodArtNum}, '%')</if>
<if test="prodCateId != null "> and sp.prod_cate_id = #{prodCateId}</if>
</select>
</mapper>

View File

@ -133,7 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE spf.del_flag = 0 AND spf.store_prod_id = #{storeProdId}
</select>
<select id="selectMainPicByStoreProdIdList" resultType="map">
<select id="selectMainPicByStoreProdIdList" resultType="com.ruoyi.xkt.dto.storeProductFile.StoreProdMainPicDTO">
SELECT
spf.store_prod_id AS storeProdId,
sf.file_url AS fileUrl

View File

@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="StoreProduct" id="StoreProductResult">
<result property="storeProdId" column="store_prod_id" />
<result property="storeId" column="store_id" />
<result property="prodName" column="prod_name" />
<result property="prodCateId" column="prod_cate_id" />
<result property="factoryArtNum" column="factory_art_num" />
@ -29,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectStoreProductVo">
select store_prod_id, prod_name, prod_cate_id, factory_art_num, prod_art_num, prod_title, prod_weight, produce_price, over_price, delivery_time, listing_way, next_barcode_num, listing_way_schedule, vroucher_date, prod_status, version, del_flag, create_by, create_time, update_by, update_time from store_product
select store_prod_id, store_id, prod_name, prod_cate_id, factory_art_num, prod_art_num, prod_title, prod_weight, produce_price, over_price, delivery_time, listing_way, next_barcode_num, listing_way_schedule, vroucher_date, prod_status, version, del_flag, create_by, create_time, update_by, update_time from store_product
</sql>
<select id="selectStoreProductList" parameterType="StoreProduct" resultMap="StoreProductResult">
@ -144,25 +145,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<select id="selectStoreProdPage" parameterType="com.ruoyi.xkt.dto.storeProduct.StoreProdPageDTO" resultType="com.ruoyi.xkt.dto.storeProduct.StoreProdPageResDTO">
SELECT
spc.store_prod_id AS storeProdId,
sp.prod_art_num AS prodArtNum,
spc.color_name AS colorName,
sp.prod_cate_id AS prodCateId,
spcp.price,
sp.prod_status AS prodStatus,
spc.create_time AS createTime
FROM
store_product_color spc
LEFT JOIN store_product sp ON spc.store_prod_id = sp.store_prod_id
LEFT JOIN store_product_color_price spcp ON spc.store_color_id = spcp.store_color_id
AND spc.store_prod_id = spcp.store_prod_id
AND spc.store_color_id = spcp.store_color_id
<where>
<if test="prodArtNum != null and prodArtNum != ''"> and sp.prod_art_num like concat('%', #{prodArtNum}, '%')</if>
<if test="prodCateId != null "> and sp.prod_cate_id = #{prodCateId}</if>
</where>
</select>
</mapper>

View File

@ -19,14 +19,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="shoeAccessories" column="shoe_accessories" />
<result property="toeCap" column="toe_cap" />
<result property="edgeBinding" column="edge_binding" />
<result property="mid-outsole" column="mid-outsole" />
<result property="platform-sole" column="platform-sole" />
<result property="midsole-factory-code" column="midsole-factory-code" />
<result property="outsole-factory-code" column="outsole-factory-code" />
<result property="heel-factory-code" column="heel-factory-code" />
<result property="midOutsole" column="mid_outsole" />
<result property="platformSole" column="platform_sole" />
<result property="midsoleFactoryCode" column="midsole_factory_code" />
<result property="outsoleFactoryCode" column="outsole_factory_code" />
<result property="heelFactoryCode" column="heel_factory_code" />
<result property="components" column="components" />
<result property="second-sole-material" column="second-sole-material" />
<result property="second-upper-material" column="second-upper-material" />
<result property="secondSoleMaterial" column="second_sole_material" />
<result property="secondUpperMaterial" column="second_upper_material" />
<result property="customAttr" column="custom_attr" />
<result property="version" column="version" />
<result property="delFlag" column="del_flag" />
@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectStoreProductProcessVo">
select store_prod_process_id, store_prod_id, shoe_type, shoe_size, main_skin, main_skin_usage, match_skin, match_skin_usage, neckline, insole, fastener, shoe_accessories, toe_cap, edge_binding, mid-outsole, platform-sole, midsole-factory-code, outsole-factory-code, heel-factory-code, components, second-sole-material, second-upper-material, custom_attr, version, del_flag, create_by, create_time, update_by, update_time from store_product_process
select store_prod_process_id, store_prod_id, shoe_type, shoe_size, main_skin, main_skin_usage, match_skin, match_skin_usage, neckline, insole, fastener, shoe_accessories, toe_cap, edge_binding, mid_outsole, platform_sole, midsole_factory_code, outsole_factory_code, heel_factory_code, components, second_sole_material, second_upper_material, custom_attr, version, del_flag, create_by, create_time, update_by, update_time from store_product_process
</sql>
<select id="selectStoreProductProcessList" parameterType="StoreProductProcess" resultMap="StoreProductProcessResult">
@ -56,14 +56,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="shoeAccessories != null and shoeAccessories != ''"> and shoe_accessories = #{shoeAccessories}</if>
<if test="toeCap != null and toeCap != ''"> and toe_cap = #{toeCap}</if>
<if test="edgeBinding != null and edgeBinding != ''"> and edge_binding = #{edgeBinding}</if>
<if test="mid-outsole != null and mid-outsole != ''"> and mid-outsole = #{mid-outsole}</if>
<if test="platform-sole != null and platform-sole != ''"> and platform-sole = #{platform-sole}</if>
<if test="midsole-factory-code != null and midsole-factory-code != ''"> and midsole-factory-code = #{midsole-factory-code}</if>
<if test="outsole-factory-code != null and outsole-factory-code != ''"> and outsole-factory-code = #{outsole-factory-code}</if>
<if test="heel-factory-code != null and heel-factory-code != ''"> and heel-factory-code = #{heel-factory-code}</if>
<if test="mid_outsole != null and mid_outsole != ''"> and mid_outsole = #{mid_outsole}</if>
<if test="platform_sole != null and platform_sole != ''"> and platform_sole = #{platform_sole}</if>
<if test="midsole_factory_code != null and midsole_factory_code != ''"> and midsole_factory_code = #{midsole_factory_code}</if>
<if test="outsole_factory_code != null and outsole_factory_code != ''"> and outsole_factory_code = #{outsole_factory_code}</if>
<if test="heel_factory_code != null and heel_factory_code != ''"> and heel_factory_code = #{heel_factory_code}</if>
<if test="components != null and components != ''"> and components = #{components}</if>
<if test="second-sole-material != null and second-sole-material != ''"> and second-sole-material = #{second-sole-material}</if>
<if test="second-upper-material != null and second-upper-material != ''"> and second-upper-material = #{second-upper-material}</if>
<if test="second_sole_material != null and second_sole_material != ''"> and second_sole_material = #{second_sole_material}</if>
<if test="second_upper_material != null and second_upper_material != ''"> and second_upper_material = #{second_upper_material}</if>
<if test="customAttr != null and customAttr != ''"> and custom_attr = #{customAttr}</if>
<if test="version != null "> and version = #{version}</if>
</where>
@ -90,14 +90,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="shoeAccessories != null">shoe_accessories,</if>
<if test="toeCap != null">toe_cap,</if>
<if test="edgeBinding != null">edge_binding,</if>
<if test="mid-outsole != null">mid-outsole,</if>
<if test="platform-sole != null">platform-sole,</if>
<if test="midsole-factory-code != null">midsole-factory-code,</if>
<if test="outsole-factory-code != null">outsole-factory-code,</if>
<if test="heel-factory-code != null">heel-factory-code,</if>
<if test="mid_outsole != null">mid_outsole,</if>
<if test="platform_sole != null">platform_sole,</if>
<if test="midsole_factory_code != null">midsole_factory_code,</if>
<if test="outsole_factory_code != null">outsole_factory_code,</if>
<if test="heel_factory_code != null">heel_factory_code,</if>
<if test="components != null">components,</if>
<if test="second-sole-material != null">second-sole-material,</if>
<if test="second-upper-material != null">second-upper-material,</if>
<if test="second_sole_material != null">second_sole_material,</if>
<if test="second_upper_material != null">second_upper_material,</if>
<if test="customAttr != null">custom_attr,</if>
<if test="version != null">version,</if>
<if test="delFlag != null">del_flag,</if>
@ -120,14 +120,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="shoeAccessories != null">#{shoeAccessories},</if>
<if test="toeCap != null">#{toeCap},</if>
<if test="edgeBinding != null">#{edgeBinding},</if>
<if test="mid-outsole != null">#{mid-outsole},</if>
<if test="platform-sole != null">#{platform-sole},</if>
<if test="midsole-factory-code != null">#{midsole-factory-code},</if>
<if test="outsole-factory-code != null">#{outsole-factory-code},</if>
<if test="heel-factory-code != null">#{heel-factory-code},</if>
<if test="mid_outsole != null">#{mid_outsole},</if>
<if test="platform_sole != null">#{platform_sole},</if>
<if test="midsole_factory_code != null">#{midsole_factory_code},</if>
<if test="outsole_factory_code != null">#{outsole_factory_code},</if>
<if test="heel_factory_code != null">#{heel_factory_code},</if>
<if test="components != null">#{components},</if>
<if test="second-sole-material != null">#{second-sole-material},</if>
<if test="second-upper-material != null">#{second-upper-material},</if>
<if test="second_sole_material != null">#{second_sole_material},</if>
<if test="second_upper_material != null">#{second_upper_material},</if>
<if test="customAttr != null">#{customAttr},</if>
<if test="version != null">#{version},</if>
<if test="delFlag != null">#{delFlag},</if>
@ -154,14 +154,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="shoeAccessories != null">shoe_accessories = #{shoeAccessories},</if>
<if test="toeCap != null">toe_cap = #{toeCap},</if>
<if test="edgeBinding != null">edge_binding = #{edgeBinding},</if>
<if test="mid-outsole != null">mid-outsole = #{mid-outsole},</if>
<if test="platform-sole != null">platform-sole = #{platform-sole},</if>
<if test="midsole-factory-code != null">midsole-factory-code = #{midsole-factory-code},</if>
<if test="outsole-factory-code != null">outsole-factory-code = #{outsole-factory-code},</if>
<if test="heel-factory-code != null">heel-factory-code = #{heel-factory-code},</if>
<if test="mid_outsole != null">mid_outsole = #{mid_outsole},</if>
<if test="platform_sole != null">platform_sole = #{platform_sole},</if>
<if test="midsole_factory_code != null">midsole_factory_code = #{midsole_factory_code},</if>
<if test="outsole_factory_code != null">outsole_factory_code = #{outsole_factory_code},</if>
<if test="heel_factory_code != null">heel_factory_code = #{heel_factory_code},</if>
<if test="components != null">components = #{components},</if>
<if test="second-sole-material != null">second-sole-material = #{second-sole-material},</if>
<if test="second-upper-material != null">second-upper-material = #{second-upper-material},</if>
<if test="second_sole_material != null">second_sole_material = #{second_sole_material},</if>
<if test="second_upper_material != null">second_upper_material = #{second_upper_material},</if>
<if test="customAttr != null">custom_attr = #{customAttr},</if>
<if test="version != null">version = #{version},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
@ -183,4 +183,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{storeProdProcessId}
</foreach>
</delete>
<update id="updateDelFlagByStoreProdId" parameterType="Long">
UPDATE store_product_process SET del_flag = 2 WHERE store_prod_id = #{storeProdId}
</update>
<select id="selectByStoreProdId" parameterType="Long" resultMap="StoreProductProcessResult">
<include refid="selectStoreProductProcessVo"/>
WHERE
del_flag = 0 AND store_prod_id = #{storeProdId}
</select>
</mapper>