diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java index 113f9f7f..df4a6df0 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/ProductModelController.java @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.admin.controller; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.nflg.mobilebroken.common.constant.PublishState; import com.nflg.mobilebroken.common.constant.STATE; @@ -11,6 +12,7 @@ import com.nflg.mobilebroken.common.pojo.dto.ProductModelParamsExcelDTO; import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.*; import com.nflg.mobilebroken.common.util.EecExcelUtil; +import com.nflg.mobilebroken.common.util.PageUtil; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.*; import com.nflg.mobilebroken.repository.service.*; @@ -21,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.IOException; import java.util.*; @@ -273,6 +276,24 @@ public class ProductModelController extends ControllerBase{ return ApiResult.success(request.getModelParamsId()); } + /** + * 删除设备技术参数指标 + * @param request 请求参数 + * @return 机型参数id + */ + @PostMapping("/deleteParamsIndexName") + public ApiResult deleteParamsIndexName(@Valid @RequestBody ParamsIndexNameDeleteRequest request) { + ProductModelParams info = productModelParamsService.getById(request.getModelParamsId()); + VUtils.trueThrowBusinessError(Objects.isNull(info)).throwMessage("无效的数据"); + if (Objects.equals(info.getState(), PublishState.Published.getState())) { + Integer oldId = request.getModelParamsId(); + request.setModelParamsId(productModelParamsService.add(info.getModelId())); + productModelParamsService.copyItems(oldId, request.getModelParamsId()); + } + productModelParamsItemService.deleteIndexName(request); + return ApiResult.success(request.getModelParamsId()); + } + /** * 添加设备技术参数项 * @param request 请求参数 @@ -596,7 +617,7 @@ public class ProductModelController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/addFile") - public ApiResult addFile(@Valid @RequestBody ProductModelFileAddRequest request){ + public ApiResult addFile(@Valid @RequestBody @NotEmpty ProductModelFileAddRequest request){ productModelFileService.add(request); return ApiResult.success(); } @@ -646,17 +667,41 @@ public class ProductModelController extends ControllerBase{ * @param request 请求参数 */ @PostMapping("/getFileList") - public ApiResult> getFileList(@Valid @RequestBody ProductModelImageSearchRequest request){ - return ApiResult.success(productModelFileService.getList(request)); + public ApiResult> getFileList(@Valid @RequestBody ProductModelImageSearchRequest request){ + return ApiResult.success(PageUtil.convert(productModelFileService.getList(request), d -> { + ProductModelFileVO vo=Convert.convert(ProductModelFileVO.class, d); + vo.setLanguages(Convert.toList(ProductModelFileItemAddRequest.class,productModelFileService.getLanguages(vo.getId()))); + return vo; + })); + } + +// /** +// * 获取资料详情 +// * @param modelFileId 视频ID +// */ +// @GetMapping("/getFileInfo") +// public ApiResult getFileInfo(@RequestParam Integer modelFileId){ +// return ApiResult.success(productModelFileService.getInfo(modelFileId)); +// } + + /** + * 获取机型资料默认文件 + * @param modelId 机型ID + * @return 配置信息 + */ + @GetMapping("/getFileDefaultCondig") + public ApiResult> getFileDefaultCondig(@Valid @RequestParam @NotNull Integer modelId){ + return ApiResult.success(productModelFileService.getDefaultConfig(modelId)); } /** - * 获取资料详情 - * @param modelFileId 视频ID + * 设置机型资料默认文件 + * @param request 配置信息 */ - @GetMapping("/getFileInfo") - public ApiResult getFileInfo(@RequestParam Integer modelFileId){ - return ApiResult.success(productModelFileService.getInfo(modelFileId)); + @PostMapping("/setFileDefaultCondig") + public ApiResult setFileDefaultCondig(@Valid @RequestBody FileDefaultConfigRequest request){ + productModelFileService.setFileDefaultCondig(request); + return ApiResult.success(); } /** diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigItemRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigItemRequest.java new file mode 100644 index 00000000..23165886 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigItemRequest.java @@ -0,0 +1,20 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class FileDefaultConfigItemRequest { + + /** + * 语言编码 + */ + @NotBlank + private String languageCode; + + /** + * 文件项ID + */ + private Integer fileItemId; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java new file mode 100644 index 00000000..93ff1a5b --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/FileDefaultConfigRequest.java @@ -0,0 +1,23 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class FileDefaultConfigRequest { + + /** + * 机型ID + */ + @NotNull + private Integer modelId; + + /** + * 配置项 + */ + @NotEmpty + private List items; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ParamsIndexNameDeleteRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ParamsIndexNameDeleteRequest.java new file mode 100644 index 00000000..d20d3ada --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ParamsIndexNameDeleteRequest.java @@ -0,0 +1,28 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class ParamsIndexNameDeleteRequest { + + /** + * 机型参数id + */ + @NotNull + private Integer modelParamsId; + + /** + * 语言代码 + */ + @NotBlank + private String languageCode; + + /** + * 指标名称 + */ + @NotBlank + private String indexName; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileAddRequest.java index aa05de12..5c6428b3 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileAddRequest.java @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; +import org.apache.commons.io.FilenameUtils; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -21,13 +22,32 @@ public class ProductModelFileAddRequest { @NotBlank private String name; + /** + * 文件路径 + */ + @NotBlank + private String url; + + /** + * 文件大小 + */ + private Integer size; + + /** + * 文件类型 + */ + private String type; + /** + * 多语言数据 + */ + private List items; + /** * 排序 */ private Integer sort; - /** - * 项 - */ - private List items; -} + public String getType() { + return "." + FilenameUtils.getExtension(name); + } +} \ No newline at end of file diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileItemAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileItemAddRequest.java new file mode 100644 index 00000000..e6a7e2b0 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileItemAddRequest.java @@ -0,0 +1,19 @@ +package com.nflg.mobilebroken.common.pojo.request; + +import lombok.Data; + +@Data +public class ProductModelFileItemAddRequest { + + private Integer id; + + /** + * 语言编码 + */ + private String languageCode; + + /** + * 文件名 + */ + private String name; +} \ No newline at end of file diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileUpdateRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileUpdateRequest.java index d68aaa83..af9c05b5 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileUpdateRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/ProductModelFileUpdateRequest.java @@ -3,10 +3,16 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; import javax.validation.constraints.NotNull; +import java.util.List; @Data -public class ProductModelFileUpdateRequest extends ProductModelFileAddRequest{ +public class ProductModelFileUpdateRequest{ @NotNull private Integer id; -} + + /** + * 多语言数据 + */ + private List items; +} \ No newline at end of file diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FileDefaultConfigItemVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FileDefaultConfigItemVO.java new file mode 100644 index 00000000..cf9840ea --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FileDefaultConfigItemVO.java @@ -0,0 +1,21 @@ +package com.nflg.mobilebroken.common.pojo.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class FileDefaultConfigItemVO { + + private Integer id; + + /** + * 文件名称 + */ + private String name; + + /** + * 是否是当前的选择项 + */ + private Boolean selected; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FileDefaultConfigVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FileDefaultConfigVO.java new file mode 100644 index 00000000..c80acc2d --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/FileDefaultConfigVO.java @@ -0,0 +1,26 @@ +package com.nflg.mobilebroken.common.pojo.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors(chain = true) +public class FileDefaultConfigVO { + + /** + * 语言编码 + */ + private String languageCode; + + /** + * 语言名称 + */ + private String languageName; + + /** + * 语言项 + */ + private List items; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelFileVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelFileVO.java new file mode 100644 index 00000000..1eb6972b --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelFileVO.java @@ -0,0 +1,96 @@ +package com.nflg.mobilebroken.common.pojo.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.nflg.mobilebroken.common.pojo.request.ProductModelFileItemAddRequest; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class ProductModelFileVO { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 产品机型id + */ + private Integer modelId; + + /** + * 文件名称 + */ + private String name; + + /** + * 文件后缀 + */ + private String type; + + /** + * 下载地址 + */ + private String url; + + /** + * 文件大小,单位KB + */ + private Integer size; + + /** + * 排序 + */ + private Integer sort; + + /** + * 是否启用 + */ + private Boolean enable; + + /** + * 是否显示在列表 + */ + private Boolean showInList; + + /** + * 发布状态,0:未发布;1-已发布,2-已废弃 + */ + private Integer state; + + /** + * 发布人 + */ + private String publishBy; + + /** + * 发布时间 + */ + private LocalDateTime publishTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private LocalDateTime updateTime; + + /** + * 适用语种 + */ + private List languages; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java index bb300923..5db02ec6 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelVO.java @@ -32,7 +32,7 @@ public class ProductModelVO { private List params; /** - * 文件列表 + * 文件 */ - private List files; + private ProductFileVO file; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFile.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFile.java index 9aced612..a6eccf54 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFile.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFile.java @@ -3,12 +3,13 @@ package com.nflg.mobilebroken.repository.entity; 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; +import java.io.Serializable; +import java.time.LocalDateTime; + /** *

* 产品中心-产品机型-文件 @@ -38,6 +39,21 @@ public class ProductModelFile implements Serializable { */ private String name; + /** + * 文件后缀 + */ + private String type; + + /** + * 下载地址 + */ + private String url; + + /** + * 文件大小,单位KB + */ + private Integer size; + /** * 排序 */ diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java index a9a8d43e..38381ca9 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/ProductModelFileItem.java @@ -3,11 +3,12 @@ package com.nflg.mobilebroken.repository.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import java.io.Serializable; + /** *

* 产品中心-产品机型-文件 @@ -27,6 +28,11 @@ public class ProductModelFileItem implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; + /** + * 产品机型id + */ + private Integer modelId; + /** * 产品机型id */ @@ -43,17 +49,7 @@ public class ProductModelFileItem implements Serializable { private String name; /** - * 文件后缀 + * 是否显示在列表 */ - private String type; - - /** - * 下载地址 - */ - private String url; - - /** - * 文件大小,单位KB - */ - private Integer size; + private Boolean showInList; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductModelFileMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductModelFileMapper.java index 56a464e4..4d63274e 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductModelFileMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/ProductModelFileMapper.java @@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.mobilebroken.common.pojo.vo.ProductFileVO; import com.nflg.mobilebroken.repository.entity.ProductModelFile; -import java.util.List; - /** *

* 产品中心-产品机型-文件 Mapper 接口 @@ -16,7 +14,7 @@ import java.util.List; */ public interface ProductModelFileMapper extends BaseMapper { - List getListByLanguage(Integer modelId, String language); + ProductFileVO getListByLanguage(Integer modelId, String language); void copyItems(Integer oldId, Integer newId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java index 7c812468..bdc044f4 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileItemService.java @@ -1,8 +1,9 @@ package com.nflg.mobilebroken.repository.service; -import com.nflg.mobilebroken.common.pojo.request.ProductFileAddRequest; -import com.nflg.mobilebroken.repository.entity.ProductModelFileItem; import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.mobilebroken.common.pojo.request.FileDefaultConfigRequest; +import com.nflg.mobilebroken.common.pojo.request.ProductModelFileItemAddRequest; +import com.nflg.mobilebroken.repository.entity.ProductModelFileItem; import java.util.List; @@ -16,9 +17,9 @@ import java.util.List; */ public interface IProductModelFileItemService extends IService { - void add(Integer id, List items); + void add(Integer modelId,Integer id, List items); - void update(List items); + void update(Integer id, List items); - List getInfo(Integer modelFileId); + void setFileDefaultCondig(FileDefaultConfigRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java index 3b8cc99d..e513467a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelFileService.java @@ -3,12 +3,14 @@ package com.nflg.mobilebroken.repository.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.request.*; +import com.nflg.mobilebroken.common.pojo.vo.FileDefaultConfigVO; import com.nflg.mobilebroken.common.pojo.vo.ProductFileVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductModelFileInfoVO; import com.nflg.mobilebroken.repository.entity.ProductModelFile; +import com.nflg.mobilebroken.repository.entity.ProductModelFileItem; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -33,9 +35,7 @@ public interface IProductModelFileService extends IService { IPage getList(@Valid ProductModelImageSearchRequest request); - ProductModelFileInfoVO getInfo(Integer modelFileId); - - List getListByLanguage(Integer modelId, String language); + ProductFileVO getDefaultByLanguage(Integer modelId, String language); void deleteByModel(@NotEmpty List ids); @@ -44,4 +44,10 @@ public interface IProductModelFileService extends IService { void saveSort(@NotEmpty List ids); void copyItems(Integer oldId, Integer newId); + + List getLanguages(Integer id); + + List getDefaultConfig(@Valid @NotNull Integer modelId); + + void setFileDefaultCondig(@Valid FileDefaultConfigRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelParamsItemService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelParamsItemService.java index 127476f5..57157214 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelParamsItemService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IProductModelParamsItemService.java @@ -43,4 +43,6 @@ public interface IProductModelParamsItemService extends IService datas); void updateItem(@Valid ProductModelParamsItemUpdateRequest1 request); + + void deleteIndexName(@Valid ParamsIndexNameDeleteRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java index 36f97b47..80b24969 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileItemServiceImpl.java @@ -1,14 +1,18 @@ package com.nflg.mobilebroken.repository.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.nflg.mobilebroken.common.pojo.request.ProductFileAddRequest; +import com.nflg.mobilebroken.common.pojo.request.FileDefaultConfigRequest; +import com.nflg.mobilebroken.common.pojo.request.ProductModelFileItemAddRequest; import com.nflg.mobilebroken.repository.entity.ProductModelFileItem; import com.nflg.mobilebroken.repository.mapper.ProductModelFileItemMapper; import com.nflg.mobilebroken.repository.service.IProductModelFileItemService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -25,54 +29,53 @@ public class ProductModelFileItemServiceImpl extends ServiceImpl items) { + public void add(Integer modelId,Integer id, List items) { if (CollectionUtil.isNotEmpty(items)){ - saveBatch( - items.stream() - .map(it -> new ProductModelFileItem() - .setModelFileId(id) - .setLanguageCode(it.getLanguageCode()) - .setName(it.getName()) - .setType(it.getType()) - .setUrl(it.getUrl()) - .setSize(it.getSize()) - ) - .collect(Collectors.toList()) - ); + List forAdd = new ArrayList<>(); + items.forEach(item -> { + if (StrUtil.isNotBlank(item.getName())) { + forAdd.add(new ProductModelFileItem() + .setModelId(modelId) + .setModelFileId(id) + .setLanguageCode(item.getLanguageCode()) + .setName(item.getName())); + } + }); + if (CollectionUtil.isNotEmpty(forAdd)) { + saveBatch(forAdd); + } } } @Transactional @Override - public void update(List items) { - if (CollectionUtil.isNotEmpty(items)){ - updateBatchById( - items.stream() - .map(it -> new ProductModelFileItem() - .setId(it.getId()) - .setName(it.getName()) - .setType(it.getType()) - .setUrl(it.getUrl()) - .setSize(it.getSize()) - ) - .collect(Collectors.toList()) - ); - } + public void update(Integer id, List items) { + remove(new LambdaQueryWrapper() + .eq(ProductModelFileItem::getModelFileId, id) + .notIn(ProductModelFileItem::getId, items.stream().map(ProductModelFileItemAddRequest::getId).collect(Collectors.toList())) + ); + saveOrUpdateBatch( + items.stream() + .map(item -> new ProductModelFileItem() + .setId(item.getId()) + .setName(item.getName()) + .setLanguageCode(item.getLanguageCode())) + .collect(Collectors.toList()) + ); } + @Transactional @Override - public List getInfo(Integer modelFileId) { - return lambdaQuery() - .eq(ProductModelFileItem::getModelFileId,modelFileId) - .list().stream() - .map(it -> new ProductFileAddRequest() - .setId(it.getId()) - .setLanguageCode(it.getLanguageCode()) - .setName(it.getName()) - .setType(it.getType()) - .setUrl(it.getUrl()) - .setSize(it.getSize()) - ) - .collect(Collectors.toList()); + public void setFileDefaultCondig(FileDefaultConfigRequest request) { + lambdaUpdate() + .set(ProductModelFileItem::getShowInList, false) + .eq(ProductModelFileItem::getModelId, request.getModelId()) + .update(); + request.getItems().forEach(item -> { + lambdaUpdate() + .set(ProductModelFileItem::getShowInList, true) + .eq(ProductModelFileItem::getId, item.getFileItemId()) + .update(); + }); } -} +} \ No newline at end of file diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java index 559945ee..7428660e 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelFileServiceImpl.java @@ -5,14 +5,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.pojo.vo.FileDefaultConfigItemVO; import com.nflg.mobilebroken.common.constant.PublishState; import com.nflg.mobilebroken.common.pojo.request.*; +import com.nflg.mobilebroken.common.pojo.vo.FileDefaultConfigVO; import com.nflg.mobilebroken.common.pojo.vo.ProductFileVO; -import com.nflg.mobilebroken.common.pojo.vo.ProductModelFileInfoVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.Language; import com.nflg.mobilebroken.repository.entity.ProductModelFile; +import com.nflg.mobilebroken.repository.entity.ProductModelFileItem; import com.nflg.mobilebroken.repository.mapper.ProductModelFileMapper; +import com.nflg.mobilebroken.repository.service.ILanguageService; import com.nflg.mobilebroken.repository.service.IProductModelFileItemService; import com.nflg.mobilebroken.repository.service.IProductModelFileService; import org.springframework.stereotype.Service; @@ -22,7 +26,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -38,17 +44,23 @@ public class ProductModelFileServiceImpl extends ServiceImpl getListByLanguage(Integer modelId, String language) { + public ProductFileVO getDefaultByLanguage(Integer modelId, String language) { return baseMapper.getListByLanguage(modelId,language); } @@ -199,4 +194,41 @@ public class ProductModelFileServiceImpl extends ServiceImpl getLanguages(Integer id) { + return productModelFileItemService.lambdaQuery() + .eq(ProductModelFileItem::getModelFileId, id) + .list(); + } + + @Override + public List getDefaultConfig(Integer modelId) { + List languages = languageService.getAllLanguages(); + List list = productModelFileItemService.lambdaQuery() + .eq(ProductModelFileItem::getModelFileId, modelId) + .orderByAsc(ProductModelFileItem::getLanguageCode) + .orderByDesc(ProductModelFileItem::getShowInList) + .list(); + List vos=new ArrayList<>(); + Map> maps=list.stream().collect(Collectors.groupingBy(ProductModelFileItem::getLanguageCode)); + maps.forEach((languageCode,data)->{ + FileDefaultConfigVO vo=new FileDefaultConfigVO() + .setLanguageCode(languageCode) + .setLanguageName(languages.stream().filter(lang->lang.getCode().equals(languageCode)).findFirst().get().getName()) + .setItems(data.stream().map(item->new FileDefaultConfigItemVO() + .setId(item.getId()) + .setName(item.getName()) + .setSelected(item.getShowInList())) + .collect(Collectors.toList()) + ); + vos.add(vo); + }); + return vos; + } + + @Override + public void setFileDefaultCondig(FileDefaultConfigRequest request) { + productModelFileItemService.setFileDefaultCondig(request); + } +} \ No newline at end of file diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelHotimageServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelHotimageServiceImpl.java index 0a5a1863..ae0136cb 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelHotimageServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelHotimageServiceImpl.java @@ -32,6 +32,7 @@ public class ProductModelHotimageServiceImpl extends ServiceImpl> maps = datas.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getLanguageCode)); List vos = new ArrayList<>(); maps.forEach((languageCode, data) -> { + ProductModelParamsItemVO vo = new ProductModelParamsItemVO() + .setLanguageCode(languageCode); Map> itemMap = data.stream().collect(Collectors.groupingBy(ProductModelParamsItem::getIndexName)); itemMap.forEach((indexName, itemData) -> { - ProductModelParamsItemVO vo = new ProductModelParamsItemVO() - .setLanguageCode(languageCode) - .setItems(data.stream().map(it -> new ProductModelMainParamsItemChildrenVO() + vo.setItems(data.stream().map(it -> new ProductModelMainParamsItemChildrenVO() .setIndexName(indexName) .setItems(itemData.stream() .filter(pi->StrUtil.isNotBlank(pi.getName())) @@ -254,4 +254,12 @@ public class ProductModelParamsItemServiceImpl extends ServiceImpl() + .eq(ProductModelParamsItem::getModelParamsId, request.getModelParamsId()) + .eq(ProductModelParamsItem::getLanguageCode, request.getLanguageCode()) + .eq(ProductModelParamsItem::getIndexName, request.getIndexName())); + } } \ No newline at end of file diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java index e50856aa..02717d66 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/ProductModelServiceImpl.java @@ -153,7 +153,7 @@ public class ProductModelServiceImpl extends ServiceImpl -