Commit f3d7383c authored by licc's avatar licc

修复bug

parent 65d0c74a
......@@ -76,9 +76,9 @@ public class User implements Serializable {
private Integer examType;
/**
* 来源 1:电脑端 2: 手机端
* 来源 1:PC 2: APP
*/
@ApiModelProperty(name = "source", value = "来源 1:电脑端 2: 手机端")
@ApiModelProperty(name = "source", value = "来源 1:PC 2: APP")
private Integer source;
/**
......
......@@ -8,10 +8,10 @@ import lombok.Data;
import java.io.Serializable;
/**
*@ Description: 用户提交Dto
*@ Author : 86187
*@ Date : 2021/1/12 15:39
* @author 86187
* @ Description: 用户提交Dto
* @ Author : 86187
* @ Date : 2021/1/12 15:39
*/
@Data
@ApiModel(value = "UserCommitDto")
......@@ -22,50 +22,50 @@ public class UserCommitDto implements Serializable {
/**
* 用户id
*/
@ApiModelProperty(value = "用户id",name = "userId")
@ApiModelProperty(value = "用户id", name = "userId")
private Integer userId;
/**
* 用户名称
*/
@ApiModelProperty(value = "用户名称",name = "userName")
@ApiModelProperty(value = "用户名称", name = "userName")
private String userName;
/**
* 用户头像
*/
@ApiModelProperty(value = "用户头像",name = "headImage")
@ApiModelProperty(value = "用户头像", name = "headImage")
private String headImage;
/**
* 性别
*/
@ApiModelProperty(value = "学校",name = "school")
@ApiModelProperty(value = "学校", name = "school")
private Integer sex;
/**
* 学校
*/
@ApiModelProperty(value = "学校",name = "school")
@ApiModelProperty(value = "学校", name = "school")
private String school;
/**
* 考生类型 1:文化课考生 2:美术生 3:体育生 4:文学编导考生
*/
@ApiModelProperty(value = "考生类型 1:文化课考生 2:美术生 3:体育生 4:文学编导考生",name = "studentType")
@ApiModelProperty(value = "考生类型 1:文化课考生 2:美术生 3:体育生 4:文学编导考生", name = "studentType")
private Integer studentType;
/**
* 用户来源 1:移动端 2:pc端
* 用户来源 1:PC 2:APP
*/
@ApiModelProperty(value = "用户来源 1:移动端 2:pc端",name = "source")
@ApiModelProperty(value = "用户来源 1:PC 2:APP", name = "source")
private Integer source;
/**
* 学生成绩信息
*/
@ApiModelProperty(value = "学生成绩信息",name = "scoreInfo")
@ApiModelProperty(value = "学生成绩信息", name = "scoreInfo")
private ScoreInfo scoreInfo;
}
package cn.wisenergy.model.enums;
/**
* @author 86187
* @ Description: 账户注册来源信息 枚举
* @ Author : 86187
* @ Date : 2021/2/9 10:48
*/
public enum SourceType {
//PC
PC(1, "PC"),
APP(2, "APP");
private Integer code;
private String desc;
SourceType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static String getByCode(Integer code) {
if (null == code) {
return null;
}
for (SourceType type : SourceType.values()) {
if (type.code.intValue() == code) {
return type.getDesc();
}
}
return null;
}
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public void setCode(Integer code) {
this.code = code;
}
}
......@@ -24,10 +24,10 @@ public class SendSmsVo implements Serializable {
private String phone;
/**
* 来源 PC/APP
* 来源 1:PC 2:APP
*/
@ApiModelProperty(value = "来源 PC/APP", name = "source")
private String source;
@ApiModelProperty(value = "来源 1:PC 2:APP", name = "source")
private Integer source;
/**
* 场景 1:短信登录 2:短信注册 3:短信修改密码 4:短信找回密码 5:短信重置密码
......
......@@ -42,8 +42,8 @@ public class UserLoginVo implements Serializable {
private Integer scene;
/**
* 来源: PC/APP
* 来源: 1:PC 2:APP
*/
@ApiModelProperty(value = "来源: PC/APP", name = "source")
private String source;
@ApiModelProperty(value = "来源: 1:PC 2:APP", name = "source")
private Integer source;
}
......@@ -37,10 +37,10 @@ public class UserRegisterVo implements Serializable {
private String smCode;
/**
* 来源 PC/APP
* 来源 1:PC 2:APP
*/
@ApiModelProperty(value = "来源 PC/APP", name = "source")
private String source;
@ApiModelProperty(value = "来源 1:PC 2:APP", name = "source")
private Integer source;
/**
* 场景 1:登录 2:注册 3:修改密码 4:找回密码 5:重置密码
......
......@@ -4,6 +4,7 @@ import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.User;
import cn.wisenergy.model.enums.SceneType;
import cn.wisenergy.model.enums.SourceType;
import cn.wisenergy.model.vo.SendSmsVo;
import cn.wisenergy.service.app.SendSmsSerVice;
import cn.wisenergy.service.cache.RedisService;
......@@ -52,7 +53,7 @@ public class SendSmsSerViceImpl implements SendSmsSerVice {
public R<Boolean> sendSmCode(SendSmsVo sendSmsVo) throws Exception {
log.info("volunteer-service[]SendSmsSerViceImpl[]sendSmCode[]input.param.sendSmsVo:" + sendSmsVo);
if (null == sendSmsVo || StringUtils.isBlank(sendSmsVo.getPhone()) ||
StringUtils.isBlank(sendSmsVo.getSource()) || null == sendSmsVo.getScene()) {
null == sendSmsVo.getSource() || null == sendSmsVo.getScene()) {
return R.error("入参不能为空!");
}
......@@ -69,9 +70,10 @@ public class SendSmsSerViceImpl implements SendSmsSerVice {
int code = (int) ((Math.random() * 9 + 1) * 100000);
//保存验证到缓存,以便做验证
String source = SourceType.getByCode(sendSmsVo.getSource());
String scene = SceneType.getNameByCode(sendSmsVo.getScene());
boolean bool = redisService.set(CachePrefix.SMS_CODE.getPrefix() + scene + "_" +
sendSmsVo.getSource() + "_" + sendSmsVo.getPhone(), code, Common.SMS_TIMEOUT);
source + "_" + sendSmsVo.getPhone(), code, Common.SMS_TIMEOUT);
if (!bool) {
return R.error("缓存验证码失败!");
......@@ -86,12 +88,12 @@ public class SendSmsSerViceImpl implements SendSmsSerVice {
try {
//发送验证码
CommonResponse response = client.getCommonResponse(request);
log.info("输出短信返回参数");
log.info("输出短信返回参数:" + response);
} catch (ClientException e) {
e.printStackTrace();
}
return R.ok(0,true);
return R.ok(0, true);
}
@Override
......@@ -103,7 +105,7 @@ public class SendSmsSerViceImpl implements SendSmsSerVice {
//判断缓存是否过期
long time = redisService.getExpire(key);
if (time < 0) {
return R.error(1,"验证码已过期!",false);
return R.error(1, "验证码已过期!", false);
}
//redis中获取验证码
......@@ -115,7 +117,7 @@ public class SendSmsSerViceImpl implements SendSmsSerVice {
redisService.del(key);
return R.ok(0, true);
} else {
return R.error(1,"验证码错误!",false);
return R.error(1, "验证码错误!", false);
}
}
return R.ok(1, false);
......
......@@ -9,6 +9,7 @@ import cn.wisenergy.model.app.LoginRecord;
import cn.wisenergy.model.app.User;
import cn.wisenergy.model.app.UserLimit;
import cn.wisenergy.model.enums.OperationTypeEnum;
import cn.wisenergy.model.enums.SourceType;
import cn.wisenergy.model.vo.UpdatePasswordVo;
import cn.wisenergy.model.vo.UserInfoVo;
import cn.wisenergy.model.vo.UserLoginVo;
......@@ -16,6 +17,7 @@ import cn.wisenergy.model.vo.UserRegisterVo;
import cn.wisenergy.service.app.SendSmsSerVice;
import cn.wisenergy.service.app.UserLoginService;
import cn.wisenergy.service.common.Common;
import cn.wisenergy.service.common.VolunteerManager;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -46,6 +48,9 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
@Autowired
private UserLimitMapper userLimitMapper;
@Autowired
private VolunteerManager volunteerManager;
private static final int ERROR_CODE = 1;
@Transactional(rollbackFor = Exception.class)
......@@ -67,60 +72,23 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
}
//2、判断验证码是否正确
String source = SourceType.getByCode(userVo.getSource());
R<Boolean> result = sendSmsSerVice.valid(userVo.getPhone(), userVo.getSmCode(),
userVo.getScene(), userVo.getSource());
userVo.getScene(), source);
if (null != result && result.getCode() == ERROR_CODE) {
return R.error(result.getMessage());
}
//3、给密码加密 加密规则,电话号码+明文密码
String secret = Md5Util.digestMD5(password + phone);
//4、添加用户信息
User userInfo = new User();
userInfo.setPhone(phone);
userInfo.setPassword(secret);
userInfo.setIsDelete(0);
int count = usersMapper.add(userInfo);
if (count == 0) {
return R.error("考生注册失败!");
}
//5、保存用户查询信息
UserLimit addLimit = new UserLimit();
addLimit.setUserId(userInfo.getId());
addLimit.setUseLimit(0);
addLimit.setUsableLimit(0);
addLimit.setTotalLimit(0);
int limit = userLimitMapper.add(addLimit);
if (limit == 0) {
return R.error("注册添加用户查询信息失败!");
}
//6、保存操作记录
LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_REGISTER.getCode());
loginRecord.setUserId(userInfo.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_REGISTER.getCode());
loginRecord.setOperationName(name);
int record = loginRecordMapper.add(loginRecord);
if (record == 0) {
return R.error("注册保存记录失败!");
}
//7、封装返回参数
UserInfoVo userInfoVo = new UserInfoVo();
userInfoVo.setUserId(userInfo.getId());
userInfoVo.setPhone(userInfo.getPhone());
return R.ok(userInfoVo);
return volunteerManager.saveUserAndLimit(phone, secret, userVo.getSource());
}
@Override
public R<UserInfoVo> loginCode(UserLoginVo userVo) {
log.info("volunteer-service[]UserLoginServiceImpl[]loginCode[]input.param.userVo:" + userVo);
if (null == userVo || StringUtils.isBlank(userVo.getPhone()) || StringUtils.isBlank(userVo.getCode()) ||
StringUtils.isBlank(userVo.getSource()) || null == userVo.getScene()) {
null == userVo.getSource() || null == userVo.getScene()) {
return R.error("入参为空!");
}
......@@ -134,12 +102,21 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
}
//2、判断验证码是否正确
R<Boolean> result = sendSmsSerVice.valid(userVo.getPhone(), userVo.getCode(),
userVo.getScene(), userVo.getSource());
String source = SourceType.getByCode(userVo.getSource());
R<Boolean> result = sendSmsSerVice.valid(userVo.getPhone(), userVo.getCode(), userVo.getScene(), source);
if (null != result && result.getCode() == ERROR_CODE) {
return R.error(result.getMessage());
}
//3、保存登录信息
LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setUserId(user.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_LOGIN.getCode());
loginRecord.setOperationName(name);
loginRecordMapper.add(loginRecord);
//4、构造返回参数
UserInfoVo userInfoVo = new UserInfoVo();
userInfoVo.setUserId(user.getId());
userInfoVo.setUserName(user.getUserName());
......@@ -279,7 +256,8 @@ public class UserLoginServiceImpl extends ServiceImpl<UsersMapper, User> impleme
}
//验证验证码
R<Boolean> bool = sendSmsSerVice.valid(userVo.getPhone(), userVo.getCode(), userVo.getScene(), userVo.getSource());
String source = SourceType.getByCode(userVo.getSource());
R<Boolean> bool = sendSmsSerVice.valid(userVo.getPhone(), userVo.getCode(), userVo.getScene(), source);
if (null != bool && bool.getCode() == ERROR_CODE) {
return R.error(1, bool.getMessage(), false);
}
......
......@@ -4,8 +4,10 @@ import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.CardStatus;
import cn.wisenergy.model.enums.OperationTypeEnum;
import cn.wisenergy.model.enums.PayType;
import cn.wisenergy.model.vo.AddLimitVo;
import cn.wisenergy.model.vo.UserInfoVo;
import cn.wisenergy.service.app.UserLimitService;
import cn.wisenergy.service.app.UserVolunteerService;
import cn.wisenergy.service.app.VolunteerService;
......@@ -66,6 +68,9 @@ public class VolunteerManager {
@Autowired
private UserLimitService userLimitService;
@Autowired
private LoginRecordMapper loginRecordMapper;
/**
* 错误码
*/
......@@ -347,4 +352,66 @@ public class VolunteerManager {
}
return R.ok(0, true);
}
/**
* 保存用户注册信息,初始化查询次数信息,注册、登录操作信息
*
* @param phone 手机
* @param secret 密码
* @param source 来源
* @return 结果
*/
@Transactional
public R<UserInfoVo> saveUserAndLimit(String phone, String secret, Integer source) {
//1、添加用户信息
User userInfo = new User();
userInfo.setPhone(phone);
userInfo.setPassword(secret);
userInfo.setIsDelete(0);
userInfo.setSource(source);
int count = usersMapper.add(userInfo);
if (count == 0) {
return R.error("考生注册失败!");
}
//2、保存用户查询信息
UserLimit addLimit = new UserLimit();
addLimit.setUserId(userInfo.getId());
addLimit.setUseLimit(0);
addLimit.setUsableLimit(0);
addLimit.setTotalLimit(0);
int limit = userLimitMapper.add(addLimit);
if (limit == 0) {
return R.error("注册添加用户查询信息失败!");
}
//3、保存注册记录
LoginRecord loginRecord = new LoginRecord();
loginRecord.setType(OperationTypeEnum.USER_REGISTER.getCode());
loginRecord.setUserId(userInfo.getId());
String name = OperationTypeEnum.getByCode(OperationTypeEnum.USER_REGISTER.getCode());
loginRecord.setOperationName(name);
int record = loginRecordMapper.add(loginRecord);
if (record == 0) {
return R.error("保存注册记录失败!");
}
//3、保存登录记录
LoginRecord login = new LoginRecord();
login.setType(OperationTypeEnum.USER_LOGIN.getCode());
login.setUserId(userInfo.getId());
String nameSecond = OperationTypeEnum.getByCode(OperationTypeEnum.USER_LOGIN.getCode());
login.setOperationName(nameSecond);
int number = loginRecordMapper.add(login);
if (number == 0) {
return R.error("保存登录记录失败!");
}
//7、封装返回参数
UserInfoVo userInfoVo = new UserInfoVo();
userInfoVo.setUserId(userInfo.getId());
userInfoVo.setPhone(userInfo.getPhone());
return R.ok(userInfoVo);
}
}
......@@ -32,7 +32,7 @@ public class SendSmsController {
public R<Boolean> sendSms(@RequestBody SendSmsVo sendSmsVo) throws Exception {
log.info("SendSmsController[]sendSms[]input.param.sendSmsVo:" + sendSmsVo);
if (null == sendSmsVo || StringUtils.isBlank(sendSmsVo.getPhone()) ||
StringUtils.isBlank(sendSmsVo.getSource()) || null == sendSmsVo.getScene()) {
null == sendSmsVo.getSource() || null == sendSmsVo.getScene()) {
return R.error("入参为空!");
}
......
......@@ -35,7 +35,7 @@ public class UserLoginController {
if (null == userVo || StringUtils.isBlank(userVo.getPhone()) ||
StringUtils.isBlank(userVo.getPassword()) || StringUtils.isBlank(userVo.getSmCode()) ||
StringUtils.isBlank(userVo.getSource()) || null == userVo.getScene()) {
null == userVo.getSource() || null == userVo.getScene()) {
return R.error("入参为空!");
}
......@@ -49,7 +49,7 @@ public class UserLoginController {
log.info("volunteer-service[]UserLongController[]loginCode[]input.param.userVo:" + userVo);
if (null == userVo || StringUtils.isBlank(userVo.getPhone()) || StringUtils.isBlank(userVo.getCode()) ||
StringUtils.isBlank(userVo.getSource()) || null == userVo.getScene()) {
null == userVo.getSource() || null == userVo.getScene()) {
return R.error("入参为空!");
}
......@@ -110,8 +110,8 @@ public class UserLoginController {
@PostMapping("/smsResetPassword")
public R<Boolean> smsResetPassword(@RequestBody UserLoginVo userVo) {
log.info("volunteer-service[]UserLongController[]smsResetPassword[]input.param.userVo:" + userVo);
if (null == userVo || StringUtils.isBlank(userVo.getPhone()) ||
StringUtils.isBlank(userVo.getPassword()) || null == userVo.getScene()) {
if (null == userVo || StringUtils.isBlank(userVo.getPhone()) || StringUtils.isBlank(userVo.getPassword()) ||
null == userVo.getSource() || null == userVo.getScene()) {
return R.error("入参不能为空!");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment