package com.ruoyi.system.controller.management; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.service.RemoteUserService; import com.ruoyi.system.domain.dto.*; import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; import com.ruoyi.system.domain.vo.MgtStaffPageVo; import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo; import com.ruoyi.system.domain.vo.MgtStaffSuggestTagVo; import com.ruoyi.system.service.config.StaffSuggestService; import com.ruoyi.system.service.staff.SysStaffService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import static com.ruoyi.common.core.web.domain.AjaxResult.success; /** * @author jqs34 * @version 1.0 * @classname MgtStaffController * @description: TODO * @date 2023 2023/6/11 18:36 */ @Api(value = "管理后台员工相关接口", tags = "管理后台员工相关接口", description = "管理后台员工相关接口") @RestController @RequestMapping("/mgt/staff") public class MgtStaffController { @Resource private RemoteUserService sysUserService; @Resource private StaffSuggestService staffSuggestService; @Resource private SysStaffService sysStaffService; @RequestMapping(value = "/listMgtDeptStaff", method = RequestMethod.POST) @ApiOperation(value = "获取部门员工列表") public R> listMgtDeptStaff(@RequestBody ListMgtDeptStaffDto listMgtDeptStaffDto) { // 获取当前登陆人的可视权限 SysUser sysUserId = SecurityUtils.getSysUser(); SysUser sysUser = sysUserService.getSysUser(sysUserId.getUserId()).getData(); // 如果当前登陆人权限是查看部门数据 Long deptId = null; // 如果当前登陆人是查看个人数据 Long userId = null; if (sysUser!=null){ String dataScope = sysUser.getDataScope(); if (!sysUser.getUserName().equals("admin")){ if (org.springframework.util.StringUtils.hasLength(dataScope)){ switch (dataScope){ case "3": // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 deptId = sysUser.getDeptId(); break; case "5": // 仅个人数据 查询当前登陆人关联店铺下的用户 userId = sysUser.getUserId(); break; } } } } List mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaff(deptId,userId, listMgtDeptStaffDto.getName()); return R.ok(mgtDeptStaffListVoList); } @RequestMapping(value = "/listDeptStaff", method = RequestMethod.POST) @ApiOperation(value = "获取所有部门员工列表") public R> listDeptStaff() { List mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaff(null,null, null); return R.ok(mgtDeptStaffListVoList); } @RequestMapping(value = "/listMgtDeptStaffByPermission", method = RequestMethod.POST) @ApiOperation(value = "通过权限获取部门员工列表") public R> listMgtDeptStaffByPermission() { Long userId = SecurityUtils.getUserId(); List mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaffByPermission(userId); return R.ok(mgtDeptStaffListVoList); } @RequestMapping(value = "/pageMgtStaffSuggest", method = RequestMethod.POST) @ApiOperation(value = "平台获取员工建议列表") public R> pageMgtStaffSuggest(@RequestBody MgtStaffSuggestPageDto mgtStaffSuggestPageDto) { Long userId = SecurityUtils.getUserId(); mgtStaffSuggestPageDto.setUserId(userId); Page page = new Page<>(); page.setSize(mgtStaffSuggestPageDto.getPageSize()); page.setCurrent(mgtStaffSuggestPageDto.getPageNum()); List staffSuggestPageVoList = staffSuggestService.pageMgtStaffSuggest(page,mgtStaffSuggestPageDto); return R.ok(page.setRecords(staffSuggestPageVoList)); } @RequestMapping(value = "/exportPageMgtStaffSuggest", method = RequestMethod.POST) @ApiOperation(value = "导出员工建议列表") public void exportPageMgtStaffSuggest(MgtStaffSuggestPageDto mgtStaffSuggestPageDto, HttpServletResponse response) { Long userId = SecurityUtils.getUserId(); mgtStaffSuggestPageDto.setUserId(userId); Page page = new Page<>(); if(mgtStaffSuggestPageDto.getPageSize() > 5000){ page.setSize(5000); page.setCurrent(1); }else{ page.setSize(mgtStaffSuggestPageDto.getPageSize()); page.setCurrent(mgtStaffSuggestPageDto.getPageNum()); } List staffSuggestPageVoList = staffSuggestService.pageMgtStaffSuggest(page,mgtStaffSuggestPageDto); ExcelUtil util = new ExcelUtil(MgtStaffSuggestPageVo.class); util.exportExcel(response, staffSuggestPageVoList, "员工建议列表"); } @RequestMapping(value = "/mgtReplayStaffSuggest", method = RequestMethod.POST) @Log(title = "建议管理", businessType = BusinessType.UPDATE,operContent = "平台回复会员建议") @ApiOperation(value = "平台回复会员建议") public R mgtReplayStaffSuggest(@RequestBody MgtReplayStaffSuggestDto mgtReplayStaffSuggestDto) { Long userId = SecurityUtils.getUserId(); mgtReplayStaffSuggestDto.setUserId(userId); staffSuggestService.mgtReplayStaffSuggest(mgtReplayStaffSuggestDto); return R.ok(); } @RequestMapping(value = "/listMgtStaffSuggestTag", method = RequestMethod.POST) @ApiOperation(value = "获取员工建议标签") public R> listMgtStaffSuggestTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) { List mgtStaffSuggestTagVoList= staffSuggestService.listMgtStaffSuggestTag(Long.valueOf(mgtBaseGetDto.getId())); return R.ok(mgtStaffSuggestTagVoList); } @RequestMapping(value = "/mgtEditStaffSuggestTag", method = RequestMethod.POST) @Log(title = "建议管理", businessType = BusinessType.UPDATE,operContent = "编辑会员建议标签") @ApiOperation(value = "平台编辑会员建议标签") public R mgtEditStaffSuggestTag(@RequestBody MgtTagStaffSuggestDto mgtTagStaffSuggestDto) { Long userId = SecurityUtils.getUserId(); mgtTagStaffSuggestDto.setUserId(userId); staffSuggestService.mgtEditStaffSuggestTag(mgtTagStaffSuggestDto); return R.ok(); } @RequestMapping(value = "/pageMgtStaff", method = RequestMethod.POST) @ApiOperation(value = "平台获取员工列表") public R> pageMgtStaff(@RequestBody MgtStaffPageDto mgtStaffPageDto) { Long userId = SecurityUtils.getUserId(); mgtStaffPageDto.setUserId(userId); Page page = new Page<>(); page.setSize(mgtStaffPageDto.getPageSize()); page.setCurrent(mgtStaffPageDto.getPageNum()); List staffPageVoList = sysStaffService.pageMgtStaff(page,mgtStaffPageDto); return R.ok(page.setRecords(staffPageVoList)); } @RequestMapping(value = "/mgtEditStaff", method = RequestMethod.POST) @Log(title = "员工管理", businessType = BusinessType.UPDATE,operContent = "编辑员工") @ApiOperation(value = "平台编辑员工") public R mgtEditStaff(@Validated @RequestBody MgtStaffEditDto mgtStaffEditDto) { Long userId = SecurityUtils.getUserId(); mgtStaffEditDto.setUserId(userId); sysStaffService.mgtStaffEdit(mgtStaffEditDto); return R.ok(); } @RequestMapping(value = "/mgtDeleteStaff", method = RequestMethod.POST) @Log(title = "员工管理", businessType = BusinessType.DELETE,operContent = "删除员工") @ApiOperation(value = "平台删除员工") public R mgtStaffEdit(@RequestBody MgtBaseGetDto mgtBaseGetDto) { Long userId = SecurityUtils.getUserId(); mgtBaseGetDto.setUserId(userId); sysStaffService.mgtDeleteStaff(mgtBaseGetDto); return R.ok(); } @ApiOperation(value = "导入员工数据") @PostMapping("/importSysStaff") public AjaxResult importSysStaff(@RequestPart("file") MultipartFile file) throws Exception { ExcelUtil util = new ExcelUtil(MgtSysStaffImportDto.class); List sysStaffImportDtoList = util.importExcel(file.getInputStream()); String message = sysStaffService.importSysStaff(sysStaffImportDtoList); return success(message); } }