jiangping
2023-08-25 1a16c058cdf8ce9bfdad4853e518d521b29a87e6
修复bug
已修改3个文件
30 ■■■■ 文件已修改
server/src/main/java/doumeemes/api/system/SystemController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/WxLoginService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/system/SystemController.java
@@ -78,8 +78,8 @@
    @PreventRepeat(limit = 10, lockTime = 10000)
    @ApiOperation("微信小程序登录")
    @GetMapping("/wxProgramLogin")
    public ApiResponse<WxLoginVO> wxProgramLogin (@RequestParam String unionId,@RequestParam String openId, HttpServletRequest request) {
        return ApiResponse.success(wxLoginService.wxProgramLogin(unionId,openId, request));
    public ApiResponse<WxLoginVO> wxProgramLogin (@RequestParam String code, HttpServletRequest request) {
        return ApiResponse.success(wxLoginService.wxProgramLogin(code, request));
    }
    @PreventRepeat(limit = 10, lockTime = 10000)
server/src/main/java/doumeemes/service/system/WxLoginService.java
@@ -22,5 +22,5 @@
    void wxLoginOut(WxLoginOutDTO wxLoginOutDTO);
    WxLoginVO wxProgramLogin(String unionId, String openId,HttpServletRequest request);
    WxLoginVO wxProgramLogin(String code,HttpServletRequest request);
}
server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java
@@ -104,6 +104,25 @@
    }
    @Override
    public WxLoginVO wxProgramLogin(String code, HttpServletRequest request) {
        //TODO---------------任康
        String appId = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPID).getCode();
        String appSecret = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPSECRET).getCode();
        String getTokenUrl = GET_ACCESS_TOKEN_URL.replace("CODE", code).replace("APPID", appId).replace("SECRET", appSecret);
        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
        if(Objects.isNull(tokenJson.get("access_token"))){
            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),tokenJson.getString("errmsg"));
        }
        String accessToken = tokenJson.getString("access_token");
        String openId = tokenJson.getString("openid");
        String getUserInfoUrl = GET_USER_INFO_URL.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openId);
        JSONObject userInfoJson = JSONObject.parseObject(HttpsUtil.get(getUserInfoUrl,true));
        return  loginByUnionIdAndReturn(userInfoJson.getString("unionid"),openId,request);
    }
    private WxLoginVO loginByUnionIdAndReturn(String unionid,String openId,HttpServletRequest request) {
        WxLoginVO wxLoginVO = new WxLoginVO();
        wxLoginVO.setOpenid(openId);
@@ -176,11 +195,6 @@
        }
    }
    @Override
    public WxLoginVO wxProgramLogin(String unionId,String openId, HttpServletRequest request) {
        return  loginByUnionIdAndReturn(unionId,openId,request);
    }