init
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
package com.ruoyi.cai.auth;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RegisterCode {
|
||||||
|
private String mobile;
|
||||||
|
}
|
||||||
@@ -0,0 +1,95 @@
|
|||||||
|
package com.ruoyi.cai.controller.admin;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.cai.domain.SmsVerify;
|
||||||
|
import com.ruoyi.cai.service.SmsVerifyService;
|
||||||
|
import com.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||||
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.core.validate.AddGroup;
|
||||||
|
import com.ruoyi.common.core.validate.EditGroup;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-01-01
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/cai/smsVerify")
|
||||||
|
public class SmsVerifyController extends BaseController {
|
||||||
|
|
||||||
|
private final SmsVerifyService smsVerifyService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询短信验证码列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:smsVerify:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SmsVerify> list(SmsVerify bo, PageQuery pageQuery) {
|
||||||
|
Page<SmsVerify> page = smsVerifyService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取短信验证码详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:smsVerify:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<SmsVerify> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(smsVerifyService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增短信验证码
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:smsVerify:add")
|
||||||
|
@Log(title = "短信验证码", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody SmsVerify bo) {
|
||||||
|
return toAjax(smsVerifyService.save(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改短信验证码
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:smsVerify:edit")
|
||||||
|
@Log(title = "短信验证码", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SmsVerify bo) {
|
||||||
|
return toAjax(smsVerifyService.updateById(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除短信验证码
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:smsVerify:remove")
|
||||||
|
@Log(title = "短信验证码", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(smsVerifyService.removeBatchByIds(Arrays.asList(ids)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,7 +4,10 @@ import cn.dev33.satoken.annotation.SaIgnore;
|
|||||||
import com.ruoyi.cai.auth.CaiLoginManager;
|
import com.ruoyi.cai.auth.CaiLoginManager;
|
||||||
import com.ruoyi.cai.auth.CaiRegisterUser;
|
import com.ruoyi.cai.auth.CaiRegisterUser;
|
||||||
import com.ruoyi.cai.auth.LoginCaiUser;
|
import com.ruoyi.cai.auth.LoginCaiUser;
|
||||||
import com.ruoyi.cai.service.UserService;
|
import com.ruoyi.cai.auth.RegisterCode;
|
||||||
|
import com.ruoyi.cai.enums.CodeEnum;
|
||||||
|
import com.ruoyi.cai.manager.CodeManager;
|
||||||
|
import com.ruoyi.cai.service.SmsVerifyService;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
@@ -26,20 +29,22 @@ public class AuthAppController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CaiLoginManager caiLoginManager;
|
private CaiLoginManager caiLoginManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private SmsVerifyService smsVerifyService;
|
||||||
|
|
||||||
@PostMapping("/register")
|
@PostMapping("/register")
|
||||||
@Operation(summary = "注册")
|
@Operation(summary = "注册")
|
||||||
public R<Void> register(@RequestBody CaiRegisterUser caiUser){
|
public R<Map<String, Object>> register(@RequestBody CaiRegisterUser caiUser){
|
||||||
userService.register(caiUser);
|
String token = caiLoginManager.register(caiUser);
|
||||||
return R.ok();
|
Map<String, Object> ajax = new HashMap<>();
|
||||||
|
ajax.put("token",token);
|
||||||
|
return R.ok(ajax);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/register/code")
|
@PostMapping("/register/code")
|
||||||
@Operation(summary = "获取注册验证码")
|
@Operation(summary = "获取注册验证码")
|
||||||
public R<Map<String,String>> registerCode(@RequestBody CaiRegisterUser caiUser){
|
public R<Map<String,String>> registerCode(@RequestBody RegisterCode code){
|
||||||
userService.register(caiUser);
|
smsVerifyService.put(code.getMobile());
|
||||||
return R.ok();
|
return R.ok("发送成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
|
|||||||
57
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SmsVerify.java
Normal file
57
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SmsVerify.java
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
package com.ruoyi.cai.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码对象 cai_sms_verify
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-01-01
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("cai_sms_verify")
|
||||||
|
public class SmsVerify implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 状态 0 过期,或者删除 1 正常
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
/**
|
||||||
|
* 接收号码
|
||||||
|
*/
|
||||||
|
private String receivePhone;
|
||||||
|
/**
|
||||||
|
* 验证码
|
||||||
|
*/
|
||||||
|
private String verifyCode;
|
||||||
|
/**
|
||||||
|
* 发送内容
|
||||||
|
*/
|
||||||
|
private String sendContent;
|
||||||
|
/**
|
||||||
|
* 发送平台
|
||||||
|
*/
|
||||||
|
private String sendInterface;
|
||||||
|
/**
|
||||||
|
* 操作IP
|
||||||
|
*/
|
||||||
|
private String operateIp;
|
||||||
|
/**
|
||||||
|
* 过期时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime overTime;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.ruoyi.cai.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.ruoyi.cai.domain.SmsVerify;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码Mapper接口
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-01-01
|
||||||
|
*/
|
||||||
|
public interface SmsVerifyMapper extends BaseMapper<SmsVerify> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.ruoyi.cai.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.ruoyi.cai.domain.SmsVerify;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码Service接口
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-01-01
|
||||||
|
*/
|
||||||
|
public interface SmsVerifyService extends IService<SmsVerify> {
|
||||||
|
|
||||||
|
void put(String mobile);
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.ruoyi.cai.domain.SmsVerify;
|
||||||
|
import com.ruoyi.cai.enums.CodeEnum;
|
||||||
|
import com.ruoyi.cai.manager.CodeManager;
|
||||||
|
import com.ruoyi.cai.mapper.SmsVerifyMapper;
|
||||||
|
import com.ruoyi.cai.service.SmsVerifyService;
|
||||||
|
import com.ruoyi.common.utils.ServletUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短信验证码Service业务层处理
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-01-01
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SmsVerifyServiceImpl extends ServiceImpl<SmsVerifyMapper,SmsVerify> implements SmsVerifyService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CodeManager codeManager;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void put(String mobile){
|
||||||
|
String code = codeManager.put(CodeEnum.REGISTER, mobile);
|
||||||
|
SmsVerify smsVerify = new SmsVerify();
|
||||||
|
smsVerify.setReceivePhone(mobile);
|
||||||
|
smsVerify.setVerifyCode(code);
|
||||||
|
smsVerify.setSendInterface("阿里云");
|
||||||
|
smsVerify.setOperateIp(ServletUtils.getClientIP());
|
||||||
|
smsVerify.setOverTime(LocalDateTime.now().plus(3, ChronoUnit.MINUTES));
|
||||||
|
this.save(smsVerify);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
20
ruoyi-cai/src/main/resources/mapper/cai/SmsVerifyMapper.xml
Normal file
20
ruoyi-cai/src/main/resources/mapper/cai/SmsVerifyMapper.xml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.cai.mapper.SmsVerifyMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.cai.domain.SmsVerify" id="SmsVerifyResult">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="status" column="status"/>
|
||||||
|
<result property="receivePhone" column="receive_phone"/>
|
||||||
|
<result property="verifyCode" column="verify_code"/>
|
||||||
|
<result property="sendContent" column="send_content"/>
|
||||||
|
<result property="sendInterface" column="send_interface"/>
|
||||||
|
<result property="operateIp" column="operate_ip"/>
|
||||||
|
<result property="overTime" column="over_time"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user