package com.huimv.farm.damsubsidy.test; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huimv.farm.damsubsidy.common.utils.Result; import com.huimv.farm.damsubsidy.common.utils.ResultCode; import com.huimv.farm.damsubsidy.common.utils.SmsUtils; import com.huimv.farm.damsubsidy.entity.BillBuyInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import java.util.Map; import java.util.Random; import java.util.concurrent.TimeUnit; @RestController @RequestMapping("/sys-user2") @CrossOrigin public class LoginTest { @Autowired private RedisTemplate redisTemplate; @PostMapping("/senCode") public void senCode(@RequestBody Map paramsMap) throws Exception { String phone = paramsMap.get("phone"); System.out.println(phone); String code = generateRandomCode(); //模板id String templateId = "e683346d84234fc1a0816791587a4335"; //模板里的参数,可多个 String[] params = {code}; // 调用发送短信的接口 JSONObject success = SmsUtils.sendSms(templateId,phone, params); Boolean success1 = (Boolean)success.get("success"); if (success1) { // 如果发送成功,将手机号和验证码保存 redisTemplate.opsForValue().set("xumu:"+phone,code,5L, TimeUnit.MINUTES); System.out.println("发送成功"); // phoneCodeMap.put(phoneNumber, code); } else { // do something } System.out.println(success); } @PostMapping("/checkCode") public void listTransaction(@RequestBody Map paramsMap){ String phone = paramsMap.get("phone"); String code = paramsMap.get("code"); //是否存在 Boolean aBoolean = redisTemplate.hasKey("xumu:" + phone); //是否过期 Boolean isGuoqi = redisTemplate.hasKey("xumu:" + phone); System.out.println(aBoolean); System.out.println(isGuoqi); String s = redisTemplate.opsForValue().get("xumu:" + phone); if (!code.equals(s)){ System.out.println("验证码错误"); }else { System.out.println("登录成功"); } } private static String generateRandomCode() { Random random = new Random(); String code = ""; for (int i = 0; i < 6; i++) { code += random.nextInt(10); } return code; } }