劲创营---任务项目
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

svc_announcement.go 4.1 KiB

il y a 3 semaines
il y a 2 semaines
il y a 3 semaines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package svc
  2. import (
  3. "applet/app/comm/db"
  4. "applet/app/comm/e"
  5. "applet/app/comm/svc"
  6. "applet/app/comm/utils"
  7. "applet/app/store/md"
  8. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  9. "github.com/gin-gonic/gin"
  10. "time"
  11. )
  12. func AnnouncementList(c *gin.Context) {
  13. var args md.AnnouncementReq
  14. if err := c.ShouldBindJSON(&args); err != nil {
  15. e.OutErr(c, e.ERR_INVALID_ARGS)
  16. return
  17. }
  18. storeId := svc.GetCampStoreId(c)
  19. list := make([]map[string]string, 0)
  20. var data = make([]models.CampTaskNotice, 0)
  21. sess := svc.MasterDb(c).Where("store_id=?", storeId)
  22. if args.CateType != "" {
  23. sess.And("type=?", args.CateType)
  24. }
  25. if args.StartTime != "" {
  26. sess.And("send_time>=?", args.StartTime)
  27. }
  28. if args.EndTime != "" {
  29. sess.And("send_time<=?", args.EndTime)
  30. }
  31. count, _ := sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("id desc").FindAndCount(&data)
  32. levelMap, _ := db.UserLevlEgAll(svc.MasterDb(c))
  33. levelList := []map[string]string{
  34. {"name": "所有人", "value": "-1"},
  35. }
  36. for _, v := range levelMap {
  37. levelList = append(levelList, map[string]string{"name": v.LevelName, "value": utils.IntToStr(v.Id)})
  38. }
  39. var task = make([]models.CampTaskList, 0)
  40. svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId).Find(&task)
  41. taskList := make([]map[string]string, 0)
  42. for _, v := range task {
  43. taskList = append(taskList, map[string]string{"name": v.Name, "value": utils.IntToStr(v.Id)})
  44. }
  45. cateType := []map[string]string{
  46. {"name": "任务公告", "value": "announcement"},
  47. {"name": "数据与结算", "value": "data_settle"},
  48. {"name": "变更通知", "value": "change_notice"},
  49. }
  50. for _, v := range data {
  51. tmp := map[string]string{
  52. "id": utils.IntToStr(v.Id),
  53. "title": v.Title,
  54. "type": v.Type,
  55. "type_str": "",
  56. "content": v.Content,
  57. "lv": utils.IntToStr(v.Lv),
  58. "task_id": utils.IntToStr(v.TaskId),
  59. "task_name": "",
  60. "level": "",
  61. "send_type": "未发送",
  62. "send_time": v.SendTime.Format("2006-01-02 15:04:05"),
  63. }
  64. if v.SendTime.Unix() < time.Now().Unix() {
  65. tmp["send_type"] = "已发送"
  66. }
  67. for _, v1 := range levelList {
  68. if utils.StrToInt(v1["value"]) == v.Lv {
  69. tmp["level"] = v1["name"]
  70. }
  71. }
  72. for _, v1 := range cateType {
  73. if v1["value"] == v.Type {
  74. tmp["type_str"] = v1["name"]
  75. }
  76. }
  77. for _, v1 := range taskList {
  78. if utils.StrToInt(v1["value"]) == v.TaskId {
  79. tmp["task_name"] = v1["name"]
  80. }
  81. }
  82. list = append(list, tmp)
  83. }
  84. res := map[string]interface{}{
  85. "list": list,
  86. "level_list": levelList,
  87. "task_list": taskList,
  88. "cate_type": cateType,
  89. "total": count,
  90. }
  91. e.OutSuc(c, res, nil)
  92. return
  93. }
  94. func AnnouncementSave(c *gin.Context) {
  95. var args map[string]string
  96. if err := c.ShouldBindJSON(&args); err != nil {
  97. e.OutErr(c, e.ERR_INVALID_ARGS)
  98. return
  99. }
  100. storeId := svc.GetCampStoreId(c)
  101. var data models.CampTaskNotice
  102. if args["id"] != "" {
  103. svc.MasterDb(c).Where("id=?", args["id"]).Get(&data)
  104. } else {
  105. if args["type"] == "announcement" {
  106. count, _ := svc.MasterDb(c).Where("store_id=? and type=? and task_id=?", storeId, "announcement", args["task_id"]).Count(&models.CampTaskNotice{})
  107. if count > 0 {
  108. e.OutErr(c, 400, e.NewErr(400, "任务公告只能添加一个,您已添加过,请查找任务公告修改"))
  109. return
  110. }
  111. }
  112. data = models.CampTaskNotice{
  113. StoreId: storeId,
  114. CreateTime: time.Now(),
  115. SendTime: time.Time{},
  116. }
  117. svc.MasterDb(c).Insert(&data)
  118. }
  119. data.Lv = utils.StrToInt(args["lv"])
  120. data.TaskId = utils.StrToInt(args["task_id"])
  121. data.SendTime = utils.TimeParseStd(args["send_time"])
  122. if args["send_time"] == "" {
  123. data.SendTime = time.Now()
  124. }
  125. data.Title = args["title"]
  126. data.Content = args["content"]
  127. data.Type = args["type"]
  128. svc.MasterDb(c).Where("id=?", data.Id).Update(&data)
  129. e.OutSuc(c, "success", nil)
  130. return
  131. }
  132. func AnnouncementDel(c *gin.Context) {
  133. var args md.AnnouncementDelReq
  134. if err := c.ShouldBindJSON(&args); err != nil {
  135. e.OutErr(c, e.ERR_INVALID_ARGS)
  136. return
  137. }
  138. svc.MasterDb(c).In("id", args.Ids).Delete(&models.CampTaskNotice{})
  139. e.OutSuc(c, "success", nil)
  140. return
  141. }