diff --git a/pom.xml b/pom.xml
index 948323d..e783d5c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,13 +63,17 @@
mybatis-plus-spring-boot3-starter
3.5.12
+
+ com.baomidou
+ mybatis-plus-jsqlparser
+ 3.5.12
+
com.alibaba
fastjson
1.2.29
-
diff --git a/src/main/java/iet/ustb/sf/controller/TargetController.java b/src/main/java/iet/ustb/sf/controller/TargetController.java
new file mode 100644
index 0000000..7ae1d57
--- /dev/null
+++ b/src/main/java/iet/ustb/sf/controller/TargetController.java
@@ -0,0 +1,40 @@
+package iet.ustb.sf.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import iet.ustb.sf.common.R;
+import iet.ustb.sf.domain.Target;
+import iet.ustb.sf.service.TargetService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 目标管控-指标
+ * TargetController
+ *
+ * @author huangge1199
+ * @since 2025/8/5 16:24:06
+ */
+@RestController
+@RequestMapping("/mbgk/target")
+@Tag(name = "目标管控-指标")
+public class TargetController {
+
+ @Resource
+ private TargetService targetService;
+
+ /**
+ * 根据分类显示指标列表
+ */
+ @Operation(summary = "根据分类显示指标列表")
+ @PostMapping("/getTargetsByCategory")
+ public R> getTargetsByCategory(@RequestBody JSONObject params) {
+ IPage result = targetService.getTargetsByCategory(params);
+ return R.ok(result);
+ }
+}
diff --git a/src/main/java/iet/ustb/sf/service/TargetService.java b/src/main/java/iet/ustb/sf/service/TargetService.java
index 87a85c6..f318afa 100644
--- a/src/main/java/iet/ustb/sf/service/TargetService.java
+++ b/src/main/java/iet/ustb/sf/service/TargetService.java
@@ -1,5 +1,7 @@
package iet.ustb.sf.service;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import iet.ustb.sf.domain.Target;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -10,4 +12,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface TargetService extends IService {
+ IPage getTargetsByCategory(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 9d46b69..abb901f 100644
--- a/src/main/java/iet/ustb/sf/service/impl/CategoryServiceImpl.java
+++ b/src/main/java/iet/ustb/sf/service/impl/CategoryServiceImpl.java
@@ -37,7 +37,7 @@ public class CategoryServiceImpl extends ServiceImpl
QueryWrapper queryWrapper = new QueryWrapper<>();
if (!StringUtils.isEmpty(category.getOrganization())) {
- queryWrapper.like("organization", category.getOrganization());
+ queryWrapper.like("organization", "%" + category.getOrganization() + "%");
}
List categoryList = new ArrayList<>();
if (StringUtils.isEmpty(category.getTopic())) {
diff --git a/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java b/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java
index 85e546f..60b7f88 100644
--- a/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java
+++ b/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java
@@ -1,20 +1,73 @@
package iet.ustb.sf.service.impl;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import iet.ustb.sf.domain.Category;
import iet.ustb.sf.domain.Target;
+import iet.ustb.sf.exception.ErrorCode;
+import iet.ustb.sf.exception.ThrowUtils;
+import iet.ustb.sf.mapper.CategoryMapper;
import iet.ustb.sf.service.TargetService;
import iet.ustb.sf.mapper.TargetMapper;
+import jakarta.annotation.Resource;
+import lombok.val;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+
/**
-* @author hyy
-* @description 针对表【mbgk_target】的数据库操作Service实现
-* @createDate 2025-08-05 15:40:19
-*/
+ * @author hyy
+ * @description 针对表【mbgk_target】的数据库操作Service实现
+ * @createDate 2025-08-05 15:40:19
+ */
@Service
public class TargetServiceImpl extends ServiceImpl
- implements TargetService{
+ implements TargetService {
+ @Resource
+ private TargetMapper targetMapper;
+
+ @Resource
+ private CategoryMapper categoryMapper;
+
+ @Override
+ public IPage getTargetsByCategory(JSONObject params) {
+ int pageIndex = Optional.ofNullable(params.getInteger("pageIndex")).orElse(1);
+ int pageSize = Optional.ofNullable(params.getInteger("pageSize")).orElse(10);
+ String topic = params.getString("topic");
+ String organization = params.getString("organization");
+ String categoryId = params.getString("categoryId");
+ String name = params.getString("name");
+
+ boolean bl = StringUtils.isEmpty(organization) && StringUtils.isEmpty(topic);
+ ThrowUtils.throwIf(bl, ErrorCode.PARAMS_ERROR, "主题和组织必须传入一个!");
+
+ Page pageRequest = new Page<>(pageIndex, pageSize);
+
+ QueryWrapper query = new QueryWrapper<>();
+ if (!StringUtils.isEmpty(topic)) {
+ query.eq("topic", topic);
+ }
+ if (!StringUtils.isEmpty(organization)) {
+ query.eq("organization", organization);
+ }
+ if (!StringUtils.isEmpty(categoryId)) {
+ query.eq("category_id",categoryId);
+ }
+ if (!StringUtils.isEmpty(name)) {
+ query.like("name","%" + name + "%");
+ }
+ query.orderByDesc("update_time");
+
+ return this.page(pageRequest, query);
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index cb5d146..d0af489 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -7,13 +7,13 @@ server:
port: 9900
servlet:
context-path: /api
-# springdoc-openapi????
+# springdoc-openapi
springdoc:
group-configs:
- group: 'default'
paths-to-match: '/**'
packages-to-scan: iet.ustb.sf.controller
-# knife4j???????????????
+# knife4j
knife4j:
enable: true
setting:
@@ -22,8 +22,6 @@ mybatis-plus:
global-config:
enable-sql-runner: true
configuration:
- # ??????????
map-underscore-to-camel-case: true
- # ????SQL
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl