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.setS
没有合适的资源?快使用搜索试试~ 我知道了~
基于springboot+layui+mysql的疫情社区管理系统
共852个文件
xml:212个
gif:150个
class:101个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 16 下载量 70 浏览量
2021-05-17
09:16:19
上传
评论 15
收藏 5.77MB RAR 举报
温馨提示
全方位对小区进行管理的完整功能系统,系统主要分为居民管理界面,社区居民公共设施管理界面,流动人员管理界面,管理员管理界面,查询管理界面,居民外出管理界面和疫情期间特殊管理界面。系统界面简洁美观,操作方便,提高了使用人员的工作质量和效率。 编程语言: java 框架: springboot 前台: html js layui框架 jquary 开发工具:IDEA2020,JDK1.8, mysql5.7,maven 3.6.0 【源码+数据库】
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot+layui+mysql的疫情社区管理系统 (852个子文件)
ResidentDto.class 9KB
UserServiceImpl.class 9KB
RecordDto.class 9KB
ResidentServiceImpl.class 8KB
RecordServiceImpl.class 7KB
RecordEntity.class 7KB
ResidentEntity.class 7KB
GengerCode.class 7KB
LoginController.class 7KB
ShiroConfig.class 6KB
AddressEntity.class 6KB
UsersaltDto.class 6KB
VisitorEntity.class 6KB
UserDto.class 6KB
MenuDTO.class 6KB
UserEntity.class 5KB
FoodEntity.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
FoodController.class 4KB
VisitorServiceImpl.class 4KB
IndexController.class 4KB
RoleEntity.class 4KB
RecordController.class 4KB
JsonObject.class 4KB
UserController.class 4KB
AddressController.class 3KB
UsersaltController.class 3KB
MyShiroRealm.class 3KB
VisitorController.class 3KB
Swagger2Config.class 3KB
AddressServiceImpl.class 3KB
FoodServiceImpl.class 3KB
sendmessage.class 3KB
RetrievePwdDto.class 3KB
MenuServiceImpl.class 2KB
ResidentMapper.class 2KB
UserLoginController.class 2KB
RoleAuthDto.class 2KB
RetryLimitCredentialsMatcher.class 2KB
MenuController.class 2KB
RecordMapper.class 2KB
DruidConfig.class 2KB
UserMapper.class 2KB
ResidentService.class 2KB
CookieUtil.class 2KB
UserService.class 2KB
GengerCode$2.class 2KB
FoodMapper.class 2KB
AddressMapper.class 2KB
MD5Salt.class 1KB
RecordService.class 1KB
GenerateWord.class 1KB
VisitorMapper.class 1KB
RoleAuthServiceImpl.class 1KB
MybatisPlusConfig.class 1KB
RoleServiceImpl.class 1KB
MD5Util.class 1KB
AddressService.class 1KB
FoodService.class 1KB
VisitorService.class 1KB
MyMetaObjectHandler.class 1KB
UnathcException.class 997B
UsersaltService.class 892B
EhcacheConfig.class 839B
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
Test.class 431B
sendSms.class 374B
AuthorityService.class 344B
UserRoleService.class 341B
ResAddService.class 335B
AuthorityMapper.class 333B
UserRoleMapper.class 330B
ResAddMapper.class 324B
UsersaltMapper.class 324B
共 852 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
Coding路人王
- 粉丝: 1w+
- 资源: 112
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页