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