Commit 3cc2b885 authored by haoyanbin's avatar haoyanbin

Mobile

parent 99d7680f
package apis
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/api"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"strconv"
"go-admin/app/operate/service"
"go-admin/app/operate/service/dto"
"go-admin/common/actions"
)
type OrgPlayer struct {
api.Api
}
// GetPage <球队>获取球员列表
// @Summary <球队>获取球员列表
// @Description <球队>获取球员列表
// @Tags <球队>球员
// @Param pageSize query int false "页条数"
// @Param pageIndex query int false "页码"
// @Param data body dto.OrgPlayerGetPageReq true "body"
// @Success 200 {string} string "{"code": 200, "data": [...]}"
// @Router /api/v1/org-player [get]
// @Security Bearer
func (e OrgPlayer) GetPage(c *gin.Context) {
req := dto.OrgPlayerGetPageReq{}
s := service.OrgPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
p := actions.GetPermissionFromContext(c)
list := make([]dto.OrgPlayerGetPageReply, 0)
var count int64
err = s.GetPage(&req, p, &list, &count)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取球员 失败,\r\n失败信息 %s", err.Error()))
return
}
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
}
// Get <球队>获取球员
// @Summary <球队>获取球员
// @Description <球队>获取球员
// @Tags <球队>球员
// @Param id path string false "id"
// @Success 200 {string} string "{"code": 200, "data": [...]}"
// @Router /api/v1/org-player/{id} [get]
// @Security Bearer
func (e OrgPlayer) Get(c *gin.Context) {
req := dto.OrgPlayerGetReq{}
s := service.OrgPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
var object dto.OrgPlayerGetReply
p := actions.GetPermissionFromContext(c)
err = s.Get(&req, p, &object)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取球员失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(object, "查询成功")
}
// Insert <球队>创建球员
// @Summary <球队>创建球员
// @Description <球队>创建球员
// @Tags <球队>球员
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgPlayerInsertReq true "data"
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
// @Router /api/v1/org-player [post]
// @Security Bearer
func (e OrgPlayer) Insert(c *gin.Context) {
req := dto.OrgPlayerInsertReq{}
s := service.OrgPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
reqUser := dto.OrgPlayerUserInsertReq{}
sUser := service.OrgPlayerUser{}
e.MakeContext(c).MakeOrm().MakeService(&sUser.Service)
_, userId := sUser.IsBeing(req.Username)
if userId > 0 {
req.PlayerUserId = strconv.Itoa(userId)
} else {
// 设置创建人
reqUser.SetCreateBy(user.GetUserId(c))
reqUser.Username = req.Username
reqUser.Password = dto.Pwd("123456")
err = sUser.Insert(&reqUser)
req.PlayerUserId = strconv.Itoa(reqUser.Id)
}
// 设置创建人
req.SetCreateBy(user.GetUserId(c))
err = s.Insert(&req)
if err != nil {
e.Error(500, err, fmt.Sprintf("创建球员 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.GetId(), "创建成功")
}
// Update <球队>修改球员
// @Summary <球队>修改球员
// @Description <球队>修改球员
// @Tags <球队>球员
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgPlayerUpdateReq true "body"
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
// @Router /api/v1/org-player/{id} [put]
// @Security Bearer
func (e OrgPlayer) Update(c *gin.Context) {
req := dto.OrgPlayerUpdateReq{}
s := service.OrgPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
req.SetUpdateBy(user.GetUserId(c))
p := actions.GetPermissionFromContext(c)
reqUser := dto.OrgPlayerUserInsertReq{}
sUser := service.OrgPlayerUser{}
e.MakeContext(c).MakeOrm().MakeService(&sUser.Service)
_, userId := sUser.IsBeing(req.Username)
if userId > 0 {
req.PlayerUserId = strconv.Itoa(userId)
} else {
// 设置创建人
reqUser.SetCreateBy(user.GetUserId(c))
reqUser.Username = req.Username
reqUser.Password = dto.Pwd("123456")
err = sUser.Insert(&reqUser)
req.PlayerUserId = strconv.Itoa(reqUser.Id)
}
err = s.Update(&req, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("修改球员 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.GetId(), "修改成功")
}
// Delete <球队>删除球员
// @Summary <球队>删除球员
// @Description <球队>删除球员
// @Tags <球队>球员
// @Param ids body []int false "ids"
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
// @Router /api/v1/org-player [delete]
// @Security Bearer
func (e OrgPlayer) Delete(c *gin.Context) {
s := service.OrgPlayer{}
req := dto.OrgPlayerDeleteReq{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// req.SetUpdateBy(user.GetUserId(c))
p := actions.GetPermissionFromContext(c)
err = s.Remove(&req, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("删除球员失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.GetId(), "删除成功")
}
// Update <球队>修改球员状态
// @Summary <球队>修改球员状态
// @Description <球队>修改球员状态
// @Tags <球队>工作人员
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgPlayerUpdateStatusReq true "body"
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
// @Router /api/v1/org-player/update-status [put]
// @Security Bearer
func (e OrgPlayer) UpdateStatus(c *gin.Context) {
req := dto.OrgPlayerUpdateStatusReq{}
s := service.OrgPlayer{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
req.SetUpdateBy(user.GetUserId(c))
p := actions.GetPermissionFromContext(c)
reqUpdate := dto.OrgPlayerUpdateReq{}
reqUpdate.Id = req.Id
reqUpdate.Status = req.Status
err = s.Update(&reqUpdate, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("修改球队人员账户信息 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.Id, "修改成功")
}
...@@ -24,7 +24,7 @@ type OrgPlayerRank struct { ...@@ -24,7 +24,7 @@ type OrgPlayerRank struct {
// @Param pageIndex query int false "页码" // @Param pageIndex query int false "页码"
// @Param data body dto.OrgTeamPlayerGetPageReq true "data" // @Param data body dto.OrgTeamPlayerGetPageReq true "data"
// @Success 200 {string} string "{"code": 200, "data": [...]}" // @Success 200 {string} string "{"code": 200, "data": [...]}"
// @Router /api/v1/org-player-rank [get] // @Router /mobile/v1/org-player-rank [get]
// @Security Bearer // @Security Bearer
func (e OrgPlayerRank) GetPage(c *gin.Context) { func (e OrgPlayerRank) GetPage(c *gin.Context) {
req := dto.OrgPlayerRankGetPageReq{} req := dto.OrgPlayerRankGetPageReq{}
......
package apis
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/api"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/app/mobile/service"
"go-admin/app/mobile/service/dto"
"go-admin/app/operate/models"
"go-admin/common/actions"
)
type OrgPlayerUser struct {
api.Api
}
// GetPage 获取球员账户信息列表
// @Summary 获取球员账户信息列表
// @Description 获取球员账户信息列表
// @Tags 球员账户信息
// @Param pageSize query int false "页条数"
// @Param pageIndex query int false "页码"
// @Success 200 {string} string {"code": 200, "data": [...]}
// @Router /mobile/v1/org-player-user/login [post]
// @Security Bearer
func (e OrgPlayerUser) Login(c *gin.Context) {
req := dto.LoginReq{}
s := service.OrgPlayerUser{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
p := actions.GetPermissionFromContext(c)
data := new(models.OrgPlayerUser)
req.Password = dto.Pwd(req.Password)
err = s.Login(&req, p, data)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取球员账户信息 失败,\r\n失败信息 %s", err.Error()))
return
}
//自建token生成
reply := new(dto.LoginReply)
//token, _ := utils.GenToken(int64(data.Id))
//
//a,_ := jwt.New(&jwt.GinJWTMiddleware{
// Realm: "test zone",
// Key: []byte(config.JwtConfig.Secret),
// Timeout: time.Duration(876010) * time.Hour,
// MaxRefresh: time.Hour,
// PayloadFunc: handler.PayloadFunc,
// IdentityHandler: handler.IdentityHandler,
// Authenticator: handler.Authenticator,
// Authorizator: handler.Authorizator,
// Unauthorized: handler.Unauthorized,
// TokenLookup: "header: Authorization, query: token, cookie: jwt",
// TokenHeadName: "Bearer",
// TimeFunc: time.Now,
//})
//reply.Token = a.
//reply.PlayerUserId = strconv.Itoa(data.Id)
e.OK(reply, "查询成功")
}
// GetPage 获取球员账户信息列表
// @Summary 获取球员账户信息列表
// @Description 获取球员账户信息列表
// @Tags 球员账户信息
// @Param pageSize query int false "页条数"
// @Param pageIndex query int false "页码"
// @Success 200 {string} string {"code": 200, "data": [...]}
// @Router /api/v1/org-player-user [get]
// @Security Bearer
func (e OrgPlayerUser) GetPage(c *gin.Context) {
req := dto.OrgPlayerUserGetPageReq{}
s := service.OrgPlayerUser{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
p := actions.GetPermissionFromContext(c)
list := make([]models.OrgPlayerUser, 0)
var count int64
err = s.GetPage(&req, p, &list, &count)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取球员账户信息 失败,\r\n失败信息 %s", err.Error()))
return
}
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
}
// Get 获取球员账户信息
// @Summary 获取球员账户信息
// @Description 获取球员账户信息
// @Tags 球员账户信息
// @Param id path string false "id"
// @Success 200 {string} string "{"code": 200,"msg":"更新成功","data":{}}"
// @Router /api/v1/org-player-user/{id} [get]
// @Security Bearer
func (e OrgPlayerUser) Get(c *gin.Context) {
req := dto.OrgPlayerUserGetReq{}
s := service.OrgPlayerUser{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
var object models.OrgPlayerUser
p := actions.GetPermissionFromContext(c)
err = s.Get(&req, p, &object)
if err != nil {
e.Error(500, err, fmt.Sprintf("获取球员账户信息失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(object, "查询成功")
}
// Insert 创建球员账户信息
// @Summary 创建球员账户信息
// @Description 创建球员账户信息
// @Tags 球员账户信息
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgPlayerUserInsertReq true "data"
// @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
// @Router /api/v1/org-player-user [post]
// @Security Bearer
func (e OrgPlayerUser) Insert(c *gin.Context) {
req := dto.OrgPlayerUserInsertReq{}
s := service.OrgPlayerUser{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// 设置创建人
req.SetCreateBy(user.GetUserId(c))
err = s.Insert(&req)
if err != nil {
e.Error(500, err, fmt.Sprintf("创建球员账户信息 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.GetId(), "创建成功")
}
// Update 修改球员账户信息
// @Summary 修改球员账户信息
// @Description 修改球员账户信息
// @Tags 球员账户信息
// @Accept application/json
// @Product application/json
// @Param data body dto.OrgPlayerUserUpdateReq true "body"
// @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
// @Router /api/v1/org-player-user/{id} [put]
// @Security Bearer
func (e OrgPlayerUser) Update(c *gin.Context) {
req := dto.OrgPlayerUserUpdateReq{}
s := service.OrgPlayerUser{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
req.SetUpdateBy(user.GetUserId(c))
p := actions.GetPermissionFromContext(c)
err = s.Update(&req, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("修改球员账户信息 失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.GetId(), "修改成功")
}
// Delete 删除球员账户信息
// @Summary 删除球员账户信息
// @Description 删除球员账户信息
// @Tags 球员账户信息
// @Param ids body []int false "ids"
// @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
// @Router /api/v1/org-player-user [delete]
// @Security Bearer
func (e OrgPlayerUser) Delete(c *gin.Context) {
s := service.OrgPlayerUser{}
req := dto.OrgPlayerUserDeleteReq{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// req.SetUpdateBy(user.GetUserId(c))
p := actions.GetPermissionFromContext(c)
err = s.Remove(&req, p)
if err != nil {
e.Error(500, err, fmt.Sprintf("删除球员账户信息失败,\r\n失败信息 %s", err.Error()))
return
}
e.OK(req.GetId(), "删除成功")
}
package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/operate/apis"
"go-admin/common/middleware"
)
func init() {
routerCheckRole = append(routerCheckRole, registerOrgPlayerRouter)
}
// registerOrgPlayerRouter
func registerOrgPlayerRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
api := apis.OrgPlayer{}
r := v1.Group("/org-player").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
{
r.GET("", api.GetPage)
r.GET("/:id", api.Get)
r.POST("", api.Insert)
r.PUT("/:id", api.Update)
r.PUT("/update-status", api.UpdateStatus)
r.DELETE("", api.Delete)
}
}
package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis"
"go-admin/common/middleware"
)
func init() {
routerCheckRole = append(routerCheckRole, registerOrgPlayerUserRouter)
routerNoCheckRole = append(routerNoCheckRole, registerNoCheckOrgPlayerUserRouter)
}
// registerOrgPlayerUserRouter
func registerOrgPlayerUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
api := apis.OrgPlayerUser{}
r := v1.Group("/org-player-user").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
{
r.GET("", api.GetPage)
r.GET("/:id", api.Get)
r.POST("", api.Insert)
r.PUT("/:id", api.Update)
r.DELETE("", api.Delete)
}
}
func registerNoCheckOrgPlayerUserRouter(v1 *gin.RouterGroup) {
api := apis.OrgPlayerUser{}
r := v1.Group("/org-player-user")
{
r.POST("/login", api.Login)
}
}
package dto
import (
"crypto/md5"
"encoding/hex"
"go-admin/app/operate/models"
"go-admin/common/dto"
common "go-admin/common/models"
"time"
)
type OrgPlayerGetPageReq struct {
dto.Pagination `search:"-"`
TeamId string `form:"teamId" search:"-"`
TeamName string `form:"teamName" search:"type:contains;column:team_name;table:ot" comment:""`
PlayerName string `form:"playerName" search:"type:contains;column:player_name;table:op" comment:""`
Status string `form:"status" search:"type:exact;column:status;table:op" comment:""`
}
type OrgPlayerGetPageReply struct {
Id string `json:"id" comment:"球队id"` //球队id
ClubId string `json:"clubId" comment:"俱乐部id"`
ClubName string `json:"clubName" comment:"俱乐部名称"`
TeamId string `json:"teamId" comment:"球队id"`
TeamName string `json:"teamName" comment:"球队名称"`
PlayerName string `json:"playerName" comment:"球员名称"`
PlayerNameEn string `json:"playerNameEn" comment:"球员名称英文"`
PlayerNumber string `json:"playerNumber" comment:"球衣号"`
Position string `json:"position" comment:"场上位置"`
Sex string `json:"sex" comment:"性别"`
Status string `json:"status" comment:"状态"`
}
type OrgPlayerOrder struct {
Id int `form:"idOrder" search:"type:order;column:id;table:org_player"`
ClubId string `form:"clubIdOrder" search:"type:order;column:club_id;table:org_player"`
TeamId string `form:"teamIdOrder" search:"type:order;column:team_id;table:org_player"`
PlayerName string `form:"playerNameOrder" search:"type:order;column:player_name;table:org_player"`
IdCard string `form:"idCardOrder" search:"type:order;column:id_card;table:org_player"`
Sex string `form:"sexOrder" search:"type:order;column:sex;table:org_player"`
PlayerNumber string `form:"playerNumberOrder" search:"type:order;column:player_number;table:org_player"`
Position string `form:"positionOrder" search:"type:order;column:position;table:org_player"`
PlayerImg string `form:"playerImgOrder" search:"type:order;column:player_img;table:org_player"`
PlayerUserId string `form:"playerUserIdOrder" search:"type:order;column:player_user_id;table:org_player"`
ShareConf string `form:"shareConfOrder" search:"type:order;column:share_conf;table:org_player"`
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:org_player"`
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:org_player"`
CreatedAt time.Time `form:"createdAtOrder" search:"type:order;column:created_at;table:org_player"`
UpdatedAt time.Time `form:"updatedAtOrder" search:"type:order;column:updated_at;table:org_player"`
DeletedAt time.Time `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:org_player"`
}
func (m *OrgPlayerGetPageReq) GetNeedSearch() interface{} {
return *m
}
type OrgPlayerInsertReq struct {
Id int `json:"-" comment:""` //
ClubId string `json:"clubId" comment:"org_club表id"`
TeamId string `json:"teamId" comment:"org_team表id"`
PlayerName string `json:"playerName" comment:"球员姓名"`
IdCard string `json:"idCard" comment:"身份证号"`
Sex string `json:"sex" comment:"性别"`
PlayerNumber string `json:"playerNumber" comment:"球衣号码"`
Position string `json:"position" comment:"场上位置"`
PlayerImg string `json:"playerImg" comment:"球员照片"`
PlayerUserId string `json:"playerUserId" comment:"org_player_user表id"`
ShareConf string `json:"shareConf" comment:"分享功能 1 开启 2 关闭" default:"1"`
PlayerNameEn string `json:"playerNameEn" comment:"球员名称英文"`
Username string `json:"username" comment:"账号"`
common.ControlBy
}
func (s *OrgPlayerInsertReq) Generate(model *models.OrgPlayer) {
if s.Id == 0 {
model.Model = common.Model{Id: s.Id}
}
model.ClubId = s.ClubId
model.TeamId = s.TeamId
model.PlayerName = s.PlayerName
model.PlayerNameEn = s.PlayerNameEn
model.IdCard = s.IdCard
model.Sex = s.Sex
model.PlayerNumber = s.PlayerNumber
model.Position = s.Position
model.PlayerImg = s.PlayerImg
model.PlayerUserId = s.PlayerUserId
model.ShareConf = s.ShareConf
}
func (s *OrgPlayerInsertReq) GetId() interface{} {
return s.Id
}
type OrgPlayerUpdateReq struct {
Id int `uri:"id" comment:""` //
ClubId string `json:"clubId" comment:"org_club表id"`
TeamId string `json:"teamId" comment:"org_team表id"`
PlayerName string `json:"playerName" comment:"球员姓名"`
IdCard string `json:"idCard" comment:"身份证号"`
Sex string `json:"sex" comment:"性别"`
PlayerNumber string `json:"playerNumber" comment:"球衣号码"`
Position string `json:"position" comment:"场上位置"`
PlayerImg string `json:"playerImg" comment:"球员照片"`
PlayerUserId string `json:"playerUserId" comment:"org_player_user表id"`
ShareConf string `json:"shareConf" comment:"分享功能 1 开启 2 关闭" default:"1"`
PlayerNameEn string `json:"playerNameEn" comment:"球员名称英文"`
Username string `json:"username" comment:"账号"`
Status string `json:"status" comment:"状态 1 离队 2 在队" default:"2"` //状态 1 离队 2 在队
common.ControlBy
}
type OrgPlayerUpdateStatusReq struct {
Id int `json:"id" comment:""` //
Status string `json:"status" comment:"状态 1 离队 2 在队"` //状态 1 离队 2 在队
common.ControlBy
}
func (s *OrgPlayerUpdateReq) Generate(model *models.OrgPlayer) {
if s.Id == 0 {
model.Model = common.Model{Id: s.Id}
}
model.ClubId = s.ClubId
model.TeamId = s.TeamId
model.PlayerName = s.PlayerName
model.PlayerNameEn = s.PlayerNameEn
model.IdCard = s.IdCard
model.Sex = s.Sex
model.PlayerNumber = s.PlayerNumber
model.Position = s.Position
model.PlayerImg = s.PlayerImg
model.PlayerUserId = s.PlayerUserId
model.ShareConf = s.ShareConf
model.Status = s.Status
}
func (s *OrgPlayerUpdateReq) GetId() interface{} {
return s.Id
}
// OrgPlayerGetReq 功能获取请求参数
type OrgPlayerGetReq struct {
Id int `uri:"id"`
}
type OrgPlayerGetReply struct {
Id int `json:"id" comment:"球员id"`
ClubId string `json:"clubId" comment:"俱乐部id"`
ClubName string `json:"clubName" comment:"俱乐部名称"`
TeamId string `json:"teamId" comment:"球队id"`
TeamName string `json:"teamName" comment:"球队名称"`
PlayerName string `json:"playerName" comment:"球员名称"`
PlayerNameEn string `json:"playerNameEn" comment:"球员名称英文"`
IdCard string `json:"idCard" comment:"身份证号"`
Sex string `json:"sex" comment:"性别"`
PlayerNumber string `json:"playerNumber" comment:"球衣号"`
Position string `json:"position" comment:"场上位置"`
PlayerImg string `json:"playerImg" comment:"球员照片"`
Username string `json:"username" comment:"账号"`
ShareConf string `json:"shareConf" comment:"分享功能 1 开启 2 关闭"`
Status string `json:"status" comment:"状态 1 离队 2 在队"` //1 离队 2 在队
}
func (s *OrgPlayerGetReq) GetId() interface{} {
return s.Id
}
// OrgPlayerDeleteReq 功能删除请求参数
type OrgPlayerDeleteReq struct {
Ids []int `json:"ids"`
}
func (s *OrgPlayerDeleteReq) GetId() interface{} {
return s.Ids
}
func Pwd(password string) string {
if password == "" {
return ""
}
// 改为md5 修改时需同时修改创建的加密
h := md5.New()
h.Write([]byte(password))
return hex.EncodeToString(h.Sum(nil))
//var hash []byte
//var err error
//if hash, err = bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost); err != nil {
// return ""
//} else {
// return string(hash)
//
//}
}
...@@ -7,7 +7,7 @@ import ( ...@@ -7,7 +7,7 @@ import (
type OrgPlayerRankGetPageReq struct { type OrgPlayerRankGetPageReq struct {
dto.Pagination `search:"-"` dto.Pagination `search:"-"`
LeagueId string `form:"leagueId" search:"type:exact;column:league_id;table:om" comment:"联赛级别id"` //联赛级别id LeagueId string `form:"leagueId" search:"type:exact;column:league_id;table:om" comment:"联赛级别id"` //联赛级别id
TypeName string `form:"typeName" search:"type:exact;column:rounds;table:omtp" comment:"轮次"` //轮次 TypeName string `form:"typeName" search:"-"` //
} }
type OrgPlayerRankGetPageReply struct { type OrgPlayerRankGetPageReply struct {
......
package dto
import (
"go-admin/app/operate/models"
"go-admin/common/dto"
common "go-admin/common/models"
"time"
)
type LoginReq struct {
Username string `json:"username"`
Password string `json:"password"`
}
type LoginReply struct {
Token string `json:"token"`
PlayerUserId string `json:"playerUserId"`
}
type OrgPlayerUserGetPageReq struct {
dto.Pagination `search:"-"`
OrgPlayerUserOrder
}
type OrgPlayerUserOrder struct {
Id int `form:"idOrder" search:"type:order;column:id;table:org_player_user"`
Username string `form:"usernameOrder" search:"type:order;column:username;table:org_player_user"`
Password string `form:"passwordOrder" search:"type:order;column:password;table:org_player_user"`
Nickname string `form:"nicknameOrder" search:"type:order;column:nickname;table:org_player_user"`
Headimg string `form:"headimgOrder" search:"type:order;column:headimg;table:org_player_user"`
OpenId string `form:"openIdOrder" search:"type:order;column:open_id;table:org_player_user"`
Phone string `form:"phoneOrder" search:"type:order;column:phone;table:org_player_user"`
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:org_player_user"`
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:org_player_user"`
CreatedAt time.Time `form:"createdAtOrder" search:"type:order;column:created_at;table:org_player_user"`
UpdatedAt time.Time `form:"updatedAtOrder" search:"type:order;column:updated_at;table:org_player_user"`
DeletedAt time.Time `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:org_player_user"`
}
func (m *OrgPlayerUserGetPageReq) GetNeedSearch() interface{} {
return *m
}
type OrgPlayerUserInsertReq struct {
Id int `json:"-" comment:""` //
Username string `json:"username" comment:"登录账号(手机号)"`
Password string `json:"password" comment:"密码"`
Nickname string `json:"nickname" comment:"昵称"`
Headimg string `json:"headimg" comment:"头像"`
OpenId string `json:"openId" comment:"小程序唯一id"`
Phone string `json:"phone" comment:"小程序手机号"`
common.ControlBy
}
func (s *OrgPlayerUserInsertReq) Generate(model *models.OrgPlayerUser) {
if s.Id == 0 {
model.Model = common.Model{Id: s.Id}
}
model.Username = s.Username
model.Password = s.Password
model.Nickname = s.Nickname
model.Headimg = s.Headimg
model.OpenId = s.OpenId
model.Phone = s.Phone
}
func (s *OrgPlayerUserInsertReq) GetId() interface{} {
return s.Id
}
type OrgPlayerUserUpdateReq struct {
Id int `uri:"id" comment:""` //
Username string `json:"username" comment:"登录账号(手机号)"`
Password string `json:"password" comment:"密码"`
Nickname string `json:"nickname" comment:"昵称"`
Headimg string `json:"headimg" comment:"头像"`
OpenId string `json:"openId" comment:"小程序唯一id"`
Phone string `json:"phone" comment:"小程序手机号"`
common.ControlBy
}
func (s *OrgPlayerUserUpdateReq) Generate(model *models.OrgPlayerUser) {
if s.Id == 0 {
model.Model = common.Model{Id: s.Id}
}
model.Username = s.Username
model.Password = s.Password
model.Nickname = s.Nickname
model.Headimg = s.Headimg
model.OpenId = s.OpenId
model.Phone = s.Phone
}
func (s *OrgPlayerUserUpdateReq) GetId() interface{} {
return s.Id
}
// OrgPlayerUserGetReq 功能获取请求参数
type OrgPlayerUserGetReq struct {
Id int `uri:"id"`
}
func (s *OrgPlayerUserGetReq) GetId() interface{} {
return s.Id
}
// OrgPlayerUserDeleteReq 功能删除请求参数
type OrgPlayerUserDeleteReq struct {
Ids []int `json:"ids"`
}
func (s *OrgPlayerUserDeleteReq) GetId() interface{} {
return s.Ids
}
package service
import (
"errors"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm"
"go-admin/app/operate/models"
"go-admin/app/operate/service/dto"
"go-admin/common/actions"
cDto "go-admin/common/dto"
)
type OrgPlayer struct {
service.Service
}
// GetPage 获取OrgPlayer列表
func (e *OrgPlayer) GetPage(c *dto.OrgPlayerGetPageReq, p *actions.DataPermission, list *[]dto.OrgPlayerGetPageReply, count *int64) error {
var err error
var data models.OrgPlayer
err = e.Orm.Table("org_player as op").
Select("op.id,op.club_id,oc.club_name,op.team_id,ot.team_name,"+
"op.player_name,op.player_number,op.position,op.sex,op.status").
Joins("left join org_club as oc on op.club_id=oc.id").
Joins("left join org_team as ot on op.team_id=ot.id").
Joins("left join org_player_user as opu on op.player_user_id=opu.id").
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
actions.Permission(data.TableName(), p),
cDto.SetWhere("op", "team_id", c.TeamId),
cDto.PassDel("op"),
).
Find(list).Limit(-1).Offset(-1).
Count(count).Error
if err != nil {
e.Log.Errorf("OrgPlayerService GetPage error:%s \r\n", err)
return err
}
return nil
}
// Get 获取OrgPlayer对象
func (e *OrgPlayer) Get(d *dto.OrgPlayerGetReq, p *actions.DataPermission, model *dto.OrgPlayerGetReply) error {
var data models.OrgPlayer
err := e.Orm.Table("org_player as op").
Select("op.id,op.club_id,oc.club_name,op.team_id,ot.team_name,"+
"op.player_name,op.player_name_en,op.id_card,op.player_number,"+
"op.position,op.sex,op.player_img,opu.username,op.share_conf,op.status").
Joins("left join org_club as oc on op.club_id=oc.id").
Joins("left join org_team as ot on op.team_id=ot.id").
Joins("left join org_player_user as opu on op.player_user_id=opu.id").
Scopes(
actions.Permission(data.TableName(), p),
).
First(model, d.GetId()).Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
e.Log.Errorf("Service GetOrgPlayer error:%s \r\n", err)
return err
}
if err != nil {
e.Log.Errorf("db error:%s", err)
return err
}
return nil
}
// Insert 创建OrgPlayer对象
func (e *OrgPlayer) Insert(c *dto.OrgPlayerInsertReq) error {
var err error
var data models.OrgPlayer
c.Generate(&data)
err = e.Orm.Create(&data).Error
if err != nil {
e.Log.Errorf("OrgPlayerService Insert error:%s \r\n", err)
return err
}
return nil
}
// Update 修改OrgPlayer对象
func (e *OrgPlayer) Update(c *dto.OrgPlayerUpdateReq, p *actions.DataPermission) error {
var err error
var data = models.OrgPlayer{}
e.Orm.Scopes(
actions.Permission(data.TableName(), p),
).First(&data, c.GetId())
c.Generate(&data)
db := e.Orm.Updates(&data)
if db.Error != nil {
e.Log.Errorf("OrgPlayerService Save error:%s \r\n", err)
return err
}
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}
return nil
}
// Remove 删除OrgPlayer
func (e *OrgPlayer) Remove(d *dto.OrgPlayerDeleteReq, p *actions.DataPermission) error {
var data models.OrgPlayer
db := e.Orm.Model(&data).
Scopes(
actions.Permission(data.TableName(), p),
).Delete(&data, d.GetId())
if err := db.Error; err != nil {
e.Log.Errorf("Service RemoveOrgPlayer error:%s \r\n", err)
return err
}
if db.RowsAffected == 0 {
return errors.New("无权删除该数据")
}
return nil
}
This diff is collapsed.
package service
import (
"errors"
"github.com/go-admin-team/go-admin-core/sdk/service"
"gorm.io/gorm"
"go-admin/app/mobile/service/dto"
"go-admin/app/operate/models"
"go-admin/common/actions"
cDto "go-admin/common/dto"
)
type OrgPlayerUser struct {
service.Service
}
// GetPage 获取OrgPlayerUser列表
func (e *OrgPlayerUser) GetPage(c *dto.OrgPlayerUserGetPageReq, p *actions.DataPermission, list *[]models.OrgPlayerUser, count *int64) error {
var err error
var data models.OrgPlayerUser
err = e.Orm.Model(&data).
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
actions.Permission(data.TableName(), p),
).
Find(list).Limit(-1).Offset(-1).
Count(count).Error
if err != nil {
e.Log.Errorf("OrgPlayerUserService GetPage error:%s \r\n", err)
return err
}
return nil
}
// Get 获取OrgPlayerUser对象
func (e *OrgPlayerUser) Get(d *dto.OrgPlayerUserGetReq, p *actions.DataPermission, model *models.OrgPlayerUser) error {
var data models.OrgPlayerUser
err := e.Orm.Model(&data).
Scopes(
actions.Permission(data.TableName(), p),
).
First(model, d.GetId()).Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
e.Log.Errorf("Service GetOrgPlayerUser error:%s \r\n", err)
return err
}
if err != nil {
e.Log.Errorf("db error:%s", err)
return err
}
return nil
}
// Insert 创建OrgPlayerUser对象
func (e *OrgPlayerUser) Insert(c *dto.OrgPlayerUserInsertReq) error {
var err error
var data models.OrgPlayerUser
c.Generate(&data)
err = e.Orm.Create(&data).Error
if err != nil {
e.Log.Errorf("OrgPlayerUserService Insert error:%s \r\n", err)
return err
}
c.Id = data.Id
return nil
}
// Update 修改OrgPlayerUser对象
func (e *OrgPlayerUser) Update(c *dto.OrgPlayerUserUpdateReq, p *actions.DataPermission) error {
var err error
var data = models.OrgPlayerUser{}
e.Orm.Scopes(
actions.Permission(data.TableName(), p),
).First(&data, c.GetId())
c.Generate(&data)
db := e.Orm.Updates(&data)
if db.Error != nil {
e.Log.Errorf("OrgPlayerUserService Save error:%s \r\n", err)
return err
}
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}
return nil
}
// Remove 删除OrgPlayerUser
func (e *OrgPlayerUser) Remove(d *dto.OrgPlayerUserDeleteReq, p *actions.DataPermission) error {
var data models.OrgPlayerUser
db := e.Orm.Model(&data).
Scopes(
actions.Permission(data.TableName(), p),
).Delete(&data, d.GetId())
if err := db.Error; err != nil {
e.Log.Errorf("Service RemoveOrgPlayerUser error:%s \r\n", err)
return err
}
if db.RowsAffected == 0 {
return errors.New("无权删除该数据")
}
return nil
}
func (e *OrgPlayerUser) IsBeing(username string) (error, int) {
var data models.OrgPlayerUser
err := e.Orm.Model(&data).
Where("username=?", username).
First(&data).Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
e.Log.Errorf("Service GetOrgMatchTeamPlayer error:%s \r\n", err)
return err, 0
}
if err != nil {
e.Log.Errorf("db error:%s", err)
return err, 0
}
return nil, data.Id
}
// Get 获取OrgPlayerUser对象
func (e *OrgPlayerUser) Login(d *dto.LoginReq, p *actions.DataPermission, model *models.OrgPlayerUser) error {
var data models.OrgPlayerUser
err := e.Orm.Model(&data).
Scopes(
actions.Permission(data.TableName(), p),
).
Where("username=?", d.Username).
Where("password=?", d.Password).
First(model).Error
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = errors.New("查看对象不存在或无权查看")
e.Log.Errorf("Service GetOrgPlayerUser error:%s \r\n", err)
return err
}
if err != nil {
e.Log.Errorf("db error:%s", err)
return err
}
return nil
}
package service
import (
"github.com/go-admin-team/go-admin-core/sdk/service"
cDto "go-admin/common/dto"
"go-admin/common/utils"
"sort"
"strconv"
"go-admin/app/mobile/service/dto"
"go-admin/common/actions"
)
type OrgTeamRank struct {
service.Service
}
// GetPage 获取OrgMatchEvaluate列表
func (e *OrgTeamRank) GetPage(c *dto.OrgPlayerRankGetPageReq, p *actions.DataPermission, list *[]dto.OrgPlayerRankGetPageReply, count *int64) error {
var err error
err = e.Orm.Table("org_match_team_player as omtp").
Select("ol.league_name, omtp.player_name, omtp.player_id as id, omtp.player_number,"+
"sum(omtp.scoring)as scoring,"+
"sum(omtp.rebound)as rebound,"+
"sum(omtp.assist)as assist,"+
"sum(omtp.steal)as steal,"+
"sum(omtp.free_throw)as free_throw,"+
"sum(omtp.block_shot)as block_shot,"+
"sum(omtp.foul)as foul,"+
"sum(omtp.two_point_shot)as two_point_shot,"+
"sum(omtp.three_point_shot)as three_point_shot").
Joins("left join org_team as ot on ot.id = omtp.team_id").
Joins("left join org_player as op on op.id = omtp.player_id").
Joins("left join org_match as om on omtp.match_id = om.id and omtp.rounds = om.rounds").
Joins("left join org_league as ol on ol.id = om.league_id").
Scopes(
cDto.MakeCondition(c.GetNeedSearch()),
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
actions.Permission("omtp", p),
cDto.PassDel("omtp"),
cDto.SetWhere("omtp", "league_id", c.LeagueId),
).
Group("omtp.player_id").
Find(list).Limit(-1).Offset(-1).
Count(count).Error
if err != nil {
e.Log.Errorf("OrgClubPlayer GetPage error:%s \r\n", err)
return err
}
if c.TypeName == "scoring" {
e.rankingScoring(list)
}
return nil
}
func (e *OrgTeamRank) rankingScoring(list *[]dto.OrgPlayerRankGetPageReply) {
listData := *list
sort.Slice(listData, func(i, j int) bool {
return utils.StringToFloat(listData[i].Scoring) > utils.StringToFloat(listData[j].Scoring)
})
for k := range listData {
listData[k].Rank = strconv.Itoa(k + 1)
}
}
package dto package dto
import ( import (
"crypto/md5"
"encoding/hex"
"go-admin/app/operate/models" "go-admin/app/operate/models"
"go-admin/common/dto" "go-admin/common/dto"
common "go-admin/common/models" common "go-admin/common/models"
"golang.org/x/crypto/bcrypt"
"time" "time"
) )
...@@ -175,13 +176,16 @@ func Pwd(password string) string { ...@@ -175,13 +176,16 @@ func Pwd(password string) string {
if password == "" { if password == "" {
return "" return ""
} }
// 改为md5 修改时需同时修改登录的加密
var hash []byte h := md5.New()
var err error h.Write([]byte(password))
if hash, err = bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost); err != nil { return hex.EncodeToString(h.Sum(nil))
return ""
} else { //var hash []byte
return string(hash) //var err error
//if hash, err = bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost); err != nil {
} // return ""
//} else {
// return string(hash)
//}
} }
...@@ -15,3 +15,8 @@ func GetAvg(data string, count int64) string { ...@@ -15,3 +15,8 @@ func GetAvg(data string, count int64) string {
res := fmt.Sprintf("%.2f", floatData/float64(count)) res := fmt.Sprintf("%.2f", floatData/float64(count))
return res return res
} }
func StringToFloat(data string) float64 {
reply, _ := strconv.ParseFloat(data, 64)
return reply
}
package utils
import (
"errors"
"github.com/dgrijalva/jwt-go"
"github.com/spf13/viper"
"time"
)
type MemberInfo struct {
UserName string `json:"user_name"`
UserId string `json:"user_id"`
CityId string `json:"city_id"`
}
type UserInfo struct {
UserId int64 `json:"user_id"`
}
// MyClaims 自定义声明结构体并内嵌jwt.StandardClaims
// jwt包自带的jwt.StandardClaims只包含了官方字段
// 我们这里需要额外记录一个UserID字段,所以要自定义结构体
// 如果想要保存更多信息,都可以添加到这个结构体中
type MyClaims struct {
UserId int64 `json:"user_id"`
//Username string `json:"username"`
jwt.StandardClaims
}
// GenToken 生成JWT
func GenToken(userID int64) (string, error) {
// 创建一个我们自己的声明
//
c := MyClaims{
userID, // 自定义字段
jwt.StandardClaims{
ExpiresAt: time.Now().Add(time.Hour * time.Duration(viper.GetInt("jwt.expire_hours"))).Unix(), // 过期时间
Issuer: viper.GetString("app.name"), // 签发人
},
}
// 使用指定的签名方法创建签名对象
token := jwt.NewWithClaims(jwt.SigningMethodHS256, c)
// 使用指定的secret签名并获得完整的编码后的字符串token
return token.SignedString([]byte(viper.GetString("jwt.secret")))
}
// ParseToken 解析JWT
func ParseToken(tokenString string) (*MyClaims, error) {
// 解析token
token, err := jwt.ParseWithClaims(tokenString, &MyClaims{}, func(token *jwt.Token) (i interface{}, err error) {
return []byte(viper.GetString("jwt.secret")), nil
})
if err != nil {
return nil, err
}
if claims, ok := token.Claims.(*MyClaims); ok && token.Valid { // 校验token
return claims, nil
}
return nil, errors.New("invalid token")
}
...@@ -9,6 +9,8 @@ require ( ...@@ -9,6 +9,8 @@ require (
github.com/bitly/go-simplejson v0.5.0 github.com/bitly/go-simplejson v0.5.0
github.com/bytedance/go-tagexpr/v2 v2.7.12 github.com/bytedance/go-tagexpr/v2 v2.7.12
github.com/casbin/casbin/v2 v2.25.1 github.com/casbin/casbin/v2 v2.25.1
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/forgoer/openssl v1.1.1
github.com/gin-gonic/gin v1.7.3 github.com/gin-gonic/gin v1.7.3
github.com/go-admin-team/go-admin-core v1.3.8 github.com/go-admin-team/go-admin-core v1.3.8
github.com/go-admin-team/go-admin-core/sdk v1.3.9 github.com/go-admin-team/go-admin-core/sdk v1.3.9
...@@ -21,6 +23,7 @@ require ( ...@@ -21,6 +23,7 @@ require (
github.com/shirou/gopsutil v3.21.5+incompatible github.com/shirou/gopsutil v3.21.5+incompatible
github.com/spf13/cast v1.3.1 github.com/spf13/cast v1.3.1
github.com/spf13/cobra v1.0.0 github.com/spf13/cobra v1.0.0
github.com/spf13/viper v1.4.0
github.com/swaggo/gin-swagger v1.2.0 github.com/swaggo/gin-swagger v1.2.0
github.com/swaggo/swag v1.6.7 github.com/swaggo/swag v1.6.7
github.com/tklauser/go-sysconf v0.3.6 // indirect github.com/tklauser/go-sysconf v0.3.6 // indirect
......
...@@ -175,6 +175,8 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL ...@@ -175,6 +175,8 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY= github.com/forestgiant/sliceutil v0.0.0-20160425183142-94783f95db6c/go.mod h1:pFdJbAhRf7rh6YYMUdIQGyzne6zYL1tCUW8QV2B3UfY=
github.com/forgoer/openssl v1.1.1 h1:eM5ohpXPVQPK8hRjstf1uHBUu9LMG/oObkSpq8wIw/o=
github.com/forgoer/openssl v1.1.1/go.mod h1:NMVFOzYeLVR7UiGTxsa+A21nrERTZ3Rv2JHDPcJpDyI=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc= github.com/fsouza/go-dockerclient v1.6.0/go.mod h1:YWwtNPuL4XTX1SKJQk86cWPmmqwx+4np9qfPbb+znGc=
...@@ -366,6 +368,7 @@ github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA ...@@ -366,6 +368,7 @@ github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
...@@ -508,6 +511,7 @@ github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= ...@@ -508,6 +511,7 @@ github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA= github.com/linode/linodego v0.10.0/go.mod h1:cziNP7pbvE3mXIPneHj0oRY8L1WtGEIKlZ8LANE4eXA=
github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ= github.com/liquidweb/liquidweb-go v1.6.0/go.mod h1:UDcVnAMDkZxpw4Y7NOHkqoeiGacVLEIG/i5J9cyixzQ=
github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU= github.com/lucas-clemente/quic-go v0.14.1/go.mod h1:Vn3/Fb0/77b02SGhQk36KzOUmXgVpFfizUfW5WMaqyU=
github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
...@@ -559,6 +563,7 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 ...@@ -559,6 +563,7 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4
github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ=
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
...@@ -619,6 +624,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI ...@@ -619,6 +624,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
...@@ -707,15 +713,18 @@ github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIK ...@@ -707,15 +713,18 @@ github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIK
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU=
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment