|
|
|
@ -17,9 +17,7 @@ import com.bellmann.converter.OrderInfoConverter; |
|
|
|
|
import com.bellmann.mapper.*; |
|
|
|
|
import com.bellmann.model.bo.DevOnlineStatus; |
|
|
|
|
import com.bellmann.model.bo.DeviceDetailBO; |
|
|
|
|
import com.bellmann.model.entity.DeviceStatic; |
|
|
|
|
import com.bellmann.model.entity.OrderInfo; |
|
|
|
|
import com.bellmann.model.entity.OrderService; |
|
|
|
|
import com.bellmann.model.entity.*; |
|
|
|
|
import com.bellmann.model.form.MergeOrderForm; |
|
|
|
|
import com.bellmann.model.form.ModifyOrderForm; |
|
|
|
|
import com.bellmann.model.query.DeviceOrderQuery; |
|
|
|
@ -63,12 +61,16 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
|
|
|
|
|
private final OrderServiceMapper orderServiceMapper; |
|
|
|
|
|
|
|
|
|
private final MergeOrderServiceMapper mergeOrderServiceMapper; |
|
|
|
|
|
|
|
|
|
private final DeviceStaticMapper deviceStaticMapper; |
|
|
|
|
|
|
|
|
|
private final OrderInfoConverter orderInfoConverter; |
|
|
|
|
|
|
|
|
|
private final DeviceTypeVerMapper deviceTypeVerMapper; |
|
|
|
|
|
|
|
|
|
private final MergeOrderInfoMapper mergeOrderInfoMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Page<OrderInfoTableVO> tablePage(SelectQuery query) { |
|
|
|
|
int pageNum = query.getPageNum(); |
|
|
|
@ -181,6 +183,31 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
return Result.success(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<String> mergeUpdateOrderStatus(Long orderId, String orderStatus) { |
|
|
|
|
if (OrderStatusEnum.MANUAL_INTERVENTION.getValue().equals(orderStatus)) { |
|
|
|
|
throw new BusinessException(ResultCode.BAN_UPDATE_ORDER_STATUS_MANUAL_INTERVENTION); |
|
|
|
|
} |
|
|
|
|
MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper<MergeOrderInfo>() |
|
|
|
|
.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); |
|
|
|
|
} |
|
|
|
|
mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper<MergeOrderInfo>() |
|
|
|
|
.eq(MergeOrderInfo::getOrderId, orderId) |
|
|
|
|
.set(MergeOrderInfo::getOrderStatus, orderStatus) |
|
|
|
|
); |
|
|
|
|
if (OrderStatusEnum.NOT_PROCESSED.getValue().equals(orderStatus)) { |
|
|
|
|
mergeOrderServiceMapper.update(null, new LambdaUpdateWrapper<MergeOrderService>() |
|
|
|
|
.eq(MergeOrderService::getOrderId, orderId) |
|
|
|
|
.set(MergeOrderService::getServiceId, -999) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
return Result.success(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<String> executeOrder(Long orderId) { |
|
|
|
|
OrderInfo orderInfo = orderInfoMapper.selectOne(new QueryWrapper<OrderInfo>() |
|
|
|
@ -255,6 +282,80 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
return Result.success(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<String> executeMergeOrder(Long orderId) { |
|
|
|
|
MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper<MergeOrderInfo>() |
|
|
|
|
.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); |
|
|
|
|
} |
|
|
|
|
mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper<MergeOrderInfo>() |
|
|
|
|
.eq(MergeOrderInfo::getOrderId, orderId) |
|
|
|
|
.set(MergeOrderInfo::getOrderStatus, OrderStatusEnum.NOT_PROCESSED.getValue()) |
|
|
|
|
.set(MergeOrderInfo::getOrderDoneFlag, OrderDoneFlagEnum.THE_ORDER_HAS_NOT_BEEN_RETURNED.getValue()) |
|
|
|
|
); |
|
|
|
|
boolean ouiFlag = false; |
|
|
|
|
boolean pppoeFlag = false; |
|
|
|
|
boolean uniqueUserIdFlag = false; |
|
|
|
|
DeviceDetailBO bo = null; |
|
|
|
|
MergeOrderInfo obj = mergeOrderInfoMapper.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()) |
|
|
|
|
) { |
|
|
|
|
DeviceDetailBO deviceDetailBO = deviceStaticMapper.orderByDevSnoOui(null, null, uniqueUserId); |
|
|
|
|
if (deviceDetailBO != null) { |
|
|
|
|
bo = deviceDetailBO; |
|
|
|
|
uniqueUserIdFlag = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
String pppoeAccount = obj.getPppoeAccount(); |
|
|
|
|
if (pppoeAccount != null && !pppoeAccount.isEmpty() && !ouiFlag && uniqueUserIdFlag) { |
|
|
|
|
DeviceDetailBO deviceDetailBO = deviceStaticMapper.orderByPppoeAccount(DevStatusEnum.NORMAL.getValue(), pppoeAccount); |
|
|
|
|
if (deviceDetailBO != null) { |
|
|
|
|
bo = deviceDetailBO; |
|
|
|
|
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 = new RDeviceDynamicStruct(); |
|
|
|
@ -328,6 +429,23 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
return Result.success(form); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<ModifyOrderForm> mergeModifyForm(Long orderId) { |
|
|
|
|
MergeOrderInfo orderInfo = mergeOrderInfoMapper.selectOne(new QueryWrapper<MergeOrderInfo>() |
|
|
|
|
.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.mergeEntity2MergeModifyForm(orderInfo); |
|
|
|
|
return Result.success(form); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<String> updateForm(ModifyOrderForm form) { |
|
|
|
|
orderInfoMapper.update(null, new LambdaUpdateWrapper<OrderInfo>() |
|
|
|
@ -342,6 +460,20 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
return Result.success(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<String> updateMergeOrderForm(ModifyOrderForm form) { |
|
|
|
|
mergeOrderInfoMapper.update(null, new LambdaUpdateWrapper<MergeOrderInfo>() |
|
|
|
|
.eq(MergeOrderInfo::getOrderId, form.getOrderId()) |
|
|
|
|
.set(MergeOrderInfo::getOrderServiceType, form.getOrderServiceType()) |
|
|
|
|
.set(MergeOrderInfo::getOrderDate, form.getOrderDate()) |
|
|
|
|
.set(MergeOrderInfo::getAdNo, form.getAdNo()) |
|
|
|
|
.set(MergeOrderInfo::getPppoeAccount, form.getPppoeAccount()) |
|
|
|
|
.set(MergeOrderInfo::getOrderCustomerKind, form.getOrderCustomerKind()) |
|
|
|
|
.set(MergeOrderInfo::getReceivedOrderId, form.getReceivedOrderId()) |
|
|
|
|
); |
|
|
|
|
return Result.success(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<String> bindingOuiSno(String devOuiSno, Long orderId) { |
|
|
|
|
checkDevice(devOuiSno, orderId); |
|
|
|
@ -487,4 +619,50 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
} |
|
|
|
|
return Result.failed(result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Page<OrderInfoTableVO> mergePage(SelectQuery query) { |
|
|
|
|
int pageNum = query.getPageNum(); |
|
|
|
|
int pageSize = query.getPageSize(); |
|
|
|
|
Object value = query.getSelectValue(); |
|
|
|
|
String column = query.getSelectName(); |
|
|
|
|
Page<OrderInfoTableVO> page = new Page<>(pageNum, pageSize); |
|
|
|
|
Long domain = SecurityUtils.getGroupId(); |
|
|
|
|
List<OrderInfoTableVO> list = orderInfoMapper.mergePage(page, column, value, domain); |
|
|
|
|
return getOrderInfoTableVOPage(page, list); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Result<OrderInfoVO> getMergeOrderById(Long orderId) { |
|
|
|
|
OrderInfoVO orderInfoVO = mergeOrderInfoMapper.getMergeOrderById(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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|