From d2dace7dc16d324bd762efe4f79c9ca44d7a5407 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 19 八月 2024 16:17:15 +0800
Subject: [PATCH] 短信封装,小程序更换手机号
---
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 37 +++
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/MsgConstants.java | 35 +++
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java | 5
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java | 5
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 34 +++
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/HttpUtils.java | 311 +++++++++++++++++++++++++++++++
ruoyi-auth/pom.xml | 6
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java | 2
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java | 10
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UpdatePhoneDTO.java | 22 ++
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java | 127 ++++++++----
11 files changed, 546 insertions(+), 48 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UpdatePhoneDTO.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UpdatePhoneDTO.java
new file mode 100644
index 0000000..b393bf8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/UpdatePhoneDTO.java
@@ -0,0 +1,22 @@
+package com.ruoyi.account.api.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "UpdatePhoneDTO对象",description = "更换手机号DTO")
+public class UpdatePhoneDTO implements Serializable {
+
+ @ApiModelProperty(value = "手机号")
+ @NotBlank(message = "手机号不能为空")
+ private String phone;
+
+ @ApiModelProperty(value = "验证码")
+ @NotBlank(message = "验证码不能为空")
+ private String code;
+
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
index e89e3b6..b811b76 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
@@ -41,6 +41,11 @@
}
@Override
+ public R<TAppUser> selectByPhone(String phone) {
+ return R.fail("通过手机号查询用户失败:"+throwable.getMessage());
+ }
+
+ @Override
public R<List<TAppUser>> getUserByIds(List<Long> appUserIds) {
return R.fail("根据用户id查询用户信息失败:"+throwable.getMessage());
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
index 845eba3..a408ac7 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -39,6 +39,14 @@
- @PostMapping("/t-app-user//user/updateAppUser")
+ @PostMapping("/t-app-user/user/updateAppUser")
R updateAppUser(@RequestBody TAppUser appUser);
+
+ /**
+ * 通过手机号查询用户
+ * @param phone
+ * @return
+ */
+ @GetMapping("/t-app-user/user/selectByPhone")
+ R<TAppUser> selectByPhone(@RequestParam("phone") String phone);
}
diff --git a/ruoyi-auth/pom.xml b/ruoyi-auth/pom.xml
index df1fa2a..ee4cf04 100644
--- a/ruoyi-auth/pom.xml
+++ b/ruoyi-auth/pom.xml
@@ -85,6 +85,12 @@
<version>${hutool.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>ruoyi-api-account</artifactId>
+ <version>3.6.2</version>
+ </dependency>
+
</dependencies>
<build>
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index 8a06c5d..7f333d2 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -5,6 +5,14 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.constant.MsgConstants;
+import com.ruoyi.common.core.utils.HttpUtils;
+import com.ruoyi.common.core.utils.MsgUtil;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
@@ -25,6 +33,7 @@
import com.ruoyi.system.api.model.LoginUser;
import java.util.*;
+import java.util.concurrent.TimeUnit;
/**
* token 控制
@@ -42,7 +51,11 @@
private SysLoginService sysLoginService;
@Resource
private SysUserClient userClient;
-
+ @Autowired
+ private RedisService redisService;
+ @Autowired
+ private AppUserClient appUserClient;
+
@@ -115,4 +128,26 @@
sysLoginService.register(registerBody.getUsername(), registerBody.getPassword(), request);
return R.ok();
}
+
+ /**
+ * 获取验证码
+ *
+ * @param phone 手机号
+ * @return 结果
+ */
+ @ApiOperation(value = "获取验证码",notes = "获取验证码",tags = {"更换手机号获取验证码"})
+ @GetMapping("getCode")
+ public AjaxResult getCode(@RequestParam("phone") String phone)
+ {
+ TAppUser appUser = appUserClient.selectByPhone(phone).getData();
+ if (Objects.nonNull(appUser)){
+ return AjaxResult.error("该手机号已绑定账号");
+ }
+ String code = MsgUtil.createCode();
+ redisService.setCacheObject(phone+Constants.APPLET,code,5L, TimeUnit.MINUTES);
+ String reqStr = MsgUtil.codeMsg(phone, code);
+ String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr);
+ return AjaxResult.success(result);
+ }
+
}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
index 56f106e..3a06693 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
@@ -127,7 +127,10 @@
*/
public static final String DATE_FORMATTER_TIME = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_FORMATTER_DATE = "yyyy-MM-dd";
-
+ /**
+ * 后缀
+ */
+ public static final String APPLET = "_applet";
/**
* 定时任务违规的字符
*/
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/MsgConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/MsgConstants.java
new file mode 100644
index 0000000..4a04905
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/MsgConstants.java
@@ -0,0 +1,35 @@
+package com.ruoyi.common.core.constant;
+
+/**
+ * 短信常量
+ *
+ * @author ruoyi
+ */
+public class MsgConstants
+{
+ /** 短信发送地址 */
+ public static final String SEND_URL = "http://112.35.1.155:1992/sms/tmpsubmit";
+ /** 更换手机号短信验证码 TEMPLATE_ID */
+ public static final String CODE_TEMPLATE_ID = "5bf3949463e54c03a25c6fce3ad48139";
+
+ /** 停车占位提醒 TEMPLATE_ID */
+ public static final String STOP_TEMPLATE_ID = "4940ce98a3f94f67aa9f5cd2d4e05cbd";
+
+ /** 充电结束 TEMPLATE_ID */
+ public static final String CHARGE_TEMPLATE_ID = "47b2eb376cfa436faae041a6f2f22688";
+
+ /** 桩故障(自动/手动) TEMPLATE_ID */
+ public static final String FAULT_TEMPLATE_ID = "37956469a14a47e484a747a1e7e462de";
+ /** 更换手机号短信验证码 AP_ID */
+ public static final String CODE_AP_ID = "GH123";
+
+ /** 停车占位提醒 AP_ID */
+ public static final String STOP_AP_ID = "TC123";
+
+ /** 充电结束 AP_ID */
+ public static final String CHARGE_AP_ID = "CD123";
+
+ /** 桩故障(自动/手动) AP_ID */
+ public static final String FAULT_AP_ID = "GZ123";
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/HttpUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/HttpUtils.java
new file mode 100644
index 0000000..c41fbbd
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/HttpUtils.java
@@ -0,0 +1,311 @@
+package com.ruoyi.common.core.utils;
+
+import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.exception.ServiceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.*;
+import java.io.*;
+import java.net.*;
+import java.nio.charset.StandardCharsets;
+import java.security.cert.X509Certificate;
+
+/**
+ * 通用http发送方法
+ *
+ * @author ruoyi
+ */
+public class HttpUtils
+{
+ private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
+
+ /**
+ * 向指定 URL 发送GET方法的请求
+ *
+ * @param url 发送请求的 URL
+ * @return 所代表远程资源的响应结果
+ */
+ public static String sendGet(String url)
+ {
+ return sendGet(url, StringUtils.EMPTY);
+ }
+
+ /**
+ * 向指定 URL 发送GET方法的请求
+ *
+ * @param url 发送请求的 URL
+ * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+ * @return 所代表远程资源的响应结果
+ */
+ public static String sendGet(String url, String param)
+ {
+ return sendGet(url, param, Constants.UTF8);
+ }
+
+ /**
+ * 向指定 URL 发送GET方法的请求
+ *
+ * @param url 发送请求的 URL
+ * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+ * @param contentType 编码类型
+ * @return 所代表远程资源的响应结果
+ */
+ public static String sendGet(String url, String param, String contentType)
+ {
+ StringBuilder result = new StringBuilder();
+ BufferedReader in = null;
+ try
+ {
+ String urlNameString = StringUtils.isNotBlank(param) ? url + "?" + param : url;
+ log.info("sendGet - {}", urlNameString);
+ URL realUrl = new URL(urlNameString);
+ URLConnection connection = realUrl.openConnection();
+ connection.setRequestProperty("accept", "*/*");
+ connection.setRequestProperty("connection", "Keep-Alive");
+ connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+ connection.connect();
+ in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
+ String line;
+ while ((line = in.readLine()) != null)
+ {
+ result.append(line);
+ }
+ log.info("recv - {}", result);
+ }
+ catch (ConnectException e)
+ {
+ log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
+ }
+ catch (SocketTimeoutException e)
+ {
+ log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e);
+ }
+ catch (IOException e)
+ {
+ log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e);
+ }
+ catch (Exception e)
+ {
+ log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e);
+ }
+ finally
+ {
+ try
+ {
+ if (in != null)
+ {
+ in.close();
+ }
+ }
+ catch (Exception ex)
+ {
+ log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
+ }
+ }
+ return result.toString();
+ }
+
+ /**
+ * 向指定 URL 发送POST方法的请求
+ *
+ * @param url 发送请求的 URL
+ * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+ * @return 所代表远程资源的响应结果
+ */
+ public static String sendPost(String url, String param)
+ {
+ PrintWriter out = null;
+ BufferedReader in = null;
+ StringBuilder result = new StringBuilder();
+ try
+ {
+ log.info("sendPost - {}", url);
+ URL realUrl = new URL(url);
+ URLConnection conn = realUrl.openConnection();
+ conn.setRequestProperty("accept", "*/*");
+ conn.setRequestProperty("connection", "Keep-Alive");
+ conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+ conn.setRequestProperty("Accept-Charset", "utf-8");
+ conn.setRequestProperty("contentType", "utf-8");
+ conn.setDoOutput(true);
+ conn.setDoInput(true);
+ out = new PrintWriter(conn.getOutputStream());
+ out.print(param);
+ out.flush();
+ in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
+ String line;
+ while ((line = in.readLine()) != null)
+ {
+ result.append(line);
+ }
+ log.info("recv - {}", result);
+ }
+ catch (ConnectException e)
+ {
+ log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
+ }
+ catch (SocketTimeoutException e)
+ {
+ log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
+ }
+ catch (IOException e)
+ {
+ log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
+ }
+ catch (Exception e)
+ {
+ log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
+ }
+ finally
+ {
+ try
+ {
+ if (out != null)
+ {
+ out.close();
+ }
+ if (in != null)
+ {
+ in.close();
+ }
+ }
+ catch (IOException ex)
+ {
+ log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
+ }
+ }
+ return result.toString();
+ }
+
+ public static String sendSSLPost(String url, String param)
+ {
+ StringBuilder result = new StringBuilder();
+ String urlNameString = url + "?" + param;
+ try
+ {
+ log.info("sendSSLPost - {}", urlNameString);
+ SSLContext sc = SSLContext.getInstance("SSL");
+ sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom());
+ URL console = new URL(urlNameString);
+ HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
+ conn.setRequestProperty("accept", "*/*");
+ conn.setRequestProperty("connection", "Keep-Alive");
+ conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+ conn.setRequestProperty("Accept-Charset", "utf-8");
+ conn.setRequestProperty("contentType", "utf-8");
+ conn.setDoOutput(true);
+ conn.setDoInput(true);
+
+ conn.setSSLSocketFactory(sc.getSocketFactory());
+ conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
+ conn.connect();
+ InputStream is = conn.getInputStream();
+ BufferedReader br = new BufferedReader(new InputStreamReader(is));
+ String ret = "";
+ while ((ret = br.readLine()) != null)
+ {
+ if (ret != null && !"".equals(ret.trim()))
+ {
+ result.append(new String(ret.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
+ }
+ }
+ log.info("recv - {}", result);
+ conn.disconnect();
+ br.close();
+ }
+ catch (ConnectException e)
+ {
+ log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e);
+ }
+ catch (SocketTimeoutException e)
+ {
+ log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e);
+ }
+ catch (IOException e)
+ {
+ log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e);
+ }
+ catch (Exception e)
+ {
+ log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e);
+ }
+ return result.toString();
+ }
+
+ public static String post(String strURL, String params) {
+ String result = "";
+ BufferedReader reader = null;
+ try {
+ URL url = new URL(strURL);// 创建连接
+ HttpURLConnection connection = (HttpURLConnection) url
+ .openConnection();
+ connection.setDoOutput(true);
+ connection.setDoInput(true);
+ connection.setUseCaches(false);
+ connection.setInstanceFollowRedirects(true);
+ connection.setRequestMethod("POST"); // 设置请求方式
+ connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式
+ connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
+ connection.connect();
+ if (params != null && !StringUtils.isEmpty(params)) {
+ byte[] writebytes = params.getBytes();
+ // 设置文件长度
+ // connection.setRequestProperty("Content-Length", String.valueOf(writebytes.length));
+ OutputStream outwritestream = connection.getOutputStream();
+ outwritestream.write(params.getBytes());
+ outwritestream.flush();
+ outwritestream.close();
+ // Log.d("hlhupload", "doJsonPost: conn"+connection.getResponseCode());
+ }
+ if (connection.getResponseCode() == 200) {
+ log.info("<<<<<<<<<<<<<请求响应:{}", connection.getResponseMessage());
+ reader = new BufferedReader(
+ new InputStreamReader(connection.getInputStream()));
+ result = reader.readLine();
+ log.info("<<<<<<<<<<<<<请求响应:{}", result);
+ } else {
+ throw new ServiceException(connection.getResponseMessage());
+ }
+ } catch (Exception e) {
+ throw new ServiceException("http的post请求异常!" + e.getMessage());
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return result;
+ }
+
+ private static class TrustAnyTrustManager implements X509TrustManager
+ {
+ @Override
+ public void checkClientTrusted(X509Certificate[] chain, String authType)
+ {
+ }
+
+ @Override
+ public void checkServerTrusted(X509Certificate[] chain, String authType)
+ {
+ }
+
+ @Override
+ public X509Certificate[] getAcceptedIssuers()
+ {
+ return new X509Certificate[] {};
+ }
+ }
+
+ private static class TrustAnyHostnameVerifier implements HostnameVerifier
+ {
+ @Override
+ public boolean verify(String hostname, SSLSession session)
+ {
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
index c99b884..188900d 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
@@ -1,6 +1,7 @@
package com.ruoyi.common.core.utils;
import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.core.constant.MsgConstants;
import com.ruoyi.common.core.utils.req.SubmitTempletReq;
import org.apache.commons.codec.binary.Base64;
@@ -15,23 +16,22 @@
/**
- * 更换手机号短信验证码
- * @param phone
- * @param code
- * @param templateId
+ * 更换手机号:【签名】验证码:XXX,用于更换手机号。请勿转发。
+ * @param phone 手机号
+ * @param code 验证码
* @return
*/
- public static String codeMsg(String apId,String phone,String code,String templateId){
+ public static String codeMsg(String phone,String code){
SubmitTempletReq submitReq = new SubmitTempletReq();
String[] paramss = {code};
- submitReq.setApId(apId);
+ submitReq.setApId(MsgConstants.CODE_AP_ID);
submitReq.setEcName(ecName);
submitReq.setSecretKey(secretKey);
submitReq.setParams(JSON.toJSONString(paramss));
submitReq.setMobiles(phone);
submitReq.setAddSerial("");
submitReq.setSign(sign);
- submitReq.setTemplateId(templateId);
+ submitReq.setTemplateId(MsgConstants.CODE_TEMPLATE_ID);
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(submitReq.getEcName());
stringBuffer.append(submitReq.getApId());
@@ -51,46 +51,14 @@
/**
- * 审批流程短信
- * @param phone
- * @param name
- * @param work
- * @param templateId
+ * 停车占位提醒:车辆已在3小时前完成充电,请及时取车,避免长时间占用充电资源。
+ * @param phone 手机号
* @return
*/
- public static String auditMsg(String apId,String phone,String name,String work,String templateId){
+ public static String stopMsg(String phone){
SubmitTempletReq submitReq = new SubmitTempletReq();
- // 判断工程名称长度
-// if(work.length()<=10){
-// String[] paramss = {name,work};
-// submitReq.setParams(JSON.toJSONString(paramss));
-// submitReq.setTemplateId("1ebcb36e532742ed8fd7b998a8222aab");
-// }else if (work.length()<=20){
-// String work1 = work.substring(0,10);
-// String work2 = work.substring(10);
-// String[] paramss = {name,work1,work2};
-// submitReq.setParams(JSON.toJSONString(paramss));
-// submitReq.setTemplateId("1c9e6cbddec649b1bdfa6830448df8ad");
-// }else if (work.length()<=30){
-// String work1 = work.substring(0,10);
-// String work2 = work.substring(10,20);
-// String work3 = work.substring(20);
-// String[] paramss = {name,work1,work2,work3};
-// submitReq.setParams(JSON.toJSONString(paramss));
-// submitReq.setTemplateId("91960e43e51446d0b3789129580f5bf8");
-// }else {
-// String work1 = work.substring(0, 10);
-// String work2 = work.substring(10, 20);
-// String work3 = work.substring(20, 30);
-// String work4 = work.substring(30);
-// String[] paramss = {name, work1, work2, work3, work4};
-// submitReq.setParams(JSON.toJSONString(paramss));
-// submitReq.setTemplateId("279dd31f0565494284ee62694ae3e326");
-// }
- String[] paramss = {name};
- submitReq.setParams(JSON.toJSONString(paramss));
- submitReq.setTemplateId("32b209c0096c48d7add8bafb290083dc");
- submitReq.setApId(apId);
+ submitReq.setTemplateId(MsgConstants.STOP_TEMPLATE_ID);
+ submitReq.setApId(MsgConstants.STOP_AP_ID);
submitReq.setEcName(ecName);
submitReq.setSecretKey(secretKey);
submitReq.setMobiles(phone);
@@ -114,6 +82,77 @@
}
/**
+ * 充电结束:车辆充电结束,请及时取车。
+ * @param phone 手机号
+ * @return
+ */
+ public static String chargeStopMsg(String phone){
+ SubmitTempletReq submitReq = new SubmitTempletReq();
+ submitReq.setTemplateId(MsgConstants.CHARGE_TEMPLATE_ID);
+ submitReq.setApId(MsgConstants.CHARGE_AP_ID);
+ submitReq.setEcName(ecName);
+ submitReq.setSecretKey(secretKey);
+ submitReq.setMobiles(phone);
+ submitReq.setAddSerial("");
+ submitReq.setSign(sign);
+ StringBuffer stringBuffer = new StringBuffer();
+ stringBuffer.append(submitReq.getEcName());
+ stringBuffer.append(submitReq.getApId());
+ stringBuffer.append(submitReq.getSecretKey());
+ stringBuffer.append(submitReq.getTemplateId());
+ stringBuffer.append(submitReq.getMobiles());
+ stringBuffer.append(submitReq.getParams());
+ stringBuffer.append(submitReq.getSign());
+ stringBuffer.append(submitReq.getAddSerial());
+ submitReq.setMac(MD5Util.getMD5(stringBuffer.toString()));
+ String reqText = JSON.toJSONString(submitReq);
+ //加密
+ String encode = Base64.encodeBase64String(reqText.getBytes());
+ System.err.println(encode);
+ return encode;
+ }
+
+ /**
+ * 桩故障(自动/手动):检测到【电站1】【编号】号桩设备离线,请及时查看处理!
+ * @param phone 手机号
+ * @param site 站点名称
+ * @param chargeGun 桩编号
+ * @return
+ */
+ public static String faultMsg(String phone,String site,String chargeGun){
+ SubmitTempletReq submitReq = new SubmitTempletReq();
+ if(site.length()<=10){
+ String[] paramss = {site,chargeGun};
+ submitReq.setParams(JSON.toJSONString(paramss));
+ }else{
+ String work1 = site.substring(0,10);
+ String[] paramss = {work1,chargeGun};
+ submitReq.setParams(JSON.toJSONString(paramss));
+ }
+ submitReq.setTemplateId(MsgConstants.FAULT_TEMPLATE_ID);
+ submitReq.setApId(MsgConstants.FAULT_AP_ID);
+ submitReq.setEcName(ecName);
+ submitReq.setSecretKey(secretKey);
+ submitReq.setMobiles(phone);
+ submitReq.setAddSerial("");
+ submitReq.setSign(sign);
+ StringBuffer stringBuffer = new StringBuffer();
+ stringBuffer.append(submitReq.getEcName());
+ stringBuffer.append(submitReq.getApId());
+ stringBuffer.append(submitReq.getSecretKey());
+ stringBuffer.append(submitReq.getTemplateId());
+ stringBuffer.append(submitReq.getMobiles());
+ stringBuffer.append(submitReq.getParams());
+ stringBuffer.append(submitReq.getSign());
+ stringBuffer.append(submitReq.getAddSerial());
+ submitReq.setMac(MD5Util.getMD5(stringBuffer.toString()));
+ String reqText = JSON.toJSONString(submitReq);
+ //加密
+ String encode = Base64.encodeBase64String(reqText.getBytes());
+ System.err.println(encode);
+ return encode;
+ }
+ /**
* 生成验证码
* @return
*/
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 9e2e0b3..6915db6 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -16,7 +16,9 @@
import com.ruoyi.account.wx.model.WeixinProperties;
import com.ruoyi.account.wx.tools.WxAppletTools;
import com.ruoyi.account.util.GiveVipUtil;
+import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.BasePojo;
@@ -41,6 +43,7 @@
import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
@@ -86,6 +89,8 @@
private ExchangeOrderClient exchangeOrderClient;
@Autowired
private TokenService tokenService;
+ @Autowired
+ private RedisService redisService;
@Resource
private TAppUserSignService signService;
@@ -438,6 +443,24 @@
return R.ok();
}
+ @ApiOperation(value = "更换手机号", tags = {"小程序-用户管理-更换手机号"})
+ @PostMapping(value = "/user/updatePhone")
+ public AjaxResult<String> updatePhone(@Validated @RequestBody UpdatePhoneDTO dto) {
+ String code = redisService.getCacheObject(dto.getPhone() + Constants.APPLET);
+ if(StringUtils.isEmpty(code)){
+ return AjaxResult.error("验证码已过期,请重新获取验证码!");
+ }
+ if(!code.equals(dto.getCode())){
+ return AjaxResult.error("验证码错误!");
+ }
+ // 获取当前用户信息
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ TAppUser appUser = appUserService.getById(userId);
+ appUser.setPhone(dto.getPhone());
+ appUserService.updateById(appUser);
+ return AjaxResult.success();
+ }
+
/**
* 根据用户id查询用户信息
* @param appUserIds 用户id
@@ -473,6 +496,17 @@
return R.ok();
}
+ /**
+ * 通过手机号查询用户
+ * @param phone
+ * @return
+ */
+ @GetMapping("/user/selectByPhone")
+ public R<TAppUser> selectByPhone(@RequestParam("phone") String phone){
+ return R.ok(appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class)
+ .eq(TAppUser::getPhone,phone)
+ .last("LIMIT 1")));
+ }
// @ApiOperation(value = "签到", tags = {"小程序-个人中心-签到"})
// @PostMapping(value = "/user/sign")
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
index 8bfd455..7d2b0bd 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
@@ -64,7 +64,7 @@
}
@ApiOperation(tags = {"小程序-广告管理"},value = "广告列表查询")
- @PostMapping(value = "/list")
+ @GetMapping(value = "/list")
public AjaxResult<List<TAdvertising>> list() {
return AjaxResult.ok(advertisingService.list(Wrappers.lambdaQuery(TAdvertising.class)
.eq(TAdvertising::getStatus, AdvertisingStatusEnum.YES.getCode())));
--
Gitblit v1.7.1