zhou zhou
1 天以前 1dcfa3702505f0c431757312b5304531029f90f6
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/RoleController.java
@@ -9,6 +9,8 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.service.ListExportHandler;
import com.vincent.rsf.server.common.service.ListExportService;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.system.controller.param.RoleScopeParam;
import com.vincent.rsf.server.system.entity.Role;
@@ -19,8 +21,9 @@
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import com.vincent.rsf.server.manager.utils.buildPageRowsUtils;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import java.util.*;
/**
@@ -33,31 +36,63 @@
    private RoleService roleService;
    @Autowired
    private RoleMenuService roleMenuService;
    @Autowired
    private ListExportService listExportService;
    private final ListExportHandler<Role, BaseParam> roleExportHandler = new ListExportHandler<>() {
        @Override
        public List<Role> listByIds(List<Long> ids) {
            return roleService.listByIds(ids);
        }
        @Override
        public List<Role> listByFilter(Map<String, Object> sanitizedMap, BaseParam baseParam) {
            PageParam<Role, BaseParam> pageParam = new PageParam<>(baseParam, Role.class);
            return roleService.list(pageParam.buildWrapper(true));
        }
        @Override
        public Map<String, Object> toExportRow(Role record, List<ExcelUtil.ExportColumn> columns) {
            Map<String, Object> row = new LinkedHashMap<>();
            row.put("name", record.getName());
            row.put("code", record.getCode());
            row.put("statusText", Objects.equals(record.getStatus(), 1) ? "正常" : "禁用");
            row.put("memo", record.getMemo());
            row.put("createTimeText", record.getCreateTime$());
            row.put("updateTimeText", record.getUpdateTime$());
            return row;
        }
        @Override
        public String defaultReportTitle() {
            return "角色管理报表";
        }
    };
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/page")
    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(true)));
        return R.ok().add(buildPageRowsUtils.rowsMap(roleService.page(pageParam, pageParam.buildWrapper(true))));
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(roleService.list());
        return R.ok().add(buildPageRowsUtils.rowsMap(roleService.list()));
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping({"/role/many/{ids}", "/roles/many/{ids}"})
    public R many(@PathVariable Long[] ids) {
        return R.ok().add(roleService.listByIds(Arrays.asList(ids)));
        return R.ok().add(buildPageRowsUtils.rowsMap(roleService.listByIds(Arrays.asList(ids))));
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @GetMapping("/role/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(roleService.getById(id));
        return R.ok().add(buildPageRowsUtils.rowsMap(roleService.getById(id)));
    }
    @PreAuthorize("hasAuthority('system:role:save')")
@@ -77,7 +112,7 @@
        if (!roleService.save(role)) {
            return R.error("Save Fail");
        }
        return R.ok("Save Success").add(role);
        return R.ok("Save Success").add(buildPageRowsUtils.rowsMap(role));
    }
    @PreAuthorize("hasAuthority('system:role:update')")
@@ -98,7 +133,7 @@
        if (!roleService.updateById(role)) {
            return R.error("Update Fail");
        }
        return R.ok("Update Success").add(role);
        return R.ok("Update Success").add(buildPageRowsUtils.rowsMap(role));
    }
    @PreAuthorize("hasAuthority('system:role:remove')")
@@ -114,7 +149,7 @@
                throw new CoolException("Internal Server Error!");
            }
        }
        return R.ok("Delete Success").add(ids);
        return R.ok("Delete Success").add(buildPageRowsUtils.rowsMap(ids));
    }
    @PreAuthorize("hasAuthority('system:role:list')")
@@ -128,19 +163,19 @@
        roleService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
                item -> vos.add(new KeyValVo(item.getId(), item.getName()))
        );
        return R.ok().add(vos);
        return R.ok().add(buildPageRowsUtils.rowsMap(vos));
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @PostMapping("/role/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        ExcelUtil.build(ExcelUtil.create(roleService.list(), Role.class), response);
        listExportService.export(map, exportMap -> buildParam(exportMap, BaseParam.class), roleExportHandler, response);
    }
    @PreAuthorize("hasAuthority('system:role:list')")
    @GetMapping("/role/scope/list")
    public R scopeList(@RequestParam Long roleId) {
        return R.ok().add(roleMenuService.listStrictlyMenuByRoleId(roleId));
        return R.ok().add(buildPageRowsUtils.rowsMap(roleMenuService.listStrictlyMenuByRoleId(roleId)));
    }
    @PreAuthorize("hasAuthority('system:role:update')")
@@ -167,7 +202,8 @@
        for (Long id : ids) {
            nameList.add(roleService.getById(id).getName());
        }
        return R.ok().add(nameList);
        return R.ok().add(buildPageRowsUtils.rowsMap(nameList));
    }
}