package com.ycwl.basic.controller.pc; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity; import com.ycwl.basic.model.pc.price.req.PriceConfigListReq; import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO; import com.ycwl.basic.model.pc.price.resp.PriceConfigRespVO; import com.ycwl.basic.repository.PriceRepository; import com.ycwl.basic.service.pc.PriceConfigService; import com.ycwl.basic.utils.ApiResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/priceConfig/v1") public class PriceConfigController { @Autowired private PriceConfigService priceConfigService; @Autowired private PriceRepository priceRepository; @GetMapping("/goodsList") public ApiResponse> goodsList(@RequestParam Long scenicId) { return ApiResponse.success(priceConfigService.listGoodsByScenic(scenicId)); } @PostMapping("/add") public ApiResponse addPriceConfig(@RequestBody PriceConfigEntity priceConfig) { priceConfig.setId(null); priceConfigService.save(priceConfig); return ApiResponse.success(priceConfig); } @PostMapping("/update") public ApiResponse updatePriceConfig(@RequestBody PriceConfigEntity priceConfig) { priceRepository.clearPriceCache(priceConfig.getId()); priceConfigService.updateById(priceConfig); priceRepository.clearPriceCache(priceConfig.getId()); return ApiResponse.success(priceConfig); } @DeleteMapping("/delete/{id}") public ApiResponse deletePriceConfig(@PathVariable Integer id) { priceRepository.clearPriceCache(id); priceConfigService.removeById(id); return ApiResponse.success(true); } @GetMapping("/{id}") public ApiResponse getPriceConfigById(@PathVariable Integer id) { PriceConfigRespVO config = priceConfigService.findById(id); priceConfigService.fillGoodsName(config); return ApiResponse.success(config); } @GetMapping("/list") public ApiResponse> list(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize, @ModelAttribute PriceConfigListReq req) { PageHelper.startPage(pageNum, pageSize); List result = priceConfigService.listByCondition(req); priceConfigService.fillGoodsName(result); PageInfo pageInfo = new PageInfo<>(result); return ApiResponse.success(pageInfo); } }