exeamLog.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package api
  2. import (
  3. "copter-train/db/model"
  4. "copter-train/db/repo"
  5. "copter-train/log"
  6. "errors"
  7. "time"
  8. "github.com/gin-gonic/gin"
  9. "go.mongodb.org/mongo-driver/bson"
  10. "go.mongodb.org/mongo-driver/bson/primitive"
  11. )
  12. // 提交考核试题
  13. func SubmitExeamLog(c *gin.Context, apictx *ApiSession) (interface{}, error) {
  14. db := c.Param("scope")
  15. exeamLog := &model.ExeamLog{}
  16. err := c.ShouldBindJSON(exeamLog)
  17. if err != nil {
  18. log.Error(err)
  19. return nil, err
  20. }
  21. cid, _ := primitive.ObjectIDFromHex(exeamLog.Cid)
  22. if cid.IsZero() {
  23. return nil, errors.New("cid错误")
  24. }
  25. exeamLog.Uid = apictx.User.ID
  26. exeamLog.CreateTime = time.Now()
  27. exeamLog.UpdateTime = time.Now()
  28. return repo.RepoAddDbDoc(apictx.CreateRepoCtx(), db, repo.CollectionExeamLog, exeamLog)
  29. }
  30. // 考核记录列表
  31. // /exeamLog/list/:scope?page=1&size=10&query={"uid":"xxx","type":"理论"}
  32. func ExeamLogList(c *gin.Context, apictx *ApiSession) (interface{}, error) {
  33. db := c.Param("scope")
  34. if len(db) == 0 {
  35. return nil, errors.New("scope不能为空")
  36. }
  37. page, size, query := UtilQueryPageSize(c)
  38. return repo.RepoDbPageSearch(apictx.CreateRepoCtx(), &repo.PageSearchOptions{
  39. Db: db,
  40. CollectName: repo.CollectionExeamLog,
  41. Page: page,
  42. Size: size,
  43. Query: query,
  44. Sort: bson.M{"createTime": 1},
  45. })
  46. }