Browse Source

引入mybatis-plus

xujunwei 1 year atrás
parent
commit
36a9fef3bf

+ 12 - 0
pom.xml

@@ -344,11 +344,23 @@
             <scope>test</scope>
         </dependency>
 
+        <!-- mybatis-plus -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.3.2</version>
+        </dependency>
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
             <version>5.8.15</version>
         </dependency>
+        <!--消除冗余代码使用-->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.20</version>
+        </dependency>
 
     </dependencies>
 

+ 2 - 0
src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java

@@ -2,6 +2,7 @@ package com.genersoft.iot.vmp;
 
 import com.genersoft.iot.vmp.utils.GitUtil;
 import com.genersoft.iot.vmp.utils.SpringBeanFactory;
+import org.mybatis.spring.annotation.MapperScan;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
@@ -22,6 +23,7 @@ import java.util.Collections;
 /**
  * 启动类
  */
+@MapperScan(basePackages = {"com.genersoft.iot.vmp.storager.dao","com.genersoft.iot.vmp.extend.mapper"})
 @ServletComponentScan("com.genersoft.iot.vmp.conf")
 @SpringBootApplication
 @EnableScheduling

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/conf/MybatisConfig.java

@@ -45,7 +45,7 @@ public class MybatisConfig {
         return databaseIdProvider;
     }
 
-    @Bean
+    /*@Bean
     public SqlSessionFactory sqlSessionFactory(DataSource dataSource, DatabaseIdProvider databaseIdProvider) throws Exception {
        final SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
         sqlSessionFactory.setDataSource(dataSource);
@@ -57,6 +57,6 @@ public class MybatisConfig {
         sqlSessionFactory.setConfiguration(config);
         sqlSessionFactory.setDatabaseIdProvider(databaseIdProvider);
         return sqlSessionFactory.getObject();
-    }
+    }*/
 
 }

+ 6 - 0
src/main/java/com/genersoft/iot/vmp/conf/security/JwtAuthenticationFilter.java

@@ -44,6 +44,12 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
             return;
         }
 
+        // 扩展内部接口放行
+        if (requestURI.startsWith("/internal/")) {
+            chain.doFilter(request, response);
+            return;
+        }
+
         if (!userSetting.isInterfaceAuthentication()) {
             UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(null, null, new ArrayList<>() );
             SecurityContextHolder.getContext().setAuthentication(token);

+ 4 - 0
src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java

@@ -81,6 +81,10 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
             matchers.add("/record_proxy/*/**");
             matchers.add("/api/emit");
             matchers.add("/favicon.ico");
+
+            // 扩展内部接口放行
+            matchers.add("/internal/**");
+
             // 可以直接访问的静态数据
             web.ignoring().antMatchers(matchers.toArray(new String[0]));
         }

+ 17 - 0
src/main/java/com/genersoft/iot/vmp/extend/README.md

@@ -0,0 +1,17 @@
+# wvp-pro 扩展
+## 1 登录拦截器放行内部接口
+com.genersoft.iot.vmp.conf.security.JwtAuthenticationFilter
+```
+// 扩展内部接口
+if (requestURI.startsWith("/internal/")) {
+    chain.doFilter(request, response);
+    return;
+}
+```
+com.genersoft.iot.vmp.conf.security.WebSecurityConfig
+```
+// 扩展内部接口放行
+matchers.add("/internal/**");
+```
+## 2 项目升级mybatis-plus
+需要修改 com.genersoft.iot.vmp.conf.MybatisConfig 最后代码注释掉

+ 26 - 0
src/main/java/com/genersoft/iot/vmp/extend/controller/ExtendDeviceController.java

@@ -0,0 +1,26 @@
+package com.genersoft.iot.vmp.extend.controller;
+
+import com.genersoft.iot.vmp.extend.entity.ExtendDevice;
+import com.genersoft.iot.vmp.extend.service.ExtendDeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+@RequestMapping(value = "/internal/device")
+public class ExtendDeviceController {
+
+    @Resource
+    private ExtendDeviceService deviceService;
+
+    @GetMapping("/page")
+    public List<ExtendDevice> devices(){
+        return deviceService.devices();
+    }
+
+}

+ 21 - 0
src/main/java/com/genersoft/iot/vmp/extend/entity/ExtendDevice.java

@@ -0,0 +1,21 @@
+package com.genersoft.iot.vmp.extend.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * 国标设备/平台
+ * @author lin
+ */
+@Schema(description = "国标设备/平台")
+@TableName("wvp_device")
+@Data
+public class ExtendDevice {
+
+    /**
+     * 设备名
+     */
+    private String name;
+
+}

+ 7 - 0
src/main/java/com/genersoft/iot/vmp/extend/mapper/ExtendDeviceMapper.java

@@ -0,0 +1,7 @@
+package com.genersoft.iot.vmp.extend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.genersoft.iot.vmp.extend.entity.ExtendDevice;
+
+public interface ExtendDeviceMapper extends BaseMapper<ExtendDevice> {
+}

+ 20 - 0
src/main/java/com/genersoft/iot/vmp/extend/service/ExtendDeviceService.java

@@ -0,0 +1,20 @@
+package com.genersoft.iot.vmp.extend.service;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.genersoft.iot.vmp.extend.entity.ExtendDevice;
+import com.genersoft.iot.vmp.extend.mapper.ExtendDeviceMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class ExtendDeviceService extends ServiceImpl<ExtendDeviceMapper, ExtendDevice> {
+
+    public List<ExtendDevice> devices() {
+        QueryWrapper<ExtendDevice> queryWrapper = new QueryWrapper();
+        return this.list();
+    }
+}

+ 1 - 1
src/main/resources/application-local.yml

@@ -60,7 +60,7 @@ sip:
   # 如果要监听多张网卡,可以使用逗号分隔多个IP, 例如: 192.168.1.4,10.0.0.4
   # 如果不明白,就使用0.0.0.0,大部分情况都是可以的
   # 请不要使用127.0.0.1,任何包括localhost在内的域名都是不可以的。
-  ip: 192.168.0.100
+  ip: 10.11.20.131
   # [可选] 28181服务监听的端口
   port: 8116
   # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)