package com.szwl.controller; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.gexin.fastjson.JSON; import com.szwl.annotation.Audit; import com.szwl.constant.AuditEnum; import com.szwl.constant.MenuEnum; import com.szwl.constant.ResponseCodesEnum; import com.szwl.exception.BizException; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.dto.OptionDTO; import com.szwl.model.entity.SysRole; import com.szwl.model.param.AddSysRoleParam; import com.szwl.model.param.UpdateSysRoleParam; import com.szwl.service.SysRoleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @RestController @RequestMapping("/sysRoleMenu") @Api(value = "/sysRoleMenu", tags = {"角色权限菜单"}) public class SysRoleMenuController { @Autowired SysRoleService sysRoleService; @GetMapping("/listMenuOption") @ApiOperation("获取所有菜单下拉框") public ResponseModel> listMenuOption() { List list = MenuEnum.enumToOptionList(); return R.ok(list); } @GetMapping("/listRoleOption") @ApiOperation("获取所有角色下拉框") public ResponseModel> listRoleOption(String adminId) { if(org.apache.commons.lang.StringUtils.isEmpty(adminId)){ return R.fail(ResponseCodesEnum.A0100); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(SysRole::getAdminId,adminId); List list = sysRoleService.list(query) .stream() .map(e -> new OptionDTO() .setLabel(e.getRoleName()) .setValue(e.getRoleId()) ).collect(Collectors.toList()); return R.ok(list); } @GetMapping("/pageRoleOption") @ApiOperation("获取所有角色") public ResponseModel> pageRoleOption(String adminId) { if(org.apache.commons.lang.StringUtils.isEmpty(adminId)){ return R.fail(ResponseCodesEnum.A0100); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(SysRole::getAdminId,adminId); if(!adminId.equals("1")){ query.ne(SysRole::getRoleName,"商家"); } List list = sysRoleService.list(query); return R.ok(list); } @GetMapping("/deleteRoleOption") @ApiOperation("删除角色") public ResponseModel deleteRoleOption(String roleId,String adminId) { if(org.apache.commons.lang.StringUtils.isEmpty(roleId)){ return R.fail(ResponseCodesEnum.A0100); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(SysRole::getRoleId,roleId); query.eq(SysRole::getAdminId,adminId); List list = sysRoleService.list(query); if(list.size()>0){ SysRole sysRole = list.get(0); sysRoleService.removeById(sysRole.getRoleId()); return R.ok(); } return R.fail(ResponseCodesEnum.A0100); } @PostMapping("/addSysRole") @ApiOperation("新增角色及权限菜单") @Audit(type = AuditEnum.INSERT,content = "#loginUser.name + '新增角色及权限菜单'") public ResponseModel addSysRole(@RequestBody @Valid AddSysRoleParam param) { if(param.getRoleName().equals("商家")&¶m.getAdminId().equals("1")){ return R.fail(ResponseCodesEnum.A0001,"不能起商家这个名称"); } sysRoleService.addSysRole(param); return R.ok(); } @PostMapping("/updateSysRole") @ApiOperation("修改角色及权限菜单") @Audit(type = AuditEnum.UPDATE,content = "#loginUser.name + '修改角色及权限菜单'") public ResponseModel updateSysRole(@RequestBody @Valid UpdateSysRoleParam param) { sysRoleService.updateSysRole(param); return R.ok(); } }