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." } +