work_site.go 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. package models
  2. import (
  3. "errors"
  4. "strconv"
  5. "strings"
  6. "zhiyuan/pkg/db"
  7. "github.com/gin-gonic/gin"
  8. )
  9. type WorkSite struct {
  10. ID int `json:"id"`
  11. PkgId int `json:"pkg_id"`
  12. Username string `json:"username" search:"like"`
  13. Phone string `json:"phone" search:"like"`
  14. Village string `json:"village" search:"like"`
  15. Address string `json:"address" search:"like"`
  16. RoomNo string `json:"room_no" search:"like"`
  17. Area string `json:"area" search:"like"`
  18. Longitude string `json:"longitude"`
  19. Latitude string `json:"latitude"`
  20. ManagerId int `json:"manager_id"`
  21. DesignerId int `json:"designer_id"`
  22. SalesmanId int `json:"salesman_id"`
  23. ProjectManagerId int `json:"project_manager_id"`
  24. ProjectLeaderId int `json:"project_leader_id"`
  25. ServicerId int `json:"servicer_id"`
  26. QualityId int `json:"quality_id"`
  27. AssistantId int `json:"assistant_id"`
  28. CreatedId int `json:"created_id"`
  29. AdminIds string `json:"admin_ids"`
  30. StartTime int `json:"starttime"`
  31. EndTime int `json:"endtime"`
  32. RealStartTime int `json:"real_starttime"`
  33. RealEndTime int `json:"real_endtime"`
  34. StopTime int `json:"stoptime"`
  35. Discount string `json:"discount"`
  36. Promotion string `json:"promotion"`
  37. Gifts string `json:"gifts"`
  38. Other string `json:"other"`
  39. Hose string `json:"hose"`
  40. Bear string `json:"bear"`
  41. State int `json:"state" type:"int" search:"="`
  42. CreatedAt int `json:"created_at"`
  43. UpdatedAt int `json:"updated_at"`
  44. db.BaseModel
  45. }
  46. func (WorkSite) TableName() string {
  47. return "zy_work_site"
  48. }
  49. func (a WorkSite) GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*WorkSite, error) {
  50. if retVal == nil {
  51. var workSite *WorkSite
  52. err := db.GetOne(a.TableName(), where, fields, &workSite)
  53. return workSite, err
  54. } else {
  55. err := db.GetOne(a.TableName(), where, fields, retVal)
  56. return nil, err
  57. }
  58. }
  59. func (a WorkSite) GetMulti(where map[string]interface{}, fields []string, retVal interface{}) ([]*WorkSite, error) {
  60. if retVal == nil {
  61. var workSite []*WorkSite
  62. err := db.GetMulti(a.TableName(), where, fields, &workSite)
  63. return workSite, err
  64. } else {
  65. err := db.GetMulti(a.TableName(), where, fields, retVal)
  66. return nil, err
  67. }
  68. }
  69. func (a WorkSite) GetOneRaw(where map[string]string, param map[string]interface{}, retVal interface{}) (*WorkSite, error) {
  70. workSite, err := a.GetMultiRaw(where, param, retVal)
  71. if err != nil {
  72. return nil, err
  73. }
  74. if len(workSite) == 0 {
  75. return nil, errors.New("empty record2")
  76. }
  77. return workSite[0], nil
  78. }
  79. func (a WorkSite) GetMultiRaw(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*WorkSite, error) {
  80. field := "SELECT * FROM zy_work_site "
  81. if retVal == nil {
  82. var workSite []*WorkSite
  83. err := db.GetMultiRaw(field, where, param, &workSite)
  84. return workSite, err
  85. } else {
  86. err := db.GetMultiRaw(field, where, param, retVal)
  87. return nil, err
  88. }
  89. }
  90. func (model WorkSite) AdminAuth(adminID int) bool {
  91. auth := false
  92. for _, v := range strings.Split(model.AdminIds, ",") {
  93. if num, err := strconv.Atoi(v); err == nil && num == adminID {
  94. auth = true
  95. break
  96. }
  97. }
  98. return auth
  99. }
  100. type WorkSiteModel struct {
  101. WorkSite
  102. ManagerName string `json:"manager_name" prop:"select:manager.username"`
  103. ManagerPhone string `json:"manager_phone" prop:"select:manager.phone"`
  104. ManagerHeadImgUrl string `json:"manager_headimgurl" prop:"select:manager.headimgurl"`
  105. DesignerName string `json:"designer_name" prop:"select:designer.username"`
  106. DesignerPhone string `json:"designer_phone" prop:"select:designer.phone"`
  107. DesignerHeadImgUrl string `json:"designer_headimgurl" prop:"select:designer.headimgurl"`
  108. SalesmanName string `json:"salesman_name" prop:"select:salesman.username"`
  109. SalesmanPhone string `json:"salesman_phone" prop:"select:salesman.phone"`
  110. SalesmanHeadImgUrl string `json:"salesman_headimgurl" prop:"select:salesman.headimgurl"`
  111. ProjectManagerName string `json:"project_manager_name" prop:"select:project_manager.username"`
  112. ProjectManagerPhone string `json:"project_manager_phone" prop:"select:project_manager.phone"`
  113. ProjectManagerHeadImgUrl string `json:"project_manager_headimgurl" prop:"select:project_manager.headimgurl"`
  114. ProjectLeaderName string `json:"project_leader_name" prop:"select:project_leader.username"`
  115. ProjectLeaderPhone string `json:"project_leader_phone" prop:"select:project_leader.phone"`
  116. ProjectLeaderHeadImgUrl string `json:"project_leader_headimgurl" prop:"select:project_leader.headimgurl"`
  117. ServicerName string `json:"servicer_name" prop:"select:servicer.username"`
  118. ServicerPhone string `json:"servicer_phone" prop:"select:servicer.phone"`
  119. ServicerHeadImgUrl string `json:"servicer_headimgurl" prop:"select:servicer.headimgurl"`
  120. QualityName string `json:"quality_name" prop:"select:quality.username"`
  121. QualityPhone string `json:"quality_phone" prop:"select:quality.phone"`
  122. QualityHeadImgUrl string `json:"quality_headimgurl" prop:"select:quality.headimgurl"`
  123. AssistantName string `json:"assistant_name" prop:"select:assistant.username"`
  124. AssistantPhone string `json:"assistant_phone" prop:"select:assistant.phone"`
  125. AssistantHeadImgUrl string `json:"assistant_headimgurl" prop:"select:assistant.headimgurl"`
  126. }
  127. func (WorkSiteModel) OnePrivilege(c *gin.Context, id int64) bool {
  128. return true
  129. }
  130. func (WorkSiteModel) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  131. return true
  132. }
  133. func (model WorkSiteModel) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
  134. return []db.JoinModel{
  135. {
  136. Model: Admin{},
  137. As: "manager",
  138. On: []string{"`manager`.`id` = " + model.TableName() + ".`manager_id`"},
  139. },
  140. {
  141. Model: Admin{},
  142. As: "designer",
  143. On: []string{"`designer`.`id` = " + model.TableName() + ".`designer_id`"},
  144. },
  145. {
  146. Model: Admin{},
  147. As: "salesman",
  148. On: []string{"`salesman`.`id` = " + model.TableName() + ".`salesman_id`"},
  149. },
  150. {
  151. Model: Admin{},
  152. As: "project_manager",
  153. On: []string{"`project_manager`.`id` = " + model.TableName() + ".`project_manager_id`"},
  154. },
  155. {
  156. Model: Admin{},
  157. As: "project_leader",
  158. On: []string{"`project_leader`.`id` = " + model.TableName() + ".`project_leader_id`"},
  159. },
  160. {
  161. Model: Admin{},
  162. As: "servicer",
  163. On: []string{"`servicer`.`id` = " + model.TableName() + ".`servicer_id`"},
  164. },
  165. {
  166. Model: Admin{},
  167. As: "quality",
  168. On: []string{"`quality`.`id` = " + model.TableName() + ".`quality_id`"},
  169. },
  170. {
  171. Model: Admin{},
  172. As: "assistant",
  173. On: []string{"`assistant`.`id` = " + model.TableName() + ".`assistant_id`"},
  174. },
  175. }
  176. }
  177. func (WorkSiteModel) Page() bool {
  178. return false
  179. }
  180. func (WorkSiteModel) Count() bool {
  181. return true
  182. }