|  |  | 
 |  |  | package com.ruoyi.web.controller.system; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Set; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; | 
 |  |  | import com.ruoyi.common.annotation.Log; | 
 |  |  | import com.ruoyi.common.core.domain.model.LoginBodyByOpenID; | 
 |  |  | import com.ruoyi.common.enums.BusinessType; | 
 |  |  | import io.swagger.annotations.Api; | 
 |  |  | import io.swagger.annotations.ApiImplicitParam; | 
 |  |  | import io.swagger.annotations.ApiOperation; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  | import com.ruoyi.common.constant.Constants; | 
 |  |  | import com.ruoyi.common.core.domain.AjaxResult; | 
 |  |  | import com.ruoyi.common.core.domain.entity.SysMenu; | 
 |  |  | import com.ruoyi.common.core.domain.entity.SysUser; | 
 |  |  | import com.ruoyi.common.core.domain.model.LoginBody; | 
 |  |  | import com.ruoyi.common.core.domain.model.LoginBodyByOpenID; | 
 |  |  | import com.ruoyi.common.core.domain.model.LoginUser; | 
 |  |  | import com.ruoyi.common.core.domain.model.ThirdLoginBody; | 
 |  |  | import com.ruoyi.common.enums.BusinessType; | 
 |  |  | import com.ruoyi.common.utils.SecurityUtils; | 
 |  |  | import com.ruoyi.common.utils.StringUtils; | 
 |  |  | import com.ruoyi.framework.web.service.SysLoginService; | 
 |  |  | import com.ruoyi.framework.web.service.SysPermissionService; | 
 |  |  | import com.ruoyi.project.service.DingTalkService; | 
 |  |  | import com.ruoyi.system.service.ISysMenuService; | 
 |  |  | import io.swagger.annotations.Api; | 
 |  |  | import io.swagger.annotations.ApiImplicitParam; | 
 |  |  | import io.swagger.annotations.ApiOperation; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | 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 java.util.HashMap; | 
 |  |  | import java.util.List; | 
 |  |  | import java.util.Map; | 
 |  |  | import java.util.Set; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 登录验证 | 
 |  |  |  *  | 
 |  |  |  * | 
 |  |  |  * @author ruoyi | 
 |  |  |  */ | 
 |  |  | @Slf4j | 
 |  |  | @Api("用户登录") | 
 |  |  | @RestController | 
 |  |  | public class SysLoginController | 
 |  |  | { | 
 |  |  | public class SysLoginController { | 
 |  |  |     @Autowired | 
 |  |  |     private SysLoginService loginService; | 
 |  |  |  | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysPermissionService permissionService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private DingTalkService dingTalkService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |     @ApiOperation("微信OpenID登录") | 
 |  |  |     @ApiImplicitParam(name = "loginBody", value = "登录信息", dataType = "LoginBodyByOpenID") | 
 |  |  |     @PostMapping("/openidlogin") | 
 |  |  |     public AjaxResult openidLogin(@RequestBody LoginBodyByOpenID loginBody) | 
 |  |  |     { | 
 |  |  |         String openid=loginBody.getOpenid(); | 
 |  |  |     public AjaxResult openidLogin(@RequestBody LoginBodyByOpenID loginBody) { | 
 |  |  |         String openid = loginBody.getOpenid(); | 
 |  |  |         AjaxResult ajax = loginService.wxopenidLogin(openid); | 
 |  |  |         return ajax; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 第三方获取token   :这里的password对应的是sys_user表里的ding_user_id | 
 |  |  |      * | 
 |  |  |      * @param thirdLoginBody | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping("/getToken") | 
 |  |  |     public AjaxResult openidLogin(@RequestBody ThirdLoginBody thirdLoginBody) { | 
 |  |  | //        AjaxResult ajax = AjaxResult.success(); | 
 |  |  |         String token = loginService.getToken(thirdLoginBody.getUserName(), thirdLoginBody.getPassWord()); | 
 |  |  |        Map<String,String> map=new HashMap<>(); | 
 |  |  |        map.put("token",token); | 
 |  |  |         return AjaxResult.success(map); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 登录方法 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @param loginBody 登录信息 | 
 |  |  |      * @return 结果 | 
 |  |  |      */ | 
 |  |  |     @ApiOperation("登录信息") | 
 |  |  |     @Log(title = "登录信息", businessType = BusinessType.OTHER) | 
 |  |  |     @PostMapping("/login") | 
 |  |  |     public AjaxResult login(@RequestBody LoginBody loginBody) | 
 |  |  |     { | 
 |  |  |     public AjaxResult login(@RequestBody LoginBody loginBody) { | 
 |  |  |         log.info("loginBody的入参是:{}", loginBody); | 
 |  |  |         AjaxResult ajax = AjaxResult.success(); | 
 |  |  | //        dingTalkService.deptidList(1L, 1); | 
 |  |  |         Map<String, Object> userIdMap = null; | 
 |  |  |         if (StringUtils.isNotEmpty(loginBody.getAuthCode())) { | 
 |  |  |             Map<String, Object> map = dingTalkService.noLogin(loginBody.getAuthCode()); | 
 |  |  |             userIdMap = (Map<String, Object>) map.get("result"); | 
 |  |  |         } | 
 |  |  |         log.info("userIdMap的值为:{}", userIdMap); | 
 |  |  |         // 生成令牌 | 
 |  |  |         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), | 
 |  |  |                 loginBody.getUuid(), loginBody.getOpenid()); | 
 |  |  |         String token = null; | 
 |  |  |         if (!ObjectUtils.isEmpty(userIdMap)) { | 
 |  |  |             token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOpenid(), userIdMap.get("userid").toString()); | 
 |  |  |         } else { | 
 |  |  |             token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOpenid(), null); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         ajax.put(Constants.TOKEN, token); | 
 |  |  |         return ajax; | 
 |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取用户信息 | 
 |  |  |      *  | 
 |  |  |      * | 
 |  |  |      * @return 用户信息 | 
 |  |  |      */ | 
 |  |  |     @GetMapping("getInfo") | 
 |  |  |     public AjaxResult getInfo() | 
 |  |  |     { | 
 |  |  |     public AjaxResult getInfo() { | 
 |  |  |         SysUser user = SecurityUtils.getLoginUser().getUser(); | 
 |  |  |         // 角色集合 | 
 |  |  |         Set<String> roles = permissionService.getRolePermission(user); | 
 |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取路由信息 | 
 |  |  |      * /addOrUpdateRBpayee/addOrUpdateRBpayee/addOrUpdateRBpayee | 
 |  |  |      * | 
 |  |  |      * @return 路由信息 | 
 |  |  |      */ | 
 |  |  |     @GetMapping("getRouters") | 
 |  |  |     public AjaxResult getRouters() | 
 |  |  |     { | 
 |  |  |     public AjaxResult getRouters() { | 
 |  |  |         Long userId = SecurityUtils.getUserId(); | 
 |  |  |         List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); | 
 |  |  |         return AjaxResult.success(menuService.buildMenus(menus)); |