|
@@ -7,9 +7,13 @@ import ( |
|
|
svc2 "applet/app/svc/friend_circle" |
|
|
svc2 "applet/app/svc/friend_circle" |
|
|
"applet/app/utils" |
|
|
"applet/app/utils" |
|
|
"code.fnuoos.com/EggPlanet/egg_system_rules.git/md" |
|
|
"code.fnuoos.com/EggPlanet/egg_system_rules.git/md" |
|
|
|
|
|
svc3 "code.fnuoos.com/EggPlanet/egg_system_rules.git/svc" |
|
|
"code.fnuoos.com/go_rely_warehouse/zyos_go_es.git/es" |
|
|
"code.fnuoos.com/go_rely_warehouse/zyos_go_es.git/es" |
|
|
|
|
|
"context" |
|
|
|
|
|
"errors" |
|
|
"fmt" |
|
|
"fmt" |
|
|
"github.com/gin-gonic/gin" |
|
|
"github.com/gin-gonic/gin" |
|
|
|
|
|
"github.com/olivere/elastic/v7" |
|
|
"strconv" |
|
|
"strconv" |
|
|
"time" |
|
|
"time" |
|
|
) |
|
|
) |
|
@@ -185,16 +189,213 @@ func CommentDetail(c *gin.Context) { |
|
|
e.OutSuc(c, resp, nil) |
|
|
e.OutSuc(c, resp, nil) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Delete |
|
|
|
|
|
// @Summary 朋友圈-删除朋友圈 |
|
|
|
|
|
// @Tags 朋友圈 |
|
|
|
|
|
// @Description 删除朋友圈 |
|
|
|
|
|
// @Accept json |
|
|
|
|
|
// @Produce json |
|
|
|
|
|
// @param Authorization header string true "验证参数Bearer和token空格拼接" |
|
|
|
|
|
// @Param req body friend_circles.EggFriendCircleDelReq true "请求参数" |
|
|
|
|
|
// @Success 200 {string} "success" |
|
|
|
|
|
// @Failure 400 {object} md.Response "具体错误" |
|
|
|
|
|
// @Router /api/v1/circleFriends/delete [DELETE] |
|
|
func Delete(c *gin.Context) { |
|
|
func Delete(c *gin.Context) { |
|
|
|
|
|
var req friend_circles.EggFriendCircleDelReq |
|
|
|
|
|
err := c.ShouldBindJSON(&req) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
err = svc.HandleValidateErr(err) |
|
|
|
|
|
err1 := err.(e.E) |
|
|
|
|
|
e.OutErr(c, err1.Code, err1.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
user := svc.GetUser(c) |
|
|
|
|
|
aliasName := md.EggFriendCircleEsAlias |
|
|
|
|
|
// 1.判断是否是自己文章 |
|
|
|
|
|
doc, err := es.FirstDoc(md.EggFriendCircleEsIndex, req.CircleIndexId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR_DB_ORM, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if !doc.Found { // 表示没找到数据 |
|
|
|
|
|
e.OutErr(c, e.ERR_NOT_FAN, "朋友圈文档记录不存在") |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if doc.Uid != utils.Int64ToStr(user.Id) { |
|
|
|
|
|
e.OutErr(c, e.ERR, errors.New("不允许删除别人的朋友圈")) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 2.删除文章 |
|
|
|
|
|
deleteDocRet, err := es.DeleteDoc(aliasName, req.CircleIndexId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
fmt.Printf("CreateDoc ==> %+v \n\n", deleteDocRet) |
|
|
|
|
|
|
|
|
|
|
|
// 3.将评论id推入mq |
|
|
|
|
|
err = svc2.DelFriendCircleComment(req.CircleIndexId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
e.OutSuc(c, "success", nil) |
|
|
e.OutSuc(c, "success", nil) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Share |
|
|
|
|
|
// @Summary 朋友圈-分享后朋友圈分享数(增加) |
|
|
|
|
|
// @Tags 朋友圈 |
|
|
|
|
|
// @Description 分享后朋友圈分享数(增加) |
|
|
|
|
|
// @Accept json |
|
|
|
|
|
// @Produce json |
|
|
|
|
|
// @param Authorization header string true "验证参数Bearer和token空格拼接" |
|
|
|
|
|
// @Param req body friend_circles.EggFriendCircleShareReq true "请求参数" |
|
|
|
|
|
// @Success 200 {string} "success" |
|
|
|
|
|
// @Failure 400 {object} md.Response "具体错误" |
|
|
|
|
|
// @Router /api/v1/circleFriends/share [POST] |
|
|
func Share(c *gin.Context) { |
|
|
func Share(c *gin.Context) { |
|
|
|
|
|
var req friend_circles.EggFriendCircleShareReq |
|
|
|
|
|
err := c.ShouldBindJSON(&req) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
err = svc.HandleValidateErr(err) |
|
|
|
|
|
err1 := err.(e.E) |
|
|
|
|
|
e.OutErr(c, err1.Code, err1.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
script := elastic.NewScript("ctx._source.share_nums += params.inc").Param("inc", 1) |
|
|
|
|
|
aliasName := md.EggFriendCircleEsAlias |
|
|
|
|
|
_, err = es.EsClient.Update(). |
|
|
|
|
|
Index(aliasName). |
|
|
|
|
|
Id(req.CircleIndexId). |
|
|
|
|
|
Script(script). |
|
|
|
|
|
Do(context.Background()) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
e.OutSuc(c, "success", nil) |
|
|
e.OutSuc(c, "success", nil) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Like |
|
|
|
|
|
// @Summary 朋友圈-点赞朋友圈 |
|
|
|
|
|
// @Tags 朋友圈 |
|
|
|
|
|
// @Description 点赞朋友圈 |
|
|
|
|
|
// @Accept json |
|
|
|
|
|
// @Produce json |
|
|
|
|
|
// @param Authorization header string true "验证参数Bearer和token空格拼接" |
|
|
|
|
|
// @Param req body friend_circles.EggFriendCircleLikeReq true "请求参数" |
|
|
|
|
|
// @Success 200 {string} "success" |
|
|
|
|
|
// @Failure 400 {object} md.Response "具体错误" |
|
|
|
|
|
// @Router /api/v1/circleFriends/like [POST] |
|
|
func Like(c *gin.Context) { |
|
|
func Like(c *gin.Context) { |
|
|
|
|
|
var req friend_circles.EggFriendCircleLikeReq |
|
|
|
|
|
err := c.ShouldBindJSON(&req) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
err = svc.HandleValidateErr(err) |
|
|
|
|
|
err1 := err.(e.E) |
|
|
|
|
|
e.OutErr(c, err1.Code, err1.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
user := svc.GetUser(c) |
|
|
|
|
|
|
|
|
|
|
|
likeEsIndex := svc3.GetEggFriendCircleLikeEsIndex(user.Id) |
|
|
|
|
|
likeId := svc3.GetEggFriendCircleLikeEsIndexId(user.Id, req.CircleIndexId) |
|
|
|
|
|
// 判断是否已经点赞过 |
|
|
|
|
|
query := elastic.NewBoolQuery(). |
|
|
|
|
|
Must( |
|
|
|
|
|
elastic.NewTermQuery("_id", likeId), |
|
|
|
|
|
) |
|
|
|
|
|
searchResult, err := es.EsClient.Search().Index(likeEsIndex). |
|
|
|
|
|
Query(query). |
|
|
|
|
|
Size(0). // 只关心总数,不实际返回文档 |
|
|
|
|
|
Do(context.Background()) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
total := searchResult.TotalHits() |
|
|
|
|
|
if int(total) > 0 { |
|
|
|
|
|
e.OutSuc(c, "success", nil) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 新增点赞信息 |
|
|
|
|
|
now := time.Now() |
|
|
|
|
|
m := md.EggFriendCircleLikeEs{ |
|
|
|
|
|
Uid: user.Id, |
|
|
|
|
|
ImUid: 0, |
|
|
|
|
|
CircleId: req.CircleIndexId, |
|
|
|
|
|
CreatedAt: now.Format("2006-01-02 15:04:05"), |
|
|
|
|
|
UpdatedAt: now.Format("2006-01-02 15:04:05"), |
|
|
|
|
|
} |
|
|
|
|
|
createDocRet, err := es.CreateDoc(likeEsIndex, likeId, &m) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
fmt.Printf("CreateDoc ==> %+v \n\n", createDocRet) |
|
|
|
|
|
|
|
|
|
|
|
// 增加文章点赞数 |
|
|
|
|
|
script := elastic.NewScript("ctx._source.likes_nums += params.inc").Param("inc", 1) |
|
|
|
|
|
aliasName := md.EggFriendCircleEsAlias |
|
|
|
|
|
_, err = es.EsClient.Update(). |
|
|
|
|
|
Index(aliasName). |
|
|
|
|
|
Id(req.CircleIndexId). |
|
|
|
|
|
Script(script). |
|
|
|
|
|
Do(context.Background()) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
e.OutSuc(c, "success", nil) |
|
|
e.OutSuc(c, "success", nil) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// CancelLike |
|
|
|
|
|
// @Summary 朋友圈-取消点赞朋友圈 |
|
|
|
|
|
// @Tags 朋友圈 |
|
|
|
|
|
// @Description 取消点赞朋友圈 |
|
|
|
|
|
// @Accept json |
|
|
|
|
|
// @Produce json |
|
|
|
|
|
// @param Authorization header string true "验证参数Bearer和token空格拼接" |
|
|
|
|
|
// @Param req body friend_circles.EggFriendCircleCancelLikeReq true "请求参数" |
|
|
|
|
|
// @Success 200 {string} "success" |
|
|
|
|
|
// @Failure 400 {object} md.Response "具体错误" |
|
|
|
|
|
// @Router /api/v1/circleFriends/cancelLike [POST] |
|
|
func CancelLike(c *gin.Context) { |
|
|
func CancelLike(c *gin.Context) { |
|
|
|
|
|
// 减少文章点赞数 |
|
|
|
|
|
var req friend_circles.EggFriendCircleCancelLikeReq |
|
|
|
|
|
err := c.ShouldBindJSON(&req) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
err = svc.HandleValidateErr(err) |
|
|
|
|
|
err1 := err.(e.E) |
|
|
|
|
|
e.OutErr(c, err1.Code, err1.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
user := svc.GetUser(c) |
|
|
|
|
|
|
|
|
|
|
|
// 删除点赞信息 |
|
|
|
|
|
likeEsIndex := svc3.GetEggFriendCircleLikeEsIndex(user.Id) |
|
|
|
|
|
likeId := svc3.GetEggFriendCircleLikeEsIndexId(user.Id, req.CircleIndexId) |
|
|
|
|
|
deleteDocRet, err := es.DeleteDoc(likeEsIndex, likeId) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
fmt.Printf("DeleteDoc ==> %+v \n\n", deleteDocRet) |
|
|
|
|
|
|
|
|
|
|
|
// 减少文章点赞数 |
|
|
|
|
|
script := elastic.NewScript("ctx._source.likes_nums -= params.inc").Param("inc", 1) |
|
|
|
|
|
aliasName := md.EggFriendCircleEsAlias |
|
|
|
|
|
_, err = es.EsClient.Update(). |
|
|
|
|
|
Index(aliasName). |
|
|
|
|
|
Id(req.CircleIndexId). |
|
|
|
|
|
Script(script). |
|
|
|
|
|
Do(context.Background()) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
e.OutErr(c, e.ERR, err.Error()) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
e.OutSuc(c, "success", nil) |
|
|
e.OutSuc(c, "success", nil) |
|
|
} |
|
|
} |