From 77d0b151524ab61f2215cc9dbdc731e6865f3f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Tue, 28 May 2024 15:57:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=9A=E5=8A=A1=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bellmann/common/enums/FileUrlEnum.java | 1 + .../bellmann/common/result/ResultCode.java | 4 +- .../controller/DeviceTypeController.java | 9 +- .../controller/DeviceTypeVerController.java | 5 - .../bellmann/controller/DomainController.java | 4 +- .../controller/ServiceController.java | 60 +++++++++ .../controller/Tr069VerController.java | 7 +- .../bellmann/converter/ServiceConverter.java | 8 +- .../com/bellmann/manger/DomainManager.java | 3 - .../bellmann/manger/FileRecordManager.java | 4 +- .../manger/impl/DomainManagerImpl.java | 4 - .../manger/impl/FileRecordManagerImpl.java | 8 +- .../manger/impl/ServiceManagerImpl.java | 1 - .../com/bellmann/mapper/DeviceTypeMapper.java | 3 + .../com/bellmann/mapper/ServiceMapper.java | 6 +- .../entity/{Service.java => Business.java} | 5 +- .../model/form/BindingServiceForm.java | 1 - .../com/bellmann/model/form/BusinessForm.java | 24 ++++ .../com/bellmann/model/vo/BusinessVO.java | 36 +++++ ...{DomainOption.java => TransferOption.java} | 7 +- .../bellmann/service/DeviceTypeService.java | 3 + .../com/bellmann/service/DomainService.java | 4 +- .../com/bellmann/service/ServiceService.java | 22 +++- .../com/bellmann/service/Tr069VerService.java | 4 + .../service/impl/DeviceTypeServiceImpl.java | 17 ++- .../service/impl/DomainServiceImpl.java | 16 +-- .../service/impl/ServiceServiceImpl.java | 124 +++++++++++++++++- .../service/impl/Tr069VerServiceImpl.java | 12 ++ .../resources/mapper/DeviceTypeMapper.xml | 18 +++ src/main/resources/mapper/ServiceMapper.xml | 15 +++ 30 files changed, 387 insertions(+), 48 deletions(-) rename src/main/java/com/bellmann/model/entity/{Service.java => Business.java} (70%) create mode 100644 src/main/java/com/bellmann/model/form/BusinessForm.java create mode 100644 src/main/java/com/bellmann/model/vo/BusinessVO.java rename src/main/java/com/bellmann/model/vo/{DomainOption.java => TransferOption.java} (74%) diff --git a/src/main/java/com/bellmann/common/enums/FileUrlEnum.java b/src/main/java/com/bellmann/common/enums/FileUrlEnum.java index a929782..e529176 100644 --- a/src/main/java/com/bellmann/common/enums/FileUrlEnum.java +++ b/src/main/java/com/bellmann/common/enums/FileUrlEnum.java @@ -8,6 +8,7 @@ public enum FileUrlEnum implements IBaseEnum { CORP_CONF_FILE_URL("1","devtypever/conf/%s/"), TR069_FILE_URL("3","tr069/%s"), + SERVICE_PLUGIN_FILE_URL("4","service/plugin/%s") ; @Getter private String value; diff --git a/src/main/java/com/bellmann/common/result/ResultCode.java b/src/main/java/com/bellmann/common/result/ResultCode.java index fbb45b5..262303f 100644 --- a/src/main/java/com/bellmann/common/result/ResultCode.java +++ b/src/main/java/com/bellmann/common/result/ResultCode.java @@ -95,7 +95,9 @@ public enum ResultCode implements IResultCode, Serializable { DATA_NOT_FOUND("F0006", "查不到数据"), IDS_IS_NULL("F0007", "ids为空"), - DEVICE_TYPE_VER("F008","存在该设备类型的软件版本或设备"), + DEVICE_TYPE_VER("F0008","存在该设备类型的软件版本或设备"), + + TR069_BINDING_SERVICE("F0009","TR069数据模型已经和业务绑定"), ; @Override public String getCode() { diff --git a/src/main/java/com/bellmann/controller/DeviceTypeController.java b/src/main/java/com/bellmann/controller/DeviceTypeController.java index 8b6b1a3..ef7c7c8 100644 --- a/src/main/java/com/bellmann/controller/DeviceTypeController.java +++ b/src/main/java/com/bellmann/controller/DeviceTypeController.java @@ -1,10 +1,10 @@ package com.bellmann.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.model.Option; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; -import com.bellmann.model.form.BindingTr069Form; import com.bellmann.model.query.DeviceTypeQuery; import com.bellmann.model.query.Tr069BindingPageQuery; import com.bellmann.model.vo.DeviceTypePageVO; @@ -82,4 +82,11 @@ public class DeviceTypeController { return PageResult.success(page); } + @PostMapping("/service-binding-dev-type-page/{servId}") + @Operation(summary = "支持该业务的设备类型与设备类型软件版本列表") + public PageResult serviceBindingDevTypePage(@RequestBody BasePageQuery query,@PathVariable Long servId){ + Page page = deviceTypeService.serviceBindingDevTypePage(query,servId); + return PageResult.success(page); + } + } diff --git a/src/main/java/com/bellmann/controller/DeviceTypeVerController.java b/src/main/java/com/bellmann/controller/DeviceTypeVerController.java index 934a40c..a328e1e 100644 --- a/src/main/java/com/bellmann/controller/DeviceTypeVerController.java +++ b/src/main/java/com/bellmann/controller/DeviceTypeVerController.java @@ -10,11 +10,8 @@ import com.bellmann.model.form.VendorProfileForm; import com.bellmann.model.query.DeviceTypeToVerQuery; import com.bellmann.model.vo.DeviceServiceVO; import com.bellmann.model.vo.DeviceTypeToVerVO; -import com.bellmann.model.vo.DomainOption; import com.bellmann.model.vo.FileRecordVO; -import com.bellmann.security.util.SecurityUtils; import com.bellmann.service.DeviceTypeVerService; -import com.bellmann.service.FileRecordService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -23,8 +20,6 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; @Tag(name = "12.设备类型软件接口") @RestController diff --git a/src/main/java/com/bellmann/controller/DomainController.java b/src/main/java/com/bellmann/controller/DomainController.java index edafaf0..6a9084d 100644 --- a/src/main/java/com/bellmann/controller/DomainController.java +++ b/src/main/java/com/bellmann/controller/DomainController.java @@ -4,7 +4,7 @@ import com.bellmann.common.model.Option; import com.bellmann.common.result.Result; import com.bellmann.model.form.DomainForm; import com.bellmann.model.query.DomainQuery; -import com.bellmann.model.vo.DomainOption; +import com.bellmann.model.vo.TransferOption; import com.bellmann.model.vo.DomainVO; import com.bellmann.service.DomainService; import io.swagger.v3.oas.annotations.Operation; @@ -60,7 +60,7 @@ public class DomainController { } @Operation(summary = "获取穿梭框数据") @GetMapping("/transfer-option") - public Result>> transferOption(){ + public Result>> transferOption(){ return domainService.transferOption(); } diff --git a/src/main/java/com/bellmann/controller/ServiceController.java b/src/main/java/com/bellmann/controller/ServiceController.java index cef0a93..063cb4a 100644 --- a/src/main/java/com/bellmann/controller/ServiceController.java +++ b/src/main/java/com/bellmann/controller/ServiceController.java @@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; +import com.bellmann.model.form.BusinessForm; +import com.bellmann.model.form.FileRecordForm; +import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.DeviceServiceVO; import com.bellmann.service.ServiceService; import io.swagger.v3.oas.annotations.Operation; @@ -18,6 +21,7 @@ import java.util.List; public class ServiceController { private final ServiceService serviceService; + //----------------tr069和业务信息相关接口开始------------------------------ @PostMapping("/tr069-service-list/{tr069VerId}") @Operation(summary = "查找绑定tr069的service") public PageResult tr069ServiceList(@RequestBody BasePageQuery query, @PathVariable Long tr069VerId){ @@ -40,4 +44,60 @@ public class ServiceController { public Result removeBindingService(@PathVariable Long servId, @PathVariable Long tr069VerId){ return serviceService.removeBindingService(servId,tr069VerId); } + //-------------------------介绍----------------------------------------------- + + //-------------------------业务管理相关接口开始-------------------------------- + @PostMapping("/business-page") + @Operation(summary = "业务信息分页接口") + public PageResult businessPage(@RequestBody BasePageQuery query){ + Page page = serviceService.businessPage(query); + return PageResult.success(page); + } + @PostMapping("/add") + @Operation(summary = "新增业务信息 ") + public Result addBusiness(@RequestBody BusinessForm form){ + return serviceService.addBusiness(form); + } + + @PostMapping("/add_business_file") + @Operation(summary = "新增业务信息文件记录") + public Result addBusinessFile(@RequestBody FileRecordForm form){ + return serviceService.addBusinessFile(form); + } + + @GetMapping("/binding-option/{servId}") + @Operation(summary = "查找已绑定的tr069的option") + public Result> bindingTr069Option(@PathVariable Long servId){ + return serviceService.bindingTr069Option(servId); + } + @PostMapping("/binding/{servId}") + @Operation(summary = "绑定的tr069") + public Result bindingTr069(@RequestBody List ids,@PathVariable Long servId){ + return serviceService.bindingTr069(ids,servId); + } + + @GetMapping("/form/{servId}") + @Operation(summary = "根据ID查找表单数据") + public Result getBusinessFormById(@PathVariable Long servId){ + + return serviceService.getBusinessFormById(servId); + } + @PostMapping("/edit") + @Operation(summary = "编辑业务信息 ") + public Result editBusiness(@RequestBody BusinessForm form){ + return serviceService.editBusiness(form); + } + + @PostMapping("/delete") + @Operation(summary = "删除业务信息 ") + public Result deleteBusiness(@RequestBody List ids){ + return serviceService.deleteBusiness(ids); + } + + @DeleteMapping("/delete-file/{fileId}/{servId}") + @Operation(summary = "删除插件 ") + public Result deleteBusinessFile(@PathVariable Long fileId, @PathVariable Long servId){ + return serviceService.deleteBusinessFile(fileId,servId); + } + } diff --git a/src/main/java/com/bellmann/controller/Tr069VerController.java b/src/main/java/com/bellmann/controller/Tr069VerController.java index 959628c..2a4dae7 100644 --- a/src/main/java/com/bellmann/controller/Tr069VerController.java +++ b/src/main/java/com/bellmann/controller/Tr069VerController.java @@ -9,6 +9,7 @@ import com.bellmann.common.result.Result; import com.bellmann.common.util.Tr069XmlUtils; import com.bellmann.model.form.Tr069VerForm; import com.bellmann.model.vo.Tr069VerVO; +import com.bellmann.model.vo.TransferOption; import com.bellmann.service.FileOptionService; import com.bellmann.service.Tr069VerService; import io.swagger.v3.oas.annotations.Operation; @@ -63,5 +64,9 @@ public class Tr069VerController { public Result addTr069Form(@RequestBody Tr069VerForm editTr069Form){ return Result.success(tr069VerService.addTr069Form(editTr069Form)); } - + @GetMapping("/transfer-option") + @Operation(summary = "tr069穿梭框option") + public Result>> transferTr069Option(){ + return Result.success(tr069VerService.transferTr069Option()); + } } diff --git a/src/main/java/com/bellmann/converter/ServiceConverter.java b/src/main/java/com/bellmann/converter/ServiceConverter.java index 0e5585f..47ed7f9 100644 --- a/src/main/java/com/bellmann/converter/ServiceConverter.java +++ b/src/main/java/com/bellmann/converter/ServiceConverter.java @@ -1,14 +1,14 @@ package com.bellmann.converter; -import com.bellmann.model.entity.Service; -import com.bellmann.model.vo.DeviceServiceVO; +import com.bellmann.model.entity.Business; +import com.bellmann.model.form.BusinessForm; import org.mapstruct.Mapper; -import java.util.List; - @Mapper(componentModel = "spring") public interface ServiceConverter { + Business form2Entity(BusinessForm form); + BusinessForm entity2Form(Business business); } \ No newline at end of file diff --git a/src/main/java/com/bellmann/manger/DomainManager.java b/src/main/java/com/bellmann/manger/DomainManager.java index d3ba412..65a4c7e 100644 --- a/src/main/java/com/bellmann/manger/DomainManager.java +++ b/src/main/java/com/bellmann/manger/DomainManager.java @@ -2,9 +2,6 @@ package com.bellmann.manger; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.BasePageQuery; -import com.bellmann.model.vo.DomainOption; - -import java.util.List; public interface DomainManager { Page pageJoinTypeVerByTypeAndVerId(Long typeAndVerId, BasePageQuery pageQuery); diff --git a/src/main/java/com/bellmann/manger/FileRecordManager.java b/src/main/java/com/bellmann/manger/FileRecordManager.java index af9d6be..2800250 100644 --- a/src/main/java/com/bellmann/manger/FileRecordManager.java +++ b/src/main/java/com/bellmann/manger/FileRecordManager.java @@ -2,7 +2,6 @@ package com.bellmann.manger; import com.bellmann.model.bo.DevTypeVerFileBO; import com.bellmann.model.entity.FileRecord; -import com.bellmann.model.vo.FileRecordVO; import java.util.List; @@ -18,4 +17,7 @@ public interface FileRecordManager { List listVendorProfile(Long typeAndVerId); List findFileByType(String fileType); + + Long addBusinessFile(FileRecord fileRecord); + } diff --git a/src/main/java/com/bellmann/manger/impl/DomainManagerImpl.java b/src/main/java/com/bellmann/manger/impl/DomainManagerImpl.java index 9555a3d..a97caae 100644 --- a/src/main/java/com/bellmann/manger/impl/DomainManagerImpl.java +++ b/src/main/java/com/bellmann/manger/impl/DomainManagerImpl.java @@ -1,19 +1,15 @@ package com.bellmann.manger.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.util.PathUtils; import com.bellmann.manger.DomainManager; import com.bellmann.mapper.DomainMapper; import com.bellmann.model.entity.Domain; -import com.bellmann.model.vo.DomainOption; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; @Component @RequiredArgsConstructor diff --git a/src/main/java/com/bellmann/manger/impl/FileRecordManagerImpl.java b/src/main/java/com/bellmann/manger/impl/FileRecordManagerImpl.java index f491a3f..ed00ca4 100644 --- a/src/main/java/com/bellmann/manger/impl/FileRecordManagerImpl.java +++ b/src/main/java/com/bellmann/manger/impl/FileRecordManagerImpl.java @@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bellmann.common.constant.StringUtilsConstants; import com.bellmann.common.enums.FileTypeEnum; import com.bellmann.common.enums.FileUrlEnum; +import com.bellmann.common.result.Result; import com.bellmann.manger.FileRecordManager; import com.bellmann.mapper.FileRecordMapper; import com.bellmann.model.bo.DevTypeVerFileBO; import com.bellmann.model.entity.FileRecord; -import com.bellmann.model.vo.FileRecordVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -64,4 +64,10 @@ public class FileRecordManagerImpl implements FileRecordManager { .eq(FileRecord::getFileType,fileType) ); } + + @Override + public Long addBusinessFile(FileRecord fileRecord) { + fileRecordMapper.insert(fileRecord); + return fileRecord.getFileId(); + } } diff --git a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java index b462e6d..afb06b1 100644 --- a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java +++ b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java @@ -5,7 +5,6 @@ import com.bellmann.common.base.BasePageQuery; import com.bellmann.converter.ServiceConverter; import com.bellmann.manger.ServiceManager; import com.bellmann.mapper.ServiceMapper; -import com.bellmann.model.entity.Service; import com.bellmann.model.vo.DeviceServiceVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/bellmann/mapper/DeviceTypeMapper.java b/src/main/java/com/bellmann/mapper/DeviceTypeMapper.java index 460f472..6af5198 100644 --- a/src/main/java/com/bellmann/mapper/DeviceTypeMapper.java +++ b/src/main/java/com/bellmann/mapper/DeviceTypeMapper.java @@ -35,4 +35,7 @@ public interface DeviceTypeMapper extends BaseMapper { Long countJoinStaticJoinVer(@Param("id") Long id); List tr069BindingDevTypePage(Page page,@Param("query") Tr069BindingPageQuery query,@Param("domainId") Long domainId); + + List serviceBindingDevTypePage(Page page, @Param("servId") Long servId, @Param("domainId") Long domainId); + } diff --git a/src/main/java/com/bellmann/mapper/ServiceMapper.java b/src/main/java/com/bellmann/mapper/ServiceMapper.java index efde601..d1144cf 100644 --- a/src/main/java/com/bellmann/mapper/ServiceMapper.java +++ b/src/main/java/com/bellmann/mapper/ServiceMapper.java @@ -2,7 +2,8 @@ package com.bellmann.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.bellmann.model.entity.Service; +import com.bellmann.model.entity.Business; +import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.DeviceServiceVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -10,11 +11,12 @@ import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper -public interface ServiceMapper extends BaseMapper { +public interface ServiceMapper extends BaseMapper { List pageDevVerService(Page page, @Param("typeAndVerId") Long typeAndVerId); List tr069ServiceList(Page page, @Param("tr069VerId") Long tr069VerId); List noBindingTr069ServiceList(Page page, Long tr069VerId); + List businessPage(Page page); } diff --git a/src/main/java/com/bellmann/model/entity/Service.java b/src/main/java/com/bellmann/model/entity/Business.java similarity index 70% rename from src/main/java/com/bellmann/model/entity/Service.java rename to src/main/java/com/bellmann/model/entity/Business.java index 8052d33..032d89a 100644 --- a/src/main/java/com/bellmann/model/entity/Service.java +++ b/src/main/java/com/bellmann/model/entity/Business.java @@ -1,5 +1,7 @@ package com.bellmann.model.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -7,11 +9,12 @@ import java.io.Serializable; @Data @TableName("itms_service") -public class Service implements Serializable { +public class Business implements Serializable { private static final long serialVersionUID = 3425958771027987055L; + @TableId(type = IdType.AUTO) private Long servId; private String servName; diff --git a/src/main/java/com/bellmann/model/form/BindingServiceForm.java b/src/main/java/com/bellmann/model/form/BindingServiceForm.java index e063468..2f81e4e 100644 --- a/src/main/java/com/bellmann/model/form/BindingServiceForm.java +++ b/src/main/java/com/bellmann/model/form/BindingServiceForm.java @@ -2,7 +2,6 @@ package com.bellmann.model.form; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import org.springframework.web.bind.annotation.PathVariable; import java.util.List; @Data diff --git a/src/main/java/com/bellmann/model/form/BusinessForm.java b/src/main/java/com/bellmann/model/form/BusinessForm.java new file mode 100644 index 0000000..ac094ea --- /dev/null +++ b/src/main/java/com/bellmann/model/form/BusinessForm.java @@ -0,0 +1,24 @@ +package com.bellmann.model.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "业务管理业务信息表单") +public class BusinessForm { + private Long servId; + + @Schema(description = "业务名称") + private String servName; + + @Schema(description = "业务版本") + private String servVerName; + + @Schema(description = "业务显示名称") + private String servDisplayName; + + @Schema(description = "业务描述") + private String servDesc; + + private Long pluginFileId; +} diff --git a/src/main/java/com/bellmann/model/vo/BusinessVO.java b/src/main/java/com/bellmann/model/vo/BusinessVO.java new file mode 100644 index 0000000..06d2dd0 --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/BusinessVO.java @@ -0,0 +1,36 @@ +package com.bellmann.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Schema(description = "业务管理业务信息视图") +public class BusinessVO { + + private Long servId; + + @Schema(description = "业务名称") + private String servName; + + @Schema(description = "业务版本") + private String servVerName; + + @Schema(description = "业务显示名称") + private String servDisplayName; + + @Schema(description = "业务描述") + private String servDesc; + + @Schema(description = "文件名称") + private Long fileId; + + @Schema(description = "文件名称") + private String fileName; + + @Schema(description = "文件上传时间") + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private LocalDateTime fileCreateTime; +} diff --git a/src/main/java/com/bellmann/model/vo/DomainOption.java b/src/main/java/com/bellmann/model/vo/TransferOption.java similarity index 74% rename from src/main/java/com/bellmann/model/vo/DomainOption.java rename to src/main/java/com/bellmann/model/vo/TransferOption.java index 1836fce..bbf8adc 100644 --- a/src/main/java/com/bellmann/model/vo/DomainOption.java +++ b/src/main/java/com/bellmann/model/vo/TransferOption.java @@ -1,12 +1,9 @@ package com.bellmann.model.vo; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; - /** * 下拉选项对象 * @@ -16,9 +13,9 @@ import java.util.List; @Schema(description ="穿梭框选择对象") @Data @NoArgsConstructor -public class DomainOption { +public class TransferOption { - public DomainOption(T key, String label) { + public TransferOption(T key, String label) { this.key = key; this.label = label; } diff --git a/src/main/java/com/bellmann/service/DeviceTypeService.java b/src/main/java/com/bellmann/service/DeviceTypeService.java index d4f6d18..961b674 100644 --- a/src/main/java/com/bellmann/service/DeviceTypeService.java +++ b/src/main/java/com/bellmann/service/DeviceTypeService.java @@ -1,6 +1,7 @@ package com.bellmann.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.model.Option; import com.bellmann.common.result.Result; import com.bellmann.model.query.DeviceTypeQuery; @@ -28,4 +29,6 @@ public interface DeviceTypeService { Result deleteByIds(ArrayList ids); Page tr069BindingPage(Tr069BindingPageQuery query); + + Page serviceBindingDevTypePage(BasePageQuery query, Long servId); } diff --git a/src/main/java/com/bellmann/service/DomainService.java b/src/main/java/com/bellmann/service/DomainService.java index 0099f03..6232ca8 100644 --- a/src/main/java/com/bellmann/service/DomainService.java +++ b/src/main/java/com/bellmann/service/DomainService.java @@ -4,7 +4,7 @@ import com.bellmann.common.model.Option; import com.bellmann.common.result.Result; import com.bellmann.model.form.DomainForm; import com.bellmann.model.query.DomainQuery; -import com.bellmann.model.vo.DomainOption; +import com.bellmann.model.vo.TransferOption; import com.bellmann.model.vo.DomainVO; import java.util.List; @@ -51,6 +51,6 @@ public interface DomainService { * 获取domain穿梭框数据 * @return */ - Result>> transferOption(); + Result>> transferOption(); } diff --git a/src/main/java/com/bellmann/service/ServiceService.java b/src/main/java/com/bellmann/service/ServiceService.java index 81f3f88..64b13ce 100644 --- a/src/main/java/com/bellmann/service/ServiceService.java +++ b/src/main/java/com/bellmann/service/ServiceService.java @@ -3,7 +3,9 @@ package com.bellmann.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.result.Result; -import com.bellmann.model.form.BindingServiceForm; +import com.bellmann.model.form.BusinessForm; +import com.bellmann.model.form.FileRecordForm; +import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.DeviceServiceVO; import java.util.List; @@ -16,4 +18,22 @@ public interface ServiceService { Result bindingService(List ids, Long tr069VerId); Result removeBindingService(Long servId, Long tr069VerId); + + Page businessPage(BasePageQuery query); + + Result addBusiness(BusinessForm form); + + Result addBusinessFile(FileRecordForm form); + + Result> bindingTr069Option(Long servId); + + Result bindingTr069(List ids, Long servId); + + Result getBusinessFormById(Long servId); + + Result editBusiness(BusinessForm form); + + Result deleteBusiness(List ids); + + Result deleteBusinessFile(Long fileId, Long servId); } diff --git a/src/main/java/com/bellmann/service/Tr069VerService.java b/src/main/java/com/bellmann/service/Tr069VerService.java index 4958a9c..ac3f791 100644 --- a/src/main/java/com/bellmann/service/Tr069VerService.java +++ b/src/main/java/com/bellmann/service/Tr069VerService.java @@ -5,6 +5,7 @@ import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.model.Option; import com.bellmann.model.form.Tr069VerForm; import com.bellmann.model.vo.Tr069VerVO; +import com.bellmann.model.vo.TransferOption; import java.util.List; @@ -18,4 +19,7 @@ public interface Tr069VerService { Integer editTr069Form(Tr069VerForm editTr069Form); Integer addTr069Form(Tr069VerForm editTr069Form); + + List> transferTr069Option(); + } diff --git a/src/main/java/com/bellmann/service/impl/DeviceTypeServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceTypeServiceImpl.java index c202694..a842c42 100644 --- a/src/main/java/com/bellmann/service/impl/DeviceTypeServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DeviceTypeServiceImpl.java @@ -2,10 +2,10 @@ package com.bellmann.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.base.IBaseEnum; import com.bellmann.common.enums.DevTypeVerStatusEnum; import com.bellmann.common.model.Option; -import com.bellmann.common.result.IResultCode; import com.bellmann.common.result.Result; import com.bellmann.common.result.ResultCode; import com.bellmann.converter.DeviceTypeConverter; @@ -132,6 +132,19 @@ public class DeviceTypeServiceImpl implements DeviceTypeService { int pageSize = query.getPageSize(); Page page = new Page<>(pageNum,pageSize); List list = deviceTypeMapper.tr069BindingDevTypePage(page,query,SecurityUtils.getGroupId()); + return getTr069BindingVOPage(pageNum, pageSize, page, list); + } + + @Override + public Page serviceBindingDevTypePage(BasePageQuery query, Long servId) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum,pageSize); + List list = deviceTypeMapper.serviceBindingDevTypePage(page,servId,SecurityUtils.getGroupId()); + return getTr069BindingVOPage(pageNum, pageSize, page, list); + } + + private Page getTr069BindingVOPage(int pageNum, int pageSize, Page page, List list) { List collect = list.stream().map(deviceTypePageBO -> { Tr069BindingVO tr069BindingVO = new Tr069BindingVO(); String sb = deviceTypePageBO.getDevVendorName() + @@ -142,7 +155,7 @@ public class DeviceTypeServiceImpl implements DeviceTypeService { tr069BindingVO.setDevType(sb); tr069BindingVO.setDevTypeSoftVer(deviceTypePageBO.getSoftVer()); tr069BindingVO.setDevTypeVerStatus( - IBaseEnum.getLabelByValue(deviceTypePageBO.getDevTypeVerStatus(), DevTypeVerStatusEnum.class) + IBaseEnum.getLabelByValue(deviceTypePageBO.getDevTypeVerStatus(), DevTypeVerStatusEnum.class) ); tr069BindingVO.setDevTypeId(deviceTypePageBO.getDevTypeId()); return tr069BindingVO; diff --git a/src/main/java/com/bellmann/service/impl/DomainServiceImpl.java b/src/main/java/com/bellmann/service/impl/DomainServiceImpl.java index 2862084..1d822b6 100644 --- a/src/main/java/com/bellmann/service/impl/DomainServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DomainServiceImpl.java @@ -2,17 +2,15 @@ package com.bellmann.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.bellmann.common.enums.StatusEnum; import com.bellmann.common.model.Option; import com.bellmann.common.result.Result; import com.bellmann.common.util.PathUtils; import com.bellmann.converter.DomainConverter; import com.bellmann.mapper.DomainMapper; import com.bellmann.model.entity.Domain; -import com.bellmann.model.entity.SysDept; import com.bellmann.model.form.DomainForm; import com.bellmann.model.query.DomainQuery; -import com.bellmann.model.vo.DomainOption; +import com.bellmann.model.vo.TransferOption; import com.bellmann.model.vo.DomainVO; import com.bellmann.service.DomainService; import lombok.RequiredArgsConstructor; @@ -149,14 +147,14 @@ public class DomainServiceImpl implements DomainService { } @Override - public Result>> transferOption() { + public Result>> transferOption() { List list = domainMapper.selectList(new LambdaQueryWrapper<>()); List newDomains = PathUtils.objBuildPath(list); - List> collect = newDomains.stream().map(domain -> { - DomainOption longDomainOption = new DomainOption<>(); - longDomainOption.setKey(domain.getGroupId()); - longDomainOption.setLabel(domain.getGroupName()); - return longDomainOption; + List> collect = newDomains.stream().map(domain -> { + TransferOption longTransferOption = new TransferOption<>(); + longTransferOption.setKey(domain.getGroupId()); + longTransferOption.setLabel(domain.getGroupName()); + return longTransferOption; }).collect(Collectors.toList()); return Result.success(collect); diff --git a/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java b/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java index d2e1fb3..d96286e 100644 --- a/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/ServiceServiceImpl.java @@ -1,20 +1,33 @@ package com.bellmann.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.result.Result; import com.bellmann.common.result.ResultCode; +import com.bellmann.converter.FileRecordConverter; +import com.bellmann.converter.ServiceConverter; +import com.bellmann.manger.FileRecordManager; import com.bellmann.mapper.ServiceMapper; import com.bellmann.mapper.Tr069ServiceMapMapper; +import com.bellmann.model.entity.Business; +import com.bellmann.model.entity.FileRecord; import com.bellmann.model.entity.Tr069ServiceMap; -import com.bellmann.model.form.BindingServiceForm; +import com.bellmann.model.form.BusinessForm; +import com.bellmann.model.form.FileRecordForm; +import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.DeviceServiceVO; +import com.bellmann.security.util.SecurityUtils; +import com.bellmann.service.FileOptionService; import com.bellmann.service.ServiceService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -23,6 +36,14 @@ public class ServiceServiceImpl implements ServiceService { private final ServiceMapper serviceMapper; private final Tr069ServiceMapMapper tr069ServiceMapMapper; + + private final ServiceConverter serviceConverter; + + private final FileRecordManager fileRecordManager; + + private final FileRecordConverter fileRecordConverter; + + private final FileOptionService fileOptionService; @Override public Page tr069ServiceList(BasePageQuery query, Long tr069VerId) { int pageNum = query.getPageNum(); @@ -63,4 +84,105 @@ public class ServiceServiceImpl implements ServiceService { ); return Result.success(); } + + @Override + public Page businessPage(BasePageQuery query) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum,pageSize); + List list = serviceMapper.businessPage(page); + return page.setRecords(list); + } + + @Override + public Result addBusiness(BusinessForm form) { + Business business = serviceConverter.form2Entity(form); + serviceMapper.insert(business); + return Result.success(business.getServId()); + } + + @Override + public Result addBusinessFile(FileRecordForm form) { + FileRecord fileRecord = fileRecordConverter.form2Entity(form); + fileRecord.setFileServId(1L); + fileRecord.setFileCreateTime(new Date()); + fileRecord.setUserName(SecurityUtils.getUsername()); + return Result.success(fileRecordManager.addBusinessFile(fileRecord)); + } + + @Override + public Result> bindingTr069Option(Long servId) { + List list = tr069ServiceMapMapper.selectList( + new LambdaQueryWrapper() + .eq(Tr069ServiceMap::getServId,servId) + ).stream().map(Tr069ServiceMap::getTr069VerId).collect(Collectors.toList()); + return Result.success(list); + } + + @Override + public Result bindingTr069(List ids, Long servId) { + if (ids.isEmpty()){ + tr069ServiceMapMapper.delete(new LambdaQueryWrapper() + .eq(Tr069ServiceMap::getServId,servId) + ); + return Result.success(); + } + for (Long tr069VerId:ids){ + Tr069ServiceMap tr069ServiceMap = new Tr069ServiceMap(); + tr069ServiceMap.setTr069VerId(tr069VerId); + tr069ServiceMap.setServId(servId); + tr069ServiceMapMapper.insert(tr069ServiceMap); + } + return Result.success(); + } + + @Override + public Result getBusinessFormById(Long servId) { + Business business = serviceMapper.selectOne(new LambdaQueryWrapper() + .eq(Business::getServId, servId) + ); + if (business==null){ + return Result.failed(ResultCode.DATA_NOT_FOUND); + } + BusinessForm form = serviceConverter.entity2Form(business); + return Result.success(form); + } + + @Override + public Result editBusiness(BusinessForm form) { + Business business = serviceConverter.form2Entity(form); + serviceMapper.update(business, new LambdaQueryWrapper() + .eq(Business::getServId, business.getServId()) + ); + return Result.success(business.getServId()); + } + + @Override + public Result deleteBusiness(List ids) { + + Long count = tr069ServiceMapMapper.selectCount(new LambdaQueryWrapper() + .in(Tr069ServiceMap::getServId, ids) + ); + if (count!=0){ + return Result.failed(ResultCode.TR069_BINDING_SERVICE); + } + serviceMapper.deleteBatchIds(ids); + return Result.success(); + } + + @Override + @Transactional + public Result deleteBusinessFile(Long fileId, Long servId) { + FileRecord fileRecord = fileRecordManager.findFileRecordById(fileId); + boolean b = fileOptionService.removeFile(fileRecord.getFileUrl(), fileRecord.getFileName()); + if (!b){ + return Result.failed(ResultCode.FILE_DELETE_FAIL); + } + fileRecordManager.deleteByFileId(fileId); + serviceMapper.update(null,new LambdaUpdateWrapper() + .eq(Business::getServId,servId) + .set(Business::getPluginFileId,null) + ); + return Result.success(); + } } diff --git a/src/main/java/com/bellmann/service/impl/Tr069VerServiceImpl.java b/src/main/java/com/bellmann/service/impl/Tr069VerServiceImpl.java index 133a4dd..42a4765 100644 --- a/src/main/java/com/bellmann/service/impl/Tr069VerServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/Tr069VerServiceImpl.java @@ -12,6 +12,7 @@ import com.bellmann.model.entity.FileRecord; import com.bellmann.model.entity.Tr069Ver; import com.bellmann.model.form.Tr069VerForm; import com.bellmann.model.vo.Tr069VerVO; +import com.bellmann.model.vo.TransferOption; import com.bellmann.service.Tr069VerService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -72,4 +73,15 @@ public class Tr069VerServiceImpl implements Tr069VerService { tr069Ver.setTr069VerCreateTime(new Date()); return tr069VerMapper.insert(tr069Ver) ; } + + @Override + public List> transferTr069Option() { + List list = tr069VerMapper.selectList(new LambdaQueryWrapper()); + return list.stream().map(tr069Ver -> { + TransferOption option = new TransferOption<>(); + option.setKey(tr069Ver.getTr069VerId()); + option.setLabel(tr069Ver.getTr069VerName()); + return option; + }).collect(Collectors.toList()); + } } diff --git a/src/main/resources/mapper/DeviceTypeMapper.xml b/src/main/resources/mapper/DeviceTypeMapper.xml index ffff31d..cc617ad 100644 --- a/src/main/resources/mapper/DeviceTypeMapper.xml +++ b/src/main/resources/mapper/DeviceTypeMapper.xml @@ -115,4 +115,22 @@ AND itms_device_type.dev_hard_ver = #{query.devHardVer} + + diff --git a/src/main/resources/mapper/ServiceMapper.xml b/src/main/resources/mapper/ServiceMapper.xml index b8075ed..b58b3bc 100644 --- a/src/main/resources/mapper/ServiceMapper.xml +++ b/src/main/resources/mapper/ServiceMapper.xml @@ -43,4 +43,19 @@ WHERE serv_id NOT IN ( SELECT serv_id FROM itms_tr069_service_map WHERE tr069_ver_id = #{tr069VerId} ) + +