| | |
| | | package com.zy.asrs.wcs.sys.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.wcs.common.annotation.OperationLog; |
| | | import com.zy.asrs.wcs.sys.controller.param.PageParam; |
| | | import com.zy.asrs.wcs.common.domain.BaseParam; |
| | | import com.zy.asrs.wcs.common.domain.KeyValVo; |
| | | import com.zy.asrs.wcs.common.domain.PageParam; |
| | | import com.zy.asrs.wcs.sys.entity.Role; |
| | | import com.zy.asrs.wcs.sys.service.RoleService; |
| | | import com.zy.asrs.wcs.utils.ExcelUtil; |
| | | import com.zy.asrs.wcs.utils.Utils; |
| | | import org.apache.poi.ss.usermodel.Workbook; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by vincent on 2/13/2024 |
| | |
| | | private RoleService roleService; |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:list')") |
| | | @OperationLog |
| | | @PostMapping("/role/page") |
| | | public R updateInfo(@RequestBody PageParam param) { |
| | | List<Role> list = roleService.list(); |
| | | return R.ok().add(list); |
| | | public R page(@RequestBody Map<String, Object> map) { |
| | | BaseParam baseParam = buildParam(map, BaseParam.class); |
| | | PageParam<Role, BaseParam> pageParam = new PageParam<>(baseParam, Role.class); |
| | | return R.ok().add(roleService.page(pageParam, pageParam.buildWrapper())); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:list')") |
| | | @PostMapping("/role/list") |
| | | public R list(@RequestBody Map<String, Object> map) { |
| | | return R.ok().add(roleService.list()); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:list')") |
| | | @GetMapping("/role/{id}") |
| | | public R get(@PathVariable("id") Long id) { |
| | | return R.ok().add(roleService.getById(id)); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:save')") |
| | | @OperationLog("添加角色") |
| | | @PostMapping("/role/save") |
| | | public R save(@RequestBody Role role) { |
| | | if (!Cools.isEmpty(role.getName()) |
| | | && roleService.count(new LambdaQueryWrapper<Role>().eq(Role::getName, role.getName())) > 0) { |
| | | return R.error("角色名称已存在"); |
| | | } |
| | | if (!Cools.isEmpty(role.getCode()) |
| | | && roleService.count(new LambdaQueryWrapper<Role>().eq(Role::getCode, role.getCode())) > 0) { |
| | | return R.error("角色标识已存在"); |
| | | } |
| | | if (!roleService.save(role)) { |
| | | return R.error("添加失败"); |
| | | } |
| | | return R.ok("添加成功"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:update')") |
| | | @OperationLog("修改角色") |
| | | @PostMapping("/role/update") |
| | | public R update(@RequestBody Role role) { |
| | | if (!Cools.isEmpty(role.getCode()) && roleService.count(new LambdaQueryWrapper<Role>() |
| | | .eq(Role::getCode, role.getCode()) |
| | | .ne(Role::getId, role.getId())) > 0) { |
| | | return R.error("角色标识已存在"); |
| | | } |
| | | if (!Cools.isEmpty(role.getName()) && roleService.count(new LambdaQueryWrapper<Role>() |
| | | .eq(Role::getName, role.getName()) |
| | | .ne(Role::getId, role.getId())) > 0) { |
| | | return R.error("角色名称已存在"); |
| | | } |
| | | if (!roleService.updateById(role)) { |
| | | return R.error("修改失败"); |
| | | } |
| | | return R.ok("修改成功"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:remove')") |
| | | @OperationLog("删除角色") |
| | | @PostMapping("/role/remove/{ids}") |
| | | public R remove(@PathVariable Long[] ids) { |
| | | if (!roleService.removeByIds(Arrays.asList(ids))) { |
| | | return R.error("删除失败"); |
| | | } |
| | | return R.ok("删除成功"); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:list')") |
| | | @PostMapping("/role/query") |
| | | public R query(@RequestParam(required = false) String condition) { |
| | | List<KeyValVo> vos = new ArrayList<>(); |
| | | LambdaQueryWrapper<Role> wrapper = new LambdaQueryWrapper<>(); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(Role::getName, condition); |
| | | } |
| | | roleService.page(new Page<>(1, 30), wrapper).getRecords().forEach( |
| | | item -> vos.add(new KeyValVo(item.getId(), item.getName())) |
| | | ); |
| | | return R.ok().add(vos); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('sys:role:list')") |
| | | @PostMapping("/role/export") |
| | | public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { |
| | | Workbook workbook = ExcelUtil.create(); |
| | | try { |
| | | // 设置响应头 |
| | | response.reset(); |
| | | Utils.cors(response); |
| | | response.setContentType("application/octet-stream; charset=utf-8"); |
| | | response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("Role.xls", "UTF-8")); |
| | | workbook.write(response.getOutputStream()); |
| | | } finally { |
| | | workbook.close(); |
| | | } |
| | | } |
| | | |
| | | } |