package com.epmet.controller; import cn.hutool.core.collection.CollectionUtil; import com.epmet.commons.mybatis.entity.DataScope; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.CustomerRoleFormDTO; import com.epmet.dto.form.RolesUsersListFormDTO; import com.epmet.dto.form.StaffRoleFormDTO; import com.epmet.dto.result.CustomerStaffRoleResultDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.CustomerStaffRoleListResultDTO; import com.epmet.dto.result.GovStaffRoleResultDTO; import com.epmet.dto.result.StaffRolesResultDTO; import com.epmet.entity.GovStaffRoleEntity; import com.epmet.service.GovStaffRoleService; import com.epmet.service.StaffRoleService; import oracle.jdbc.proxy.annotation.Post; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @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)); } }