diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductPartController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductPartController.java index 73c90119..7b2edd30 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductPartController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductPartController.java @@ -1,11 +1,8 @@ package com.nflg.mobilebroken.admin.controller; -import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; -import com.nflg.mobilebroken.common.pojo.request.ProductPartAddRequest; -import com.nflg.mobilebroken.common.pojo.request.ProductPartSearchRequest; -import com.nflg.mobilebroken.common.pojo.request.ProductPartUpdateRequest; +import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO; import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO; import com.nflg.mobilebroken.repository.service.IProductPartService; @@ -47,6 +44,36 @@ public class ProductPartController extends ControllerBase { return ApiResult.success(); } + /** + * 启用/禁用部件 + * @param request 请求参数 + */ + @PostMapping("/enable") + public ApiResult enable(@Valid @RequestBody EnableRequest request){ + productPartService.enable(request); + return ApiResult.success(); + } + + /** + * 删除部件 + * @param request 请求参数 + */ + @PostMapping("/delete") + public ApiResult delete(@Valid @RequestBody BatchDeleteRequest request){ + productPartService.delete(request); + return ApiResult.success(); + } + + /** + * 发布或者取消发布部件 + * @param request 请求参数 + */ + @PostMapping("/publish") + public ApiResult publish(@Valid @RequestBody ProductPublishRequest request){ + productPartService.publish(request); + return ApiResult.success(); + } + /** * 获取部件列表 * @param request 请求参数 @@ -62,6 +89,6 @@ public class ProductPartController extends ControllerBase { */ @GetMapping("/getInfo") public ApiResult getModelInfo(@Valid @RequestParam @NotNull Integer partId) { - return ApiResult.success(productPartService.getInfo(partId, Constant.DEFAULT_LANGUAGE_CODE)); + return ApiResult.success(productPartService.getInfo(partId)); } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartAddRequest.java index 3e5ac650..43e92ab4 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartAddRequest.java @@ -2,23 +2,29 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import java.util.List; @Data public class ProductPartAddRequest { /** - * 物料变化 + * 物料编号 */ + @NotBlank private String materialNo; + /** + * 类别属性,字典项id + */ + @NotNull + private Integer attrId; + /** * 多语言数据 */ + @NotEmpty private List items; - - /** - * 参数 - */ - private List params; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartInfoAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartInfoAddRequest.java index ddb5f576..6adbc9e4 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartInfoAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartInfoAddRequest.java @@ -31,7 +31,17 @@ public class ProductPartInfoAddRequest { private String desc; /** - * 视频或者图片地址 + * 图片地址 */ - private String url; + private String image; + + /** + * 视频地址 + */ + private String video; + + /** + * 类型,0-视频;1:图片 + */ + private Integer type; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartSearchRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartSearchRequest.java index a9141cdb..fbf13277 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartSearchRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductPartSearchRequest.java @@ -7,11 +7,31 @@ import java.time.LocalDate; @Data public class ProductPartSearchRequest extends PageRequest { + /** + * 物料编号 + */ + private String materialNo; + /** * 名称 */ private String name; + /** + * 类别属性,字典项id + */ + private Integer attrId; + + /** + * 是否启用 + */ + private Boolean enable; + + /** + * 发布状态,0:未发布;1-已发布,2-已废弃 + */ + private Integer state; + /** * 起始时间 */ diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartInfoVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartInfoVO.java index 5c47d694..93ebf809 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartInfoVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartInfoVO.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.common.pojo.vo; +import com.nflg.mobilebroken.common.pojo.request.ProductPartInfoAddRequest; import lombok.Data; import java.util.List; @@ -20,17 +21,17 @@ public class ProductPartInfoVO { private String materialNo; /** - * 描述 + * 类别属性,字典项id */ - private String desc; + private Integer attrId; /** - * 图片 + * 类别属性 */ - private String url; + private Integer attrName; /** - * 参数 + * 项 */ - private List params; + private List items; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartSearchVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartSearchVO.java index 99b5d215..2b49e291 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartSearchVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductPartSearchVO.java @@ -19,6 +19,36 @@ public class ProductPartSearchVO { */ private String materialNo; + /** + * 类别属性,字典项id + */ + private Integer attrId; + + /** + * 类别属性 + */ + private Integer attrName; + + /** + * 是否启用 + */ + private Boolean enable; + + /** + * 发布状态,0:未发布;1-已发布,2-已废弃 + */ + private Integer state; + + /** + * 发布人 + */ + private String publishBy; + + /** + * 发布时间 + */ + private LocalDateTime publishTime; + /** * 创建人 */ diff --git a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java index b3d2e0b0..0ce3326b 100644 --- a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java +++ b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java @@ -72,14 +72,14 @@ public class DataController extends BaseController{ return ApiResult.success(productModelService.get(typeId,MultilingualUtil.getLanguage())); } - /** - * 获取产品机型详情 - * @param modelId 产品机型id - */ - @GetMapping("/getModelInfo") - public ApiResult getModelInfo(@Valid @RequestParam @NotNull Integer modelId){ - return ApiResult.success(productModelService.getInfo(modelId,MultilingualUtil.getLanguage())); - } +// /** +// * 获取产品机型详情 +// * @param modelId 产品机型id +// */ +// @GetMapping("/getModelInfo") +// public ApiResult getModelInfo(@Valid @RequestParam @NotNull Integer modelId){ +// return ApiResult.success(productModelService.getInfo(modelId,MultilingualUtil.getLanguage())); +// } /** * 获取产品机型参数列表 diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPart.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPart.java index bdacb64e..4758064a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPart.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPart.java @@ -33,6 +33,36 @@ public class ProductPart implements Serializable { */ private String materialNo; + /** + * 名称 + */ + private String name; + + /** + * 类别属性,字典项id + */ + private Integer attrId; + + /** + * 是否启用 + */ + private Boolean enable; + + /** + * 发布状态,0:未发布;1-已发布,2-已废弃 + */ + private Integer state; + + /** + * 发布人 + */ + private String publishBy; + + /** + * 发布时间 + */ + private LocalDateTime publishTime; + /** * 创建人 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPartInfo.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPartInfo.java index 47f47698..5fc19dee 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPartInfo.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductPartInfo.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; -import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -43,33 +42,23 @@ public class ProductPartInfo implements Serializable { */ private String name; + /** + * 类型,0-视频;1:图片 + */ + private Integer type; + + /** + * 图片地址 + */ + private String image; + + /** + * 视频地址 + */ + private String video; + /** * 部件介绍 */ private String desc; - - /** - * 视频或者图片地址 - */ - private String url; - - /** - * 创建人 - */ - private String createBy; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - /** - * 更新人 - */ - private String updateBy; - - /** - * 更新时间 - */ - private LocalDateTime updateTime; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartInfoMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartInfoMapper.java index 389db4a9..a8367cf7 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartInfoMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartInfoMapper.java @@ -1,8 +1,11 @@ package com.nflg.mobilebroken.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.mobilebroken.common.pojo.request.ProductPartInfoAddRequest; import com.nflg.mobilebroken.repository.entity.ProductPartInfo; +import java.util.List; + /** *

* 产品中心-部件详情 Mapper 接口 @@ -13,4 +16,5 @@ import com.nflg.mobilebroken.repository.entity.ProductPartInfo; */ public interface ProductPartInfoMapper extends BaseMapper { + List getInfo(Integer partId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartMapper.java index d1f10818..b8d910e6 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductPartMapper.java @@ -20,5 +20,5 @@ public interface ProductPartMapper extends BaseMapper { PageData getList(ProductPartSearchRequest request, Page page); - ProductPartInfoVO getInfo(Integer partId, String language); + ProductPartInfoVO getInfo(Integer partId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartInfoService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartInfoService.java index 5ce86dc0..419d1a0f 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartInfoService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartInfoService.java @@ -3,7 +3,6 @@ package com.nflg.mobilebroken.repository.service; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.request.ProductPartInfoAddRequest; import com.nflg.mobilebroken.repository.entity.ProductPartInfo; -import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -19,6 +18,7 @@ public interface IProductPartInfoService extends IService { void add(Integer partId, List items); - @Transactional void update(List items); + + List getInfo(Integer partId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartService.java index 712dfd3d..b215a294 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductPartService.java @@ -2,9 +2,7 @@ package com.nflg.mobilebroken.repository.service; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.PageData; -import com.nflg.mobilebroken.common.pojo.request.ProductPartAddRequest; -import com.nflg.mobilebroken.common.pojo.request.ProductPartSearchRequest; -import com.nflg.mobilebroken.common.pojo.request.ProductPartUpdateRequest; +import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO; import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO; import com.nflg.mobilebroken.repository.entity.ProductPart; @@ -28,5 +26,11 @@ public interface IProductPartService extends IService { PageData getList(ProductPartSearchRequest request); - ProductPartInfoVO getInfo(@Valid @NotNull Integer partId, String language); + ProductPartInfoVO getInfo(@Valid @NotNull Integer partId); + + void enable(@Valid EnableRequest request); + + void delete(@Valid BatchDeleteRequest request); + + void publish(@Valid ProductPublishRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoItemServiceImpl.java index 8a104e1e..4cc330cf 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelVideoItemServiceImpl.java @@ -3,14 +3,12 @@ package com.nflg.mobilebroken.repository.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.request.ProductModelVideoItemAddRequest; -import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.repository.entity.ProductModelVideoItem; import com.nflg.mobilebroken.repository.mapper.ProductModelVideoItemMapper; import com.nflg.mobilebroken.repository.service.IProductModelVideoItemService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; @@ -37,8 +35,6 @@ public class ProductModelVideoItemServiceImpl extends ServiceImpl new ProductPartInfo() .setName(it.getName()) .setDesc(it.getDesc()) - .setUrl(it.getUrl()) - .setUpdateBy(AdminUserUtil.getUserName()) - .setUpdateTime(LocalDateTime.now()) + .setImage(it.getImage()) + .setVideo(it.getVideo()) + .setType(it.getType()) ) .collect(Collectors.toList()) ); } } + + @Override + public List getInfo(Integer partId) { + return baseMapper.getInfo(partId); + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductPartServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductPartServiceImpl.java index 894e4191..928ba160 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductPartServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductPartServiceImpl.java @@ -1,14 +1,16 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.constant.Constant; +import com.nflg.mobilebroken.common.constant.PublishState; import com.nflg.mobilebroken.common.pojo.PageData; -import com.nflg.mobilebroken.common.pojo.request.ProductPartAddRequest; -import com.nflg.mobilebroken.common.pojo.request.ProductPartSearchRequest; -import com.nflg.mobilebroken.common.pojo.request.ProductPartUpdateRequest; +import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.ProductPartInfoVO; import com.nflg.mobilebroken.common.pojo.vo.ProductPartSearchVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.ProductPart; import com.nflg.mobilebroken.repository.mapper.ProductPartMapper; import com.nflg.mobilebroken.repository.service.IProductPartInfoService; @@ -41,25 +43,37 @@ public class ProductPartServiceImpl extends ServiceImpl StrUtil.equals(it.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE)) + .findFirst() + .orElse(null); + VUtils.trueThrowBusinessError(Objects.isNull(cn)).throwMessage("必须包含中文数据"); ProductPart part = new ProductPart() .setMaterialNo(request.getMaterialNo()) + .setName(cn.getName()) + .setAttrId(request.getAttrId()) .setCreateBy(AdminUserUtil.getUserName()) .setCreateTime(LocalDateTime.now()); save(part); productPartInfoService.add(part.getId(), request.getItems()); - productPartParamsService.add(part.getId(), request.getParams()); } @Transactional @Override public void update(ProductPartUpdateRequest request) { + ProductPartInfoAddRequest cn=request.getItems().stream() + .filter(it-> StrUtil.equals(it.getLanguageCode(), Constant.DEFAULT_LANGUAGE_CODE)) + .findFirst() + .orElse(null); + VUtils.trueThrowBusinessError(Objects.isNull(cn)).throwMessage("必须包含中文数据"); lambdaUpdate() .set(ProductPart::getMaterialNo, request.getMaterialNo()) + .set(ProductPart::getAttrId, request.getAttrId()) + .set(ProductPart::getName, cn.getName()) .set(ProductPart::getUpdateBy, AdminUserUtil.getUserName()) .set(ProductPart::getUpdateTime, LocalDateTime.now()) .update(); productPartInfoService.update(request.getItems()); - productPartParamsService.update(request.getParams()); } @Override @@ -68,11 +82,77 @@ public class ProductPartServiceImpl extends ServiceImpl + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductPartMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductPartMapper.xml index 027bfc9f..a84547ce 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/ProductPartMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/ProductPartMapper.xml @@ -3,27 +3,39 @@