worksitedesign.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package worksitedesign
  2. import (
  3. "errors"
  4. "zhiyuan/models"
  5. "zhiyuan/pkg/app"
  6. "zhiyuan/pkg/db"
  7. "zhiyuan/pkg/utils"
  8. "zhiyuan/services/form"
  9. "zhiyuan/services/work/worksite"
  10. )
  11. var WorkSiteDesign models.WorkSiteDesign
  12. func Add(form form.WorkSiteDesignAdd, adminID int) (int64, error) {
  13. worksiteInfo, err := worksite.GetInfoByID(form.SiteId, nil, nil)
  14. if worksiteInfo == nil {
  15. return 0, errors.New("invalid worksite id")
  16. }
  17. if worksiteInfo.DesignerId != adminID {
  18. return 0, errors.New("账号权限有误")
  19. }
  20. if worksiteInfo.State == 2 {
  21. return 0, errors.New("项目已完工")
  22. }
  23. workSiteDesignMap := map[string]interface{}{
  24. "`site_id`": form.SiteId,
  25. "`type_id`": form.TypeId,
  26. "`designer_id`": adminID,
  27. "`name`": form.Name,
  28. "`pictures`": form.Pictures,
  29. "`mark`": form.Mark,
  30. }
  31. workSiteDesignID, err := db.InsertOne(WorkSiteDesign.TableName(), workSiteDesignMap)
  32. if err != nil {
  33. return 0, nil
  34. }
  35. return workSiteDesignID, nil
  36. }
  37. func EditByID(form form.WorkSiteDesignEdit, id int, adminID int) error {
  38. info, err := GetInfoByID(id, nil, nil)
  39. if info == nil {
  40. return errors.New("invalid id")
  41. }
  42. if info.DesignerId != adminID {
  43. return errors.New("账号权限有误")
  44. }
  45. worksiteInfo, err := worksite.GetInfoByID(info.SiteId, nil, nil)
  46. if worksiteInfo == nil {
  47. return errors.New("invalid worksite id")
  48. }
  49. if worksiteInfo.DesignerId != adminID {
  50. return errors.New("账号权限有误")
  51. }
  52. if worksiteInfo.State == 2 {
  53. return errors.New("项目已完工")
  54. }
  55. workSiteDesignMap := map[string]interface{}{
  56. "`type_id`": form.TypeId,
  57. "`name`": form.Name,
  58. "`pictures`": form.Pictures,
  59. "`mark`": form.Mark,
  60. }
  61. _, err = db.Update(WorkSiteDesign.TableName(), map[string]interface{}{"id": id}, workSiteDesignMap)
  62. return err
  63. }
  64. func DeleteByID(id int, adminID int) error {
  65. info, _ := GetInfoByID(id, nil, nil)
  66. if info == nil {
  67. return errors.New("invalid id")
  68. }
  69. if info.DesignerId != adminID {
  70. return errors.New("账号权限有误")
  71. }
  72. worksiteInfo, _ := worksite.GetInfoByID(info.SiteId, nil, nil)
  73. if worksiteInfo == nil {
  74. return errors.New("invalid worksite id")
  75. }
  76. if worksiteInfo.DesignerId != adminID {
  77. return errors.New("账号权限有误")
  78. }
  79. if worksiteInfo.State == 2 {
  80. return errors.New("项目已完工")
  81. }
  82. _, err := db.DeleteSoft(WorkSiteDesign.TableName(), map[string]interface{}{"id": id})
  83. return err
  84. }
  85. func Count(where map[string]interface{}) (int64, error) {
  86. return db.Count(WorkSiteDesign.TableName(), where)
  87. }
  88. func CountRaw(where string, param map[string]interface{}) (int64, error) {
  89. query := "`zy_work_site_design` WHERE " + where
  90. return db.CountRaw(query, param)
  91. }
  92. func GetList(where map[string]interface{}, fields []string, page app.Page, retVal interface{}) ([]*models.WorkSiteDesign, error) {
  93. if page.PageNum > 0 && page.PageSize > 0 {
  94. where["_limit"] = db.GetOffset(uint(page.PageNum), uint(page.PageSize))
  95. }
  96. return WorkSiteDesign.GetMulti(where, fields, retVal)
  97. }
  98. func GetWorkSiteDesignsRaw(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  99. field := "SELECT `zy_work_site_design`.*, `zy_design_type`.`name` as `type_name`, `zy_admin`.`name` as `designer_name`, `zy_admin`.`phone` as `designer_phone` FROM `zy_work_site_design` left join `zy_admin` on `zy_admin`.`id` = `zy_work_site_design`.`designer_id` left join `zy_design_type` on `zy_design_type`.`id` = `zy_work_site_design`.`type_id` "
  100. return db.GetMultiRaw(field, where, param, retVal)
  101. }
  102. func GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*models.WorkSiteDesign, error) {
  103. return WorkSiteDesign.GetOne(where, fields, retVal)
  104. }
  105. func GetWorkSiteDesignOne(where map[string]string, param map[string]interface{}, retVal interface{}) error {
  106. field := "SELECT `zy_work_site_design`.*, `zy_design_type`.`name` as `type_name`, `zy_admin`.`name` as `designer_name`, `zy_admin`.`phone` as `designer_phone` FROM `zy_work_site_design` left join `zy_admin` on `zy_admin`.`id` = `zy_work_site_design`.`designer_id` left join `zy_design_type` on `zy_design_type`.`id` = `zy_work_site_design`.`type_id` "
  107. where["_page_size"] = utils.ToStr(1)
  108. where["_page_num"] = utils.ToStr(1)
  109. return db.GetMultiRaw(field, where, param, retVal)
  110. }
  111. func GetWorkSiteDesignByID(id int, retVal interface{}) error {
  112. where := map[string]string{
  113. "where": "`zy_work_site_design`.`id` = {{id}}",
  114. }
  115. param := map[string]interface{}{"id": id}
  116. return GetWorkSiteDesignOne(where, param, retVal)
  117. }
  118. func GetInfoByID(id int, fields []string, retVal interface{}) (*models.WorkSiteDesign, error) {
  119. return GetOne(map[string]interface{}{"id": id}, fields, retVal)
  120. }