feat: 扩展问卷问题管理权限,支持问卷管理员权限
Some checks failed
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
yudao-ui-admin CI / build (14.x) (push) Has been cancelled
yudao-ui-admin CI / build (16.x) (push) Has been cancelled
Java CI with Maven / build (11) (push) Has been cancelled
Some checks failed
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
yudao-ui-admin CI / build (14.x) (push) Has been cancelled
yudao-ui-admin CI / build (16.x) (push) Has been cancelled
Java CI with Maven / build (11) (push) Has been cancelled
- 后端:PrisonQuestionController 接口增加 prison:questionnaire:update 和 prison:questionnaire:query 权限判断 - 前端:QuestionList.vue 按钮增加 prison:questionnaire:update 权限判断 - 允许拥有问卷模板管理权限的用户也能管理问卷问题
This commit is contained in:
parent
711821f530
commit
8b61fecb57
@ -0,0 +1,127 @@
|
||||
package cn.iocoder.yudao.module.prison.controller.admin.question;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import jakarta.validation.constraints.*;
|
||||
import jakarta.validation.*;
|
||||
import jakarta.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.prison.controller.admin.question.vo.*;
|
||||
import cn.iocoder.yudao.module.prison.dal.dataobject.question.QuestionDO;
|
||||
import cn.iocoder.yudao.module.prison.service.question.QuestionService;
|
||||
import cn.iocoder.yudao.module.prison.convert.question.QuestionConvert;
|
||||
|
||||
@Tag(name = "管理后台 - 问卷问题")
|
||||
@RestController
|
||||
@RequestMapping("/prison/question")
|
||||
@Validated
|
||||
public class PrisonQuestionController {
|
||||
|
||||
@Resource
|
||||
private QuestionService questionService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建问卷问题")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:create') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
@ApiAccessLog(operateType = CREATE)
|
||||
public CommonResult<Long> createQuestion(@Valid @RequestBody QuestionSaveReqVO createReqVO) {
|
||||
return success(questionService.createQuestion(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新问卷问题")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:update') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
@ApiAccessLog(operateType = UPDATE)
|
||||
public CommonResult<Boolean> updateQuestion(@Valid @RequestBody QuestionSaveReqVO updateReqVO) {
|
||||
questionService.updateQuestion(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除问卷问题")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:delete') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
@ApiAccessLog(operateType = DELETE)
|
||||
public CommonResult<Boolean> deleteQuestion(@NotNull(message = "编号不能为空") @RequestParam("id") Long id) {
|
||||
questionService.deleteQuestion(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete-list")
|
||||
@Parameter(name = "ids", description = "编号", required = true)
|
||||
@Operation(summary = "批量删除问卷问题")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:delete') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
@ApiAccessLog(operateType = DELETE)
|
||||
public CommonResult<Boolean> deleteQuestionList(@NotEmpty(message = "编号列表不能为空") @RequestParam("ids") List<Long> ids) {
|
||||
questionService.deleteQuestionListByIds(ids);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得问卷问题")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:query') or @ss.hasPermission('prison:questionnaire:query') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
public CommonResult<QuestionRespVO> getQuestion(@RequestParam("id") Long id) {
|
||||
QuestionDO question = questionService.getQuestion(id);
|
||||
return success(QuestionConvert.INSTANCE.convert(question));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得问卷问题分页")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:query') or @ss.hasPermission('prison:questionnaire:query') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
public CommonResult<PageResult<QuestionRespVO>> getQuestionPage(@Valid QuestionPageReqVO pageReqVO) {
|
||||
PageResult<QuestionDO> pageResult = questionService.getQuestionPage(pageReqVO);
|
||||
return success(QuestionConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@PostMapping("/batch-update")
|
||||
@Operation(summary = "批量更新问卷问题")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:update') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
@ApiAccessLog(operateType = UPDATE)
|
||||
public CommonResult<Boolean> batchUpdateQuestion(@Valid @RequestBody QuestionBatchUpdateReqVO reqVO) {
|
||||
// 转换为 Service 需要的格式
|
||||
List<QuestionSaveReqVO> updateList = new ArrayList<>();
|
||||
for (QuestionBatchUpdateReqVO.QuestionUpdateItem item : reqVO.getQuestions()) {
|
||||
QuestionSaveReqVO saveReqVO = new QuestionSaveReqVO();
|
||||
saveReqVO.setId(item.getId());
|
||||
saveReqVO.setPartName(item.getPartName());
|
||||
saveReqVO.setPartSort(item.getPartSort());
|
||||
saveReqVO.setSort(item.getSort());
|
||||
updateList.add(saveReqVO);
|
||||
}
|
||||
questionService.batchUpdateQuestion(updateList);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出问卷问题 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('prison:question:export') or @ss.hasPermission('prison:questionnaire:export') or @ss.hasPermission('prison:questionnaire:update')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportQuestionExcel(@Valid QuestionPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<QuestionDO> list = questionService.getQuestionPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "问卷问题.xls", "数据", QuestionRespVO.class,
|
||||
QuestionConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user