Quellcode durchsuchen

增加 根据用户名和密码获取官网个人中心token

dsx vor 1 Jahr
Ursprung
Commit
a484d91ea5

+ 22 - 1
src/main/java/com/fdkankan/openApi/controller/www/UserController.java

@@ -1,6 +1,16 @@
 package com.fdkankan.openApi.controller.www;
 
 
+import cn.dev33.satoken.annotation.SaIgnore;
+import com.fdkankan.openApi.aop.RedisLimit;
+import com.fdkankan.openApi.aop.ValidateApi;
+import com.fdkankan.openApi.service.www.IUserService;
+import com.fdkankan.openApi.vo.www.FdkkLoginParamVo;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -14,8 +24,19 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2023-03-27
  */
 @RestController
-@RequestMapping("/openApi/user")
+@RequestMapping("/user")
 public class UserController {
 
+    @Autowired
+    private IUserService userService;
+
+    @SaIgnore
+    @PostMapping("/v1/login")
+    @ValidateApi
+    @RedisLimit(name = "user/v1/login", limitCount = 1, period = 5)
+    public ResultData login(@RequestBody @Validated FdkkLoginParamVo param){
+        return userService.login(param);
+    }
+
 }
 

+ 6 - 0
src/main/java/com/fdkankan/openApi/service/www/IUserService.java

@@ -2,6 +2,10 @@ package com.fdkankan.openApi.service.www;
 
 import com.fdkankan.openApi.entity.www.User;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.openApi.vo.www.FdkkLoginParamVo;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -15,4 +19,6 @@ public interface IUserService extends IService<User> {
 
     User getByUserName(String userName);
 
+    ResultData login(FdkkLoginParamVo param);
+
 }

+ 21 - 0
src/main/java/com/fdkankan/openApi/service/www/impl/UserServiceImpl.java

@@ -2,10 +2,19 @@ package com.fdkankan.openApi.service.www.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.util.Base64Converter;
+import com.fdkankan.common.util.PasswordUtils;
 import com.fdkankan.openApi.entity.www.User;
+import com.fdkankan.openApi.httpclient.client.FdKKClient;
 import com.fdkankan.openApi.mapper.www.IUserMapper;
 import com.fdkankan.openApi.service.www.IUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.openApi.vo.system.LoginParam;
+import com.fdkankan.openApi.vo.www.FdkkLoginParamVo;
+import com.fdkankan.openApi.vo.www.FdkkLoginVo;
+import com.fdkankan.web.response.Result;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -20,8 +29,20 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements IUserService {
 
+    @Autowired
+    private FdKKClient fdKKClient;
+
     @Override
     public User getByUserName(String userName) {
         return this.getOne(new LambdaQueryWrapper<User>().eq(User::getUserName, userName));
     }
+
+    @Override
+    public ResultData login(FdkkLoginParamVo param) {
+
+        String password = PasswordUtils.decycptPasswordWeb(Base64Converter.encode(param.getPassword()));
+        Result<FdkkLoginVo> fdkkLoginVo = fdKKClient.fdkkLogin(LoginParam.builder().phoneNum(param.getUserName()).password(password).build());
+
+        return ResultData.ok(fdkkLoginVo.getData().getToken());
+    }
 }

+ 6 - 0
src/main/java/com/fdkankan/openApi/vo/system/LoginParam.java

@@ -1,10 +1,16 @@
 package com.fdkankan.openApi.vo.system;
 
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotBlank;
 
 @Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class LoginParam {
     private String areaNum ="86";
     @NotBlank(message = "用户名不能为空")

+ 16 - 0
src/main/java/com/fdkankan/openApi/vo/www/FdkkLoginParamVo.java

@@ -0,0 +1,16 @@
+package com.fdkankan.openApi.vo.www;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class FdkkLoginParamVo {
+
+    @NotBlank(message = "账号不能为空")
+    private String userName;
+
+    @NotBlank(message = "密码不能为空")
+    private String password;
+
+}