验证码登录修改
parent
d908354926
commit
f34ee35d91
|
|
@ -185,7 +185,7 @@ public class UserController {
|
||||||
@GetMapping(value = "loginByCode/{phone}/{code}")
|
@GetMapping(value = "loginByCode/{phone}/{code}")
|
||||||
public ResultJson loginByCode(@PathVariable("phone") String phone,@PathVariable("code") String code) {
|
public ResultJson loginByCode(@PathVariable("phone") String phone,@PathVariable("code") String code) {
|
||||||
|
|
||||||
return ResultJson.ok(service.loginByCode(phone,code));
|
return ResultJson.ok(service.loginByCode(phone,code.toUpperCase()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,22 @@
|
||||||
package com.whdc.model.entity;
|
package com.whdc.model.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
import com.whdc.model.group.Insert;
|
import com.whdc.model.group.Insert;
|
||||||
import com.whdc.model.group.Update;
|
import com.whdc.model.group.Update;
|
||||||
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;import java.io.Serializable;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -28,9 +34,9 @@ import java.util.Date;
|
||||||
public class LoginInfo extends Model<LoginInfo> implements Serializable {
|
public class LoginInfo extends Model<LoginInfo> implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@TableId(value = "ID",type = IdType.AUTO)
|
@TableId(value = "ID", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "id")
|
@ApiModelProperty(value = "id")
|
||||||
@NotNull(message = "id不能为空" , groups = {Update.class})
|
@NotNull(message = "id不能为空", groups = {Update.class})
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -40,14 +46,15 @@ public class LoginInfo extends Model<LoginInfo> implements Serializable {
|
||||||
|
|
||||||
@TableField("CREATE_ID")
|
@TableField("CREATE_ID")
|
||||||
@ApiModelProperty(value = "新增人id")
|
@ApiModelProperty(value = "新增人id")
|
||||||
@NotNull(message = "id不能为空" , groups = {Insert.class})
|
@NotNull(message = "id不能为空", groups = {Insert.class})
|
||||||
private String createId;
|
private String createId;
|
||||||
|
|
||||||
@TableField("CREATE_TIME")
|
@TableField("CREATE_TIME")
|
||||||
@ApiModelProperty(value = "新增时间")
|
@ApiModelProperty(value = "新增时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
@NotEmpty(message = "0:密码登录 1:验证码登录不能为空", groups = {Insert.class,Update.class})
|
@NotEmpty(message = "0:密码登录 1:验证码登录不能为空", groups = {Insert.class, Update.class})
|
||||||
@TableField("TYPE")
|
@TableField("TYPE")
|
||||||
@ApiModelProperty(value = "0:密码登录 1:验证码登录")
|
@ApiModelProperty(value = "0:密码登录 1:验证码登录")
|
||||||
private String type;
|
private String type;
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,22 @@
|
||||||
package com.whdc.model.entity;
|
package com.whdc.model.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
import com.whdc.model.group.Insert;
|
import com.whdc.model.group.Insert;
|
||||||
import com.whdc.model.group.Update;
|
import com.whdc.model.group.Update;
|
||||||
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;import java.io.Serializable;
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -28,18 +34,18 @@ import java.util.Date;
|
||||||
public class User extends Model<User> implements Serializable {
|
public class User extends Model<User> implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
@TableId(value = "ID",type = IdType.AUTO)
|
@TableId(value = "ID", type = IdType.AUTO)
|
||||||
@ApiModelProperty(value = "id")
|
@ApiModelProperty(value = "id")
|
||||||
// @NotNull(message = "id不能为空" , groups = {Update.class})
|
// @NotNull(message = "id不能为空" , groups = {Update.class})
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
@NotEmpty(message = "用户名不能为空", groups = {Insert.class,Update.class})
|
@NotEmpty(message = "用户名不能为空", groups = {Insert.class, Update.class})
|
||||||
@TableField("USERNAME")
|
@TableField("USERNAME")
|
||||||
@ApiModelProperty(value = "用户名")
|
@ApiModelProperty(value = "用户名")
|
||||||
private String username;
|
private String username;
|
||||||
|
|
||||||
|
|
||||||
@NotEmpty(message = "密码不能为空", groups = {Insert.class,Update.class})
|
@NotEmpty(message = "密码不能为空", groups = {Insert.class, Update.class})
|
||||||
@TableField("PASSWORD")
|
@TableField("PASSWORD")
|
||||||
@ApiModelProperty(value = "密码")
|
@ApiModelProperty(value = "密码")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
@ -50,11 +56,12 @@ public class User extends Model<User> implements Serializable {
|
||||||
|
|
||||||
@TableField("AB_ID")
|
@TableField("AB_ID")
|
||||||
@ApiModelProperty(value = "通讯录id")
|
@ApiModelProperty(value = "通讯录id")
|
||||||
@NotEmpty(message = "通讯录id不能为空", groups = {Insert.class,Update.class})
|
@NotEmpty(message = "通讯录id不能为空", groups = {Insert.class, Update.class})
|
||||||
private Integer abId;
|
private Integer abId;
|
||||||
|
|
||||||
@TableField("LAST_DATE")
|
@TableField("LAST_DATE")
|
||||||
@ApiModelProperty(value = "最后登录时间")
|
@ApiModelProperty(value = "最后登录时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date lastLoginDate;
|
private Date lastLoginDate;
|
||||||
|
|
||||||
@TableField("ROLE")
|
@TableField("ROLE")
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.whdc.model.group.Insert;
|
import com.whdc.model.group.Insert;
|
||||||
import com.whdc.model.group.Update;
|
import com.whdc.model.group.Update;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
|
@ -59,6 +60,7 @@ public class Versions extends Model<Versions> implements Serializable {
|
||||||
|
|
||||||
@TableField("CREATE_TIME")
|
@TableField("CREATE_TIME")
|
||||||
@ApiModelProperty(value = "新增时间")
|
@ApiModelProperty(value = "新增时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
@TableField("TYPE")
|
@TableField("TYPE")
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.whdc.service.impl;
|
package com.whdc.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
@ -19,6 +21,7 @@ import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import com.whdc.utils.ResultJson;
|
import com.whdc.utils.ResultJson;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.http.HttpStatus;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
|
@ -150,9 +153,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
// 判断是否以发送
|
// 判断是否以发送
|
||||||
String key = REDIS_KEY + "code:" + phone;
|
String key = REDIS_KEY + "code:" + phone;
|
||||||
String code = String.valueOf(stringRedisTemplate.opsForValue().get(key));
|
String code = String.valueOf(stringRedisTemplate.opsForValue().get(key));
|
||||||
if (StringUtils.isBlank(code)) {
|
if (StringUtils.isBlank(code) || "null".equals(code)) {
|
||||||
// 生成验证码
|
// 生成验证码
|
||||||
String numCode = getNumCode();
|
String numCode = getNumCode().toUpperCase();
|
||||||
push(phone, numCode);
|
push(phone, numCode);
|
||||||
stringRedisTemplate.opsForValue().set(key, numCode, 60, TimeUnit.SECONDS);
|
stringRedisTemplate.opsForValue().set(key, numCode, 60, TimeUnit.SECONDS);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -227,23 +230,24 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
|
|
||||||
String yzm2 = ""; //定义一个空的Atring变量用来接收生成的验证码
|
String yzm2 = ""; //定义一个空的Atring变量用来接收生成的验证码
|
||||||
|
|
||||||
for (int i = 0; i < 5; i++) { //循环5次每次生成一位,5位验证码
|
for (int i = 0; i < 6; i++) {
|
||||||
|
//循环5次每次生成一位,5位验证码
|
||||||
int a = yzm.nextInt(3); //验证码包括数字、大小写字母组成
|
yzm2 = yzm2 + yzm.nextInt(10);
|
||||||
switch (a) { //a: 0 1 2
|
// int a = yzm.nextInt(1); //验证码包括数字、大小写字母组成
|
||||||
case 0: // 数字 小写字母 大写字母
|
// switch (a) { //a: 0 1 2
|
||||||
char s = (char) (yzm.nextInt(26) + 65);
|
// case 0: // 数字 小写字母 大写字母
|
||||||
yzm2 = yzm2 + s;
|
// char s = (char) (yzm.nextInt(26) + 65);
|
||||||
break;
|
// yzm2 = yzm2 + s;
|
||||||
case 1:
|
// break;
|
||||||
char s1 = (char) (yzm.nextInt(26) + 97);
|
// case 1:
|
||||||
yzm2 = yzm2 + s1;
|
// char s1 = (char) (yzm.nextInt(26) + 97);
|
||||||
break;
|
// yzm2 = yzm2 + s1;
|
||||||
case 2:
|
// break;
|
||||||
int s2 = yzm.nextInt(10);
|
// case 2:
|
||||||
yzm2 = yzm2 + s2;
|
// int s2 = yzm.nextInt(10);
|
||||||
break;
|
// yzm2 = yzm2 + s2;
|
||||||
}
|
// break;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
return yzm2;
|
return yzm2;
|
||||||
}
|
}
|
||||||
|
|
@ -259,9 +263,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
String content = "您正在登录湖北省防汛抗旱通讯录,验证码为:" + code + ",若非本人操作,请勿将验证码泄露他人。";
|
String content = "您正在登录湖北省防汛抗旱通讯录,验证码为:" + code + ",若非本人操作,请勿将验证码泄露他人。";
|
||||||
|
|
||||||
String body = "{\n" +
|
String body = "{\n" +
|
||||||
" \"channel\": \"[phone]\",\n" +
|
" \"channel\": [\"phone\"],\n" +
|
||||||
" \"content\": \"" + content + "\",\n" +
|
" \"content\": \"" + content + "\",\n" +
|
||||||
" \"devices\": \"['" + phone + "']\",\n" +
|
" \"devices\": [\"" + phone + "\"],\n" +
|
||||||
" \"foreignId\": \"" + UUID.randomUUID() + "\",\n" +
|
" \"foreignId\": \"" + UUID.randomUUID() + "\",\n" +
|
||||||
" \"source\": \"山洪app\",\n" +
|
" \"source\": \"山洪app\",\n" +
|
||||||
// " \"token\": \"\",\n" +
|
// " \"token\": \"\",\n" +
|
||||||
|
|
@ -272,7 +276,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
|
|
||||||
String s = HttpUtil.sendPost("http://223.75.53.141:82/shpush/v1/push/", body);
|
String s = HttpUtil.sendPost("http://223.75.53.141:82/shpush/v1/push/", body);
|
||||||
log.info("发送结果: " + s);
|
log.info("发送结果: " + s);
|
||||||
|
JSONObject jsonObject = JSON.parseObject(s);
|
||||||
|
if (jsonObject.getInteger("code") != HttpStatus.SC_OK){
|
||||||
|
throw new MyException(jsonObject.getString("message"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -312,8 +319,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
String salt = UUID.randomUUID().toString().replaceAll("-", "");
|
// String salt = UUID.randomUUID().toString().replaceAll("-", "");
|
||||||
System.out.println(salt);
|
// System.out.println(salt);
|
||||||
System.out.println(DigestUtils.md5DigestAsHex((salt + DEFAULT_PASSWORD).getBytes()));
|
// System.out.println(DigestUtils.md5DigestAsHex((salt + DEFAULT_PASSWORD).getBytes()));
|
||||||
|
String numCode = getNumCode();
|
||||||
|
System.out.println();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue