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.

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