mirror of https://gitee.com/stylefeng/roses
【sms】短信验证码更新
parent
3c4af27164
commit
f32847a931
|
@ -68,7 +68,7 @@ public class SmsSenderController {
|
||||||
* @author fengshuonan
|
* @author fengshuonan
|
||||||
* @date 2020/10/26 18:35
|
* @date 2020/10/26 18:35
|
||||||
*/
|
*/
|
||||||
@PostResource(name = "验证短信验证码", path = "/sms/validateMessage")
|
@PostResource(name = "验证短信验证码", path = "/sms/validateMessage", requiredLogin = false, requiredPermission = false)
|
||||||
public ResponseData validateMessage(@RequestBody @Validated SysSmsVerifyParam sysSmsVerifyParam) {
|
public ResponseData validateMessage(@RequestBody @Validated SysSmsVerifyParam sysSmsVerifyParam) {
|
||||||
sysSmsInfoService.validateSmsInfo(sysSmsVerifyParam);
|
sysSmsInfoService.validateSmsInfo(sysSmsVerifyParam);
|
||||||
return new SuccessResponseData("短信验证成功");
|
return new SuccessResponseData("短信验证成功");
|
||||||
|
|
|
@ -34,8 +34,8 @@ public class SysSms extends BaseEntity implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
@TableField("phone_number")
|
@TableField("phone")
|
||||||
private String phoneNumber;
|
private String phone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信验证码
|
* 短信验证码
|
||||||
|
|
|
@ -24,7 +24,7 @@ public class SysSmsInfoParam extends BaseRequest {
|
||||||
/**
|
/**
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
private String phoneNumber;
|
private String phone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信验证码
|
* 短信验证码
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class SysSmsSendParam {
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "手机号码为空")
|
@NotBlank(message = "手机号码为空")
|
||||||
private String phoneNumber;
|
private String phone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 模板号
|
* 模板号
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class SysSmsVerifyParam {
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "手机号不能为空")
|
@NotBlank(message = "手机号不能为空")
|
||||||
private String phoneNumber;
|
private String phone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证码
|
* 验证码
|
||||||
|
|
|
@ -69,7 +69,7 @@ public class SysSmsInfoServiceImpl extends ServiceImpl<SysSmsMapper, SysSms> imp
|
||||||
|
|
||||||
// 1. 如果是纯消息发送,直接发送,校验类短信要把验证码存库
|
// 1. 如果是纯消息发送,直接发送,校验类短信要把验证码存库
|
||||||
if (SmsTypeEnum.MESSAGE.equals(sysSmsSendParam.getSmsTypeEnum())) {
|
if (SmsTypeEnum.MESSAGE.equals(sysSmsSendParam.getSmsTypeEnum())) {
|
||||||
smsSenderApi.sendSms(sysSmsSendParam.getPhoneNumber(), sysSmsSendParam.getTemplateCode(), params);
|
smsSenderApi.sendSms(sysSmsSendParam.getPhone(), sysSmsSendParam.getTemplateCode(), params);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 如果参数中有code参数,则获取参数param中的code值
|
// 2. 如果参数中有code参数,则获取参数param中的code值
|
||||||
|
@ -90,10 +90,10 @@ public class SysSmsInfoServiceImpl extends ServiceImpl<SysSmsMapper, SysSms> imp
|
||||||
// 4. 存储短信到数据库
|
// 4. 存储短信到数据库
|
||||||
Long smsId = this.saveSmsInfo(sysSmsSendParam, validateCode);
|
Long smsId = this.saveSmsInfo(sysSmsSendParam, validateCode);
|
||||||
|
|
||||||
log.info(">>> 开始发送短信:发送的电话号码= " + sysSmsSendParam.getPhoneNumber() + ",发送的模板号=" + sysSmsSendParam.getTemplateCode() + ",发送的参数是:" + JSON.toJSONString(params));
|
log.info(">>> 开始发送短信:发送的电话号码= " + sysSmsSendParam.getPhone() + ",发送的模板号=" + sysSmsSendParam.getTemplateCode() + ",发送的参数是:" + JSON.toJSONString(params));
|
||||||
|
|
||||||
// 5. 发送短信
|
// 5. 发送短信
|
||||||
smsSenderApi.sendSms(sysSmsSendParam.getPhoneNumber(), sysSmsSendParam.getTemplateCode(), params);
|
smsSenderApi.sendSms(sysSmsSendParam.getPhone(), sysSmsSendParam.getTemplateCode(), params);
|
||||||
|
|
||||||
// 6. 更新短信发送状态
|
// 6. 更新短信发送状态
|
||||||
this.updateSmsInfo(smsId, SmsSendStatusEnum.SUCCESS);
|
this.updateSmsInfo(smsId, SmsSendStatusEnum.SUCCESS);
|
||||||
|
@ -115,7 +115,7 @@ public class SysSmsInfoServiceImpl extends ServiceImpl<SysSmsMapper, SysSms> imp
|
||||||
SysSms sysSms = new SysSms();
|
SysSms sysSms = new SysSms();
|
||||||
sysSms.setCreateTime(nowDate);
|
sysSms.setCreateTime(nowDate);
|
||||||
sysSms.setInvalidTime(invalidate);
|
sysSms.setInvalidTime(invalidate);
|
||||||
sysSms.setPhoneNumber(sysSmsSendParam.getPhoneNumber());
|
sysSms.setPhone(sysSmsSendParam.getPhone());
|
||||||
sysSms.setStatusFlag(SmsSendStatusEnum.WAITING.getCode());
|
sysSms.setStatusFlag(SmsSendStatusEnum.WAITING.getCode());
|
||||||
sysSms.setSource(sysSmsSendParam.getSmsSendSourceEnum().getCode());
|
sysSms.setSource(sysSmsSendParam.getSmsSendSourceEnum().getCode());
|
||||||
sysSms.setTemplateCode(sysSmsSendParam.getTemplateCode());
|
sysSms.setTemplateCode(sysSmsSendParam.getTemplateCode());
|
||||||
|
@ -141,7 +141,7 @@ public class SysSmsInfoServiceImpl extends ServiceImpl<SysSmsMapper, SysSms> imp
|
||||||
|
|
||||||
// 查询有没有这条记录
|
// 查询有没有这条记录
|
||||||
LambdaQueryWrapper<SysSms> smsQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysSms> smsQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
smsQueryWrapper.eq(SysSms::getPhoneNumber, sysSmsVerifyParam.getPhoneNumber())
|
smsQueryWrapper.eq(SysSms::getPhone, sysSmsVerifyParam.getPhone())
|
||||||
.and(f -> f.eq(SysSms::getSource, sysSmsVerifyParam.getSmsSendSourceEnum().getCode()))
|
.and(f -> f.eq(SysSms::getSource, sysSmsVerifyParam.getSmsSendSourceEnum().getCode()))
|
||||||
.and(f -> f.eq(SysSms::getTemplateCode, sysSmsVerifyParam.getTemplateCode()));
|
.and(f -> f.eq(SysSms::getTemplateCode, sysSmsVerifyParam.getTemplateCode()));
|
||||||
smsQueryWrapper.orderByDesc(SysSms::getCreateTime);
|
smsQueryWrapper.orderByDesc(SysSms::getCreateTime);
|
||||||
|
@ -186,8 +186,8 @@ public class SysSmsInfoServiceImpl extends ServiceImpl<SysSmsMapper, SysSms> imp
|
||||||
if (ObjectUtil.isNotNull(sysSmsInfoParam)) {
|
if (ObjectUtil.isNotNull(sysSmsInfoParam)) {
|
||||||
|
|
||||||
// 根据手机号模糊查询
|
// 根据手机号模糊查询
|
||||||
if (ObjectUtil.isNotEmpty(sysSmsInfoParam.getPhoneNumber())) {
|
if (ObjectUtil.isNotEmpty(sysSmsInfoParam.getPhone())) {
|
||||||
queryWrapper.like(SysSms::getPhoneNumber, sysSmsInfoParam.getPhoneNumber());
|
queryWrapper.like(SysSms::getPhone, sysSmsInfoParam.getPhone());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据发送状态查询(字典 0 未发送,1 发送成功,2 发送失败,3 失效)
|
// 根据发送状态查询(字典 0 未发送,1 发送成功,2 发送失败,3 失效)
|
||||||
|
|
|
@ -24,6 +24,13 @@
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 验证码发送 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>sms-business-validation</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class SysUserRequest extends BaseRequest {
|
||||||
@NotBlank(message = "账号不能为空", groups = {add.class, edit.class, reg.class})
|
@NotBlank(message = "账号不能为空", groups = {add.class, edit.class, reg.class})
|
||||||
@TableUniqueValue(
|
@TableUniqueValue(
|
||||||
message = "账号存在重复",
|
message = "账号存在重复",
|
||||||
groups = {add.class, edit.class},
|
groups = {add.class, edit.class, reg.class},
|
||||||
tableName = "sys_user",
|
tableName = "sys_user",
|
||||||
columnName = "account",
|
columnName = "account",
|
||||||
idFieldName = "user_id",
|
idFieldName = "user_id",
|
||||||
|
@ -51,7 +51,7 @@ public class SysUserRequest extends BaseRequest {
|
||||||
/**
|
/**
|
||||||
* 新密码
|
* 新密码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "新密码不能为空", groups = {updatePwd.class, reg.class})
|
@NotBlank(message = "新密码不能为空", groups = {updatePwd.class})
|
||||||
private String newPassword;
|
private String newPassword;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -15,8 +15,6 @@ import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
@ -47,7 +45,7 @@ public class SysUserController {
|
||||||
* @author chenjinlong
|
* @author chenjinlong
|
||||||
* @date 2021/01/16 13:50
|
* @date 2021/01/16 13:50
|
||||||
*/
|
*/
|
||||||
@PostResource(name = "系统用户_注册", path = "/sysUser/register")
|
@PostResource(name = "系统用户_注册", path = "/sysUser/register", requiredLogin = false, requiredPermission = false)
|
||||||
public ResponseData register(@RequestBody @Validated(SysUserRequest.reg.class) SysUserRequest sysUserRequest) {
|
public ResponseData register(@RequestBody @Validated(SysUserRequest.reg.class) SysUserRequest sysUserRequest) {
|
||||||
sysUserService.register(sysUserRequest);
|
sysUserService.register(sysUserRequest);
|
||||||
return new SuccessResponseData();
|
return new SuccessResponseData();
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi;
|
||||||
|
@ -19,7 +20,6 @@ import cn.stylefeng.roses.kernel.rule.enums.TreeNodeEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory;
|
import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.tree.DefaultTreeNode;
|
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.tree.UserSelectTreeNode;
|
import cn.stylefeng.roses.kernel.rule.pojo.tree.UserSelectTreeNode;
|
||||||
import cn.stylefeng.roses.kernel.system.DataScopeApi;
|
import cn.stylefeng.roses.kernel.system.DataScopeApi;
|
||||||
import cn.stylefeng.roses.kernel.system.OrganizationServiceApi;
|
import cn.stylefeng.roses.kernel.system.OrganizationServiceApi;
|
||||||
|
@ -53,7 +53,6 @@ import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||||
import cn.stylefeng.roses.kernel.system.util.DataScopeUtil;
|
import cn.stylefeng.roses.kernel.system.util.DataScopeUtil;
|
||||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
@ -117,6 +116,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
public void register(SysUserRequest sysUserRequest) {
|
public void register(SysUserRequest sysUserRequest) {
|
||||||
SysUser sysUser = new SysUser();
|
SysUser sysUser = new SysUser();
|
||||||
BeanUtil.copyProperties(sysUserRequest, sysUser);
|
BeanUtil.copyProperties(sysUserRequest, sysUser);
|
||||||
|
sysUser.setRealName(IdUtil.simpleUUID());
|
||||||
|
SysUserCreateFactory.fillAddSysUser(sysUser);
|
||||||
// 保存用户
|
// 保存用户
|
||||||
this.save(sysUser);
|
this.save(sysUser);
|
||||||
}
|
}
|
||||||
|
@ -604,7 +605,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
orgTreeNode.setSort(hrOrganization.getOrgSort());
|
orgTreeNode.setSort(hrOrganization.getOrgSort());
|
||||||
treeNodeList.add(orgTreeNode);
|
treeNodeList.add(orgTreeNode);
|
||||||
List<UserSelectTreeNode> userNodeList = this.getUserTreeNodeList(hrOrganization.getOrgId());
|
List<UserSelectTreeNode> userNodeList = this.getUserTreeNodeList(hrOrganization.getOrgId());
|
||||||
if(userNodeList.size()>0){
|
if (userNodeList.size() > 0) {
|
||||||
treeNodeList.addAll(userNodeList);
|
treeNodeList.addAll(userNodeList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue