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