瀏覽代碼

增加登录接口

dsx 2 年之前
父節點
當前提交
c06524ce1f

+ 13 - 1
src/main/java/com/fdkankan/openApi/controller/system/SsoUserController.java

@@ -4,11 +4,15 @@ package com.fdkankan.openApi.controller.system;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
+import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.PasswordUtils;
 import com.fdkankan.openApi.controller.BaseController;
+import com.fdkankan.openApi.entity.system.UserAuthInfo;
 import com.fdkankan.openApi.entity.system.Users;
 import com.fdkankan.openApi.httpclient.client.FdKKClient;
+import com.fdkankan.openApi.service.system.IUserAuthService;
 import com.fdkankan.openApi.service.system.IUsersService;
+import com.fdkankan.openApi.util.TokenUtil;
 import com.fdkankan.openApi.vo.system.LoginParam;
 import com.fdkankan.openApi.vo.www.FdkkLoginVo;
 import com.fdkankan.web.response.Result;
@@ -19,6 +23,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Objects;
+
 /**
  * <p>
  *  前端控制器
@@ -35,6 +41,8 @@ public class SsoUserController extends BaseController {
     private FdKKClient fdKKClient;
     @Autowired
     private IUsersService usersService;
+    @Autowired
+    private IUserAuthService userAuthService;
 
     /**
      * 登录
@@ -43,7 +51,7 @@ public class SsoUserController extends BaseController {
     @SaIgnore
     @PostMapping("/login")
     public ResultData getScenesByUsername(@RequestBody LoginParam param) {
-        String password = PasswordUtils.decycptPasswordWeb(param.getPassword());
+        String password = PasswordUtils.decycptPasswordWeb(Base64Converter.encode(param.getPassword()));
         param.setPassword(password);
         Result<FdkkLoginVo> fdkkLoginVo = fdKKClient.fdkkLogin(param);
         SaLoginModel saLoginModel = new SaLoginModel();
@@ -52,6 +60,10 @@ public class SsoUserController extends BaseController {
                 .setToken(fdkkLoginVo.getData().getToken());
         FdkkLoginVo data = fdkkLoginVo.getData();
         Users users = usersService.findByUserName(data.getUser().getUserName(), data.getUser().getId(), data.getUser().getHead());
+        if(Objects.nonNull(users)){
+            UserAuthInfo userAuthInfo = userAuthService.findByUserIdCreateIfNotExits(users.getId());
+            data.setAppKey(userAuthInfo.getAppKey());
+        }
         StpUtil.login(users.getUserName(), saLoginModel);
         StpUtil.getSession().set("user", users);
         data.getUser().setFdkkId(data.getUser().getId());

+ 2 - 0
src/main/java/com/fdkankan/openApi/service/system/IUserAuthService.java

@@ -15,6 +15,8 @@ public interface IUserAuthService extends IService<UserAuthInfo> {
 
     UserAuthInfo findByUserId(Integer userId);
 
+    UserAuthInfo findByUserIdCreateIfNotExits(Integer userId);
+
     UserAuthInfo findByAppKey(String appKey);
 
     boolean findExistByAppKey(String appKey);

+ 21 - 0
src/main/java/com/fdkankan/openApi/service/system/impl/UserAuthServiceImpl.java

@@ -8,19 +8,26 @@ import com.fdkankan.openApi.constant.RedisKey;
 import com.fdkankan.openApi.entity.system.UserAuthInfo;
 import com.fdkankan.openApi.mapper.system.IUserAuthMapper;
 import com.fdkankan.openApi.service.system.IUserAuthService;
+import com.fdkankan.openApi.util.JwtUtil;
+import com.fdkankan.openApi.util.TokenUtil;
 import com.fdkankan.redis.util.RedisUtil;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Objects;
+
 @DS("system")
 @Service
 public class UserAuthServiceImpl extends ServiceImpl<IUserAuthMapper, UserAuthInfo> implements IUserAuthService {
 
     @Autowired
     RedisUtil redisUtil;
+    @Autowired
+    private IUserAuthService userAuthService;
 
 
     @Override
@@ -31,6 +38,20 @@ public class UserAuthServiceImpl extends ServiceImpl<IUserAuthMapper, UserAuthIn
     }
 
     @Override
+    public UserAuthInfo findByUserIdCreateIfNotExits(Integer userId) {
+        UserAuthInfo userAuthInfo = this.findByUserId(userId);
+        if(Objects.nonNull(userAuthInfo)){
+            return userAuthInfo;
+        }
+        userAuthInfo = new UserAuthInfo();
+        userAuthInfo.setUserId((long)userId);
+        userAuthInfo.setAppKey(TokenUtil.createToken());
+        userAuthInfo.setCallCounts(0);
+        userAuthService.save(userAuthInfo);
+        return userAuthInfo;
+    }
+
+    @Override
     public UserAuthInfo findByAppKey(String appKey) {
         LambdaQueryWrapper<UserAuthInfo> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(UserAuthInfo::getAppKey, appKey);

+ 1 - 0
src/main/java/com/fdkankan/openApi/vo/www/FdkkLoginVo.java

@@ -6,4 +6,5 @@ import lombok.Data;
 public class FdkkLoginVo {
     private String token;
     private FdkkUserVo user;
+    private String appKey;
 }