package com.mzl.flower.web.flower; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.flower.*; import com.mzl.flower.dto.response.flower.FlowerListDTO; import com.mzl.flower.dto.response.flower.FlowerZoneDTO; import com.mzl.flower.service.flower.FlowerService; import com.mzl.flower.service.flower.FlowerZoneService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotNull; import java.util.List; @RestController @RequestMapping("/api/flower/zone") @Api(value = "专区管理", tags = "专区管理") @Validated @Slf4j public class FlowerZoneController extends BaseController { private final FlowerZoneService flowerZoneService; private final FlowerService flowerService; public FlowerZoneController(FlowerZoneService flowerZoneService, FlowerService flowerService) { this.flowerZoneService = flowerZoneService; this.flowerService = flowerService; } @PostMapping("/page/new") @ApiOperation(value = "新增专区") public ResponseEntity addTag(@RequestBody FlowerZoneCreateDTO dto) { flowerZoneService.addZone(dto); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/page/edit") @ApiOperation(value = "编辑专区") public ResponseEntity updateZone(@RequestBody FlowerZoneUpdateDTO dto) { flowerZoneService.updateZone(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/page/view") @ApiOperation(value = "查询专区详情") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "专区id", required = true, dataType = "Long", paramType = "query") }) public ResponseEntity> getZone(@NotNull(message = "id不能为空") Long id){ return returnData(R.SUCCESS.getCode(), flowerZoneService.getZone(id)); } @GetMapping("/page") @ApiOperation(value = "专区分页查询") public ResponseEntity>> selectZonePage(Page page,String name){ return returnData(R.SUCCESS.getCode(), flowerZoneService.selectZonePage(page, name)); } @GetMapping("/page/delete") @ApiOperation(value = "删除专区") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "专区id", required = true, dataType = "Long", paramType = "query") }) public ResponseEntity> deleteZone(@NotNull(message = "id不能为空") Long id){ flowerZoneService.deleteZone(id); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list") @ApiOperation(value = "用户端-专区列表查询") public ResponseEntity>> selectZoneList(){ return returnData(R.SUCCESS.getCode(), flowerZoneService.selectZoneList(Constants.COMMON_PUBLISH_STATUS.published.name())); } @GetMapping("/page/changeStatus") @ApiOperation(value = "专区上下架") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "专区id", required = true, dataType = "Long", paramType = "query") }) public ResponseEntity> changeStatus(@NotNull(message = "id不能为空") Long id){ flowerZoneService.changeStatus(id); return returnData(R.SUCCESS.getCode(), null); } @PostMapping("/page/set/rank") @ApiOperation(value = "设置专区商品排序") public ResponseEntity setFlowerRank(@RequestBody FlowerZoneRankDTO dto) { flowerZoneService.setFlowerZoneRank(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/page/flower/list") @ApiOperation(value = "商品列表") public ResponseEntity>> selectZoneFlowerList(Page page, FlowerZoneQueryDTO dto){ if(dto.getZoneId()==null || dto.getZoneId()==0){ throw new ValidationException("专区id不能为空"); } return returnData(R.SUCCESS.getCode(), flowerService.selectZoneFlowerList(page, dto)); } }