feat: 工单管理

master
李小林 9 months ago
parent 5c2b705289
commit 74c22d3dc1
  1. 22
      src/main/java/com/bellmann/common/enums/DummyFlagEnum.java
  2. 22
      src/main/java/com/bellmann/common/enums/OrderDoneFlagEnum.java
  3. 25
      src/main/java/com/bellmann/common/enums/ServiceFlagEnum.java
  4. 5
      src/main/java/com/bellmann/common/result/ResultCode.java
  5. 40
      src/main/java/com/bellmann/controller/OrderInfoController.java
  6. 35
      src/main/java/com/bellmann/controller/OrderServiceController.java
  7. 14
      src/main/java/com/bellmann/converter/OrderInfoConverter.java
  8. 27
      src/main/java/com/bellmann/converter/OrderServiceConverter.java
  9. 5
      src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
  10. 4
      src/main/java/com/bellmann/mapper/DeviceTypeVerDetailMapper.java
  11. 5
      src/main/java/com/bellmann/mapper/OrderInfoMapper.java
  12. 21
      src/main/java/com/bellmann/mapper/OrderServiceMapper.java
  13. 78
      src/main/java/com/bellmann/model/bo/DeviceDetailBO.java
  14. 42
      src/main/java/com/bellmann/model/entity/OrderService.java
  15. 26
      src/main/java/com/bellmann/model/form/ModifyOrderForm.java
  16. 24
      src/main/java/com/bellmann/model/vo/OrderInfoBusinessVO.java
  17. 68
      src/main/java/com/bellmann/model/vo/OrderInfoVO.java
  18. 13
      src/main/java/com/bellmann/service/OrderInfoService.java
  19. 18
      src/main/java/com/bellmann/service/OrderServiceService.java
  20. 245
      src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java
  21. 37
      src/main/java/com/bellmann/service/impl/OrderServiceServiceImpl.java
  22. BIN
      src/main/resources/lib/CloudApi.jar
  23. BIN
      src/main/resources/lib/E2Eapi2.jar
  24. BIN
      src/main/resources/lib/OB.jar
  25. BIN
      src/main/resources/lib/OBEvent.jar
  26. BIN
      src/main/resources/lib/OBNaming.jar
  27. BIN
      src/main/resources/lib/OBNotify.jar
  28. BIN
      src/main/resources/lib/OBTime.jar
  29. BIN
      src/main/resources/lib/acsapi.jar
  30. BIN
      src/main/resources/lib/capapi.jar
  31. BIN
      src/main/resources/lib/commons-beanutils.jar
  32. BIN
      src/main/resources/lib/commons-collections-3.2.1.jar
  33. BIN
      src/main/resources/lib/commons-collections.jar
  34. BIN
      src/main/resources/lib/commons-lang-2.0.jar
  35. BIN
      src/main/resources/lib/commons-logging-1.0.4.jar
  36. BIN
      src/main/resources/lib/ezmorph-1.0.3.jar
  37. 15
      src/main/resources/lib/install.bat
  38. 11
      src/main/resources/lib/install.local.bat
  39. BIN
      src/main/resources/lib/jsch-0.1.54.jar
  40. BIN
      src/main/resources/lib/json-lib-2.2.2-jdk15.jar
  41. BIN
      src/main/resources/lib/ojdbc14.jar
  42. BIN
      src/main/resources/lib/ojdbc6-11.2.0.4.jar
  43. BIN
      src/main/resources/lib/orderapi.jar
  44. BIN
      src/main/resources/lib/pon112.jar
  45. BIN
      src/main/resources/lib/postgresql-42.2.27.jar
  46. BIN
      src/main/resources/lib/postgresql-42.2.5.jar
  47. BIN
      src/main/resources/lib/postgresql-9.3-1103-jdbc3.jar
  48. BIN
      src/main/resources/lib/resourceapi.jar
  49. BIN
      src/main/resources/lib/server.jar
  50. 102
      src/main/resources/mapper/DeviceStaticMapper.xml
  51. 20
      src/main/resources/mapper/DeviceTypeVerDetailMapper.xml
  52. 41
      src/main/resources/mapper/OrderInfoMapper.xml
  53. 32
      src/main/resources/mapper/OrderServiceMapper.xml

@ -0,0 +1,22 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum DummyFlagEnum implements IBaseEnum<String> {
DUMMY("0","虚拟"),
NON_VIRTUAL("1","非虚拟"),
;
@Getter
private String value;
@Getter
private String label;
DummyFlagEnum(String value, String label){
this.label = label;
this.value = value;
}
}

@ -0,0 +1,22 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum OrderDoneFlagEnum implements IBaseEnum<String> {
RECEIPTS_HAVE_BEEN_RETURNED("0","已回单"),
THE_ORDER_HAS_NOT_BEEN_RETURNED("1","未回单"),
;
@Getter
private String value;
@Getter
private String label;
OrderDoneFlagEnum(String value, String label){
this.label = label;
this.value = value;
}
}

@ -0,0 +1,25 @@
package com.bellmann.common.enums;
import com.bellmann.common.base.IBaseEnum;
import lombok.Getter;
public enum ServiceFlagEnum implements IBaseEnum<String> {
ACTIVATE_THE_SERVICE("A","开通业务"),
CANCEL_THE_BUSINESS("D","取消业务"),
CHANGE_OF_BUSINESS("M","变更业务"),
KEEP_THE_BUSINESS_GOING("K","保持业务"),
RESET_THE_BUSINESS("R","重置业务"),
;
@Getter
private String value;
@Getter
private String label;
ServiceFlagEnum(String value, String label){
this.label = label;
this.value = value;
}
}

@ -102,7 +102,10 @@ public enum ResultCode implements IResultCode, Serializable {
DEV_DOMAIN_MAP_NOT_FOUNT("F0011", "传入的设备软件版本和系统管理域映射不存在"),
EXIST_USER_DEV("F0012","存在该用户的设备"),
DEV_ALREADY_CUSTOM("F0013","设备已经绑定客户"),
;
BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION("F0014", "禁止修改工单状态为手工干预"),
NOT_OPERATE_ORDER("F0015","无法操作此类工单" ),
NOT_GET_DEVICE("F0016","未获取到设备" ),
NBI_ERROR("F0017","调用NBI接口报错");
@Override
public String getCode() {
return code;

@ -3,16 +3,17 @@ package com.bellmann.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.result.PageResult;
import com.bellmann.common.result.Result;
import com.bellmann.model.form.ModifyOrderForm;
import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.OrderInfoTableVO;
import com.bellmann.model.vo.OrderInfoVO;
import com.bellmann.service.OrderInfoService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
/**
* <p>
@ -30,11 +31,40 @@ public class OrderInfoController {
private final OrderInfoService orderInfoService;
@PostMapping("page")
@Operation(summary = "工单管理表格分页")
public PageResult<OrderInfoTableVO> page(@RequestBody SelectQuery query){
Page<OrderInfoTableVO> page = orderInfoService.tablePage(query);
return PageResult.success(page);
}
@GetMapping("info/{orderId}")
@Operation(summary = "工单管理获取工单详细信息")
public Result<OrderInfoVO> getOrderById(@PathVariable Long orderId){
return orderInfoService.getOrderById(orderId);
}
@PutMapping("update-order-status/{orderId}/{orderStatus}")
@Operation(summary = "修改工单状态")
public Result<String> updateOrderStatus(@PathVariable Long orderId, @PathVariable String orderStatus){
return orderInfoService.updateOrderStatus(orderId,orderStatus);
}
@PutMapping("execute-order/{orderId}")
@PreAuthorize("@ss.hasPerm('family:operate:order:execute')")
@Operation(summary = "手动执行工单")
public Result<String> executeOrder(@PathVariable Long orderId){
return orderInfoService.executeOrder(orderId);
}
@GetMapping("modify-form/{orderId}")
@Operation(summary = "获取修改工单表单")
public Result<ModifyOrderForm> modifyForm(@PathVariable Long orderId){
return orderInfoService.modifyForm(orderId);
}
@PostMapping("update-form")
@Operation(summary = "修改工单表单")
public Result<String> updateForm(@RequestBody ModifyOrderForm form){
return orderInfoService.updateForm(form);
}
}

@ -0,0 +1,35 @@
package com.bellmann.controller;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.model.vo.OrderInfoBusinessVO;
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.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
@Tag(name = "21.工单业务管理")
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/order-service/v1")
public class OrderServiceController {
private final OrderServiceService orderServiceService;
@PostMapping("/order-info-service/{orderId}")
@Operation(summary = "工单业务列表")
public PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(@RequestBody BasePageQuery query, @PathVariable Long orderId){
return orderServiceService.orderInfoBusinessPage(query,orderId);
}
}

@ -0,0 +1,14 @@
package com.bellmann.converter;
import com.bellmann.model.entity.OrderInfo;
import com.bellmann.model.form.ModifyOrderForm;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface OrderInfoConverter {
ModifyOrderForm entity2ModifyForm(OrderInfo orderInfo);
}

@ -0,0 +1,27 @@
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 org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
/**
* 用户对象转换器
*
*
* @since 2022/6/8
*/
@Mapper(componentModel = "spring")
public interface OrderServiceConverter {
@Mappings({
@Mapping(target = "serviceFlag", expression = "java(com.bellmann.common.base.IBaseEnum.getLabelByValue(entity.getServiceFlag(), com.bellmann.common.enums.ServiceFlagEnum.class))"),
})
OrderInfoBusinessVO entity2PageVo(OrderService entity);
Page<OrderInfoBusinessVO> entity2PageVo(Page<OrderService> entity);
}

@ -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.DeviceDetailBO;
import com.bellmann.model.bo.EquipmentBO;
import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.vo.EquipmentDetailVO;
@ -15,4 +16,8 @@ public interface DeviceStaticMapper extends BaseMapper<DeviceStatic> {
EquipmentDetailVO detailInfo(@Param("devId") Long devId);
Long countJoinDevVerDomain(@Param("devId") Long devId, @Param("regionAreaId") Long regionAreaId);
DeviceDetailBO orderByDevSnoOui(@Param("sno") String sno, @Param("oui") String oui,@Param("devRemark4") String devRemark4);
DeviceDetailBO orderByPppoeAccount(@Param("status") String status, @Param("pppoeAccount") String pppoeAccount);
}

@ -2,11 +2,11 @@ package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bellmann.model.entity.DeviceTypeVerDetail;
import lombok.RequiredArgsConstructor;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Service;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface DeviceTypeVerDetailMapper extends BaseMapper<DeviceTypeVerDetail> {
String findDevAccessType(@Param("adNo") String adNo);
}

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.entity.OrderInfo;
import com.bellmann.model.vo.OrderInfoTableVO;
import com.bellmann.model.vo.OrderInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -21,4 +22,8 @@ import java.util.List;
public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
List<OrderInfoTableVO> tablePage(Page<OrderInfoTableVO> page, @Param("column") String column, @Param("value") Object value, @Param("domain") Long domain);
OrderInfoVO getOrderById(Long orderId);
OrderInfo orderSnoOuiPppoeUnique(@Param("orderId") Long orderId);
}

@ -0,0 +1,21 @@
package com.bellmann.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.entity.OrderService;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
@Mapper
public interface OrderServiceMapper extends BaseMapper<OrderService> {
Page<OrderService> orderInfoBusinessPage(Page<OrderService> page, @Param("orderId") Long orderId);
}

@ -0,0 +1,78 @@
package com.bellmann.model.bo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
@Data
public class DeviceDetailBO {
//dynamic
private Long devId;
private String connectReqUrl;
private String devIp;
private String devOnline;
private LocalDateTime devOnlineTime;
//detail
private String userSnNo;
private String iptvAccess;
private String bandAccess;
private String devRegStatus;
private String devOwnerClass;
private String remark1;
private String remark2;
private String remark3;
private String remark4;
//device_static
private Long typeAndVerId;
private Long custId;
private Long regionAreaId;
private Long corpAreaId;
private String devSno;
private String devMac;
private String devPppoe;
private String devAdNo;
private String devStatus;
private Date devCreateTime;
private Date devModifyTime;
private String devSoapFlag;
private String devInformFlag;
private String devRemark1;
private String devRemark2;
private String devRemark3;
private String devRemark4;
private String devRemark5;
}

@ -0,0 +1,42 @@
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;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("itms_order_service")
public class OrderService implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "order_id", type = IdType.AUTO)
private Long orderId;
private String service;
private Long serviceId;
private String serviceFlag;
private String argsName;
private String argsValueNew;
private String argsValueOld;
}

@ -0,0 +1,26 @@
package com.bellmann.model.form;
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 ModifyOrderForm {
private Long orderId;
private String orderServiceType;
private String orderCustomerKind;
private String receivedOrderId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime orderDate;
private String pppoeAccount;
private String adNo;
}

@ -0,0 +1,24 @@
package com.bellmann.model.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class OrderInfoBusinessVO {
private Long orderId;
private String service;
private String serviceFlag;
}

@ -0,0 +1,68 @@
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 OrderInfoVO {
private Long orderId;
private String receivedOrderId;
private String receivedOrderLhs;
private String orderRemark;
private String orderServiceType;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime orderDate;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime receiveDate;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime orderDealDate;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime orderDeadline;
private String adNo;
private String orderStatus;
private String pppoeAccount;
private String bandAccess;
private String iptvAccess;
private String userSnNo;
private String remark;
private String devOnlineStatus;
private String userSnKey;
private String devAccessType;
@JsonIgnore
private String devSnoOui;
@JsonIgnore
private Long systemDomain;
private String domain;
private String orderCustomerKind;
private String orderDoneFlag;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime orderDoneDate;
private String dummyFlag;
}

@ -1,8 +1,11 @@
package com.bellmann.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.result.Result;
import com.bellmann.model.form.ModifyOrderForm;
import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.OrderInfoTableVO;
import com.bellmann.model.vo.OrderInfoVO;
/**
* <p>
@ -15,4 +18,14 @@ import com.bellmann.model.vo.OrderInfoTableVO;
public interface OrderInfoService {
Page<OrderInfoTableVO> tablePage(SelectQuery query);
Result<OrderInfoVO> getOrderById(Long orderId);
Result<String> updateOrderStatus(Long orderId, String orderStatus);
Result<String> executeOrder(Long orderId);
Result<ModifyOrderForm> modifyForm(Long orderId);
Result<String> updateForm(ModifyOrderForm form);
}

@ -0,0 +1,18 @@
package com.bellmann.service;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.model.vo.OrderInfoBusinessVO;
/**
* <p>
* 服务类
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
public interface OrderServiceService {
PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(BasePageQuery query, Long orderId);
}

@ -1,16 +1,30 @@
package com.bellmann.service.impl;
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.enums.OrderOperateEnum;
import com.bellmann.common.enums.OrderServiceTypeEnum;
import com.bellmann.common.enums.OrderStatusEnum;
import com.bellmann.common.enums.*;
import com.bellmann.common.exception.BusinessException;
import com.bellmann.common.result.Result;
import com.bellmann.common.result.ResultCode;
import com.bellmann.converter.OrderInfoConverter;
import com.bellmann.mapper.DeviceStaticMapper;
import com.bellmann.mapper.DeviceTypeVerDetailMapper;
import com.bellmann.mapper.OrderInfoMapper;
import com.bellmann.mapper.OrderServiceMapper;
import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.entity.OrderInfo;
import com.bellmann.model.entity.OrderService;
import com.bellmann.model.form.ModifyOrderForm;
import com.bellmann.model.query.SelectQuery;
import com.bellmann.model.vo.OrderInfoTableVO;
import com.bellmann.model.vo.OrderInfoVO;
import com.bellmann.security.util.SecurityUtils;
import com.bellmann.service.OrderInfoService;
import com.zznode.itms.api.NBIManager;
import com.zznode.itms.idl.resourcedefinition.*;
import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@ -32,6 +46,14 @@ public class OrderInfoServiceImpl implements OrderInfoService {
private final OrderInfoMapper orderInfoMapper;
private final RedisTemplate<String, Object> redisTemplate;
private final DeviceTypeVerDetailMapper deviceTypeVerDetailMapper;
private final OrderServiceMapper orderServiceMapper;
private final DeviceStaticMapper deviceStaticMapper;
private final OrderInfoConverter orderInfoConverter;
@Override
public Page<OrderInfoTableVO> tablePage(SelectQuery query) {
int pageNum = query.getPageNum();
@ -70,10 +92,227 @@ public class OrderInfoServiceImpl implements OrderInfoService {
}
private String devOnlineStatus(String devSnoOui,String pppoe){
String devOui="";
String devSno="";
String status = "无设备上线记录";
if (devSnoOui==null || devSnoOui.isEmpty()){
return status;
}
return null;
}
@Override
public Result<OrderInfoVO> getOrderById(Long orderId) {
OrderInfoVO orderInfoVO = orderInfoMapper.getOrderById(orderId);
orderInfoVO.setOrderCustomerKind(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderCustomerKind(), CustomTypeEnum.class));
orderInfoVO.setOrderServiceType(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderServiceType(), OrderServiceTypeEnum.class));
orderInfoVO.setOrderRemark(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderRemark(), OrderOperateEnum.class));
orderInfoVO.setDummyFlag(
IBaseEnum.getLabelByValue(
orderInfoVO.getDummyFlag(), DummyFlagEnum.class));
orderInfoVO.setOrderDoneFlag(
IBaseEnum.getLabelByValue(
orderInfoVO.getOrderDoneFlag(),OrderDoneFlagEnum.class));
orderInfoVO.setDomain(
(String) redisTemplate
.opsForHash()
.get(SecurityConstants.DOMAIN_PREFIX,
orderInfoVO.getSystemDomain().toString()));
orderInfoVO.setDevOnlineStatus(devOnlineStatus(orderInfoVO.getDevSnoOui(),orderInfoVO.getPppoeAccount()));
if (orderInfoVO.getAdNo()!=null) {
String devAccessType = deviceTypeVerDetailMapper.findDevAccessType(orderInfoVO.getAdNo());
if (devAccessType!=null){
orderInfoVO.setDevAccessType(IBaseEnum.getLabelByValue(
devAccessType, DevAccessTypeEnum.class));
}
}
return Result.success(orderInfoVO);
}
@Override
public Result<String> updateOrderStatus(Long orderId, String orderStatus) {
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderStatus)){
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION);
}
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.select("order_status")
.eq("order_id", orderId)
);
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderInfo.getOrderStatus())){
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION);
}
orderInfoMapper.update(null,new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId,orderId)
.set(OrderInfo::getOrderStatus,orderStatus)
);
if (OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderStatus)){
orderServiceMapper.update(null,new LambdaUpdateWrapper<OrderService>()
.eq(OrderService::getOrderId,orderId)
.set(OrderService::getServiceId,-999)
);
}
return Result.success();
}
@Override
public Result<String> executeOrder(Long orderId) {
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.select("order_status","pppoe_account","dev_sno_oui","unique_user_id","order_service_type")
.eq("order_id", orderId)
);
if(!OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderInfo.getOrderStatus())){
throw new BusinessException(ResultCode.NOT_OPERATE_ORDER);
}
orderInfoMapper.update(null,new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId,orderId)
.set(OrderInfo::getOrderStatus,OrderStatusEnum.NOT_PROCESSED.getValue())
.set(OrderInfo::getOrderDoneFlag,OrderDoneFlagEnum.THE_ORDER_HAS_NOT_BEEN_RETURNED.getValue())
);
boolean ouiFlag = false;
boolean pppoeFlag = false;
boolean uniqueUserIdFlag = false;
DeviceDetailBO bo = null;
OrderInfo obj = orderInfoMapper.orderSnoOuiPppoeUnique(orderId);
String devSnoOui = obj.getDevSnoOui();
if (devSnoOui!=null&& !devSnoOui.trim().isEmpty()) {
if (devSnoOui.startsWith("12$")) {
devSnoOui = orderInfo.getDevSnoOui();
if (devSnoOui.isEmpty()) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
}
String sno = "";
String oui = "";
if (devSnoOui.contains("-")) {
String[] split = devSnoOui.split("-");
sno = split[0];
oui = split[1];
}
bo = deviceStaticMapper.orderByDevSnoOui(sno, oui,null);
if (bo == null) {
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}else {
ouiFlag = true;
}
}
String uniqueUserId = obj.getUniqueUserId();
if (
uniqueUserId!=null&&
!uniqueUserId.isEmpty()&&
!ouiFlag&&
!OrderServiceTypeEnum.EQUIPMENT_REPLACEMENT.getValue().equals(orderInfo.getOrderServiceType())
){
bo = deviceStaticMapper.orderByDevSnoOui(null,null,uniqueUserId);
if (bo!=null){
uniqueUserIdFlag = true;
}
}
String pppoeAccount = obj.getPppoeAccount();
if (pppoeAccount!=null&&!pppoeAccount.isEmpty()&&!ouiFlag&&uniqueUserIdFlag){
bo = deviceStaticMapper.orderByPppoeAccount(DevStatusEnum.NORMAL.getValue(),pppoeAccount);
if (bo==null){
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
pppoeFlag = true;
}
if (!pppoeFlag&&!ouiFlag&&!uniqueUserIdFlag){
throw new BusinessException(ResultCode.NOT_GET_DEVICE);
}
RDeviceDetailStruct struct = conversionStruct(bo);
int res = NBIManager.informConfigure(struct, orderId, true);
if (res!=0){
throw new BusinessException(ResultCode.NBI_ERROR);
}
return Result.success();
}
private RDeviceDetailStruct conversionStruct(DeviceDetailBO bo){
RDeviceDetailStruct struct = new RDeviceDetailStruct();
RDeviceDynamicStruct devDynamic = struct.devDynamic;
RDeviceStaticStruct devStatic = struct.devStatic;
RDeviceStaticDetailStruct devStaticDetail = struct.devStaticDetail;
devStatic.devId = bo.getDevId();
devStatic.typeAndVerId = bo.getTypeAndVerId();
devStatic.custId = bo.getCustId();
devStatic.regionAreaId = bo.getRegionAreaId();
devStatic.corpAreaId = bo.getCorpAreaId();
devStatic.devSNo = bo.getDevSno();
devStatic.devMac = bo.getDevMac();
devStatic.devPPPoE = bo.getDevPppoe();
devStatic.devADNo = bo.getDevAdNo();
devStatic.devStatus = RDevStatus.from_int(Integer.parseInt(bo.getDevStatus()));
devStatic.devCreateTime = bo.getDevCreateTime().getTime();
devStatic.devModifyTime = bo.getDevModifyTime().getTime();
devStatic.devSoapFlag = Boolean.parseBoolean(bo.getDevSoapFlag());
devStatic.devInformFlag = Boolean.parseBoolean(bo.getDevInformFlag());
devStatic.devRemark1 = bo.getDevRemark1();
devStatic.devRemark2 = bo.getDevRemark2();
devStatic.devRemark3 = bo.getDevRemark3();
devStatic.devRemark4 = bo.getDevRemark4();
devStatic.devRemark5 = bo.getDevRemark5();
devDynamic.devId = bo.getDevId();
devDynamic.connetReqURL = "";
devDynamic.devIp = "";
devDynamic.devOnline = false;
devDynamic.devOnlineTime = -999;
String devRegStatus = bo.getDevRegStatus();
if(devRegStatus == null || devRegStatus.isEmpty()){
devRegStatus = "0";
}
String devOwnerClass = bo.getDevOwnerClass();
if(devOwnerClass == null || devOwnerClass.isEmpty()){
devOwnerClass = "0";
}
devStaticDetail.devRegStatus =RDevRegStatus.from_int(Integer.parseInt(devRegStatus));
devStaticDetail.devOwnerClass =RDevOwnerClass.from_int(Integer.parseInt(devOwnerClass));
devStaticDetail.remark1 = bo.getRemark1();
devStaticDetail.remark2 = bo.getRemark2();
devStaticDetail.remark3 = bo.getRemark3();
devStaticDetail.remark4 = bo.getRemark4();
devStaticDetail.userSnNo = bo.getUserSnNo();
devStaticDetail.iptvAccess = bo.getIptvAccess();
devStaticDetail.bandAccess = bo.getBandAccess();
return struct;
}
@Override
public Result<ModifyOrderForm> modifyForm(Long orderId) {
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>()
.select("order_id",
"order_service_type",
"order_customer_kind",
"received_order_id",
"order_date",
"pppoe_account",
"ad_no"
)
.eq("order_id", orderId)
);
ModifyOrderForm form = orderInfoConverter.entity2ModifyForm(orderInfo);
return Result.success(form);
}
@Override
public Result<String> updateForm(ModifyOrderForm form) {
orderInfoMapper.update(null, new LambdaUpdateWrapper<OrderInfo>()
.eq(OrderInfo::getOrderId, form.getOrderId())
.set(OrderInfo::getOrderServiceType, form.getOrderServiceType())
.set(OrderInfo::getOrderDate, form.getOrderDate())
.set(OrderInfo::getAdNo, form.getAdNo())
.set(OrderInfo::getPppoeAccount, form.getPppoeAccount())
.set(OrderInfo::getOrderCustomerKind, form.getOrderCustomerKind())
.set(OrderInfo::getReceivedOrderId, form.getReceivedOrderId())
);
return Result.success();
}
}

@ -0,0 +1,37 @@
package com.bellmann.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.BasePageQuery;
import com.bellmann.common.result.PageResult;
import com.bellmann.converter.OrderServiceConverter;
import com.bellmann.mapper.OrderServiceMapper;
import com.bellmann.model.entity.OrderService;
import com.bellmann.model.vo.OrderInfoBusinessVO;
import com.bellmann.service.OrderServiceService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 李小林
* @since 2024-06-17
*/
@Service
@RequiredArgsConstructor
public class OrderServiceServiceImpl implements OrderServiceService {
private final OrderServiceMapper orderServiceMapper;
private final OrderServiceConverter orderServiceConverter;
@Override
public PageResult<OrderInfoBusinessVO> orderInfoBusinessPage(BasePageQuery query, Long orderId) {
int pageNum = query.getPageNum();
int pageSize = query.getPageSize();
Page<OrderService> page = new Page<>(pageNum,pageSize);
Page<OrderService> dataPage = orderServiceMapper.orderInfoBusinessPage(page,orderId);
return PageResult.success(orderServiceConverter.entity2PageVo(dataPage));
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,15 @@
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\OB.jar -DgroupId=com.corba -DartifactId=OB -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\OBEvent.jar -DgroupId=com.corba -DartifactId=OBEvent -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\OBNaming.jar -DgroupId=com.corba -DartifactId=OBNaming -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\OBNotify.jar -DgroupId=com.corba -DartifactId=OBNotify -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\OBTime.jar -DgroupId=com.corba -DartifactId=OBTime -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\capapi.jar -DgroupId=com.bellmann -DartifactId=capapi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\server.jar -DgroupId=com.bellmann -DartifactId=server -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\acsapi.jar -DgroupId=com.bellmann -DartifactId=acsapi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\orderapi.jar -DgroupId=com.bellmann -DartifactId=orderapi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\CloudApi.jar -DgroupId=com.bellmann -DartifactId=CloudApi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\resourceapi.jar -DgroupId=com.bellmann -DartifactId=resourceapi -Dversion=1.0 -Dpackaging=jar
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\postgresql-9.3-1103-jdbc3.jar -DgroupId=org.postgresql -DartifactId=postgresql -Dversion=9.3-1103-jdbc3 -Dpackaging=jar
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\postgresql-42.2.5.jar -DgroupId=org.postgresql -DartifactId=postgresql -Dversion=42.2.5 -Dpackaging=jar
call mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\postgresql-42.2.27.jar -DgroupId=org.postgresql -DartifactId=org.postgresql -Dversion=42.2.27 -Dpackaging=jar
mvn install:install-file -Dfile=D:\zj\itms_zj\itms_pg\lib\orderapi.jar -DgroupId=com.bellmann -DartifactId=orderapi -Dversion=1.0 -Dpackaging=jar

@ -0,0 +1,11 @@
call mvn install:install-file -Dfile=OB.jar -DgroupId=com.corba -DartifactId=OB -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=OBEvent.jar -DgroupId=com.corba -DartifactId=OBEvent -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=OBNaming.jar -DgroupId=com.corba -DartifactId=OBNaming -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=OBNotify.jar -DgroupId=com.corba -DartifactId=OBNotify -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=OBTime.jar -DgroupId=com.corba -DartifactId=OBTime -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=capapi.jar -DgroupId=com.bellmann -DartifactId=capapi -Dversion=2.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=server.jar -DgroupId=com.bellmann -DartifactId=server -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=acsapi.jar -DgroupId=com.bellmann -DartifactId=acsapi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=orderapi.jar -DgroupId=com.bellmann -DartifactId=orderapi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=CloudApi.jar -DgroupId=com.bellmann -DartifactId=CloudApi -Dversion=1.0 -Dpackaging=jar &
call mvn install:install-file -Dfile=resourceapi.jar -DgroupId=com.bellmann -DartifactId=resourceapi -Dversion=1.0 -Dpackaging=jar

Binary file not shown.

Binary file not shown.

@ -91,4 +91,106 @@
AND ITMS_DEVICE_STATIC.DEV_ID = #{devId}
AND ITMS_DEVTYPEVER_SYSDOMAIN_MAP.SYS_DOMAIN_ID = #{regionAreaId}
</select>
<select id="orderByDevSnoOui" resultType="com.bellmann.model.bo.DeviceDetailBO">
SELECT
ITMS_DEVICE_STATIC.DEV_ID,
ITMS_DEVICE_STATIC.TYPE_AND_VER_ID,
ITMS_DEVICE_STATIC.CUST_ID,
ITMS_DEVICE_STATIC.REGION_AREA_ID,
ITMS_DEVICE_STATIC.CORP_AREA_ID,
ITMS_DEVICE_STATIC.DEV_SNO,
ITMS_DEVICE_STATIC.DEV_MAC,
ITMS_DEVICE_STATIC.DEV_PPPOE,
ITMS_DEVICE_STATIC.DEV_AD_NO,
ITMS_DEVICE_STATIC.DEV_STATUS,
ITMS_DEVICE_STATIC.DEV_CREATE_TIME,
ITMS_DEVICE_STATIC.DEV_MODIFY_TIME,
ITMS_DEVICE_STATIC.DEV_SOAP_FLAG,
ITMS_DEVICE_STATIC.DEV_INFORM_FLAG,
ITMS_DEVICE_STATIC.DEV_REMARK1,
ITMS_DEVICE_STATIC.DEV_REMARK2,
ITMS_DEVICE_STATIC.DEV_REMARK3,
ITMS_DEVICE_STATIC.DEV_REMARK4,
ITMS_DEVICE_STATIC.DEV_REMARK5,
ITMS_DEVICE_DYNAMIC.CONNECT_REQ_URL,
ITMS_DEVICE_DYNAMIC.DEV_IP,
ITMS_DEVICE_DYNAMIC.DEV_ONLINE,
ITMS_DEVICE_DYNAMIC.DEV_ONLINE_TIME,
ITMS_DEVICE_STATIC_DETAIL.DEV_REG_STATUS,
ITMS_DEVICE_STATIC_DETAIL.DEV_OWNER_CLASS,
ITMS_DEVICE_STATIC_DETAIL.REMARK1,
ITMS_DEVICE_STATIC_DETAIL.REMARK2,
ITMS_DEVICE_STATIC_DETAIL.REMARK3,
ITMS_DEVICE_STATIC_DETAIL.REMARK4,
ITMS_DEVICE_STATIC_DETAIL.USER_SN_NO,
ITMS_DEVICE_STATIC_DETAIL.IPTV_ACCESS,
ITMS_DEVICE_STATIC_DETAIL.BAND_ACCESS
FROM
ITMS_DEVICE_STATIC
INNER JOIN ITMS_DEVICE_DYNAMIC ON ITMS_DEVICE_STATIC.DEV_ID = ITMS_DEVICE_DYNAMIC.DEV_ID
LEFT JOIN ITMS_DEVICE_STATIC_DETAIL ON ITMS_DEVICE_STATIC.DEV_ID = ITMS_DEVICE_STATIC_DETAIL.DEV_ID
INNER JOIN ITMS_DEVICE_TYPE_VER ON ITMS_DEVICE_STATIC.TYPE_AND_VER_ID = ITMS_DEVICE_TYPE_VER.TYPE_AND_VER_ID
INNER JOIN ITMS_DEVICE_TYPE ON ITMS_DEVICE_TYPE_VER.DEV_TYPE_ID = ITMS_DEVICE_TYPE.DEV_TYPE_ID
<where>
<if test="oui!=null and oui!=''">
AND ITMS_DEVICE_STATIC.DEV_REMARK3 = #{oui}
</if>
<if test="sno!=null and sno!=''">
AND ITMS_DEVICE_STATIC.DEV_SNO = = #{sno}
</if>
<if test="devRemark4!=null and devRemark4!=''">
AND ITMS_DEVICE_STATIC.DEV_REMARK4 = = #{devRemark4}
</if>
</where>
limit 1
</select>
<select id="orderByDevSnoOui" resultType="com.bellmann.model.bo.DeviceDetailBO">
SELECT
ITMS_DEVICE_STATIC.DEV_ID,
ITMS_DEVICE_STATIC.TYPE_AND_VER_ID,
ITMS_DEVICE_STATIC.CUST_ID,
ITMS_DEVICE_STATIC.REGION_AREA_ID,
ITMS_DEVICE_STATIC.CORP_AREA_ID,
ITMS_DEVICE_STATIC.DEV_SNO,
ITMS_DEVICE_STATIC.DEV_MAC,
ITMS_DEVICE_STATIC.DEV_PPPOE,
ITMS_DEVICE_STATIC.DEV_AD_NO,
ITMS_DEVICE_STATIC.DEV_STATUS,
ITMS_DEVICE_STATIC.DEV_CREATE_TIME,
ITMS_DEVICE_STATIC.DEV_MODIFY_TIME,
ITMS_DEVICE_STATIC.DEV_SOAP_FLAG,
ITMS_DEVICE_STATIC.DEV_INFORM_FLAG,
ITMS_DEVICE_STATIC.DEV_REMARK1,
ITMS_DEVICE_STATIC.DEV_REMARK2,
ITMS_DEVICE_STATIC.DEV_REMARK3,
ITMS_DEVICE_STATIC.DEV_REMARK4,
ITMS_DEVICE_STATIC.DEV_REMARK5,
ITMS_DEVICE_DYNAMIC.CONNECT_REQ_URL,
ITMS_DEVICE_DYNAMIC.DEV_IP,
ITMS_DEVICE_DYNAMIC.DEV_ONLINE,
ITMS_DEVICE_DYNAMIC.DEV_ONLINE_TIME,
ITMS_DEVICE_STATIC_DETAIL.DEV_REG_STATUS,
ITMS_DEVICE_STATIC_DETAIL.DEV_OWNER_CLASS,
ITMS_DEVICE_STATIC_DETAIL.REMARK1,
ITMS_DEVICE_STATIC_DETAIL.REMARK2,
ITMS_DEVICE_STATIC_DETAIL.REMARK3,
ITMS_DEVICE_STATIC_DETAIL.REMARK4,
ITMS_DEVICE_STATIC_DETAIL.USER_SN_NO,
ITMS_DEVICE_STATIC_DETAIL.IPTV_ACCESS,
ITMS_DEVICE_STATIC_DETAIL.BAND_ACCESS
FROM
ITMS_DEVICE_STATIC
INNER JOIN ITMS_DEVICE_DYNAMIC ON ITMS_DEVICE_STATIC.DEV_ID = ITMS_DEVICE_DYNAMIC.DEV_ID
LEFT JOIN ITMS_DEVICE_STATIC_DETAIL ON ITMS_DEVICE_STATIC.DEV_ID = ITMS_DEVICE_STATIC_DETAIL.DEV_ID
<where>
<if test="status!=null and status!=''">
AND ITMS_DEVICE_STATIC.DEV_STATUS = #{status}
</if>
<if test="pppoeAccount!=null and pppoeAccount!=''">
AND ITMS_DEVICE_STATIC.DEV_PPPOE = = #{pppoeAccount}
</if>
</where>
limit 1
</select>
</mapper>

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bellmann.mapper.DeviceTypeVerDetailMapper">
<select id="findDevAccessType" resultType="java.lang.String">
SELECT
DEV_ACCESS_TYPE
FROM
ITMS_DEVICE_TYPE_VER_DETAIL
WHERE
TYPE_AND_VER_ID = (
SELECT TYPE_AND_VER_ID
FROM ITMS_DEVICE_STATIC
WHERE DEV_AD_NO = #{adNo}
LIMIT 1
)
</select>
</mapper>

@ -84,4 +84,45 @@
and aa.pppoe_account = #{value}
</if>
</select>
<select id="getOrderById" resultType="com.bellmann.model.vo.OrderInfoVO">
SELECT
aa.order_id,
aa.received_order_id,
aa.received_order_lhs,
aa.order_remark,
aa.order_service_type,
aa.order_date,
aa.received_date,
aa.order_deal_date,
aa.order_deadline,
aa.ad_no,
aa.order_status,
aa.pppoe_account,
aa.user_sn_no,
aa.remark,
aa.user_sn_key,
aa.system_domain,
aa.order_customer_kind,
aa.order_done_flag,
aa.dummy_flag
FROM
ITMS_ORDER_INFO AA
WHERE
aa.order_id = #{orderId}
</select>
<select id="orderSnoOuiPppoeUnique" resultType="com.bellmann.model.entity.OrderInfo">
SELECT
aa.order_id,
aa.unique_user_id
aa.pppoe_account,
aa.dev_sno_oui,
FROM
ITMS_ORDER_INFO AA
LEFT JOIN ITMS_ORDER_INFO_DETAIL BB ON AA.ORDER_ID = BB.ORDER_ID
where
aa.order_id &gt;= #{orderId}
</select>
</mapper>

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bellmann.mapper.OrderServiceMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.bellmann.model.entity.OrderService">
<id column="order_id" property="orderId" />
<result column="service" property="service" />
<result column="service_id" property="serviceId" />
<result column="service_flag" property="serviceFlag" />
<result column="args_name" property="argsName" />
<result column="args_value_new" property="argsValueNew" />
<result column="args_value_old" property="argsValueOld" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
order_id, service, service_id, service_flag, args_name, args_value_new, args_value_old
</sql>
<select id="orderInfoBusinessPage" resultMap="BaseResultMap">
SELECT
DISTINCT
order_id,
service,
service_flag
FROM
itms_order_service
WHERE
order_id = #{orderId}
</select>
</mapper>
Loading…
Cancel
Save