From 31052de2669e08c4f8f6af151311b8d2e154127d Mon Sep 17 00:00:00 2001 From: zxf <1532322479@qq.com> Date: Tue, 30 Dec 2025 11:55:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20service=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zbkj/service/dao/SysDeptDao.java | 13 ++ .../com/zbkj/service/dao/SysDeptUserDao.java | 13 ++ .../zbkj/service/service/SysDeptService.java | 39 +++++ .../service/service/SysDeptUserService.java | 24 +++ .../service/impl/SysDeptServiceImpl.java | 90 ++++++++++ .../service/impl/SysDeptUserServiceImpl.java | 42 +++++ .../resources/mapper/system/SysDeptMapper.xml | 29 ++++ .../mapper/system/SysDeptUserMapper.xml | 13 ++ crmeb_log/log_warn.log | 160 ++++++++++++++++++ 9 files changed, 423 insertions(+) create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptDao.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptUserDao.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptService.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptUserService.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptServiceImpl.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptUserServiceImpl.java create mode 100644 crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptMapper.xml create mode 100644 crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptUserMapper.xml create mode 100644 crmeb_log/log_warn.log diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptDao.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptDao.java new file mode 100644 index 0000000..96a84f2 --- /dev/null +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptDao.java @@ -0,0 +1,13 @@ +package com.zbkj.service.dao; + +import com.zbkj.common.model.system.SysDept; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 部门表 DAO 映射层 + */ +@Mapper +public interface SysDeptDao extends BaseMapper { + +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptUserDao.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptUserDao.java new file mode 100644 index 0000000..a9b5851 --- /dev/null +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/dao/SysDeptUserDao.java @@ -0,0 +1,13 @@ +package com.zbkj.service.dao; + +import com.zbkj.common.model.system.SysDeptUser; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户和部门关联表 DAO 映射层 + */ +@Mapper +public interface SysDeptUserDao extends BaseMapper { + +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptService.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptService.java new file mode 100644 index 0000000..982f4db --- /dev/null +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptService.java @@ -0,0 +1,39 @@ +package com.zbkj.service.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zbkj.common.model.system.SysDept; +import com.zbkj.common.request.PageParamRequest; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zbkj.common.vo.SysDeptTreeVo; + +import java.util.List; +import java.util.Map; + +/** + * 部门表 业务接口 + * +---------------------------------------------------------------------- + */ +public interface SysDeptService extends IService { + + /** + * SysDept 列表查询 + * @param queryWrapper 查询条件 + * @param pageParamRequest 分页参数对象 + * @return + */ + List pageList(LambdaQueryWrapper queryWrapper, PageParamRequest pageParamRequest); + + /** + * 获取部门树形结构 + * @return List + */ + List getDeptTree(); + + /** + * 获取部门树形结构(带搜索参数) + * @param deptName 部门名称 + * @param status 部门状态 + * @return List + */ + List getDeptTree(String deptName, String status); +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptUserService.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptUserService.java new file mode 100644 index 0000000..58d8da2 --- /dev/null +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/SysDeptUserService.java @@ -0,0 +1,24 @@ +package com.zbkj.service.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zbkj.common.model.system.SysDeptUser; +import com.zbkj.common.request.PageParamRequest; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +import java.util.List; +import java.util.Map; + +/** + * 用户和部门关联表 业务接口 + * +---------------------------------------------------------------------- + */ +public interface SysDeptUserService extends IService { + + /** + * SysDeptUser 列表查询 + * @param queryWrapper 查询条件 + * @param pageParamRequest 分页参数对象 + * @return + */ + List pageList(LambdaQueryWrapper queryWrapper, PageParamRequest pageParamRequest); +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptServiceImpl.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptServiceImpl.java new file mode 100644 index 0000000..1ec18a5 --- /dev/null +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptServiceImpl.java @@ -0,0 +1,90 @@ +package com.zbkj.service.service.impl; + +import com.github.pagehelper.PageHelper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import com.zbkj.service.dao.SysDeptDao; +import com.zbkj.common.model.system.SysDept; +import com.zbkj.service.service.SysDeptService; +import com.zbkj.common.page.CommonPage; +import com.zbkj.common.request.PageParamRequest; +import com.zbkj.common.vo.SysDeptTreeVo; +import com.zbkj.common.vo.SysDeptTree; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + + +@Service("sysDeptService") +public class SysDeptServiceImpl extends ServiceImpl implements SysDeptService { + + + @Resource + private SysDeptDao dao; + + + /** + * 带分页参数的列表查询实现 + */ + @Override + public List pageList(LambdaQueryWrapper queryWrapper, PageParamRequest pageParamRequest) { + + PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); + + return dao.selectList(queryWrapper); + } + + /** + * 获取部门树形结构 + * @return List + */ + @Override + public List getDeptTree() { + return getDeptTree(null, null); + } + + /** + * 获取部门树形结构(带搜索参数) + * @param deptName 部门名称 + * @param status 部门状态 + * @return List + */ + @Override + public List getDeptTree(String deptName, String status) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDept::getDelFlag, "0"); + + // 添加部门名称搜索条件 + if (deptName != null && !deptName.isEmpty()) { + queryWrapper.like(SysDept::getDeptName, deptName); + } + + // 添加部门状态搜索条件 + if (status != null && !status.isEmpty()) { + queryWrapper.eq(SysDept::getStatus, status); + } + + queryWrapper.orderByAsc(SysDept::getOrderNum); + List deptList = dao.selectList(queryWrapper); + + // 转换为VO对象 + List voList = deptList.stream().map(dept -> { + SysDeptTreeVo vo = new SysDeptTreeVo(); + BeanUtils.copyProperties(dept, vo); + return vo; + }).collect(Collectors.toList()); + + // 构建树形结构 + SysDeptTree deptTree = new SysDeptTree(voList); + return deptTree.buildTree(); + } + +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptUserServiceImpl.java b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptUserServiceImpl.java new file mode 100644 index 0000000..70fa767 --- /dev/null +++ b/crmeb/crmeb-service/src/main/java/com/zbkj/service/service/impl/SysDeptUserServiceImpl.java @@ -0,0 +1,42 @@ +package com.zbkj.service.service.impl; + +import com.github.pagehelper.PageHelper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import com.zbkj.service.dao.SysDeptUserDao; +import com.zbkj.common.model.system.SysDeptUser; +import com.zbkj.service.service.SysDeptUserService; +import com.zbkj.common.page.CommonPage; +import com.zbkj.common.request.PageParamRequest; + +import javax.annotation.Resource; +import java.util.Map; +import java.util.Arrays; +import java.util.List; + + +@Service("sysDeptUserService") +public class SysDeptUserServiceImpl extends ServiceImpl implements SysDeptUserService { + + + @Resource + private SysDeptUserDao dao; + + + /** + * 带分页参数的列表查询实现 + */ + @Override + public List pageList(LambdaQueryWrapper queryWrapper, PageParamRequest pageParamRequest) { + + PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); + + return dao.selectList(queryWrapper); + } + + +} \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptMapper.xml b/crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptMapper.xml new file mode 100644 index 0000000..dcba80d --- /dev/null +++ b/crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptUserMapper.xml b/crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptUserMapper.xml new file mode 100644 index 0000000..843a584 --- /dev/null +++ b/crmeb/crmeb-service/src/main/resources/mapper/system/SysDeptUserMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/crmeb_log/log_warn.log b/crmeb_log/log_warn.log new file mode 100644 index 0000000..83de835 --- /dev/null +++ b/crmeb_log/log_warn.log @@ -0,0 +1,160 @@ +{ + "app": "Crmeb", + "timestamp":"2025-12-30 08:42:00.485", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-22", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 08:46:00.176", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-28", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 08:51:00.204", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-3", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 08:52:10.330", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-16", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 08:53:00.114", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-28", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 08:54:00.112", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-23", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:01:00.226", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-12", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:04:11.092", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-28", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:05:00.175", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-18", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:06:00.129", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-25", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:10:00.115", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-12", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:13:11.736", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-4", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:16:00.122", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-27", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:25:00.118", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-12", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:37:22.186", + "level": "WARN", + "thread": "main", + "class": "o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext", + "message": "Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.zbkj.admin.CrmebAdminApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'sysDeptService' for bean class [com.zbkj.service.service.impl.SysDeptServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [com.zbkj.modules.autogencode.service.impl.SysDeptServiceImpl]" } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:40:32.241", + "level": "WARN", + "thread": "main", + "class": "o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext", + "message": "Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.zbkj.admin.CrmebAdminApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'sysDeptService' for bean class [com.zbkj.service.service.impl.SysDeptServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [com.zbkj.modules.autogencode.service.impl.SysDeptServiceImpl]" } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:50:12.015", + "level": "WARN", + "thread": "main", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.admin]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:54:41.717", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-4", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 09:55:44.120", + "level": "WARN", + "thread": "main", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.admin]' package. Please check your configuration." } + +{ + "app": "Crmeb", + "timestamp":"2025-12-30 10:43:16.407", + "level": "WARN", + "thread": "crmeb-scheduled-task-pool-30", + "class": "o.m.spring.mapper.ClassPathMapperScanner", + "message": "No MyBatis mapper was found in '[com.zbkj.**.dao]' package. Please check your configuration." } +