2023-12-27 01:48:24 +08:00
|
|
|
package friend
|
|
|
|
|
|
|
|
import (
|
|
|
|
"PersonalMain/api"
|
|
|
|
"PersonalMain/api/request"
|
|
|
|
"PersonalMain/internal/model/entity"
|
|
|
|
"PersonalMain/internal/service/LinkService"
|
|
|
|
"PersonalMain/utility/ErrorCode"
|
|
|
|
"PersonalMain/utility/ResultUtil"
|
|
|
|
"context"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
|
|
"github.com/gogf/gf/v2/net/ghttp"
|
|
|
|
)
|
|
|
|
|
|
|
|
type ControllerV1 struct{}
|
|
|
|
|
|
|
|
func NewLinkCustomFriendV1() api.ILinkV1 {
|
|
|
|
return &ControllerV1{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func linkService() LinkService.LinkService {
|
|
|
|
return LinkService.NewLinkService()
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetLinkFriend
|
|
|
|
//
|
|
|
|
// 获取友链
|
|
|
|
func (*ControllerV1) GetLinkFriend(ctx context.Context, _ *request.GetLinkFriendReq) (res *request.GetLinkFriendRes, err error) {
|
|
|
|
req := ghttp.RequestFromCtx(ctx)
|
|
|
|
// 获取业务
|
|
|
|
linkService().GetLinkFriend(req)
|
|
|
|
return res, err
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetSortAndLink
|
|
|
|
//
|
|
|
|
// 获取分类和友链
|
|
|
|
func (*ControllerV1) GetSortAndLink(ctx context.Context, _ *request.GetSortAndLinkReq) (res *request.GetSortAndLinkRes, err error) {
|
|
|
|
req := ghttp.RequestFromCtx(ctx)
|
|
|
|
// 获取业务
|
|
|
|
linkService().GetSortAndLink(req)
|
|
|
|
return res, err
|
|
|
|
}
|
|
|
|
|
|
|
|
// AddLinkFriend
|
|
|
|
//
|
|
|
|
// 添加友链
|
|
|
|
func (*ControllerV1) AddLinkFriend(ctx context.Context, _ *request.AddLinkFriendReq) (res *request.AddLinkFriendRes, err error) {
|
|
|
|
req := ghttp.RequestFromCtx(ctx)
|
|
|
|
// 获取业务
|
|
|
|
addFriendVO := entity.LinkAddFriendVO{}
|
|
|
|
err = req.GetRequestStruct(&addFriendVO)
|
|
|
|
if err == nil {
|
|
|
|
// 检查对象
|
|
|
|
errStruct := g.Validator().Data(addFriendVO).Run(ctx)
|
|
|
|
if errStruct == nil {
|
|
|
|
if addFriendVO.LinkAccept {
|
|
|
|
hasAdd, blogDO, info := linkService().AddLinkFriendCustom(req, addFriendVO)
|
|
|
|
if hasAdd {
|
|
|
|
ResultUtil.Success(req, "添加成功", blogDO)
|
|
|
|
} else {
|
|
|
|
switch info {
|
|
|
|
case "FriendLinkAlreadyExists":
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.FriendLinkAlreadyExists)
|
|
|
|
case "LinkAddressError":
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.LinkAddressError)
|
|
|
|
case "LikeLinkAlreadyExists":
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.LikeLinkAlreadyExists)
|
|
|
|
case "AddLinkFriendError":
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.ServerDatabaseInteriorError)
|
|
|
|
default:
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.ServerUnknownError)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.LinkAcceptDenied)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
g.Log().Cat("Struct").Cat("Link").Notice(ctx, errStruct.Map())
|
|
|
|
ResultUtil.Error(req, ErrorCode.RequestBodyError, errStruct.Error())
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
g.Log().Cat("Struct").Cat("Link").Error(ctx, err.Error())
|
|
|
|
ResultUtil.Error(req, ErrorCode.RequestBodyError, err.Error())
|
|
|
|
}
|
|
|
|
return res, err
|
|
|
|
}
|
2023-12-29 16:37:44 +08:00
|
|
|
|
|
|
|
// DelLinkFriend
|
|
|
|
//
|
|
|
|
// 删除友链
|
|
|
|
func (*ControllerV1) DelLinkFriend(ctx context.Context, _ *request.DelLinkFriendReq) (res *request.DelLinkFriendRes, err error) {
|
|
|
|
req := ghttp.RequestFromCtx(ctx)
|
|
|
|
// 获取业务
|
|
|
|
delFriendVO := entity.LinkDelFriendVO{}
|
|
|
|
err = req.GetRequestStruct(&delFriendVO)
|
|
|
|
if err == nil {
|
|
|
|
// 检查对象
|
|
|
|
errStruct := g.Validator().Data(delFriendVO).Run(ctx)
|
|
|
|
if errStruct == nil {
|
|
|
|
hasDel, info := linkService().DelLinkFriendCustom(req, delFriendVO)
|
|
|
|
if hasDel {
|
|
|
|
ResultUtil.Success(req, "删除成功", nil)
|
|
|
|
} else {
|
|
|
|
switch info {
|
|
|
|
case "FriendLinkDoesNotExist":
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.FriendLinkDoesNotExist)
|
|
|
|
case "DelLinkFriendError":
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.ServerDatabaseInteriorError)
|
|
|
|
default:
|
|
|
|
ResultUtil.ErrorNoData(req, ErrorCode.ServerUnknownError)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
g.Log().Cat("Struct").Cat("Link").Notice(ctx, errStruct.Map())
|
|
|
|
ResultUtil.Error(req, ErrorCode.RequestBodyError, errStruct.Error())
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
g.Log().Cat("Struct").Cat("Link").Error(ctx, err.Error())
|
|
|
|
ResultUtil.Error(req, ErrorCode.RequestBodyError, err.Error())
|
|
|
|
}
|
|
|
|
return res, err
|
|
|
|
}
|