Files
shanxia2.0/docs/crm-migration/reference/java/quote/controller/CrmQuoteProductController.java
T
2026-06-01 08:21:21 +08:00

78 lines
2.5 KiB
Java

package org.dromara.crm.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.web.core.BaseController;
import org.dromara.crm.domain.bo.CrmQuoteProductBo;
import org.dromara.crm.domain.vo.CrmQuoteProductVo;
import org.dromara.crm.service.ICrmQuoteProductService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 报价单产品Controller
*
* @author 系统管理员
* @date 2025-01-03
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/crm/quote/product")
public class CrmQuoteProductController extends BaseController {
private final ICrmQuoteProductService quoteProductService;
/**
* 查询报价单产品列表
*/
// @SaCheckPermission("crm:quote:query")
@GetMapping("/list")
public R<List<CrmQuoteProductVo>> list(@RequestParam Long quoteId) {
return R.ok(quoteProductService.queryListByQuoteId(quoteId));
}
/**
* 新增报价单产品
*/
// @SaCheckPermission("crm:quote:edit")
@Log(title = "报价单产品", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CrmQuoteProductBo bo) {
return toAjax(quoteProductService.insertByBo(bo));
}
/**
* 修改报价单产品
*/
// @SaCheckPermission("crm:quote:edit")
@Log(title = "报价单产品", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CrmQuoteProductBo bo) {
return toAjax(quoteProductService.updateByBo(bo));
}
/**
* 删除报价单产品
*/
// @SaCheckPermission("crm:quote:edit")
@Log(title = "报价单产品", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
return toAjax(quoteProductService.deleteWithValidByIds(List.of(ids), true));
}
}