From 5ac59b481977a280aa9f976fede48373c56fa8df Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Sat, 29 Mar 2025 11:44:26 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E6=A1=A3=E5=8F=A3=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=88=86=E9=A1=B5=E6=95=B0=E6=8D=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/StoreProductController.java | 19 ++-- .../xkt/vo/storeProd/StoreProdPageVO.java | 5 + .../xkt/vo/storeProd/StoreProdResVO.java | 3 + .../xkt/vo/storeProd/StoreProdVO.java | 3 + .../storeProdProcess/StoreProdProcessVO.java | 61 ++++++++++++ .../core/controller/XktBaseController.java | 7 +- .../ruoyi/common/core/page/TableDataInfo.java | 93 +++++++++++++------ .../web/service/SysLoginService.java | 4 +- .../ruoyi/xkt/domain/StoreProductColor.java | 6 ++ .../ruoyi/xkt/domain/StoreProductProcess.java | 4 +- .../storeProdProcess/StoreProdProcessDTO.java | 61 ++++++++++++ .../xkt/dto/storeProduct/StoreProdDTO.java | 3 + .../dto/storeProduct/StoreProdPageDTO.java | 4 + .../dto/storeProduct/StoreProdPageResDTO.java | 2 + .../xkt/dto/storeProduct/StoreProdResDTO.java | 5 +- .../storeProductFile/StoreProdMainPicDTO.java | 21 +++++ .../xkt/mapper/StoreProductColorMapper.java | 4 + .../xkt/mapper/StoreProductFileMapper.java | 9 +- .../ruoyi/xkt/mapper/StoreProductMapper.java | 2 +- .../xkt/mapper/StoreProductProcessMapper.java | 4 + .../service/impl/StoreProductServiceImpl.java | 27 +++++- .../mapper/StoreProductColorMapper.xml | 25 ++++- .../mapper/StoreProductFileMapper.xml | 2 +- .../resources/mapper/StoreProductMapper.xml | 24 +---- .../mapper/StoreProductProcessMapper.xml | 83 ++++++++++------- 25 files changed, 365 insertions(+), 116 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessVO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeProductFile/StoreProdMainPicDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java index 507dc5c5a..c04e52044 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductController.java @@ -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 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)); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java index bd46f0d7c..e3ba9586e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdPageVO.java @@ -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; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java index 2805b20cd..6ea88bb25 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdResVO.java @@ -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; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java index 94f6ea24d..192d74366 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProd/StoreProdVO.java @@ -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; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessVO.java new file mode 100644 index 000000000..4964e0725 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdProcess/StoreProdProcessVO.java @@ -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; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/XktBaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/XktBaseController.java index e5018a604..7208690b0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/XktBaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/XktBaseController.java @@ -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; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java index f0befe7cf..2ddf8659e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java @@ -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; + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 9c546e258..48421a981 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -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); // 用户验证 diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductColor.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductColor.java index 6b84b90a8..a6e4d98c6 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductColor.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductColor.java @@ -39,6 +39,12 @@ public class StoreProductColor extends XktBaseEntity { @Excel(name = "档口商品ID") private Long storeProdId; + /** + * 档口ID + */ + @Excel(name = "档口ID") + private Long storeId; + /** * 颜色名称 */ diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java index 581c28ac3..3b279e915 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreProductProcess.java @@ -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; /** * 配料 diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java new file mode 100644 index 000000000..e16d1d2b5 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdProcess/StoreProdProcessDTO.java @@ -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; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdDTO.java index 76b1f0ade..46e493628 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdDTO.java @@ -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; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java index 153df6d8b..56b927e71 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageDTO.java @@ -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; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java index 7f0cee48f..71e65691f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdPageResDTO.java @@ -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 = "商品货号") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdResDTO.java index 6b7e65c64..e53083467 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProduct/StoreProdResDTO.java @@ -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; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductFile/StoreProdMainPicDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductFile/StoreProdMainPicDTO.java new file mode 100644 index 000000000..b06f58027 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductFile/StoreProdMainPicDTO.java @@ -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; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductColorMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductColorMapper.java index 69d0ebd7e..7e7dfcdf8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductColorMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductColorMapper.java @@ -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 { List selectListByStoreProdId(Long storeProdId); + List selectStoreProdColorPage(StoreProdPageDTO pageDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java index 06eb9a5e3..3ed755413 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductFileMapper.java @@ -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 { List selectListByStoreProdId(Long storeProdId); - // 指定 Map 的 key 字段 - @MapKey("storeProdId") - Map selectMainPicByStoreProdIdList(@Param("storeProdIdList") List storeProdIdList, - @Param("fileType") String fileType, - @Param("orderNum") Integer orderNum); + List selectMainPicByStoreProdIdList(@Param("storeProdIdList") List storeProdIdList, + @Param("fileType") String fileType, + @Param("orderNum") Integer orderNum); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java index 4e9d33e68..5e51ef8ef 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductMapper.java @@ -62,5 +62,5 @@ public interface StoreProductMapper extends BaseMapper { */ public int deleteStoreProductByStoreProdIds(Long[] storeProdIds); - List selectStoreProdPage(StoreProdPageDTO pageDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductProcessMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductProcessMapper.java index 85dc99b8f..258602819 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductProcessMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductProcessMapper.java @@ -59,4 +59,8 @@ public interface StoreProductProcessMapper extends BaseMapper new ServiceException("档口商品不存在!", HttpStatus.ERROR)); + StoreProduct storeProd = Optional.ofNullable(this.storeProdMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreProduct::getStoreProdId, storeProdId).eq(StoreProduct::getDelFlag, "0"))) + .orElseThrow(() -> new ServiceException("档口商品不存在!", HttpStatus.ERROR)); StoreProdResDTO storeProdResDTO = BeanUtil.toBean(storeProd, StoreProdResDTO.class); // 档口文件(商品主图、主图视频、下载的商品详情) List 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 selectPage(StoreProdPageDTO pageDTO) { // 调用Mapper方法查询商店产品分页信息 - List page = storeProdMapper.selectStoreProdPage(pageDTO); + List page = storeProdColorMapper.selectStoreProdColorPage(pageDTO); // 如果查询结果为空,则直接返回空列表 if (CollectionUtils.isEmpty(page)) { return new ArrayList<>(); @@ -111,11 +119,13 @@ public class StoreProductServiceImpl implements IStoreProductService { // 提取查询结果中的商店产品ID列表 List storeProdIdList = page.stream().map(StoreProdPageResDTO::getStoreProdId).collect(Collectors.toList()); // 查找排名第一个商品主图列表 - Map mainPicMap = this.storeProdFileMapper.selectMainPicByStoreProdIdList(storeProdIdList, "MAIN_PIC", 1); + List mainPicList = this.storeProdFileMapper.selectMainPicByStoreProdIdList(storeProdIdList, "MAIN_PIC", 1); + Map mainPicMap = CollectionUtils.isEmpty(mainPicList) ? new HashMap<>() : mainPicList.stream() + .collect(Collectors.toMap(StoreProdMainPicDTO::getStoreProdId, StoreProdMainPicDTO::getFileUrl)); // 查找档口商品的标准尺码 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().in(StoreProductColorSize::getStoreProdId, storeProdIdList) + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().in(StoreProductColorSize::getStoreProdId, storeProdIdList) .eq(StoreProductColorSize::getDelFlag, "0").eq(StoreProductColorSize::getStandard, "1"); - List standardSizeList = this.storeProdColorPriceMapper.selectList(queryWrapper); + List standardSizeList = this.storeProdColorSizeMapper.selectList(queryWrapper); // 将标准尺码列表转换为映射,以便后续处理 Map> 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); } diff --git a/xkt/src/main/resources/mapper/StoreProductColorMapper.xml b/xkt/src/main/resources/mapper/StoreProductColorMapper.xml index bac1a29b9..ed20309a8 100644 --- a/xkt/src/main/resources/mapper/StoreProductColorMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductColorMapper.xml @@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -18,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 + + \ No newline at end of file diff --git a/xkt/src/main/resources/mapper/StoreProductFileMapper.xml b/xkt/src/main/resources/mapper/StoreProductFileMapper.xml index bdc561052..74bcef062 100644 --- a/xkt/src/main/resources/mapper/StoreProductFileMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductFileMapper.xml @@ -133,7 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE spf.del_flag = 0 AND spf.store_prod_id = #{storeProdId} - SELECT spf.store_prod_id AS storeProdId, sf.file_url AS fileUrl diff --git a/xkt/src/main/resources/mapper/StoreProductMapper.xml b/xkt/src/main/resources/mapper/StoreProductMapper.xml index 71d7016b6..8233d4170 100644 --- a/xkt/src/main/resources/mapper/StoreProductMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductMapper.xml @@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -29,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - 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 - - and sp.prod_art_num like concat('%', #{prodArtNum}, '%') - and sp.prod_cate_id = #{prodCateId} - - - \ No newline at end of file diff --git a/xkt/src/main/resources/mapper/StoreProductProcessMapper.xml b/xkt/src/main/resources/mapper/StoreProductProcessMapper.xml index aa83d2dbb..73f93fa94 100644 --- a/xkt/src/main/resources/mapper/StoreProductProcessMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductProcessMapper.xml @@ -19,14 +19,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - + + + + + - - + + @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 + + WHERE + del_flag = 0 AND store_prod_id = #{storeProdId} + + \ No newline at end of file