为系统用户添加代理组织

This commit is contained in:
liuchengqian 2022-07-06 15:43:26 +08:00
parent 15cbce2cc2
commit 83a0563f66
9 changed files with 249 additions and 380 deletions

View File

@ -1,20 +0,0 @@
package com.xkrs.dao;
import com.xkrs.model.entity.AgentCompanyEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface AgentCompanyDao extends JpaRepository<AgentCompanyEntity, Long>, JpaSpecificationExecutor<AgentCompanyEntity> {
@Query(value = "SELECT * FROM agent_company WHERE company_name = ?1 LIMIT 1", nativeQuery = true)
AgentCompanyEntity selectCompanyNameEquals(String companyName);
@Query(value = "SELECT * FROM agent_company WHERE company_name != ?1", nativeQuery = true)
List<AgentCompanyEntity> selectCompanyNameNotEquals(String companyName);
}

View File

@ -0,0 +1,11 @@
package com.xkrs.dao;
import com.xkrs.model.entity.AgentOrgEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Component;
@Component
public interface AgentOrgDao extends JpaRepository<AgentOrgEntity, Long>, JpaSpecificationExecutor<AgentOrgEntity> {
}

View File

@ -1,155 +0,0 @@
package com.xkrs.model.entity;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "agent_company")
public class AgentCompanyEntity implements Serializable {
/**
* 主键id
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "agent_company_seq_gen")
@SequenceGenerator(name = "agent_company_seq_gen", sequenceName = "agent_company_id_seq", allocationSize = 1)
private Long id;
/**
* 公司名称
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String companyName;
/**
* 省市区编码
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String countyCode;
/**
* 签约截止日期
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String signDeadLine;
/**
* 密钥ID
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String secretId;
/**
* 密钥KEY
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String secretKey;
/**
* APPID
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String appId;
/**
* 签名信息
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String sign;
/**
* 短信模板ID
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String templateId;
public AgentCompanyEntity() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCountyCode() {
return countyCode;
}
public void setCountyCode(String countyCode) {
this.countyCode = countyCode;
}
public String getSignDeadLine() {
return signDeadLine;
}
public void setSignDeadLine(String signDeadLine) {
this.signDeadLine = signDeadLine;
}
public String getSecretId() {
return secretId;
}
public void setSecretId(String secretId) {
this.secretId = secretId;
}
public String getSecretKey() {
return secretKey;
}
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
@Override
public String toString() {
return "AgentCompanyEntity{" +
"id=" + id +
", companyName='" + companyName + '\'' +
", countyCode='" + countyCode + '\'' +
", signDeadLine='" + signDeadLine + '\'' +
", secretId='" + secretId + '\'' +
", secretKey='" + secretKey + '\'' +
", appId='" + appId + '\'' +
", sign='" + sign + '\'' +
", templateId='" + templateId + '\'' +
'}';
}
}

View File

@ -0,0 +1,56 @@
package com.xkrs.model.entity;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "agent_org")
public class AgentOrgEntity implements Serializable {
/**
* 主键id
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "agent_org_seq_gen")
@SequenceGenerator(name = "agent_org_seq_gen", sequenceName = "agent_org_id_seq", allocationSize = 1)
private Long id;
/**
* 代理名称
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String orgName;
/**
* 截止日期
*/
@Column(length = 128, columnDefinition = "varchar(128)")
private String deadLine;
public AgentOrgEntity() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getDeadLine() {
return deadLine;
}
public void setDeadLine(String deadLine) {
this.deadLine = deadLine;
}
}

View File

@ -119,6 +119,11 @@ public class SysUserEntity implements Serializable {
*/ */
private String remark; private String remark;
/**
* 代理组织的ID
*/
private Long agentOrgId;
public SysUserEntity() { public SysUserEntity() {
} }
@ -314,8 +319,42 @@ public class SysUserEntity implements Serializable {
this.remark = remark; this.remark = remark;
} }
public Long getAgentOrgId() {
return agentOrgId;
}
public void setAgentOrgId(Long agentOrgId) {
this.agentOrgId = agentOrgId;
}
@Override @Override
public String toString() { public String toString() {
return "SysUserEntity{" + "id=" + id + ", userName='" + userName + '\'' + ", reallyName='" + reallyName + '\'' + ", password='" + password + '\'' + ", salt='" + salt + '\'' + ", telephone='" + telephone + '\'' + ", countyCode='" + countyCode + '\'' + ", signature='" + signature + '\'' + ", activeFlag=" + activeFlag + ", statusCode=" + statusCode + ", addTime='" + addTime + '\'' + ", lastEntryTime=" + lastEntryTime + ", deleteFlag=" + deleteFlag + ", lastEntryIp='" + lastEntryIp + '\'' + ", dayNum=" + dayNum + ", overTime='" + overTime + '\'' + ", accountType='" + accountType + '\'' + ", countyName='" + countyName + '\'' + ", loginNum=" + loginNum + ", loginLastTime='" + loginLastTime + '\'' + ", userAgent='" + userAgent + '\'' + ", vipLevel=" + vipLevel + ", receiveSms=" + receiveSms + ", remark='" + remark + '\'' + '}'; return "SysUserEntity{" +
"id=" + id +
", userName='" + userName + '\'' +
", reallyName='" + reallyName + '\'' +
", password='" + password + '\'' +
", salt='" + salt + '\'' +
", telephone='" + telephone + '\'' +
", countyCode='" + countyCode + '\'' +
", signature='" + signature + '\'' +
", activeFlag=" + activeFlag +
", statusCode=" + statusCode +
", addTime='" + addTime + '\'' +
", lastEntryTime=" + lastEntryTime +
", deleteFlag=" + deleteFlag +
", lastEntryIp='" + lastEntryIp + '\'' +
", dayNum=" + dayNum +
", overTime='" + overTime + '\'' +
", accountType='" + accountType + '\'' +
", countyName='" + countyName + '\'' +
", loginNum=" + loginNum +
", loginLastTime='" + loginLastTime + '\'' +
", userAgent='" + userAgent + '\'' +
", vipLevel=" + vipLevel +
", receiveSms=" + receiveSms +
", remark='" + remark + '\'' +
", agentOrgId=" + agentOrgId +
'}';
} }
} }

View File

@ -10,6 +10,7 @@ import com.xkrs.model.vo.AppTaskBodyVo;
import com.xkrs.model.vo.GaoDeIgGeocodeVo; import com.xkrs.model.vo.GaoDeIgGeocodeVo;
import com.xkrs.service.FirePointService; import com.xkrs.service.FirePointService;
import com.xkrs.service.GlobalConfigService; import com.xkrs.service.GlobalConfigService;
import com.xkrs.sms.SMSHelper;
import com.xkrs.utils.*; import com.xkrs.utils.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -87,7 +88,10 @@ public class FirePointServiceImpl implements FirePointService {
private GlobalConfigService globalConfigService; private GlobalConfigService globalConfigService;
@Resource @Resource
private AgentCompanyDao agentCompanyDao; private AgentOrgDao agentOrgDao;
@Resource
private SMSHelper smsHelper;
/** /**
* 添加火点信息 * 添加火点信息
@ -410,34 +414,17 @@ public class FirePointServiceImpl implements FirePointService {
* 发送短信消息 * 发送短信消息
*/ */
private void sendSMSMessage(FirePointEntity firePointEntity) { private void sendSMSMessage(FirePointEntity firePointEntity) {
//过滤短信通知收件人
List<SysUserEntity> sysUserList = sysUserDao.findAll(); List<SysUserEntity> sysUserList = sysUserDao.findAll();
List<RelRoleAuthorityEntity> adminList = relRoleAuthorityDao.selectByAuthorityId(1); List<RelRoleAuthorityEntity> adminList = relRoleAuthorityDao.selectByAuthorityId(1);
boolean normalSmsEnable = 1L == globalConfigService.selectGlobalConfigValue(9L); boolean normalSmsEnable = 1L == globalConfigService.selectGlobalConfigValue(9L);
boolean vipSmsEnable = 1L == globalConfigService.selectGlobalConfigValue(10L); boolean vipSmsEnable = 1L == globalConfigService.selectGlobalConfigValue(10L);
List<SysUserEntity> smsReceiverList = FirePointCodeUtils.filterSmsReceiver(firePointEntity.getStreetCode(), sysUserList, adminList, normalSmsEnable, vipSmsEnable); List<SysUserEntity> smsReceiverList = FirePointCodeUtils.filterSmsReceiver(firePointEntity.getStreetCode(), sysUserList, adminList, normalSmsEnable, vipSmsEnable);
//对收信人进行分组 //对短信通知收件人进行分组
AgentCompanyEntity master = agentCompanyDao.selectCompanyNameEquals("青岛星科瑞升信息科技有限公司"); List<AgentOrgEntity> agentOrgList = agentOrgDao.findAll();
List<AgentCompanyEntity> agentCompanyList = agentCompanyDao.selectCompanyNameNotEquals("青岛星科瑞升信息科技有限公司"); Map<String, List<SysUserEntity>> agentOrgNameGroupMap = FirePointCodeUtils.groupSmsReceiver(smsReceiverList, agentOrgList);
Map<AgentCompanyEntity, List<SysUserEntity>> agentCompanyGroupMap = FirePointCodeUtils.groupSmsReceiver(smsReceiverList, master, agentCompanyList); //分发短信通知
//批量发送短信通知 smsHelper.dispatchSMSMessage(agentOrgNameGroupMap, new String[]{firePointEntity.getFirePointAddress()});
for (Map.Entry<AgentCompanyEntity, List<SysUserEntity>> entry : agentCompanyGroupMap.entrySet()) {
AgentCompanyEntity groupAgentCompany = entry.getKey();
List<SysUserEntity> groupSysUserList = entry.getValue();
if (groupAgentCompany != null && groupSysUserList != null && groupSysUserList.size() > 0) {
String[] telephoneArray = new String[groupSysUserList.size()];
for (int i = 0; i < groupSysUserList.size(); i++) {
telephoneArray[i] = "86" + groupSysUserList.get(i).getUserName();
}
SMSUtils.sendSmsToUser(groupAgentCompany, telephoneArray, new String[]{firePointEntity.getFirePointAddress()});
//记录短信通知日志
StringBuilder stringBuilder = new StringBuilder("发送短信消息通知:\n");
for (String telephone : telephoneArray) {
stringBuilder.append("telephone:").append(telephone).append("\n");
}
stringBuilder.append(groupAgentCompany.toString()).append("短信内容:").append(firePointEntity.getFirePointAddress());
log.info(stringBuilder.toString());
}
}
} }
/** /**

View File

@ -0,0 +1,97 @@
package com.xkrs.sms;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xkrs.model.entity.SysUserEntity;
import com.xkrs.utils.HttpClientUtils;
import com.xkrs.utils.SMSUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class SMSHelper {
public static Logger log = LoggerFactory.getLogger(SMSHelper.class);
public SMSHelper() {
}
public void dispatchSMSMessage(Map<String, List<SysUserEntity>> agentOrgNameGroupMap, String[] templateParamArray) {
for (Map.Entry<String, List<SysUserEntity>> entry : agentOrgNameGroupMap.entrySet()) {
String targetAgentOrgName = entry.getKey();
List<SysUserEntity> groupSmsReceiverList = entry.getValue();
if (groupSmsReceiverList != null && groupSmsReceiverList.size() > 0) {
String[] telephoneArray = new String[groupSmsReceiverList.size()];
for (int i = 0; i < groupSmsReceiverList.size(); i++) {
telephoneArray[i] = "86" + groupSmsReceiverList.get(i).getUserName();
}
if ("青岛星科瑞升信息科技有限公司".equals(targetAgentOrgName)) {
xkrsSendSmsToUser(telephoneArray, templateParamArray);
} else if ("青岛华正信息技术股份有限公司".equals(targetAgentOrgName)) {
try {
huaZhengXinXi(telephoneArray, templateParamArray);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
/**
* 星科瑞升向用户发送短信
*/
private void xkrsSendSmsToUser(String[] telephoneArray, String[] templateParamArray) {
SMSUtils.sendSmsToUser(telephoneArray, "1425995", templateParamArray);
//记录短信通知日志
StringBuilder stringBuilder = new StringBuilder("发送人:青岛星科瑞升信息科技有限公司\n");
for (String telephone : telephoneArray) {
stringBuilder.append("接收人:").append(telephone).append("\n");
}
for (String templateParam : templateParamArray) {
stringBuilder.append("模板参数:").append(templateParam).append("\n");
}
log.info(stringBuilder.toString());
}
/**
* 华正信息向用户发送短信
*/
private void huaZhengXinXi(String[] telephoneArray, String[] templateParamArray) throws Exception {
StringBuilder telephoneBuilder = new StringBuilder();
for (int i = 0; i < telephoneArray.length; i++) {
telephoneBuilder.append(telephoneArray[i]);
if (i < telephoneArray.length - 1) {
telephoneBuilder.append(",");
}
}
String telephoneContent = telephoneBuilder.toString();
String url = "http://58.56.128.186:10144/msg/msgReceive";
Map<String, Object> map = new HashMap<>();
map.put("receiver", telephoneContent);
map.put("msgContent", "{\"content\":\"{'address':'" + templateParamArray[0] + "'}\"}");
map.put("idType", "30");
map.put("sendChannel", "30");
map.put("sendAccount", "12");
HttpClientUtils.sendHttpPost(url, new ObjectMapper().writeValueAsString(map));
//记录短信通知日志
StringBuilder stringBuilder = new StringBuilder("发送人:青岛华正信息技术股份有限公司\n");
for (String telephone : telephoneArray) {
stringBuilder.append("接收人:").append(telephone).append("\n");
}
for (String templateParam : templateParamArray) {
stringBuilder.append("模板参数:").append(templateParam).append("\n");
}
log.info(stringBuilder.toString());
}
}

View File

@ -1,9 +1,8 @@
package com.xkrs.utils; package com.xkrs.utils;
import com.xkrs.model.entity.AgentCompanyEntity; import com.xkrs.model.entity.AgentOrgEntity;
import com.xkrs.model.entity.RelRoleAuthorityEntity; import com.xkrs.model.entity.RelRoleAuthorityEntity;
import com.xkrs.model.entity.SysUserEntity; import com.xkrs.model.entity.SysUserEntity;
import org.apache.hc.core5.util.TextUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
@ -91,49 +90,43 @@ public class FirePointCodeUtils {
/** /**
* 对短信通知收信人进行分组 * 对短信通知收信人进行分组
*
* @param smsReceiverList 短信通知收信人列表
* @param master 星科瑞升
* @param agentCompanyList 代理公司列表
* @return 分组后的短信通知收信人列表
*/ */
public static Map<AgentCompanyEntity, List<SysUserEntity>> groupSmsReceiver(List<SysUserEntity> smsReceiverList, AgentCompanyEntity master, List<AgentCompanyEntity> agentCompanyList) { public static Map<String, List<SysUserEntity>> groupSmsReceiver(List<SysUserEntity> smsReceiverList, List<AgentOrgEntity> agentOrgList) {
//数据仓库 Map<String, List<SysUserEntity>> groupMap = new HashMap<>();
Map<AgentCompanyEntity, List<SysUserEntity>> groupMap = new HashMap<>(); if (smsReceiverList == null || smsReceiverList.isEmpty()) {
//填充代理公司数据 return groupMap;
if (agentCompanyList != null && agentCompanyList.size() > 0) { }
for (AgentCompanyEntity agentCompany : agentCompanyList) { if (agentOrgList == null || agentOrgList.isEmpty()) {
try { return groupMap;
if (TextUtils.isEmpty(agentCompany.getCountyCode())) {//区划编码为空的不发短信 }
continue; for (SysUserEntity smsReceiver : smsReceiverList) {
} String targetAgentOrgName = getTargetAgentOrgName(smsReceiver, agentOrgList);
String codeNotZeroEnd = FirePointCodeUtils.getCodeNotZeroEnd(agentCompany.getCountyCode()); if (groupMap.containsKey(targetAgentOrgName)) {
if (TextUtils.isEmpty(codeNotZeroEnd)) {//区划编码后切完0为空的不发短信 List<SysUserEntity> groupSmsReceiverList = groupMap.get(targetAgentOrgName);
continue; groupSmsReceiverList.add(smsReceiver);
} } else {
List<SysUserEntity> receiverList = new ArrayList<>(); List<SysUserEntity> groupSmsReceiverList = new ArrayList<>();
for (SysUserEntity smsReceiver : smsReceiverList) { groupSmsReceiverList.add(smsReceiver);
if (smsReceiver.getCountyCode().startsWith(codeNotZeroEnd)) { groupMap.put(targetAgentOrgName, groupSmsReceiverList);
receiverList.add(smsReceiver);
}
}
groupMap.put(agentCompany, receiverList);
} catch (Exception e) {
e.printStackTrace();
}
} }
} }
//填充星科瑞升数据
List<SysUserEntity> masterReceiverList = new ArrayList<>();
for (Map.Entry<AgentCompanyEntity, List<SysUserEntity>> entry : groupMap.entrySet()) {
for (SysUserEntity smsReceiver : entry.getValue()) {
if (!smsReceiverList.contains(smsReceiver)) {
masterReceiverList.add(smsReceiver);
}
}
}
groupMap.put(master, masterReceiverList);
return groupMap; return groupMap;
} }
/**
* 获取系统用户的代理组织名称
*/
private static String getTargetAgentOrgName(SysUserEntity smsReceiver, List<AgentOrgEntity> agentOrgList) {
for (AgentOrgEntity agentOrg : agentOrgList) {
try {
if (smsReceiver.getAgentOrgId().longValue() == agentOrg.getId().longValue()) {
return agentOrg.getOrgName();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "青岛星科瑞升信息科技有限公司";
}
} }

View File

@ -5,116 +5,14 @@ import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile; import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.sms.v20190711.SmsClient; import com.tencentcloudapi.sms.v20190711.SmsClient;
import com.tencentcloudapi.sms.v20190711.models.PullSmsReplyStatusByPhoneNumberRequest;
import com.tencentcloudapi.sms.v20190711.models.PullSmsReplyStatusByPhoneNumberResponse;
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest; import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse; import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
import com.xkrs.model.entity.AgentCompanyEntity;
/** /**
* 短信工具 * 短信工具
*/ */
public class SMSUtils { public class SMSUtils {
public static int sendSmsToUser(AgentCompanyEntity agentCompanyEntity, String[] phoneNumbers, String[] templateParams) {
int resValue = 0;
try {
/* 必要步骤
* 实例化一个认证对象入参需要传入腾讯云账户密钥对 secretId secretKey
* 可以直接在代码中写入密钥对但需谨防泄露不要将代码复制上传或者分享给他人
* CAM 密钥查询https://console.cloud.tencent.com/cam/capi*/
String secretId = agentCompanyEntity.getSecretId();
String secretKey = agentCompanyEntity.getSecretKey();
Credential cred = new Credential(secretId, secretKey);
// 实例化一个 http 选项可选无特殊需求时可以跳过
HttpProfile httpProfile = new HttpProfile();
// 设置代理
// httpProfile.setProxyHost("host");
// httpProfile.setProxyPort(6000);
httpProfile.setReqMethod("POST");
/* SDK 有默认的超时时间非必要请不要进行调整
* 如有需要请在代码中查阅以获取最新的默认值 */
httpProfile.setConnTimeout(60);
/* SDK 会自动指定域名通常无需指定域名但访问金融区的服务时必须手动指定域名
* 例如 SMS 的上海金融区域名为 sms.ap-shanghai-fsi.tencentcloudapi.com */
httpProfile.setEndpoint("sms.tencentcloudapi.com");
/* 非必要步骤:
* 实例化一个客户端配置对象可以指定超时时间等配置 */
ClientProfile clientProfile = new ClientProfile();
/* SDK 默认用 TC3-HMAC-SHA256 进行签名
* 非必要请不要修改该字段 */
clientProfile.setSignMethod("HmacSHA256");
clientProfile.setHttpProfile(httpProfile);
/* 实例化 SMS client 对象
* 第二个参数是地域信息可以直接填写字符串 ap-guangzhou或者引用预设的常量 */
SmsClient client = new SmsClient(cred, "", clientProfile);
/* 实例化一个请求对象根据调用的接口和实际情况可以进一步设置请求参数
* 您可以直接查询 SDK 源码确定接口有哪些属性可以设置
* 属性可能是基本类型也可能引用了另一个数据结构
* 推荐使用 IDE 进行开发可以方便地跳转查阅各个接口和数据结构的文档说明 */
SendSmsRequest req = new SendSmsRequest();
/* 填充请求参数这里 request 对象的成员变量即对应接口的入参
* 您可以通过官网接口文档或跳转到 request 对象的定义处查看请求参数的定义
* 基本类型的设置:
* 帮助链接
* 短信控制台https://console.cloud.tencent.com/smsv2
* sms helperhttps://cloud.tencent.com/document/product/382/3773 */
/* 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID例如1400006666 */
String appid = agentCompanyEntity.getAppId();
req.setSmsSdkAppid(appid);
/* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 */
String sign = agentCompanyEntity.getSign();
req.setSign(sign);
/* 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
// String senderid = "xxx";
String senderid = "";
req.setSenderId(senderid);
/* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息server 会原样返回 */
String session = "";
req.setSessionContext(session);
/* 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] */
String extendcode = "";
req.setExtendCode(extendcode);
/* 模板 ID: 必须填写已审核通过的模板 ID可登录 [短信控制台] 查看模板 ID */
// String templateID = "730983";
req.setTemplateID(agentCompanyEntity.getTemplateId());
/* 下发手机号码采用 e.164 标准+[国家或地区码][手机号]
* 例如+8613711112222 其中前面有一个+ 86为国家码13711112222为手机号最多不要超过200个手机号*/
// String[] phoneNumbers = { "+8615726240251", "+8617854119839", "+8615269088338"};
req.setPhoneNumberSet(phoneNumbers);
/* 模板参数: 若无模板参数,则设置为空*/
// String[] templateParams = {"test","100"};
req.setTemplateParamSet(templateParams);
/* 通过 client 对象调用 SendSms 方法发起请求注意请求方法名与请求对象是对应的
* 返回的 res 是一个 SendSmsResponse 类的实例与请求对象对应 */
SendSmsResponse res = client.SendSms(req);
// 输出 JSON 格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(res));
// 可以取出单个值您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义
System.out.println(res.getRequestId());
} catch (TencentCloudSDKException e) {
e.printStackTrace();
resValue = 2;
}
return resValue;
}
public static int sendSmsToUser(String[] phoneNumbers, String templateId, String[] templateParams) { public static int sendSmsToUser(String[] phoneNumbers, String templateId, String[] templateParams) {
int resValue = 0; int resValue = 0;
try { try {
@ -212,41 +110,4 @@ public class SMSUtils {
return resValue; return resValue;
} }
public static int receiveSms() {
int resValue = 0;
try {
Credential cred = new Credential("AKIDFNOAxu0u3pRvFunvD7DE8srs46CDLlJx", "jJjzwkT4PirqgRqCOMH2f8m051Mdlk4c");
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("sms.tencentcloudapi.com");
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
SmsClient client = new SmsClient(cred, "", clientProfile);
PullSmsReplyStatusByPhoneNumberRequest req = new PullSmsReplyStatusByPhoneNumberRequest();
Long ss = 1600939153L;
req.setSendDateTime(ss);
req.setOffset(0L);
req.setLimit(10L);
req.setPhoneNumber("+8617854119839");
req.setSmsSdkAppid("1400430088");
PullSmsReplyStatusByPhoneNumberResponse resp = client.PullSmsReplyStatusByPhoneNumber(req);
System.out.println(PullSmsReplyStatusByPhoneNumberResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
resValue = 2;
}
return resValue;
}
public static void main(String[] args) {
receiveSms();
}
} }