项目介绍
weiit-saas是一款Java开源项目,属于weiit团队自研产品,意在通过技术封装,让企业无需代码开发,帮助企业一键生成小程序、公众号,让企业拥有独立品牌的自营商城。
最新下载
gitee开源地址:https://gitee.com/wei-it/weiit-saas
github开源地址:https://github.com/HalfMouse/weiit-saas
项目声明
本项目的所有代码都已免费开源,让圈内的技术大佬一起学习与交流;并持续更新**获取源码**
测试环境演示:由于精力有限,团队已停止维护和更新该项目,原演示地址( http://www.wstore.me )已停止服务也不再提供演示地址,请谅解。
项目简介
一、引言
目前系统能解决的主要问题
- 2016年3月weiit团队推出SAAS电商1.0版本,帮助20家企业完成独立品牌商城上线,成功接入微信;
- 2017年6月weiit团队启动2.0版本开发,主打小程序一键生成,并获得部分企业付费支持;
- 2018年5月weiit团队研发成功并上线SAAS电商2.0版本,快速获得200多家企业使用与支持;
- 2018年到2019年weiit团队研发经费无法持续,放弃SAAS系统持续迭代,转型做技术服务商;
- 2020年weiit团队宣布,SAAS电商产品免费开源,让圈内的技术大佬一起学习与交流;
weiit团队承诺“weiit-saas”系统完全开源,跟喜欢研究SAAS概念的技术大佬交流与学习成长。 - 2021年 weiit团队历经半年时间打造出全新的SpringCloud微服务架构(技术栈:SpringCloud + Oauth2.0 + ShiroRedis + JWT + Gateway + Nacos + Nginx + ant-design-vue;数据隔离:不同租户采用Schema隔离)的商业2.0版本,包含新零售新版数字商城和数字门店saas两个版本,目前已正式发布上线,访问地址https://www.wei-it.com/ 。欢迎有需要的朋友们一起交流探讨。
二、主要特点
- 项目采用Spring+SpringMVC+Mybatis主流开源框架,遵循MVC架构,设计轻巧,使用简单,开发人员接手与二次开发简单易懂。
- 项目依赖的核心支持jar包,核心框架weiit-frame也都已经完全开源,下载地址见下方Maven仓库地址
- 项目完成了对阿里云、腾讯云、微信生态的快速接入与代码示例,并成功运用到了商业中,方便大家学习对OSS/COS/短信服务/快递服务/公众号/小程序/微信开放平台/微信支付的技术点与应用场景的学习。
- 小程序与公众号第三方授权集成,让开发者与企业省去繁琐的配置,对AppId/AppSecret集成彻底告别;
- 微信支付第三方授权集成,让开发者与企业省去繁琐的配置,让企业服务成本大大降低;
- 小程序代码自动push与升级,公众号基本常规功能(自定义菜单、图文、素材,群发)全部接管,让企业无需登录微信官方入口,统一化管理企业信息与数据;
- 微信消息通知与模板自动同步与管理,让企业场景融合无障碍;
- 像淘宝装修一样的自定义装修功能,实现企业电商场景多元化,解决不同行业不同模板,让企业需求得到真正解决;
- 丰富的营销工具,解决企业微营销需求,并集中化管理。拼团活动、积分活动、砍价,优惠券,卡券,礼品卡,邀请有礼等营销活动,方便二次开发;
- 不同企业数据隔离,真正实现SAAS数据隔离模型,让企业数据互不干扰。
- 不同企业不同域名自动分配,让企业小程序、公众号前端隔离,避免因为公众号或者小程序推广时导致域名被检测导致的封号问题出现,即不同企业不同域,意在防止saas平台中的企业受到其他企业的影响。
三、Maven仓库
maven仓库依赖的核心jar包项目,gitee开源地址:https://gitee.com/wei-it/weiit-frame
maven仓库依赖的核心jar包项目,github开源地址:https://github.com/HalfMouse/weiit-frame
下载项目后,在项目根目录执行
mvn install
weiit-saas系统依赖jar支持1:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-support-core</artifactId>
<version>1.0.0</version>
</dependency>
weiit-saas系统依赖jar支持2:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-resource-common</artifactId>
<version>1.0.0</version>
</dependency>
weiit-saas系统依赖jar支持3:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-suppor-task</artifactId>
<version>1.0.0</version>
</dependency>
环境及域名准备
后端运行环境
工具 | 版本 |
---|---|
Java | 8 |
Maven | 3.5+ |
Redis | 4+ |
Mysql | |
代码仓库 | gitee |
IDE | IDEA |
Tomcat | 7+ |
前端端运行环境
工具 | 版本 |
---|---|
nodejs | v12.18.2 + |
IDE | vscode 、idea |
域名准备
域名 | 说明 |
---|---|
http://saas.merchant.xxx.com | 商家后台管理 |
https://saas.api.xxx.com | 移动端API |
http://saas.diy.xxx.com | 商家端装修 |
https://saas.platform.xxx.com | 平台后台管理 |
https://*.xxx.com | 商家H5商城,支持泛域名,即每个商家拥有独立的域名 |
https://gw.xxx.com | 微信开放平台发布需要官网 |
negix配置
仅提供参考
saas.api.wei-it.com.conf
server {
listen 80;
server_name saas.api.wei-it.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://10.8.0.15:8040/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Cookie $http_cookie;
proxy_connect_timeout 30;
}
}
server {
listen 443 ssl;
server_name saas.api.wei-it.com;
ssl_certificate /cert/weiitsaas/saas.api.wei-it.com_bundle.crt;
ssl_certificate_key /cert/weiitsaas/saas.api.wei-it.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
client_max_body_size 30m;
location / {
proxy_set_header Host saas.api.wei-it.com;
proxy_pass http://10.8.0.15:8040;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
add_header 'Access-Control-Allow-Headers' 'token,Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since';
if ($request_method = 'OPTIONS') {
return 204;
}
}
}
saas.diy.wei-it.com.conf
server {
listen 80;
server_name saas.diy.wei-it.com;
location / {
root /www/target/weiitsaas/fitment/dist;
index index.html;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
}
}
saas.merchant.wei-it.com.conf
server {
listen 80;
server_name saas.merchant.wei-it.com;
#charset koi8-r;
#access_log logs/host.access.log main;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,token';
if ($request_method = 'OPTIONS') {
return 204;
}
location ^~ /fitment/diy/ {
proxy_pass http://10.8.0.15:8020/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://10.8.0.15:8020/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Cookie $http_cookie;
proxy_connect_timeout 30;
}
}
saas.merchant.wei-it.com.conf
server {
listen 80;
server_name saas.platform.wei-it.com;
location ^~ / {
proxy_pass http://10.8.0.15:8010/;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
常见问题
1、mysql数据库版本8+的会有sql报错
mysql 5.7以及 5.7以上的版本中,mysql的默认配置中,sql_mode=“ONLY_FULL_GROUP_BY” 这个配置严格执行了 ‘SQL92标准’,所以很多网站维护人员在升级mysql版本时,都会修改 sql_mode 的配置,使其兼容。
解决方案:
执行命令:
set@@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
部署教程
1 weiit-frame 构建项目基础框架依赖
Weiit是基于Java语言的极速web开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。Weiit适用于快速开发,轻应用型的应用开发,大大降低开发人员投入与维护成本支出,是一款永久免费开源的Web开发框架。
框架应用案例-最新下载
gitee开源地址:https://gitee.com/wei-it/weiit-frame
github开源地址:https://github.com/HalfMouse/weiit-frame
下载代码后 安装jar包到本地maven仓库.
项目根pom.xml下 ,执行mvn安装命令:
mvn install
执行后,找到本地仓库是否已生成pom依赖。
[INFO] Installing F:\2022\weiitsaas\weiit-frame\weiit-task-admin\pom.xml to D:\.m2\repository\com\weiit\weiit-task-admin\0.0.1-SNAPSHOT\weiit-task-admin-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for weiit-frame 0.0.1-SNAPSHOT:
[INFO]
[INFO] weiit-frame ........................................ SUCCESS [ 0.357 s]
[INFO] weiit-support-core ................................. SUCCESS [ 1.115 s]
[INFO] weiit-support-task ................................. SUCCESS [ 0.283 s]
[INFO] weiit-resource-common .............................. SUCCESS [ 0.307 s]
[INFO] weiit-business-system .............................. SUCCESS [ 0.301 s]
[INFO] weiit-task-admin ................................... SUCCESS [ 3.429 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.994 s
[INFO] Finished at: 2022-03-12T17:17:32+08:00
[INFO] ------------------------------------------------------------------------
F:\2022\weiitsaas\weiit-frame>mvn install
2 搭建saas平台端——weiit-saas-platform
此项目基于spring+springmvc+mybatis的后台管理系统
平台端(pingtai/123456)
- 管理查看平台所有运营数据
- 管理所有渠道、渠道充值
- 管理系统初始化数据
- 小程序一键发布更新
- 系统管理
渠道端(qudao/123456)
- 管理开通商家账号
- 统计分析渠道下商家数据
…更多功能大家搭建起来自己看哈。接下来准备环境和数据库脚本
- 准备好redis
- 准备好mysql
- 初始化/weiit-saas/sql/下的脚本
以下操作所有后端项目都一样
- 替换/resources/config.propreotie中的数据库账号密码
- 替换/resources/redis.propreotie中的账号密码
- idea配置tomct 启动成功后访问 http://ip:port/center/login
启动后项目部分页面
3 搭建saas商户端——weiit-saas-merchant
此项目基于spring+springmvc+mybatis+bootstrap商家后台管理系统
功能自己看吧。。
准备的环境参考weiit-saas-platform。。
项目启动也不难。。
一顿操作后,是不是很简单的就启动呢。。是的咯,
启动后修改,weiit-saas-merchant 中resource.properties 变量weiit.*.url
正常访问到装修项目
4 搭建商户端拖拽装修模块——weiit-saas-fitment
技术栈: vue2.0+elementUI
提供组件有:店招、搜素框、广告横幅、商品分组、商品列表、图文导航、视频、语音、拼团、砍价、公告等,支持无限子页面跳转,你想要的店铺样子它都有。
启动前安装好nodejs
安装项目依赖:
npm i
npm run dev
5 搭建saas移动端api——weiit-saas-api
此项目基于spring+springmvc+mybatis 的api接口系统,为前端小程序和服务号提供接口。
1、准备好redis
2、准备好mysql
3、初始化/weiit-saas/sql/下的脚本
4、替换/resources/config.propreotie中的数据库账号密码为自己的配置
5、替换/resources/redis.propreotie中的账号密码为自己的配置
6、idea配置tomct 启动成功。
6 搭建移动端服务号H5端——weiit-saas-mp
项目下载和运行
- 安装依赖
npm install
- 开发模式运行
npm run dev
- 编译项目
npm run build
7 搭建移动端小程序端——weiit-saas-miniapp
第三方资源
1、阿里云OSS
2、阿里云短信
先提供申请地址 https://www.aliyun.com/
3、微信开放平台服务商
开发微信saas 系统,必须拥有微信服务商账号。
申请地址:https://open.weixin.qq.com/
登录微信开放平台,管理中心 → 第三方平台创建
选择 “平台型服务商”,并填写其他信息
勾选权限,weiit已集成小程序和公众号。
开发资料填写替换为自己项目的域名
APPID和APPSECRET 替换数据表weiit_weixin_open_info 表中的 component_app_id/component_app_secret
全网发布需要启动平台端,微信会验证授权。
4、微信支付服务商
申请地址https://pay.weixin.qq.com/partner/public/home
5、微信商户支付平台
商户的微信支付可以用支付服务商开通子账户。
申请地址 https://pay.weixin.qq.com
6、微信服务号
申请地址 https://mp.weixin.qq.com/
7、微信小程序
申请地址 https://mp.weixin.qq.com/