省公司短信平台
This commit is contained in:
parent
6f3f7d9c32
commit
5c87a37002
|
|
@ -17,6 +17,13 @@
|
|||
|
||||
<dependencies>
|
||||
|
||||
<!-- 省公司短信平台sms-util -->
|
||||
<dependency>
|
||||
<groupId>com.ahsbd</groupId>
|
||||
<artifactId>sms-util</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- SpringCloud Openfeign -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
|
|
|
|||
|
|
@ -17,4 +17,7 @@ public class BmConfigItems {
|
|||
/** 物资状态流转: 【】允许一个新购单的部分物资提前流转到下一个阶段 */
|
||||
public static final String BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER = "allow_purchase_part_transfer";
|
||||
|
||||
// 安徽省公司短信平台key
|
||||
public static final String ANHUI_COMPANY_SMS_KEY = "Wq1FZobZC5iJIAGKWh6gpKUmdGKBOQq7koHmx+Vg49g/dSjSFlw+2qRQmMmyXvJT";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ public class DevInfoController extends BaseController {
|
|||
public AjaxResult hotList(DevInfoVo devInfo) {
|
||||
return devInfoService.selectDevInfoHotList(devInfo);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "关联装备列表")
|
||||
@GetMapping("/associationList")
|
||||
public AjaxResult associationList(DevInfoVo devInfo) {
|
||||
|
|
|
|||
|
|
@ -187,6 +187,9 @@ public class OrderController extends BaseController {
|
|||
if (CollectionUtils.isEmpty(list)) {
|
||||
return AjaxResult.error("请先上传合同");
|
||||
}
|
||||
if (list.get(0).getBmFileInfoList().isEmpty()) {
|
||||
return AjaxResult.error("请先上传合同附件");
|
||||
}
|
||||
String wordUrl = list.get(0).getBmFileInfoList().get(0).getFileUrl();
|
||||
String contractCode = list.get(0).getContractCode();
|
||||
InputStream inputStream = new URL(wordUrl).openStream();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
package com.bonus.material.order.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.ah.sbd.SmsTool;
|
||||
import com.ah.sbd.utils.param.BatchSmsByContentParam;
|
||||
import com.ah.sbd.utils.param.SmsParam;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.bonus.common.biz.constant.BmConfigItems;
|
||||
import com.bonus.common.biz.constant.MaterialConstants;
|
||||
import com.bonus.common.biz.enums.MaStatusEnum;
|
||||
import com.bonus.common.biz.enums.MessageTypeEnum;
|
||||
|
|
@ -12,7 +17,6 @@ import com.bonus.common.core.utils.DateUtils;
|
|||
import com.bonus.common.core.utils.SpringUtils;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.common.core.utils.encryption.Sm4Utils;
|
||||
import com.bonus.common.core.utils.sms.SmsUtils;
|
||||
import com.bonus.common.redis.service.RedisService;
|
||||
import com.bonus.common.security.service.SmsService;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
|
|
@ -43,7 +47,6 @@ import java.text.SimpleDateFormat;
|
|||
import java.util.*;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author:liang.chao
|
||||
|
|
@ -74,10 +77,7 @@ public class OrderServiceImpl implements OrderService {
|
|||
@Resource
|
||||
private RedisService redisService;
|
||||
|
||||
@Resource
|
||||
private SmsService smsService;
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
|
|
@ -115,10 +115,11 @@ public class OrderServiceImpl implements OrderService {
|
|||
orderMapper.updateMaStatus(orderDetailDto);
|
||||
if (devPersonPhone != null) {
|
||||
if (devPersonPhone.length() == 11) {
|
||||
String sendResult = SmsUtils.smsToken(devPersonPhone, "订单编号:" + code + "已下单,请尽快处理。", "");
|
||||
System.out.println("短信发送结果:" + sendResult);
|
||||
JSONObject sendResult = SmsTool.sendSms(new SmsParam(devPersonPhone, "订单编号:" + code + "已下单,请尽快处理。"), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
|
||||
System.out.println("短信发送结果:" + sendResult.toString());
|
||||
} else if (devPersonPhone.length() > 11) {
|
||||
SmsUtils.smsToken(Sm4Utils.decrypt(devPersonPhone), "订单编号:" + code + "已下单,请尽快处理。", "");
|
||||
JSONObject sendResult = SmsTool.sendSms(new SmsParam(Sm4Utils.decrypt(devPersonPhone), "订单编号:" + code + "已下单,请尽快处理。"), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
|
||||
System.out.println("短信发送结果:" + sendResult.toString());
|
||||
} else {
|
||||
System.err.println("-----------用户绑定手机号,格式异常!!!---------------");
|
||||
}
|
||||
|
|
@ -138,19 +139,6 @@ public class OrderServiceImpl implements OrderService {
|
|||
orderDetailDto.setOrderId(orderInfoDto.getOrderId());
|
||||
orderMapper.insertOrderDetail(orderDetailDto);
|
||||
}
|
||||
String loginUserPhone = SecurityUtils.getLoginUser().getSysUser().getPhonenumber();
|
||||
if (loginUserPhone != null && !loginUserPhone.isEmpty()) {
|
||||
if (loginUserPhone.length() == 11) {
|
||||
SmsUtils.smsToken(loginUserPhone, "订单编号:" + code + "已下单,请尽快处理。", "");
|
||||
} else if (loginUserPhone.length() > 11) {
|
||||
SmsUtils.smsToken(Sm4Utils.decrypt(loginUserPhone), "订单编号:" + code + "已下单,请尽快处理。", "");
|
||||
} else {
|
||||
System.err.println("-----------用户绑定手机号,格式异常!!!---------------");
|
||||
}
|
||||
} else {
|
||||
System.err.println("-----------用户未绑定手机号,获取登录手机号为空---------------");
|
||||
}
|
||||
|
||||
}
|
||||
TmTask tmTask = new TmTask();
|
||||
tmTask.setTaskType(TmTaskTypeEnum.TM_TASK_ORDER.getTaskTypeId());
|
||||
|
|
@ -297,6 +285,7 @@ public class OrderServiceImpl implements OrderService {
|
|||
return orderInfoDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer updateOrderStatus(OrderDetailDto orderInfoDto) {
|
||||
List<OrderDetailDto> dtos = orderMapper.getOrderDetailsByOrderId(orderInfoDto.getOrderId());
|
||||
// 针对于接单操作,生成6位数取件码,合并出库和收货操作
|
||||
|
|
@ -357,9 +346,11 @@ public class OrderServiceImpl implements OrderService {
|
|||
// 订单完成,修改装备为下架状态
|
||||
if (orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_FINISHED.getStatus().toString())) {
|
||||
if (!dtos.isEmpty() && CollectionUtil.isNotEmpty(dtos)) {
|
||||
String orderCode = "";
|
||||
if (CollectionUtil.isNotEmpty(orderInfoDto.getMaIds())) {
|
||||
for (OrderDetailDto dto : dtos) {
|
||||
if (orderInfoDto.getMaIds().contains(dto.getMaId())) {
|
||||
orderCode = dto.getOrderCode();
|
||||
dto.setMaStatus(MaStatusEnum.ON_HIRE.getCode().toString());
|
||||
orderMapper.updateDeviceStatus(dto);
|
||||
}
|
||||
|
|
@ -370,7 +361,7 @@ public class OrderServiceImpl implements OrderService {
|
|||
orderMapper.updateDeviceStatus(dto);
|
||||
}
|
||||
}
|
||||
sendMsgToSms(Arrays.asList(dtos.get(0).getBuyerPhoneNumber(), dtos.get(0).getSellerPhoneNumber()), orderInfoDto.getOrderCode() + "订单已完成。");
|
||||
sendMsgToSms(Arrays.asList(dtos.get(0).getBuyerPhoneNumber(), dtos.get(0).getSellerPhoneNumber()), orderCode + "订单已完成。");
|
||||
}
|
||||
}
|
||||
String userName = SecurityUtils.getLoginUser().getUsername();
|
||||
|
|
@ -383,16 +374,18 @@ public class OrderServiceImpl implements OrderService {
|
|||
tmTask.setTaskStatus(minOrderStatus.getAsInt());
|
||||
tmTask.setCode(dtos.get(0).getOrderCode());
|
||||
if (orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_PENDING_SHIPMENT.getStatus().toString()) ||
|
||||
orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_TERMINATED.getStatus().toString())) {
|
||||
orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_TERMINATED.getStatus().toString()))
|
||||
{
|
||||
tmTask.setNoticeCompanyId(tmTask.getBuyerCompanyId());
|
||||
sendMsgToSms(Collections.singletonList(dtos.get(0).getBuyerPhoneNumber()), dtos.get(0).getOrderCode() + "订单已出库,请注意查收。");
|
||||
sendMsgToSms(Arrays.asList(dtos.get(0).getBuyerPhoneNumber()), dtos.get(0).getOrderCode() + "订单已接单,请注意查收。");
|
||||
|
||||
} else if (orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_RECEIVE.getStatus().toString()) ||
|
||||
orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_AWAITING_RECEIPT.getStatus().toString()) ||
|
||||
orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_UNDER_LEASE.getStatus().toString()) ||
|
||||
orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_REPAIRED.getStatus().toString())) {
|
||||
orderInfoDto.getOrderStatus().equals(OrderStatusEnum.ORDER_REPAIRED.getStatus().toString()))
|
||||
{
|
||||
tmTask.setNoticeCompanyId(tmTask.getSellerCompanyId());
|
||||
sendMsgToSms(Collections.singletonList(dtos.get(0).getBuyerPhoneNumber()), dtos.get(0).getOrderCode() + "订单已接单,待出库。");
|
||||
|
||||
sendMsgToSms(Arrays.asList(dtos.get(0).getBuyerPhoneNumber()), dtos.get(0).getOrderCode() + "订单已接单,请注意查收。");
|
||||
}
|
||||
tmTaskMapper.updateTaskStatus(tmTask);
|
||||
}
|
||||
|
|
@ -404,6 +397,9 @@ public class OrderServiceImpl implements OrderService {
|
|||
bmMessage.setCreateTime(DateUtils.getNowDate());
|
||||
Map<String, String> maMachineMap = remoteConfig.getDictValue(MaterialConstants.DICT_TYPE_ORDER_STATUS);
|
||||
bmMessage.setMessageContent("您好,您的订单状态已变更为" + maMachineMap.get(orderInfoDto.getOrderStatus()) + ",请及时查看");
|
||||
if (Objects.equals(orderInfoDto.getOrderStatus(), OrderStatusEnum.ORDER_AWAITING_RECEIPT.getStatus().toString())) {
|
||||
sendMsgToSms(Arrays.asList(dto.getSellerPhoneNumber()), dto.getOrderCode() + "订单已确认收货。");
|
||||
}
|
||||
bmMessage.setMessageType(String.valueOf(MessageTypeEnum.ORDER_MESSAGE.getType()));
|
||||
bmMessage.setUuid(String.valueOf(UUID.randomUUID()));
|
||||
bmMessage.setFromCompany(0L);
|
||||
|
|
@ -443,43 +439,40 @@ public class OrderServiceImpl implements OrderService {
|
|||
* @param phoneNumbers 电话号码列表,可能包含无效或重复的号码
|
||||
* @param msg 要发送的短信消息内容
|
||||
* @return 发送短信的结果,具体形式依赖于SmsUtils.smsToken的实现
|
||||
* 此方法首先检查电话号码列表是否为空如果为空,则直接返回空字符串接下来,它会移除列表中所有为空的电话号码,
|
||||
* 然后对列表中超过11位的电话号码进行解密处理
|
||||
* 确保只有有效的电话号码被用来发送短信
|
||||
* 此方法首先检查电话号码列表是否为空,如果为空,则直接返回空字符串。
|
||||
* 接下来,它会移除列表中所有为空的电话号码,
|
||||
* 然后对列表中超过11位的电话号码进行解密处理,
|
||||
* 确保只有有效的电话号码被用来发送短信。
|
||||
*/
|
||||
private String sendMsgToSms(List<String> phoneNumbers, String msg) {
|
||||
// 检查电话号码列表是否为空
|
||||
if (CollectionUtils.isEmpty(phoneNumbers)) {
|
||||
// 检查电话号码列表和消息内容是否有效
|
||||
if (CollectionUtils.isEmpty(phoneNumbers) || StringUtils.isBlank(msg)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 先用迭代器
|
||||
Iterator<String> iterator = phoneNumbers.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
String phoneNumber = iterator.next();
|
||||
if (StringUtils.isEmpty(phoneNumber)) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
// 过滤掉无效的电话号码
|
||||
phoneNumbers.removeIf(StringUtils::isEmpty);
|
||||
|
||||
// 遍历电话号码列表
|
||||
for (String phoneNumber : phoneNumbers) {
|
||||
if (StringUtils.isEmpty(phoneNumber)) {
|
||||
continue;
|
||||
}
|
||||
// 对超过11位的电话号码进行解密处理
|
||||
if (phoneNumber.length() > 11) {
|
||||
Sm4Utils.decrypt(phoneNumber);
|
||||
}
|
||||
}
|
||||
// 对超过11位的电话号码进行解密处理
|
||||
phoneNumbers.replaceAll(phoneNumber ->
|
||||
phoneNumber.length() > 11 ? Sm4Utils.decrypt(phoneNumber) : phoneNumber
|
||||
);
|
||||
|
||||
// 使用处理后的电话号码列表发送短信
|
||||
return SmsUtils.smsToken(String.join(",", phoneNumbers), msg, "");
|
||||
// 根据电话号码数量发送短信
|
||||
if (phoneNumbers.isEmpty()) {
|
||||
return "";
|
||||
} else if (phoneNumbers.size() == 1) {
|
||||
JSONObject sendResult = SmsTool.sendSms(new SmsParam(phoneNumbers.get(0), msg), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
|
||||
return sendResult.toString();
|
||||
} else {
|
||||
JSONObject sendResult = SmsTool.sendSms(new BatchSmsByContentParam(phoneNumbers, msg), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
|
||||
return sendResult.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 生成六位随机数取件码
|
||||
* @return
|
||||
*/
|
||||
public static String generateSixDigitNumber() {
|
||||
// 生成一个六位数的随机数,范围是 100000 到 999999
|
||||
|
|
|
|||
Loading…
Reference in New Issue