wenhongquan 1 год назад
Родитель
Сommit
51fb6be7b6

+ 26 - 0
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java

@@ -34,6 +34,8 @@ import org.dromara.common.core.domain.model.SocialLoginBody;
 import org.dromara.common.core.utils.*;
 import org.dromara.common.encrypt.annotation.ApiEncrypt;
 import org.dromara.common.json.utils.JsonUtils;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.mybatis.helper.DataPermissionHelper;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
 import org.dromara.common.social.config.properties.SocialProperties;
@@ -43,6 +45,7 @@ import org.dromara.common.websocket.utils.WebSocketUtils;
 import org.dromara.system.domain.SysClient;
 import org.dromara.system.domain.bo.SysSocialBo;
 import org.dromara.system.domain.bo.SysTenantBo;
+import org.dromara.system.domain.bo.SysUserBo;
 import org.dromara.system.domain.vo.SysSocialVo;
 import org.dromara.system.domain.vo.SysTenantVo;
 import org.dromara.system.domain.vo.SysUserVo;
@@ -57,6 +60,8 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.net.URL;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ScheduledExecutorService;
@@ -82,6 +87,7 @@ public class AuthController {
     private final ISysSocialService socialUserService;
     private final ISysClientService clientService;
     private final ScheduledExecutorService scheduledExecutorService;
+    private final ISysDeptService deptService;
 
     private final WxMaService wxMaService;
     private final ISysSocialService sysSocialService;
@@ -208,6 +214,7 @@ public class AuthController {
         return R.ok();
     }
 
+
     @PostMapping("/loginByPhoneCodeAndLoginCode")
     public R<LoginVo> registerByPhonecode(@RequestBody String loginbody) throws WxErrorException {
         JSONObject jsonObject = JSONUtil.parseObj(loginbody);
@@ -233,6 +240,25 @@ public class AuthController {
             userVo =  sysUserService.selectUserByUserName(phone.getPhoneNumber());
         }
 
+        try {
+            SysUserBo bo = BeanUtil.toBean(userVo, SysUserBo.class);
+            if (bo.getRoleIds() == null) {
+                bo.setRoleIds(new Long[]{1763484977044361217L});
+                bo.setPassword(null);
+                bo.setUserType(null);
+            } else {
+                List<Long> a = Arrays.stream(bo.getRoleIds()).toList();
+                if(!a.contains(1763484977044361217L)){
+                    a.add(1763484977044361217L);
+                }
+                bo.setPassword(null);
+                bo.setUserType(null);
+                bo.setRoleIds((Long[]) a.toArray());
+
+            }
+            DataPermissionHelper.ignore(() -> sysUserService.updateUser(bo));
+        }catch (Exception e){}
+
         //绑定微信
         SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
         String authId = authUserData.getSource() + authUserData.getUuid();

+ 4 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -453,7 +453,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
     private void insertUserRole(Long userId, Long[] roleIds, boolean clear) {
         if (ArrayUtil.isNotEmpty(roleIds)) {
             // 判断是否具有此角色的操作权限
-            List<SysRoleVo> roles = roleMapper.selectRoleList(new LambdaQueryWrapper<>());
+            List<SysRoleVo> roles = roleMapper.selectVoList();
             if (CollUtil.isEmpty(roles)) {
                 throw new ServiceException("没有权限访问角色的数据");
             }
@@ -476,7 +476,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
                 ur.setRoleId(roleId);
                 return ur;
             });
-            userRoleMapper.insertBatch(list);
+            if(list.size()<2) userRoleMapper.insert(list.get(0));
+            else userRoleMapper.insertBatch(list);
+
         }
     }