From 566e7986291e73051d30ee252b0ebf852b1577a7 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 02 Apr 2024 14:25:51 +0800
Subject: [PATCH] 娱乐场所标签新增180200

---
 src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java |   53 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java b/src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java
index 56a834f..4c49e02 100644
--- a/src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java
+++ b/src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java
@@ -18,6 +18,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -26,9 +27,12 @@
 import org.springblade.common.utils.UtilRandom;
 import org.springblade.common.utils.sms.AlipaySignature;
 import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.modules.resource.entity.Sms;
+import org.springblade.modules.resource.service.ISmsService;
 import org.springblade.modules.sms.entity.SmsTemplateEntity;
 import org.springblade.modules.sms.mapper.SmsTemplateMapper;
 import org.springblade.modules.sms.service.ISmsSendService;
+import org.springblade.modules.sms.service.ISmsTemplateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -47,17 +51,37 @@
 @Service
 public class SmsSendServiceImpl extends ServiceImpl<SmsTemplateMapper, SmsTemplateEntity> implements ISmsSendService {
 	@Autowired
-	private  BladeRedis redisTemplate;
+	private BladeRedis redisTemplate;
 	private static Logger logger = LoggerFactory.getLogger(SmsSendServiceImpl.class);
-
+	// 确保这些字符串被适当地定义和管理
 	public static final String SMS_VALIDATE_PHONE = "sms:validate:code:";
 	public static final String SMS_VALIDATE_PHONE_NUM = "sms:validate:phone:";
+	private static final String SMS_SEND_FAILED = "短信发送失败!";
+	private static final String MESSAGE_SOP_EQUALS_MES_RESPONSE_CODE = "message_sop_equalsMes_response";
+	private static final String SEND_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
 
 	@Autowired
-	private SmsConfig smsConfig;
+	private ISmsService iSmsService;
+
+	@Autowired
+	private ISmsTemplateService iSmsTemplateService;
 
 	@Override
 	public Boolean smsSend(String phone) {
+
+		Sms serviceOne = iSmsService.getOne(Wrappers.<Sms>lambdaQuery().eq(Sms::getStatus, 2));
+		if (serviceOne == null) {
+			logger.error("未找到状态为2的Sms服务");
+			return false;
+		}
+		SmsTemplateEntity smsTemplateEntity = iSmsTemplateService.getOne(Wrappers.<SmsTemplateEntity>lambdaQuery()
+			.eq(SmsTemplateEntity::getId, serviceOne.getTemplateId()));
+		if (smsTemplateEntity == null) {
+			logger.error("未找到对应的短信模板");
+			return false;
+		}
+
 		//发送的手机号
 		List<Map> phonesList = new ArrayList<>();
 
@@ -74,12 +98,11 @@
 		//短信主题
 		String subject = "对外接口不同内容发送-动态模板";
 		//短信内容
-		String content = "您正在验证投票操作,验证码:#P_1#。如非本人操作,则密码可能已泄露,建议立即修改密码或联系客服。";
-//        String content = "尊敬的#P_1#,你得工资#P_2#,测试#P_3#";
+		String content = smsTemplateEntity.getContent();
 		//短信模板
 		String template_id = null;
 		//发送时间
-		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		SimpleDateFormat df = new SimpleDateFormat(SEND_TIME_FORMAT);
 		String send_time = df.format(new Date());
 		//优先级,高级=5,中级=3,低级=1
 		String priority = "1";
@@ -94,12 +117,12 @@
 		params.put("priority", priority);
 		params.put("type", type);
 		//创建人主键
-		params.put("sop_create_by", smsConfig.getSopCreateBy());
+		params.put("sop_create_by", serviceOne.getSmsCode());
 		String s = null;
 		try {
-			s = testGet(params, "message.sop.differentMes");
+			s = testGet(params, "message.sop.differentMes", serviceOne);
 			JSONObject jsonObject = JSON.parseObject(s);
-			JSONObject messageSopEqualsMesResponse = (JSONObject) jsonObject.get("message_sop_equalsMes_response");
+			JSONObject messageSopEqualsMesResponse = (JSONObject) jsonObject.get(MESSAGE_SOP_EQUALS_MES_RESPONSE_CODE);
 			if (messageSopEqualsMesResponse.get("code").equals(200)) {
 				// 将验证码存入redis
 				redisTemplate.setEx(SMS_VALIDATE_PHONE + phone, code, 300L);
@@ -107,17 +130,17 @@
 				return true;
 			}
 		} catch (Exception e) {
-			logger.error("短信发送失败!", e);
+			logger.error(SMS_SEND_FAILED, e);
 			throw new RuntimeException(e);
 		}
 		return false;
 	}
 
-	public String testGet(Object bizContent, String method) throws Exception {
+	public String testGet(Object bizContent, String method, Sms serviceOne) throws Exception {
 
 		// 公共请求参数
 		Map<String, String> params = new HashMap<String, String>();
-		params.put("app_id", smsConfig.getSmsAppId());
+		params.put("app_id", serviceOne.getAccessKey());
 		params.put("method", method);
 		params.put("format", "json");
 		params.put("charset", "utf-8");
@@ -128,18 +151,18 @@
 		// 业务参数
 		params.put("biz_content", JSON.toJSONString(bizContent));
 		String content = AlipaySignature.getSignContent(params);
-		String sign = AlipaySignature.rsa256Sign(content, smsConfig.getSmsPrivateKey(), "utf-8");
+		String sign = AlipaySignature.rsa256Sign(content, serviceOne.getSecretKey(), "utf-8");
 		params.put("sign", sign);
 
 		System.out.println("----------- 请求信息 -----------");
 		System.out.println("请求参数:" + buildParamQuery(params));
-		System.out.println("商户秘钥:" + smsConfig.getSmsPrivateKey());
+		System.out.println("商户秘钥:" + serviceOne.getSecretKey());
 		System.out.println("待签名内容:" + content);
 		System.out.println("签名(sign):" + sign);
 		System.out.println("URL参数:" + buildUrlQuery(params));
 
 		System.out.println("----------- 返回结果 -----------");
-		String responseData = HttpClientUtils.doGet(smsConfig.getSmsUrl(), params);// 发送请求
+		String responseData = HttpClientUtils.doGet(serviceOne.getRemark(), params);// 发送请求
 		System.out.println("返回数据" + responseData);
 		return responseData;
 	}

--
Gitblit v1.9.3