wechat_platform.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. package rag
  2. import (
  3. "database/sql"
  4. "eta/eta_api/global"
  5. "eta/eta_api/utils"
  6. "fmt"
  7. "time"
  8. )
  9. type WechatPlatform struct {
  10. WechatPlatformId int `gorm:"column:wechat_platform_id;type:int(10) UNSIGNED;primaryKey;not null;" description:"wechat_platform_id"`
  11. FakeId string `gorm:"column:fake_id;type:varchar(255);comment:公众号唯一id;" description:"fake_id"` // 公众号唯一id
  12. Nickname string `gorm:"column:nickname;type:varchar(255);comment:公众号名称;" description:"nickname"` // 公众号名称
  13. Alias string `gorm:"column:alias;type:varchar(255);comment:别名;" description:"alias"` // 别名
  14. RoundHeadImg string `gorm:"column:round_head_img;type:varchar(255);comment:头像;" description:"round_head_img"` // 头像
  15. ServiceType int `gorm:"column:service_type;type:int(11);comment:类型;default:0;" description:"service_type"` // 类型
  16. Signature string `gorm:"column:signature;type:varchar(255);comment:签名;" description:"signature"` // 签名
  17. Verified int `gorm:"column:verified;type:int(11);comment:是否认证,0:未认证,1:已认证;这个我不确定,再核实下;default:0;" description:"verified"` // 是否认证,0:未认证,1:已认证;这个我不确定,再核实下
  18. ArticleLink string `gorm:"column:article_link;type:varchar(255);comment:添加公众时的文章链接;" description:"article_link"` // 添加公众时的文章链接
  19. Enabled int `gorm:"column:enabled;type:tinyint(9);comment:是否启用,0:禁用,1:启用;default:1;" description:"enabled"` // 是否启用,0:禁用,1:启用
  20. SysUserId int `gorm:"column:sys_user_id;type:int(9) UNSIGNED;comment:用户id;default:0;" description:"sys_user_id"` // 用户id
  21. ModifyTime time.Time `gorm:"column:modify_time;type:datetime;comment:最后一次修改时间;default:NULL;" description:"modify_time"` // 最后一次修改时间
  22. CreateTime time.Time `gorm:"column:create_time;type:datetime;comment:添加时间;default:NULL;" description:"create_time"` // 添加时间
  23. }
  24. // TableName get sql table name.获取数据库表名
  25. func (m *WechatPlatform) TableName() string {
  26. return "wechat_platform"
  27. }
  28. // WechatPlatformColumns get sql column name.获取数据库列名
  29. var WechatPlatformColumns = struct {
  30. WechatPlatformID string
  31. FakeID string
  32. Nickname string
  33. Alias string
  34. RoundHeadImg string
  35. ServiceType string
  36. Signature string
  37. Verified string
  38. ArticleLink string
  39. Enabled string
  40. SysUserID string
  41. ModifyTime string
  42. CreateTime string
  43. }{
  44. WechatPlatformID: "wechat_platform_id",
  45. FakeID: "fake_id",
  46. Nickname: "nickname",
  47. Alias: "alias",
  48. RoundHeadImg: "round_head_img",
  49. ServiceType: "service_type",
  50. Signature: "signature",
  51. Verified: "verified",
  52. ArticleLink: "article_link",
  53. Enabled: "enabled",
  54. SysUserID: "sys_user_id",
  55. ModifyTime: "modify_time",
  56. CreateTime: "create_time",
  57. }
  58. func (m *WechatPlatform) Create() (err error) {
  59. err = global.DbMap[utils.DbNameAI].Create(&m).Error
  60. return
  61. }
  62. func (m *WechatPlatform) Update(updateCols []string) (err error) {
  63. err = global.DbMap[utils.DbNameAI].Select(updateCols).Updates(&m).Error
  64. return
  65. }
  66. func (m *WechatPlatform) Del() (err error) {
  67. err = global.DbMap[utils.DbNameAI].Delete(&m).Error
  68. return
  69. }
  70. func (m *WechatPlatform) GetById(wechatPlatformId int) (item *WechatPlatform, err error) {
  71. err = global.DbMap[utils.DbNameAI].Where(fmt.Sprintf("%s = ?", WechatPlatformColumns.WechatPlatformID), wechatPlatformId).First(&item).Error
  72. return
  73. }
  74. func (m *WechatPlatform) GetByCondition(condition string, pars []interface{}) (item *WechatPlatform, err error) {
  75. sqlStr := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  76. err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).First(&item).Error
  77. return
  78. }
  79. func (m *WechatPlatform) GetListByCondition(condition string, pars []interface{}, startSize, pageSize int) (items []*WechatPlatform, err error) {
  80. sqlStr := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT ?,?`, m.TableName(), condition)
  81. pars = append(pars, startSize, pageSize)
  82. err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).Find(&items).Error
  83. return
  84. }
  85. func (m *WechatPlatform) GetCountByCondition(condition string, pars []interface{}) (total int, err error) {
  86. var intNull sql.NullInt64
  87. sqlStr := fmt.Sprintf(`SELECT COUNT(1) total FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  88. err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).Scan(&intNull).Error
  89. if err == nil && intNull.Valid {
  90. total = int(intNull.Int64)
  91. }
  92. return
  93. }
  94. func (m *WechatPlatform) GetPageListByCondition(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*WechatPlatform, err error) {
  95. total, err = m.GetCountByCondition(condition, pars)
  96. if err != nil {
  97. return
  98. }
  99. if total > 0 {
  100. items, err = m.GetListByCondition(condition, pars, startSize, pageSize)
  101. }
  102. return
  103. }
  104. func (m *WechatPlatform) GetByFakeID(fakeId string) (item *WechatPlatform, err error) {
  105. err = global.DbMap[utils.DbNameAI].Where(fmt.Sprintf("%s = ?", WechatPlatformColumns.FakeID), fakeId).First(&item).Error
  106. return
  107. }
  108. // Add
  109. // @Description: 添加一个新的公众号
  110. // @author: Roc
  111. // @receiver m
  112. // @datetime 2025-03-04 17:48:30
  113. // @param tagIdList []int
  114. // @return err error
  115. func (m *WechatPlatform) Add(tagIdList []int) (err error) {
  116. tx := global.DbMap[utils.DbNameAI].Begin()
  117. defer func() {
  118. if err != nil {
  119. _ = tx.Rollback()
  120. } else {
  121. _ = tx.Commit()
  122. }
  123. }()
  124. err = tx.Create(&m).Error
  125. if err != nil {
  126. return
  127. }
  128. // 标签与公众号关系
  129. if len(tagIdList) > 0 {
  130. addTagMappingList := make([]*WechatPlatformTagMapping, 0)
  131. for _, tagId := range tagIdList {
  132. addTagMappingList = append(addTagMappingList, &WechatPlatformTagMapping{
  133. WechatPlatformTagMappingId: 0,
  134. WechatPlatformId: m.WechatPlatformId,
  135. TagId: tagId,
  136. ModifyTime: time.Now(),
  137. CreateTime: time.Now(),
  138. })
  139. }
  140. err = tx.CreateInBatches(addTagMappingList, utils.MultiAddNum).Error
  141. if err != nil {
  142. return
  143. }
  144. }
  145. // 用户与公众号关系
  146. userMapping := &WechatPlatformUserMapping{
  147. WechatPlatformUserMappingId: 0,
  148. WechatPlatformId: m.WechatPlatformId,
  149. SysUserId: m.SysUserId,
  150. ModifyTime: time.Now(),
  151. CreateTime: time.Now(),
  152. }
  153. err = tx.Create(userMapping).Error
  154. return
  155. }