PatientSend.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package Patient
  2. import (
  3. "git.baozhida.cn/ERP_libs/lib"
  4. "github.com/astaxie/beego/logs"
  5. "github.com/beego/beego/v2/adapter/orm"
  6. orm2 "github.com/beego/beego/v2/client/orm"
  7. "time"
  8. )
  9. // 患者信息发送
  10. type PatientSend struct {
  11. Id int `orm:"column(ID);size(11);auto;pk"`
  12. T_uid int `orm:"index;size(100);null"` // 用户id
  13. T_pid int `orm:"index;size(100);null"` // 患者id
  14. T_phone string `orm:"size(256);null"` // 患者电话 18888888888
  15. T_type int `orm:"index;size(4);null"` // 1 短信 2 电话
  16. T_Remark string `orm:"size(256);null"` // 备注
  17. T_State int `orm:"size(200);default(1)"` // 0失败 1正常
  18. CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now_add 第一次保存时才设置时间
  19. }
  20. type PatientSend_R struct {
  21. Id int
  22. T_pid int // 患者电话
  23. T_phone string // 18888888888
  24. T_type int // 1 短信 2 电话
  25. T_Remark string // 备注
  26. T_State int
  27. CreateTime string //auto_now_add 第一次保存时才设置时间
  28. }
  29. func (t *PatientSend) TableName() string {
  30. return "patient_send" // 数据库名称 // ************** 替换 FormulaList **************
  31. }
  32. func init() {
  33. //注册模型
  34. orm.RegisterModel(new(PatientSend))
  35. }
  36. func PatientSendToPatientSend_R(r PatientSend) (m PatientSend_R) {
  37. m.Id = r.Id
  38. m.T_pid = r.T_pid
  39. m.T_phone = r.T_phone
  40. m.T_type = r.T_type
  41. m.T_Remark = r.T_Remark
  42. m.T_State = r.T_State
  43. m.CreateTime = r.CreateTime.Format("2006-01-02 15:04:05")
  44. return
  45. }
  46. // 添加
  47. func Add_PatientSend(r PatientSend) (id int64, err error) {
  48. o := orm.NewOrm()
  49. id, err = o.Insert(&r)
  50. if err != nil {
  51. logs.Error(lib.FuncName(), err)
  52. }
  53. return id, err
  54. }
  55. // 获取列表
  56. func Read_PatientSend_List(T_uid, T_pid, T_type, page, page_z int) (r_ []PatientSend_R, cnt int64) {
  57. o := orm.NewOrm()
  58. // 也可以直接使用 Model 结构体作为表名
  59. qs := o.QueryTable(new(PatientSend))
  60. var offset int64
  61. if page <= 1 {
  62. offset = 0
  63. } else {
  64. offset = int64((page - 1) * page_z)
  65. }
  66. // 过滤
  67. cond := orm.NewCondition()
  68. cond = cond.And("T_pid", T_pid)
  69. // 查询
  70. var r []PatientSend
  71. _, err := qs.Limit(page_z, offset).SetCond((*orm2.Condition)(cond)).OrderBy("-Id").All(&r)
  72. if err != nil {
  73. logs.Error(lib.FuncName(), err)
  74. return
  75. }
  76. cnt, err = qs.SetCond((*orm2.Condition)(cond)).Count()
  77. if err != nil {
  78. logs.Error(lib.FuncName(), err)
  79. return
  80. }
  81. for _, v := range r {
  82. r_ = append(r_, PatientSendToPatientSend_R(v))
  83. }
  84. return r_, cnt
  85. }
  86. // 获取列表
  87. func Read_PatientSend_Count(T_uid, T_pid, T_type int, date string) (cnt int64) {
  88. o := orm.NewOrm()
  89. // 也可以直接使用 Model 结构体作为表名
  90. qs := o.QueryTable(new(PatientSend))
  91. // 过滤
  92. cond := orm.NewCondition()
  93. cond = cond.And("T_State", 1)
  94. if T_uid > 0 {
  95. cond = cond.And("T_uid", T_uid)
  96. }
  97. if T_pid > 0 {
  98. cond = cond.And("T_pid", T_pid)
  99. }
  100. if T_type > 0 {
  101. cond = cond.And("T_type", T_type)
  102. }
  103. if len(date) > 0 {
  104. cond = cond.And("CreateTime__gte", date+" 00:00:00").And("CreateTime__lte", date+" 23:59:59")
  105. }
  106. cnt, err := qs.SetCond((*orm2.Condition)(cond)).Count()
  107. if err != nil {
  108. logs.Error(lib.FuncName(), err)
  109. return
  110. }
  111. return cnt
  112. }