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
|
|
|
|
}
|