config_data.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. package backend
  2. import (
  3. "kpt-pasture/model"
  4. "go.uber.org/zap"
  5. pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
  6. "gitee.com/xuyiping_admin/pkg/logger/zaplog"
  7. )
  8. func (s *StoreEntry) BarnTypeEnumList(userModel *model.UserModel, excludeTypes []pasturePb.PenType_Kind, isAll string) []*pasturePb.ConfigOptionsList {
  9. dataList := make([]*model.ConfigPenType, 0)
  10. pref := s.DB.Model(new(model.ConfigPenType)).
  11. Where("is_show =? ", pasturePb.IsShow_Ok).
  12. Where("pasture_id =? ", userModel.AppPasture.Id)
  13. if isAll == model.IsAllYes {
  14. pref = pref.Where("kind >= ?", pasturePb.PenType_Invalid)
  15. } else {
  16. pref = pref.Where("kind > ?", pasturePb.PenType_Invalid)
  17. }
  18. if err := pref.Order("kind ASC").
  19. Find(&dataList).Error; err != nil {
  20. zaplog.Error("BarnTypeEnumList", zap.Any("err", err))
  21. return make([]*pasturePb.ConfigOptionsList, 0)
  22. }
  23. allBarnTypes := model.ConfigBarnTypeSlice(dataList).ToPB2(userModel)
  24. barnTypeList := make([]*pasturePb.ConfigOptionsList, 0)
  25. if len(excludeTypes) == 0 || excludeTypes == nil {
  26. return allBarnTypes
  27. }
  28. for _, v1 := range allBarnTypes {
  29. var info bool
  30. for _, v2 := range excludeTypes {
  31. if v1.Value == int32(v2) {
  32. info = true
  33. break
  34. }
  35. }
  36. if !info {
  37. barnTypeList = append(barnTypeList, &pasturePb.ConfigOptionsList{
  38. Value: v1.Value,
  39. Label: v1.Label,
  40. Disabled: true,
  41. })
  42. }
  43. }
  44. return barnTypeList
  45. }
  46. func (s *StoreEntry) BreedStatusEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  47. dataList := make([]*model.ConfigBreedStatus, 0)
  48. pref := s.DB.Model(new(model.ConfigBreedStatus)).
  49. Where("is_show =? ", pasturePb.IsShow_Ok).
  50. Where("pasture_id =? ", userModel.AppPasture.Id)
  51. if isAll == model.IsAllYes {
  52. pref = pref.Where("kind >= ?", pasturePb.BreedStatus_Invalid)
  53. } else {
  54. pref = pref.Where("kind > ?", pasturePb.BreedStatus_Invalid)
  55. }
  56. if err := pref.Order("kind ASC").
  57. Find(&dataList).Error; err != nil {
  58. zaplog.Error("ConfigBreedStatus", zap.Any("err", err))
  59. return make([]*pasturePb.ConfigOptionsList, 0)
  60. }
  61. return model.ConfigBreedStatusSlice(dataList).ToPB2(userModel)
  62. }
  63. func (s *StoreEntry) CowKindEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  64. dataList := make([]*model.ConfigCowKind, 0)
  65. pref := s.DB.Model(new(model.ConfigCowKind)).
  66. Where("is_show =? ", pasturePb.IsShow_Ok).
  67. Where("pasture_id =? ", userModel.AppPasture.Id)
  68. if isAll == model.IsAllYes {
  69. pref = pref.Where("kind >= ?", pasturePb.CowKind_Invalid)
  70. } else {
  71. pref = pref.Where("kind > ?", pasturePb.CowKind_Invalid)
  72. }
  73. if err := pref.Order("kind ASC").
  74. Find(&dataList).Error; err != nil {
  75. zaplog.Error("CowKindEnumList", zap.Any("err", err))
  76. return make([]*pasturePb.ConfigOptionsList, 0)
  77. }
  78. return model.ConfigCowKindSlice(dataList).ToPB2(userModel)
  79. }
  80. func (s *StoreEntry) CowSourceEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  81. dataList := make([]*model.ConfigCowSource, 0)
  82. pref := s.DB.Model(new(model.ConfigCowSource)).
  83. Where("is_show =? ", pasturePb.IsShow_Ok).
  84. Where("pasture_id =? ", userModel.AppPasture.Id)
  85. if isAll == model.IsAllYes {
  86. pref = pref.Where("kind >= ?", pasturePb.CowSource_Invalid)
  87. } else {
  88. pref = pref.Where("kind > ?", pasturePb.CowSource_Invalid)
  89. }
  90. if err := pref.Order("kind ASC").
  91. Find(&dataList).Error; err != nil {
  92. zaplog.Error("CowKindEnumList", zap.Any("err", err))
  93. return make([]*pasturePb.ConfigOptionsList, 0)
  94. }
  95. return model.ConfigCowSourceSlice(dataList).ToPB2(userModel)
  96. }
  97. func (s *StoreEntry) CowTypeEnumList(userModel *model.UserModel, optionName, isAll string) []*pasturePb.ConfigOptionsList {
  98. dataList := make([]*model.ConfigCowType, 0)
  99. pref := s.DB.Model(new(model.ConfigCowType)).
  100. Where("is_show =? ", pasturePb.IsShow_Ok).
  101. Where("pasture_id =? ", userModel.AppPasture.Id)
  102. if isAll == model.IsAllYes {
  103. pref = pref.Where("kind >= ?", pasturePb.CowType_Invalid)
  104. } else {
  105. pref = pref.Where("kind > ?", pasturePb.CowType_Invalid)
  106. }
  107. if err := pref.Order("kind ASC").
  108. Find(&dataList).Error; err != nil {
  109. zaplog.Error("CowKindEnumList", zap.Any("err", err))
  110. return make([]*pasturePb.ConfigOptionsList, 0)
  111. }
  112. return model.ConfigCowTypeSlice(dataList).ToPB2(userModel, optionName)
  113. }
  114. func (s *StoreEntry) SameTimeCowTypeEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  115. dataList := make([]*model.ConfigSameTimeCowType, 0)
  116. pref := s.DB.Model(new(model.ConfigSameTimeCowType)).
  117. Where("is_show =? ", pasturePb.IsShow_Ok).
  118. Where("pasture_id =? ", userModel.AppPasture.Id)
  119. if isAll == model.IsAllYes {
  120. pref = pref.Where("kind >= ?", pasturePb.SameTimeCowType_Invalid)
  121. } else {
  122. pref = pref.Where("kind > ?", pasturePb.SameTimeCowType_Invalid)
  123. }
  124. if err := pref.Order("kind ASC").
  125. Find(&dataList).Error; err != nil {
  126. zaplog.Error("ConfigSameTimeCowType", zap.Any("err", err))
  127. return make([]*pasturePb.ConfigOptionsList, 0)
  128. }
  129. return model.ConfigSameTimeCowTypeSlice(dataList).ToPB(userModel)
  130. }
  131. func (s *StoreEntry) SameTimeTypeEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  132. dataList := make([]*model.ConfigSameTimeType, 0)
  133. pref := s.DB.Model(new(model.ConfigSameTimeType)).
  134. Where("is_show =? ", pasturePb.IsShow_Ok).
  135. Where("pasture_id =? ", userModel.AppPasture.Id)
  136. if isAll == model.IsAllYes {
  137. pref = pref.Where("kind >= ?", pasturePb.SameTimeType_Invalid)
  138. } else {
  139. pref = pref.Where("kind > ?", pasturePb.SameTimeType_Invalid)
  140. }
  141. if err := pref.Order("kind ASC").
  142. Find(&dataList).Error; err != nil {
  143. zaplog.Error("SameTimeTypeEnumList", zap.Any("err", err))
  144. return make([]*pasturePb.ConfigOptionsList, 0)
  145. }
  146. return model.ConfigSameTimeTypeSlice(dataList).ToPB(userModel)
  147. }
  148. func (s *StoreEntry) ImmunizationCowTypeEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  149. return s.CowTypeEnumList(userModel, "", isAll)
  150. }
  151. func (s *StoreEntry) ImmunizationConditionsEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  152. dataList := make([]*model.ConfigImmunizationConditions, 0)
  153. pref := s.DB.Model(new(model.ConfigImmunizationConditions)).
  154. Where("is_show =? ", pasturePb.IsShow_Ok).
  155. Where("pasture_id =? ", userModel.AppPasture.Id)
  156. if isAll == model.IsAllYes {
  157. pref = pref.Where("kind >= ?", pasturePb.ImmunizationConditions_Invalid)
  158. } else {
  159. pref = pref.Where("kind > ?", pasturePb.ImmunizationConditions_Invalid)
  160. }
  161. if err := pref.Order("kind ASC").
  162. Find(&dataList).Error; err != nil {
  163. zaplog.Error("ImmunizationConditionsEnumList", zap.Any("err", err))
  164. return make([]*pasturePb.ConfigOptionsList, 0)
  165. }
  166. return model.ConfigImmunizationConditionsSlice(dataList).ToPB(userModel)
  167. }
  168. func (s *StoreEntry) TransferPenEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  169. dataList := make([]*model.ConfigTransferPenReason, 0)
  170. pref := s.DB.Model(new(model.ConfigTransferPenReason)).
  171. Where("is_show =? ", pasturePb.IsShow_Ok).
  172. Where("pasture_id =? ", userModel.AppPasture.Id)
  173. if isAll == model.IsAllYes {
  174. pref = pref.Where("kind >= ?", pasturePb.TransferPenReason_Invalid)
  175. } else {
  176. pref = pref.Where("kind > ?", pasturePb.TransferPenReason_Invalid)
  177. }
  178. if err := pref.Order("kind ASC").
  179. Find(&dataList).Error; err != nil {
  180. zaplog.Error("TransferPenEnumList", zap.Any("err", err))
  181. return make([]*pasturePb.ConfigOptionsList, 0)
  182. }
  183. return model.ConfigTransferPenReasonSlice(dataList).ToPB2(userModel)
  184. }
  185. func (s *StoreEntry) ChildNumberEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  186. dataList := make([]*model.ConfigChildNumber, 0)
  187. pref := s.DB.Model(new(model.ConfigChildNumber)).
  188. Where("is_show =? ", pasturePb.IsShow_Ok).
  189. Where("pasture_id =? ", userModel.AppPasture.Id)
  190. if isAll == model.IsAllYes {
  191. pref = pref.Where("kind >= ?", pasturePb.ChildNumber_Invalid)
  192. } else {
  193. pref = pref.Where("kind > ?", pasturePb.ChildNumber_Invalid)
  194. }
  195. if err := pref.Order("kind ASC").
  196. Find(&dataList).Error; err != nil {
  197. zaplog.Error("ChildNumberEnumList", zap.Any("err", err))
  198. return make([]*pasturePb.ConfigOptionsList, 0)
  199. }
  200. return model.ConfigChildNumberSlice(dataList).ToPB(userModel)
  201. }
  202. func (s *StoreEntry) CalvingLevelEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  203. dataList := make([]*model.ConfigCalvingLevel, 0)
  204. pref := s.DB.Model(new(model.ConfigCalvingLevel)).
  205. Where("is_show =? ", pasturePb.IsShow_Ok).
  206. Where("pasture_id =? ", userModel.AppPasture.Id)
  207. if isAll == model.IsAllYes {
  208. pref = pref.Where("kind >= ?", pasturePb.CalvingLevel_Invalid)
  209. } else {
  210. pref = pref.Where("kind > ?", pasturePb.CalvingLevel_Invalid)
  211. }
  212. if err := pref.Order("kind ASC").
  213. Find(&dataList).Error; err != nil {
  214. zaplog.Error("CalvingLevelEnumList", zap.Any("err", err))
  215. return make([]*pasturePb.ConfigOptionsList, 0)
  216. }
  217. return model.ConfigCalvingLevelSlice(dataList).ToPB(userModel)
  218. }
  219. func (s *StoreEntry) DystociaReasonEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  220. dataList := make([]*model.ConfigDystociaReason, 0)
  221. pref := s.DB.Model(new(model.ConfigDystociaReason)).
  222. Where("is_show =? ", pasturePb.IsShow_Ok).
  223. Where("pasture_id =? ", userModel.AppPasture.Id)
  224. if isAll == model.IsAllYes {
  225. pref = pref.Where("kind >= ?", pasturePb.DystociaReason_Invalid)
  226. } else {
  227. pref = pref.Where("kind > ?", pasturePb.DystociaReason_Invalid)
  228. }
  229. if err := pref.Order("kind ASC").
  230. Find(&dataList).Error; err != nil {
  231. zaplog.Error("CalvingLevelEnumList", zap.Any("err", err))
  232. return make([]*pasturePb.ConfigOptionsList, 0)
  233. }
  234. return model.ConfigDystociaReasonSlice(dataList).ToPB(userModel)
  235. }
  236. func (s *StoreEntry) PregnantCheckResultEnumList(userModel *model.UserModel, isAll string) []*pasturePb.ConfigOptionsList {
  237. dataList := make([]*model.ConfigPregnantCheckResult, 0)
  238. pref := s.DB.Model(new(model.ConfigPregnantCheckResult)).
  239. Where("is_show =? ", pasturePb.IsShow_Ok).
  240. Where("pasture_id =? ", userModel.AppPasture.Id)
  241. if isAll == model.IsAllYes {
  242. pref = pref.Where("kind >= ?", pasturePb.PregnantCheckResult_Invalid)
  243. } else {
  244. pref = pref.Where("kind > ?", pasturePb.PregnantCheckResult_Invalid)
  245. }
  246. if err := pref.Order("kind ASC").
  247. Find(&dataList).Error; err != nil {
  248. zaplog.Error("PregnantCheckResultEnumList", zap.Any("err", err))
  249. return make([]*pasturePb.ConfigOptionsList, 0)
  250. }
  251. return model.ConfigPregnantCheckResultSlice(dataList).ToPB(userModel)
  252. }