Kaynağa Gözat

登录逻辑和微信支付下单

Althars123 3 yıl önce
ebeveyn
işleme
cbc433ae66

+ 1 - 0
sdjk-admin/src/main/java/com/miaxis/app/controller/user/UserInfoController.java

@@ -57,6 +57,7 @@ public class UserInfoController extends BaseController{
         UserInfo student = SecurityUtils.getLoginUser().getStudent();
         UserInfo dbUserInfo = userInfoService.getById(student.getId());
         UserVipInfoVO userVipInfoVO = new UserVipInfoVO();
+        userVipInfoVO.setId(dbUserInfo.getId());
         userVipInfoVO.setIsVip(dbUserInfo.getIsVip());
         userVipInfoVO.setUnionId(dbUserInfo.getUnionId());
         userVipInfoVO.setHeadImage(dbUserInfo.getHeadImage());

+ 22 - 10
sdjk-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java

@@ -13,6 +13,7 @@ import com.miaxis.common.enums.StudentLoginTypeEnum;
 import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.common.utils.ServletUtils;
+import com.miaxis.common.utils.http.HttpUtils;
 import com.miaxis.framework.web.service.SysLoginService;
 import com.miaxis.framework.web.service.SysPermissionService;
 import com.miaxis.framework.web.service.TokenService;
@@ -33,13 +34,17 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -212,21 +217,28 @@ public class SysLoginController
     @ApiOperation("抖音用户授权码模式登录")
     public Response<TokenDTO> loginByDyAuthorizationCode(String authorizationCode ){
         DyTokenDTO dyTokenDTO = new DyTokenDTO();
-        dyTokenDTO.setGrantType("authorization_code");
-        dyTokenDTO.setClientKey(dyappid);
-        dyTokenDTO.setClientSecret(dyappSecret);
-        dyTokenDTO.setCode(authorizationCode);
-        String dyResultStr = dyService.getDyToken(dyTokenDTO);
+        MultiValueMap<String,Object> paramsMap = new LinkedMultiValueMap<String,Object>();
+        paramsMap.add("grant_type","authorization_code");
+        paramsMap.add("client_secret",dyappSecret);
+        paramsMap.add("code",authorizationCode);
+        paramsMap.add("client_key",dyappid);
+//        dyTokenDTO.setGrantType("authorization_code");
+//        dyTokenDTO.setClientKey(dyappid);
+//        dyTokenDTO.setClientSecret(dyappSecret);
+//        dyTokenDTO.setCode(authorizationCode);
+        String dyResultStr = dyService.getDyToken1(dyappSecret,authorizationCode,"authorization_code",dyappid);
+        //HttpUtils.sendPost()
+       // String dyResultStr = dyService.getDyToken1(dyappSecret,authorizationCode,"authorization_code",dyappid);
         logger.info("抖音授权码登录返回值:"+dyResultStr);
         DyResult dyResult = JSONObject.parseObject(dyResultStr,DyResult.class);
 
         // 生成令牌
-        if (dyResult.getDyToken().getError_code() != 0){
-            throw new CustomException("抖音授权登录无效,错误原因:"+dyResult.getDyToken().getDescription());
+        if (dyResult.getData().getError_code() != 0){
+            throw new CustomException("抖音授权登录无效,错误原因:"+dyResult.getData().getDescription());
         }
         DyUserInfoDTO dyUserInfoDTO= new DyUserInfoDTO();
-        dyUserInfoDTO.setOpenid(dyResult.getDyToken().getOpen_id());
-        dyUserInfoDTO.setAccessToken(dyResult.getDyToken().getAccess_token());
+        dyUserInfoDTO.setOpen_id(dyResult.getData().getOpen_id());
+        dyUserInfoDTO.setAccess_token(dyResult.getData().getAccess_token());
         String userInfoStr = dyService.getUserInfo(dyUserInfoDTO);
         DyUserInfoResult dyUserInfoResult = JSONObject.parseObject(userInfoStr,DyUserInfoResult.class);
 
@@ -234,7 +246,7 @@ public class SysLoginController
         ServletUtils.getRequest().setAttribute("headImage",dyUserInfoResult.getData().getAvatar());
         ServletUtils.getRequest().setAttribute("nickName",dyUserInfoResult.getData().getNickname());
         ServletUtils.getRequest().setAttribute("openid",dyUserInfoResult.getData().getOpen_id());
-        String token = loginService.login(dyResult.getDyToken().getOpen_id(),null, StudentLoginTypeEnum.AUTHORIZATION_CODE_DY_LOGIN.getCode());
+        String token = loginService.login(dyUserInfoResult.getData().getUnion_id(),null, StudentLoginTypeEnum.AUTHORIZATION_CODE_DY_LOGIN.getCode());
         TokenDTO tokenDTO = new TokenDTO();
         tokenDTO.setToken(token);
         tokenDTO.setThirdResult(dyUserInfoResult);

+ 12 - 5
sdjk-admin/src/test/java/com/miaxis/test/NormalTest.java

@@ -4,6 +4,8 @@ import com.miaxis.SdjkApplication;
 import com.miaxis.score.domain.ScoreInfo;
 import com.miaxis.score.dto.ScoreInfoDTO;
 import com.miaxis.score.service.IScoreInfoService;
+import com.miaxis.wx.dto.DyUserInfoDTO;
+import com.miaxis.wx.service.DyService;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,14 +19,19 @@ public class NormalTest {
 
     @Autowired
     private IScoreInfoService iScoreInfoService;
+
+
+    @Autowired
+    private DyService dyService;
+
     @Test
     public void test1() throws Exception {
+        DyUserInfoDTO dyUserInfoDTO= new DyUserInfoDTO();
+        dyUserInfoDTO.setOpen_id("17788008-db1e-407a-b870-7a8e6ad034e0");
+        dyUserInfoDTO.setAccess_token("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImU2ZTg2ZWRiLTE1ZjctNDJkOC1iNjIzLTgxOTliNGYxNGFjNSJ9.7rsiOFTy3Bv2eS3iopEIGaU6RktDqviVZC0lNw4_mDm6h5AEeSbXFy8rlIUjFTEQJUd07CMnISbHIrzIkUaVDg");
+        String userInfoStr = dyService.getUserInfo(dyUserInfoDTO);
+        System.out.println(userInfoStr);
 
-        ScoreInfo scoreInfo = new ScoreInfo();
-        scoreInfo.setUserId(4240l);
-
-//        int result = iScoreInfoService.getAveScore(scoreInfo);
-        iScoreInfoService.getForecastScore(scoreInfo);
 
     }
 

+ 1 - 1
sdjk-common/src/main/java/com/miaxis/common/core/domain/model/DyResult.java

@@ -6,6 +6,6 @@ import lombok.Data;
 @Data
 public class DyResult {
      String message;
-     DyToken dyToken;
+     DyToken data;
 
 }

+ 2 - 1
sdjk-service/src/main/java/com/miaxis/user/vo/UserVipInfoVO.java

@@ -7,7 +7,8 @@ import lombok.Data;
 @Data
 public class UserVipInfoVO {
 
-
+    @ApiModelProperty(value = "id")
+    private Long id;
 
 
     /** 微信openid */

+ 2 - 2
sdjk-service/src/main/java/com/miaxis/wx/dto/DyUserInfoDTO.java

@@ -4,6 +4,6 @@ import lombok.Data;
 
 @Data
 public class DyUserInfoDTO {
-    String accessToken;
-    String openid;
+    String access_token;
+    String open_id;
 }

+ 15 - 3
sdjk-service/src/main/java/com/miaxis/wx/service/DyService.java

@@ -6,12 +6,16 @@ import com.miaxis.common.core.domain.DyUserInfo;
 import com.miaxis.wx.dto.DyTokenDTO;
 import com.miaxis.wx.dto.DyUserInfoDTO;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
+import org.springframework.util.MultiValueMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.Map;
+
 /**
  *
  * 抖音
@@ -24,15 +28,23 @@ public interface DyService {
      *  获取openid
      * @return
      */
-    @PostMapping(value = "/oauth/access_token")
-    String getDyToken(@RequestBody DyTokenDTO dyTokenDTO);
+    @PostMapping(value = "/oauth/access_token/",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+    String getDyToken(@RequestBody MultiValueMap dyTokenDTO);
+
+
+    @PostMapping(value = "/oauth/access_token/",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+    String getDyToken1(@RequestParam("client_secret") String  client_secret,@RequestParam("code") String  code
+                       ,@RequestParam("grant_type") String  grant_type,@RequestParam("client_key") String  client_key);
+
+
 
 
 
     /**
      * 获取用户信息
      */
-    @PostMapping(value = "/oauth/userinfo")
+    @PostMapping(value = "/oauth/userinfo/",consumes = MediaType.APPLICATION_JSON_VALUE)
+//    @PostMapping(value = "/oauth/userinfo/")
     String getUserInfo(
             @RequestBody DyUserInfoDTO dyUserInfoDTO
     );