From 0fab8240d03efd88f75bb8864f4cb98f9d108aae Mon Sep 17 00:00:00 2001 From: fengjin <1435304038@qq.com> Date: 星期一, 26 九月 2022 18:19:45 +0800 Subject: [PATCH] 添加短信登录功能 添加常见问题表模块 办事指南访问模块 并给相应的所有接口加token验证 --- flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java | 71 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 0 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java index e7ced70..e9d5229 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java @@ -3,17 +3,37 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dg.core.ResultData; import com.dg.core.db.gen.entity.SysUser; import com.dg.core.db.gen.mapper.SysUserMapper; +import com.dg.core.manager.TokenManager; import com.dg.core.service.ISysUserService; +import com.dg.core.util.SmsUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; +import java.util.Map; + @Service public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService { + + @Resource + SmsUtil smsUtil; + + @Resource + RedisTemplate<String, Object> redisTemplate; + + @Autowired + TokenManager tokenManager; @Override public SysUser getUserById(Long id) { @@ -32,6 +52,57 @@ } @Override + public ResultData smsSend(SysUser user){ + SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, user.getPhonenumber())); + if (sysUser==null){ + SysUser newUser = new SysUser(); + newUser.setLoginName(user.getPhonenumber()); + newUser.setUserName(user.getPhonenumber().substring(0,3)+"xxxx"+user.getPhonenumber().substring(7,11)+"用户"); + newUser.setUserType("3"); + newUser.setPhonenumber(user.getPhonenumber()); + newUser.setSex("2"); + newUser.setCreateTime(LocalDateTime.now()); + newUser.setUpdateTime(LocalDateTime.now()); + baseMapper.insert(newUser); + } + return smsUtil.sendSms(user.getPhonenumber()); + } + + @Override + public ResultData loginByAccount(String phonenumber, String code){ + String code1 = redisTemplate.opsForValue().get(phonenumber) + ""; + if (code.equals(code1)) { + SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber)); + if (sysUser!=null){ + String token = tokenManager.getTokenByUserId(sysUser.getUserId()); +// String token = tokenManager.createToken(user.getUserId(), user.getRoleId()); + System.out.println("token "+token); + if (token == null) { + //生成一个token,保存用户登录状态 + token = tokenManager.createToken(sysUser.getUserId(), sysUser.getUserId()); + } + + sysUser.setLoginDate(LocalDateTime.now()); + //更新登录时间 + this.updateConfig(sysUser); + + Map<String, Object> map = new HashMap<>(); + map.put("token", token); + map.put("userId", sysUser.getUserId()); + map.put("userName", sysUser.getUserName()); + + return ResultData.success(map); + } + else { + return ResultData.error("验证码错误"); + } + + } + return ResultData.error("验证码错误"); + + } + + @Override public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType) { return baseMapper.selectConfigList(page, state,userType); } -- Gitblit v1.7.1