speech_recognition.go 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. package speech_recognition
  2. import (
  3. "eta/eta_api/utils"
  4. "fmt"
  5. "github.com/beego/beego/v2/client/orm"
  6. "strings"
  7. "time"
  8. )
  9. const (
  10. SpeechRecognitionFileRemoveFlag = 1 // 文件删除标记
  11. SpeechRecognitionStateWait = 1
  12. SpeechRecognitionStateSuccess = 2
  13. SpeechRecognitionStateFail = 3
  14. )
  15. // SpeechRecognition 语音识别主表
  16. type SpeechRecognition struct {
  17. SpeechRecognitionId int `orm:"column(speech_recognition_id);pk"`
  18. FileName string `description:"文件名称"`
  19. ResourceUrl string `description:"文件路径"`
  20. MenuId int `description:"目录ID"`
  21. MenuPath string `description:"所属目录位置,例:/一级目录ID/二级目录ID"`
  22. SysUserId int `description:"创建人ID"`
  23. SysUserName string `description:"创建人姓名"`
  24. State int `description:"状态:1-待转换;2-转换完成;3-转换失败"`
  25. Abstract string `description:"摘要,取前几段内容"`
  26. Sort int `description:"目录下的排序"`
  27. FileState int `description:"文件(非语音识别)删除状态:0-正常;1-删除(该字段作为软删标识)"`
  28. ConvertRemark int `description:"转写备注-失败原因"`
  29. CreateTime time.Time `description:"创建时间"`
  30. ModifyTime time.Time `description:"修改时间"`
  31. }
  32. var SpeechRecognitionCols = struct {
  33. SpeechRecognitionId string
  34. FileName string
  35. ResourceUrl string
  36. MenuId string
  37. MenuPath string
  38. SysUserId string
  39. SysUserName string
  40. State string
  41. Abstract string
  42. Sort string
  43. FileState string
  44. ConvertRemark string
  45. CreateTime string
  46. ModifyTime string
  47. }{
  48. SpeechRecognitionId: "speech_recognition_id",
  49. FileName: "file_name",
  50. ResourceUrl: "resource_url",
  51. MenuId: "menu_id",
  52. MenuPath: "menu_path",
  53. SysUserId: "sys_user_id",
  54. SysUserName: "sys_user_name",
  55. State: "state",
  56. Abstract: "abstract",
  57. Sort: "sort",
  58. FileState: "file_state",
  59. ConvertRemark: "convert_remark",
  60. CreateTime: "create_time",
  61. ModifyTime: "modify_time",
  62. }
  63. func (m *SpeechRecognition) TableName() string {
  64. return "speech_recognition"
  65. }
  66. func (m *SpeechRecognition) PrimaryId() string {
  67. return SpeechRecognitionCols.SpeechRecognitionId
  68. }
  69. func (m *SpeechRecognition) Create() (err error) {
  70. o := orm.NewOrm()
  71. id, err := o.Insert(m)
  72. if err != nil {
  73. return
  74. }
  75. m.SpeechRecognitionId = int(id)
  76. return
  77. }
  78. func (m *SpeechRecognition) CreateMulti(items []*SpeechRecognition) (err error) {
  79. if len(items) == 0 {
  80. return
  81. }
  82. o := orm.NewOrm()
  83. _, err = o.InsertMulti(len(items), items)
  84. return
  85. }
  86. func (m *SpeechRecognition) Update(cols []string) (err error) {
  87. o := orm.NewOrm()
  88. _, err = o.Update(m, cols...)
  89. return
  90. }
  91. func (m *SpeechRecognition) Del() (err error) {
  92. o := orm.NewOrm()
  93. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  94. _, err = o.Raw(sql, m.SpeechRecognitionId).Exec()
  95. return
  96. }
  97. func (m *SpeechRecognition) MultiDel(menuIds []int) (err error) {
  98. if len(menuIds) == 0 {
  99. return
  100. }
  101. o := orm.NewOrm()
  102. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
  103. _, err = o.Raw(sql, menuIds).Exec()
  104. return
  105. }
  106. func (m *SpeechRecognition) GetItemById(id int) (item *SpeechRecognition, err error) {
  107. o := orm.NewOrm()
  108. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  109. err = o.Raw(sql, id).QueryRow(&item)
  110. return
  111. }
  112. func (m *SpeechRecognition) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognition, err error) {
  113. o := orm.NewOrm()
  114. order := ``
  115. if orderRule != "" {
  116. order = ` ORDER BY ` + orderRule
  117. }
  118. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
  119. err = o.Raw(sql, pars).QueryRow(&item)
  120. return
  121. }
  122. func (m *SpeechRecognition) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  123. o := orm.NewOrm()
  124. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  125. err = o.Raw(sql, pars).QueryRow(&count)
  126. return
  127. }
  128. func (m *SpeechRecognition) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognition, 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. return
  141. }
  142. func (m *SpeechRecognition) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognition, err error) {
  143. o := orm.NewOrm()
  144. fields := strings.Join(fieldArr, ",")
  145. if len(fieldArr) == 0 {
  146. fields = `*`
  147. }
  148. order := `ORDER BY create_time DESC`
  149. if orderRule != "" {
  150. order = ` ORDER BY ` + orderRule
  151. }
  152. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  153. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  154. return
  155. }
  156. // SpeechRecognitionItem 语音识别信息
  157. type SpeechRecognitionItem struct {
  158. SpeechRecognitionId int
  159. FileName string `description:"文件名称"`
  160. ResourceUrl string `description:"文件路径"`
  161. MenuId int `description:"目录ID"`
  162. MenuPath string `description:"所属目录位置,例:/一级目录ID/二级目录ID"`
  163. SysUserId int `description:"创建人ID"`
  164. SysUserName string `description:"创建人姓名"`
  165. State int `description:"状态:1-待转换;2-转换完成;3-转换失败"`
  166. Abstract string `description:"摘要,取前几段内容"`
  167. Sort int `description:"目录下的排序"`
  168. ConvertRemark int `description:"转写备注-失败原因"`
  169. CreateTime string `description:"创建时间"`
  170. ModifyTime string `description:"修改时间"`
  171. }
  172. func FormatSpeechRecognition2Item(origin *SpeechRecognition) (item *SpeechRecognitionItem) {
  173. if origin == nil {
  174. return
  175. }
  176. item = new(SpeechRecognitionItem)
  177. item.SpeechRecognitionId = origin.SpeechRecognitionId
  178. item.FileName = origin.FileName
  179. item.ResourceUrl = origin.ResourceUrl
  180. if origin.FileState == SpeechRecognitionFileRemoveFlag {
  181. item.ResourceUrl = ""
  182. }
  183. item.MenuId = origin.MenuId
  184. item.MenuPath = origin.MenuPath
  185. item.SysUserId = origin.SysUserId
  186. item.SysUserName = origin.SysUserName
  187. item.State = origin.State
  188. item.Abstract = origin.Abstract
  189. item.Sort = origin.Sort
  190. item.ConvertRemark = origin.ConvertRemark
  191. item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
  192. item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, origin.ModifyTime)
  193. return
  194. }
  195. // SpeechRecognitionSaveReq 保存请求体
  196. type SpeechRecognitionSaveReq struct {
  197. FileName string
  198. }
  199. // SpeechRecognitionRenameReq 重命名
  200. type SpeechRecognitionRenameReq struct {
  201. SpeechRecognitionId int `description:"语音识别ID"`
  202. FileName string `description:"文件名称"`
  203. }
  204. // SpeechRecognitionRemoveReq 删除
  205. type SpeechRecognitionRemoveReq struct {
  206. SpeechRecognitionId int `description:"语音识别ID"`
  207. }
  208. // SpeechRecognitionRemoveFileReq 删除文件
  209. type SpeechRecognitionRemoveFileReq struct {
  210. SpeechRecognitionId int `description:"语音识别ID"`
  211. }
  212. // SpeechRecognitionSaveTagReq 保存标签
  213. type SpeechRecognitionSaveTagReq struct {
  214. SpeechRecognitionId int `description:"语音识别ID"`
  215. TagIds []int `description:"标签IDs"`
  216. }
  217. // SpeechRecognitionConvertReq 批量转写
  218. type SpeechRecognitionConvertReq struct {
  219. MenuId int `description:"目录ID"`
  220. Files []SpeechRecognitionConvertFiles `description:"转写文件"`
  221. }
  222. // SpeechRecognitionConvertFiles 批量转写文件
  223. type SpeechRecognitionConvertFiles struct {
  224. FileName string `description:"文件名称"`
  225. ResourceUrl string `description:"文件地址"`
  226. }