workprocessrequire.go 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package workprocessrequire
  2. import (
  3. "errors"
  4. "zhiyuan/models"
  5. "zhiyuan/pkg/app"
  6. "zhiyuan/pkg/db"
  7. "zhiyuan/services/form"
  8. )
  9. var WorkProcessRequire models.WorkProcessRequire
  10. func Add(form form.WorkProcessRequireAdd) (int64, error) {
  11. if CheckWorkProcessRequireDuplicate(form.ProcessId, form.Name) {
  12. return 0, errors.New("要点已存在")
  13. }
  14. workProcessRequireMap := map[string]interface{}{
  15. "`process_id`": form.ProcessId,
  16. "`name`": form.Name,
  17. "`content`": form.Content,
  18. "`pictures`": form.Pictures,
  19. "`state`": form.State,
  20. }
  21. workProcessRequireID, err := db.InsertOne(WorkProcessRequire.TableName(), workProcessRequireMap)
  22. if err != nil {
  23. return 0, nil
  24. }
  25. return workProcessRequireID, nil
  26. }
  27. func EditByID(form form.WorkProcessRequireAdd, id int) error {
  28. info, err := GetInfoByID(id, nil, nil)
  29. if info == nil {
  30. return errors.New("invalid id")
  31. }
  32. if info.Name != form.Name && CheckWorkProcessRequireDuplicate(form.ProcessId, form.Name) {
  33. return errors.New("要点已存在")
  34. }
  35. workProcessRequireMap := map[string]interface{}{
  36. "`process_id`": form.ProcessId,
  37. "`name`": form.Name,
  38. "`content`": form.Content,
  39. "`pictures`": form.Pictures,
  40. "`state`": form.State,
  41. }
  42. _, err = db.Update(WorkProcessRequire.TableName(), map[string]interface{}{"id": id}, workProcessRequireMap)
  43. return err
  44. }
  45. func DeleteByID(id int) error {
  46. info, _ := GetInfoByID(id, nil, nil)
  47. if info == nil {
  48. return errors.New("invalid id")
  49. }
  50. _, err := db.DeleteSoft(WorkProcessRequire.TableName(), map[string]interface{}{"id": id})
  51. return err
  52. }
  53. func Count(where map[string]interface{}) (int64, error) {
  54. return db.Count(WorkProcessRequire.TableName(), where)
  55. }
  56. func CountRaw(where string, param map[string]interface{}) (int64, error) {
  57. query := "`zy_work_process_require` WHERE " + where
  58. return db.CountRaw(query, param)
  59. }
  60. func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.WorkProcessRequire, error) {
  61. if page.PageNum > 0 && page.PageSize > 0 {
  62. where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize))
  63. }
  64. return WorkProcessRequire.GetMulti(where, fields, retVal)
  65. }
  66. func GetWorkProcesssRaw(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*models.WorkProcessRequire, error) {
  67. return WorkProcessRequire.GetMultiRaw(where, param, retVal)
  68. }
  69. func GetWorkSiteRequiresRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  70. field := "SELECT `zy_work_process_require`.*, `zy_work_site_process_point`.`id` as `point_id`, `zy_work_site_process_point`.`pictures` as `picture_list`, `zy_work_site_process_point`.`mark` as `mark` from `zy_work_process_require` left join `zy_work_site_process_point` on `zy_work_site_process_point`.`require_id` = `zy_work_process_require`.`id` AND `zy_work_site_process_point`.`deleted_at`=0"
  71. where["_group_by"] = "`zy_work_process_require`.`id`"
  72. return db.GetMultiRaw(field, where, param, retVal)
  73. }
  74. func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.WorkProcessRequire, error) {
  75. return WorkProcessRequire.GetOne(where, fields, retVal)
  76. }
  77. func GetInfoByID(id int, fields []string, retVal interface{}) (*models.WorkProcessRequire, error) {
  78. return GetOne(map[string]interface{}{"id": id}, fields, retVal)
  79. }
  80. func CheckWorkProcessRequireDuplicate(processId int, name string) bool {
  81. workProcessRequireInfo, err := GetOne(map[string]interface{}{"process_id": processId, "name": name, "deleted_at": 0}, nil, nil)
  82. return workProcessRequireInfo != nil && err == nil
  83. }