GAAS GFrame项目web后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

300 lines
9.2 KiB

  1. // Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.
  2. package implments
  3. import (
  4. "LAPP_GAAS_GFrame_BACKEND/grmi"
  5. meta "LAPP_GAAS_GFrame_BACKEND/meta/base"
  6. model "LAPP_GAAS_GFrame_BACKEND/models/base"
  7. "github.com/go-xorm/xorm"
  8. "xorm.io/core"
  9. )
  10. /******************************************************************************
  11. *
  12. * @Struct Name : EtcdDAOImplement
  13. *-----------------------------------------------------------------------------
  14. *
  15. * @Description : Etcd的数据访问对象实现
  16. *
  17. * @Author : 代码生成器创建
  18. *
  19. * @Date : 2021-04-19 12:11:47
  20. *
  21. ******************************************************************************/
  22. type EtcdDAOImplement struct {
  23. session *xorm.Session
  24. meta *grmi.Entity
  25. userid string
  26. }
  27. /******************************************************************************
  28. *
  29. * @Function Name : NewEtcdDAOImplement
  30. *-----------------------------------------------------------------------------
  31. *
  32. * @Description : 创建一个EtcdDAOImplement实例
  33. *
  34. * @Function Parameters : xorm会话
  35. *
  36. * @Return Value : EtcdDAOImplement实例
  37. *
  38. * @Author : 代码生成器创建
  39. *
  40. * @Date : 2021-04-19 12:11:47
  41. *
  42. ******************************************************************************/
  43. func NewEtcdDAOImplement(session *xorm.Session, userid string) *EtcdDAOImplement {
  44. return &EtcdDAOImplement{session, &meta.Etcd, userid}
  45. }
  46. /******************************************************************************
  47. *
  48. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.InsertOne
  49. *
  50. ******************************************************************************/
  51. func (impl *EtcdDAOImplement) InsertOne(entity *model.Etcd) error {
  52. entity.LastUser = impl.userid
  53. _, err := impl.session.Table(impl.meta.TableName).Insert(entity)
  54. if err != nil {
  55. return grmi.NewDataBaseError(err)
  56. }
  57. return nil
  58. }
  59. /******************************************************************************
  60. *
  61. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.DeleteOne
  62. *
  63. ******************************************************************************/
  64. func (impl *EtcdDAOImplement) DeleteOne(etcdId int) error {
  65. _, err := impl.session.Table(impl.meta.TableName).ID(core.PK{etcdId}).Delete(impl.meta.Indicator)
  66. if err != nil {
  67. return grmi.NewDataBaseError(err)
  68. }
  69. return nil
  70. }
  71. /******************************************************************************
  72. *
  73. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.SelectOne
  74. *
  75. ******************************************************************************/
  76. func (impl *EtcdDAOImplement) SelectOne(etcdId int) (*model.Etcd, error) {
  77. var data model.Etcd
  78. ok, err := impl.session.Table(impl.meta.TableName).ID(core.PK{etcdId}).Get(&data)
  79. if err != nil {
  80. return nil, grmi.NewDataBaseError(err)
  81. }
  82. if !ok {
  83. return nil, nil
  84. }
  85. return &data, nil
  86. }
  87. /******************************************************************************
  88. *
  89. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.UpdateOne
  90. *
  91. ******************************************************************************/
  92. func (impl *EtcdDAOImplement) UpdateOne(entity *model.Etcd) error {
  93. entity.LastUser = impl.userid
  94. _, err := impl.session.Table(impl.meta.TableName).Cols(impl.meta.UpdatingMembers...).ID(entity.GetKey()).Update(entity)
  95. if err != nil {
  96. return grmi.NewDataBaseError(err)
  97. }
  98. return nil
  99. }
  100. /******************************************************************************
  101. *
  102. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.Insert
  103. *
  104. ******************************************************************************/
  105. func (impl *EtcdDAOImplement) Insert(entities *[]model.Etcd) error {
  106. for i := 0; i < len(*entities); i++ {
  107. entity := &(*entities)[i]
  108. entity.LastUser = impl.userid
  109. }
  110. _, err := impl.session.Table(impl.meta.TableName).Insert(entities)
  111. if err != nil {
  112. return grmi.NewDataBaseError(err)
  113. }
  114. return nil
  115. }
  116. /******************************************************************************
  117. *
  118. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.Delete
  119. *
  120. ******************************************************************************/
  121. func (impl *EtcdDAOImplement) Delete(entities *[]model.Etcd) error {
  122. for _, entity := range *entities {
  123. _, err := impl.session.Table(impl.meta.TableName).ID(entity.GetKey()).Delete(impl.meta.Indicator)
  124. if err != nil {
  125. return grmi.NewDataBaseError(err)
  126. }
  127. }
  128. return nil
  129. }
  130. /******************************************************************************
  131. *
  132. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.DeleteWhere
  133. *
  134. ******************************************************************************/
  135. func (impl *EtcdDAOImplement) DeleteWhere(predicates []grmi.Predicate) error {
  136. parameters := []interface{}{}
  137. where := ""
  138. session := impl.session.Table(impl.meta.TableName)
  139. if predicates != nil {
  140. for _, predicate := range predicates {
  141. where += predicate.Build()
  142. parameters = append(parameters, predicate.Values...)
  143. }
  144. session = session.Where(where, parameters...)
  145. } else {
  146. session = session.Where(where, parameters...)
  147. }
  148. _, err := session.Delete(impl.meta.Indicator)
  149. if err != nil {
  150. return grmi.NewDataBaseError(err)
  151. }
  152. return nil
  153. }
  154. /******************************************************************************
  155. *
  156. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.Select
  157. *
  158. ******************************************************************************/
  159. func (impl *EtcdDAOImplement) Select(predicates []grmi.Predicate, orderByFields []grmi.Field) ([]model.Etcd, error) {
  160. parameters := []interface{}{}
  161. where := ""
  162. session := impl.session.Table(impl.meta.TableName)
  163. if predicates != nil {
  164. for _, predicate := range predicates {
  165. where += predicate.Build()
  166. parameters = append(parameters, predicate.Values...)
  167. }
  168. session = session.Where(where, parameters...)
  169. } else {
  170. session = session.Where(where, parameters...)
  171. }
  172. if orderByFields != nil {
  173. for _, field := range orderByFields {
  174. session = session.OrderBy(field.ColumnName)
  175. }
  176. }
  177. data := make([]model.Etcd, 0, 10)
  178. err := session.Find(&data)
  179. if err != nil {
  180. return nil, grmi.NewDataBaseError(err)
  181. }
  182. return data, nil
  183. }
  184. /******************************************************************************
  185. *
  186. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.SelectAndPaging
  187. *
  188. ******************************************************************************/
  189. func (impl *EtcdDAOImplement) SelectAndPaging(paging *grmi.Paging, predicates []grmi.Predicate, orderByFields []grmi.Field) (grmi.PagingResult, error) {
  190. parameters := []interface{}{}
  191. where := ""
  192. session := impl.session.Table(impl.meta.TableName)
  193. if predicates != nil {
  194. for _, predicate := range predicates {
  195. where += predicate.Build()
  196. parameters = append(parameters, predicate.Values...)
  197. }
  198. session = session.Where(where, parameters...)
  199. } else {
  200. session = session.Where(where, parameters...)
  201. }
  202. count, err := session.Count(impl.meta.Indicator)
  203. if err != nil {
  204. return grmi.EmptyPagingResult, err
  205. }
  206. orderBy := " order by "
  207. if orderByFields != nil {
  208. for _, field := range orderByFields {
  209. orderBy += ", " + field.ColumnName
  210. }
  211. }
  212. parameters = append(parameters, paging.Offset(), paging.Size)
  213. data := make([]model.Etcd, 0, 10)
  214. if where != "" {
  215. where = " where " + where
  216. }
  217. err = impl.session.Table(impl.meta.TableName).SQL("select * from "+impl.meta.TableName+where+orderBy+" offset ? row fetch next ? row only", parameters...).Find(&data)
  218. if err != nil {
  219. return grmi.EmptyPagingResult, err
  220. }
  221. return grmi.PagingResult{Records: data, Count: count, PageNumber: paging.Number, PageSize: paging.Size}, nil
  222. }
  223. /******************************************************************************
  224. *
  225. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.Update
  226. *
  227. ******************************************************************************/
  228. func (impl *EtcdDAOImplement) Update(entities *[]model.Etcd) error {
  229. for i := 0; i < len(*entities); i++ {
  230. entity := &(*entities)[i]
  231. entity.LastUser = impl.userid
  232. _, err := impl.session.Table(impl.meta.TableName).Cols(impl.meta.UpdatingMembers...).ID(entity.GetKey()).Update(entity)
  233. if err != nil {
  234. return grmi.NewDataBaseError(err)
  235. }
  236. }
  237. return nil
  238. }
  239. /******************************************************************************
  240. *
  241. * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/EtcdDAO.UpdateWhere
  242. *
  243. ******************************************************************************/
  244. func (impl *EtcdDAOImplement) UpdateWhere(predicates []grmi.Predicate, entity *model.Etcd, columns ...string) error {
  245. parameters := []interface{}{}
  246. where := ""
  247. session := impl.session.Table(impl.meta.TableName)
  248. if predicates != nil {
  249. for _, predicate := range predicates {
  250. where += predicate.Build()
  251. parameters = append(parameters, predicate.Values...)
  252. }
  253. session = session.Where(where, parameters...)
  254. } else {
  255. session = session.Where(where, parameters...)
  256. }
  257. columns = append(columns, meta.Etcd_LastUser.ColumnName)
  258. entity.LastUser = impl.userid
  259. _, err := impl.session.Table(impl.meta.TableName).Cols(columns...).Update(entity)
  260. if err != nil {
  261. return grmi.NewDataBaseError(err)
  262. }
  263. return nil
  264. }