diff --git a/src/main/java/iet/ustb/sf/controller/CategoryController.java b/src/main/java/iet/ustb/sf/controller/CategoryController.java index 4ed8503..b9069d4 100644 --- a/src/main/java/iet/ustb/sf/controller/CategoryController.java +++ b/src/main/java/iet/ustb/sf/controller/CategoryController.java @@ -31,8 +31,6 @@ public class CategoryController { /** * 查询分类 - * @param params 分类参数 - * @return 结果 */ @Operation(summary = "查询分类") @PostMapping("/showCategory") @@ -41,4 +39,14 @@ public class CategoryController { List result = categoryService.showCategory(category); return R.ok(result); } + + /** + * 保存分类 + */ + @Operation(summary = "保存分类") + @PostMapping("/saveCategory") + public R addCategory(@RequestBody JSONObject params) { + categoryService.addCategory(params); + return R.ok(); + } } diff --git a/src/main/java/iet/ustb/sf/service/CategoryService.java b/src/main/java/iet/ustb/sf/service/CategoryService.java index bdb45f0..2515545 100644 --- a/src/main/java/iet/ustb/sf/service/CategoryService.java +++ b/src/main/java/iet/ustb/sf/service/CategoryService.java @@ -1,5 +1,6 @@ package iet.ustb.sf.service; +import com.alibaba.fastjson.JSONObject; import iet.ustb.sf.domain.Category; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,4 +14,6 @@ import java.util.List; public interface CategoryService extends IService { List showCategory(Category category); + + void addCategory(JSONObject params); } diff --git a/src/main/java/iet/ustb/sf/service/impl/CategoryServiceImpl.java b/src/main/java/iet/ustb/sf/service/impl/CategoryServiceImpl.java index abb901f..0494183 100644 --- a/src/main/java/iet/ustb/sf/service/impl/CategoryServiceImpl.java +++ b/src/main/java/iet/ustb/sf/service/impl/CategoryServiceImpl.java @@ -1,5 +1,6 @@ package iet.ustb.sf.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import iet.ustb.sf.domain.Category; @@ -8,12 +9,12 @@ import iet.ustb.sf.exception.ThrowUtils; import iet.ustb.sf.mapper.TargetMapper; import iet.ustb.sf.service.CategoryService; import iet.ustb.sf.mapper.CategoryMapper; +import iet.ustb.sf.util.CheckUtils; import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * @author hyy @@ -50,17 +51,40 @@ public class CategoryServiceImpl extends ServiceImpl } else { queryWrapper.eq("topic", category.getTopic()); } - if (StringUtils.isEmpty(category.getParentId())) { - queryWrapper.isNull("parent_id"); - } else { - queryWrapper.eq("parent_id", category.getParentId()); - } + queryWrapper.orderByDesc("update_time"); categoryList = categoryMapper.selectList(queryWrapper); for (Category tmp : categoryList) { tmp.setOrganization(category.getOrganization()); } return categoryList; } + + @Override + public void addCategory(JSONObject params) { + Category category = JSONObject.parseObject(params.toString(), Category.class); + ThrowUtils.throwIf(category == null, ErrorCode.PARAMS_ERROR, "传入分类不正确!"); + CheckUtils.checkEmpty(category.getNameCn(), "中文分类"); + CheckUtils.checkEmpty(category.getTopic(), "主题"); + List topicList = Arrays.asList("质量", "生产", "能源", "运维", "成本", "测试"); + ThrowUtils.throwIf(!topicList.contains(category.getTopic()), ErrorCode.PARAMS_ERROR, "主题名称错误!"); + + if ("".equals(category.getId())) { + category.setId(UUID.randomUUID().toString()); + } + + List categoryList = categoryMapper.selectList(new QueryWrapper().eq("name_en", category.getNameCn())); + for (Category tmp : categoryList) { + boolean bl = tmp.getNameCn().equals(category.getNameCn()) && !tmp.getId().equals(category.getId()); + ThrowUtils.throwIf(bl, ErrorCode.PARAMS_ERROR, "分类名不能重复!"); + } + + Date now = new Date(); + if (category.getCreateTime() == null) { + category.setCreateTime(now); + } + category.setUpdateTime(now); + categoryMapper.insert(category); + } }