This commit is contained in:
xiaofajia 2024-11-12 09:48:34 +08:00
commit ed6140bbd9
16 changed files with 175 additions and 62 deletions

View File

@ -129,4 +129,6 @@ public class BaseConstants {
/** 字典:超时自动总检配置 */ /** 字典:超时自动总检配置 */
public static final String AUTO_INSPECTION = "auto_inspection"; public static final String AUTO_INSPECTION = "auto_inspection";
public static final String MAP_NO_DATA = "map_no_data";
} }

View File

@ -41,9 +41,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import static cn.iocoder.yudao.common.BaseConstants.*; import static cn.iocoder.yudao.common.BaseConstants.*;
import static cn.iocoder.yudao.common.DictBaseConstants.DICT_CUS_TYPE; import static cn.iocoder.yudao.common.DictBaseConstants.DICT_CUS_TYPE;
@ -120,7 +118,7 @@ public class CustomerMainServiceImpl extends ServiceImpl<CustomerMainMapper, Cus
AdminUserRespDTO userDTO = adminUserApi.getUserByUsername(saveReqVO.getPhoneNumber()); AdminUserRespDTO userDTO = adminUserApi.getUserByUsername(saveReqVO.getPhoneNumber());
user = BeanUtils.toBean(userDTO, UserDTO.class); user = BeanUtils.toBean(userDTO, UserDTO.class);
//存在两种情况一是该用户已经注册二是该用户未注册 //存在两种情况一是该用户已经注册二是该用户未注册
if (null == user){ if (null == userDTO){
user = new UserDTO(); user = new UserDTO();
//如果不存在创建用户 //如果不存在创建用户
user.setUsername(saveReqVO.getPhoneNumber()); user.setUsername(saveReqVO.getPhoneNumber());
@ -164,10 +162,10 @@ public class CustomerMainServiceImpl extends ServiceImpl<CustomerMainMapper, Cus
} }
//客户表绑定用户id //客户表绑定用户id
main.setUserId(userId); main.setUserId(userId);
//绑定角色 //绑定角色----客户不设置角色
Set<String> roleCodes = new HashSet<>(); // Set<String> roleCodes = new HashSet<>();
roleCodes.add(dict.getRemark()); // roleCodes.add(dict.getRemark());
permissionApi.assignUserRole(userId, roleCodes); // permissionApi.assignUserRole(userId, roleCodes);
} }
/*3、保存客户主表信息*/ /*3、保存客户主表信息*/
//暂时写死会员id TODO //暂时写死会员id TODO

View File

@ -44,4 +44,12 @@ public interface RepairWorkerMapper extends BaseMapper<RepairWorker> {
* @return cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO * @return cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO
**/ **/
RepairWorkerRespVO getByUserId(Long userId); RepairWorkerRespVO getByUserId(Long userId);
/**
* 查询所有维修工信息
* @author PQZ
* @date 17:28 2024/11/4
* @return cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO
**/
List<RepairWorkerRespVO> listAllWorker();
} }

View File

@ -28,14 +28,14 @@ public interface RepairWorkerService extends IService<RepairWorker> {
**/ **/
void saveWorkers(List<UserDTO> userList); void saveWorkers(List<UserDTO> userList);
/** /**
* 根据用户id查询对应维修的角色维修工人则查询班组非维修工人查询角色 * 查询所有维修工
* @author PQZ * @author PQZ
* @date 17:21 2024/11/4 * @date 14:07 2024/11/7
* @param userId 用户id * @return java.util.List<cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO>
* @return java.lang.String
**/ **/
String getWorkerRoleName(Long userId); List<RepairWorkerRespVO> listAllWorker();
/** /**
* 更新维修工人 * 更新维修工人

View File

@ -1,23 +1,29 @@
package cn.iocoder.yudao.module.base.service.impl; package cn.iocoder.yudao.module.base.service.impl;
import cn.iocoder.yudao.common.RepairRoleEnum;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.base.entity.RepairRecords; import cn.iocoder.yudao.module.base.entity.RepairRecords;
import cn.iocoder.yudao.module.base.entity.RepairRecordsItem; import cn.iocoder.yudao.module.base.entity.RepairRecordsItem;
import cn.iocoder.yudao.module.base.entity.RepairWorker;
import cn.iocoder.yudao.module.base.mapper.RepairRecordsMapper; import cn.iocoder.yudao.module.base.mapper.RepairRecordsMapper;
import cn.iocoder.yudao.module.base.service.RepairRecordsItemService; import cn.iocoder.yudao.module.base.service.RepairRecordsItemService;
import cn.iocoder.yudao.module.base.service.RepairRecordsService; import cn.iocoder.yudao.module.base.service.RepairRecordsService;
import cn.iocoder.yudao.module.base.service.RepairWorkerService; import cn.iocoder.yudao.module.base.service.RepairWorkerService;
import cn.iocoder.yudao.module.base.vo.RepairRecordsPageReqVO; import cn.iocoder.yudao.module.base.vo.RepairRecordsPageReqVO;
import cn.iocoder.yudao.module.base.vo.RepairRecordsRespVO; import cn.iocoder.yudao.module.base.vo.RepairRecordsRespVO;
import cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.iocoder.yudao.common.BaseConstants.REPAIR_RECORD_TYPE_RECORD; import static cn.iocoder.yudao.common.BaseConstants.REPAIR_RECORD_TYPE_RECORD;
@ -39,7 +45,9 @@ public class RepairRecordsServiceImpl extends ServiceImpl<RepairRecordsMapper, R
private RepairRecordsItemService itemService; private RepairRecordsItemService itemService;
@Resource @Resource
private RepairWorkerService workerService; private RepairWorkerService workerService;
@Resource
@Lazy
private PermissionApi permissionApi;
/** /**
* 保存维修记录 * 保存维修记录
@ -83,9 +91,21 @@ public class RepairRecordsServiceImpl extends ServiceImpl<RepairRecordsMapper, R
public List<RepairRecordsRespVO> queryList(RepairRecordsPageReqVO pageReqVO) { public List<RepairRecordsRespVO> queryList(RepairRecordsPageReqVO pageReqVO) {
//根据条件查询维修记录 //根据条件查询维修记录
List<RepairRecordsRespVO> list = repairRecordsMapper.queryRepairRecords(pageReqVO); List<RepairRecordsRespVO> list = repairRecordsMapper.queryRepairRecords(pageReqVO);
List<Long> userIds = list.stream().map(RepairRecords::getDealUserId).collect(Collectors.toList());
//所有维修工
List<RepairWorkerRespVO> allWorker = workerService.listAllWorker();
//转换成map
Map<Long,RepairWorkerRespVO> mapWorker = allWorker.stream().collect(Collectors.toMap(RepairWorker::getUserId,worker -> worker));
//用户及角色
Map<Long,List<String>> userRoleMap = permissionApi.roleCodesByUserIds(userIds);
//为每一条维修记录设置查询附件 //为每一条维修记录设置查询附件
list.forEach(item -> { list.forEach(item -> {
item.setRoleName(workerService.getWorkerRoleName(item.getDealUserId())); String workerName = mapWorker.getOrDefault(item.getDealUserId(),new RepairWorkerRespVO()).getWorkerTypeStr();
if (null != workerName) {
item.setRoleName(workerName);
} else {
item.setRoleName(getRoleName(userRoleMap.get(item.getDealUserId())));
}
List<RepairRecordsItem> itemList = itemService.getByMainId(REPAIR_RECORD_TYPE_RECORD, item.getId(), pageReqVO.getIsOpen()); List<RepairRecordsItem> itemList = itemService.getByMainId(REPAIR_RECORD_TYPE_RECORD, item.getId(), pageReqVO.getIsOpen());
item.setItemList(itemList); item.setItemList(itemList);
//相对路径按照分隔 //相对路径按照分隔
@ -94,6 +114,37 @@ public class RepairRecordsServiceImpl extends ServiceImpl<RepairRecordsMapper, R
return list; return list;
} }
/**
* 根据角色匹配名称
* @author PQZ
* @date 14:52 2024/11/7
* @param codes 用户的角色codes集合
* @return java.lang.String
**/
private String getRoleName(List<String> codes) {
//维修业务管理员
if (codes.contains(RepairRoleEnum.ADMIN.getCode())) {
return RepairRoleEnum.ADMIN.getName();
}
// 总检
if (codes.contains(RepairRoleEnum.INSPECTION.getCode())) {
return RepairRoleEnum.INSPECTION.getName();
}
// 服务顾问
if (codes.contains(RepairRoleEnum.ADVISOR.getCode())) {
return RepairRoleEnum.ADVISOR.getName();
}
// 维修仓库管理员
if (codes.contains(RepairRoleEnum.WAREHOUSE.getCode())) {
return RepairRoleEnum.WAREHOUSE.getName();
}
// 维修财务
if (codes.contains(RepairRoleEnum.WXCW.getCode())) {
return RepairRoleEnum.WXCW.getName();
}
return null;
}
/** /**
* 根据当前用户和工单主表id查询当前在维修的项目信息 * 根据当前用户和工单主表id查询当前在维修的项目信息
* *

View File

@ -1,10 +1,8 @@
package cn.iocoder.yudao.module.base.service.impl; package cn.iocoder.yudao.module.base.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.common.RepairRoleEnum; import cn.iocoder.yudao.common.RepairRoleEnum;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import cn.iocoder.yudao.module.app.controller.admin.NotifyMessageSocket; import cn.iocoder.yudao.module.app.controller.admin.NotifyMessageSocket;
@ -22,9 +20,6 @@ import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi; import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.permission.RoleApi; import cn.iocoder.yudao.module.system.api.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets; import cn.iocoder.yudao.module.tickets.entity.DlRepairTickets;
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
@ -39,7 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.yaml.snakeyaml.events.Event;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
@ -116,50 +110,18 @@ public class RepairWorkerServiceImpl extends ServiceImpl<RepairWorkerMapper, Rep
} }
} }
/** /**
* 根据用户id查询对应维修的角色维修工人则查询班组非维修工人查询角色 * 查询所有维修工
* *
* @param userId 用户id * @return java.util.List<cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO>
* @return java.lang.String
* @author PQZ * @author PQZ
* @date 17:21 2024/11/4 * @date 14:07 2024/11/7
**/ **/
@Override @Override
public String getWorkerRoleName(Long userId) { public List<RepairWorkerRespVO> listAllWorker() {
RepairWorkerRespVO worker = workerMapper.getByUserId(userId); return workerMapper.listAllWorker();
//如果为空说明不是维修工查询当前用户的角色
if (null != worker) {
return worker.getWorkerTypeStr();
} else {
List<Long> roleIds = permissionApi.getRoleIdsByUserId(userId);
// 所有的角色信息
List<RoleReqDTO> roleList = roleApi.getRoleList();
// 过滤出登录用户有的角色信息
List<RoleReqDTO> collect = roleList.stream().filter(item -> roleIds.contains(item.getId())).collect(Collectors.toList());
// 取出角色code
List<String> codes = collect.stream().map(RoleReqDTO::getCode).collect(Collectors.toList());
//维修业务管理员
if (codes.contains(RepairRoleEnum.ADMIN.getCode())) {
return RepairRoleEnum.ADMIN.getName();
}
// 总检
if (codes.contains(RepairRoleEnum.INSPECTION.getCode())) {
return RepairRoleEnum.INSPECTION.getName();
}
// 服务顾问
if (codes.contains(RepairRoleEnum.ADVISOR.getCode())) {
return RepairRoleEnum.ADVISOR.getName();
}
// 维修仓库管理员
if (codes.contains(RepairRoleEnum.WAREHOUSE.getCode())) {
return RepairRoleEnum.WAREHOUSE.getName();
}
// 维修财务
if (codes.contains(RepairRoleEnum.WXCW.getCode())) {
return RepairRoleEnum.WXCW.getName();
}
}
return null;
} }
@Override @Override

View File

@ -108,6 +108,7 @@ public class DlRepairBookingController {
Map<String,String> repairTypeMap = repairTypeList.stream().collect(Collectors.toMap(DictDataRespDTO::getValue,DictDataRespDTO::getLabel)); Map<String,String> repairTypeMap = repairTypeList.stream().collect(Collectors.toMap(DictDataRespDTO::getValue,DictDataRespDTO::getLabel));
List<DlRepairBooking> respVOList = dlRepairBookingService.list(new LambdaQueryWrapper<DlRepairBooking>() List<DlRepairBooking> respVOList = dlRepairBookingService.list(new LambdaQueryWrapper<DlRepairBooking>()
.eq(DlRepairBooking::getUserId,userId) .eq(DlRepairBooking::getUserId,userId)
.isNull(DlRepairBooking::getTicketsId)
.orderByDesc(DlRepairBooking::getBookingTime)); .orderByDesc(DlRepairBooking::getBookingTime));
List<DlRepairBookingRespVO> rtnList = new ArrayList<>(); List<DlRepairBookingRespVO> rtnList = new ArrayList<>();
for(DlRepairBooking booking:respVOList){ for(DlRepairBooking booking:respVOList){

View File

@ -1057,7 +1057,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
施工完成又分四种情况阶段完成完成并移交下一班组完成并移交总检完成工单其中部分完成同开始施工施工中的记录上传一致只上传不改变 施工完成又分四种情况阶段完成完成并移交下一班组完成并移交总检完成工单其中部分完成同开始施工施工中的记录上传一致只上传不改变
*/ */
// 消息生成 // 消息生成
String message = createMessage(tickets.getNowRepairName(), tickets.getCarNo(), titem.getItemName(), respVO.getRecordType(), respVO.getFinishType(), respVO.getNextName()); String message = createMessage(tickets.getNowRepairName(), tickets.getCarNo(),null==titem?"":titem.getItemName(), respVO.getRecordType(), respVO.getFinishType(), respVO.getNextName());
// 通知服务顾问 // 通知服务顾问
// 如果员工完成了订单 // 如果员工完成了订单
if (RecordTypeEnum.SGWCZJ.getCode().equals(respVO.getRecordType()) && "03".equals(respVO.getFinishType())) { if (RecordTypeEnum.SGWCZJ.getCode().equals(respVO.getRecordType()) && "03".equals(respVO.getFinishType())) {

View File

@ -48,6 +48,16 @@
main.deleted = 0 main.deleted = 0
AND main.user_id = #{userId} AND main.user_id = #{userId}
</select> </select>
<select id="listAllWorker" resultType="cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO">
SELECT
main.*,
sdd.label AS workerTypeStr
FROM
dl_repair_worker main
LEFT JOIN system_dict_data sdd ON sdd.dict_type = 'repair_work_type' AND main.work_type = sdd.`value`
WHERE
main.deleted = 0
</select>
</mapper> </mapper>

View File

@ -4,6 +4,7 @@ import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespD
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
@ -73,6 +74,15 @@ public interface PermissionApi {
**/ **/
List<Long> getRoleIdsByUserId(Long userId); List<Long> getRoleIdsByUserId(Long userId);
/**
* 通过用户id查询角色
* @author PQZ
* @date 14:29 2024/11/7
* @param userIds 用户id集合
* @return key用户idvalue角色codes
**/
Map<Long,List<String>> roleCodesByUserIds(List<Long> userIds);
/** /**
* 根据权限ID拿拥有该权限的所有人 * 根据权限ID拿拥有该权限的所有人
* @author 小李 * @author 小李

View File

@ -0,0 +1,9 @@
package cn.iocoder.yudao.module.system.api.user.dto;
import lombok.Data;
@Data
public class UserRoleDTO {
private Long userId;
private String roleCode;
}

View File

@ -1,12 +1,14 @@
package cn.iocoder.yudao.module.system.api.permission; package cn.iocoder.yudao.module.system.api.permission;
import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO;
import cn.iocoder.yudao.module.system.service.permission.PermissionService; import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -77,6 +79,21 @@ public class PermissionApiImpl implements PermissionApi {
return roleIds.stream().collect(Collectors.toList()); return roleIds.stream().collect(Collectors.toList());
} }
/**
* 通过用户id查询角色
*
* @param userIds 用户id集合
* @return key用户idvalue角色codes
* @author PQZ
* @date 14:29 2024/11/7
**/
@Override
public Map<Long, List<String>> roleCodesByUserIds(List<Long> userIds) {
List<UserRoleDTO> userRoleDTOList = permissionService.userRoleDTOList(userIds);
Map<Long, List<String>> resultMap = userRoleDTOList.stream().collect(Collectors.groupingBy(UserRoleDTO::getUserId,Collectors.mapping(UserRoleDTO::getRoleCode,Collectors.toList())));
return resultMap;
}
/** /**
* 根据权限ID拿拥有该权限的所有人 * 根据权限ID拿拥有该权限的所有人
* @author 小李 * @author 小李

View File

@ -1,8 +1,8 @@
package cn.iocoder.yudao.module.system.dal.mysql.permission; package cn.iocoder.yudao.module.system.dal.mysql.permission;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO;
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -42,4 +42,13 @@ public interface UserRoleMapper extends BaseMapperX<UserRoleDO> {
List<UserDTO> selectByRoleCode(@Param("tenantId") Long tenantId, @Param("roleCode") String roleCode); List<UserDTO> selectByRoleCode(@Param("tenantId") Long tenantId, @Param("roleCode") String roleCode);
IPage<UserDTO> selectListByRoleId(@Param("page") Page<UserDTO> page,@Param("role") RolePageReqVO role); IPage<UserDTO> selectListByRoleId(@Param("page") Page<UserDTO> page,@Param("role") RolePageReqVO role);
/**
* 通过用户id查询用户关联角色code
* @author PQZ
* @date 14:39 2024/11/7
* @param userIds 用户id集合
* @return java.util.List<cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO>
**/
List<UserRoleDTO> userCodes(@Param("userIds") List<Long> userIds);
} }

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.system.service.permission; package cn.iocoder.yudao.module.system.service.permission;
import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -26,6 +27,15 @@ public interface PermissionService {
*/ */
boolean hasAnyPermissions(Long userId, String... permissions); boolean hasAnyPermissions(Long userId, String... permissions);
/**
* 查询用户及角色
* @author PQZ
* @date 14:42 2024/11/7
* @param userIds 用户id
* @return java.util.List<cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO>
**/
List<UserRoleDTO> userRoleDTOList(List<Long> userIds);
/** /**
* 判断是否有角色任一一个即可 * 判断是否有角色任一一个即可
* *

View File

@ -10,6 +10,7 @@ import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO;
@ -38,7 +39,6 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
import static javafx.scene.input.KeyCode.H;
/** /**
* 权限 Service 实现类 * 权限 Service 实现类
@ -87,6 +87,19 @@ public class PermissionServiceImpl implements PermissionService {
return roleService.hasAnySuperAdmin(convertSet(roles, RoleDO::getId)); return roleService.hasAnySuperAdmin(convertSet(roles, RoleDO::getId));
} }
/**
* 查询用户及角色
*
* @param userIds 用户id
* @return java.util.List<cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO>
* @author PQZ
* @date 14:42 2024/11/7
**/
@Override
public List<UserRoleDTO> userRoleDTOList(List<Long> userIds) {
return userRoleMapper.userCodes(userIds);
}
/** /**
* 判断指定角色是否拥有该 permission 权限 * 判断指定角色是否拥有该 permission 权限
* *

View File

@ -35,4 +35,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
</where> </where>
</select> </select>
<select id="userCodes" resultType="cn.iocoder.yudao.module.system.api.user.dto.UserRoleDTO">
SELECT
su.id AS userId,sr.code AS roleCode
FROM
system_users su
LEFT JOIN system_user_role sur ON su.id = sur.user_id AND sur.deleted = 0
LEFT JOIN system_role sr ON sur.role_id = sr.id AND sr.deleted = 0
WHERE su.deleted = 0
AND su.id IN
<foreach item="item" collection="userIds" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper> </mapper>