package com.mzl.flower.web.flower; 
 | 
  
 | 
import com.mzl.flower.base.BaseController; 
 | 
import com.mzl.flower.base.R; 
 | 
import com.mzl.flower.base.ReturnDataDTO; 
 | 
import com.mzl.flower.base.annotation.OperationLog; 
 | 
import com.mzl.flower.dto.request.flower.FlowerCategoryCreateDTO; 
 | 
import com.mzl.flower.dto.request.flower.FlowerCategoryQueryDTO; 
 | 
import com.mzl.flower.dto.request.flower.FlowerCategoryUpdateDTO; 
 | 
import com.mzl.flower.dto.response.flower.FlowerCategoryDTO; 
 | 
import com.mzl.flower.dto.response.flower.FlowerCategoryTreeDTO; 
 | 
import com.mzl.flower.entity.flower.FlowerCategory; 
 | 
import com.mzl.flower.entity.log.OperationRecord; 
 | 
import com.mzl.flower.service.flower.FlowerCategoryService; 
 | 
import com.mzl.flower.service.flower.FlowerService; 
 | 
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.beans.factory.annotation.Autowired; 
 | 
import org.springframework.http.ResponseEntity; 
 | 
import org.springframework.util.StringUtils; 
 | 
import org.springframework.validation.annotation.Validated; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.validation.constraints.NotBlank; 
 | 
import java.util.List; 
 | 
  
 | 
@RestController 
 | 
@RequestMapping("/api/flower/category") 
 | 
@Api(value = "商品分类管理", tags = "商品分类管理") 
 | 
@Validated 
 | 
@Slf4j 
 | 
public class FlowerCategoryController extends BaseController { 
 | 
  
 | 
    @Autowired 
 | 
    private FlowerCategoryService categoryService; 
 | 
  
 | 
    @Autowired 
 | 
    private FlowerService flowerService; 
 | 
  
 | 
    @PostMapping("/tree/new") 
 | 
    @OperationLog(value = "新增商品分类",type = "flower_category") 
 | 
    @ApiOperation(value = "新增商品分类") 
 | 
    public ResponseEntity<ReturnDataDTO> addCategory(@RequestBody FlowerCategoryCreateDTO dto) { 
 | 
        String content = ""; 
 | 
        if (StringUtils.isEmpty(dto.getParentId())) { 
 | 
            content = "新增商品分类:分类名称:【" + dto.getName() + "】,等级:【" + dto.getLevelLimit() + "】"; 
 | 
        } else { 
 | 
            content = "新增商品分类:上级分类id:【" + dto.getParentId() + "】分类名称:【" + dto.getName() + "】,等级:【" + dto.getLevelLimit() + "】"; 
 | 
        } 
 | 
        OperationRecord operationRecord = getOperationRecord(content); 
 | 
        return returnData(R.SUCCESS.getCode(), categoryService.addCategory(dto), operationRecord); 
 | 
    } 
 | 
  
 | 
    @PostMapping("/tree/edit") 
 | 
    @OperationLog(value = "编辑商品分类",type = "flower_category") 
 | 
    @ApiOperation(value = "编辑商品分类") 
 | 
    public ResponseEntity<ReturnDataDTO> updateCategory(@RequestBody FlowerCategoryUpdateDTO dto) { 
 | 
        Long category = categoryService.updateCategory(dto); 
 | 
        flowerService.updateCategoryInfo(category); 
 | 
        String content = ""; 
 | 
        if (StringUtils.isEmpty(dto.getParentId())) { 
 | 
            content = "编辑商品分类:分类名称:【" + dto.getName() + "】,等级:【" + dto.getLevelLimit() + "】"; 
 | 
        } else { 
 | 
            content = "编辑商品分类:上级分类id:【" + dto.getParentId() + "】分类名称:【" + dto.getName() + "】,等级:【" + dto.getLevelLimit() + "】"; 
 | 
        } 
 | 
        OperationRecord operationRecord = getOperationRecord(content); 
 | 
        return returnData(R.SUCCESS.getCode(), category, operationRecord); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/tree/view") 
 | 
    @ApiOperation(value = "查询商品分类详情") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(name = "id", value = "商品分类id", required = true, dataType = "String", paramType = "query") 
 | 
    }) 
 | 
    public ResponseEntity<ReturnDataDTO<FlowerCategoryDTO>> getCategory(@NotBlank(message = "id不能为空") String id){ 
 | 
        return returnData(R.SUCCESS.getCode(), categoryService.getCategory(id)); 
 | 
    } 
 | 
     
 | 
    @GetMapping("/tree") 
 | 
    @ApiOperation(value = "获取商品分类树") 
 | 
    public ResponseEntity<ReturnDataDTO<List<FlowerCategoryTreeDTO>>> selectCategoryTree(FlowerCategoryQueryDTO dto){ 
 | 
        return returnData(R.SUCCESS.getCode(), categoryService.selectCategoryTree(dto)); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/list") 
 | 
    @ApiOperation(value = "获取商品分类列表") 
 | 
    public ResponseEntity<ReturnDataDTO<List<FlowerCategoryTreeDTO>>> selectCategoryList(FlowerCategoryQueryDTO dto){ 
 | 
        return returnData(R.SUCCESS.getCode(), categoryService.selectCategoryList(dto)); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/tree/delete") 
 | 
    @OperationLog(value = "删除商品分类",type = "flower_category") 
 | 
    @ApiOperation(value = "删除商品分类") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(name = "id", value = "商品分类id", required = true, dataType = "Long", paramType = "query") 
 | 
    }) 
 | 
    public ResponseEntity<ReturnDataDTO<?>> deleteCategory(Long id){ 
 | 
        FlowerCategory flowerCategory = categoryService.selectCategoryById(id); 
 | 
        categoryService.deleteCategory(id); 
 | 
        String content = ""; 
 | 
        if (StringUtils.isEmpty(flowerCategory.getParentId())) { 
 | 
            content = "删除商品分类id:【" + id + "】,分类名称:【" + flowerCategory.getName() + "】,等级:【" + flowerCategory.getLevelLimit() + "】"; 
 | 
        } else { 
 | 
            content = "删除商品分类id:【" + id + "】,上级分类id:【" + flowerCategory.getParentId() + "】,分类名称:【" + flowerCategory.getName() + "】,等级:【" + flowerCategory.getLevelLimit() + "】"; 
 | 
        } 
 | 
        OperationRecord operationRecord = getOperationRecord(content); 
 | 
        return returnData(R.SUCCESS.getCode(), null, operationRecord); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/tree/shown") 
 | 
    @OperationLog(value = "显示商品分类",type = "flower_category") 
 | 
    @ApiOperation(value = "显示商品分类") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(name = "id", value = "商品分类id", required = true, dataType = "Long", paramType = "query") 
 | 
    }) 
 | 
    public ResponseEntity<ReturnDataDTO<?>> showCategory(Long id){ 
 | 
        categoryService.setCategoryShown(id, true); 
 | 
        FlowerCategory flowerCategory = categoryService.selectCategoryById(id); 
 | 
        String content = "显示商品分类id:【" + id + "】,分类名称:【" + flowerCategory.getName() + "】,等级:【" + flowerCategory.getLevelLimit() + "】"; 
 | 
        OperationRecord operationRecord = getOperationRecord(content); 
 | 
        return returnData(R.SUCCESS.getCode(), null, operationRecord); 
 | 
  
 | 
    } 
 | 
  
 | 
    @GetMapping("/tree/hidden") 
 | 
    @OperationLog(value = "隐藏商品分类",type = "flower_category") 
 | 
    @ApiOperation(value = "隐藏商品分类") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(name = "id", value = "商品分类id", required = true, dataType = "Long", paramType = "query") 
 | 
    }) 
 | 
    public ResponseEntity<ReturnDataDTO<?>> hideCategory(Long id){ 
 | 
        categoryService.setCategoryShown(id, false); 
 | 
        FlowerCategory flowerCategory = categoryService.selectCategoryById(id); 
 | 
        String content = "隐藏商品分类id:【" + id + "】,分类名称:【" + flowerCategory.getName() + "】,等级:【" + flowerCategory.getLevelLimit() + "】"; 
 | 
        OperationRecord operationRecord = getOperationRecord(content); 
 | 
        return returnData(R.SUCCESS.getCode(), null, operationRecord); 
 | 
    } 
 | 
  
 | 
} 
 |