jiangping
2023-08-25 da3ab1c3089b89913b420cf8532d86e199693114
修复bug
已修改3个文件
32 ■■■■■ 文件已修改
server/src/main/java/doumeemes/api/system/SystemController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/WxLoginService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/system/SystemController.java
@@ -76,6 +76,13 @@
    }
    @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));
    }
    @PreventRepeat(limit = 10, lockTime = 10000)
    @ApiOperation("微信登录账号密码")
    @PostMapping("/wxAccountLogin")
    public ApiResponse<String> wxAccountLogin (@Validated @RequestBody WxLoginDTO dto, HttpServletRequest request) {
server/src/main/java/doumeemes/service/system/WxLoginService.java
@@ -21,4 +21,6 @@
    String wxLoginByPassword (WxLoginDTO dto, HttpServletRequest request);
    void wxLoginOut(WxLoginOutDTO wxLoginOutDTO);
    WxLoginVO wxProgramLogin(String unionId, String openId,HttpServletRequest request);
}
server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java
@@ -88,7 +88,7 @@
    @Override
    public WxLoginVO wxLogin(String code, HttpServletRequest request) {
        WxLoginVO wxLoginVO = new WxLoginVO();
        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);
@@ -100,9 +100,19 @@
        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);
        wxLoginVO.setUnionid(userInfoJson.getString("unionid"));
        CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().eq("openid",openId).last(" limit 1 "));
        wxLoginVO.setUnionid(unionid);
        CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().lambda()
                .eq(CompanyUser::getUnionid,wxLoginVO.getUnionid())
                .eq(CompanyUser::getDeleted,Constants.ZERO)
                .last(" limit 1 "));
//        CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().eq("openid",openId).last(" limit 1 "));
        if(Objects.isNull(companyUser)){
            wxLoginVO.setLoginStatus(Constants.ONE);
            return wxLoginVO;
@@ -164,6 +174,13 @@
            systemLoginLogService.create(loginLog);
            throw  ee;
        }
        return  wxLoginVO;
    }
    @Override
    public WxLoginVO wxProgramLogin(String unionId,String openId, HttpServletRequest request) {
        return  loginByUnionIdAndReturn(unionId,openId,request);
    }