Kaynağa Gözat

api与biz层分离实现分层调用,biz归属业务层,api归属内部调用层

shigongchen 5 ay önce
ebeveyn
işleme
196128a4d2
22 değiştirilmiş dosya ile 581 ekleme ve 23 silme
  1. 4 0
      .vscode/settings.json
  2. 0 20
      LICENSE
  3. 4 1
      pom.xml
  4. 19 0
      yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java
  5. 24 0
      yudao-module-learn/pom.xml
  6. 29 0
      yudao-module-learn/yudao-learn-api/pom.xml
  7. 16 0
      yudao-module-learn/yudao-learn-api/src/main/java/cn/iocoder/yudao/module/learn/api/person/PersonApi.java
  8. 25 0
      yudao-module-learn/yudao-learn-api/src/main/java/cn/iocoder/yudao/module/learn/api/person/dto/PersonRespDto.java
  9. 58 0
      yudao-module-learn/yudao-learn-biz/pom.xml
  10. 27 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/api/person/PersonApiImpl.java
  11. 72 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/controller/admin/PersonList/DemoTestController.java
  12. 22 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/controller/admin/PersonList/vo/PersonVo.java
  13. 11 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/convert/person/PersonConvert.java
  14. 31 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/convert/person/PersonConvertImpl.java
  15. 26 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/convert/person/PersonDoToPersonApiDto.java
  16. 31 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/dal/dataobject/person/PersonDO.java
  17. 21 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/dal/mysql/person/PersonMapper.java
  18. 40 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/service/personlist/PersonListService.java
  19. 51 0
      yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/service/personlist/PersonListServiceImpl.java
  20. 64 0
      yudao-module-learn/yudao-learn-biz/src/test/java/api/person/PersonApiImplTest.java
  21. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java
  22. 5 1
      yudao-server/pom.xml

+ 4 - 0
.vscode/settings.json

@@ -0,0 +1,4 @@
+{
+    "java.compile.nullAnalysis.mode": "automatic",
+    "java.configuration.updateBuildConfiguration": "interactive"
+}

+ 0 - 20
LICENSE

@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2021 ruoyi-vue-pro
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 4 - 1
pom.xml

@@ -15,7 +15,9 @@
         <!-- 各种 module 拓展 -->
         <module>yudao-module-system</module>
         <module>yudao-module-infra</module>
-<!--        <module>yudao-module-member</module>-->
+        <module>yudao-module-learn</module>
+
+        <!--        <module>yudao-module-member</module>-->
 <!--        <module>yudao-module-bpm</module>-->
 <!--        <module>yudao-module-report</module>-->
 <!--        <module>yudao-module-mp</module>-->
@@ -24,6 +26,7 @@
 <!--        <module>yudao-module-crm</module>-->
 <!--        <module>yudao-module-erp</module>-->
 <!--        <module>yudao-module-ai</module>-->
+
     </modules>
 
     <name>${project.artifactId}</name>

+ 19 - 0
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/CommonResult.java

@@ -60,6 +60,25 @@ public class CommonResult<T> implements Serializable {
         return error(errorCode.getCode(), errorCode.getMsg());
     }
 
+    /**
+     *
+     * @param data   请求成功返回的数据
+     * @param msg    请求成功返回的信息
+     * @return  返回result实例
+     * @param <T>
+     *
+     * @auth
+     * @date 2024.9.19
+     * @version 除此修改
+     */
+    public static <T> CommonResult<T> success(T data, String msg) {
+        CommonResult<T> result = new CommonResult<>();
+        result.code = GlobalErrorCodeConstants.SUCCESS.getCode();
+        result.data = data;
+        result.msg = msg;
+        return result;
+    }
+
     public static <T> CommonResult<T> success(T data) {
         CommonResult<T> result = new CommonResult<>();
         result.code = GlobalErrorCodeConstants.SUCCESS.getCode();

+ 24 - 0
yudao-module-learn/pom.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>cn.iocoder.boot</groupId>
+        <artifactId>yudao</artifactId>
+        <version>${revision}</version>
+    </parent>
+    <modules>
+        <module>yudao-learn-api</module>
+        <module>yudao-learn-biz</module>
+    </modules>
+
+
+    <artifactId>yudao-module-learn</artifactId>
+    <packaging>pom</packaging>
+    <name>${project.artifactId}</name>
+    <description> <!-- 4. 新增 description 为该模块的描述 -->
+        demo 模块,主要实现 XXX、YYY、ZZZ 等功能。
+    </description>
+
+</project>

+ 29 - 0
yudao-module-learn/yudao-learn-api/pom.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>cn.iocoder.boot</groupId>
+        <artifactId>yudao-module-learn</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>yudao-learn-api</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
+    <description> <!-- 4. 新增 description 为该模块的描述 -->
+        demo 模块 API,暴露给其它模块调用
+    </description>
+
+    <dependencies>  <!-- 5. 新增 yudao-common 依赖 -->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-common</artifactId>
+        </dependency>
+    </dependencies>
+
+
+
+
+</project>

+ 16 - 0
yudao-module-learn/yudao-learn-api/src/main/java/cn/iocoder/yudao/module/learn/api/person/PersonApi.java

@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.learn.api.person;
+
+import cn.iocoder.yudao.module.learn.api.person.dto.PersonRespDto;
+
+
+/**
+ * 获取用户信息  用户 API 接口
+ *
+ * @author
+ */
+public interface PersonApi {
+
+    public PersonRespDto getPerson(Integer id );
+
+
+}

+ 25 - 0
yudao-module-learn/yudao-learn-api/src/main/java/cn/iocoder/yudao/module/learn/api/person/dto/PersonRespDto.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.module.learn.api.person.dto;
+
+import lombok.Data;
+
+/**
+ * Person 用户 Response DTO
+ *
+ * @author
+ */
+@Data
+public class PersonRespDto {
+
+
+    /**
+     * 姓名
+     */
+ private     String name;
+    /**
+     * 用户状态
+     */
+
+ private     Integer  status;
+
+
+}

+ 58 - 0
yudao-module-learn/yudao-learn-biz/pom.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>cn.iocoder.boot</groupId>
+        <artifactId>yudao-module-learn</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>yudao-learn-biz</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
+    <description> <!-- 4. 新增 description 为该模块的描述 -->
+        demo 模块,主要实现 XXX、YYY、ZZZ 等功能。
+    </description>
+
+    <dependencies>  <!-- 5. 新增依赖,这里引入的都是比较常用的业务组件、技术组件 -->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-learn</artifactId>
+            <version>${revision}</version>
+        </dependency>
+
+        <!-- Web 相关 -->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-spring-boot-starter-security</artifactId>
+        </dependency>
+
+        <!-- DB 相关 -->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
+        </dependency>
+
+        <!-- Test 测试相关 -->
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-spring-boot-starter-test</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-learn-api</artifactId>
+            <version>${revision}</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+
+
+</project>

+ 27 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/api/person/PersonApiImpl.java

@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.module.learn.api.person;
+
+import cn.iocoder.yudao.module.learn.api.person.dto.PersonRespDto;
+import cn.iocoder.yudao.module.learn.convert.person.PersonDoToPersonApiDto;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import cn.iocoder.yudao.module.learn.service.personlist.PersonListService;
+import jakarta.annotation.Resource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PersonApiImpl implements PersonApi {
+    @Resource
+    private PersonListService personListService;
+    @Override
+    public PersonRespDto getPerson(Integer id) {
+
+          PersonDO pd =personListService.getPerson(id);
+          System.out.println("查询使用的id为:"+id);
+          System.out.println(pd);
+          PersonRespDto dto=  PersonDoToPersonApiDto.PersonConvertToDto(pd);
+        return dto;
+    }
+
+
+}
+

+ 72 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/controller/admin/PersonList/DemoTestController.java

@@ -0,0 +1,72 @@
+package cn.iocoder.yudao.module.learn.controller.admin.PersonList;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.module.learn.api.person.PersonApi;
+import cn.iocoder.yudao.module.learn.api.person.PersonApiImpl;
+import cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo.PersonVo;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import cn.iocoder.yudao.module.learn.service.personlist.PersonListService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "yudao-lean 模块 - Test")
+@RestController
+@RequestMapping("/demo/test")
+@Validated
+public class DemoTestController {
+    @Resource
+    private PersonListService personListService;
+    @Resource
+    private PersonApi personApi;
+
+    @GetMapping("/get")
+    @Operation(summary = "获取 test 信息")
+    public CommonResult<String> get() {
+        return success("获取 test 信息  成功!!!!!!!");
+    }
+
+
+    @GetMapping("/getPerson")
+    @Operation(summary = "获取测试人员信息")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    public CommonResult<PersonDO>getPerson(@Validated @RequestParam("id") Integer id){
+        return success(personListService.getPerson(id));
+    }
+
+    @PostMapping("/addPerson")
+    @Operation(summary = "新增测试人员信息")
+    public CommonResult<Integer>addPerson(@Valid @RequestBody PersonVo personVo){
+
+        int id = personListService.createPerson(personVo);
+        return success(id,"添加成功");
+      
+    }
+    @PostMapping("/delPerson")
+    @Operation(summary = "删除测试人员信息")
+    public CommonResult<Integer>delPerson(@Valid @RequestBody PersonVo personVo){
+
+        boolean del = personListService.deletePerson(personVo);
+        return success((del == true) ? 0:500 ,"删除成功");
+
+    }
+
+    /**
+     * 测试api分离
+     * @return
+     */
+    @GetMapping("/ceshiApi")
+    @Operation(summary = "测试api封装与biz层分离")
+    public CommonResult<String> ceshiApi() {
+        return success( personApi.getPerson(2).getName() );
+    }
+
+
+
+
+}

+ 22 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/controller/admin/PersonList/vo/PersonVo.java

@@ -0,0 +1,22 @@
+package cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@Schema(description = "yudao-learn 模块 - 测试获取人员信息模块 Person Vo ")
+@Data
+public class PersonVo {
+
+    @Schema(description = "yudao-learn 模块 - 测试获取人员信息模块 人员id", example = "芋道")
+    private  Integer id;
+
+    @Schema(description = "yudao-learn 模块 - 测试获取人员信息模块 人员姓名", example = "芋道",defaultValue = "")
+    private String name;
+
+    @Schema(description = "yudao-learn 模块 - 测试获取人员信息模块 人员状态", example = "1")
+    private Integer status;
+
+}

+ 11 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/convert/person/PersonConvert.java

@@ -0,0 +1,11 @@
+package cn.iocoder.yudao.module.learn.convert.person;
+
+import cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo.PersonVo;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import org.mapstruct.Mapper;
+
+
+public interface PersonConvert {
+//    PersonVo convert(PersonDO bean);
+//    PersonDO convert(PersonVo bean);
+}

+ 31 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/convert/person/PersonConvertImpl.java

@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.module.learn.convert.person;
+
+import cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo.PersonVo;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PersonConvertImpl implements PersonConvert{
+//    @Override
+//    public PersonVo convert(PersonDO bean) {
+//        if (bean == null) {
+//            return null;
+//        }
+//        PersonVo vo = new PersonVo();
+//        vo.setId(bean.getID());
+//        vo.setName(bean.getName());
+//        vo.setStatus(bean.getStatus());
+//        return vo;
+//    }
+//
+//    @Override
+//    public PersonDO convert(PersonVo bean) {
+//        if (bean == null) {
+//            return null;
+//        }
+//        PersonDO personDO = new PersonDO();
+//        personDO.setName(bean.getName());
+//        personDO.setStatus(bean.getStatus());
+//        return personDO;
+//    }
+}

+ 26 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/convert/person/PersonDoToPersonApiDto.java

@@ -0,0 +1,26 @@
+package cn.iocoder.yudao.module.learn.convert.person;
+
+import cn.iocoder.yudao.module.learn.api.person.dto.PersonRespDto;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+
+/**
+ * persondo对象转为persionapidto对象
+ */
+public class PersonDoToPersonApiDto {
+
+    /**
+     * persondo对象转为persionapidto对象
+     * @param pd   persondo对象
+     * @return      personapidto对象
+     */
+    public static PersonRespDto PersonConvertToDto(PersonDO  pd ){
+        if(pd == null){
+            return null;
+        }
+        PersonRespDto personRespDto = new PersonRespDto();
+        personRespDto.setName(pd.getName());
+        personRespDto.setStatus(pd.getStatus());
+
+        return  personRespDto ;
+    }
+}

+ 31 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/dal/dataobject/person/PersonDO.java

@@ -0,0 +1,31 @@
+package cn.iocoder.yudao.module.learn.dal.dataobject.person;
+
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/***
+ * 人员信息表
+ */
+@TableName("yudaolearn_person")
+@KeySequence("system_notice_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class PersonDO  extends BaseDO {
+    /**
+     * 人员id
+     */
+    private Integer id;
+    /**
+     * 人员姓名
+     *
+     */
+    private String name;
+    /**
+     * 人员状态
+     */
+    private Integer status;
+}

+ 21 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/dal/mysql/person/PersonMapper.java

@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.learn.dal.mysql.person;
+
+
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo.PersonVo;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface PersonMapper extends BaseMapperX<PersonDO> {
+
+//    default PageResult<PersonDO> selectPage(PersonVo reqVO) {
+//        return selectPage(reqVO, new LambdaQueryWrapperX<PersonDO>()
+//                .eqIfPresent(PersonDO::getId, reqVO.getId()));
+//
+//    }
+}

+ 40 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/service/personlist/PersonListService.java

@@ -0,0 +1,40 @@
+package cn.iocoder.yudao.module.learn.service.personlist;
+
+
+import cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo.PersonVo;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+
+/**
+ * 人员信息接口
+ */
+public interface   PersonListService {
+
+    /**
+     * 创建人员
+     * @param personVo 人员信息
+     * @return 人员id
+     */
+    Integer createPerson(PersonVo personVo);
+
+    /**
+     * 删除人员信息
+     * @param personVo 人员信息,人员id必填
+     * @return 删除是否成功标志位
+     */
+    boolean deletePerson(PersonVo personVo);
+
+    /**
+     * 更新人员信息
+     * @param personVo  人员信息,id为必填项
+     * @return 更新是否成功标志位
+     */
+    boolean updatePerson(PersonVo personVo);
+
+    /**
+     * 获取人员信息
+     * @param id  人员id
+     * @return   人员实体类
+     */
+    PersonDO getPerson(Integer id);
+}
+

+ 51 - 0
yudao-module-learn/yudao-learn-biz/src/main/java/cn/iocoder/yudao/module/learn/service/personlist/PersonListServiceImpl.java

@@ -0,0 +1,51 @@
+package cn.iocoder.yudao.module.learn.service.personlist;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.learn.controller.admin.PersonList.vo.PersonVo;
+import cn.iocoder.yudao.module.learn.convert.person.PersonConvert;
+import cn.iocoder.yudao.module.learn.convert.person.PersonConvertImpl;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import cn.iocoder.yudao.module.learn.dal.mysql.person.PersonMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PersonListServiceImpl implements  PersonListService{
+    @Resource
+    PersonConvert personConvert ;
+    @Resource
+    PersonMapper personMapper;
+
+    @Override
+    public Integer createPerson(PersonVo personVo) {
+
+
+        PersonDO  personDO =BeanUtils.toBean(personVo,PersonDO.class);
+        personMapper.insert(personDO);
+        return personDO.getId();
+    }
+    public PageResult<PersonDO> getPerson(PersonVo personVo){
+//        return  personMapper.selectPage(personVo);
+        return null;
+    }
+
+    @Override
+    public boolean deletePerson(PersonVo personVo) {
+       int id  = personMapper.deleteById(personVo.getId());
+        return id == personVo.getId();
+    }
+
+    @Override
+    public boolean updatePerson(PersonVo personVo) {
+        return false;
+    }
+
+    @Override
+    public PersonDO getPerson(Integer id) {
+        System.out.println("get person test =======+"+ id);
+        return  personMapper.selectById(id);
+    }
+
+
+}

+ 64 - 0
yudao-module-learn/yudao-learn-biz/src/test/java/api/person/PersonApiImplTest.java

@@ -0,0 +1,64 @@
+package api.person;
+
+
+import cn.iocoder.yudao.module.learn.api.person.PersonApiImpl;
+import cn.iocoder.yudao.module.learn.api.person.dto.PersonRespDto;
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+import cn.iocoder.yudao.module.learn.dal.dataobject.person.PersonDO;
+import cn.iocoder.yudao.module.learn.service.personlist.PersonListService;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+/**
+ * 测试模块,提供了基本的测试框架
+ */
+public class PersonApiImplTest {
+
+    @Mock
+    private PersonListService personListService;
+
+    @InjectMocks
+    private PersonApiImpl personApi;
+
+    @BeforeEach
+    public void setUp() {
+        MockitoAnnotations.openMocks(this);
+    }
+
+    @Test
+    public void testGetPerson() {
+        // Arrange
+        Integer id = 2;
+        PersonDO mockPerson = new PersonDO();
+        mockPerson.setId(id);
+//        mockPerson.setName("tomcat");
+        // 假设 personListService.getPerson(id) 返回 mockPerson
+        when(personListService.getPerson(id)).thenReturn(mockPerson);
+        String name =mockPerson.getName();
+        // Act
+        PersonRespDto result = personApi.getPerson(id);
+        System.out.println("result name is :" +result);
+
+        // Assert
+        assertNotNull(result);
+        assertEquals(name, result.getName()); // 假设 PersonRespDto 也有 getId() 方法
+    }
+
+    @Test
+    public void testGetPersonNotFound() {
+        // Arrange
+        Integer id = 2;
+        // 假设 personListService.getPerson(id) 返回 null
+        when(personListService.getPerson(id)).thenReturn(null);
+
+        // Act
+        PersonRespDto result = personApi.getPerson(id);
+
+        // Assert
+        assertNull(result); // 期望返回 null
+    }
+}
+

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java

@@ -12,7 +12,7 @@ public interface NoticeMapper extends BaseMapperX<NoticeDO> {
 
     default PageResult<NoticeDO> selectPage(NoticePageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<NoticeDO>()
-                .likeIfPresent(NoticeDO::getTitle, reqVO.getTitle())
+               .likeIfPresent(NoticeDO::getTitle, reqVO.getTitle())
                 .eqIfPresent(NoticeDO::getStatus, reqVO.getStatus())
                 .orderByDesc(NoticeDO::getId));
     }

+ 5 - 1
yudao-server/pom.xml

@@ -120,7 +120,11 @@
             <groupId>cn.iocoder.boot</groupId>
             <artifactId>yudao-spring-boot-starter-protection</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-learn-biz</artifactId>
+            <version>${revision}</version>
+        </dependency>
     </dependencies>
 
     <build>