🎨 update

This commit is contained in:
2024-11-27 21:13:46 +08:00
parent 0b22d9800c
commit 44de572f1b
10 changed files with 714 additions and 30 deletions

1
.gitignore vendored
View File

@@ -103,3 +103,4 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
config.yaml

View File

@@ -1,3 +1,47 @@
# schisandra-cloud-album
# gin 模板代码
## 环境准备
- go 1.19+
## 功能说明
### 注册登录
- 手机号注册登录
- 账号密码登录
- 微信公众号扫码登录
- 忘记密码
- 第三方登录QQ、Gitee、GitHub
### 评论
- 评论列表
- 评论回复
- 评论点赞
### 具体技术栈
- gin 框架
- gorm 数据库ORM框架
- jwt 双token验证
- redis 缓存
- powerWechat 微信公众号扫码登录
- websocket 扫码登录监听状态
- 第三方登录(QQ、Gitee、GitHub)
- 短信发送 (阿里云短信,短信宝)
- mongodb 数据库存储评论图片
- 评论图片nsfw检测
- go i18n 国际化
- casbin 权限管理
- ip2region 实现ip定位
- nsq 消息队列(异步处理评论点赞)
- 日志记录(logrus 按天记录日志,按照等级分文件记录日志)
- 评论敏感词检测
- go-captcha 验证码(滑动验证,旋转验证,点选验证)
五味子云相册

View File

@@ -4,16 +4,18 @@ import (
"encoding/json"
"errors"
"fmt"
"net/http"
"strconv"
ginI18n "github.com/gin-contrib/i18n"
"github.com/gin-gonic/gin"
"github.com/yitter/idgenerator-go/idgen"
"gorm.io/gorm"
"net/http"
"schisandra-cloud-album/common/enum"
"schisandra-cloud-album/common/result"
"schisandra-cloud-album/global"
"schisandra-cloud-album/model"
"strconv"
)
type AuthQQme struct {

View File

@@ -2,6 +2,7 @@ package core
import (
"github.com/redis/go-redis/v9"
"schisandra-cloud-album/global"
)
@@ -15,6 +16,7 @@ func InitRedis() {
PoolSize: global.CONFIG.Redis.PoolSize,
MinIdleConns: global.CONFIG.Redis.MinIdle,
PoolTimeout: global.CONFIG.Redis.PoolTimeout,
ReadTimeout: -1,
})
InitSession(rdb)
global.REDIS = rdb

189
example.config.yaml Normal file
View File

@@ -0,0 +1,189 @@
# 系统配置
system:
# 主机地址
host: 0.0.0.0
# 端口
port: 80
# 环境
env: debug
# 协议
protocol: http
# 前端地址
web: localhost:5173
# 信任代理ip地址
ip: 127.0.0.1
#swagger配置
swagger:
# 是否启用swagger
enable: true
# 文档标题
title: Schisandra Cloud Album API
# 文档描述
description: Schisandra Cloud Album API
# 用户名
user: schisandra
# 密码
password: schisandra
# MySQL配置
mysql:
# 主机地址
host:
# 端口
port: 3306
# 数据库名称
db: schisandra-cloud-album
# 用户名
user: root
# 密码
password: xxxxxxxx
# 日志级别
log-level: dev
# 最大连接数
max-open-connes: 100
# 最大空闲连接数
max-idle-connes: 10
# 连接配置
config: charset=utf8mb4&parseTime=True&loc=Local
mongodb:
# 主机地址
host: xxxxx
# 端口
port: 27017
# 认证源
auth-source: admin
# 数据库名称
db: schisandra-cloud-album
# 用户名
user: xxxx
# 密码
password: xxx
# 超时时间
timeout: 5
# 最大连接数
max-open-connes: 100
# 最大空闲连接数
max-idle-connes: 10
# 日志配置
logger:
# 日志级别
level: info
# 日志前缀
prefix: schisandra
# 日志文件存放目录
director: "tmp/logs"
# 是否显示文件行号
show-line: true
# 日志文件名
log-name: schisandra-cloud-album
# Redis配置
redis:
# 主机地址
host:
# 端口
port: 6379
# 密码
password: xxxxx
# 数据库
db: 0
# 最大连接数
max-active: 100
# 最大空闲连接数
max-idle: 10
# 最小空闲连接数
min-idle: 1
# 连接池大小
pool-size: 10
# 连接池超时时间
pool-timeout: 2000ms
# 短信配置
sms:
ali:
# 阿里云API地址
host: http://dysmsapi.aliyuncs.com
# 阿里云AccessKeyId
access-key-id: xxxxx
# 阿里云AccessKeySecret
access-key-secret: xxxxx
# 短信模板ID
template-id: SMS_154950909
# 短信签名
signature: 阿里云短信测试
sms-bao:
# 短信宝用户账号
user: xxx
# 短信宝用户密码
password: xxx
# JWT配置
jwt:
# JWT加密密钥
secret: 52305be97465408891694329b94fd0b5
# JWT请求头键名
header-key: Authorization
# JWT请求头前缀
header-prefix: Bearer
# JWT签发者
issuer: schisandra-cloud-album
# 加密配置
encrypt:
# 加密密钥 32位
key: 38h0ex04du8qqf9ar2knn1quicdsm4s0
# 加密向量 16位
iv: qkwsbzdnzzcekt7g
# 公钥
public-key:
# 私钥
private-key:
# 微信配置
wechat:
# 微信公众号APPID
app-id: xxxxx
# 微信公众号APPSECRET
app-secret: xxxx
# 微信公众号Token
token: xxxx
# 微信公众号EncodingAESKey
aes-key:
oauth:
# Github配置
github:
# Github客户端ID
client-id: xxxx
# Github客户端密钥
client-secret: xxxx
# Github回调地址
redirect-uri: https://landaiqing.cn/api/oauth/github/callback
# Gitee配置
gitee:
# Gitee客户端ID
client-id: xxxx
# Gitee客户端密钥
client-secret: xxxx
# Gitee回调地址
redirect-uri: https://landaiqing.cn/api/oauth/gitee/callback
# QQ配置
qq:
# QQ客户端ID
client-id: xxxx
# QQ客户端密钥
client-secret: xxxx
# QQ回调地址
redirect-uri: https://landaiqing.cn/api/oauth/qq/callback
casbin:
# 权限模型文件路径
model-path: config/rbac_model.conf
# 数据库前缀
table-prefix: sca_auth_
# 数据库表明
table-name: permission_rule
# nsq配置
nsq:
# nsqd地址
host: xxx
# nsqd端口
port: 4150
# nsqlookupd地址
lookupd-host: xxxx
# nsqlookupd端口
lookupd-port: 4161

1
go.mod
View File

@@ -33,7 +33,6 @@ require (
github.com/swaggo/swag v1.16.4
github.com/wenlng/go-captcha-assets v1.0.1
github.com/wenlng/go-captcha/v2 v2.0.1
github.com/wumansgy/goEncrypt v1.1.0
github.com/yitter/idgenerator-go v1.3.3
github.com/zmexing/go-sensitive-word v1.3.0
go.mongodb.org/mongo-driver v1.17.1

25
go.sum
View File

@@ -4,8 +4,6 @@ github.com/ArtisanCloud/PowerLibs/v3 v3.2.6 h1:xNDXBJ1VNYAEgs4UG/lSygzU66/XG3mTA
github.com/ArtisanCloud/PowerLibs/v3 v3.2.6/go.mod h1:xFGsskCnzAu+6rFEJbGVAlwhrwZPXAny6m7j71S/B5k=
github.com/ArtisanCloud/PowerSocialite/v3 v3.0.7 h1:P+erNlErr+X2v7Et+yTWaTfIRhw+HfpAPdvNIEwk9Gw=
github.com/ArtisanCloud/PowerSocialite/v3 v3.0.7/go.mod h1:VZQNCvcK/rldF3QaExiSl1gJEAkyc5/I8RLOd3WFZq4=
github.com/ArtisanCloud/PowerWeChat/v3 v3.2.50 h1:fuAnuGF1nV1ziva7Hme6/TyFhYdU+dL8DBNNP2euzfg=
github.com/ArtisanCloud/PowerWeChat/v3 v3.2.50/go.mod h1:HgdxYE6yV9OAMKIvHNRHUShq6auhFK0T2sIpUd1dG5o=
github.com/ArtisanCloud/PowerWeChat/v3 v3.2.55 h1:NKyw6PPEeomEieDMoEXvtL0RkFP6oFepJ1Jsn/6zE9w=
github.com/ArtisanCloud/PowerWeChat/v3 v3.2.55/go.mod h1:D2cB1wtwC1YgzYT1Ni8NWS5wJCm5n1T18TybXkFlwvo=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M=
@@ -52,8 +50,6 @@ github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0
github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU=
github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk=
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM=
github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.2.1 h1:1GgorWTqf12TA8mma4DDSbaQigE2wOgQo7iCjjJv3+E=
github.com/bytedance/sonic/loader v0.2.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/casbin/casbin/v2 v2.100.0 h1:aeugSNjjHfCrgA22nHkVvw2xsscboHv5r0a13ljQKGQ=
@@ -125,7 +121,6 @@ github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaC
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA=
@@ -152,8 +147,6 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20241009165004-a3522334989c h1:NDovD0SMpBYXlE1zJmS1q55vWB/fUQBcPAqAboZSccA=
github.com/google/pprof v0.0.0-20241009165004-a3522334989c/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -250,13 +243,10 @@ github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3
github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk=
github.com/nsqio/go-nsq v1.1.0 h1:PQg+xxiUjA7V+TLdXw7nVrJ5Jbl3sN86EhGCQj4+FYE=
github.com/nsqio/go-nsq v1.1.0/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY=
github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4=
github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag=
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8=
github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc=
github.com/orcaman/concurrent-map/v2 v2.0.1 h1:jOJ5Pg2w1oeB6PeDurIYf6k9PQ+aTITr/6lP/L/zp6c=
github.com/orcaman/concurrent-map/v2 v2.0.1/go.mod h1:9Eq3TG2oBe5FirmYWQfYO5iH1q0Jv47PLaNK++uCdOM=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
@@ -276,14 +266,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI=
github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg=
github.com/quic-go/quic-go v0.48.0 h1:2TCyvBrMu1Z25rvIAlnp2dPT4lgh/uTqLqiXVpp5AeU=
github.com/quic-go/quic-go v0.48.0/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs=
github.com/quic-go/quic-go v0.48.1 h1:y/8xmfWI9qmGTc+lBr4jKRUWLGSlSigv847ULJ4hYXA=
github.com/quic-go/quic-go v0.48.1/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs=
github.com/rbcervilla/redisstore/v9 v9.0.0 h1:wOPbBaydbdxzi1gTafDftCI/Z7vnsXw0QDPCuhiMG0g=
github.com/rbcervilla/redisstore/v9 v9.0.0/go.mod h1:q/acLpoKkTZzIsBYt0R4THDnf8W/BH6GjQYvxDSSfdI=
github.com/redis/go-redis/v9 v9.6.2 h1:w0uvkRbc9KpgD98zcvo5IrVUsn0lXpRMuhNgiHDJzdk=
github.com/redis/go-redis/v9 v9.6.2/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA=
github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E=
github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw=
github.com/refraction-networking/utls v1.6.7 h1:zVJ7sP1dJx/WtVuITug3qYUq034cDq9B2MR1K67ULZM=
@@ -292,13 +278,11 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
@@ -313,8 +297,6 @@ github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE=
github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg=
github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+zy8M=
github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo=
github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg=
github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk=
github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A=
github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
@@ -325,8 +307,6 @@ github.com/wenlng/go-captcha-assets v1.0.1 h1:AdjRFMKmadPRWRTv0XEYfjDvcaayZ2yExI
github.com/wenlng/go-captcha-assets v1.0.1/go.mod h1:yQqc7rRbxgLCg+tWtVp+7Y317D1wIZDan/yIwt8wSac=
github.com/wenlng/go-captcha/v2 v2.0.1 h1:N6XSHymJ7e9Z/LyWWTWLMAkAXtW27ZROZpvNrqPhSnA=
github.com/wenlng/go-captcha/v2 v2.0.1/go.mod h1:5hac1em3uXoyC5ipZ0xFv9umNM/waQvYAQdr0cx/h34=
github.com/wumansgy/goEncrypt v1.1.0 h1:Krr2FJL4GEsMTBvLfsnoTmgWb7rkGnL4siJ9K2cxMs0=
github.com/wumansgy/goEncrypt v1.1.0/go.mod h1:dWgF7mi5Ujmt8V5EoyRqjH6XtZ8wmNQyT4u2uvH8Pyg=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
@@ -355,8 +335,6 @@ go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HY
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -408,7 +386,6 @@ golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

19
model/sca_user_follows.go Normal file
View File

@@ -0,0 +1,19 @@
package model
import (
"time"
)
// ScaUserFollows 用户关注表
type ScaUserFollows struct {
FollowerId string `gorm:"column:follower_id;type:varchar(20);primary_key;comment:关注者" json:"follower_id"`
FolloweeId string `gorm:"column:followee_id;type:varchar(20);comment:被关注者;NOT NULL" json:"followee_id"`
Status int `gorm:"column:status;type:tinyint(1);default:0;comment:关注状态0 未互关 1 互关)" json:"status"`
CreatedTime *time.Time `gorm:"column:created_time;type:datetime;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_time"`
UpdateTime *time.Time `gorm:"column:update_time;type:datetime;default:CURRENT_TIMESTAMP;comment:更新时间" json:"update_time"`
}
// TableName ScaUserFollows 表名
func (ScaUserFollows) TableName() string {
return "sca_user_follows"
}

23
model/sca_user_level.go Normal file
View File

@@ -0,0 +1,23 @@
package model
import (
"time"
)
// ScaUserLevel 用户等级表
type ScaUserLevel struct {
Id int64 `gorm:"column:id;type:bigint(20);primary_key;comment:主键" json:"id"`
UserId string `gorm:"column:user_id;type:varchar(20);comment:用户Id" json:"user_id"`
LevelType int `gorm:"column:level_type;type:tinyint(1);comment:等级类型" json:"level_type"`
Level int `gorm:"column:level;type:int(11);comment:等级" json:"level"`
LevelName string `gorm:"column:level_name;type:varchar(50);comment:等级名称" json:"level_name"`
ExpStart int64 `gorm:"column:exp_start;type:bigint(20);comment:开始经验值" json:"exp_start"`
ExpEnd int64 `gorm:"column:exp_end;type:bigint(20);comment:结束经验值" json:"exp_end"`
LevelDescription string `gorm:"column:level_description;type:text;comment:等级描述" json:"level_description"`
CreatedTime *time.Time `gorm:"column:created_time;type:datetime;default:CURRENT_TIMESTAMP;comment:创建时间" json:"created_time"`
UpdateTime *time.Time `gorm:"column:update_time;type:datetime;default:CURRENT_TIMESTAMP;comment:更新时间" json:"update_time"`
}
func (m *ScaUserLevel) TableName() string {
return "sca_user_level"
}

428
sql.sql Normal file
View File

@@ -0,0 +1,428 @@
/*
Navicat Premium Dump SQL
Source Server : Cloud MySQL
Source Server Type : MySQL
Source Server Version : 50744 (5.7.44)
Source Host : 1.95.0.111:3306
Source Schema : schisandra-cloud-album
Target Server Type : MySQL
Target Server Version : 50744 (5.7.44)
File Encoding : 65001
Date: 12/11/2024 22:47:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for sca_auth_permission
-- ----------------------------
DROP TABLE IF EXISTS `sca_auth_permission`;
CREATE TABLE `sca_auth_permission` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`permission_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限名称',
`parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父ID',
`type` tinyint(4) NULL DEFAULT 0 COMMENT '类型 0 菜单 1 接口 ',
`path` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '路径',
`method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式',
`status` tinyint(4) NULL DEFAULT 0 COMMENT '状态 0 启用 1 停用',
`icon` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标',
`permission_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限关键字',
`order` int(11) NULL DEFAULT NULL COMMENT '排序',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注 描述',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '权限表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_auth_permission
-- ----------------------------
INSERT INTO `sca_auth_permission` VALUES (1, 'test', 0, NULL, 'test', 'get', NULL, 'test', 'test', 0, '2024-09-02 22:50:11', '2024-09-02 22:50:11', NULL, 'test', NULL, NULL);
INSERT INTO `sca_auth_permission` VALUES (2, 'test1', 0, NULL, 'test1', 'get', NULL, 'test1', 'test1', 0, '2024-09-02 22:51:22', '2024-09-02 22:51:22', NULL, 'test1', NULL, NULL);
INSERT INTO `sca_auth_permission` VALUES (3, 'test2', 0, NULL, 'test2', 'post', NULL, 'test2', 'test2', 0, '2024-09-02 22:51:22', '2024-09-02 22:51:22', NULL, 'test2', NULL, NULL);
-- ----------------------------
-- Table structure for sca_auth_permission_rule
-- ----------------------------
DROP TABLE IF EXISTS `sca_auth_permission_rule`;
CREATE TABLE `sca_auth_permission_rule` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`ptype` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`v0` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`v1` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`v2` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`v3` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`v4` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`v5` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `idx_sca_auth_casbin_rule`(`ptype`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) USING BTREE,
UNIQUE INDEX `idx_sca_auth_permission_rule`(`ptype`, `v0`, `v1`, `v2`, `v3`, `v4`, `v5`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色/权限/用户关系表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_auth_permission_rule
-- ----------------------------
INSERT INTO `sca_auth_permission_rule` VALUES (35, 'g', '607492814274629', 'user', '', '', '', '');
INSERT INTO `sca_auth_permission_rule` VALUES (28, 'p', 'user', '/api/auth/comment/cancel_like', 'POST', '', NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (27, 'p', 'user', '/api/auth/comment/like', 'POST', NULL, NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (24, 'p', 'user', '/api/auth/comment/list', 'POST', NULL, NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (22, 'p', 'user', '/api/auth/comment/submit', 'POST', NULL, NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (1, 'p', 'user', '/api/auth/permission/get_user_permissions', 'POST', '', '', '');
INSERT INTO `sca_auth_permission_rule` VALUES (25, 'p', 'user', '/api/auth/reply/list', 'POST', NULL, NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (26, 'p', 'user', '/api/auth/reply/reply/submit', 'POST', NULL, NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (23, 'p', 'user', '/api/auth/reply/submit', 'POST', NULL, NULL, NULL);
INSERT INTO `sca_auth_permission_rule` VALUES (30, 'p', 'user', '/api/captcha/slide/generate', 'GET', NULL, NULL, NULL);
-- ----------------------------
-- Table structure for sca_auth_role
-- ----------------------------
DROP TABLE IF EXISTS `sca_auth_role`;
CREATE TABLE `sca_auth_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`role_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称',
`role_key` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色关键字',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0 未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_auth_role
-- ----------------------------
INSERT INTO `sca_auth_role` VALUES (1, '超级管理员', 'root', '2024-08-13 16:58:21', '2024-08-22 15:15:44', 0);
INSERT INTO `sca_auth_role` VALUES (2, '管理员', 'admin', '2024-08-13 16:58:34', '2024-08-13 16:58:34', 0);
INSERT INTO `sca_auth_role` VALUES (3, '普通用户', 'user', '2024-08-13 16:59:00', '2024-08-13 16:59:00', 0);
-- ----------------------------
-- Table structure for sca_auth_user
-- ----------------------------
DROP TABLE IF EXISTS `sca_auth_user`;
CREATE TABLE `sca_auth_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`uid` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '唯一ID',
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
`nickname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称',
`email` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话',
`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',
`gender` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
`avatar` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '头像',
`status` tinyint(4) NULL DEFAULT 0 COMMENT '状态 0 正常 1 封禁',
`introduce` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '介绍',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0 未删除 1 已删除',
`blog` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '博客',
`location` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
`company` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '公司',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uid`(`uid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 51 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_auth_user
-- ----------------------------
-- ----------------------------
-- Table structure for sca_auth_user_device
-- ----------------------------
DROP TABLE IF EXISTS `sca_auth_user_device`;
CREATE TABLE `sca_auth_user_device` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户ID',
`ip` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录IP',
`location` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址',
`agent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备信息',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除',
`browser` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器',
`operating_system` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统',
`browser_version` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器版本',
`mobile` int(11) NULL DEFAULT NULL COMMENT '是否为手机 0否1是',
`bot` int(11) NULL DEFAULT NULL COMMENT '是否为bot 0否1是',
`mozilla` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '火狐版本',
`platform` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '平台',
`engine_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '引擎名称',
`engine_version` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '引擎版本',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 39 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户设备信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_auth_user_device
-- ----------------------------
-- ----------------------------
-- Table structure for sca_auth_user_social
-- ----------------------------
DROP TABLE IF EXISTS `sca_auth_user_social`;
CREATE TABLE `sca_auth_user_social` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方用户的 open id',
`source` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方用户来源',
`status` int(11) NULL DEFAULT 0 COMMENT '状态 0正常 1 封禁',
`created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社会用户信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_auth_user_social
-- ----------------------------
-- ----------------------------
-- Table structure for sca_comment_likes
-- ----------------------------
DROP TABLE IF EXISTS `sca_comment_likes`;
CREATE TABLE `sca_comment_likes` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`topic_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '话题ID',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`comment_id` bigint(20) NOT NULL COMMENT '评论ID',
`like_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '点赞时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `user_id`(`user_id`) USING BTREE,
INDEX `comment_id`(`comment_id`) USING BTREE,
INDEX `topic_id`(`topic_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 81 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论点赞表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_comment_likes
-- ----------------------------
-- ----------------------------
-- Table structure for sca_comment_message
-- ----------------------------
DROP TABLE IF EXISTS `sca_comment_message`;
CREATE TABLE `sca_comment_message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`topic_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '话题Id',
`from_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来自人',
`to_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '送达人',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
`is_read` int(11) NULL DEFAULT NULL COMMENT '是否已读',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0否 1是',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `id`(`id`) USING BTREE,
INDEX `topic_id`(`topic_id`) USING BTREE,
INDEX `from_id`(`from_id`) USING BTREE,
INDEX `to_id`(`to_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '消息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_comment_message
-- ----------------------------
-- ----------------------------
-- Table structure for sca_comment_reply
-- ----------------------------
DROP TABLE IF EXISTS `sca_comment_reply`;
CREATE TABLE `sca_comment_reply` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评论用户id',
`topic_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评论话题id',
`topic_type` int(11) NULL DEFAULT NULL COMMENT '话题类型',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '评论内容',
`comment_type` int(11) NULL DEFAULT NULL COMMENT '评论类型 0评论 1 回复',
`reply_to` bigint(20) NULL DEFAULT NULL COMMENT '回复子评论ID',
`reply_id` bigint(20) NULL DEFAULT NULL COMMENT '回复父评论Id',
`reply_user` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回复人id',
`author` int(11) NULL DEFAULT 0 COMMENT '评论回复是否作者 0否 1是',
`likes` bigint(20) NULL DEFAULT 0 COMMENT '点赞数',
`reply_count` bigint(20) NULL DEFAULT 0 COMMENT '回复数量',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1 已删除',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`browser` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器',
`operating_system` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统',
`comment_ip` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'IP地址',
`location` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址',
`agent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备信息',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `comment_id`(`id`) USING BTREE,
INDEX `user_id`(`user_id`) USING BTREE,
INDEX `reply_id`(`reply_id`) USING BTREE,
INDEX `topic_id`(`topic_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 146 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_comment_reply
-- ----------------------------
INSERT INTO `sca_comment_reply` VALUES (142, '607492814274629', '123', 0, 'waht?', 0, 0, 0, '', 1, 0, 1, '2024-11-04 17:54:50', '2024-11-04 18:33:34', 0, '607492814274629', '', 'Chrome', 'Windows 10', '127.0.0.1', '内网IP|内网IP', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
INSERT INTO `sca_comment_reply` VALUES (143, '607492814274629', '123', 0, '什么<img width=\"30px\" height=\"30px\" loading=\"lazy\" src=\"/emoji/qq/gif/106.gif\" alt=\"emoji 106.gif\"/>', 1, 0, 142, '607492814274629', 1, 0, 0, '2024-11-04 17:56:17', '2024-11-04 17:56:17', 0, '607492814274629', '', 'Chrome', 'Windows 10', '127.0.0.1', '内网IP|内网IP', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
INSERT INTO `sca_comment_reply` VALUES (144, '607492814274629', '123', 0, '哈哈哈哈哈哈哈哈', 0, 0, 0, '', 1, 0, 0, '2024-11-04 18:42:24', '2024-11-05 16:38:36', 0, '607492814274629', '', 'Chrome', 'Windows 10', '127.0.0.1', '内网IP|内网IP', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
INSERT INTO `sca_comment_reply` VALUES (145, '607492814274629', '123', 0, '图像测试<img width=\"30px\" height=\"30px\" loading=\"lazy\" src=\"/emoji/qq/gif/1.gif\" alt=\"emoji 1.gif\"/><img width=\"30px\" height=\"30px\" loading=\"lazy\" src=\"/emoji/qq/gif/1.gif\" alt=\"emoji 1.gif\"/>', 0, 0, 0, '', 1, 0, 0, '2024-11-04 19:03:15', '2024-11-04 19:03:15', 0, '607492814274629', '', 'Chrome', 'Windows 10', '127.0.0.1', '内网IP|内网IP', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36');
-- ----------------------------
-- Table structure for sca_file_folder
-- ----------------------------
DROP TABLE IF EXISTS `sca_file_folder`;
CREATE TABLE `sca_file_folder` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`folder_name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件夹名称',
`parent_folder_id` bigint(20) NULL DEFAULT NULL COMMENT '父文件夹编号',
`folder_addr` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件夹名称',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号',
`folder_source` int(11) NULL DEFAULT NULL COMMENT '文件夹来源 0相册 1 评论',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0 未删除 1 已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件夹信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_file_folder
-- ----------------------------
-- ----------------------------
-- Table structure for sca_file_info
-- ----------------------------
DROP TABLE IF EXISTS `sca_file_info`;
CREATE TABLE `sca_file_info` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`file_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名',
`file_size` double NULL DEFAULT NULL COMMENT '文件大小',
`file_type_id` bigint(20) NULL DEFAULT NULL COMMENT '文件类型编号',
`upload_time` datetime NULL DEFAULT NULL COMMENT '上传时间',
`folder_id` bigint(20) NULL DEFAULT NULL COMMENT '文件夹编号',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号',
`file_source` int(11) NULL DEFAULT NULL COMMENT '文件来源 0 相册 1 评论',
`status` int(11) NULL DEFAULT NULL COMMENT '文件状态',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0 未删除 1 已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_file_info
-- ----------------------------
-- ----------------------------
-- Table structure for sca_file_recycle_bin
-- ----------------------------
DROP TABLE IF EXISTS `sca_file_recycle_bin`;
CREATE TABLE `sca_file_recycle_bin` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`file_id` bigint(20) NULL DEFAULT NULL COMMENT '文件编号',
`folder_id` bigint(20) NULL DEFAULT NULL COMMENT '文件夹编号',
`type` int(11) NULL DEFAULT NULL COMMENT '类型 0 文件 1 文件夹',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号',
`deleted_at` datetime NULL DEFAULT NULL COMMENT '删除时间',
`original_path` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '原始路径',
`deleted` int(11) NULL DEFAULT NULL COMMENT '是否被永久删除 0否 1是',
`file_source` int(11) NULL DEFAULT NULL COMMENT '文件来源 0 相册 1 评论',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件回收站表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_file_recycle_bin
-- ----------------------------
-- ----------------------------
-- Table structure for sca_file_type
-- ----------------------------
DROP TABLE IF EXISTS `sca_file_type`;
CREATE TABLE `sca_file_type` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型名称',
`mime_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'MIME 类型',
`status` int(11) NULL DEFAULT NULL COMMENT '类型状态',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0 未删除 1 已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件类型表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_file_type
-- ----------------------------
-- ----------------------------
-- Table structure for sca_message_report
-- ----------------------------
DROP TABLE IF EXISTS `sca_message_report`;
CREATE TABLE `sca_message_report` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户Id',
`type` int(11) NULL DEFAULT NULL COMMENT '举报类型 0评论 1 相册',
`comment_id` bigint(20) NULL DEFAULT NULL COMMENT '评论Id',
`topic_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '话题Id',
`report_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '举报',
`report_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '举报说明内容',
`report_tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '举报标签',
`status` int(11) NULL DEFAULT NULL COMMENT '状态0 未处理 1 已处理)',
`created_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` int(11) NULL DEFAULT 0 COMMENT '是否删除 0否 1是',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '举报信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_message_report
-- ----------------------------
-- ----------------------------
-- Table structure for sca_user_follows
-- ----------------------------
DROP TABLE IF EXISTS `sca_user_follows`;
CREATE TABLE `sca_user_follows` (
`follower_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '关注者',
`followee_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '被关注者',
`status` tinyint(1) NULL DEFAULT 0 COMMENT '关注状态0 未互关 1 互关)',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`follower_id`, `followee_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户关注表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_user_follows
-- ----------------------------
-- ----------------------------
-- Table structure for sca_user_level
-- ----------------------------
DROP TABLE IF EXISTS `sca_user_level`;
CREATE TABLE `sca_user_level` (
`id` bigint(20) NOT NULL COMMENT '主键',
`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户Id',
`level_type` tinyint(1) NULL DEFAULT NULL COMMENT '等级类型',
`level` int(11) NULL DEFAULT NULL COMMENT '等级',
`level_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '等级名称',
`exp_start` bigint(20) NULL DEFAULT NULL COMMENT '开始经验值',
`exp_end` bigint(20) NULL DEFAULT NULL COMMENT '结束经验值',
`level_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '等级描述',
`created_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户等级表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sca_user_level
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1;