package com.webmanage.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.webmanage.common.Result; import com.webmanage.entity.ProductPricing; import com.webmanage.service.ProductPricingService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * 产品定价管理控制器 * * @author webmanage * @date 2024-08-07 */ @Slf4j @RestController @RequestMapping("/product-pricing") @Api(tags = "产品定价管理") @Validated public class ProductPricingController { @Autowired private ProductPricingService productPricingService; /** * 新增产品定价 */ @PostMapping("/add") @ApiOperation("新增产品定价") public Result addProductPricing(@Valid @RequestBody ProductPricing productPricing) { try { boolean result = productPricingService.addProductPricing(productPricing); return result ? Result.success("新增产品定价成功", true) : Result.error("新增产品定价失败"); } catch (Exception e) { log.error("新增产品定价失败: ", e); return Result.error("新增产品定价失败: " + e.getMessage()); } } /** * 编辑产品定价 */ @PutMapping("/update") @ApiOperation("编辑产品定价") public Result updateProductPricing(@Valid @RequestBody ProductPricing productPricing) { try { if (productPricing.getId() == null) { return Result.error("产品定价ID不能为空"); } boolean result = productPricingService.updateProductPricing(productPricing); return result ? Result.success("编辑产品定价成功", true) : Result.error("编辑产品定价失败"); } catch (Exception e) { log.error("编辑产品定价失败: ", e); return Result.error("编辑产品定价失败: " + e.getMessage()); } } /** * 删除产品定价(逻辑删除) */ @DeleteMapping("/delete/{id}") @ApiOperation("删除产品定价") public Result deleteProductPricing(@ApiParam("产品定价ID") @PathVariable Long id) { try { if (id == null) { return Result.error("产品定价ID不能为空"); } boolean result = productPricingService.deleteProductPricing(id); return result ? Result.success("删除产品定价成功", true) : Result.error("删除产品定价失败"); } catch (Exception e) { log.error("删除产品定价失败: ", e); return Result.error("删除产品定价失败: " + e.getMessage()); } } /** * 分页查询产品定价列表 */ @GetMapping("/page") @ApiOperation("分页查询产品定价列表") public Result> getProductPricingPage( @ApiParam("页码") @RequestParam(defaultValue = "1") Long pageNum, @ApiParam("每页大小") @RequestParam(defaultValue = "10") Long pageSize, @ApiParam("产品ID") @RequestParam(required = false) Long productId) { try { Page page = new Page<>(pageNum, pageSize); IPage result = productPricingService.getProductPricingPage(page, productId); return Result.success("查询成功", result); } catch (Exception e) { log.error("分页查询产品定价失败: ", e); return Result.error("分页查询产品定价失败: " + e.getMessage()); } } /** * 根据产品ID查询定价列表 */ @GetMapping("/product/{productId}") @ApiOperation("根据产品ID查询定价列表") public Result> getPricingByProductId(@ApiParam("产品ID") @PathVariable String productId) { try { if (!StringUtils.hasText(productId)) { return Result.error("产品ID不能为空"); } List result = productPricingService.getPricingByProductId(productId); return Result.success("查询成功", result); } catch (Exception e) { log.error("根据产品ID查询定价失败: ", e); return Result.error("根据产品ID查询定价失败: " + e.getMessage()); } } /** * 根据条件查询产品定价 */ @GetMapping("/condition") @ApiOperation("根据条件查询产品定价") public Result> getPricingByCondition( @ApiParam("产品ID") @RequestParam(required = false) String productId, @ApiParam("套件名称") @RequestParam(required = false) String suiteName, @ApiParam("销售形式") @RequestParam(required = false) String salesForm, @ApiParam("客户对象") @RequestParam(required = false) String customerType, @ApiParam("价格类型") @RequestParam(required = false) String priceType, @ApiParam("启用状态") @RequestParam(required = false) Boolean isActive) { try { List result = productPricingService.getPricingByCondition(productId, suiteName, salesForm, customerType, priceType, isActive); return Result.success("查询成功", result); } catch (Exception e) { log.error("根据条件查询产品定价失败: ", e); return Result.error("根据条件查询产品定价失败: " + e.getMessage()); } } /** * 获取产品定价详情 */ @GetMapping("/detail/{id}") @ApiOperation("获取产品定价详情") public Result getProductPricingDetail(@ApiParam("产品定价ID") @PathVariable Long id) { try { if (id == null) { return Result.error("产品定价ID不能为空"); } ProductPricing result = productPricingService.getById(id); if (result == null) { return Result.error("产品定价不存在"); } return Result.success("查询成功", result); } catch (Exception e) { log.error("获取产品定价详情失败: ", e); return Result.error("获取产品定价详情失败: " + e.getMessage()); } } }