From 73195f372cdb8d59b74ee86b76fbf4c9595caea1 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 27 十月 2025 19:01:41 +0800
Subject: [PATCH] 虚拟号修改
---
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java | 82 +++++++++++++++++++++++++++++++----------
1 files changed, 62 insertions(+), 20 deletions(-)
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
index d56f51a..eae3271 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -15,10 +15,7 @@
import com.ruoyi.admin.utils.DescribeInstances;
import com.ruoyi.admin.utils.HttpUtil;
import com.ruoyi.admin.utils.PrivateNumberUtil;
-import com.ruoyi.admin.vo.OrderByServeRecordVO;
-import com.ruoyi.admin.vo.OrderDetailVO;
-import com.ruoyi.admin.vo.OrderReasinDto;
-import com.ruoyi.admin.vo.ReassinDto;
+import com.ruoyi.admin.vo.*;
import com.ruoyi.admin.voice.util.AXBUtil;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.BaseEntity;
@@ -113,6 +110,8 @@
private PrivateNumberUtil privateNumberUtil;
@Autowired
private IamConfigService iamConfigService;
+ @Autowired
+ private OrderRecordingService orderRecordingService;
/**
* 雪花算法类
*/
@@ -357,9 +356,10 @@
}else {
order.setOrderMoney(one.getRecoveryPrice());
}
- Boolean data = orderClient.save(order).getData();
- if (null == data) {
- return R.fail(orderClient.save(order).getMsg());
+ R<String> saveResult = orderClient.save(order);
+ String orderId = saveResult.getData();
+ if (!StringUtils.hasLength(orderId)) {
+ return R.fail(saveResult.getMsg());
}
System.out.println("服务人员id:" + order.getServerId());
ChannelHandlerContext context = NettyChannelMap.getData(String.valueOf(order.getServerId()));
@@ -368,7 +368,31 @@
System.out.println("服务端发送消息到: " + order.getServerId());
NettyWebSocketController.sendMsgToClient(context, "您有一条新的订单,请注意查收!");
}
- return data ? R.ok() : R.fail();
+
+ if (null != order.getServerId()) {
+ MasterWorker masterWorker = masterWorkerService.lambdaQuery()
+ .eq(MasterWorker::getId, order.getServerId())
+ .eq(MasterWorker::getIsDelete, 0).one();
+ // 虚拟号码配置
+ IamConfig iamConfig = iamConfigService.getById(1);
+ if(Objects.nonNull(order.getIsOpenVirtualNumber()) && order.getIsOpenVirtualNumber() == 1){
+ try{
+ // 虚拟号码 师傅号码备案
+ String fileName = privateNumberUtil.uploadNumberFile(masterWorker.getProfilePicture()).getData();
+ R r = privateNumberUtil.addANumber(masterWorker.getPhone(), masterWorker.getRealName(), masterWorker.getIdNumber(), fileName);
+ }catch (Exception e){
+ throw new GlobalException("虚拟号码绑定异常!");
+ }
+ // 虚拟号码绑定
+ String result = AXBUtil.axbBindNumber(iamConfig.getAppKey(), iamConfig.getAppSecret(), iamConfig.getVirtualNumber(), order.getReservationPhone(), masterWorker.getPhone());
+ // 存储绑定后的唯一标识
+ JSONObject jsonObject = JSONObject.parseObject(result);
+ String subscriptionId = jsonObject.getString("subscriptionId");
+ orderClient.updateSubscriptionId(orderId, subscriptionId,iamConfig.getVirtualNumber());
+ }
+ }
+
+ return StringUtils.hasLength(orderId) ? R.ok() : R.fail();
}
@@ -401,6 +425,17 @@
.eq(MasterWorker::getIsDelete, 0).one();
order.setServerName(masterWorker.getRealName());
order.setServerPhone(masterWorker.getPhone());
+
+ IamConfig iamConfig = iamConfigService.getById(1);
+ if(Objects.nonNull(order.getIsOpenVirtualNumber()) && order.getIsOpenVirtualNumber() == 1){
+ // 虚拟号码绑定
+ String result = AXBUtil.axbBindNumber(iamConfig.getAppKey(), iamConfig.getAppSecret(), iamConfig.getVirtualNumber(), order.getReservationPhone(), masterWorker.getPhone());
+ // 存储绑定后的唯一标识
+ JSONObject jsonObject = JSONObject.parseObject(result);
+ String subscriptionId = jsonObject.getString("subscriptionId");
+ orderClient.updateSubscriptionId(orderData.getId(), subscriptionId,iamConfig.getVirtualNumber());
+ }
+
} else {
// 待派单状态
order.setState(Constants.ZERO);
@@ -442,15 +477,21 @@
MasterWorker masterWorker = masterWorkerService.lambdaQuery()
.eq(MasterWorker::getId, orderReasinDto.getWorkerId())
.eq(MasterWorker::getIsDelete, 0).one();
+ Order order1 = orderClient.detail(orderId.getOrderId()).getData();
+ if(Objects.nonNull(order1.getIsOpenVirtualNumber()) && order1.getIsOpenVirtualNumber() == 1){
+ try{
+ // 虚拟号码 师傅号码备案
+ String fileName = privateNumberUtil.uploadNumberFile(masterWorker.getProfilePicture()).getData();
+ R r = privateNumberUtil.addANumber(masterWorker.getPhone(), masterWorker.getRealName(), masterWorker.getIdNumber(), fileName);
+ if(r.getCode() == 500){
+ throw new GlobalException(r.getMsg());
+ }
+ }catch (Exception e){
+ throw new GlobalException("虚拟号码绑定异常!");
+ }
+ }
Order order = orderClient.exchangeOrder(orderId.getType(), orderId.getOrderId(), orderReasinDto.getWorkerId(),
masterWorker.getRealName(), masterWorker.getPhone()).getData();
- try{
- // 虚拟号码 师傅号码备案
- String fileName = privateNumberUtil.uploadNumberFile(masterWorker.getProfilePicture()).getData();
- R r = privateNumberUtil.addANumber(masterWorker.getPhone(), masterWorker.getRealName(), masterWorker.getIdNumber(), fileName);
- }catch (Exception e){
- throw new GlobalException("虚拟号码绑定异常!");
- }
// 虚拟号码配置
IamConfig iamConfig = iamConfigService.getById(1);
// 订单派单
@@ -474,7 +515,7 @@
AXBUtil.axbModifyNumber(iamConfig.getAppKey(),iamConfig.getAppSecret(),order.getSubscriptionId(), order.getReservationPhone(), masterWorker.getPhone());
}else {
// 虚拟号码绑定
- String result = AXBUtil.axbBindNumber(iamConfig.getAppKey(), iamConfig.getAppSecret(), order.getOrderNumber(), order.getReservationPhone(), masterWorker.getPhone());
+ String result = AXBUtil.axbBindNumber(iamConfig.getAppKey(), iamConfig.getAppSecret(), iamConfig.getVirtualNumber(), order.getReservationPhone(), masterWorker.getPhone());
// 存储绑定后的唯一标识
JSONObject jsonObject = JSONObject.parseObject(result);
String subscriptionId = jsonObject.getString("subscriptionId");
@@ -488,7 +529,7 @@
orderClient.updateState(order.getId(), 7);
if(Objects.nonNull(order.getIsOpenVirtualNumber()) && order.getIsOpenVirtualNumber() == 1){
// 虚拟号码绑定
- String result = AXBUtil.axbBindNumber(iamConfig.getAppKey(), iamConfig.getAppSecret(), order.getOrderNumber(), order.getReservationPhone(), masterWorker.getPhone());
+ String result = AXBUtil.axbBindNumber(iamConfig.getAppKey(), iamConfig.getAppSecret(), iamConfig.getVirtualNumber(), order.getReservationPhone(), masterWorker.getPhone());
// 存储绑定后的唯一标识
JSONObject jsonObject = JSONObject.parseObject(result);
String subscriptionId = jsonObject.getString("subscriptionId");
@@ -1001,9 +1042,10 @@
}else {
order.setOrderMoney(one.getRecoveryPrice());
}
- Boolean data = orderClient.save(order).getData();
- if (null == data) {
- return R.fail(orderClient.save(order).getMsg());
+ R<String> saveResult = orderClient.save(order);
+ String orderId = saveResult.getData();
+ if (!StringUtils.hasLength(orderId)) {
+ return R.fail(saveResult.getMsg());
}
System.out.println("服务人员id:" + order.getServerId());
ChannelHandlerContext context = NettyChannelMap.getData(String.valueOf(order.getServerId()));
--
Gitblit v1.7.1