scrm-go

article_controller.go 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. package article
  2. import (
  3. "github.com/astaxie/beego"
  4. "fmt"
  5. "SCRM/controllers"
  6. "SCRM/service/article_service"
  7. "SCRM/enums"
  8. "SCRM/models"
  9. "time"
  10. "SCRM/utils"
  11. "encoding/json"
  12. "strconv"
  13. )
  14. func ArticleRouters() {
  15. beego.Router("/api/acticle/createacticle",&ArticleManage{},"Post:CreateArticle")
  16. beego.Router("/api/acticle/getArticleType",&ArticleManage{},"Get:GetArticleType")
  17. beego.Router("/api/acticle/getAllArticles",&ArticleManage{},"Get:GetAllArticles")
  18. beego.Router("/api/article/addCategory",&ArticleManage{},"Post:AddCategory")
  19. beego.Router("/api/acticle/getCategorys",&ArticleManage{},"Get:GetCategorys")
  20. beego.Router("/api/acticle/edit",&ArticleManage{},"Post:EditCategorys")
  21. beego.Router("/api/acticle/delete",&ArticleManage{},"Delete:DeleteCategorys")
  22. beego.Router("/api/acticle/addvido",&ArticleManage{},"Post:Addvido")
  23. beego.Router("/api/acticle/savedraft",&ArticleManage{},"Post:SaveDraft")
  24. }
  25. type ArticleManage struct {
  26. controllers.BaseAuthAPIController
  27. }
  28. func (this *ArticleManage) CreateArticle(){
  29. adminUserInfo := this.GetAdminUserInfo()
  30. userOrgID := int64(adminUserInfo.CurrentOrgId)
  31. dataBody := make(map[string]interface{}, 0)
  32. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  33. fmt.Println("视频发布是什么呢",err)
  34. if err != nil {
  35. utils.ErrorLog(err.Error())
  36. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  37. return
  38. }
  39. actname := dataBody["act_name"].(string)
  40. if len(actname) == 0 {
  41. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "文章标题不能为空")
  42. return
  43. }
  44. actcontent := dataBody["act_content"].(string)
  45. if len(actcontent) == 0 {
  46. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "文章内容不能为空")
  47. return
  48. }
  49. orglogo := dataBody["org_logo"].(string)
  50. if len(orglogo) == 0 {
  51. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "封面图片不能为空")
  52. return
  53. }
  54. acttype := int64(dataBody["act_type"].(float64))
  55. if acttype <= 0 {
  56. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "分类号不能为空")
  57. return
  58. }
  59. timenow := time.Now().Unix()
  60. fmt.Println("姓名:",actname,"文章内容",actcontent,"图片",orglogo,"文章类型",acttype,userOrgID)
  61. articles := models.Articles{
  62. Title: actname,
  63. Content: actcontent,
  64. Imgs: orglogo,
  65. ClassId: acttype,
  66. UserOrgId:userOrgID,
  67. Ctime:timenow,
  68. Status:1,
  69. Type:1,
  70. ArticleStatus:1,
  71. }
  72. err = article_service.AddAritcle(articles)
  73. if err !=nil{
  74. this.ServeFailJsonSend(enums.ErrorCodeDataException, "插入文章失败")
  75. return
  76. }
  77. this.ServeSuccessJSON(map[string]interface{}{
  78. "articles":articles,
  79. })
  80. }
  81. func (this *ArticleManage) GetArticleType(){
  82. adminUserInfo := this.GetAdminUserInfo()
  83. userOrgID := adminUserInfo.CurrentOrgId
  84. category, err := article_service.FindArticleCategoryType(userOrgID)
  85. fmt.Println("文章分类列表",category,err)
  86. if err !=nil{
  87. this.ServeFailJsonSend(enums.ErrorCodeDataException, "获取文章分类列表失败")
  88. return
  89. }
  90. this.ServeSuccessJSON(map[string]interface{}{
  91. "category":category,
  92. })
  93. return
  94. }
  95. func (this *ArticleManage) GetAllArticles() {
  96. page, _ := this.GetInt64("page", 1)
  97. limit, _ := this.GetInt64("limit", 10)
  98. searchKey := this.GetString("search", "")
  99. classId,_ := this.GetInt64("classid",0)
  100. fmt.Println("页面",page,"限制",limit,"关键字",searchKey,"分类号",classId)
  101. if page <= 0 {
  102. page = 1
  103. }
  104. if limit <= 0 {
  105. limit = 10
  106. }
  107. adminUserInfo := this.GetAdminUserInfo()
  108. userOrgID := adminUserInfo.CurrentOrgId
  109. articles, total, err := article_service.FindAllArticle(userOrgID, page,limit, searchKey, classId)
  110. fmt.Println("文章内容是是么",articles)
  111. fmt.Println("total",total)
  112. fmt.Println("err",err)
  113. if err !=nil{
  114. this.ServeFailJsonSend(enums.ErrorCodeDataException, "获取文章列表失败")
  115. return
  116. }
  117. category, err := article_service.FindCategoryList(userOrgID)
  118. fmt.Println("category是傻",category,err)
  119. if err !=nil{
  120. this.ServeFailJsonSend(enums.ErrorCodeDataException, "获取文章分类列表失败")
  121. return
  122. }
  123. this.ServeSuccessJSON(map[string]interface{}{
  124. "articles":articles,
  125. "total":total,
  126. "category":category,
  127. })
  128. return
  129. }
  130. func (this *ArticleManage) AddCategory(){
  131. dataBody := make(map[string]interface{}, 0)
  132. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  133. fmt.Println("err是什么呢",err)
  134. if err != nil {
  135. utils.ErrorLog(err.Error())
  136. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  137. return
  138. }
  139. name:= dataBody["name"].(string)
  140. fmt.Println("name是谁?",name)
  141. if len(name) == 0 {
  142. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "姓名不能为空")
  143. return
  144. }
  145. content := dataBody["summary"].(string)
  146. fmt.Println("content是谁?",content)
  147. if len(content) == 0 {
  148. this.ServeFailJsonSend(enums.ErrorCodeParamWrong,"内容不能为空")
  149. return
  150. }
  151. sort := dataBody["order"].(string)
  152. sors, _ := strconv.ParseInt(sort, 10, 64)
  153. if sors <=0 {
  154. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "排序不能为空")
  155. return
  156. }
  157. fmt.Println("soert是谁?",sort)
  158. fmt.Println("姓名:",name,"内容",content,"排序",sort)
  159. timenow := time.Now().Unix()
  160. adminUserInfo := this.GetAdminUserInfo()
  161. userOrgID := adminUserInfo.CurrentOrgId
  162. category := models.ArticleCategory{
  163. Name: name,
  164. Summary: content,
  165. Order: sors,
  166. UserOrgId:userOrgID,
  167. Status: 1,
  168. Ctime: timenow,
  169. }
  170. fmt.Println(category)
  171. err = article_service.AddCategory(category)
  172. fmt.Println(err)
  173. if err !=nil{
  174. this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加分类失败")
  175. return
  176. }
  177. this.ServeSuccessJSON(map[string]interface{}{
  178. "category":category,
  179. })
  180. }
  181. func (this *ArticleManage) GetCategorys() {
  182. adminUserInfo := this.GetAdminUserInfo()
  183. userOrgID := adminUserInfo.CurrentOrgId
  184. page, _ := this.GetInt64("page", 1)
  185. limit, _ := this.GetInt64("limit", 10)
  186. if page <= 0 {
  187. page = 1
  188. }
  189. if limit <= 0 {
  190. limit = 10
  191. }
  192. fmt.Println("机构ID",userOrgID)
  193. categorys, total, err := article_service.GetCategorys(page, limit, userOrgID)
  194. fmt.Println("hhe",categorys,total,err)
  195. if err !=nil{
  196. this.ServeFailJsonSend(enums.ErrorCodeDataException, "获取文章分类列表失败")
  197. return
  198. }
  199. this.ServeSuccessJSON(map[string]interface{}{
  200. "category":categorys,
  201. "total":total,
  202. })
  203. return
  204. }
  205. func (this *ArticleManage) EditCategorys() {
  206. id, _ := this.GetInt64("id", 0)
  207. fmt.Println("ID是多少",id)
  208. if id <= 0 {
  209. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误:id")
  210. return
  211. }
  212. adminUserInfo := this.GetAdminUserInfo()
  213. userOrgID := adminUserInfo.CurrentOrgId
  214. categorys, err := article_service.GetCategorysByID(userOrgID, id)
  215. fmt.Println("categorys是?",categorys,err)
  216. if err != nil {
  217. this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:("+err.Error()+")")
  218. return
  219. }
  220. if categorys == nil {
  221. this.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:(会员记录不存在)")
  222. return
  223. }
  224. timenow := time.Now().Unix()
  225. dataBody := make(map[string]interface{}, 0)
  226. err = json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  227. if err != nil {
  228. utils.ErrorLog(err.Error())
  229. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  230. return
  231. }
  232. name:= dataBody["name"].(string)
  233. fmt.Println("name是谁?",name)
  234. content := dataBody["summary"].(string)
  235. fmt.Println("content是谁?",content)
  236. if len(content) == 0 {
  237. this.ServeFailJsonSend(enums.ErrorCodeParamWrong,"内容不能为空")
  238. return
  239. }
  240. sors :=int64(dataBody["order"].(float64))
  241. //sors, _ := strconv.ParseInt(sort, 10, 64)
  242. fmt.Println("sort0",sors)
  243. if sors <= 0 {
  244. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "排序不能为空")
  245. return
  246. }
  247. fmt.Println("soert是谁?",sors)
  248. fmt.Println("姓名:",name,"内容",content,"排序",sors)
  249. category := models.ArticleCategory{
  250. Name: name,
  251. Summary: content,
  252. Order: sors,
  253. UserOrgId:userOrgID,
  254. Status: 1,
  255. Mtime: timenow,
  256. }
  257. fmt.Println("category是?",category)
  258. article_service.EditCategory(&category,userOrgID,id)
  259. this.ServeSuccessJSON(map[string]interface{}{
  260. "category":category,
  261. })
  262. }
  263. func (this *ArticleManage) DeleteCategorys() {
  264. adminUserInfo := this.GetAdminUserInfo()
  265. dataBody := make(map[string]interface{}, 0)
  266. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  267. if err != nil {
  268. utils.ErrorLog(err.Error())
  269. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  270. return
  271. }
  272. idsInters := dataBody["ids"].([]interface{})
  273. if len(idsInters) == 0 {
  274. if err != nil {
  275. this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:(没有选择会员)")
  276. return
  277. }
  278. }
  279. ids := make([]int64, 0)
  280. for _, idsInter := range idsInters {
  281. id := int64(idsInter.(float64))
  282. ids = append(ids, id)
  283. }
  284. err = article_service.DeleteCategorys(adminUserInfo.CurrentOrgId, ids)
  285. if err != nil {
  286. this.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除分类失败:("+err.Error()+")")
  287. return
  288. }
  289. returnData := make(map[string]interface{}, 0)
  290. returnData["msg"] = "ok"
  291. this.ServeSuccessJSON(returnData)
  292. return
  293. }
  294. func (this *ArticleManage) Addvido(){
  295. adminUserInfo := this.GetAdminUserInfo()
  296. userOrgID := adminUserInfo.CurrentOrgId
  297. dataBody := make(map[string]interface{}, 0)
  298. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  299. fmt.Println("视频发布是什么呢",err)
  300. if err != nil {
  301. utils.ErrorLog(err.Error())
  302. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  303. return
  304. }
  305. vidupload := dataBody["vio_upload"].(string)
  306. if len(vidupload) == 0 {
  307. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频不能为空")
  308. return
  309. }
  310. fmt.Println("视频",vidupload)
  311. vidname := dataBody["vid_name"].(string)
  312. if len(vidname)==0{
  313. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频标题不能为空")
  314. return
  315. }
  316. fmt.Println("视频名称",vidname)
  317. vidpic := dataBody["vid_pic"].(string)
  318. if(vidpic == ""){
  319. vidpic = vidupload + "?vframe/jpg/offset/1/w/300/h/200"
  320. }
  321. if len(vidpic)==0{
  322. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频封面不能为空")
  323. return
  324. }
  325. fmt.Println("视频图片",vidpic)
  326. vidtype := int64(dataBody["vid_type"].(float64))
  327. if vidtype <= 0 {
  328. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "所属分类不能为空")
  329. return
  330. }
  331. fmt.Println("视频类型",vidtype)
  332. fmt.Println("视频",vidupload,"视频标题",vidname,"视频封面",vidpic,"视频类型",vidtype)
  333. timenow := time.Now().Unix()
  334. articles := models.Articles{
  335. UserOrgId:userOrgID,
  336. Ctime:timenow,
  337. Type:2,
  338. VideoUrl:vidupload,
  339. Title:vidname,
  340. Imgs:vidpic,
  341. ClassId:vidtype,
  342. ArticleStatus:1,
  343. }
  344. err = article_service.AddVido(articles)
  345. if err !=nil{
  346. this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加分类失败")
  347. return
  348. }
  349. this.ServeSuccessJSON(map[string]interface{}{
  350. "vido":articles,
  351. })
  352. }
  353. func (this *ArticleManage) SaveDraft() {
  354. adminUserInfo := this.GetAdminUserInfo()
  355. userOrgID := adminUserInfo.CurrentOrgId
  356. dataBody := make(map[string]interface{}, 0)
  357. err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody)
  358. fmt.Println("视频发布是什么呢",err)
  359. if err != nil {
  360. utils.ErrorLog(err.Error())
  361. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  362. return
  363. }
  364. vidupload := dataBody["vio_upload"].(string)
  365. if len(vidupload) == 0 {
  366. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频不能为空")
  367. return
  368. }
  369. fmt.Println("视频",vidupload)
  370. vidname := dataBody["vid_name"].(string)
  371. if len(vidname)==0{
  372. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频标题不能为空")
  373. return
  374. }
  375. fmt.Println("视频名称",vidname)
  376. vidpic := dataBody["vid_pic"].(string)
  377. if(vidpic == ""){
  378. vidpic = vidupload + "?vframe/jpg/offset/1/w/300/h/200"
  379. }
  380. if len(vidpic)==0{
  381. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "视频封面不能为空")
  382. return
  383. }
  384. fmt.Println("视频图片",vidpic)
  385. vidtype := int64(dataBody["vid_type"].(float64))
  386. if vidtype <= 0 {
  387. this.ServeFailJsonSend(enums.ErrorCodeParamWrong, "所属分类不能为空")
  388. return
  389. }
  390. fmt.Println("视频类型",vidtype)
  391. fmt.Println("视频",vidupload,"视频标题",vidname,"视频封面",vidpic,"视频类型",vidtype)
  392. timenow := time.Now().Unix()
  393. articles := models.Articles{
  394. UserOrgId:userOrgID,
  395. Ctime:timenow,
  396. Type:2,
  397. VideoUrl:vidupload,
  398. Title:vidname,
  399. Imgs:vidpic,
  400. ClassId:vidtype,
  401. ArticleStatus:2,
  402. }
  403. err = article_service.AddVido(articles)
  404. if err !=nil{
  405. this.ServeFailJsonSend(enums.ErrorCodeDataException, "添加分类失败")
  406. return
  407. }
  408. this.ServeSuccessJSON(map[string]interface{}{
  409. "savedraft":articles,
  410. })
  411. }