package com.ruoyi.study.controller;
|
|
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.web.page.PageInfo;
|
import com.ruoyi.study.domain.TCategory;
|
import com.ruoyi.study.domain.TStory;
|
import com.ruoyi.study.domain.TSubject;
|
import com.ruoyi.study.dto.CategoryQuery;
|
import com.ruoyi.study.service.ICategoryService;
|
import com.ruoyi.study.service.ITStoryService;
|
import com.ruoyi.study.service.ITSubjectService;
|
import com.ruoyi.study.vo.CategoryVO;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 2.0新增-故事分类管理 前端控制器
|
* </p>
|
*
|
* @author 无关风月
|
* @since 2024-04-26
|
*/
|
@RestController
|
@RequestMapping("/base/tCategoryStory")
|
public class TCategoryStoryController {
|
|
@Autowired
|
private ITSubjectService subjectService;
|
@Autowired
|
private ICategoryService categoryService;
|
@Autowired
|
private ITStoryService storyService;
|
@PostMapping("/categoryList")
|
@ApiOperation(value = "列表查询", tags = {"2.0新增-故事分类管理"})
|
public R<PageInfo<CategoryVO>> subjectList(@RequestBody CategoryQuery query) {
|
query.setState(2);
|
List<Integer> integers = new ArrayList<>();
|
|
if (StringUtils.hasLength(query.getSecondName())){
|
List<Integer> collect = categoryService.lambdaQuery()
|
.eq(TCategory::getType, 2)
|
.eq(TCategory::getState, query.getState())
|
.like(TCategory::getName, query.getSecondName())
|
.list().stream().map(TCategory::getParentId).collect(Collectors.toList());
|
integers.addAll(collect);
|
}
|
if (StringUtils.hasLength(query.getFirstName())){
|
List<Integer> collect = categoryService.lambdaQuery()
|
.eq(TCategory::getType, 1)
|
.eq(TCategory::getState, query.getState())
|
.like(TCategory::getName, query.getFirstName())
|
.list().stream().map(TCategory::getId).collect(Collectors.toList());
|
integers.addAll(collect);
|
}
|
if (StringUtils.hasLength(query.getSecondName())&&StringUtils.hasLength(query.getFirstName())){
|
if (integers.isEmpty()){
|
integers.add(-1);
|
}
|
}
|
query.setFirstIds(integers);
|
PageInfo<CategoryVO> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
|
List<CategoryVO> list = categoryService.listAll(query,res);
|
for (CategoryVO categoryVO : list) {
|
List<TCategory> list1 = categoryService.lambdaQuery()
|
.eq(TCategory::getParentId, categoryVO.getId())
|
.eq(TCategory::getState,2).list();
|
categoryVO.setSecondList(list1);
|
}
|
res.setRecords(list);
|
res.setTotal(list.size());
|
return R.ok(res);
|
}
|
@PostMapping("/add")
|
@ApiOperation(value = "添加", tags = {"2.0新增-故事分类管理"})
|
public R add(@RequestBody TCategory dto) {
|
dto.setState(2);
|
categoryService.save(dto);
|
return R.ok("添加成功");
|
}
|
@PostMapping("/update")
|
@ApiOperation(value = "编辑", tags = {"2.0新增-故事分类管理"})
|
public R update(@RequestBody TCategory dto) {
|
dto.setState(2);
|
categoryService.updateById(dto);
|
return R.ok("编辑成功");
|
}
|
@PostMapping("/delete")
|
@ApiOperation(value = "删除", tags = {"2.0新增-故事分类管理"})
|
public R delete(@RequestParam("id") Integer id) {
|
TCategory byId = categoryService.getById(id);
|
switch (byId.getType()){
|
case 1:
|
// 一级分类
|
List<TStory> list = storyService.lambdaQuery().eq(TStory::getFirstCategory, id).list();
|
if (!list.isEmpty()){
|
// 操作失败,当前分类正在被使用
|
return R.fail("当前分类正在被使用");
|
}
|
break;
|
case 2:
|
// 二级分类
|
List<TStory> list2 = storyService.lambdaQuery().eq(TStory::getSecondCategory, id).list();
|
if (!list2.isEmpty()){
|
// 操作失败,当前分类正在被使用
|
return R.fail("当前分类正在被使用");
|
}
|
break;
|
}
|
categoryService.removeById(id);
|
return R.ok();
|
}
|
}
|