package cn.iocoder.yudao.module.aftersales.controller.admin.cancellation; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.aftersales.controller.admin.cancellation.vo.AfterSaleCancellationApproveReqVO; import cn.iocoder.yudao.module.aftersales.controller.admin.cancellation.vo.AfterSaleCancellationSaveReqVO; import cn.iocoder.yudao.module.aftersales.dal.dataobject.cancellation.AfterSaleCancellationDO; import cn.iocoder.yudao.module.aftersales.service.cancellation.AfterSaleCancellationService; 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 static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @Tag(name = "管理后台 - 售后退单/变更受理") @RestController @RequestMapping("/aftersales/cancellation") @Validated public class AfterSaleCancellationController { @Resource private AfterSaleCancellationService service; @GetMapping("/page") @Operation(summary = "获得退单/变更受理分页") @PreAuthorize("@ss.hasPermission('aftersales:cancellation:query')") public CommonResult> page( @Valid PageParam page, @RequestParam(value = "code", required = false) String code, @RequestParam(value = "type", required = false) String type, @RequestParam(value = "status", required = false) Integer status, @RequestParam(value = "customerId", required = false) Long customerId) { return success(service.page(page, code, type, status, customerId)); } @GetMapping("/get") @Operation(summary = "获得退单/变更受理") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('aftersales:cancellation:query')") public CommonResult get(@RequestParam("id") Long id) { return success(service.get(id)); } @PostMapping("/create") @Operation(summary = "创建退单/变更受理") @PreAuthorize("@ss.hasPermission('aftersales:cancellation:create')") public CommonResult create(@Valid @RequestBody AfterSaleCancellationSaveReqVO req) { req.setId(null); return success(service.create(req, getLoginUserId())); } @PutMapping("/update") @Operation(summary = "修改退单/变更受理(仅草稿)") @PreAuthorize("@ss.hasPermission('aftersales:cancellation:update')") public CommonResult update(@Valid @RequestBody AfterSaleCancellationSaveReqVO req) { service.update(req); return success(true); } @PutMapping("/submit") @Operation(summary = "提交审批") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('aftersales:cancellation:submit')") public CommonResult submit(@RequestParam("id") Long id) { service.submit(id); return success(true); } @PutMapping("/approve") @Operation(summary = "审批(通过后执行下游动作)") @PreAuthorize("@ss.hasPermission('aftersales:cancellation:approve')") public CommonResult approve(@Valid @RequestBody AfterSaleCancellationApproveReqVO req) { return success(service.approve(req, getLoginUserId())); } @PutMapping("/cancel") @Operation(summary = "取消受理") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('aftersales:cancellation:cancel')") public CommonResult cancel(@RequestParam("id") Long id) { service.cancel(id); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除退单/变更受理(仅草稿)") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('aftersales:cancellation:delete')") public CommonResult delete(@RequestParam("id") Long id) { service.delete(id); return success(true); } }