package com.emptyMe.org.service.imp;
import com.emptyMe.basic.utils.*;
import com.emptyMe.org.domain.User;
import com.emptyMe.org.mapper.LoginInfoMapper;
import com.emptyMe.org.mapper.UserMapper;
import com.emptyMe.org.query.LoginInfoQuery;
import com.emptyMe.org.service.IUserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Service
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper mapper;
@Autowired
private LoginInfoMapper loginInfoMapper;
@Autowired
private RedisTemplate redisTemplate;
/**
* 获取验证码
*
* @param phone 手机号
* @return 返回是否成功及其他信息
*/
@Override
public AjaxResult getCode(String phone) {
User user = mapper.findByPhone(phone);
if (user != null) {
return AjaxResult.me(false, "该手机号已被注册过");
} else {
// 查询该手机号是否获取过验证码
String code = (String) redisTemplate.opsForValue().get(phone);
if (code == null) {
// 未发送过
code = CodeUtils.getCode();
redisTemplate.opsForValue().set(phone, code);
// 设置过期时间为10分钟
redisTemplate.expireAt(phone, new Date(System.currentTimeMillis() + 10 * 60 * 1000));
// 发送验证码
SMSUtils.sendSMS(phone, code + ",有效期:10分钟");
} else {
// 发送过
// 查看验证码是否过期
if (redisTemplate.getExpire(phone) < 0) {
// 过期了
// 重新获取验证码
code = CodeUtils.getCode();
redisTemplate.opsForValue().set(phone, code);
// 设置过期时间为10分钟
redisTemplate.expireAt(phone, new Date(System.currentTimeMillis() + 10 * 60 * 1000));
// 发送验证码
SMSUtils.sendSMS(phone, code + ",有效期:10分钟");
} else {
// 验证码没过期
SMSUtils.sendSMS(phone, code + ",有效期:10分钟");
}
}
// 验证码是否过期
return AjaxResult.me();
}
}
@Override
@Transactional
public AjaxResult registerByPhone(LoginInfoQuery query) {
if (StringUtils.isEmpty(query.getPhone())
&& StringUtils.isEmpty(query.getCode())
&& StringUtils.isEmpty(query.getPassword())
&& StringUtils.isEmpty(query.getRepassword())) {
return AjaxResult.me(false, "信息填写不完整");
} else {
if (!query.getPassword().equals(query.getRepassword())) {
// 两次密码不一致
return AjaxResult.me(false, "两次密码不一致");
} else {
if (mapper.findByPhone(query.getPhone()) != null) {
return AjaxResult.me(false, "该手机号已被注册");
} else {
// 密码一致
String code = (String) redisTemplate.opsForValue().get(query.getPhone());
// 查看该手机是否存在验证码
if (code == null || code.equals("")) {
return AjaxResult.me(false, "验证码错误");
} else {
// 存在验证码
// 判断验证码是否过期
if (redisTemplate.getExpire(query.getPhone()) > 0) {
// 验证码未过期
// 判断是否一致
if (!code.equals(query.getCode())) {
// 验证码不一致
return AjaxResult.me(false, "验证码错误");
} else {
// return AjaxResult.me();
query.setType(1);
query.setState(1);
query.setDisable(1);
String salt = StrUtils.getComplexRandomString(32);
query.setSalt(salt);
query.setPassword(MD5Utils.encrypByMd5(query.getPassword() + "empty" + salt + "me"));
loginInfoMapper.save(query);
mapper.save(query);
return AjaxResult.me();
}
} else {
return AjaxResult.me(false, "验证码已过期,请重新获取");
}
}
}
}
}
}
@Override
public AjaxResult logout() {
// redisTemplate.opsForValue().set("token",null);
redisTemplate.delete("token");
return AjaxResult.me();
}
@Override
public AjaxResult findByUsername(String username) {
if (username==null){
return AjaxResult.me(false,"用户未登录");
}
return AjaxResult.me(mapper.findByUsername(username).getId());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot+Vue的宠物商城系统源码+数据库(毕业设计).zip
共775个文件
png:142个
jpg:119个
js:101个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 11 下载量 130 浏览量
2022-12-13
15:42:46
上传
评论 5
收藏 13.81MB ZIP 举报
温馨提示
基于SpringBoot+Vue的宠物商城系统源码+数据库(毕业设计).zip已获导师指导并通过的高分项目。下载即可使用无需修改。项目简介 本项目是一套基于SpringBoot+Vue的宠物商城系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为期末大作业 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 技术实现 后台框架:SpringBoot 前台框架:VUE 数据库:MySQL 开发环境:JDK、Eclipse、Tomcat 本项目是一套基于SpringBoot+Vue的宠物商城系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为期末大作业 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行!基于SpringBoot+Vue的宠物商城系统基于SpringBoot+Vue的宠物商城系统基于SpringBoot+Vue的宠物商城系统基于SpringBoot+Vue的宠物商城系统
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+Vue的宠物商城系统源码+数据库(毕业设计).zip (775个子文件)
Pet.class 10KB
MasterMsg.class 9KB
Employee.class 7KB
Menu.class 7KB
User.class 7KB
Product.class 6KB
LoginInfoDTO.class 6KB
LoginInfoQuery.class 6KB
Department.class 5KB
Shop.class 5KB
ShopController.class 5KB
UserServiceImpl.class 5KB
LoginInfo.class 5KB
PetController.class 5KB
DepartmentController.class 4KB
ProductServiceImpl.class 4KB
DepartmentServiceImpl.class 4KB
Permission.class 4KB
DepartmentServiceImplTest.class 3KB
LoginInfoServiceImpl.class 3KB
AjaxResult.class 3KB
ShopServiceImpl.class 3KB
PetServiceImpl.class 3KB
Detail.class 3KB
LoginInfoController.class 3KB
PetType.class 3KB
SMSUtils.class 3KB
ProductController.class 3KB
DepartmentQuery.class 2KB
PetQuery.class 2KB
ShopQuery.class 2KB
MD5Utils.class 2KB
LoginInterceptor.class 2KB
SwaggerConfig.class 2KB
Role.class 2KB
BaseQuery.class 2KB
ProductQuery.class 2KB
UserController.class 2KB
GlobalCorsConfig.class 2KB
MyWebMvcConfigurer.class 2KB
FastDFSTest.class 1KB
EmployeeController.class 1KB
CodeUtils.class 1KB
DateTest.class 1KB
EmployeeServiceImplTest.class 1KB
StrUtils.class 1KB
IDepartmentService.class 1011B
DepartmentMapper.class 848B
EmployeeServiceImpl.class 848B
PetHomeApplication.class 820B
IPetService.class 803B
IProductService.class 701B
IShopService.class 649B
PetMapper.class 646B
ProductMapper.class 540B
ShopMapper.class 493B
IUserService.class 473B
LoginInfoMapper.class 447B
Constant.class 407B
UserMapper.class 361B
ILoginInfoService.class 360B
EmployeeMapper.class 342B
IEmployeeService.class 252B
amazeui.flat.css 322KB
amazeui.css 321KB
index.css 248KB
amazeui.flat.min.css 242KB
amazeui.min.css 241KB
animate.css 97KB
hmstyle.css 43KB
style.css 17KB
vipstyle.css 17KB
personal.css 15KB
demo.css 13KB
jsstyle.css 9KB
infstyle.css 8KB
orstyle.css 7KB
cartstyle.css 7KB
seastyle.css 7KB
blstyle.css 6KB
sortstyle.css 6KB
dlstyle.css 5KB
admin.css 5KB
stepstyle.css 5KB
optstyle.css 4KB
refstyle.css 4KB
addstyle.css 4KB
footstyle.css 4KB
cpstyle.css 4KB
colstyle.css 3KB
blogstyle.css 3KB
point.css 3KB
appstyle.css 2KB
wallet.css 2KB
cmstyle.css 2KB
bostyle.css 2KB
sustyle.css 1KB
newstyle.css 1KB
bilstyle.css 1KB
lostyle.css 864B
共 775 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
张小妍的博客
- 粉丝: 1w+
- 资源: 2407
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Unity导入Excel文件自动创建class文件和ScriptObject文件,并转化成ScriptObject的插件pro版
- UE4仅k位移产生完美行走动作-UE4项目
- 基于 Python 的校园导航系统
- tensorflow-2.6.3-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.6.2-cp39-cp39-win-amd64.whl
- tensorflow-2.6.2-cp39-cp39-manylinux2010-x86-64.whl
- 基于Python卷积神经网络人脸识别驾驶员疲劳检测与预警系统源码+使用说明+全部资料.zip
- BPNN-预测.rar
- 灾难分类数据集 PNG(12类 4.8K+ 张图像)
- java8和17的windows、linux版本
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页