Commit 001039de authored by shangtx's avatar shangtx

feat: 下单短信

parent 6ff6b06f
......@@ -2,12 +2,16 @@ package com.onsiteservice.common.service;
import com.alibaba.fastjson.JSONObject;
import com.onsiteservice.common.redis.RedisUtils;
import com.onsiteservice.constant.enums.ServiceUserTypeEnum;
import com.onsiteservice.dao.mapper.user.UserMapper;
import com.onsiteservice.entity.user.User;
import com.onsiteservice.util.aliyun.SmsUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.Map;
......@@ -44,6 +48,9 @@ public class CommonSmsService {
@Value("${aliyun.sms.template-code.revaluator}")
private String revaluatorTmpCode; // 通知客户已重新指派估价员
@Value("${aliyun.sms.template-code.submit}")
private String submitOrderTmpCode;
@Value("${aliyun.sms.sign}")
private String sign;
......@@ -52,6 +59,9 @@ public class CommonSmsService {
@Resource
private RedisUtils redisUtil;
@Resource
private UserMapper userMapper;
/***
* 禁用短信方法
*/
......@@ -140,4 +150,20 @@ public class CommonSmsService {
}
}
public void submit(String serviceName) {
Condition userCondition = new Condition(User.class);
userCondition.createCriteria().andEqualTo("roleType", ServiceUserTypeEnum.ADMIN.getId())
.andIsNotNull("phone");
var userList = userMapper.selectByCondition(userCondition);
if (userList.isEmpty()) {
return;
}
String[] phones = userList.stream().map(User::getPhone).toArray(String[]::new);
try {
smsUtils.send(sign, submitOrderTmpCode, JSONObject.toJSONString(Map.of( "name", serviceName)), phones);
} catch (Exception e) {
log.error("发送短信错误", e);
}
}
}
......@@ -44,6 +44,10 @@ public class SmsUtils {
*/
@Async // 如果在mq里就不需要再异步线程了否则响应数据返回时间不确定
public String send(String sign, String templateCode, String templateParam, String... phoneNums) throws ClientException {
return sendSync(sign, templateCode, templateParam, phoneNums);
}
public String sendSync(String sign, String templateCode, String templateParam, String... phoneNums) throws ClientException {
if (phoneNums.length > 1000) {
return "最大发送数量不能超过1000";
}
......
......@@ -25,4 +25,5 @@ aliyun:
paid: SMS_247560593 # 通知业务人员客户已完成支付
valuator: SMS_247605613 # 通知客户已派估价员
revaluator: SMS_247620558 # 通知客户已重新指派估价员
submit: SMS_248815347 # 下单
......@@ -25,6 +25,7 @@ aliyun:
paid: SMS_226505027 # 通知业务人员客户已完成支付 开发环境使用优惠券发放替代
valuator: SMS_226505027 # 通知客户已派估价员 开发环境使用优惠券发放替代
revaluator: SMS_226505027 # 通知客户已重新指派估价员 开发环境使用优惠券发放替代
submit: SMS_226505027 # 客户下单
......
......@@ -222,6 +222,7 @@ public class ServiceOrderBizService extends AbstractMapper<ServiceOrder> {
// 记录流程
if (result == 1) {
recordComponent.recordProcess(serviceOrder.getId(), ServiceOrderStatusEnum.RESERVE.getStatus(), ServiceOrderStatusEnum.RESERVE.getMsg(), sourceEnum, null, null, null);
commonSmsService.submit(serviceOrder.getServiceName());
}
return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment