first commit
This commit is contained in:
285
service/backend/server/http/cdk.go
Normal file
285
service/backend/server/http/cdk.go
Normal file
@@ -0,0 +1,285 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"gitlab.33.cn/chat/dtalk/pkg/api"
|
||||
xerror "gitlab.33.cn/chat/dtalk/pkg/error"
|
||||
"gitlab.33.cn/chat/dtalk/service/backend/model/types"
|
||||
)
|
||||
|
||||
//userId, ok := c.Get(api.Address)
|
||||
// if !ok {
|
||||
// c.Set(api.ReqError, xerror.NewError(xerror.SignatureInvalid))
|
||||
// return
|
||||
// }
|
||||
// @Summary 创建 CdkType
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param FZM-SIGNATURE header string true "MOCK"
|
||||
// @Param data body types.CreateGroupRequest false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.CreateGroupResponse}
|
||||
// @Router /app/create-group [post]
|
||||
|
||||
// CreateCdkTypeHandler
|
||||
// @Summary 创建 CdkType
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param data body types.CreateCdkTypeReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.CreateCdkTypeResp}
|
||||
// @Router /backend/cdk/create-cdk-type [post]
|
||||
func CreateCdkTypeHandler(c *gin.Context) {
|
||||
req := &types.CreateCdkTypeReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.CreateCdkTypeSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// CreateCdksHandler
|
||||
// @Summary 创建 Cdks
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param data body types.CreateCdksReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.CreateCdksResp}
|
||||
// @Router /backend/cdk/create-cdks [post]
|
||||
func CreateCdksHandler(c *gin.Context) {
|
||||
req := &types.CreateCdksReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.CreateCdksSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// GetCdkTypesHandler
|
||||
// @Summary 分页获得 cdkType
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 查询
|
||||
// @Param data body types.GetCdkTypesReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.GetCdkTypesResp}
|
||||
// @Router /backend/cdk/get-cdk-types [post]
|
||||
func GetCdkTypesHandler(c *gin.Context) {
|
||||
req := &types.GetCdkTypesReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.GetCdkTypesSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// GetCdksHandler
|
||||
// @Summary 分页获得 cdks
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 查询
|
||||
// @Param data body types.GetCdksReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.GetCdksResp}
|
||||
// @Router /backend/cdk/get-cdks [post]
|
||||
func GetCdksHandler(c *gin.Context) {
|
||||
req := &types.GetCdksReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.GetCdksSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// DeleteCdksHandler
|
||||
// @Summary 删除 cdks
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param data body types.DeleteCdksReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.DeleteCdksResp}
|
||||
// @Router /backend/cdk/delete-cdks [post]
|
||||
func DeleteCdksHandler(c *gin.Context) {
|
||||
req := &types.DeleteCdksReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.DeleteCdksSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// DeleteCdkTypesHandler
|
||||
// @Summary 删除 cdkTypes
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param data body types.DeleteCdkTypesReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.DeleteCdkTypesResp}
|
||||
// @Router /backend/cdk/delete-cdk-types [post]
|
||||
func DeleteCdkTypesHandler(c *gin.Context) {
|
||||
req := &types.DeleteCdkTypesReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.DeleteCdkTypesSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// ExchangeCdksHandler
|
||||
// @Summary 兑换 cdks
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param data body types.ExchangeCdksReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.ExchangeCdksResp}
|
||||
// @Router /backend/cdk/exchange-cdks [post]
|
||||
func ExchangeCdksHandler(c *gin.Context) {
|
||||
req := &types.ExchangeCdksReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.ExchangeCdksSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// UpdateCdkTypeHandler
|
||||
// @Summary 更新 cdkType
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk 后台
|
||||
// @Param data body types.UpdateCdkTypeReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.UpdateCdkTypeResp}
|
||||
// @Router /backend/cdk/update-cdk-type [post]
|
||||
func UpdateCdkTypeHandler(c *gin.Context) {
|
||||
req := &types.UpdateCdkTypeReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.UpdateCdkTypeSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// GetCdksByUserIdHandler
|
||||
// @Summary 分页获得一个人拥有的 cdks
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk App
|
||||
// @Param FZM-SIGNATURE header string true "MOCK"
|
||||
// @Param data body types.GetCdksByUserIdReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.GetCdksByUserIdResp}
|
||||
// @Router /app/cdk/get-cdks-by-user-id [post]
|
||||
func GetCdksByUserIdHandler(c *gin.Context) {
|
||||
req := &types.GetCdksByUserIdReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
userId, ok := c.Get(api.Address)
|
||||
if !ok {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.SignatureInvalid))
|
||||
return
|
||||
}
|
||||
req.PersonId = userId.(string)
|
||||
|
||||
res, err := svc.CdkService.GetCdksByUserIdSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// GetCdkTypeByCoinNameHandler
|
||||
// @Summary 查询一个票券对应的 cdkType
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk App
|
||||
// @Param data body types.GetCdkTypeByCoinNameReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.GetCdkTypeByCoinNameResp}
|
||||
// @Router /app/cdk/get-cdk-type-by-coin-name [post]
|
||||
func GetCdkTypeByCoinNameHandler(c *gin.Context) {
|
||||
req := &types.GetCdkTypeByCoinNameReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
res, err := svc.CdkService.GetCdkTypeByCoinNameSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// CreateCdkOrderHandler
|
||||
// @Summary 创建兑换订单
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk App
|
||||
// @Param FZM-SIGNATURE header string true "MOCK"
|
||||
// @Param data body types.CreateCdkOrderReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.CreateCdkOrderResp}
|
||||
// @Router /app/cdk/create-cdk-order [post]
|
||||
func CreateCdkOrderHandler(c *gin.Context) {
|
||||
req := &types.CreateCdkOrderReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
userId, ok := c.Get(api.Address)
|
||||
if !ok {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.SignatureInvalid))
|
||||
return
|
||||
}
|
||||
req.PersonId = userId.(string)
|
||||
|
||||
res, err := svc.CdkService.CreateCdkOrderSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
// DealCdkOrderHandler
|
||||
// @Summary 处理兑换订单
|
||||
// @Author chy@33.cn
|
||||
// @Tags Cdk App
|
||||
// @Param FZM-SIGNATURE header string true "MOCK"
|
||||
// @Param data body types.DealCdkOrderReq false "body"
|
||||
// @Success 200 {object} types.GeneralResponse{data=types.DealCdkOrderResp}
|
||||
// @Router /app/cdk/deal-cdk-order [post]
|
||||
func DealCdkOrderHandler(c *gin.Context) {
|
||||
req := &types.DealCdkOrderReq{}
|
||||
err := c.ShouldBind(req)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
userId, ok := c.Get(api.Address)
|
||||
if !ok {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.SignatureInvalid))
|
||||
return
|
||||
}
|
||||
req.PersonId = userId.(string)
|
||||
|
||||
res, err := svc.CdkService.DealCdkOrderSvc(req)
|
||||
c.Set(api.ReqResult, res)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
125
service/backend/server/http/http.go
Normal file
125
service/backend/server/http/http.go
Normal file
@@ -0,0 +1,125 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/inconshreveable/log15"
|
||||
swaggerFiles "github.com/swaggo/files"
|
||||
ginSwagger "github.com/swaggo/gin-swagger"
|
||||
"gitlab.33.cn/chat/dtalk/pkg/api"
|
||||
"gitlab.33.cn/chat/dtalk/service/backend/config"
|
||||
_ "gitlab.33.cn/chat/dtalk/service/backend/docs"
|
||||
"gitlab.33.cn/chat/dtalk/service/backend/midware"
|
||||
"gitlab.33.cn/chat/dtalk/service/backend/service"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var (
|
||||
svc *service.Service
|
||||
log = log15.New("module", "backend/http")
|
||||
)
|
||||
|
||||
func Init(s *service.Service) *http.Server {
|
||||
addr := s.Config().Server.Addr
|
||||
if s.Config().Env != "debug" {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
}
|
||||
engine := Default()
|
||||
InitService(s)
|
||||
SetupEngine(engine)
|
||||
|
||||
if s.Config().CdkMod {
|
||||
setCdkRoute(engine)
|
||||
}
|
||||
|
||||
srv := &http.Server{
|
||||
Addr: addr,
|
||||
Handler: engine,
|
||||
}
|
||||
go func() {
|
||||
// service connections
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
log.Error("engineInner.Start() error(%v)", err)
|
||||
panic(err)
|
||||
}
|
||||
}()
|
||||
return srv
|
||||
}
|
||||
|
||||
// Default returns an Engine instance with the Logger and Recovery middleware already attached.
|
||||
func Default() *gin.Engine {
|
||||
router := gin.New()
|
||||
// LoggerWithFormatter middleware will write the logs to gin.DefaultWriter
|
||||
// By default gin.DefaultWriter = os.Stdout
|
||||
router.Use(gin.LoggerWithFormatter(api.Chat33GinLogFormatter))
|
||||
router.Use(gin.Recovery())
|
||||
return router
|
||||
}
|
||||
|
||||
func InitService(s *service.Service) {
|
||||
svc = s
|
||||
}
|
||||
|
||||
func SetupEngine(e *gin.Engine) *gin.Engine {
|
||||
{
|
||||
app := e.Group("/app", api.RespMiddleWare())
|
||||
version := app.Group("/version")
|
||||
//获取服务器列表
|
||||
version.Use(api.HeaderMiddleWare())
|
||||
{
|
||||
version.POST("/check", CheckAndUpdateVersion)
|
||||
}
|
||||
}
|
||||
{
|
||||
backend := e.Group("/backend", api.RespMiddleWare())
|
||||
token := backend.Group("/user")
|
||||
{
|
||||
token.POST("/login", GetToken)
|
||||
}
|
||||
version := backend.Group("/version")
|
||||
version.Use(midware.JWTAuthMiddleWare(config.Conf.Debug.Flag, config.Conf.Release.Key))
|
||||
{
|
||||
version.POST("/create", CreateVersion)
|
||||
version.PUT("/update", UpdateVersion)
|
||||
version.PUT("/change-status", ChangeVersionStatus)
|
||||
version.GET("/list", GetVersionList)
|
||||
}
|
||||
}
|
||||
|
||||
// swagger 文档接口
|
||||
e.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||
return e
|
||||
}
|
||||
|
||||
func setCdkRoute(e *gin.Engine) *gin.Engine {
|
||||
{
|
||||
app := e.Group("/app", api.RespMiddleWare())
|
||||
|
||||
// cdk app
|
||||
appCkd := app.Group("/cdk")
|
||||
appCkd.Use(api.AuthMiddleWare())
|
||||
{
|
||||
appCkd.POST("get-cdks-by-user-id", GetCdksByUserIdHandler)
|
||||
appCkd.POST("get-cdk-type-by-coin-name", GetCdkTypeByCoinNameHandler)
|
||||
appCkd.POST("create-cdk-order", CreateCdkOrderHandler)
|
||||
appCkd.POST("deal-cdk-order", DealCdkOrderHandler)
|
||||
}
|
||||
}
|
||||
{
|
||||
backend := e.Group("/backend", api.RespMiddleWare())
|
||||
|
||||
// cdk backend
|
||||
bakCdk := backend.Group("/cdk")
|
||||
bakCdk.POST("get-cdk-types", GetCdkTypesHandler)
|
||||
bakCdk.POST("get-cdks", GetCdksHandler)
|
||||
bakCdk.Use(midware.JWTAuthMiddleWare(config.Conf.Debug.Flag, config.Conf.Release.Key))
|
||||
{
|
||||
bakCdk.POST("create-cdk-type", CreateCdkTypeHandler)
|
||||
bakCdk.POST("create-cdks", CreateCdksHandler)
|
||||
bakCdk.POST("delete-cdks", DeleteCdksHandler)
|
||||
bakCdk.POST("delete-cdk-types", DeleteCdkTypesHandler)
|
||||
bakCdk.POST("update-cdk-type", UpdateCdkTypeHandler)
|
||||
bakCdk.POST("exchange-cdks", ExchangeCdksHandler)
|
||||
}
|
||||
}
|
||||
return e
|
||||
}
|
||||
103
service/backend/server/http/version.go
Normal file
103
service/backend/server/http/version.go
Normal file
@@ -0,0 +1,103 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"gitlab.33.cn/chat/dtalk/pkg/api"
|
||||
xerror "gitlab.33.cn/chat/dtalk/pkg/error"
|
||||
"gitlab.33.cn/chat/dtalk/pkg/util"
|
||||
"gitlab.33.cn/chat/dtalk/service/backend/model"
|
||||
)
|
||||
|
||||
//get all nodes
|
||||
//func CheckVersion(c *gin.Context) {
|
||||
// ret := svc.CheckVersion(c.MustGet(api.DeviceType).(string))
|
||||
// c.Set(api.ReqResult, ret)
|
||||
// c.Set(api.ReqError, nil)
|
||||
//}
|
||||
|
||||
func CreateVersion(c *gin.Context) {
|
||||
request := model.VersionCreateRequest{}
|
||||
err := c.ShouldBind(&request)
|
||||
request.OpeUser = c.GetString("userName")
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage("ShouldBind"+err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
ret, err := svc.CreateVersion(&request)
|
||||
c.Set(api.ReqResult, ret)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
func UpdateVersion(c *gin.Context) {
|
||||
request := model.VersionUpdateRequest{}
|
||||
err := c.ShouldBind(&request)
|
||||
request.OpeUser = c.GetString("userName")
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage("ShouldBind"+err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
ret, err := svc.UpdateVersion(&request)
|
||||
c.Set(api.ReqResult, ret)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
func ChangeVersionStatus(c *gin.Context) {
|
||||
request := model.VersionChangeStatusRequest{}
|
||||
err := c.ShouldBind(&request)
|
||||
request.OpeUser = c.GetString("userName")
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage("ShouldBind"+err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
err = svc.ChangeVersionStatus(&request)
|
||||
c.Set(api.ReqResult, nil)
|
||||
c.Set(api.ReqError, err)
|
||||
|
||||
}
|
||||
|
||||
func GetVersionList(c *gin.Context) {
|
||||
request := model.GetVersionListRequest{}
|
||||
request.Platform = c.DefaultQuery("platform", "%")
|
||||
request.DeviceType = c.DefaultQuery("deviceType", "%")
|
||||
request.Page = util.ToInt64(c.DefaultQuery("page", "0"))
|
||||
ret, err := svc.GetVersionList(&request)
|
||||
c.Set(api.ReqResult, ret)
|
||||
c.Set(api.ReqError, err)
|
||||
}
|
||||
|
||||
func CheckAndUpdateVersion(c *gin.Context) {
|
||||
request := model.VersionCheckAndUpdateRequest{}
|
||||
err := c.ShouldBind(&request)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage("ShouldBind"+err.Error()))
|
||||
return
|
||||
}
|
||||
deviceType, ok := c.Get(api.DeviceType)
|
||||
if !ok {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.DeviceTypeError))
|
||||
return
|
||||
}
|
||||
request.DeviceType = deviceType.(string)
|
||||
|
||||
ret, err := svc.CheckAndUpdateVersion(&request)
|
||||
c.Set(api.ReqResult, ret)
|
||||
c.Set(api.ReqError, err)
|
||||
|
||||
}
|
||||
|
||||
func GetToken(c *gin.Context) {
|
||||
request := model.GetTokenRequest{}
|
||||
err := c.ShouldBind(&request)
|
||||
if err != nil {
|
||||
c.Set(api.ReqError, xerror.NewError(xerror.ParamsError).SetExtMessage("ShouldBind"+err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
ret, err := svc.GetToken(&request)
|
||||
c.Set(api.ReqResult, ret)
|
||||
c.Set(api.ReqError, err)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user