package cn.iocoder.yudao.module.srm.controller.admin.tender; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.srm.controller.admin.tender.vo.*; import cn.iocoder.yudao.module.srm.service.tender.SrmTenderProjectService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - SRM 招标项目") @RestController @RequestMapping("/srm/tender-project") @Validated public class SrmTenderProjectController { @Resource private SrmTenderProjectService tenderProjectService; @PostMapping("/create") @Operation(summary = "创建招标项目") @PreAuthorize("@ss.hasPermission('srm:tender-project:create')") public CommonResult createTenderProject(@Valid @RequestBody SrmTenderProjectSaveReqVO createReqVO) { return success(tenderProjectService.createTenderProject(createReqVO)); } @PutMapping("/update") @Operation(summary = "更新招标项目") @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") public CommonResult updateTenderProject(@Valid @RequestBody SrmTenderProjectSaveReqVO updateReqVO) { tenderProjectService.updateTenderProject(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除招标项目") @PreAuthorize("@ss.hasPermission('srm:tender-project:delete')") public CommonResult deleteTenderProject(@RequestParam("id") Long id) { tenderProjectService.deleteTenderProject(id); return success(true); } @GetMapping("/get") @Operation(summary = "获取招标项目详情") @PreAuthorize("@ss.hasPermission('srm:tender-project:query')") public CommonResult getTenderProject(@RequestParam("id") Long id) { return success(BeanUtils.toBean(tenderProjectService.getTenderProject(id), SrmTenderProjectRespVO.class)); } @GetMapping("/page") @Operation(summary = "获取招标项目分页") @PreAuthorize("@ss.hasPermission('srm:tender-project:query')") public CommonResult> getTenderProjectPage(@Valid SrmTenderProjectPageReqVO pageReqVO) { return success(BeanUtils.toBean(tenderProjectService.getTenderProjectPage(pageReqVO), SrmTenderProjectRespVO.class)); } @PutMapping("/publish") @Operation(summary = "发布招标") @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") public CommonResult publishTender(@RequestParam("id") Long id) { tenderProjectService.publishTender(id); return success(true); } @PutMapping("/close") @Operation(summary = "关闭招标") @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") public CommonResult closeTender(@RequestParam("id") Long id) { tenderProjectService.closeTender(id); return success(true); } @PutMapping("/start-bidding") @Operation(summary = "开始投标") @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") public CommonResult startBidding(@RequestParam("id") Long id) { tenderProjectService.startBidding(id); return success(true); } @PutMapping("/start-evaluation") @Operation(summary = "开始评标") @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") public CommonResult startEvaluation(@RequestParam("id") Long id) { tenderProjectService.startEvaluation(id); return success(true); } // ========== 物料子表 ========== @PostMapping("/material/create") @Operation(summary = "创建招标物料") @PreAuthorize("@ss.hasPermission('srm:tender-project:create')") public CommonResult createMaterial(@Valid @RequestBody SrmTenderMaterialSaveReqVO createReqVO) { tenderProjectService.createMaterial(createReqVO); return success(createReqVO.getId()); } @PutMapping("/material/update") @Operation(summary = "更新招标物料") @PreAuthorize("@ss.hasPermission('srm:tender-project:update')") public CommonResult updateMaterial(@Valid @RequestBody SrmTenderMaterialSaveReqVO updateReqVO) { tenderProjectService.updateMaterial(updateReqVO); return success(true); } @DeleteMapping("/material/delete") @Operation(summary = "删除招标物料") @PreAuthorize("@ss.hasPermission('srm:tender-project:delete')") public CommonResult deleteMaterial(@RequestParam("id") Long id) { tenderProjectService.deleteMaterial(id); return success(true); } @GetMapping("/material/list") @Operation(summary = "获取招标物料列表") @PreAuthorize("@ss.hasPermission('srm:tender-project:query')") public CommonResult> getMaterialList(@RequestParam("tenderProjectId") Long tenderProjectId) { return success(BeanUtils.toBean(tenderProjectService.getMaterialList(tenderProjectId), SrmTenderMaterialRespVO.class)); } }