wwh 2 mesiacov pred
rodič
commit
af8bd2b5b9

+ 10 - 0
app-admin/pom.xml

@@ -61,6 +61,16 @@
             <artifactId>app-generator</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.24</version>
+            <scope>provided</scope> <!-- 使用provided scope,因为Lombok在编译时需要,但运行时不需要 -->
+        </dependency>
+        <dependency>
+            <groupId>org.xerial</groupId>
+            <artifactId>sqlite-jdbc</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 18 - 6
app-admin/src/main/java/com/huimv/web/controller/tool/TestController.java

@@ -5,10 +5,12 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
 import com.huimv.common.annotation.Anonymous;
+import com.huimv.common.core.domain.AjaxResult;
 import com.huimv.common.core.domain.entity.SysUser;
 import com.huimv.system.service.ISysUserService;
+import com.huimv.web.v1.domain.sqlite.DemoUserEntity;
+import com.huimv.web.v1.service.IDemoUserService;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -43,6 +45,9 @@ public class TestController extends BaseController
     @Resource
     private ISysUserService userService;
 
+    @Resource
+    private IDemoUserService demoUserService;
+
     private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
     {
         users.put(1, new UserEntity(1, "admin", "admin123", "15888888888"));
@@ -67,15 +72,22 @@ public class TestController extends BaseController
     }
 
 
-    @DS("slave")
-    @ApiOperation("获取从库用户列表")
+
+    @ApiOperation("获取用户列表")
     @GetMapping("/list/slave")
-    public R<List<SysUser>> slaveUserList()
+    public AjaxResult slaveUserList()
     {
-        List<SysUser> userList = new ArrayList<>(userService.selectUserList(new SysUser()));
-        return R.ok(userList);
+        return success(demoUserService.listAll());
     }
 
+    @ApiOperation("添加用户数据")
+    @PostMapping("/add/slave")
+    public AjaxResult slaveUserAdd(@RequestBody DemoUserEntity request)
+    {
+        return success(demoUserService.add(request));
+    }
+
+
     @ApiOperation("获取用户详细")
     @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
     @GetMapping("/{userId}")

+ 46 - 0
app-admin/src/main/java/com/huimv/web/v1/domain/sqlite/DemoUserEntity.java

@@ -0,0 +1,46 @@
+package com.huimv.web.v1.domain.sqlite;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("demo_user")
+@ApiModel(value = "DemoUserEntity", description = "演示用户实体类")
+public class DemoUserEntity implements Serializable {
+
+
+    @ApiModelProperty("用户ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("用户名称")
+    private String name;
+
+    @ApiModelProperty("用户手机")
+    private String mobile;
+
+    @ApiModelProperty("创建日期")
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+}

+ 14 - 0
app-admin/src/main/java/com/huimv/web/v1/mapper/sqlite/DemoUserMapper.java

@@ -0,0 +1,14 @@
+package com.huimv.web.v1.mapper.sqlite;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.web.v1.domain.sqlite.DemoUserEntity;
+
+/**
+ * <p>
+ * v1.0 演示用户管理 Mapper 接口
+ * </p>
+ *
+ */
+public interface DemoUserMapper extends BaseMapper<DemoUserEntity> {
+
+}

+ 24 - 0
app-admin/src/main/java/com/huimv/web/v1/service/IDemoUserService.java

@@ -0,0 +1,24 @@
+package com.huimv.web.v1.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.common.core.domain.AjaxResult;
+import com.huimv.web.v1.domain.sqlite.DemoUserEntity;
+
+/**
+ * <p>
+ * v3.0非洲猪瘟检测管理 服务类
+ * </p>
+ */
+public interface IDemoUserService extends IService<DemoUserEntity> {
+
+    AjaxResult add(DemoUserEntity request);
+
+    AjaxResult edit(DemoUserEntity request);
+
+    AjaxResult delete(String ids);
+
+    //AjaxResult page(DemoUserPageReq request);
+
+    AjaxResult listAll();
+
+}

+ 78 - 0
app-admin/src/main/java/com/huimv/web/v1/service/impl/DemoUserServiceImpl.java

@@ -0,0 +1,78 @@
+package com.huimv.web.v1.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.common.core.domain.AjaxResult;
+import com.huimv.web.v1.domain.sqlite.DemoUserEntity;
+import com.huimv.web.v1.mapper.sqlite.DemoUserMapper;
+import com.huimv.web.v1.service.IDemoUserService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Arrays;
+import java.util.Random;
+
+import static com.huimv.common.core.domain.AjaxResult.error;
+import static com.huimv.common.core.domain.AjaxResult.success;
+
+
+/**
+ * <p>
+ * v1.0   服务实现类
+ * </p>
+ *
+ */
+@DS("sqlite")
+@Service
+public class DemoUserServiceImpl extends ServiceImpl<DemoUserMapper, DemoUserEntity> implements IDemoUserService {
+
+    @Transactional
+    @Override
+    public AjaxResult add(DemoUserEntity request) {
+        //入参检测
+        if(ObjectUtils.isEmpty(request.getName())) {
+            return error("请输入【用户姓名】!");
+        }
+        //防重检测
+        Long count = lambdaQuery().eq(DemoUserEntity::getName, request.getName())
+                .eq(DemoUserEntity::getMobile, request.getMobile()).count();
+        if (count != 0) {
+            return error("请勿重复添加!");
+        }
+        request.setId(new Random().nextInt(20250903));
+        return success("添加成功", baseMapper.insert(request));
+    }
+
+    @Transactional
+    @Override
+    public AjaxResult edit(DemoUserEntity request) {
+        //数据格式校验
+        if(ObjectUtils.isEmpty(request.getId())){
+            return error("待更新数据未传入有效ID,请设置数据的唯一标识ID!");
+        }
+        //根据数据的id更新所有不为空的字段
+        return updateById(request) ? success("修改成功!") : error("修改失败,请重试!");
+    }
+
+    @Transactional
+    @Override
+    public AjaxResult delete(String ids) {
+        String[] idList = ids.split(",");
+        return success("删除成功", removeByIds(Arrays.asList(idList)));
+    }
+
+//    @Override
+//    public AjaxResult page(DemoUserPageReq request) {
+//        //将请求报文转为实体类
+//        DemoUserEntity entity = BeanUtil.toBean(request, DemoUserEntity.class);
+//        //构造查询条件(检索条件未定时,先按不为空的字段进行等值查询)
+//        QueryWrapper<DemoUserEntity> wrapper = QueryWrapperBuildUtil.notNoneEqWrapperHelper(entity);
+//        return success(baseMapper.selectPage(request.toPage(), wrapper));
+//    }
+
+    @Override
+    public AjaxResult listAll() {
+        return success(lambdaQuery().list());
+    }
+}

+ 14 - 10
app-admin/src/main/resources/application-druid.yml

@@ -10,12 +10,15 @@ spring:
                     username: root
                     password: 123456
                     driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
-                slave:
-                    url: jdbc:mysql://122.112.224.199:3306/huimv-hebei?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-                    username: root
-                    password: hm123456
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-#    datasource:
+                sqlite:
+                    ## 相对路径:jdbc:sqlite::resource:data.db  需要将数据文件移动到项目的resource目录下
+                    ## 绝对路径:jdbc:sqlite:/Users/fanyuanhang/Downloads/data.db
+                    url: jdbc:sqlite:F:/项目开发/代码/dryrun/sqlite_db/sqlite_demo.db
+                    ## 注意:sqlite是文件形数据库,本身没有用户名密码的概念,在操作系统中能访问数据文件(.db)就能访问数据库
+#                    username:
+#                    password:
+                    driver-class-name: org.sqlite.JDBC
+        #    datasource:
 #        type: com.alibaba.druid.pool.DruidDataSource
 #        driverClassName: com.mysql.cj.jdbc.Driver
 #        druid:
@@ -51,7 +54,8 @@ spring:
             # 配置一个连接在池中最大生存的时间,单位是毫秒
             maxEvictableIdleTimeMillis: 900000
             # 配置检测连接是否有效
-            validationQuery: SELECT 1 FROM DUAL
+#            validationQuery: SELECT 1 FROM DUAL
+            validationQuery: SELECT 1   # 注意为了兼容mysql和sqlite,这里不能使用dual表
             testWhileIdle: true
             testOnBorrow: false
             testOnReturn: false
@@ -72,6 +76,6 @@ spring:
                     log-slow-sql: true
                     slow-sql-millis: 1000
                     merge-sql: true
-                wall:
-                    config:
-                        multi-statement-allow: true
+#                wall:
+#                    config:
+#                        multi-statement-allow: true

+ 3 - 0
app-admin/src/main/resources/application.yml

@@ -109,6 +109,9 @@ token:
 
 # MyBatis Plus配置
 mybatis-plus:
+  global-config:
+    db-config:
+      table-prefix:  # 留空或删除此行
   # 搜索指定包别名
   typeAliasesPackage: com.huimv.**.domain
   # 配置mapper的扫描,找到所有的mapper.xml映射文件

+ 15 - 1
app-framework/pom.xml

@@ -3,7 +3,7 @@
          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">
     <parent>
-        <artifactId>huimv</artifactId>
+        <artifactId>huimv-nbcig</artifactId>
         <groupId>com.huimv</groupId>
         <version>3.9.0</version>
     </parent>
@@ -47,6 +47,20 @@
             </exclusions>
         </dependency>
 
+        <!-- mybatis plus包 -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+        </dependency>
+
         <!-- 获取系统信息 -->
         <dependency>
             <groupId>com.github.oshi</groupId>

+ 8 - 0
pom.xml

@@ -36,6 +36,7 @@
         <spring-security.version>5.7.12</spring-security.version>
         <spring-framework.version>5.3.39</spring-framework.version>
         <mybatis-plus.version>3.5.1</mybatis-plus.version>
+        <sqlite-jdbc.version>3.45.0.0</sqlite-jdbc.version>
     </properties>
 
     <!-- 依赖声明 -->
@@ -235,6 +236,13 @@
                 <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                 <version>${mybatis-plus.version}</version>
             </dependency>
+
+            <!-- 添加sqlite驱动 -->
+            <dependency>
+                <groupId>org.xerial</groupId>
+                <artifactId>sqlite-jdbc</artifactId>
+                <version>${sqlite-jdbc.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>