package com.epmet.controller; import cn.hutool.core.collection.CollectionUtil; import com.epmet.commons.mybatis.entity.DataScope; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.StaffRoleDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.GovStaffRoleEntity; import com.epmet.service.GovStaffRoleService; import com.epmet.service.StaffRoleService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.*; /** * @return 工作人员相关api * @Author wxz * @Description * @Date 2020/4/22 22:44 **/ @RestController @RequestMapping("staffrole") public class StaffRoleController { @Autowired private GovStaffRoleService govStaffRoleService; @Autowired private StaffRoleService staffRoleService; /** * 查询工作人员具有的角色列表 * * @return */ @PostMapping("staffroles") public Result> getRolesOfStaff(@RequestBody StaffRoleFormDTO staffRoleFormDTO) { ValidatorUtils.validateEntity(staffRoleFormDTO, StaffRoleFormDTO.GetRolesOfStaff.class); String staffId = staffRoleFormDTO.getStaffId(); String orgId = staffRoleFormDTO.getOrgId(); List staffRoleEntities = govStaffRoleService.listRolesByStaffId(staffId, orgId); List staffRoleDTOS = new ArrayList<>(); staffRoleEntities.forEach(role -> { GovStaffRoleDTO dto = new GovStaffRoleDTO(); BeanUtils.copyProperties(role, dto); staffRoleDTOS.add(dto); }); return new Result>().ok(staffRoleDTOS); } /** * 查询拥有指定角色的用户列表 * * @param staffRoleFormDTO * @return */ @PostMapping("staffsinrole") //@RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_LIST) public Result> getStaffsInRole(@RequestBody StaffRoleFormDTO staffRoleFormDTO) { ValidatorUtils.validateEntity(staffRoleFormDTO, StaffRoleFormDTO.GetStaffsInRole.class); String roleKey = staffRoleFormDTO.getRoleKey(); String orgId = staffRoleFormDTO.getOrgId(); List staffRoleDTOS = staffRoleService.listStaffsInRole(roleKey, orgId, DataScope.getDefault()); return new Result>().ok(staffRoleDTOS); } /** * 一次性查询多个机构下,指定角色的用户列表 * @param staffRoleFormDTO * @return */ @PostMapping("staffsinroleoforgs") public Result>> getStaffsInRoleOfOrgs(@RequestBody StaffRoleFormDTO staffRoleFormDTO) { HashMap> resultMap = new HashMap<>(); ValidatorUtils.validateEntity(staffRoleFormDTO, StaffRoleFormDTO.GetStaffsInRoleOrOrgs.class); List orgIds = staffRoleFormDTO.getOrgIds(); if (!CollectionUtil.isEmpty(orgIds)) { for (String orgId : orgIds) { List staffRole = staffRoleService.listStaffsInRole(staffRoleFormDTO.getRoleKey(), orgId, DataScope.getDefault()); resultMap.put(orgId, staffRole); } } return new Result>>().ok(resultMap); } /** * @return Result * @Description 查询一个员工在指定客户下的角色 * @Param CommonUserFormDTO * @Author wangc * @Date 2020.04.26 13:06 **/ @PostMapping("getcustomerstaffroles") //@RequirePermission(requirePermission = RequirePermissionEnum.ORG_STAFF_LIST) public Result getCustomerStaffRoles(@RequestBody CommonUserFormDTO commonUserFormDTO) { ValidatorUtils.validateEntity(commonUserFormDTO); return staffRoleService.getStaffRoles(commonUserFormDTO); } /** * @param rolesUsersListFormDTO * @Description 查找具有特定角色的人员Id(可用) * @author wangc * @date 2020.04.29 23:49 **/ @PostMapping("specificrolesstaffs") public Result> specificRolesStaffs(@RequestBody RolesUsersListFormDTO rolesUsersListFormDTO) { return staffRoleService.getSpecificRolesStaffs(rolesUsersListFormDTO); } /** * 为客户初始化政府端工作人员角色 * @param customerId * @return */ @PostMapping("initrolesforcustomer/{customerId}") public Result initGovStaffRolesForCustomer(@PathVariable String customerId) { govStaffRoleService.initGovStaffRolesForCustomer(customerId); return new Result(); } /** * 根据客户ID和角色key查询角色信息 * @param form * @return */ @PostMapping("roleofcustomer") public Result getRoleOfCustomer(@RequestBody CustomerRoleFormDTO form) { ValidatorUtils.validateEntity(form, CustomerRoleFormDTO.GetRoleByCustomerAndKey.class); GovStaffRoleDTO role = govStaffRoleService.getRoleByCustomerIdAndRoleKey(form.getCustomerId(), form.getRoleKey()); return new Result().ok(role); } /** * @Description 根据客户Id和staffId查询一个员工在指定客户下的角色列表 * @Author sun **/ @PostMapping("getcustomerstaffrolelist") public Result> getCustomerStaffRoleList(@RequestBody CustomerStaffRoleListFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); return new Result>().ok(staffRoleService.getCustomerStaffRoleList(formDTO)); } /** * 根据staffId查询人员拥有的所有角色信息 * @author zhaoqifeng * @date 2020/6/2 16:11 * @param staffId * @return com.epmet.commons.tools.utils.Result> */ @PostMapping("staffroles/{staffId}") public Result> getStaffRoles(@PathVariable String staffId) { return new Result>().ok(staffRoleService.getStaffRoles(staffId)); } /** * 更改角色所属组织 * @author zhaoqifeng * @date 2020/8/31 10:29 * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("changeroleorg") public Result changeRoleOrg(@RequestBody StaffRoleDTO formDTO) { staffRoleService.changeRoleOrg(formDTO); return new Result(); } /** * @Description 查询网格员角色 * @Param forms * @author zxc * @date 2021/6/8 4:42 下午 */ @PostMapping("staffgridrole") public Result> staffGridRole(@RequestBody List forms){ return new Result>().ok(staffRoleService.staffGridRole(forms)); } /** * 根据角色,查询里面的人,去重 * * @param formDTO * @return com.epmet.commons.tools.utils.Result> * @author yinzuomei * @date 2021/8/19 11:14 上午 */ @PostMapping("queryRoleStaffIds") Result> queryRoleStaffIds(@RequestBody RoleStaffIdFormDTO formDTO){ ValidatorUtils.validateEntity(formDTO,RoleStaffIdFormDTO.AddUserInternalGroup.class); return new Result>().ok(staffRoleService.queryRoleStaffIds(formDTO)); } /** * desc: 根据角色、用户名、手机号 组织获取网格下的工作人员 精确匹配 * * @param formDTO * @return com.epmet.commons.tools.utils.Result> * @author LiuJanJun * @date 2022/1/17 2:26 下午 */ @PostMapping("getGridStaffList") Result> getGridStaffList(@RequestHeader(value = "customerId",required = false) String customerId, @RequestBody GridStaffFormDTO formDTO){ //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); if (StringUtils.isBlank(formDTO.getCustomerId())){ formDTO.setCustomerId(customerId); } ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); return new Result>().ok(staffRoleService.getGridStaffList(formDTO)); } /** * Desc: 查询是否是超级管理员 * @param userId * @author zxc * @date 2022/7/13 11:03 */ @PostMapping("getIsRootManager") public Result getIsRootManager(@RequestParam("userId") String userId){ return new Result().ok(staffRoleService.getIsRootManager(userId)); } }