process.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package api
  2. import (
  3. "box-cost/db/model"
  4. "box-cost/db/repo"
  5. "box-cost/log"
  6. "errors"
  7. "time"
  8. "github.com/gin-gonic/gin"
  9. "go.mongodb.org/mongo-driver/bson/primitive"
  10. )
  11. func Process(r *GinRouter) {
  12. // 获取生产计划详情
  13. r.GET("/process/detail/:id", ProcessDetail)
  14. CreateCRUD(r, "/process", &CRUDOption{
  15. Collection: "process",
  16. NewModel: func(c *gin.Context, apictx *ApiSession) (interface{}, error) {
  17. entity := &model.Process{}
  18. c.ShouldBindJSON(entity)
  19. entity.CreateTime = time.Now()
  20. entity.UpdateTime = time.Now()
  21. return entity, nil
  22. },
  23. EmtyModel: func(c *gin.Context, apictx *ApiSession) interface{} {
  24. return &model.Process{}
  25. },
  26. JWT: true,
  27. OnUpdate: func(c *gin.Context, apictx *ApiSession, entity interface{}) {
  28. process := entity.(*model.Process)
  29. process.UpdateTime = time.Now()
  30. },
  31. SearchProject: []string{"name", "unit", "norm", "price", "category", "remark"},
  32. })
  33. }
  34. func ProcessDetail(c *gin.Context, apictx *ApiSession) (interface{}, error) {
  35. processId := c.Param("id")
  36. id, err := primitive.ObjectIDFromHex(processId)
  37. if err != nil {
  38. return nil, errors.New("非法id")
  39. }
  40. var process model.Process
  41. option := &repo.DocSearchOptions{
  42. CollectName: repo.CollectionProcess,
  43. Query: repo.Map{"_id": id},
  44. }
  45. found, err := repo.RepoSeachDoc(apictx.CreateRepoCtx(), option, &process)
  46. if !found || err != nil {
  47. log.Info(err)
  48. return nil, errors.New("数据未找到")
  49. }
  50. return process, nil
  51. }