SJA APS后端代码
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.

99 lines
2.0 KiB

  1. package db
  2. import (
  3. "errors"
  4. "leit.com/leit_seat_aps/common"
  5. "xorm.io/core"
  6. )
  7. // 系统参数
  8. type Spatab struct {
  9. Finr int `xorm:"pk"`
  10. Sid int `xorm:"pk"`
  11. Pid int `xorm:"pk"`
  12. Sachbearb string `xorm:"pk"`
  13. Dispvar string `xorm:"pk"`
  14. Paramname string
  15. Wertnum int
  16. Wertstring string
  17. Paramvaluetype string
  18. Beschr string
  19. Callfunction string
  20. Lastmodif string
  21. Lastuser string
  22. Credatuz string
  23. }
  24. func (t *Spatab) Clipped() {
  25. common.TrimStruct(t, *t)
  26. }
  27. func (t *Spatab) TableName() string {
  28. return "spatab"
  29. }
  30. //增
  31. func (t *Spatab) Add() error {
  32. e := G_DbEngine
  33. spatab := new(Spatab)
  34. affw, err := e.Table("spatab").ID(core.PK{G_FINR, t.Sid, t.Pid, t.Sachbearb, t.Dispvar}).Count(spatab)
  35. if err != nil {
  36. return err
  37. }
  38. if affw > 0 {
  39. return errors.New("数据已经存在!")
  40. }
  41. _, err = e.Table("spatab").Insert(t)
  42. if err != nil {
  43. return err
  44. }
  45. return nil
  46. }
  47. //删
  48. func (t *Spatab) Del() bool {
  49. e := G_DbEngine
  50. _, err := e.ID(core.PK{G_FINR, t.Sid, t.Pid, t.Sachbearb, t.Dispvar}).Delete(&Spatab{})
  51. if err != nil {
  52. return false
  53. }
  54. return true
  55. }
  56. //改
  57. func (t *Spatab) Update() bool {
  58. e := G_DbEngine
  59. _, err := e.ID(core.PK{G_FINR, t.Sid, t.Pid, t.Sachbearb, t.Dispvar}).Update(t)
  60. if err != nil {
  61. return false
  62. }
  63. return true
  64. }
  65. //查
  66. func (t *Spatab) SelectOne() (data Spatab, err error) {
  67. e := G_DbEngine
  68. _, err = e.ID(core.PK{G_FINR, t.Sid, t.Pid, t.Sachbearb, t.Dispvar}).Get(&data)
  69. if err != nil {
  70. return data, err
  71. }
  72. data.Clipped()
  73. return data, nil
  74. }
  75. //基于模块 / 用户 / 参数名查询
  76. func (t *Spatab) SelectByModuleUserParaname(imodule int, user, paraname string) (datalst []Spatab, err error) {
  77. var i int
  78. e := G_DbEngine
  79. if err = e.Where("finr = ? and sid = ? and sachbearb = ? and paramname = ?", G_FINR, imodule, user, paraname).OrderBy("sid").Find(&datalst); err != nil {
  80. return
  81. }
  82. for i = 0; i < len(datalst); i++ {
  83. datalst[i].Clipped()
  84. }
  85. return datalst, nil
  86. }