From 149d04de35cf9f6adb2f568da141bfd5f5a27329 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 12 Mar 2024 12:07:55 +0800
Subject: [PATCH] 新增天地图标签导入
---
src/main/java/org/springblade/modules/category/excel/CategoryExcel.java | 45 +++++++++++++++
src/main/java/org/springblade/modules/category/service/impl/CategoryServiceImpl.java | 30 ++++++++++
src/main/java/org/springblade/modules/category/excel/CategoryImporter.java | 39 +++++++++++++
src/main/java/org/springblade/modules/category/controller/CategoryController.java | 16 ++++
src/main/java/org/springblade/modules/category/service/ICategoryService.java | 8 ++
5 files changed, 136 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/springblade/modules/category/controller/CategoryController.java b/src/main/java/org/springblade/modules/category/controller/CategoryController.java
index 8cbfccf..1755f72 100644
--- a/src/main/java/org/springblade/modules/category/controller/CategoryController.java
+++ b/src/main/java/org/springblade/modules/category/controller/CategoryController.java
@@ -24,18 +24,20 @@
import javax.validation.Valid;
import org.springblade.common.node.TreeIntegerNode;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
-import org.springblade.modules.label.vo.LabelVO;
+import org.springblade.modules.category.excel.CategoryExcel;
+import org.springblade.modules.category.excel.CategoryImporter;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.category.entity.CategoryEntity;
import org.springblade.modules.category.vo.CategoryVO;
import org.springblade.modules.category.wrapper.CategoryWrapper;
import org.springblade.modules.category.service.ICategoryService;
-
+import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
@@ -143,5 +145,15 @@
return R.data(categoryService.getCategory(category));
}
+ /**
+ * 天地图poi 导入
+ */
+ @PostMapping("/import-category")
+ public R importCategory(MultipartFile file, Integer isCovered) {
+ CategoryImporter categoryImporter = new CategoryImporter(categoryService, isCovered == 1);
+ ExcelUtil.save(file, categoryImporter, CategoryExcel.class);
+ return R.success("操作成功");
+ }
+
}
diff --git a/src/main/java/org/springblade/modules/category/excel/CategoryExcel.java b/src/main/java/org/springblade/modules/category/excel/CategoryExcel.java
new file mode 100644
index 0000000..3ae127f
--- /dev/null
+++ b/src/main/java/org/springblade/modules/category/excel/CategoryExcel.java
@@ -0,0 +1,45 @@
+package org.springblade.modules.category.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * CategoryExcel
+ *
+ * @author Chill
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CategoryExcel implements Serializable {
+
+ private static final long serialVersionUID = 2L;
+
+ /** 标签名称 */
+ @ExcelProperty( "小类")
+ private String categoryName;
+
+ /** 标签编号 */
+ @ExcelProperty( "类别代码")
+ private String categoryNo;
+
+ /** 层级 */
+ @ExcelProperty( "层级")
+ private Integer level;
+
+ /** 提示词分类描述 */
+ @ExcelProperty( "提示词分类描述")
+ private String description;
+
+ /** 备注 */
+ @ExcelProperty( "备注")
+ private String remark;
+
+
+}
+
diff --git a/src/main/java/org/springblade/modules/category/excel/CategoryImporter.java b/src/main/java/org/springblade/modules/category/excel/CategoryImporter.java
new file mode 100644
index 0000000..5ab894f
--- /dev/null
+++ b/src/main/java/org/springblade/modules/category/excel/CategoryImporter.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.category.excel;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+import org.springblade.modules.category.service.ICategoryService;
+import java.util.List;
+
+/**
+ * 场所标签poi数据导入类
+ *
+ * @author Chill
+ */
+@RequiredArgsConstructor
+public class CategoryImporter implements ExcelImporter<CategoryExcel> {
+
+ private final ICategoryService categoryService;
+ private final Boolean isCovered;
+
+ @Override
+ public void save(List<CategoryExcel> data) {
+ categoryService.importCategory(data, isCovered);
+ }
+}
diff --git a/src/main/java/org/springblade/modules/category/service/ICategoryService.java b/src/main/java/org/springblade/modules/category/service/ICategoryService.java
index ca903e7..33b53a5 100644
--- a/src/main/java/org/springblade/modules/category/service/ICategoryService.java
+++ b/src/main/java/org/springblade/modules/category/service/ICategoryService.java
@@ -21,6 +21,7 @@
import org.springblade.common.node.TreeIntegerNode;
import org.springblade.modules.category.dto.CategoryDTO;
import org.springblade.modules.category.entity.CategoryEntity;
+import org.springblade.modules.category.excel.CategoryExcel;
import org.springblade.modules.category.vo.CategoryVO;
import java.util.List;
@@ -56,4 +57,11 @@
List<CategoryDTO> selectCategoryLabelList(CategoryDTO categoryDTO);
List<TreeIntegerNode> tree(CategoryVO category);
+
+ /**
+ * 标签导入
+ * @param data
+ * @param isCovered
+ */
+ void importCategory(List<CategoryExcel> data, Boolean isCovered);
}
diff --git a/src/main/java/org/springblade/modules/category/service/impl/CategoryServiceImpl.java b/src/main/java/org/springblade/modules/category/service/impl/CategoryServiceImpl.java
index 8749263..704d5aa 100644
--- a/src/main/java/org/springblade/modules/category/service/impl/CategoryServiceImpl.java
+++ b/src/main/java/org/springblade/modules/category/service/impl/CategoryServiceImpl.java
@@ -16,11 +16,13 @@
*/
package org.springblade.modules.category.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.node.TreeIntegerNode;
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.modules.category.dto.CategoryDTO;
import org.springblade.modules.category.entity.CategoryEntity;
+import org.springblade.modules.category.excel.CategoryExcel;
import org.springblade.modules.category.vo.CategoryVO;
import org.springblade.modules.category.mapper.CategoryMapper;
import org.springblade.modules.category.service.ICategoryService;
@@ -77,4 +79,32 @@
node.setChildren(null);
}
}
+
+ /**
+ * 标签导入
+ * @param data
+ * @param isCovered
+ */
+ @Override
+ public void importCategory(List<CategoryExcel> data, Boolean isCovered) {
+ for (CategoryExcel categoryExcel : data) {
+ // 查询是否已存在
+ QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>();
+ wrapper.eq("category_no",categoryExcel.getCategoryNo()).eq("is_deleted",0);
+ CategoryEntity one = getOne(wrapper);
+ if (null==one){
+ // 新增
+ CategoryEntity categoryEntity = new CategoryEntity();
+ categoryEntity.setCategoryNo(categoryExcel.getCategoryNo());
+ categoryEntity.setCategoryName(categoryExcel.getCategoryName());
+ categoryEntity.setLevel(categoryExcel.getLevel());
+ categoryEntity.setIsDeleted(0);
+ categoryEntity.setParentNo(categoryExcel.getCategoryNo().substring(0,4));
+ categoryEntity.setDescription(categoryExcel.getDescription());
+ categoryEntity.setRemark(categoryExcel.getRemark());
+ // 新增
+ save(categoryEntity);
+ }
+ }
+ }
}
--
Gitblit v1.9.3