rubbishclass-srv/server.go

124 lines
3.7 KiB
Go
Raw Permalink Normal View History

2020-04-12 02:41:11 +00:00
// Package main Rubbish-Class API
//
// Documentation for Rubbish-Class API
//
// Schemes: http
// BasePath: /rubbish/
// Version: 1.0.0
// Contact: Suguo.Yao<ysg@myschools.me>
//
// Consumes:
// - application/json
//
// Produces:
// - application/json
// swagger:meta
2020-03-19 12:35:09 +00:00
package main
import (
"flag"
2020-03-24 07:12:31 +00:00
"log"
2020-03-19 12:35:09 +00:00
"net/http"
"os"
"github.com/gin-gonic/gin"
"yyjishu.com/rubbish-class/admin"
"yyjishu.com/rubbish-class/app"
2020-03-24 07:12:31 +00:00
"yyjishu.com/rubbish-class/public"
2020-03-30 05:46:11 +00:00
"yyjishu.com/rubbish-class/rubbish"
2020-03-19 12:35:09 +00:00
)
var (
endpoint = flag.String("s", "localhost:8080", "service endpoint")
)
func main() {
2020-03-30 05:46:11 +00:00
rubbish.Addr = flag.String("d", "root:root@tcp(127.0.0.1:3306)/rubbish?charset=utf8mb4\u0026parseTime=True\u0026loc=Local", "address for mysql")
2020-03-19 12:35:09 +00:00
flag.Parse()
2020-03-30 05:46:11 +00:00
rubbish.Init()
2020-03-19 12:35:09 +00:00
//启动时检查与创建文件夹video用于存放用户上传的视频文件
2020-03-24 07:12:31 +00:00
_, err := os.Stat("data")
2020-03-19 12:35:09 +00:00
if err != nil {
if os.IsNotExist(err) {
2020-03-24 07:12:31 +00:00
os.Mkdir("./data", os.ModePerm)
os.Chmod("./data", 0755)
2020-03-19 12:35:09 +00:00
}
}
r := gin.Default()
r.Use(gin.Recovery())
2020-03-23 14:46:18 +00:00
rbGroup := r.Group(`/rubbish`)
2020-03-19 12:35:09 +00:00
{
2020-03-30 05:46:11 +00:00
rbGroup.GET(`/community/list`, public.CommunityListHandler) //社区列表,OK
2020-03-30 06:27:05 +00:00
rbGroup.POST(`/community/create`, public.CommunityCreateHandler) //社区创建,测试维护使用,OK
2020-03-24 07:12:31 +00:00
rbGroup.StaticFS(`/video`, http.Dir("./data"))
2020-03-23 14:46:18 +00:00
authorized := rbGroup.Group(`/admin`, gin.BasicAuth(gin.Accounts{
"foo": "bar",
"admin": "admin",
}))
{
2020-03-24 07:12:31 +00:00
authorized.GET(`/index`, admin.HomeHandler)
2020-03-23 14:46:18 +00:00
userGroup := authorized.Group(`/user`)
{
2020-03-30 06:27:05 +00:00
userGroup.GET(`/stat/:commid`, admin.UserStatHandler) //统计社区当天的活跃用户数据
userGroup.GET(`/stat`, admin.UserStatHandler) //统计当天活跃用户、当天新增用户、历史用户
2020-03-23 14:46:18 +00:00
}
integralGroup := authorized.Group(`/integral`) //积分
{
2020-03-24 07:12:31 +00:00
integralGroup.GET(`/stat/:count`, admin.IntegralStatHandler) //积分日统计数据
integralGroup.GET(`/list`, admin.IntegralListHandler) //积分兑换列表
integralGroup.GET(`/applylist`, admin.IntegralApplylistHandler) //积分兑换申请列表
integralGroup.GET(`/sort/:houseid`, admin.IntegralSortHandler) //住户总积分排序
2020-03-23 14:46:18 +00:00
}
videoGroup := authorized.Group(`/video`)
{
2020-03-24 07:12:31 +00:00
videoGroup.GET(`/stat`, admin.VideoStatHandler) //视频数量及大小统计
videoGroup.GET(`/list/:commid/:month`, admin.VideoListHandler) //视频地址按社区及月份
videoGroup.GET(`/download/:commid/:month`, admin.VideoDownloadHandler) //视频下载
2020-03-23 14:46:18 +00:00
}
}
2020-03-30 13:28:58 +00:00
rbGroup.GET(`/app/code2session/:jscode`, app.Code2SessionHandler) //微信小程序用户认证
appGroup := rbGroup.Group(`/app`, app.UserCheckHandler)
2020-03-23 14:46:18 +00:00
{
userGroup := appGroup.Group(`/user`)
{
2020-03-24 07:12:31 +00:00
userGroup.GET(`/info`, app.UserInfoHandler)
2020-03-30 13:28:58 +00:00
userGroup.PUT(`/info`, app.UserInfoHandler)
2020-03-24 07:12:31 +00:00
userGroup.GET(`/list/:houseid`, app.UserListHandler)
2020-03-30 13:28:58 +00:00
2020-03-24 07:12:31 +00:00
userGroup.GET(`/fee/:houseid`, app.FeeListHandler) //住户付费号码列表
2020-03-23 14:46:18 +00:00
}
videoGroup := appGroup.Group(`/video`)
{
2020-03-24 07:12:31 +00:00
videoGroup.PUT(`/upload`, app.VideoUploadHandler) //视频上传
videoGroup.GET(`/list/:houseid`, app.VideoListHandler) // 住户视频URL列表
2020-03-23 14:46:18 +00:00
}
integralGroup := appGroup.Group(`/integral`) //积分
{
2020-03-24 07:12:31 +00:00
integralGroup.GET(`/query`, app.IntegralQueryHandler) //查询住户积分、社区积表
integralGroup.POST(`/apply`, app.IntegralApplyHandler) //积分兑换申请
integralGroup.GET(`/history`, app.IntegralHistoryHandler) //积分兑换历史列表
2020-03-23 14:46:18 +00:00
}
}
2020-03-19 12:35:09 +00:00
}
2020-04-12 02:41:11 +00:00
// go func() {
// log.Printf("Starting server on %s \r\n", *endpoint)
// err := r.Run(*endpoint)
// if err != nil {
// log.Printf("Error server: %s \n", err)
// os.Exit(1)
// }
// }()
2020-03-24 07:12:31 +00:00
log.Fatal(r.Run(*endpoint))
2020-04-12 02:41:11 +00:00
2020-03-19 12:35:09 +00:00
}