From 064aa6e2f88b91ccc339dc77bb413a72fc53985a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Thu, 20 Jun 2024 16:44:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E5=8D=95=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderInfoDetailController.java | 21 +++++ .../controller/OrderServiceController.java | 13 +++ .../converter/OrderServiceConverter.java | 7 ++ .../mapper/OrderInfoDetailMapper.java | 18 ++++ .../bellmann/mapper/OrderInfoDetailMapper.xml | 27 ++++++ .../model/entity/OrderInfoDetail.java | 90 +++++++++++++++++++ .../com/bellmann/model/vo/OrderServiceVO.java | 21 +++++ .../service/OrderInfoDetailService.java | 13 +++ .../bellmann/service/OrderServiceService.java | 8 ++ .../impl/OrderInfoDetailServiceImpl.java | 17 ++++ .../service/impl/OrderServiceServiceImpl.java | 59 +++++++++++- .../resources/mapper/DeviceStaticMapper.xml | 3 +- 12 files changed, 293 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/bellmann/controller/OrderInfoDetailController.java create mode 100644 src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.java create mode 100644 src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.xml create mode 100644 src/main/java/com/bellmann/model/entity/OrderInfoDetail.java create mode 100644 src/main/java/com/bellmann/model/vo/OrderServiceVO.java create mode 100644 src/main/java/com/bellmann/service/OrderInfoDetailService.java create mode 100644 src/main/java/com/bellmann/service/impl/OrderInfoDetailServiceImpl.java diff --git a/src/main/java/com/bellmann/controller/OrderInfoDetailController.java b/src/main/java/com/bellmann/controller/OrderInfoDetailController.java new file mode 100644 index 0000000..e3d59a8 --- /dev/null +++ b/src/main/java/com/bellmann/controller/OrderInfoDetailController.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-20 + */ +@RestController +@RequestMapping("/orderInfoDetail") +public class OrderInfoDetailController { + +} + diff --git a/src/main/java/com/bellmann/controller/OrderServiceController.java b/src/main/java/com/bellmann/controller/OrderServiceController.java index fc03657..ddec9df 100644 --- a/src/main/java/com/bellmann/controller/OrderServiceController.java +++ b/src/main/java/com/bellmann/controller/OrderServiceController.java @@ -3,13 +3,17 @@ package com.bellmann.controller; import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.result.PageResult; +import com.bellmann.common.result.Result; import com.bellmann.model.vo.OrderInfoBusinessVO; +import com.bellmann.model.vo.OrderServiceVO; import com.bellmann.service.OrderServiceService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** *

* 前端控制器 @@ -31,5 +35,14 @@ public class OrderServiceController { public PageResult orderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){ return orderServiceService.orderInfoBusinessPage(query,orderId); } + + @PostMapping("/order-service-parameter/{orderId}/{service}") + public PageResult orderServiceParameterPage(@RequestBody BasePageQuery query,@PathVariable Long orderId, @PathVariable String service){ + return orderServiceService.orderServiceParameterPage(query,orderId,service); + } + @PostMapping("/service-parameter-update/{orderId}/{service}/{serviceFlag}") + public Result updateOrderServiceParameter(@RequestBody List list, @PathVariable Long orderId, @PathVariable String service, @PathVariable String serviceFlag){ + return orderServiceService.updateOrderServiceParameter(list,orderId,service,serviceFlag); + } } diff --git a/src/main/java/com/bellmann/converter/OrderServiceConverter.java b/src/main/java/com/bellmann/converter/OrderServiceConverter.java index d25deb0..eeed920 100644 --- a/src/main/java/com/bellmann/converter/OrderServiceConverter.java +++ b/src/main/java/com/bellmann/converter/OrderServiceConverter.java @@ -3,10 +3,13 @@ package com.bellmann.converter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.model.entity.OrderService; import com.bellmann.model.vo.OrderInfoBusinessVO; +import com.bellmann.model.vo.OrderServiceVO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; +import java.util.List; + /** * 用户对象转换器 * @@ -24,4 +27,8 @@ public interface OrderServiceConverter { Page entity2PageVo(Page entity); + Page entity2VOPage(Page voPage); + + List vos2Entities(List list); + } diff --git a/src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.java b/src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.java new file mode 100644 index 0000000..31a8dea --- /dev/null +++ b/src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.java @@ -0,0 +1,18 @@ +package com.bellmann.mapper; + +import com.bellmann.model.entity.OrderInfoDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 李小林 + * @since 2024-06-20 + */ +@Mapper +public interface OrderInfoDetailMapper extends BaseMapper { + +} diff --git a/src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.xml b/src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.xml new file mode 100644 index 0000000..5be210d --- /dev/null +++ b/src/main/java/com/bellmann/mapper/OrderInfoDetailMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + order_id, voip_phone, iptv_port, iptv_access, band_access, up_rate, down_rate, detail_remark1, detail_remark2, detail_remark3, order_kind, card_id, card_key + + + diff --git a/src/main/java/com/bellmann/model/entity/OrderInfoDetail.java b/src/main/java/com/bellmann/model/entity/OrderInfoDetail.java new file mode 100644 index 0000000..b9318ed --- /dev/null +++ b/src/main/java/com/bellmann/model/entity/OrderInfoDetail.java @@ -0,0 +1,90 @@ +package com.bellmann.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author 李小林 + * @since 2024-06-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("itms_order_info_detail") +public class OrderInfoDetail implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 工单编号ID + */ + private Long orderId; + + /** + * 电话号码 + */ + private String voipPhone; + + /** + * IPTV路数 + */ + private String iptvPort; + + /** + * IPTV接入号 + */ + private String iptvAccess; + + /** + * 宽带接入号 + */ + private String bandAccess; + + /** + * 上行速率 + */ + private String upRate; + + /** + * 下行速率 + */ + private String downRate; + + /** + * 预留字段1 + */ + private String detailRemark1; + + /** + * 预留字段2 + */ + private String detailRemark2; + + /** + * 预留字段3 + */ + private String detailRemark3; + + /** + * 工单类型: 0表示家庭用户工单, 1表示政企用户工单 + */ + private String orderKind; + + /** + * 机卡分离工单的卡序列号 + */ + private String cardId; + + /** + * 机卡分离工单的卡密钥 + */ + private String cardKey; + + +} diff --git a/src/main/java/com/bellmann/model/vo/OrderServiceVO.java b/src/main/java/com/bellmann/model/vo/OrderServiceVO.java new file mode 100644 index 0000000..2c6d1dd --- /dev/null +++ b/src/main/java/com/bellmann/model/vo/OrderServiceVO.java @@ -0,0 +1,21 @@ +package com.bellmann.model.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "工单参数列表视图") +public class OrderServiceVO { + + private Long orderId; + + private String service; + + private String argsName; + + private String argsValueNew; + + private String argsValueOld; + + +} diff --git a/src/main/java/com/bellmann/service/OrderInfoDetailService.java b/src/main/java/com/bellmann/service/OrderInfoDetailService.java new file mode 100644 index 0000000..f7a55eb --- /dev/null +++ b/src/main/java/com/bellmann/service/OrderInfoDetailService.java @@ -0,0 +1,13 @@ +package com.bellmann.service; + +/** + *

+ * 服务类 + *

+ * + * @author 李小林 + * @since 2024-06-20 + */ +public interface OrderInfoDetailService{ + +} diff --git a/src/main/java/com/bellmann/service/OrderServiceService.java b/src/main/java/com/bellmann/service/OrderServiceService.java index 9561a36..88a8ccd 100644 --- a/src/main/java/com/bellmann/service/OrderServiceService.java +++ b/src/main/java/com/bellmann/service/OrderServiceService.java @@ -2,7 +2,11 @@ package com.bellmann.service; import com.bellmann.common.base.BasePageQuery; import com.bellmann.common.result.PageResult; +import com.bellmann.common.result.Result; import com.bellmann.model.vo.OrderInfoBusinessVO; +import com.bellmann.model.vo.OrderServiceVO; + +import java.util.List; /** *

@@ -15,4 +19,8 @@ import com.bellmann.model.vo.OrderInfoBusinessVO; public interface OrderServiceService { PageResult orderInfoBusinessPage(BasePageQuery query, Long orderId); + + PageResult orderServiceParameterPage(BasePageQuery query, Long orderId, String service); + + Result updateOrderServiceParameter(List list, Long orderId, String service, String serviceFlag); } diff --git a/src/main/java/com/bellmann/service/impl/OrderInfoDetailServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderInfoDetailServiceImpl.java new file mode 100644 index 0000000..60bd8ee --- /dev/null +++ b/src/main/java/com/bellmann/service/impl/OrderInfoDetailServiceImpl.java @@ -0,0 +1,17 @@ +package com.bellmann.service.impl; + +import com.bellmann.service.OrderInfoDetailService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 李小林 + * @since 2024-06-20 + */ +@Service +public class OrderInfoDetailServiceImpl implements OrderInfoDetailService { + +} diff --git a/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java index 72b2571..ef938ee 100644 --- a/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java @@ -1,19 +1,30 @@ 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.base.IBaseEnum; +import com.bellmann.common.enums.ServiceFlagEnum; import com.bellmann.common.result.PageResult; +import com.bellmann.common.result.Result; import com.bellmann.converter.OrderServiceConverter; +import com.bellmann.mapper.OrderInfoDetailMapper; import com.bellmann.mapper.OrderServiceMapper; +import com.bellmann.model.entity.OrderInfoDetail; import com.bellmann.model.entity.OrderService; import com.bellmann.model.vo.OrderInfoBusinessVO; +import com.bellmann.model.vo.OrderServiceVO; import com.bellmann.service.OrderServiceService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** *

- * 服务实现类 + * 服务实现类 *

* * @author 李小林 @@ -26,12 +37,54 @@ public class OrderServiceServiceImpl implements OrderServiceService { private final OrderServiceMapper orderServiceMapper; private final OrderServiceConverter orderServiceConverter; + + private final OrderInfoDetailMapper orderInfoDetailMapper; + @Override public PageResult orderInfoBusinessPage(BasePageQuery query, Long orderId) { int pageNum = query.getPageNum(); int pageSize = query.getPageSize(); - Page page = new Page<>(pageNum,pageSize); - Page dataPage = orderServiceMapper.orderInfoBusinessPage(page,orderId); + Page page = new Page<>(pageNum, pageSize); + Page dataPage = orderServiceMapper.orderInfoBusinessPage(page, orderId); return PageResult.success(orderServiceConverter.entity2PageVo(dataPage)); } + + @Override + public PageResult orderServiceParameterPage(BasePageQuery query, Long orderId, String service) { + int pageNum = query.getPageNum(); + int pageSize = query.getPageSize(); + Page page = new Page<>(pageNum, pageSize); + Page voPage = orderServiceMapper.selectPage(page, new LambdaQueryWrapper() + .eq(OrderService::getOrderId, orderId) + .eq(OrderService::getService, service) + ); + return PageResult.success(orderServiceConverter.entity2VOPage(voPage)); + } + + @Override + @Transactional + public Result updateOrderServiceParameter(List list, Long orderId, String service, String serviceFlag) { + + int rows = orderServiceMapper.delete(new LambdaQueryWrapper() + .eq(OrderService::getService, service) + .eq(OrderService::getOrderId, orderId) + ); + if (rows > 0) { + List serviceList = orderServiceConverter.vos2Entities(list); + for (OrderService orderService : serviceList) { + orderService.setServiceId(-999L); + orderService.setServiceFlag((String) IBaseEnum.getValueByLabel(serviceFlag, ServiceFlagEnum.class)); + orderServiceMapper.insert(orderService); + if (orderService.getArgsName().equals("user_tid") || orderService.getArgsName().equals("rg_port_id")) { + orderInfoDetailMapper.update(null, + new LambdaUpdateWrapper() + .eq(OrderInfoDetail::getOrderId, orderService.getOrderId()) + .set(OrderInfoDetail::getDetailRemark3, orderService.getArgsValueNew()) + ); + } + } + } + + return Result.success(); + } } diff --git a/src/main/resources/mapper/DeviceStaticMapper.xml b/src/main/resources/mapper/DeviceStaticMapper.xml index a24741b..94d1bd7 100644 --- a/src/main/resources/mapper/DeviceStaticMapper.xml +++ b/src/main/resources/mapper/DeviceStaticMapper.xml @@ -145,7 +145,8 @@ limit 1 - SELECT ITMS_DEVICE_STATIC.DEV_ID, ITMS_DEVICE_STATIC.TYPE_AND_VER_ID,