Browse Source

Update README.md

zhōuhào 6 years ago
parent
commit
86052a5461
1 changed files with 106 additions and 8 deletions
  1. 106 8
      README.md

+ 106 - 8
README.md

@@ -1,4 +1,4 @@
-## hsweb  3.0
+## hsweb 后台管理基础框架
 [![Maven Central](https://img.shields.io/maven-central/v/org.hswebframework.web/hsweb-framework.svg)](http://search.maven.org/#search%7Cga%7C1%7Corg.hswebframework)
 [![Codecov](https://codecov.io/gh/hs-web/hsweb-framework/branch/master/graph/badge.svg)](https://codecov.io/gh/hs-web/hsweb-framework/branch/master)
 [![Build Status](https://travis-ci.org/hs-web/hsweb-framework.svg?branch=master)](https://travis-ci.org/hs-web/hsweb-framework)
@@ -7,13 +7,12 @@
   [贡献代码](CONTRIBUTING.md)  [快速开始](quick-start)
 
 ## 应用场景
-1. 后台管理系统.
-2. 完全开源的后台管理系统.
-3. 细粒度权限控制的后台管理系统.
-4. 模块化的后台管理系统.
-5. 功能可拓展的后台管理系统.
-6. 集成各种常用功能的后台管理系统.
-7. 前后分离的后台管理系统.
+1. 完全开源的后台管理系统.
+2. 细粒度(按钮,行,列)权限控制的后台管理系统.
+3. 模块化的后台管理系统.
+4. 功能可拓展的后台管理系统.
+5. 集成各种常用功能的后台管理系统.
+6. 前后分离的后台管理系统.
 
 注意:
 项目主要基于`spring-boot`,`mybatis`. 在使用`hsweb`之前,你应该对`spring-boot`有一定的了解.
@@ -26,6 +25,14 @@
 各个模块的使用方式查看对应模块下的 `README.md`,在使用之前,
 你可以先粗略浏览一下各个模块,对每个模块的作用有大致的了解.
 
+## 核心技术选型
+
+1. Java 8
+2. Maven3
+3. Spring Boot 1.5.x
+4. Mybatis 
+5. Hsweb Easy Orm (使用`hsweb-easy-orm`拓展`Myabtis`实现动态条件)
+
 ## 模块简介
 
 | 模块       | 说明          |   进度 |
@@ -39,3 +46,94 @@
 |[hsweb-starter](hsweb-starter)|模块启动器| 100%|
 |[hsweb-system](hsweb-system)|**系统常用功能**| 80%|
 |[hsweb-thirdparty](hsweb-thirdparty)| 第三方插件 | 100% |
+
+## 核心特性
+1. DSL风格,可拓展的通用curd,支持前端直接传参数,无需担心任何sql注入.
+```java
+  //where name = #{name} limit 0,20
+  createQuery().where("name",name).list(0,20);
+  
+  //update s_user set name = #{user.name} where id = #{user.id}
+  createUpdate().set(user::getName).where(user::getId).exec();
+```
+
+2. 灵活的权限控制
+```java
+
+@PostMapping("/account")
+@Authorize(permission="account-manager",action="add")
+public ResponseMessage<Sring> addAccount(@RequestBody Account account){
+  return ok(accountService.addAccount(account));
+}
+
+@GettMapping("/account")
+@Authorize(permission="account-manager",action="query",dataAccess=@RequiresDataAccess)//开启数据权限控制
+public ResponseMessage<PageResult<Account>> addAccount(QueryParamEntity query){
+
+  //用户设置了数据权限后,query的参数属性将被修改
+  
+  return ok(accountService.selectPager(query));
+}
+
+
+```
+
+3. 灵活的模块版本维护脚本
+
+`resources/hsweb-starter.js`
+
+```js
+//组件信息
+var info = {
+    groupId: "com.company",
+    artifactId: "module-name",
+    version: "1.0.2",
+    website: "company.com",
+    author: "作者",
+    comment: "模块名称"
+};
+
+//版本更新信息
+var versions = [
+    {
+        version: "1.0.2", //当info.version大于等于此版本号时,执行upgrade
+        upgrade: function (context) {
+            var database = context.database;
+            //增加冻结金额字段
+            database.createOrAlter("acc_account")
+                .addColumn().name("freeze_balance").jdbcType(JDBCType.BIGINT).comment("冻结金额").commit()
+                .comment("资金账户")
+                .commit();
+        }
+    }
+
+];
+var JDBCType = java.sql.JDBCType;
+
+//首次引入依赖,将执行安装操作
+function install(context) {
+    var database = context.database;
+    database.createOrAlter("acc_account")
+        .addColumn().name("id").varchar(32).notNull().primaryKey().comment("ID").commit()
+        .addColumn().name("account_no").varchar(32).notNull().comment("资金账户号").commit()
+        //更多字段
+        //索引
+        .index().name("idx_acc_account_no")
+        .column("account_no").commit()//account_no索引
+        .comment("资金账户").commit();
+}
+
+//设置依赖,固定代码,无需修改
+dependency.setup(info)
+    .onInstall(install) //安装时执行
+    .onUpgrade(function (context) { //更新时执行
+        var upgrader = context.upgrader;
+        upgrader.filter(versions) //过滤版本信息
+            .upgrade(function (newVer) { //执行更新
+                newVer.upgrade(context);
+            });
+    })
+    .onUninstall(function (context) { //卸载时执行
+
+    });
+```