提交 2e394dfa 作者: 17607474349

feat:

1、提交上次遗漏文件
上级 15de1d03
/* (C) 2022 YiRing, Inc. */
package com.yiring.auth.param.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 用户修改手机号
*
* @author LJ-2204
* @date 2022/5/21
*/
@ApiModel("UserPhoneParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserPhoneParam implements Serializable {
@Serial
private static final long serialVersionUID = -3240552295880947685L;
@ApiModelProperty(value = "手机号码", example = "1888888888")
@NotEmpty(message = "手机号码不能为空")
String mobile;
@ApiModelProperty(value = "验证码", example = "7758")
@NotEmpty(message = "验证码不能为空")
String code;
@ApiModelProperty(value = "类型", example = "phone/pwd")
@NotEmpty(message = "类型不能为空")
String type;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.auth.param.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 用户修改密码
*
* @author LJ-2204
* @date 2022/5/21
*/
@ApiModel("UserPwdParam")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserPwdParam implements Serializable {
@Serial
private static final long serialVersionUID = -3263642123788595634L;
@ApiModelProperty(value = "旧密码", example = "10086")
String oldPassword;
@ApiModelProperty(value = "新密码", example = "10086")
@NotEmpty(message = "新密码不能为空")
String newPassword;
@ApiModelProperty(value = "确认密码", example = "10086")
@NotEmpty(message = "确认密码不能为空")
String confirmPwd;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.auth.service;
import cn.hutool.extra.spring.SpringUtil;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
/**
* 短信服务
*
* @author fangzhimin
* @date 2018/9/4 15:39
*/
@Slf4j
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
@Component
@ConfigurationProperties(prefix = "config.sms")
public class MessageService {
@Resource
RedisTemplate<String, Object> redisTemplate;
/**
* 默认验证码有效期
*/
Long expired;
String scOk;
String product;
String domain;
String accessKeyId;
String accessKeySecret;
String signName;
String templateCode;
/**
* 发送手机短信验证码
*
* @param phone 手机号
* @return 公共的接口响应内容
*/
public Result<String> sendSmsCode(String phone) {
try {
String environment = "dev";
if (Arrays.asList(SpringUtil.getActiveProfiles()).contains(environment)) {
String number = "123456";
// 将短信验证码存入Redis
redisTemplate.opsForValue().set(phone, number, expired, TimeUnit.MILLISECONDS);
return Result.ok(number);
}
// 随机数验证码
String number = (int) ((Math.random() * 9 + 1) * 100000) + "";
// 超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
// 初始化
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
// 组装请求对象
SendSmsRequest request = new SendSmsRequest();
request.setSysMethod(MethodType.POST);
request.setPhoneNumbers(phone);
request.setSignName(signName);
request.setTemplateCode(templateCode);
request.setTemplateParam("{\"smsCode\":\"" + number + "\"}");
// 发送请求,失败会抛出异常
SendSmsResponse res = acsClient.getAcsResponse(request);
if (res.getCode() != null && scOk.equals(res.getCode())) {
// 将短信验证码存入Redis
redisTemplate.opsForValue().set(phone, number, expired, TimeUnit.MILLISECONDS);
}
return Result.no(Status.INTERNAL_SERVER_ERROR, res.getMessage());
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.no(Status.INTERNAL_SERVER_ERROR);
}
}
}
......@@ -236,7 +236,12 @@ public class UserServiceImpl implements UserService {
}
User user = userOptional.get();
user.setPassword(SaSecureUtil.sha256(param.getConfirmPwd()));
String pwd = SaSecureUtil.sha256(param.getConfirmPwd());
if (!StrUtil.equals(pwd, user.getPassword())) {
return Result.no(Status.BAD_REQUEST, "原密码输入错误");
}
user.setPassword(pwd);
userRepository.save(user);
return Result.ok();
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.common.constant;
/**
* Redis Key 常量类
*
* @author fangzhimin
* @date 2018/9/4 15:51
*/
public interface RedisKey {
/**
* 短信验证码HashKey
*/
String SMS_VERIFICATION_CODE = "SMS_VERIFICATION_CODE";
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论