|
|
@@ -5,6 +5,7 @@ import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
|
|
import cn.hutool.extra.qrcode.QrConfig;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.ylx.common.annotation.Log;
|
|
|
import com.ylx.common.config.RuoYiConfig;
|
|
|
@@ -15,6 +16,9 @@ import com.ylx.common.core.domain.R;
|
|
|
import com.ylx.common.core.domain.model.BindPhoneBody;
|
|
|
import com.ylx.common.core.domain.model.PhoneLoginBody;
|
|
|
import com.ylx.common.core.domain.model.WxLoginUser;
|
|
|
+import com.ylx.common.core.domain.model.aliyun.SMSVerificationCode;
|
|
|
+import com.ylx.common.core.domain.model.aliyun.SendSmsComponents;
|
|
|
+import com.ylx.common.core.domain.model.aliyun.SendSmsEnum;
|
|
|
import com.ylx.common.core.redis.RedisCache;
|
|
|
import com.ylx.common.enums.BusinessType;
|
|
|
import com.ylx.common.utils.MessageUtils;
|
|
|
@@ -70,6 +74,10 @@ public class WeChatController extends BaseController {
|
|
|
private final static String REFRESH_TOKEN = "refresh_token";
|
|
|
private final static String OPEN_ID = "openid";
|
|
|
|
|
|
+ public static final String PHONE_VERIFICATION_CODE_KEY = "sys:clientLogin:phone:";
|
|
|
+
|
|
|
+ public static final Integer PHONE_VERIFICATION_CODE_KEY_TIME = 5;
|
|
|
+
|
|
|
/**
|
|
|
* 二维码保存路径
|
|
|
*/
|
|
|
@@ -99,9 +107,13 @@ public class WeChatController extends BaseController {
|
|
|
|
|
|
@Resource
|
|
|
private TJsService jsService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private RedisCache redisCache;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SendSmsComponents sendSms;
|
|
|
+
|
|
|
/**
|
|
|
* 发送验证码开关(true:调用真实发送接口,false:验证码写死123456)
|
|
|
*/
|
|
|
@@ -610,4 +622,32 @@ public class WeChatController extends BaseController {
|
|
|
log.info("手机号: {} 登录成功", phone);
|
|
|
return R.ok(wxUser);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送短信验证码
|
|
|
+ *
|
|
|
+ * @param phone 手机号
|
|
|
+ * @return R<String> 发送结果
|
|
|
+ */
|
|
|
+ @GetMapping("/sendMsg")
|
|
|
+ @ApiOperation(value = "发送短信验证码", notes = "发送短信验证码")
|
|
|
+ public R<String> sendMsg(@RequestParam String phone , HttpServletRequest request) {
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isEmpty(phone)) {
|
|
|
+ return R.fail("手机号不能为空");
|
|
|
+ }
|
|
|
+ Random rand = new Random();
|
|
|
+ // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数
|
|
|
+ int randNumber = rand.nextInt(9999 - 1000 + 1) + 1000;
|
|
|
+ // 保存验证码到redis
|
|
|
+ redisCache.setCacheObject(PHONE_VERIFICATION_CODE_KEY + phone, String.valueOf(randNumber), PHONE_VERIFICATION_CODE_KEY_TIME, TimeUnit.MINUTES);
|
|
|
+ try {
|
|
|
+ SMSVerificationCode smsVerificationCode = new SMSVerificationCode(String.valueOf(randNumber));
|
|
|
+ String jsonString = JSON.toJSONString(smsVerificationCode);
|
|
|
+ sendSms.sendSms(phone, SendSmsEnum.SMS_220650023, jsonString);
|
|
|
+ return R.ok("发送成功");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return R.fail("发送失败");
|
|
|
+ }
|
|
|
}
|