| | |
| | | |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | |
| | | import com.ruoyi.framework.web.service.SysLoginService; |
| | | import com.ruoyi.framework.web.service.SysPermissionService; |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | | import com.ruoyi.framework.web.service.WechatLoginService; |
| | | import com.ruoyi.system.service.ISysDeptService; |
| | | import com.ruoyi.system.service.ISysMenuService; |
| | | import com.ruoyi.common.annotation.Anonymous; |
| | | |
| | | /** |
| | | * 登录验证 |
| | |
| | | private SysLoginService loginService; |
| | | |
| | | @Autowired |
| | | private ISysUserService userService; |
| | | @Autowired |
| | | private ISysMenuService menuService; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Autowired |
| | | private ISysDeptService deptService; |
| | | |
| | | @Autowired |
| | | private WechatLoginService wechatLogin; |
| | | |
| | | /** |
| | | * 微信一键登录 - 通过OpenID和UnionID登录 |
| | | * 使用WechatLoginService进行认证 |
| | | * |
| | | * @param requestBody 包含openId和unionId的请求体 |
| | | * @return 结果 |
| | | */ |
| | | @Anonymous |
| | | @PostMapping("/wechat/login/openid") |
| | | public AjaxResult loginByOpenId(@RequestBody java.util.Map<String, Object> requestBody) |
| | | { |
| | | String openId = (String) requestBody.get("openId"); |
| | | String unionId = (String) requestBody.get("unionId"); |
| | | |
| | | if (com.ruoyi.common.utils.StringUtils.isEmpty(openId)) |
| | | { |
| | | return AjaxResult.error("缺少openId参数"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | // 调用WechatLoginService进行认证 |
| | | String token = wechatLogin.loginByOpenId(openId, unionId); |
| | | |
| | | AjaxResult ajax = AjaxResult.success("登录成功"); |
| | | ajax.put(Constants.TOKEN, token); |
| | | return ajax; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return AjaxResult.error(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 微信手机号登录(推荐使用) |
| | | * |
| | | * @param requestBody 包含loginCode(微信登录code)和phoneCode(手机号授权code) |
| | | * @return 结果 |
| | | */ |
| | | @Anonymous |
| | | @PostMapping("/wechat/login/phone") |
| | | public AjaxResult loginByWechatPhone(@RequestBody java.util.Map<String, Object> requestBody) |
| | | { |
| | | String loginCode = (String) requestBody.get("loginCode"); |
| | | String phoneCode = (String) requestBody.get("phoneCode"); |
| | | |
| | | if (com.ruoyi.common.utils.StringUtils.isEmpty(loginCode)) |
| | | { |
| | | return AjaxResult.error("缺少微信登录code"); |
| | | } |
| | | |
| | | if (com.ruoyi.common.utils.StringUtils.isEmpty(phoneCode)) |
| | | { |
| | | return AjaxResult.error("缺少手机号授权code"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | // 调用WechatLoginService进行认证 |
| | | java.util.Map<String, Object> loginResult = wechatLogin.loginByWechatPhone(loginCode, phoneCode); |
| | | |
| | | AjaxResult ajax = AjaxResult.success("登录成功"); |
| | | ajax.put(Constants.TOKEN, loginResult.get("token")); |
| | | ajax.put("openId", loginResult.get("openId")); |
| | | if (loginResult.containsKey("unionId")) |
| | | { |
| | | ajax.put("unionId", loginResult.get("unionId")); |
| | | } |
| | | return ajax; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return AjaxResult.error(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 登录方法 |