Day6

发布时间 2023-12-17 21:05:08作者: 20211205ZX

      成员

       任务

     完成情况

许博文

数据库逻辑结构设计、后端架构设计

     完成

   旦增赤列

后端架构设计、数据库逻辑结构设计

      完成

     周翔

前端架构设计

      完成

package

import java.util.Random;

/*

* 随机生成验证码工具类

public class ValidateCodeUtils

private String

/**

*随机生成验证码

@param Length 大于0的任意整数

areturn

codes

"23456789abcdefghijkmnopqrstuVWxyZABCDEFGHIJKLMNOPQRSTUVWXYXZ";

public static int generateValidateCode(int length){

int code = 0;

int range = (int)(Math.pow(10, length) - Math.pow(10, length - 1));if(length <= 1) {

code = (int)(new Random().nextInt(range) - Math.pow(10, length - 1));

return code;

return

/**

*随机生成指定长度字符串验证码

*@param Length 长度

* @return

public static String generateValidateCode4String(int length){

Random rdm = new Random();

String hash1 = Integer.toHexString(rdm.nextInt());

return hash1.substring(0, length);

f4j

public class sendMsgByPhone {

public static boolean sendMsgByPhone(String tel){

//判断redis中是否存在验证码

//jedis.ttl(key)

//存在

if(StringUtils.isNotBlank(tel)){

String code = ValidateCodeUtils.generateValidateCode4String( length: 4);

log.info("code{}", code);

//SMSUtils.sendMessage("XXXXXX","验证码有效期为 5 分钟,过期无效,请及时填写",tel, code);//redis 存储验证码code keytoken

log.info ("code={}",code) ;

return true;

return false;

     

短信发送工具类

public class SMSUtils

/**

* 发送短信

* @param signName 签名

* @param templateCode 模板

* @param phoneNumbers 手机号

* @param param 参数

public static void sendMessage(String signName, String templateCode,String phoneNumbers,String param){

DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "", "");

IAcsClient client = new DefaultAcsClient(profile);

SendSmsRequest request = new SendSmsRequest();

request.setSysRegionId("cn-hangzhou");

request.setPhoneNumbers (phoneNumbers);

request.setSignName(signName);

request.set TemplateCode (templateCode);

request.setTemplateParam("{\"code\":\""+param+"\"}");

try {

SendSmsResponse response=client.getAcsResponse (request);

System.out.println("短信发送成功");

}catch (ClientException e) {

  1. printStackTrace();