@ -3,6 +3,7 @@ package com.cloud.kicc.system.controller;
@@ -3,6 +3,7 @@ package com.cloud.kicc.system.controller;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.map.MapUtil ;
import cn.hutool.core.util.ArrayUtil ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.StrUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
@ -16,21 +17,16 @@ import com.cloud.kicc.common.log.annotation.SysLog;
@@ -16,21 +17,16 @@ import com.cloud.kicc.common.log.annotation.SysLog;
import com.cloud.kicc.common.security.annotation.Inner ;
import com.cloud.kicc.common.security.util.SecurityUtils ;
import com.cloud.kicc.commonbiz.api.feign.RemotePushConcernFanService ;
import com.cloud.kicc.system.api.entity.Menu ;
import com.cloud.kicc.system.api.entity.Role ;
import com.cloud.kicc.system.api.entity.User ;
import com.cloud.kicc.system.api.entity.UserRole ;
import com.cloud.kicc.system.api.entity.* ;
import com.cloud.kicc.system.api.enums.UserTypeEnum ;
import com.cloud.kicc.system.api.vo.ResultVo ;
import com.cloud.kicc.system.service.MenuService ;
import com.cloud.kicc.system.service.RoleService ;
import com.cloud.kicc.system.service.UserRoleService ;
import com.cloud.kicc.system.service.UserService ;
import com.cloud.kicc.system.service.* ;
import com.pig4cloud.plugin.excel.annotation.ResponseExcel ;
import com.pig4cloud.plugin.excel.annotation.Sheet ;
import io.swagger.annotations.ApiOperation ;
import lombok.RequiredArgsConstructor ;
import lombok.SneakyThrows ;
import org.springframework.beans.BeanUtils ;
import org.springframework.security.access.prepost.PreAuthorize ;
import org.springframework.web.bind.annotation.* ;
@ -54,7 +50,10 @@ public class UserController {
@@ -54,7 +50,10 @@ public class UserController {
private final UserRoleService userRoleService ;
private final RoleService roleService ;
private final MenuService menuService ;
private final ISsoUserService iSsoUserService ;
private final RemotePushConcernFanService remotePushConcernFanService ;
private final ConfigService configService ;
private final DeptService deptService ;
@GetMapping ( "/list" )
public R list ( Page page , @RequestParam Map param ) {
@ -123,12 +122,37 @@ public class UserController {
@@ -123,12 +122,37 @@ public class UserController {
return R . ok ( userService . getUserAuthority ( user ) ) ;
}
/** 内部小程序一键登陆 */
@Inner ( false )
@GetMapping ( "/transformationUserByCasUserId/{casUserId:\\w+}" )
public R transformationUserByCasUserId ( @PathVariable String casUserId ) {
KiccUser user = userService . getUserByCasUserId ( casUserId ) ;
if ( user = = null ) return R . error ( "该用户不存在,请先注册!" ) ;
return R . ok ( userService . getUserAuthority ( user ) ) ;
@GetMapping ( "/oneClickAccess/{casUserId:\\w+}" )
public R oneClickAccess ( @PathVariable String casUserId ) {
if ( ObjectUtil . isNotEmpty ( iSsoUserService . getById ( casUserId ) ) & & ObjectUtil . isEmpty ( userService . getOne ( Wrappers . < User > lambdaQuery ( ) . eq ( User : : getCasUserId , casUserId ) ) ) ) {
String initDeptId = configService . getValueByKey ( "app.init.deptId" ) ;
Dept dept = deptService . getById ( initDeptId ) ;
Optional . ofNullable ( dept ) . orElseThrow ( ( ) - > new CheckedException ( "当前部门无效请重新在参数管理中配置!" ) ) ;
String initUserType = configService . getValueByKey ( "app.init.deptId" ) ;
String initTenantId = configService . getValueByKey ( "app.init.tenantId" ) ;
String initRoleIds = configService . getValueByKey ( "app.init.roleIds" ) ;
User user = new User ( ) ;
user . setCasUserId ( casUserId ) ;
user . setDeptId ( dept . getDeptId ( ) ) ;
user . setDeptName ( dept . getName ( ) ) ;
user . setUserType ( initUserType ) ;
user . setTenantId ( initTenantId ) ;
userService . save ( user ) ;
// 处理角色授权
String [ ] roles = initRoleIds . split ( "," ) ;
userRoleService . saveBatch ( Arrays . stream ( roles ) . map ( roleId - > {
UserRole ur = new UserRole ( ) ;
ur . setUserId ( user . getId ( ) ) ;
ur . setRoleId ( roleId ) ;
ur . setTenantId ( initTenantId ) ;
return ur ;
} ) . collect ( Collectors . toList ( ) ) ) ;
}
return R . ok ( userService . getUserByCasUserId ( casUserId ) ) ;
}
@SysLog ( "用户新增" )