From 5ec417ac34e743582aa376864de1b2442240711d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Fri, 28 Jun 2024 16:50:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BF=9C=E7=A8=8B=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/SystemConstants.java | 7 + .../bellmann/common/result/ResultCode.java | 4 +- .../DeviceServiceMapController.java | 21 +++ .../controller/DeviceStaticController.java | 27 ++- .../controller/LibDeviceCodeController.java | 21 +++ .../converter/DeviceStaticConverter.java | 9 + .../com/bellmann/manger/ServiceManager.java | 2 + .../manger/impl/ServiceManagerImpl.java | 20 ++ .../mapper/DeviceServiceMapMapper.java | 18 ++ .../bellmann/mapper/DeviceStaticMapper.java | 4 + .../bellmann/mapper/LibDeviceCodeMapper.java | 18 ++ .../com/bellmann/mapper/ServiceMapper.java | 3 + .../model/bo/DeviceServiceArgsBO.java | 11 ++ .../bellmann/model/bo/RemoteEquipmentBO.java | 35 ++++ .../model/entity/DeviceServiceMap.java | 43 +++++ .../bellmann/model/entity/LibDeviceCode.java | 38 ++++ .../bellmann/model/form/UnBindingForm.java | 19 ++ .../bellmann/model/vo/RemoteDevInfoVO.java | 62 +++++++ .../bellmann/model/vo/RemoteEquipmentVO.java | 39 ++++ .../service/DeviceServiceMapService.java | 16 ++ .../bellmann/service/DeviceStaticService.java | 9 + .../service/LibDeviceCodeService.java | 16 ++ .../impl/DeviceServiceMapServiceImpl.java | 20 ++ .../service/impl/DeviceStaticServiceImpl.java | 174 ++++++++++++++++-- .../impl/LibDeviceCodeServiceImpl.java | 20 ++ .../mapper/DeviceServiceMapMapper.xml | 21 +++ .../resources/mapper/DeviceStaticMapper.xml | 41 ++++- .../resources/mapper/LibDeviceCodeMapper.xml | 20 ++ src/main/resources/mapper/ServiceMapper.xml | 14 ++ 29 files changed, 737 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/bellmann/controller/DeviceServiceMapController.java create mode 100644 src/main/java/com/bellmann/controller/LibDeviceCodeController.java create mode 100644 src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java create mode 100644 src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java create mode 100644 src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java create mode 100644 src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java create mode 100644 src/main/java/com/bellmann/model/entity/DeviceServiceMap.java create mode 100644 src/main/java/com/bellmann/model/entity/LibDeviceCode.java create mode 100644 src/main/java/com/bellmann/model/form/UnBindingForm.java create mode 100644 src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java create mode 100644 src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java create mode 100644 src/main/java/com/bellmann/service/DeviceServiceMapService.java create mode 100644 src/main/java/com/bellmann/service/LibDeviceCodeService.java create mode 100644 src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java create mode 100644 src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java create mode 100644 src/main/resources/mapper/DeviceServiceMapMapper.xml create mode 100644 src/main/resources/mapper/LibDeviceCodeMapper.xml diff --git a/src/main/java/com/bellmann/common/constant/SystemConstants.java b/src/main/java/com/bellmann/common/constant/SystemConstants.java index 84b9b60..0f23ad4 100644 --- a/src/main/java/com/bellmann/common/constant/SystemConstants.java +++ b/src/main/java/com/bellmann/common/constant/SystemConstants.java @@ -27,4 +27,11 @@ public interface SystemConstants { String DEV_INFORM_FLAG= "0"; String DEV_SOAP_FLAG= "0"; + + static final String SERVICE_CODE_CHINA_NET = "ChinaNet"; + static final String SERVICE_CODE_CHINA_NET_FREE = "ChinaNet-Free"; + + public static final String CONN_TYPE_PPPOE_BRIDGE = "桥接"; + public static final String CONN_TYPE_IP_ROUTED = "路由"; + public static final String CONN_TYPE = "LAST_rg_mode"; } diff --git a/src/main/java/com/bellmann/common/result/ResultCode.java b/src/main/java/com/bellmann/common/result/ResultCode.java index e682baa..962dbd8 100644 --- a/src/main/java/com/bellmann/common/result/ResultCode.java +++ b/src/main/java/com/bellmann/common/result/ResultCode.java @@ -109,7 +109,9 @@ public enum ResultCode implements IResultCode, Serializable { DEV_OUI_SNO_FORMAT_ERROR("F0018","设备标识格式不正确"), DEVICE_NOT_REGISTERED("F0019","该设备尚未注册,请先注册终端"), DEVICE_ALREADY_BINDING_OTHER_LOGIC("F0020", "该设备已经绑定了其他逻辑ID,请解绑此设备后再操作!"), - LOGICID_ALREADY_DEVICE("F0021","逻辑ID已有绑定设备,如需绑定其他设备,请解绑后操作!"); + LOGICID_ALREADY_DEVICE("F0021","逻辑ID已有绑定设备,如需绑定其他设备,请解绑后操作!"), + LOGICID_ALREADY_UNBINDING_ORDER_ALREADY_EXIST("F0022","逻辑ID已解绑,工单已存在!" ), + UPDATE_DEVICE_FAILED("F0023", "更新设备信息失败"); @Override public String getCode() { return code; diff --git a/src/main/java/com/bellmann/controller/DeviceServiceMapController.java b/src/main/java/com/bellmann/controller/DeviceServiceMapController.java new file mode 100644 index 0000000..9cec453 --- /dev/null +++ b/src/main/java/com/bellmann/controller/DeviceServiceMapController.java @@ -0,0 +1,21 @@ +package com.bellmann.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author 李小林 + * @since 2024-06-28 + */ +@RestController +@RequestMapping("/deviceServiceMap") +public class DeviceServiceMapController { + +} + diff --git a/src/main/java/com/bellmann/controller/DeviceStaticController.java b/src/main/java/com/bellmann/controller/DeviceStaticController.java index 3c3f234..fc9b501 100644 --- a/src/main/java/com/bellmann/controller/DeviceStaticController.java +++ b/src/main/java/com/bellmann/controller/DeviceStaticController.java @@ -6,9 +6,12 @@ import com.bellmann.common.result.Result; import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentDetailForm; import com.bellmann.model.form.PrivateProfileForm; +import com.bellmann.model.form.UnBindingForm; import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.EquipmentVO; +import com.bellmann.model.vo.RemoteDevInfoVO; +import com.bellmann.model.vo.RemoteEquipmentVO; import com.bellmann.service.DeviceStaticService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -76,10 +79,32 @@ public class DeviceStaticController { } //--------------资源管理API结束-------------------- - //--------------工单管理查询devOuiSno分页开始 + //--------------工单管理查询devOuiSno分页开始--------------------------------- @PostMapping("dev-oui-sno-page") @Operation(summary = "工单管理查询devOuiSno") public PageResult devOuiSnoPage(@RequestBody DevOuiSnoQuery query){ return deviceStaticService.devOuiSnoPage(query); } + //--------------工单管理查询devOuiSno分页结束------------------------ + + //-------------------远程操作-------------------------- + @PostMapping("/remote/page") + @Operation(summary = "远程操作-设备管理表格接口") + public PageResult remotePage(@RequestBody SelectQuery query){ + Page page = deviceStaticService.remotePage(query); + return PageResult.success(page); + } + @GetMapping("/remote/{devId}") + @Operation(summary = "远程操作-设备信息") + public Result remoteDevInfo(@PathVariable Long devId){ + + return deviceStaticService.remoteDevInfo(devId); + } + + @PostMapping("remote/unbinding") + @Operation(summary = "远程操作-设备信息") + public Result unbindingLogicId(@RequestBody UnBindingForm form){ + return deviceStaticService.unbindingLogicId(form); + } + } diff --git a/src/main/java/com/bellmann/controller/LibDeviceCodeController.java b/src/main/java/com/bellmann/controller/LibDeviceCodeController.java new file mode 100644 index 0000000..802e496 --- /dev/null +++ b/src/main/java/com/bellmann/controller/LibDeviceCodeController.java @@ -0,0 +1,21 @@ +package com.bellmann.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author 李小林 + * @since 2024-06-26 + */ +@RestController +@RequestMapping("/libDeviceCode") +public class LibDeviceCodeController { + +} + diff --git a/src/main/java/com/bellmann/converter/DeviceStaticConverter.java b/src/main/java/com/bellmann/converter/DeviceStaticConverter.java index 0f52c44..9bd10e0 100644 --- a/src/main/java/com/bellmann/converter/DeviceStaticConverter.java +++ b/src/main/java/com/bellmann/converter/DeviceStaticConverter.java @@ -2,9 +2,11 @@ package com.bellmann.converter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.model.bo.EquipmentBO; +import com.bellmann.model.bo.RemoteEquipmentBO; import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.vo.EquipmentVO; +import com.bellmann.model.vo.RemoteEquipmentVO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -23,4 +25,11 @@ public interface DeviceStaticConverter { DeviceStatic resourceForm2VOEntity(EquipmentAddForm form); Page resourceBOPage2VOPage(Page boPage); + + @Mappings({ + @Mapping(target = "devStatus", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(bo.getDevStatus(), com.bellmann.common.enums.DevStatusEnum.class))"), + @Mapping(target = "devOnline", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(bo.getDevOnline(), com.bellmann.common.enums.DevOnlineEnum.class))") + }) + RemoteEquipmentVO remoteBOPage2VOPage(RemoteEquipmentBO bo); + Page remoteBOPage2VOPage(Page boPage); } diff --git a/src/main/java/com/bellmann/manger/ServiceManager.java b/src/main/java/com/bellmann/manger/ServiceManager.java index 4673cc9..29337b0 100644 --- a/src/main/java/com/bellmann/manger/ServiceManager.java +++ b/src/main/java/com/bellmann/manger/ServiceManager.java @@ -6,4 +6,6 @@ import com.bellmann.model.vo.DeviceServiceVO; public interface ServiceManager { Page pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery); + + String getConnType(Long devId); } diff --git a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java index afb06b1..4fba0b0 100644 --- a/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java +++ b/src/main/java/com/bellmann/manger/impl/ServiceManagerImpl.java @@ -2,9 +2,11 @@ package com.bellmann.manger.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.BasePageQuery; +import com.bellmann.common.constant.SystemConstants; import com.bellmann.converter.ServiceConverter; import com.bellmann.manger.ServiceManager; import com.bellmann.mapper.ServiceMapper; +import com.bellmann.model.bo.DeviceServiceArgsBO; import com.bellmann.model.vo.DeviceServiceVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -18,6 +20,24 @@ public class ServiceManagerImpl implements ServiceManager { private final ServiceMapper serviceMapper; private final ServiceConverter serviceConverter; + + @Override + public String getConnType(Long devId) { + DeviceServiceArgsBO bo = serviceMapper.getConnType(devId); + if (bo==null){ + return ""; + } + if (SystemConstants.CONN_TYPE.equals(bo.getArgsTr069Name())){ + String value = bo.getArgsValue(); + if ("1".equals(value)||"IP_Routed".equals(value)){ + return SystemConstants.CONN_TYPE_IP_ROUTED; + }else if ("2".equals(value) || "PPPoE_Bridged".equals(value)){ + return SystemConstants.CONN_TYPE_PPPOE_BRIDGE; + } + } + return ""; + } + @Override public Page pageDevVerService(Long typeAndVerId, BasePageQuery pageQuery) { int pageNum = pageQuery.getPageNum(); diff --git a/src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java b/src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java new file mode 100644 index 0000000..62ba88c --- /dev/null +++ b/src/main/java/com/bellmann/mapper/DeviceServiceMapMapper.java @@ -0,0 +1,18 @@ +package com.bellmann.mapper; + +import com.bellmann.model.entity.DeviceServiceMap; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 李小林 + * @since 2024-06-28 + */ +@Mapper +public interface DeviceServiceMapMapper extends BaseMapper { + +} diff --git a/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java b/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java index e1ba61b..b4115bb 100644 --- a/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java +++ b/src/main/java/com/bellmann/mapper/DeviceStaticMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.model.bo.DeviceDetailBO; import com.bellmann.model.bo.EquipmentBO; +import com.bellmann.model.bo.RemoteEquipmentBO; import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.vo.EquipmentDetailVO; import org.apache.ibatis.annotations.Mapper; @@ -22,4 +23,7 @@ public interface DeviceStaticMapper extends BaseMapper { DeviceDetailBO orderByPppoeAccount(@Param("status") String status, @Param("pppoeAccount") String pppoeAccount); String selectDevRemark4ByOrderSN(@Param("userSnNo") String userSnNo); + + Page remotePage(Page page, @Param("column") String column, @Param("value") Object value); + } diff --git a/src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java b/src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java new file mode 100644 index 0000000..d3a4159 --- /dev/null +++ b/src/main/java/com/bellmann/mapper/LibDeviceCodeMapper.java @@ -0,0 +1,18 @@ +package com.bellmann.mapper; + +import com.bellmann.model.entity.LibDeviceCode; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 李小林 + * @since 2024-06-26 + */ +@Mapper +public interface LibDeviceCodeMapper extends BaseMapper { + +} diff --git a/src/main/java/com/bellmann/mapper/ServiceMapper.java b/src/main/java/com/bellmann/mapper/ServiceMapper.java index d1144cf..1741268 100644 --- a/src/main/java/com/bellmann/mapper/ServiceMapper.java +++ b/src/main/java/com/bellmann/mapper/ServiceMapper.java @@ -2,6 +2,7 @@ package com.bellmann.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bellmann.model.bo.DeviceServiceArgsBO; import com.bellmann.model.entity.Business; import com.bellmann.model.vo.BusinessVO; import com.bellmann.model.vo.DeviceServiceVO; @@ -19,4 +20,6 @@ public interface ServiceMapper extends BaseMapper { List noBindingTr069ServiceList(Page page, Long tr069VerId); List businessPage(Page page); + + DeviceServiceArgsBO getConnType(@Param("devId") Long devId); } diff --git a/src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java b/src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java new file mode 100644 index 0000000..f90aaa3 --- /dev/null +++ b/src/main/java/com/bellmann/model/bo/DeviceServiceArgsBO.java @@ -0,0 +1,11 @@ +package com.bellmann.model.bo; + +import lombok.Data; + +@Data +public class DeviceServiceArgsBO { + + private String argsTr069Name; + + private String argsValue; +} diff --git a/src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java b/src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java new file mode 100644 index 0000000..6cc7396 --- /dev/null +++ b/src/main/java/com/bellmann/model/bo/RemoteEquipmentBO.java @@ -0,0 +1,35 @@ +package com.bellmann.model.bo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class RemoteEquipmentBO { + + private Long devId; + + private String devSno; + + private String devAdNo; + + private String devPppoe; + + private String devStatus; + + private String softVer; + + private Long devTypeId; + + private String devVendorName; + + private String devVendorOui; + + private String devTypeName; + + private String devHardVer; + + private String devOnline; + + private LocalDateTime devOnlineTime; +} diff --git a/src/main/java/com/bellmann/model/entity/DeviceServiceMap.java b/src/main/java/com/bellmann/model/entity/DeviceServiceMap.java new file mode 100644 index 0000000..9182cdb --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/DeviceServiceMap.java @@ -0,0 +1,43 @@ +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; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author 李小林 + * @since 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("itms_device_service_map") +public class DeviceServiceMap implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "dev_id", type = IdType.AUTO) + private Long devId; + + private Long servId; + + private Long orderId; + + private String servMapStatus; + + private Integer servMapErrorCount; + + private Date servStatusTime; + + private String servMapRemark; + + +} diff --git a/src/main/java/com/bellmann/model/entity/LibDeviceCode.java b/src/main/java/com/bellmann/model/entity/LibDeviceCode.java new file mode 100644 index 0000000..60a2213 --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/LibDeviceCode.java @@ -0,0 +1,38 @@ +package com.bellmann.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * + *

+ * + * @author 李小林 + * @since 2024-06-26 + */ +@Data +@TableName("itms_lib_device_code") +@EqualsAndHashCode(callSuper = false) +public class LibDeviceCode implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; + + private String devOui; + + private String devSno; + + private Date sysTime; + + private String devRemark; + + private Long refuseTimes; + + +} diff --git a/src/main/java/com/bellmann/model/form/UnBindingForm.java b/src/main/java/com/bellmann/model/form/UnBindingForm.java new file mode 100644 index 0000000..9e2ea1b --- /dev/null +++ b/src/main/java/com/bellmann/model/form/UnBindingForm.java @@ -0,0 +1,19 @@ +package com.bellmann.model.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "解除绑定表单") +public class UnBindingForm { + private Long devId; + + private String devAdNo; + + private String devSno; + + private String devVendorOui; + + private String devRemark4; + +} diff --git a/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java b/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java new file mode 100644 index 0000000..6f3da47 --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/RemoteDevInfoVO.java @@ -0,0 +1,62 @@ +package com.bellmann.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Schema(description = "远程操作设备信息视图") +public class RemoteDevInfoVO { + + private Long devId; + + private String devAdNo; + + private String devSno; + + private String devPppoe; + + private String devVendorName; + + private String devVendorOui; + + private String devTypeName; + + private String devHardVer; + + private String softVer; + + @JsonIgnore + private Long regionAreaId; + + private String domain; + + private String devRemark1; + + private String devRemark4; + + private String userSnNo; + + private String useState; + + private String devIp; + + private String devStatus; + + private String customType; + + private String conType; + + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private LocalDateTime devOnlineTime; + + private String devAccessType; + + private String devTypeNameDetail; + + private String blacklist; + +} diff --git a/src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java b/src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java new file mode 100644 index 0000000..0820a7d --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/RemoteEquipmentVO.java @@ -0,0 +1,39 @@ +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 RemoteEquipmentVO { + + private Long devId; + + private String devSno; + + private String devAdNo; + + private String devPppoe; + + private String devStatus; + + private String softVer; + + private Long devTypeId; + + private String devVendorName; + + private String devVendorOui; + + private String devTypeName; + + private String devHardVer; + + private String devOnline; + + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private LocalDateTime devOnlineTime; +} diff --git a/src/main/java/com/bellmann/service/DeviceServiceMapService.java b/src/main/java/com/bellmann/service/DeviceServiceMapService.java new file mode 100644 index 0000000..c777d70 --- /dev/null +++ b/src/main/java/com/bellmann/service/DeviceServiceMapService.java @@ -0,0 +1,16 @@ +package com.bellmann.service; + +import com.bellmann.model.entity.DeviceServiceMap; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author 李小林 + * @since 2024-06-28 + */ +public interface DeviceServiceMapService extends IService { + +} diff --git a/src/main/java/com/bellmann/service/DeviceStaticService.java b/src/main/java/com/bellmann/service/DeviceStaticService.java index 1a012d6..a86fe5f 100644 --- a/src/main/java/com/bellmann/service/DeviceStaticService.java +++ b/src/main/java/com/bellmann/service/DeviceStaticService.java @@ -6,9 +6,12 @@ import com.bellmann.common.result.Result; import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentDetailForm; import com.bellmann.model.form.PrivateProfileForm; +import com.bellmann.model.form.UnBindingForm; import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.EquipmentVO; +import com.bellmann.model.vo.RemoteDevInfoVO; +import com.bellmann.model.vo.RemoteEquipmentVO; import java.util.List; import java.util.Map; @@ -31,4 +34,10 @@ public interface DeviceStaticService { Result unbindingCustom(Long devId); PageResult devOuiSnoPage(DevOuiSnoQuery query); + + Page remotePage(SelectQuery query); + + Result remoteDevInfo(Long devId); + + Result unbindingLogicId(UnBindingForm form); } diff --git a/src/main/java/com/bellmann/service/LibDeviceCodeService.java b/src/main/java/com/bellmann/service/LibDeviceCodeService.java new file mode 100644 index 0000000..191933b --- /dev/null +++ b/src/main/java/com/bellmann/service/LibDeviceCodeService.java @@ -0,0 +1,16 @@ +package com.bellmann.service; + +import com.bellmann.model.entity.LibDeviceCode; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author 李小林 + * @since 2024-06-26 + */ +public interface LibDeviceCodeService extends IService { + +} diff --git a/src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java new file mode 100644 index 0000000..1678e4e --- /dev/null +++ b/src/main/java/com/bellmann/service/impl/DeviceServiceMapServiceImpl.java @@ -0,0 +1,20 @@ +package com.bellmann.service.impl; + +import com.bellmann.model.entity.DeviceServiceMap; +import com.bellmann.mapper.DeviceServiceMapMapper; +import com.bellmann.service.DeviceServiceMapService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 李小林 + * @since 2024-06-28 + */ +@Service +public class DeviceServiceMapServiceImpl extends ServiceImpl implements DeviceServiceMapService { + +} diff --git a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java index 2f51a91..bfa6754 100644 --- a/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/DeviceStaticServiceImpl.java @@ -2,40 +2,40 @@ package com.bellmann.service.impl; import cn.hutool.core.map.MapUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.base.IBaseEnum; import com.bellmann.common.constant.SecurityConstants; import com.bellmann.common.constant.StringUtilsConstants; import com.bellmann.common.constant.SystemConstants; -import com.bellmann.common.enums.DevOnlineEnum; -import com.bellmann.common.enums.DevOwnerClassEnum; -import com.bellmann.common.enums.DevRegStatusEnum; -import com.bellmann.common.enums.DevStatusEnum; +import com.bellmann.common.enums.*; import com.bellmann.common.exception.BusinessException; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; import com.bellmann.common.result.ResultCode; import com.bellmann.converter.DeviceStaticConverter; -import com.bellmann.manger.CustomerManager; -import com.bellmann.manger.DeviceTypeManager; -import com.bellmann.manger.FileRecordManager; -import com.bellmann.manger.IpAddressDomainManager; +import com.bellmann.manger.*; import com.bellmann.mapper.*; import com.bellmann.model.bo.EquipmentBO; +import com.bellmann.model.bo.RemoteEquipmentBO; import com.bellmann.model.entity.*; import com.bellmann.model.form.EquipmentAddForm; import com.bellmann.model.form.EquipmentDetailForm; import com.bellmann.model.form.PrivateProfileForm; +import com.bellmann.model.form.UnBindingForm; import com.bellmann.model.query.DevOuiSnoQuery; import com.bellmann.model.query.SelectQuery; -import com.bellmann.model.vo.EquipmentCustomerVO; -import com.bellmann.model.vo.EquipmentDetailVO; -import com.bellmann.model.vo.EquipmentTypeVO; -import com.bellmann.model.vo.EquipmentVO; +import com.bellmann.model.vo.*; import com.bellmann.security.util.SecurityUtils; import com.bellmann.service.DeviceStaticService; +import com.zznode.itms.api.InventoryManager; +import com.zznode.itms.api.NBIManager; +import com.zznode.itms.idl.order.OrderInfoStructListHolder; +import com.zznode.itms.idl.order.OrderStatus; +import com.zznode.itms.idl.order.OrderType; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -70,6 +70,14 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { private final FileDevMapMapper fileDevMapMapper; + private final ServiceManager serviceManager; + + private final LibDeviceCodeMapper libDeviceCodeMapper; + + private final OrderInfoMapper orderInfoMapper; + + private final DeviceServiceMapMapper deviceServiceMapMapper; + @Override public Page resourcePage(SelectQuery query) { int pageNum = query.getPageNum(); @@ -262,4 +270,146 @@ public class DeviceStaticServiceImpl implements DeviceStaticService { stringPage.setTotal(list.size()); return PageResult.success(stringPage); } + + @Override + public Page remotePage(SelectQuery query) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum,pageSize); + Page boPage = deviceStaticMapper.remotePage(page,query.getSelectName(),query.getSelectValue()); + return deviceStaticConverter.remoteBOPage2VOPage(boPage); + } + + @Override + public Result remoteDevInfo(Long devId) { + RemoteDevInfoVO remoteDevInfoVO = new RemoteDevInfoVO(); + DeviceStatic deviceStatic = deviceStaticMapper.selectOne( + new QueryWrapper() + .select("dev_id","dev_ad_no","dev_sno","region_area_id","dev_remark1","dev_remark4","dev_status","cust_id as custom_id","type_and_ver_id") + .eq("dev_id",devId) + ); + BeanUtils.copyProperties(deviceStatic,remoteDevInfoVO); + if (deviceStatic.getCustomId()!=null){ + Customer customer = customerManager.findByCustomId(deviceStatic.getCustomId()); + if (customer!=null) { + remoteDevInfoVO.setCustomType(IBaseEnum.getLabelByValue(customer.getCustomType(), CustomTypeEnum.class)); + } + } + if (deviceStatic.getTypeAndVerId()!=null) { + EquipmentTypeVO devType = deviceTypeManager.findEquipmentType(deviceStatic.getTypeAndVerId()); + if (devType!=null) { + remoteDevInfoVO.setDevAccessType(devType.getDevAccessType()); + remoteDevInfoVO.setDevTypeNameDetail(devType.getEquipmentTypeVer()); + remoteDevInfoVO.setDevTypeName(devType.getDevTypeName()); + remoteDevInfoVO.setDevHardVer(devType.getDevHardVer()); + remoteDevInfoVO.setSoftVer(devType.getSoftVer()); + remoteDevInfoVO.setDevVendorName(devType.getDevVendorName()); + remoteDevInfoVO.setDevVendorOui(devType.getDevVendorOui()); + } + } + DeviceDynamic deviceDynamic = deviceDynamicMapper.selectOne(new LambdaQueryWrapper() + .eq(DeviceDynamic::getDevId, devId) + ); + if (deviceDynamic!=null){ + remoteDevInfoVO.setDevOnlineTime(deviceDynamic.getDevOnlineTime()); + remoteDevInfoVO.setDevIp(deviceDynamic.getDevIp()); + + } + DeviceStaticDetail staticDetail = deviceStaticDetailMapper.selectOne(new QueryWrapper() + .select("user_sn_no","remark2") + .eq("dev_id",devId) + ); + if (staticDetail!=null){ + remoteDevInfoVO.setUserSnNo(staticDetail.getUserSnNo()); + String remark2 = staticDetail.getRemark2(); + remoteDevInfoVO.setUseState(remark2==null|| remark2.isEmpty() ?"未装":remark2); + } + remoteDevInfoVO.setDevStatus(IBaseEnum.getLabelByValue(deviceStatic.getDevStatus(),DevStatusEnum.class)); + remoteDevInfoVO.setDomain((String) redisTemplate.opsForHash() + .get(SecurityConstants.DOMAIN_PREFIX, + deviceStatic.getRegionAreaId().toString())); + String conType = serviceManager.getConnType(devId); + remoteDevInfoVO.setConType(conType); + Long count = libDeviceCodeMapper.selectCount(new LambdaQueryWrapper() + .eq(LibDeviceCode::getDevOui, deviceStatic.getDevRemark3()) + .eq(LibDeviceCode::getDevSno, deviceStatic.getDevSno()) + ); + remoteDevInfoVO.setBlacklist(count>0?"是":"否"); + return Result.success(remoteDevInfoVO); + } + + @Override + public Result unbindingLogicId(UnBindingForm form) { + int res = 0; + if(form.getDevRemark4().contains("^")){ + res = upDeviceStaticGetDevId3(form); + } + if (res!=1){ + return Result.failed(ResultCode.LOGICID_ALREADY_UNBINDING_ORDER_ALREADY_EXIST); + } + return upDeviceStaticGetDevId2(form); + } + + private Result upDeviceStaticGetDevId2(UnBindingForm form) { + deviceStaticMapper.update(null,new LambdaUpdateWrapper() + .eq(DeviceStatic::getDevId,form.getDevId()) + .set(DeviceStatic::getDevPppoe,null) + .set(DeviceStatic::getDevAdNo,null) + .set(DeviceStatic::getCustomId,null) + .set(DeviceStatic::getDevRemark4,null) + .set(DeviceStatic::getDevStatus,DevStatusEnum.NORMAL.getValue()) + ); + deviceStaticDetailMapper.update(null,new LambdaUpdateWrapper() + .set(DeviceStaticDetail::getUserSnNo,null) + .set(DeviceStaticDetail::getBandAccess,null) + .set(DeviceStaticDetail::getIptvAccess,null) + .eq(DeviceStaticDetail::getDevId,form.getDevId()) + ); + String devSno = form.getDevSno(); + String devVendorOui = form.getDevVendorOui(); + if (!devVendorOui.isEmpty()){ + devSno = devVendorOui+"-"+devSno; + } + orderInfoMapper.update(null,new LambdaUpdateWrapper() + .eq(OrderInfo::getDevSnoOui,devSno) + .eq(OrderInfo::getUniqueUserId,form.getDevRemark4()) + .set(OrderInfo::getDevSnoOui,null) + ); + deviceServiceMapMapper.delete(new LambdaQueryWrapper() + .eq(DeviceServiceMap::getDevId,form.getDevId()) + ); + return Result.success(); + } + + private int upDeviceStaticGetDevId3(UnBindingForm form) { + try { + + + if (form.getDevRemark4() != null && !form.getDevRemark4().isEmpty()) { + OrderInfoStructListHolder orderInfoList = new OrderInfoStructListHolder(); + + String sb = " FROM ITMS_ORDER_INFO A,ITMS_ORDER_INFO_DETAIL B " + + " WHERE A.ORDER_ID=B.ORDER_ID AND (UNIQUE_USER_ID = '" + form.getDevRemark4() + "'" + + ") " + + " ORDER BY ORDER_DATE DESC "; + NBIManager.queryOrderInfoBySql(sb, 1, 15, false, orderInfoList); + if (orderInfoList.value != null && orderInfoList.value.length > 0) { + + for (int i = 0; i < orderInfoList.value.length; i++) { + if ((OrderType._ORDER_SERVICE_REPLACE == orderInfoList.value[i].orderServiceType.value() && (OrderStatus._ORDER_UNSETTLE == orderInfoList.value[i].order_Status + .value() + || OrderStatus._ORDER_FAILURE == orderInfoList.value[i].order_Status.value() || OrderStatus._ORDER_SETTLE == orderInfoList.value[i].order_Status + .value()))) { + return 3; + } + } + } + InventoryManager.unbundlingReplaceDevice(form.getDevRemark4().substring(0, form.getDevRemark4().indexOf("^")), form.getDevRemark4()); + return 1; + } + }catch (Exception e){ + throw new BusinessException(ResultCode.UPDATE_DEVICE_FAILED); + } + return 2; + } } diff --git a/src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java b/src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java new file mode 100644 index 0000000..fa6f0ce --- /dev/null +++ b/src/main/java/com/bellmann/service/impl/LibDeviceCodeServiceImpl.java @@ -0,0 +1,20 @@ +package com.bellmann.service.impl; + +import com.bellmann.model.entity.LibDeviceCode; +import com.bellmann.mapper.LibDeviceCodeMapper; +import com.bellmann.service.LibDeviceCodeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 李小林 + * @since 2024-06-26 + */ +@Service +public class LibDeviceCodeServiceImpl extends ServiceImpl implements LibDeviceCodeService { + +} diff --git a/src/main/resources/mapper/DeviceServiceMapMapper.xml b/src/main/resources/mapper/DeviceServiceMapMapper.xml new file mode 100644 index 0000000..9e30dd8 --- /dev/null +++ b/src/main/resources/mapper/DeviceServiceMapMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + dev_id, serv_id, order_id, serv_map_status, serv_map_error_count, serv_status_time, serv_map_remark + + + diff --git a/src/main/resources/mapper/DeviceStaticMapper.xml b/src/main/resources/mapper/DeviceStaticMapper.xml index 169e9b0..0bf2a73 100644 --- a/src/main/resources/mapper/DeviceStaticMapper.xml +++ b/src/main/resources/mapper/DeviceStaticMapper.xml @@ -71,7 +71,8 @@ d.DEV_ONLINE, d.DEV_ONLINE_TIME, e.band_access, - e.iptv_access + e.iptv_access, + e.USER_SN_NO as loginId FROM ITMS_DEVICE_STATIC s LEFT JOIN ITMS_DEVICE_DYNAMIC d ON s.DEV_ID = d.DEV_ID @@ -204,4 +205,42 @@ WHERE t2.user_sn_no = #{userSnNo} + + + diff --git a/src/main/resources/mapper/LibDeviceCodeMapper.xml b/src/main/resources/mapper/LibDeviceCodeMapper.xml new file mode 100644 index 0000000..c6014e1 --- /dev/null +++ b/src/main/resources/mapper/LibDeviceCodeMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, dev_oui, dev_sno, sys_time, dev_remark, refuse_times + + + diff --git a/src/main/resources/mapper/ServiceMapper.xml b/src/main/resources/mapper/ServiceMapper.xml index b58b3bc..3df7b33 100644 --- a/src/main/resources/mapper/ServiceMapper.xml +++ b/src/main/resources/mapper/ServiceMapper.xml @@ -58,4 +58,18 @@ itms_service LEFT JOIN itms_file ON itms_service.plugin_file_id = itms_file.file_id + +