Просмотр исходного кода

1、菜单接口、部门接口

machaoyi 1 год назад
Родитель
Сommit
cefddf8202

+ 19 - 23
.idea/workspace.xml

@@ -4,27 +4,14 @@
     <option name="autoReloadType" value="SELECTIVE" />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="1dc46973-e6f5-473b-a131-bf2bbc2dca15" name="更改" comment="1、post请求用body体&#10;2、通用返回体">
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysUserDetail/controller/SysUserDetailController.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysUserDetail/entity/SysUserDetail.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysUserDetail/mapper/SysUserDetailMapper.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysUserDetail/mapper/SysUserDetailMapper.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysUserDetail/service/SysUserDetailService.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysUserDetail/service/impl/SysUserDetailServiceImpl.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/entity/UserAddVO.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/entity/UserDetailPO.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/entity/UserEditVO.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/entity/UserSearchVO.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/utils/LongtoStringSerialize.java" afterDir="false" />
+    <list default="true" id="1dc46973-e6f5-473b-a131-bf2bbc2dca15" name="更改" comment="1、修改登录接口的userName字段&#10;2、long类型的id使用string字符串传递给前端&#10;3、优化用户相关接口&#10;4、新增用户详情表&#10;5、新增mybatis-plus-join">
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysMenu/controller/SysMenuController.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysMenu/entity/SysMenu.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysMenu/mapper/SysMenuMapper.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysMenu/mapper/SysMenuMapper.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysMenu/service/SysMenuService.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/SysMenu/service/impl/SysMenuServiceImpl.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/application/pom.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/system/entity/UserForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/system/entity/UserForm.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/system/web/login.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/system/web/login.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/controller/SysUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/controller/SysUserController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/entity/SysUser.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/entity/SysUser.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/mapper/SysUserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/mapper/SysUserMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/service/SysUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/service/SysUserService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/service/impl/SysUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/application/src/main/java/com/ctsi/user/service/impl/SysUserServiceImpl.java" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -130,7 +117,7 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1704693898384</updated>
-      <workItem from="1704693899463" duration="50023000" />
+      <workItem from="1704693899463" duration="51860000" />
     </task>
     <task id="LOCAL-00001" summary="基础框架配置">
       <option name="closed" value="true" />
@@ -148,7 +135,15 @@
       <option name="project" value="LOCAL" />
       <updated>1704849227759</updated>
     </task>
-    <option name="localTasksCounter" value="3" />
+    <task id="LOCAL-00003" summary="1、修改登录接口的userName字段&#10;2、long类型的id使用string字符串传递给前端&#10;3、优化用户相关接口&#10;4、新增用户详情表&#10;5、新增mybatis-plus-join">
+      <option name="closed" value="true" />
+      <created>1704866904070</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1704866904070</updated>
+    </task>
+    <option name="localTasksCounter" value="4" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -158,6 +153,7 @@
     <option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
     <MESSAGE value="基础框架配置" />
     <MESSAGE value="1、post请求用body体&#10;2、通用返回体" />
-    <option name="LAST_COMMIT_MESSAGE" value="1、post请求用body体&#10;2、通用返回体" />
+    <MESSAGE value="1、修改登录接口的userName字段&#10;2、long类型的id使用string字符串传递给前端&#10;3、优化用户相关接口&#10;4、新增用户详情表&#10;5、新增mybatis-plus-join" />
+    <option name="LAST_COMMIT_MESSAGE" value="1、修改登录接口的userName字段&#10;2、long类型的id使用string字符串传递给前端&#10;3、优化用户相关接口&#10;4、新增用户详情表&#10;5、新增mybatis-plus-join" />
   </component>
 </project>

+ 113 - 0
application/src/main/java/com/ctsi/SysMenu/controller/SysMenuController.java

@@ -0,0 +1,113 @@
+package com.ctsi.SysMenu.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ctsi.entity.FramePage;
+import com.ctsi.utils.ApiResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.*;
+import com.ctsi.SysMenu.entity.SysMenu;
+import com.ctsi.SysMenu.service.SysMenuService;
+
+import javax.annotation.Resource;
+
+ /**
+ * 菜单;(sys_menu)表控制层
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@Api(tags = "菜单对象功能接口")
+@RestController
+@RequestMapping("/sysMenu")
+public class SysMenuController{
+    @Resource
+    private SysMenuService sysMenuService;
+    private static final Logger log = LoggerFactory.getLogger(SysMenuController.class);
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    @ApiOperation("通过ID查询单条数据")
+    @GetMapping("{id}")
+    public ApiResult<SysMenu> queryById(Long id){
+        try {
+            return ApiResult.success(sysMenuService.queryById(id));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("查询失败",null);
+        }
+    }
+    
+    /** 
+     * 分页查询
+     *
+     * @param sysMenu 筛选条件
+     * @return 查询结果
+     */
+    @ApiOperation("分页查询")
+    @GetMapping
+    public ApiResult<Page<SysMenu>> paginQuery(SysMenu sysMenu, FramePage framePage){
+        try {
+            return ApiResult.success(sysMenuService.paginQuery(sysMenu, framePage.getPageNum(), framePage.getPageSize()));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("分页查询失败",null);
+        }    
+    }
+    
+    /** 
+     * 新增数据
+     *
+     * @param sysMenu 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public ApiResult<SysMenu> add(@RequestBody SysMenu sysMenu){
+        try {
+            return ApiResult.success(sysMenuService.insert(sysMenu));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("新增数据失败",null);
+        }
+    }
+    
+    /** 
+     * 更新数据
+     *
+     * @param sysMenu 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("更新数据")
+    @PutMapping
+    public ApiResult<SysMenu> edit(@RequestBody SysMenu sysMenu){
+        try {
+            return ApiResult.success(sysMenuService.update(sysMenu));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("更新数据失败",null);
+        }
+    }
+    
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    @ApiOperation("通过主键删除数据")
+    @DeleteMapping
+    public ApiResult<Boolean> deleteById(Long id){
+        try {
+            return ApiResult.success(sysMenuService.deleteById(id));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("删除数据失败",null);
+        }
+    }
+}

+ 133 - 0
application/src/main/java/com/ctsi/SysMenu/entity/SysMenu.java

@@ -0,0 +1,133 @@
+package com.ctsi.SysMenu.entity;
+
+import com.ctsi.utils.LongtoStringSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+ /**
+ * 菜单;
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@ApiModel(value = "菜单",description = "")
+@TableName("sys_menu")
+public class SysMenu implements Serializable,Cloneable{
+    /** 主键id */
+    @ApiModelProperty(value = "主键id",notes = "")
+    @TableId
+    @JsonSerialize(using = LongtoStringSerialize.class)
+    private Long id ;
+    /** 创建人userid */
+    @ApiModelProperty(value = "创建人userid",notes = "")
+    private Long createdBy ;
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间",notes = "")
+    private Date createdTime ;
+    /** 标题 */
+    @ApiModelProperty(value = "标题",notes = "")
+    private String menuTitle ;
+    /** 父级 */
+    @ApiModelProperty(value = "父级",notes = "")
+    private Long parentId ;
+    /** 编码 */
+    @ApiModelProperty(value = "编码",notes = "")
+    private String menuCode ;
+    /** 名称 */
+    @ApiModelProperty(value = "名称",notes = "")
+    private String menuName ;
+    /** 图标 */
+    @ApiModelProperty(value = "图标",notes = "")
+    private String menuIcon ;
+    /** 逻辑删除 */
+    @ApiModelProperty(value = "逻辑删除",notes = "")
+    private Integer delFlag ;
+    /** 排序 */
+    @ApiModelProperty(value = "排序",notes = "")
+    private Integer orderBy ;
+
+    /** 主键id */
+    public Long getId(){
+        return this.id;
+    }
+    /** 主键id */
+    public void setId(Long id){
+        this.id=id;
+    }
+    /** 创建人userid */
+    public Long getCreatedBy(){
+        return this.createdBy;
+    }
+    /** 创建人userid */
+    public void setCreatedBy(Long createdBy){
+        this.createdBy=createdBy;
+    }
+    /** 创建时间 */
+    public Date getCreatedTime(){
+        return this.createdTime;
+    }
+    /** 创建时间 */
+    public void setCreatedTime(Date createdTime){
+        this.createdTime=createdTime;
+    }
+    /** 标题 */
+    public String getMenuTitle(){
+        return this.menuTitle;
+    }
+    /** 标题 */
+    public void setMenuTitle(String menuTitle){
+        this.menuTitle=menuTitle;
+    }
+    /** 父级 */
+    public Long getParentId(){
+        return this.parentId;
+    }
+    /** 父级 */
+    public void setParentId(Long parentId){
+        this.parentId=parentId;
+    }
+    /** 编码 */
+    public String getMenuCode(){
+        return this.menuCode;
+    }
+    /** 编码 */
+    public void setMenuCode(String menuCode){
+        this.menuCode=menuCode;
+    }
+    /** 名称 */
+    public String getMenuName(){
+        return this.menuName;
+    }
+    /** 名称 */
+    public void setMenuName(String menuName){
+        this.menuName=menuName;
+    }
+    /** 图标 */
+    public String getMenuIcon(){
+        return this.menuIcon;
+    }
+    /** 图标 */
+    public void setMenuIcon(String menuIcon){
+        this.menuIcon=menuIcon;
+    }
+    /** 逻辑删除 */
+    public Integer getDelFlag(){
+        return this.delFlag;
+    }
+    /** 逻辑删除 */
+    public void setDelFlag(Integer delFlag){
+        this.delFlag=delFlag;
+    }
+    /** 排序 */
+    public Integer getOrderBy(){
+        return this.orderBy;
+    }
+    /** 排序 */
+    public void setOrderBy(Integer orderBy){
+        this.orderBy=orderBy;
+    }
+}

+ 26 - 0
application/src/main/java/com/ctsi/SysMenu/mapper/SysMenuMapper.java

@@ -0,0 +1,26 @@
+package com.ctsi.SysMenu.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import com.ctsi.SysMenu.entity.SysMenu;
+
+ /**
+ * 菜单;(sys_menu)表数据库访问层
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@Mapper
+public interface SysMenuMapper  extends BaseMapper<SysMenu>{
+    /** 
+     * 分页查询指定行数据
+     *
+     * @param page 分页参数
+     * @param wrapper 动态查询条件
+     * @return 分页对象列表
+     */
+    IPage<SysMenu> selectByPage(IPage<SysMenu> page , @Param(Constants.WRAPPER) Wrapper<SysMenu> wrapper);
+}

+ 8 - 0
application/src/main/java/com/ctsi/SysMenu/mapper/SysMenuMapper.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.ctsi.SysMenu.mapper.SysMenuMapper">
+     <select id="selectByPage" resultType="com.ctsi.SysMenu.entity.SysMenu">
+        select * from sys_menu ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 51 - 0
application/src/main/java/com/ctsi/SysMenu/service/SysMenuService.java

@@ -0,0 +1,51 @@
+package com.ctsi.SysMenu.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ctsi.SysMenu.entity.SysMenu;
+
+ /**
+ * 菜单;(sys_menu)表服务接口
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+public interface SysMenuService{
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    SysMenu queryById(Long id);
+    
+    /**
+     * 分页查询
+     *
+     * @param sysMenu 筛选条件
+     * @param current 当前页码
+     * @param size  每页大小
+     * @return
+     */
+    Page<SysMenu> paginQuery(SysMenu sysMenu, long current, long size);
+    /** 
+     * 新增数据
+     *
+     * @param sysMenu 实例对象
+     * @return 实例对象
+     */
+    SysMenu insert(SysMenu sysMenu);
+    /** 
+     * 更新数据
+     *
+     * @param sysMenu 实例对象
+     * @return 实例对象
+     */
+    SysMenu update(SysMenu sysMenu);
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    boolean deleteById(Long id);
+}

+ 119 - 0
application/src/main/java/com/ctsi/SysMenu/service/impl/SysMenuServiceImpl.java

@@ -0,0 +1,119 @@
+package com.ctsi.SysMenu.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.ctsi.SysMenu.entity.SysMenu;
+import com.ctsi.SysMenu.mapper.SysMenuMapper;
+import com.ctsi.SysMenu.service.SysMenuService;
+ /**
+ * 菜单;(sys_menu)表服务实现类
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@Service
+public class SysMenuServiceImpl implements SysMenuService{
+    @Autowired
+    private SysMenuMapper sysMenuMapper;
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    public SysMenu queryById(Long id){
+        return sysMenuMapper.selectById(id);
+    }
+    
+    /**
+     * 分页查询
+     *
+     * @param sysMenu 筛选条件
+     * @param current 当前页码
+     * @param size  每页大小
+     * @return
+     */
+    public Page<SysMenu> paginQuery(SysMenu sysMenu, long current, long size){
+        //1. 构建动态查询条件
+        LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
+        if(StrUtil.isNotBlank(sysMenu.getMenuTitle())){
+            queryWrapper.eq(SysMenu::getMenuTitle, sysMenu.getMenuTitle());
+        }
+        if(StrUtil.isNotBlank(sysMenu.getMenuCode())){
+            queryWrapper.eq(SysMenu::getMenuCode, sysMenu.getMenuCode());
+        }
+        if(StrUtil.isNotBlank(sysMenu.getMenuName())){
+            queryWrapper.eq(SysMenu::getMenuName, sysMenu.getMenuName());
+        }
+        if(StrUtil.isNotBlank(sysMenu.getMenuIcon())){
+            queryWrapper.eq(SysMenu::getMenuIcon, sysMenu.getMenuIcon());
+        }
+        //2. 执行分页查询
+        Page<SysMenu> pagin = new Page<>(current , size , true);
+        IPage<SysMenu> selectResult = sysMenuMapper.selectPage(pagin , queryWrapper);
+        pagin.setPages(selectResult.getPages());
+        pagin.setTotal(selectResult.getTotal());
+        pagin.setRecords(selectResult.getRecords());
+        //3. 返回结果
+        return pagin;
+    }
+    
+    /** 
+     * 新增数据
+     *
+     * @param sysMenu 实例对象
+     * @return 实例对象
+     */
+    public SysMenu insert(SysMenu sysMenu){
+        sysMenuMapper.insert(sysMenu);
+        return sysMenu;
+    }
+    
+    /** 
+     * 更新数据
+     *
+     * @param sysMenu 实例对象
+     * @return 实例对象
+     */
+    public SysMenu update(SysMenu sysMenu){
+        //1. 根据条件动态更新
+        LambdaUpdateChainWrapper<SysMenu> chainWrapper = new LambdaUpdateChainWrapper<SysMenu>(sysMenuMapper);
+        if(StrUtil.isNotBlank(sysMenu.getMenuTitle())){
+            chainWrapper.set(SysMenu::getMenuTitle, sysMenu.getMenuTitle());
+        }
+        if(StrUtil.isNotBlank(sysMenu.getMenuCode())){
+            chainWrapper.set(SysMenu::getMenuCode, sysMenu.getMenuCode());
+        }
+        if(StrUtil.isNotBlank(sysMenu.getMenuName())){
+            chainWrapper.set(SysMenu::getMenuName, sysMenu.getMenuName());
+        }
+        if(StrUtil.isNotBlank(sysMenu.getMenuIcon())){
+            chainWrapper.set(SysMenu::getMenuIcon, sysMenu.getMenuIcon());
+        }
+        //2. 设置主键,并更新
+        chainWrapper.eq(SysMenu::getId, sysMenu.getId());
+        boolean ret = chainWrapper.update();
+        //3. 更新成功了,查询最最对象返回
+        if(ret){
+            return queryById(sysMenu.getId());
+        }else{
+            return sysMenu;
+        }
+    }
+    
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    public boolean deleteById(Long id){
+        int total = sysMenuMapper.deleteById(id);
+        return total > 0;
+    }
+}

+ 113 - 0
application/src/main/java/com/ctsi/SysOrg/controller/SysOrgController.java

@@ -0,0 +1,113 @@
+package com.ctsi.SysOrg.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ctsi.entity.FramePage;
+import com.ctsi.utils.ApiResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.*;
+import com.ctsi.SysOrg.entity.SysOrg;
+import com.ctsi.SysOrg.service.SysOrgService;
+
+import javax.annotation.Resource;
+
+ /**
+ * 部门信息表;(sys_org)表控制层
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@Api(tags = "部门信息表对象功能接口")
+@RestController
+@RequestMapping("/sysOrg")
+public class SysOrgController{
+    @Resource
+    private SysOrgService sysOrgService;
+    private static final Logger log = LoggerFactory.getLogger(SysOrgController.class);
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    @ApiOperation("通过ID查询单条数据")
+    @GetMapping("{id}")
+    public ApiResult<SysOrg> queryById(Long id){
+        try {
+            return ApiResult.success(sysOrgService.queryById(id));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("查询失败",null);
+        }
+    }
+    
+    /** 
+     * 分页查询
+     *
+     * @param sysOrg 筛选条件
+     * @return 查询结果
+     */
+    @ApiOperation("分页查询")
+    @GetMapping
+    public ApiResult<Page<SysOrg>> paginQuery(SysOrg sysOrg, FramePage framePage){
+        try {
+            return ApiResult.success(sysOrgService.paginQuery(sysOrg, framePage.getPageNum(), framePage.getPageSize()));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("分页查询失败",null);
+        }    
+    }
+    
+    /** 
+     * 新增数据
+     *
+     * @param sysOrg 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public ApiResult<SysOrg> add(@RequestBody SysOrg sysOrg){
+        try {
+            return ApiResult.success(sysOrgService.insert(sysOrg));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("新增数据失败",null);
+        }
+    }
+    
+    /** 
+     * 更新数据
+     *
+     * @param sysOrg 实例对象
+     * @return 实例对象
+     */
+    @ApiOperation("更新数据")
+    @PutMapping
+    public ApiResult<SysOrg> edit(@RequestBody SysOrg sysOrg){
+        try {
+            return ApiResult.success(sysOrgService.update(sysOrg));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("更新数据失败",null);
+        }
+    }
+    
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    @ApiOperation("通过主键删除数据")
+    @DeleteMapping
+    public ApiResult<Boolean> deleteById(Long id){
+        try {
+            return ApiResult.success(sysOrgService.deleteById(id));
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return ApiResult.failure("删除数据失败",null);
+        }
+    }
+}

+ 111 - 0
application/src/main/java/com/ctsi/SysOrg/entity/SysOrg.java

@@ -0,0 +1,111 @@
+package com.ctsi.SysOrg.entity;
+
+import com.ctsi.utils.LongtoStringSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+ /**
+ * 部门信息表;
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@ApiModel(value = "部门信息表",description = "")
+@TableName("sys_org")
+public class SysOrg implements Serializable,Cloneable{
+    /** 主键id */
+    @ApiModelProperty(value = "主键id",notes = "")
+    @TableId
+    @JsonSerialize(using = LongtoStringSerialize.class)
+    private Long id ;
+    /** 创建人userid */
+    @ApiModelProperty(value = "创建人userid",notes = "")
+    private Long createdBy ;
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间",notes = "")
+    private Date createdTime ;
+    /** 逻辑删除 */
+    @ApiModelProperty(value = "逻辑删除",notes = "")
+    private Integer delFlag ;
+    /** 部门名称 */
+    @ApiModelProperty(value = "部门名称",notes = "")
+    private String orgName ;
+    /** 描述 */
+    @ApiModelProperty(value = "描述",notes = "")
+    private String description ;
+    /** 父级 */
+    @ApiModelProperty(value = "父级",notes = "")
+    private Long parentId ;
+    /** 排序 */
+    @ApiModelProperty(value = "排序",notes = "")
+    private Integer orderBy ;
+
+    /** 主键id */
+    public Long getId(){
+        return this.id;
+    }
+    /** 主键id */
+    public void setId(Long id){
+        this.id=id;
+    }
+    /** 创建人userid */
+    public Long getCreatedBy(){
+        return this.createdBy;
+    }
+    /** 创建人userid */
+    public void setCreatedBy(Long createdBy){
+        this.createdBy=createdBy;
+    }
+    /** 创建时间 */
+    public Date getCreatedTime(){
+        return this.createdTime;
+    }
+    /** 创建时间 */
+    public void setCreatedTime(Date createdTime){
+        this.createdTime=createdTime;
+    }
+    /** 逻辑删除 */
+    public Integer getDelFlag(){
+        return this.delFlag;
+    }
+    /** 逻辑删除 */
+    public void setDelFlag(Integer delFlag){
+        this.delFlag=delFlag;
+    }
+    /** 部门名称 */
+    public String getOrgName(){
+        return this.orgName;
+    }
+    /** 部门名称 */
+    public void setOrgName(String orgName){
+        this.orgName=orgName;
+    }
+    /** 描述 */
+    public String getDescription(){
+        return this.description;
+    }
+    /** 描述 */
+    public void setDescription(String description){
+        this.description=description;
+    }
+    /** 父级 */
+    public Long getParentId(){
+        return this.parentId;
+    }
+    /** 父级 */
+    public void setParentId(Long parentId){
+        this.parentId=parentId;
+    }
+    /** 排序 */
+    public Integer getOrderBy(){
+        return this.orderBy;
+    }
+    /** 排序 */
+    public void setOrderBy(Integer orderBy){
+        this.orderBy=orderBy;
+    }
+}

+ 26 - 0
application/src/main/java/com/ctsi/SysOrg/mapper/SysOrgMapper.java

@@ -0,0 +1,26 @@
+package com.ctsi.SysOrg.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import com.ctsi.SysOrg.entity.SysOrg;
+
+ /**
+ * 部门信息表;(sys_org)表数据库访问层
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@Mapper
+public interface SysOrgMapper  extends BaseMapper<SysOrg>{
+    /** 
+     * 分页查询指定行数据
+     *
+     * @param page 分页参数
+     * @param wrapper 动态查询条件
+     * @return 分页对象列表
+     */
+    IPage<SysOrg> selectByPage(IPage<SysOrg> page , @Param(Constants.WRAPPER) Wrapper<SysOrg> wrapper);
+}

+ 8 - 0
application/src/main/java/com/ctsi/SysOrg/mapper/SysOrgMapper.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.ctsi.SysOrg.mapper.SysOrgMapper">
+     <select id="selectByPage" resultType="com.ctsi.SysOrg.entity.SysOrg">
+        select * from sys_org ${ew.customSqlSegment}
+    </select>
+</mapper>

+ 51 - 0
application/src/main/java/com/ctsi/SysOrg/service/SysOrgService.java

@@ -0,0 +1,51 @@
+package com.ctsi.SysOrg.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ctsi.SysOrg.entity.SysOrg;
+
+ /**
+ * 部门信息表;(sys_org)表服务接口
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+public interface SysOrgService{
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    SysOrg queryById(Long id);
+    
+    /**
+     * 分页查询
+     *
+     * @param sysOrg 筛选条件
+     * @param current 当前页码
+     * @param size  每页大小
+     * @return
+     */
+    Page<SysOrg> paginQuery(SysOrg sysOrg, long current, long size);
+    /** 
+     * 新增数据
+     *
+     * @param sysOrg 实例对象
+     * @return 实例对象
+     */
+    SysOrg insert(SysOrg sysOrg);
+    /** 
+     * 更新数据
+     *
+     * @param sysOrg 实例对象
+     * @return 实例对象
+     */
+    SysOrg update(SysOrg sysOrg);
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    boolean deleteById(Long id);
+}

+ 107 - 0
application/src/main/java/com/ctsi/SysOrg/service/impl/SysOrgServiceImpl.java

@@ -0,0 +1,107 @@
+package com.ctsi.SysOrg.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.ctsi.SysOrg.entity.SysOrg;
+import com.ctsi.SysOrg.mapper.SysOrgMapper;
+import com.ctsi.SysOrg.service.SysOrgService;
+ /**
+ * 部门信息表;(sys_org)表服务实现类
+ * @author : machaoyi
+ * @date : 2024-1-10
+ */
+@Service
+public class SysOrgServiceImpl implements SysOrgService{
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
+    
+    /** 
+     * 通过ID查询单条数据 
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    public SysOrg queryById(Long id){
+        return sysOrgMapper.selectById(id);
+    }
+    
+    /**
+     * 分页查询
+     *
+     * @param sysOrg 筛选条件
+     * @param current 当前页码
+     * @param size  每页大小
+     * @return
+     */
+    public Page<SysOrg> paginQuery(SysOrg sysOrg, long current, long size){
+        //1. 构建动态查询条件
+        LambdaQueryWrapper<SysOrg> queryWrapper = new LambdaQueryWrapper<>();
+        if(StrUtil.isNotBlank(sysOrg.getOrgName())){
+            queryWrapper.eq(SysOrg::getOrgName, sysOrg.getOrgName());
+        }
+        if(StrUtil.isNotBlank(sysOrg.getDescription())){
+            queryWrapper.eq(SysOrg::getDescription, sysOrg.getDescription());
+        }
+        //2. 执行分页查询
+        Page<SysOrg> pagin = new Page<>(current , size , true);
+        IPage<SysOrg> selectResult = sysOrgMapper.selectPage(pagin , queryWrapper);
+        pagin.setPages(selectResult.getPages());
+        pagin.setTotal(selectResult.getTotal());
+        pagin.setRecords(selectResult.getRecords());
+        //3. 返回结果
+        return pagin;
+    }
+    
+    /** 
+     * 新增数据
+     *
+     * @param sysOrg 实例对象
+     * @return 实例对象
+     */
+    public SysOrg insert(SysOrg sysOrg){
+        sysOrgMapper.insert(sysOrg);
+        return sysOrg;
+    }
+    
+    /** 
+     * 更新数据
+     *
+     * @param sysOrg 实例对象
+     * @return 实例对象
+     */
+    public SysOrg update(SysOrg sysOrg){
+        //1. 根据条件动态更新
+        LambdaUpdateChainWrapper<SysOrg> chainWrapper = new LambdaUpdateChainWrapper<SysOrg>(sysOrgMapper);
+        if(StrUtil.isNotBlank(sysOrg.getOrgName())){
+            chainWrapper.set(SysOrg::getOrgName, sysOrg.getOrgName());
+        }
+        if(StrUtil.isNotBlank(sysOrg.getDescription())){
+            chainWrapper.set(SysOrg::getDescription, sysOrg.getDescription());
+        }
+        //2. 设置主键,并更新
+        chainWrapper.eq(SysOrg::getId, sysOrg.getId());
+        boolean ret = chainWrapper.update();
+        //3. 更新成功了,查询最最对象返回
+        if(ret){
+            return queryById(sysOrg.getId());
+        }else{
+            return sysOrg;
+        }
+    }
+    
+    /** 
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    public boolean deleteById(Long id){
+        int total = sysOrgMapper.deleteById(id);
+        return total > 0;
+    }
+}