You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
2.8 KiB
140 lines
2.8 KiB
package http |
|
|
|
import ( |
|
"context" |
|
"go-common/app/admin/main/apm/conf" |
|
"go-common/app/admin/main/apm/model/need" |
|
|
|
bm "go-common/library/net/http/blademaster" |
|
) |
|
|
|
// @params NListReq |
|
// @router get /x/admin/apm/need/list |
|
// @response NListResp |
|
func needList(c *bm.Context) { |
|
var ( |
|
infos []*need.NInfo |
|
total int64 |
|
err error |
|
) |
|
username := name(c) |
|
arg := new(need.NListReq) |
|
if err = c.Bind(arg); err != nil { |
|
return |
|
} |
|
if infos, total, err = apmSvc.NeedInfoList(c, arg, username); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
res := &need.NListResp{ |
|
Data: infos, |
|
Total: total, |
|
} |
|
c.JSON(res, nil) |
|
} |
|
|
|
// @params NAddReq |
|
// @router post /x/admin/apm/need/add |
|
// @response EmpResp |
|
func needAdd(c *bm.Context) { |
|
var err error |
|
username := name(c) |
|
|
|
req := new(need.NAddReq) |
|
if err = c.Bind(req); err != nil { |
|
return |
|
} |
|
if err = apmSvc.NeedInfoAdd(c, req, username); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
go apmSvc.SendWeMessage(context.Background(), req.Title, need.VerifyType[need.NeedApply], "", username, conf.Conf.Superman) |
|
go apmSvc.SendWeMessage(context.Background(), req.Title, need.VerifyType[need.NeedVerify], "", username, []string{username}) |
|
|
|
c.JSON(nil, err) |
|
|
|
} |
|
|
|
// @params NEditReq |
|
// @router post /x/admin/apm/need/edit |
|
// @response EmpResp |
|
func needEdit(c *bm.Context) { |
|
var err error |
|
req := new(need.NEditReq) |
|
if err = c.Bind(req); err != nil { |
|
return |
|
} |
|
username := name(c) |
|
|
|
if err = apmSvc.NeedInfoEdit(c, req, username); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(nil, err) |
|
|
|
} |
|
|
|
// @params NVerifyReq |
|
// @router post /x/admin/apm/need/verify |
|
// @response EmpResp |
|
func needVerify(c *bm.Context) { |
|
var ( |
|
err error |
|
ni *need.NInfo |
|
) |
|
req := new(need.NVerifyReq) |
|
if err = c.Bind(req); err != nil { |
|
return |
|
} |
|
username := name(c) |
|
if ni, err = apmSvc.NeedInfoVerify(c, req); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
go apmSvc.SendWeMessage(context.Background(), ni.Title, need.VerifyType[need.NeedReview], need.VerifyType[req.Status], username, []string{username}) |
|
|
|
c.JSON(nil, err) |
|
|
|
} |
|
|
|
// @params Likereq |
|
// @router post /x/admin/apm/need/thumbsup |
|
// @response EmpResp |
|
func needThumbsUp(c *bm.Context) { |
|
var err error |
|
req := new(need.Likereq) |
|
if err = c.Bind(req); err != nil { |
|
return |
|
} |
|
username := name(c) |
|
if err = apmSvc.NeedInfoVote(c, req, username); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(nil, err) |
|
|
|
} |
|
|
|
// @params Likereq |
|
// @router get /x/admin/need/vote/list |
|
// @response VoteListResp |
|
func needVoteList(c *bm.Context) { |
|
var ( |
|
votes []*need.UserLikes |
|
total int64 |
|
err error |
|
) |
|
req := new(need.Likereq) |
|
if err = c.Bind(req); err != nil { |
|
return |
|
} |
|
if votes, total, err = apmSvc.NeedVoteList(c, req); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
res := &need.VoteListResp{ |
|
Data: votes, |
|
Total: total, |
|
} |
|
c.JSON(res, nil) |
|
}
|
|
|