Coder Social home page Coder Social logo

gotenancy's Introduction

GoTenancy

Build Status Code Coverage Go Report Card GoDoc Licenses
多商户管理平台

项目介绍

  • 基于 iris-go 框架开发,gorm 数据库模块 ,jwt 的单点登陆认证方式, cors 跨域认证
  • 数据支持 mysqlsqlite3 配置; sqlite3 需要下载 gcc gcc 下载地址
  • 使用了 https://github.com/snowlyg/gotransformer 转换数据,返回数据格式化,excel 导入数据转换,xml 文件生产数据转换等
  • 租户端前端采用了 element-ui 框架,代码集成到 front 目录
  • 使用 casbin 做权限控制, ./backendconfig/rbac_model.conf 为相关配置。系统会根据路由名称生成对应路由权限,并配置到管理员角色。
  • 增加系统日志记录 ./backend/logs 文件夹下,自定义记录,控制器内 ctx.Application().Logger().Infof("%s 登录系统",aul.Username)
  • 默认数据库设置为 DriverType = "Sqlite" ,使用 mysql 需要修改为 DriverType = "Mysql" ,在 ./backendconfig/conf.tml 文件中
  • permissions.xlsx 权限导入测试模板文件,仅供测试使用; 权限会自动生成,无需另外导入。
  • 增加 SaaS 多商户模块支持(功能开发中)
  • 定时任务功能增加,目录位于 /tasks ,直接使用的 beego 的 toolbox 功能。

注意:

  • 更新代码后,如果启动报错,请尝试手动删所有数据表后重启。

项目目录结构

  • backend 后台项目目录,项目启动目录
    • config 项目配置目录
    • controllers 控制器目录
    • database 数据处理相关目录
      • models 数据模型目录
      • repositories
      • services
    • files 文件处理目录
    • libs 公用函数目录
    • logs 日志记录目录
    • middleware 中间件目录
    • redis redis目录(用于session)
    • resources 前端文件目录
      • admin 管理端前端代码目录
      • apiDoc 租户端接口文档目录
      • app 租户端前端代码目录(front 目录打包生成)
      • doc 管理端前端源代码文档目录
      • shared 管理端前端模板文件目录
    • routepath api路径获取目录
    • routes 路由相关目录
    • session session相关目录
    • tasks 定时任务目录
    • tmp sqlite文件目录
    • transformer 数据格式化目录
    • validates 表单数据验证目录
  • front 租户端前端代码目录,采用了 element-ui 框架

更新日志

问题总结

问题记录


所用依赖包

所用依赖包

项目初始化

拉取项目

git clone https://github.com/snowlyg/GoTenancy.git

// github 克隆太慢可以用 gitee 地址:

git clone https://gitee.com/dtouyu/GoTenancy.git

加载依赖管理包 (解决国内下载依赖太慢问题) golang 1.13 可以直接执行:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

项目配置文件 /backend/config/conf.tml

cp backend/conf.tml.example backend/conf.tml

打包租户端前端代码

 cd front // 进入前端代码目录
 npm install  //加载依赖
 npm run-script build  //打包前端代码

 // 如果是开发前端代码,使用热加载
 npm run dev  

增加 hosts

127.0.0.1       admin.irisadminapi.com # 管理端
127.0.0.1       app.irisadminapi.com  # 商户端
127.0.0.1       irisadminapi.com #公共域名

运行项目

gowatch

go get github.com/silenceper/gowatch

cd backend // 后端代码目录

gowatch //安装 gowatch 后才可以使用

go run main.go // go 命令

单元测试

http test

 go test -v  //所有测试
 
 go test -run TestUserCreate -v //单个方法

// go get github.com/rakyll/gotest@latest 增加测试输出数据颜色

 gotest 
 

接口文档

自动生成文档 (访问过接口就会自动成功) 因为原生的 jquery.min.js 里面的 cdn 是使用国外的,访问很慢。 有条件的可以开个 vpn ,如果没有可以根据下面的方法修改一下,访问就很快了

打开 /resource/apiDoc/index.html 修改里面的

https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js

国内的 cdn

https://cdn.bootcss.com/jquery/2.1.3/jquery.min.js

访问文档,从浏览器直接打开 http://admin.irisadminapi.com/apiDoc


登录项目

管理端: http://admin.irisadminapi.com 商户端: http://app.irisadminapi.com

//在 config/conf.tml 内配置

项目管理员账号 : username 项目管理员密码 : password

演示图片

管理端:

租户端:

Iris-go 学习交流QQ群 :676717248

Iris-go

gotenancy's People

Contributors

snowlyg avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.