ppt_english.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. package ppt_english
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/models/data_manage/excel"
  5. "eta/eta_api/utils"
  6. "time"
  7. "github.com/rdlucklib/rdluck_tools/paging"
  8. )
  9. // PptEnglish 表
  10. type PptEnglish struct {
  11. PptId int `orm:"column(ppt_id);pk" gorm:"primaryKey" description:"ppt的Id"`
  12. TemplateType int `description:"模版类型"`
  13. BackgroundImg string `description:"背景图片"`
  14. Title string `description:"标题"`
  15. ReportType string `description:"报告类型"`
  16. PptDate string `description:"选择日期"`
  17. Content string `description:"ppt内容"`
  18. PptxUrl string `description:"pptx下载地址"`
  19. CreateTime time.Time `description:"创建时间"`
  20. ModifyTime time.Time `description:"修改时间"`
  21. AdminId int `description:"系统用户id"`
  22. AdminRealName string `description:"系统用户名称"`
  23. ReportId int `description:"关联的报告ID"`
  24. ReportCode string `description:"关联的报告code"`
  25. IsShare int8 `description:"是否分享,0:不分享,1:分享"`
  26. PublishTime time.Time `description:"发布时间"`
  27. CoverContent string `description:"PPT内容-JSON"`
  28. PptPage int `description:"PPT页数"`
  29. TitleSetting string `description:"PPT标题设置"`
  30. }
  31. type PptEnglishItem struct {
  32. PptId int `orm:"column(ppt_id);pk" gorm:"primaryKey" description:"ppt的Id"`
  33. TemplateType int `description:"模版类型"`
  34. BackgroundImg string `description:"背景图片"`
  35. Title string `description:"标题"`
  36. ReportType string `description:"报告类型"`
  37. PptDate string `description:"选择日期"`
  38. Content string `description:"ppt内容"`
  39. PptxUrl string `description:"pptx下载地址"`
  40. CreateTime time.Time `description:"创建时间"`
  41. ModifyTime time.Time `description:"修改时间"`
  42. AdminId int `description:"系统用户id"`
  43. AdminRealName string `description:"系统用户名称"`
  44. IsAuth bool `description:"true:有操作权限,false:无操作权限"`
  45. ReportId int `description:"报告ID"`
  46. ReportCode string `description:"关联的报告code"`
  47. IsShare int8 `description:"是否分享,0:不分享,1:分享"`
  48. PublishTime time.Time `description:"发布时间"`
  49. CoverContent string `description:"PPT内容-JSON"`
  50. PptPage int `description:"PPT页数"`
  51. TitleSetting string `description:"PPT标题设置"`
  52. }
  53. func GetPptEnglishList(condition string, pars []interface{}, startSize, pageSize int) (items []*PptEnglishItem, err error) {
  54. o := global.DbMap[utils.DbNameReport]
  55. sql := `SELECT * FROM ppt_english WHERE 1=1 `
  56. if condition != "" {
  57. sql += condition
  58. }
  59. //
  60. sql += `ORDER BY modify_time DESC LIMIT ?,?`
  61. //sql += `ORDER BY create_time DESC LIMIT ?,?`
  62. pars = append(pars, startSize, pageSize)
  63. err = o.Raw(sql, pars...).Find(&items).Error
  64. return
  65. }
  66. func GetPptEnglishByCondition(condition string, pars []interface{}) (items []*PptEnglish, err error) {
  67. o := global.DbMap[utils.DbNameReport]
  68. sql := `SELECT * FROM ppt_english WHERE 1=1 `
  69. if condition != "" {
  70. sql += condition
  71. }
  72. //
  73. sql += `ORDER BY modify_time DESC`
  74. //sql += `ORDER BY create_time DESC LIMIT ?,?`
  75. err = o.Raw(sql, pars...).Find(&items).Error
  76. return
  77. }
  78. func GetPptEnglishListCount(condition string, pars []interface{}) (count int, err error) {
  79. o := global.DbMap[utils.DbNameReport]
  80. sql := `SELECT COUNT(1) AS count FROM ppt_english WHERE 1=1 `
  81. if condition != "" {
  82. sql += condition
  83. }
  84. err = o.Raw(sql, pars...).Scan(&count).Error
  85. return
  86. }
  87. type PptEnglishListResp struct {
  88. List []*PptEnglishItem
  89. Paging *paging.PagingItem `description:"分页数据"`
  90. }
  91. // AddPptEnglish 新增PPT
  92. func AddPptEnglish(item *PptEnglish) (lastId int64, err error) {
  93. o := global.DbMap[utils.DbNameReport]
  94. err = o.Create(item).Error
  95. if err != nil {
  96. return
  97. }
  98. lastId = int64(item.PptId)
  99. return
  100. }
  101. // DeletePptEnglish 删除ppt
  102. func DeletePptEnglish(pptId int) (err error) {
  103. o := global.DbMap[utils.DbNameReport]
  104. sql := `DELETE FROM ppt_english WHERE ppt_id=? `
  105. err = o.Exec(sql, pptId).Error
  106. return
  107. }
  108. type AddPptEnglishReq struct {
  109. PptId int64 `description:"ppt_id"`
  110. FirstPage struct {
  111. Title string `description:"标题"`
  112. ReportType string `description:"类型"`
  113. PptDate string `description:"日期"`
  114. ImgUrl string `description:"图片"`
  115. BackIndex int `description:"背景图片下标"`
  116. TemplateType int `description:"模版id"`
  117. } `description:"首页"`
  118. Content string `description:"ppt的json数据"`
  119. GroupId int64 `description:"目录id"`
  120. CoverContent string `description:"PPT内容-JSON"`
  121. TitleSetting string `description:"PPT标题设置"`
  122. ExcelReferences []excel.ExcelReferencesReq `description:"引用的Excel信息"`
  123. MergePptIdList []int `description:"合并的ppt的Id列表"`
  124. }
  125. type AddPptEnglishResp struct {
  126. PptId int64 `description:"PptId"`
  127. }
  128. type ContentPageItems struct {
  129. PptId int64 `json:"PptId" description:"ppt_id" `
  130. PptPagesId int `json:"PptPagesId" description:"章节id,新增时传0"`
  131. Title string `json:"Title" description:"标题"`
  132. ResourceId string `json:"ResourceId" description:"来源id,来自上海策略组提供的图表id"`
  133. Timestamp int `description:"时间戳"`
  134. }
  135. type EditPptEnglishReq struct {
  136. PptId int64 `description:"pptId"`
  137. FirstPage struct {
  138. PptPagesId int `description:"ppt_page_id"`
  139. Title string `description:"标题"`
  140. ReportType string `description:"类型"`
  141. PptDate string `description:"日期"`
  142. ImgUrl string `description:"图片路径"`
  143. BackIndex int `description:"背景图片下标"`
  144. }
  145. ContentPage []ContentPageItems
  146. }
  147. // Update 更新ppt基础信息
  148. func (item *PptEnglish) Update(cols []string) (err error) {
  149. o := global.DbMap[utils.DbNameReport]
  150. err = o.Select(cols).Updates(item).Error
  151. return
  152. }
  153. // EditPptEnglish 编辑ppt
  154. func EditPptEnglish(item *PptEnglish) (err error) {
  155. o := global.DbMap[utils.DbNameReport]
  156. sql := `UPDATE ppt_english SET title = ?,ppt_date= ?, report_type=?,modify_time=NOW() WHERE ppt_id = ? `
  157. err = o.Exec(sql, item.Title, item.PptDate, item.ReportType, item.PptId).Error
  158. return
  159. }
  160. type DeletePptEnglishReq struct {
  161. PptId int `description:"PptId" `
  162. }
  163. // SavePptEnglishPathReq 保存ppt的下载地址请求
  164. type SavePptEnglishPathReq struct {
  165. PptId int `description:"PptId" `
  166. PptxUrl string `description:"PptxUrl" `
  167. }
  168. func GetPptEnglishById(pptId int) (item *PptEnglish, err error) {
  169. o := global.DbMap[utils.DbNameReport]
  170. sql := `SELECT * FROM ppt_english WHERE 1=1 AND ppt_id=? `
  171. err = o.Raw(sql, pptId).First(&item).Error
  172. return
  173. }
  174. func GetPptEnglishByIds(pptIds []int) (list []*PptEnglish, err error) {
  175. /*err = global.DbMap[utils.DbNameReport].
  176. QueryTable("ppt_english").
  177. Filter("ppt_id__in", pptIds).
  178. All(&list)*/
  179. sql := `SELECT * FROM ppt_english WHERE ppt_id in (` + utils.GetOrmInReplace(len(pptIds)) + `)`
  180. err = global.DbMap[utils.DbNameReport].Raw(sql, pptIds).Find(&list).Error
  181. return
  182. }
  183. func GetPptEnglishByTitle(title string) (item *PptEnglish, err error) {
  184. o := global.DbMap[utils.DbNameReport]
  185. sql := `SELECT * FROM ppt_english WHERE 1=1 AND title=? `
  186. err = o.Raw(sql, title).First(&item).Error
  187. return
  188. }
  189. type PptPages struct {
  190. PptPagesId int `orm:"column(ppt_pages_id);pk" gorm:"primaryKey" description:"报告章节Id"`
  191. PptId int64 `description:"ppt_id"`
  192. Title string `description:"标题"`
  193. ImgUrl string `description:"图片路径"`
  194. CreateTime time.Time `description:"创建时间"`
  195. ModifyTime time.Time `description:"修改时间"`
  196. PageCode string `description:"编码"`
  197. Width int `description:"宽度"`
  198. Height int `description:"高端"`
  199. ResourceId string `description:"来源id,来自上海策略组提供的图表id"`
  200. Timestamp int `description:"时间戳"`
  201. BackIndex int `description:"背景图片下标"`
  202. }
  203. type PptEnglishDetailResp struct {
  204. PptPages []*PptPages `description:"ppt详情数据"`
  205. Ppt *PptEnglish `description:"ppt数据"`
  206. }
  207. type PptEnglishPublishReq struct {
  208. PptId int `description:"PptId"`
  209. ScreenHeight int `description:"屏幕宽高"`
  210. }
  211. // EditPptEnglishPath 编辑Ppt的下载地址
  212. func EditPptEnglishPath(pptId int, pptxPath string) (err error) {
  213. sql := `UPDATE ppt_english SET pptx_url=?,modify_time=NOW(),publish_time=NOW() WHERE ppt_id=? `
  214. o := global.DbMap[utils.DbNameReport]
  215. err = o.Exec(sql, pptxPath, pptId).Error
  216. return
  217. }
  218. // AddPptEnglishPublishRecord 发布记录表
  219. type PptEnglishPublishRecord struct {
  220. Id int `orm:"column(id);pk" gorm:"primaryKey"`
  221. PptId int
  222. PptUrl string
  223. CreateTime time.Time
  224. }
  225. // AddPptEnglishPublishRecord 添加发布记录,主要是记录每次发布的时候,当前的ppt
  226. func AddPptEnglishPublishRecord(item *PptEnglishPublishRecord) (lastId int64, err error) {
  227. o := global.DbMap[utils.DbNameReport]
  228. err = o.Create(item).Error
  229. if err != nil {
  230. return
  231. }
  232. lastId = int64(item.Id)
  233. return
  234. }
  235. // PptEnglishSaveLog ppt记录表
  236. type PptEnglishSaveLog struct {
  237. Id int `orm:"column(id);pk" gorm:"primaryKey" description:"自增Id"`
  238. PptId int `orm:"column(ppt_id)" description:"ppt的Id"`
  239. TemplateType int `description:"模版类型"`
  240. BackgroundImg string `description:"背景图片"`
  241. Title string `description:"标题"`
  242. ReportType string `description:"报告类型"`
  243. PptDate string `description:"选择日期"`
  244. Content string `description:"ppt内容"`
  245. AdminId int `description:"系统用户id"`
  246. AdminRealName string `description:"系统用户名称"`
  247. CreateTime time.Time `description:"创建时间"`
  248. CoverContent string `description:"PPT内容-JSON"`
  249. TitleSetting string `description:"PPT标题设置"`
  250. }
  251. // AddPptEnglishSaveLog 新增PPT日志
  252. func AddPptEnglishSaveLog(item *PptEnglishSaveLog) (lastId int64, err error) {
  253. o := global.DbMap[utils.DbNameReport]
  254. err = o.Create(item).Error
  255. if err != nil {
  256. return
  257. }
  258. lastId = int64(item.Id)
  259. return
  260. }
  261. type PptEnglishConfigResp struct {
  262. PptNum int `description:"ppt数量" json:"ppt_num"`
  263. ChartNum int `description:"图片数量" json:"chart_num"`
  264. }
  265. type PPT2ReportReq struct {
  266. PptId int `description:"PPT主键"`
  267. ClassifyIdSecond int `description:"报告二级分类ID"`
  268. Title string `description:"标题"`
  269. }
  270. // AddPptEnglishMulti 批量新增ppt
  271. func AddPptEnglishMulti(list []*PptEnglish) (err error) {
  272. o := global.DbMap[utils.DbNameReport]
  273. err = o.CreateInBatches(list, utils.MultiAddNum).Error
  274. return
  275. }
  276. // GetAllPptTitle 获取当前目录的所有名称
  277. func GetAllPptTitle() (names []string, err error) {
  278. o := global.DbMap[utils.DbNameReport]
  279. sql := "select title from ppt_english"
  280. err = o.Raw(sql).Scan(&names).Error
  281. return
  282. }
  283. // PPT2ReportResp PPT转报告响应体
  284. type PPT2ReportResp struct {
  285. ReportId int `description:"关联的报告ID" json:"report_id"`
  286. ReportCode string `description:"关联的报告编码" json:"report_code"`
  287. }
  288. // GetPptEnglishByReportId 通过关联的报告ID获取PPT
  289. func GetPptEnglishByReportId(reportId int) (item *PptEnglish, err error) {
  290. o := global.DbMap[utils.DbNameReport]
  291. sql := `SELECT * FROM ppt_english WHERE 1=1 AND report_id=? LIMIT 1`
  292. err = o.Raw(sql, reportId).First(&item).Error
  293. return
  294. }
  295. // GetSharePptEnglish 获取公开分享的ppt
  296. func GetSharePptEnglish() (items []*PptEnglish, err error) {
  297. o := global.DbMap[utils.DbNameReport]
  298. sql := `SELECT * FROM ppt_english WHERE 1=1 AND is_share = 1 ORDER BY create_time DESC `
  299. err = o.Raw(sql).Find(&items).Error
  300. return
  301. }
  302. // GetAllPptEnglishList 根据条件获取所有的Ppt
  303. func GetAllPptEnglishList(condition string, pars []interface{}) (items []*PptEnglishItem, err error) {
  304. o := global.DbMap[utils.DbNameReport]
  305. sql := `SELECT * FROM ppt_english WHERE 1=1 `
  306. if condition != "" {
  307. sql += condition
  308. }
  309. //
  310. sql += `ORDER BY modify_time DESC `
  311. err = o.Raw(sql, pars...).Find(&items).Error
  312. return
  313. }
  314. // GetSyncReportPptList 获取所有已经同步了报告的ppt
  315. func GetSyncReportPptList() (list []*PptEnglish, err error) {
  316. sql := `SELECT * FROM ppt_english WHERE report_id>0 `
  317. o := global.DbMap[utils.DbNameReport]
  318. err = o.Raw(sql).Find(&list).Error
  319. return
  320. }
  321. // GetPPTTitleList 获取PPT标题列表
  322. func GetPPTTitleList() (list []string, err error) {
  323. o := global.DbMap[utils.DbNameReport]
  324. sql := `SELECT title FROM ppt_english`
  325. err = o.Raw(sql).Find(&list).Error
  326. return
  327. }
  328. // EnglishPPT2ReportReq 英文PPT转报告请求体
  329. type EnglishPPT2ReportReq struct {
  330. PptId int `description:"PPT主键"`
  331. ClassifyIdFirst int `description:"一级分类ID"`
  332. ClassifyIdSecond int `description:"二级分类ID"`
  333. Title string `description:"标题"`
  334. Abstract string `description:"摘要"`
  335. }
  336. func GetPptEnglishByTitleAndId(title string, adminId int) (item *PptEnglish, err error) {
  337. o := global.DbMap[utils.DbNameReport]
  338. sql := `SELECT * FROM ppt_english WHERE 1=1 AND title=? AND admin_id=? `
  339. err = o.Raw(sql, title, adminId).First(&item).Error
  340. return
  341. }
  342. // PPTEditingCache PPT编辑缓存信息
  343. type PPTEditingCache struct {
  344. IsEditing bool `description:"是否有人编辑"`
  345. AdminId int `description:"编辑者ID"`
  346. Editor string `description:"编辑者姓名"`
  347. Tips string `description:"提示信息"`
  348. }
  349. // EnglishPPTDetailResp 英文PPT详情响应体
  350. type EnglishPPTDetailResp struct {
  351. *PptEnglish
  352. Editor PPTEditingCache `description:"编辑人信息"`
  353. }