package cn.iocoder.yudao.module.trade.controller.app.aftersale; 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.trade.controller.app.aftersale.vo.AppAfterSaleCreateReqVO; import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppAfterSaleDeliveryReqVO; import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppAfterSalePageReqVO; import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppAfterSaleRespVO; import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.AfterSaleDO; import cn.iocoder.yudao.module.trade.service.aftersale.AfterSaleService; 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 lombok.extern.slf4j.Slf4j; 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 = "用户 App - 交易售后") @RestController @RequestMapping("/trade/after-sale") @Validated @Slf4j public class AppAfterSaleController { @Resource private AfterSaleService afterSaleService; @GetMapping(value = "/page") @Operation(summary = "获得售后分页") public CommonResult> getAfterSalePage(AppAfterSalePageReqVO pageReqVO) { PageResult pageResult = afterSaleService.getAfterSalePage(getLoginUserId(), pageReqVO); return success(BeanUtils.toBean(pageResult, AppAfterSaleRespVO.class)); } @GetMapping(value = "/get") @Operation(summary = "获得售后订单") @Parameter(name = "id", description = "售后编号", required = true, example = "1") public CommonResult getAfterSale(@RequestParam("id") Long id) { AfterSaleDO afterSale = afterSaleService.getAfterSale(getLoginUserId(), id); return success(BeanUtils.toBean(afterSale, AppAfterSaleRespVO.class)); } @PostMapping(value = "/create") @Operation(summary = "申请售后") public CommonResult createAfterSale(@RequestBody AppAfterSaleCreateReqVO createReqVO) { return success(afterSaleService.createAfterSale(getLoginUserId(), createReqVO)); } @PutMapping(value = "/delivery") @Operation(summary = "退回货物") public CommonResult deliveryAfterSale(@RequestBody AppAfterSaleDeliveryReqVO deliveryReqVO) { afterSaleService.deliveryAfterSale(getLoginUserId(), deliveryReqVO); return success(true); } @DeleteMapping(value = "/cancel") @Operation(summary = "取消售后") @Parameter(name = "id", description = "售后编号", required = true, example = "1") public CommonResult cancelAfterSale(@RequestParam("id") Long id) { afterSaleService.cancelAfterSale(getLoginUserId(), id); return success(true); } }