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
没有合适的资源?快使用搜索试试~ 我知道了~
java毕业设计基于Springboot的社区人员流动管理系统源码+数据库.zip
共751个文件
gif:150个
xml:128个
java:97个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 13 浏览量
2022-11-29
14:45:00
上传
评论
收藏 5.63MB ZIP 举报
温馨提示
java毕业设计基于Springboot的社区人员流动管理系统源码+数据库.zip已获导师指导并通过的高分项目。下载即可使用,无需修改,确保可以直接运行! 本项目是一套基于Springboot的疫情时期社区人员流动管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。也可作为课程设计、期末大作业。包含:项目源码、数据库脚本、软件目实战练习的工具、项目说明等,该项目可以直接作为毕设使用。java毕业设计基于Springboot的社区人员流动管理系统源码+数据库.zip已获导师指导并通过的高分项目。下载即可使用,无需修改,确保可以直接运行! 本项目是一套基于Springboot的疫情时期社区人员流动管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。也可作为课程设计、期末大作业。包含:项目源码、数据库脚本、软件目实战练习的工具、项目说明等,该项目可以直接作为毕设使用。java毕业设计基于Springboot的社区人员流动管理系统源码+数据库.zip已获导师指导并通过的高分项目。下载即可使用,无需修改,确保可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
java毕业设计基于Springboot的社区人员流动管理系统源码+数据库.zip (751个子文件)
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
ResAddMapper.class 324B
UsersaltMapper.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
共 751 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
程序员张小妍
- 粉丝: 1w+
- 资源: 3691
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 35 财务汇报部门历年薪酬统计图表.xlsx
- 39 财务工资发放表.xlsx
- 37 财务工资支出上半年年中总结报告.xlsx
- 38 财务分析工资年度开支表.xlsx
- 41 财务公司部门工资开支分析表.xlsx
- 40 财务分析部门工资支出图表.xlsx
- 42 部门员工工资统计表.xlsx
- 45 年度薪酬费用统计表.xlsx
- 44 人事薪酬管理台账.xlsx
- 48 工资对比分析报表模板.xls
- 47 可视化工资表自动统计1.xlsx
- 46 企业员工工资支出预算表.xlsx
- 43 工资收入对比分析表.xlsx
- 50 薪资分析图表.xlsx
- 49 薪酬数据统计分析报表excel模板.xlsx
- 年度公司薪酬调查分析方案(完整版).docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功