package com.wjxy.communityapp.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wjxy.communityapp.dto.RetrievePwdDto;
import com.wjxy.communityapp.dto.UserDto;
import com.wjxy.communityapp.dto.UsersaltDto;
import com.wjxy.communityapp.dto.VercodeDto;
import com.wjxy.communityapp.entity.UserEntity;
import com.wjxy.communityapp.mapper.RoleMapper;
import com.wjxy.communityapp.mapper.UserMapper;
import com.wjxy.communityapp.mapper.UsersaltMapper;
import com.wjxy.communityapp.mapper.VercodeMapper;
import com.wjxy.communityapp.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wjxy.communityapp.utils.MD5Util;
import com.wjxy.communityapp.utils.Result;
import com.wjxy.communityapp.utils.sendSms;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
/**
* <p>
* 服务实现类
* </p>
*
* @author Fluency
* @since 2021-01-05
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private RoleMapper roleMapper;
@Autowired
private sendSms sendSms;
@Autowired
private VercodeMapper vercodeMapper;
@Autowired
private UsersaltMapper usersaltMapper;
/**
* 获取用户数据信息
* @param current
* @param limit
* @param keyword
* @return
*/
@Override
public IPage<UserDto> queryUserByParam(Integer current, Integer limit, String keyword) {
Page<UserDto> page = new Page<>(current, limit);
return userMapper.queryUserByParam(page, keyword);
}
@Override
public Result addUser(UserDto userDto) {
if (userDto == null){
return Result.fail("添加的用户为空,请重试");
}else {
if (userMapper.queryUserDtoByAccount(userDto.getAccount()) == null ){
//添加用户角色
userDto.setRoleId(roleMapper.findRoleIDByName(userDto.getRoleName()));
//密码加密
userDto.setPassword(MD5Util.setSalt(userDto.getAccount(),userDto.getPassword()));
userMapper.addUser(userDto);
return Result.ok("添加用户"+userDto.getUserName()+"成功!");
}else {
return Result.fail("添加的用户账号已存在,请更换用户账号");
}
}
}
@Override
public Result updateUser(UserDto userDto) {
if (userDto != null){
userMapper.updateUser(userDto);
return Result.ok("修改用户"+userDto.getUserName()+"成功!");
}else {
return Result.fail("修改用户信息失败!!!");
}
}
@Override
public Result deleteUser(Integer[] ids) {
if (ids.length > 0 ){
userMapper.deleteUser(ids);
return Result.ok();
}else {
return Result.fail("删除的用户不能为空");
}
}
@Override
public UserDto queryUserDtoByAccount(String loginAccount) {
return userMapper.queryUserDtoByAccount(loginAccount);
}
@Override
public String updateUserPwd(String account, String oldPwd, String newPwd) {
//判断旧密码是否和用户登录密码一致
String simpleHash = MD5Util.setSalt(account, oldPwd);
String pwd = userMapper.getPwdByAccount(account);
if (pwd.equals(simpleHash))
{
String pwdSalt = MD5Util.setSalt(account, newPwd);
return String.valueOf(userMapper.updateUserPwd(account, pwdSalt));
}else{
return "旧密码输入错误";
}
}
@Override
public Boolean updateUserInfo(UserDto userDto) {
return userMapper.updateUserInfo(userDto);
}
@Override
public Result sendSms(String account, String userPhone) {
//验证 用户名和手机号是否匹配
if (userMapper.queryUserByAccount(account).getUserPhone().equals(userPhone) ){
//生成验证码
/*GenerateWord generateWord = new GenerateWord();
verCode = generateWord.RandomNum();*/
String verCode = RandomStringUtils.randomNumeric(4);
HashMap<String, Object> map = new HashMap<>();
map.put("code",verCode);
System.out.println(verCode);
//将生产的验证码存放到数据库中
VercodeDto vercodeDto = new VercodeDto();
vercodeDto.setAccount(account);
vercodeDto.setVerCode(verCode);
vercodeMapper.insert(vercodeDto);
/*Boolean message = sendSms.sendMessage(userPhone,map);
if (message){
return Result.ok("发送验证码成功!");
}else {
return Result.fail("发送验证码失败");
}*/
return Result.ok("发送验证码成功!");
}else {
return Result.fail("用户名和手机号不匹配~请核对后重新输入");
}
}
//验证码是否无误
@Override
public Result checkVesCode(RetrievePwdDto retrievePwdDto) {
System.out.println(retrievePwdDto);
QueryWrapper<VercodeDto> wrapper = new QueryWrapper<>();
wrapper.eq("account",retrievePwdDto.getAccount());
try {
VercodeDto dto = vercodeMapper.selectOne(wrapper);
Date createTime = dto.getCreateTime();
Date date = new Date();
long time = date.getTime() - createTime.getTime();
// 验证码未被使用且没有超时(5分钟)
if (time > 300){
String verCode = dto.getVerCode();
if (retrievePwdDto.getVerCode().equals(verCode))
{
vercodeMapper.deleteById(dto.getVerId());
return Result.ok(retrievePwdDto.getAccount());
}else {
return Result.fail("验证码错误,请重新输入");
}
}else {
vercodeMapper.deleteById(dto.getVerId());
return Result.fail("验证码超时,请重新输入");
}
}catch (NullPointerException e){
return Result.fail("验证码错误,请重试");
}
}
//更新密码
@Override
public Result updateUserPwd(String account, String newPwd) {
String pwdSalt = MD5Util.setSalt(account, newPwd);
Boolean pwd = userMapper.updateUserPwd(account, pwdSalt);
if (pwd){
return Result.ok("找回密码成功,请使用新密码登录");
}else {
return Result.fail("找回密码失败,请重试");
}
}
//用户注册
@Override
public Result registerUser(UserDto userDto) {
//验证提交的用户注册验证码
QueryWrapper<UsersaltDto> wrapper = new QueryWrapper<>();
//验证注册码是否匹配
wrapper.eq("salt_text",userDto.getUserSalt());
UsersaltDto salt = usersaltMapper.selectOne(wrapper);
//注册码错误
if (salt == null){
return Result.fail("注册码不正确,请重试");
} else if (salt.getSaltStatus() == 1){
//注册码已被使用
return Result.fail("注册码已被使用,请重试");
}else if (!salt.getSaltRole().equals(userDto.getRoleId())){
//注册码与用户申请角色不匹配
return Result.fail("注册码与申请角色不匹配,请重试");
}
//实现用户注册
//密码加密
userDto.setPassword(MD5Util.setSalt(userDto.getAccount(),user
没有合适的资源?快使用搜索试试~ 我知道了~
基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip
共750个文件
gif:150个
xml:128个
java:97个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 60 浏览量
2023-06-06
21:07:37
上传
评论
收藏 5.63MB ZIP 举报
温馨提示
基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip 已经高分通过的期末大作业项目,也可作为课程设计,代码完整下载可用,下白也可实操。 基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip 已经高分通过的期末大作业项目,也可作为课程设计,代码完整下载可用,下白也可实操。基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip 已经高分通过的期末大作业项目,也可作为课程设计,代码完整下载可用,下白也可实操。基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip 已经高分通过的期末大作业项目,也可作为课程设计,代码完整下载可用,下白也可实操。基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip 已经高分通过的期末大作业项目,也可作为课程设计,代码完整下载可用,下白也可实操。基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot+vue的社区人员流动管理系统源码+数据库(95分以上大作业项目).zip (750个子文件)
UserServiceImpl.class 9KB
ResidentDto.class 9KB
RecordDto.class 9KB
ResidentServiceImpl.class 8KB
RecordServiceImpl.class 7KB
RecordEntity.class 7KB
ResidentEntity.class 7KB
GengerCode.class 7KB
ShiroConfig.class 7KB
LoginController.class 7KB
AddressEntity.class 6KB
UsersaltDto.class 6KB
VisitorEntity.class 6KB
UserDto.class 6KB
MenuDTO.class 6KB
UserEntity.class 5KB
VistorDto.class 5KB
AddressDto.class 5KB
UsersaltEntity.class 5KB
MenuEntity.class 5KB
VercodeEntity.class 5KB
UserRoleEntity.class 5KB
VercodeDto.class 5KB
ResAddEntity.class 5KB
ResidentController.class 5KB
MainController.class 4KB
AuthorityEntity.class 4KB
RoleAuthEntity.class 4KB
UsersaltServiceImpl.class 4KB
Result.class 4KB
VisitorServiceImpl.class 4KB
RoleEntity.class 4KB
RecordController.class 4KB
UserController.class 4KB
jsonObject.class 4KB
indexController.class 4KB
AddressController.class 4KB
UsersaltController.class 3KB
AddressServiceImpl.class 3KB
MyShiroRealm.class 3KB
VisitorController.class 3KB
Swagger2Config.class 3KB
sendmessage.class 3KB
RetrievePwdDto.class 3KB
ResidentMapper.class 3KB
UserLoginController.class 2KB
MenuServiceImpl.class 2KB
RoleAuthDto.class 2KB
RetryLimitCredentialsMatcher.class 2KB
MenuController.class 2KB
RecordMapper.class 2KB
ResidentService.class 2KB
DruidConfig.class 2KB
UserMapper.class 2KB
AddressMapper.class 2KB
CookieUtil.class 2KB
UserService.class 2KB
GengerCode$2.class 2KB
MD5Salt.class 1KB
RecordService.class 1KB
GenerateWord.class 1KB
VisitorMapper.class 1KB
RoleAuthServiceImpl.class 1KB
MybatisPlusConfig.class 1KB
AddressService.class 1KB
RoleServiceImpl.class 1KB
MD5Util.class 1KB
VisitorService.class 1KB
MyMetaObjectHandler.class 1KB
UnathcException.class 997B
UsersaltService.class 892B
CommunityApplication.class 791B
Constants.class 782B
AuthorityServiceImpl.class 761B
UserRoleServiceImpl.class 754B
ResAddServiceImpl.class 740B
JwtToken.class 652B
GengerCode$1.class 556B
VercodeController.class 538B
RoleMapper.class 523B
MenuService.class 516B
MenuMapper.class 505B
RoleAuthService.class 497B
RoleAuthMapper.class 486B
RoleService.class 443B
sendSms.class 374B
AuthorityService.class 344B
UserRoleService.class 341B
ResAddService.class 335B
AuthorityMapper.class 333B
UserRoleMapper.class 330B
UsersaltMapper.class 324B
ResAddMapper.class 324B
VercodeMapper.class 321B
layui.css 73KB
layui.css 73KB
font-awesome.css 37KB
font-awesome.css 37KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
共 750 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
盈梓的博客
- 粉丝: 7089
- 资源: 1700
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
- 基于MATLAB的声纹识别系统设计源码 - VoiceprintRecognition
- 基于Java的微服务插件集合设计源码 - wsy-plugins
- 基于Vue和微信小程序的监理日志系统设计源码 - supervisionLog
- 基于Java和LCN分布式事务框架的设计源码 - tx-lcn
- 基于Java和JavaScript的茶叶评级管理系统设计源码 - tea
- IMG_5680.JPG
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功