Prechádzať zdrojové kódy

feat(project): 新增项目服务接口和实现类

- 在 ProjectService 接口中添加了 obj、list 和 page 方法
- 在 ProjectServiceImpl 类中实现了新增的方法
- 添加了通用查询构建器方法 commonQueryWrapper
- 使用 JMap 和 JHashMap 实现了数据转换
hechunping 1 mesiac pred
rodič
commit
149123cb43

+ 33 - 0
src/main/java/com/xynet/marketing/service/ProjectService.java

@@ -1,4 +1,37 @@
 package com.xynet.marketing.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xynet.marketing.utils.collections.map.JMap;
+
+import java.util.List;
+import java.util.Map;
+
 public interface ProjectService {
+    /**
+     * 对象查询
+     * @param param
+     * @return
+     */
+    Map<String,Object> obj(JMap<String,Object> param);
+
+//    /**
+//     * 新增或修改
+//     * @param dto
+//     * @return
+//     */
+//    ProjectDto.Vo saveOrUpdate(ProjectDto.SaveOrUpdateDto dto);
+
+    /**
+     * 列表查询
+     * @param param
+     * @return
+     */
+    List<Map<String,Object>> list(JMap<String,Object> param);
+
+    /**
+     * 分页查询
+     * @param param
+     * @return
+     */
+    Page<Map<String, Object>> page(JMap<String, Object> param);
 }

+ 46 - 1
src/main/java/com/xynet/marketing/service/impl/ProjectServiceImpl.java

@@ -1,16 +1,61 @@
 package com.xynet.marketing.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xynet.marketing.entity.Project;
 import com.xynet.marketing.mapper.ProjectMapper;
 import com.xynet.marketing.service.ProjectService;
+import com.xynet.marketing.utils.Emptys;
+import com.xynet.marketing.utils.collections.map.JHashMap;
+import com.xynet.marketing.utils.collections.map.JMap;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Map;
+
 /**
+ * 项目服务实现类
  * @author hechunping
  * @date 2025/1/15
  */
 @Service
 public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
+    /**
+     * 通用查询构建器
+     * @param param
+     * @return
+     */
+    private LambdaQueryWrapper<Project> commonQueryWrapper(JMap<String,Object> param) {
+        LambdaQueryWrapper<Project> lqw = new LambdaQueryWrapper<Project>()
+                .eq(Emptys.check(param.getInt("id")), Project::getId, param.getInt("id"))
+                .eq(Emptys.check(param.getString("code")), Project::getCode, param.getString("code"))
+                .like(Emptys.check(param.getString("name")), Project::getName, param.getString("name"))
+                ;
+        return lqw;
+    }
+
+
+    @Override
+    public Map<String,Object> obj(JMap<String,Object> param) {
+        LambdaQueryWrapper<Project> lqw = commonQueryWrapper(param).last("limit 1");
+        Project project = getOne(lqw);
+        return JHashMap.copy(project);
+    }
+
+    @Override
+    public List<Map<String, Object>> list(JMap<String, Object> param) {
+        LambdaQueryWrapper<Project> lqw = commonQueryWrapper(param).orderByAsc(Project::getId);
+        List<Project> list = list(lqw);
+        return JHashMap.copy(list);
+    }
+
+    @Override
+    public Page<Map<String, Object>> page(JMap<String, Object> param) {
+        LambdaQueryWrapper<Project> lqw = commonQueryWrapper(param).orderByAsc(Project::getId);
+        Page<Project> page = new Page<>(param.getInt("pageCurrent"), param.getInt("pageSize"),true);
+        Page<Project> list = page(page, lqw);
+        return JHashMap.copy(list);
+    }
 
-}
+}