sa_compare_label.go 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. package semantic_analysis
  2. import (
  3. "eta_gn/eta_api/global"
  4. "fmt"
  5. "strings"
  6. "time"
  7. )
  8. //type SaCompareLabel struct {
  9. // SaCompareLabelId int `orm:"column(sa_compare_label_id);pk" description:"段落标签ID"`
  10. // CompareId int `description:"比对ID"`
  11. // DocId int `description:"文档ID"`
  12. // SectionId int `description:"段落ID"`
  13. // LabelId int `description:"标签ID"`
  14. // LabelName string `description:"标签名称"`
  15. // IsPart int `description:"是否为片段: 0-整段; 1-片段"`
  16. // StartIndex int `description:"片段开始下标"`
  17. // EndIndex int `description:"片段结束下标"`
  18. // Content string `description:"内容"`
  19. // SysAdminId int `description:"创建人ID"`
  20. // SysAdminName string `description:"创建人姓名"`
  21. // CreateTime time.Time `description:"创建时间"`
  22. //}
  23. type SaCompareLabel struct {
  24. SaCompareLabelId int `gorm:"primaryKey;column:sa_compare_label_id;type:int(10) unsigned;not null"` // 语义分析-文档段落标签Id
  25. CompareId int `gorm:"index:idx_compare_id;column:compare_id;type:int(10) unsigned;not null;default:0"` // 比对Id
  26. DocId int `gorm:"index:idx_doc_id;column:doc_id;type:int(10) unsigned;not null;default:0"` // 文档Id
  27. SectionId int `gorm:"index:idx_section_id;column:section_id;type:int(10) unsigned;not null;default:0"` // 段落Id
  28. LabelId int `gorm:"index:idx_label_id;column:label_id;type:int(10) unsigned;not null;default:0"` // 标签Id
  29. LabelName string `gorm:"column:label_name;type:varchar(128);not null;default:''"` // 标签名称
  30. IsPart int `gorm:"column:is_part;type:tinyint(4) unsigned;not null;default:0"` // 是否为片段:0-整段;1-片段
  31. StartIndex int `gorm:"column:start_index;type:int(10) unsigned;not null;default:0"` // 片段开始下标
  32. EndIndex int `gorm:"column:end_index;type:int(10) unsigned;not null;default:0"` // 片段结束下标
  33. Content string `gorm:"column:content;type:text"` // 内容
  34. SysAdminId int `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"` // 创建人Id
  35. SysAdminName string `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"` // 创建人姓名
  36. CreateTime time.Time `gorm:"column:create_time;type:datetime"` // 创建时间
  37. }
  38. var SaCompareLabelColumns = struct {
  39. SaCompareLabelId string
  40. CompareId string
  41. DocId string
  42. SectionId string
  43. LabelId string
  44. LabelName string
  45. IsPart string
  46. StartIndex string
  47. EndIndex string
  48. Content string
  49. SysAdminId string
  50. SysAdminName string
  51. CreateTime string
  52. }{
  53. SaCompareLabelId: "sa_compare_label_id",
  54. CompareId: "compare_id",
  55. DocId: "doc_id",
  56. SectionId: "section_id",
  57. LabelId: "label_id",
  58. LabelName: "label_name",
  59. IsPart: "is_part",
  60. StartIndex: "start_index",
  61. EndIndex: "end_index",
  62. SysAdminId: "sys_admin_id",
  63. SysAdminName: "sys_admin_name",
  64. CreateTime: "create_time",
  65. }
  66. func (m *SaCompareLabel) TableName() string {
  67. return "sa_compare_label"
  68. }
  69. func (m *SaCompareLabel) Create() (err error) {
  70. //o := orm.NewOrm()
  71. //id, err := o.Insert(m)
  72. //if err != nil {
  73. // return
  74. //}
  75. //m.SaCompareLabelId = int(id)
  76. err = global.DEFAULT_DmSQL.Create(m).Error
  77. return
  78. }
  79. func (m *SaCompareLabel) Update(cols []string) (err error) {
  80. //o := orm.NewOrm()
  81. //_, err = o.Update(m, cols...)
  82. err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
  83. return
  84. }
  85. func (m *SaCompareLabel) Del() (err error) {
  86. //o := orm.NewOrm()
  87. sql := `DELETE FROM sa_compare_label WHERE sa_compare_label_id = ? LIMIT 1`
  88. //_, err = o.Raw(sql, m.SaCompareLabelId).Exec()
  89. err = global.DEFAULT_DmSQL.Exec(sql, m.SaCompareLabelId).Error
  90. return
  91. }
  92. func (m *SaCompareLabel) GetItemById(id int) (err error) {
  93. //o := orm.NewOrm()
  94. sql := `SELECT * FROM sa_compare_label WHERE sa_compare_label_id = ? LIMIT 1`
  95. //err = o.Raw(sql, id).QueryRow(&m)
  96. err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
  97. return
  98. }
  99. func (m *SaCompareLabel) GetItemByCondition(condition string, pars []interface{}) (err error) {
  100. //o := orm.NewOrm()
  101. sql := `SELECT * FROM sa_compare_label WHERE 1=1 `
  102. sql += condition
  103. sql += ` LIMIT 1`
  104. //err = o.Raw(sql, pars).QueryRow(&m)
  105. err = global.DEFAULT_DmSQL.Raw(sql, pars...).First(&m).Error
  106. return
  107. }
  108. func (m *SaCompareLabel) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  109. //o := orm.NewOrm()
  110. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  111. //err = o.Raw(sql, pars).QueryRow(&count)
  112. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Scan(&count).Error
  113. return
  114. }
  115. type SaCompareLabelGroupCount struct {
  116. DocId int `description:"文档ID"`
  117. SectionId int `description:"段落ID"`
  118. LabelId int `description:"标签ID"`
  119. UseNum int `description:"引用数"`
  120. }
  121. func (m *SaCompareLabel) GetGroupCountByCondition(condition string, pars []interface{}, groupRule string) (items []*SaCompareLabelGroupCount, err error) {
  122. //o := orm.NewOrm()
  123. sql := fmt.Sprintf(`SELECT COUNT(1) AS use_num, %s FROM %s WHERE 1=1 %s GROUP BY %s`, groupRule, m.TableName(), condition, groupRule)
  124. //_, err = o.Raw(sql, pars).QueryRows(&items)
  125. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Find(&items).Error
  126. return
  127. }
  128. func (m *SaCompareLabel) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompareLabel, err error) {
  129. //o := orm.NewOrm()
  130. fields := strings.Join(fieldArr, ",")
  131. if len(fieldArr) == 0 {
  132. fields = `*`
  133. }
  134. order := `ORDER BY create_time DESC`
  135. if orderRule != "" {
  136. order = ` ORDER BY ` + orderRule
  137. }
  138. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  139. //_, err = o.Raw(sql, pars).QueryRows(&items)
  140. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Find(&items).Error
  141. return
  142. }
  143. func (m *SaCompareLabel) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompareLabel, err error) {
  144. //o := orm.NewOrm()
  145. fields := strings.Join(fieldArr, ",")
  146. if len(fieldArr) == 0 {
  147. fields = `*`
  148. }
  149. order := `ORDER BY create_time DESC`
  150. if orderRule != "" {
  151. order = ` ORDER BY ` + orderRule
  152. }
  153. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  154. totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
  155. //if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
  156. // return
  157. //}
  158. err = global.DEFAULT_DmSQL.Raw(totalSql, pars...).Scan(&total).Error
  159. if err != nil {
  160. return
  161. }
  162. sql += ` LIMIT ?,?`
  163. //_, err = o.Raw(sql, pars...).QueryRows(&items)
  164. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Find(&items).Error
  165. return
  166. }
  167. // UpdateSaCompareLabelByLabelId 更新比对标签信息
  168. func UpdateSaCompareLabelByLabelId(labelId int, labelName string) (err error) {
  169. //o := orm.NewOrm()
  170. sql := `UPDATE sa_compare_label SET label_name = ? WHERE label_id = ?`
  171. //_, err = o.Raw(sql, labelName, labelId).Exec()
  172. err = global.DEFAULT_DmSQL.Exec(sql, labelName, labelId).Error
  173. return
  174. }
  175. // SaCompareLabelItem 比对标签
  176. type SaCompareLabelItem struct {
  177. SaCompareLabelId int `description:"比对标签ID"`
  178. LabelId int `description:"标签ID"`
  179. LabelName string `description:"标签名称"`
  180. CompareId int `description:"比对ID"`
  181. CompareContent string `description:"比对内容(片段)"`
  182. DocId int `description:"文档ID"`
  183. Title string `description:"文档标题"`
  184. SectionId int `description:"段落ID"`
  185. SectionContent string `description:"段落内容"`
  186. Sort int `description:"段落排序"`
  187. }
  188. // GetSaCompareLabelByCond 获取比对标签
  189. func GetSaCompareLabelByCond(condition string, pars []interface{}) (items []*SaCompareLabelItem, err error) {
  190. //o := orm.NewOrm()
  191. sql := `SELECT
  192. a.sa_compare_label_id,
  193. a.label_id,
  194. a.label_name,
  195. a.compare_id,
  196. a.doc_id,
  197. a.content AS compare_content,
  198. b.title,
  199. c.sa_doc_section_id AS section_id,
  200. c.content AS section_content,
  201. c.sort
  202. FROM
  203. sa_compare_label AS a
  204. JOIN sa_doc AS b ON a.doc_id = b.sa_doc_id
  205. JOIN sa_doc_section AS c ON a.section_id = c.sa_doc_section_id
  206. WHERE
  207. 1 = 1 %s
  208. ORDER BY
  209. a.doc_id,
  210. c.sort ASC`
  211. sql = fmt.Sprintf(sql, condition)
  212. //_, err = o.Raw(sql, pars).QueryRows(&items)
  213. err = global.DEFAULT_DmSQL.Raw(sql, pars...).Find(&items).Error
  214. return
  215. }