劲创营---任务项目
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

124 linhas
3.4 KiB

  1. package svc
  2. import (
  3. "applet/app/comm/e"
  4. "applet/app/comm/svc"
  5. "applet/app/comm/utils"
  6. "applet/app/operator/md"
  7. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  8. "github.com/gin-gonic/gin"
  9. "time"
  10. )
  11. func ProjectSelect(c *gin.Context) {
  12. var args md.ProjectListSelectReq
  13. if err := c.ShouldBindJSON(&args); err != nil {
  14. e.OutErr(c, e.ERR_INVALID_ARGS)
  15. return
  16. }
  17. user := svc.GetUser(c)
  18. var project = make([]models.CampTaskProject, 0)
  19. svc.MasterDb(c).Where("is_must=1 and state=1").Find(&project)
  20. for _, v := range project {
  21. if utils.InArr(utils.IntToStr(v.Id), args.Ids) == false {
  22. e.OutErr(c, 400, e.NewErr(400, "《"+v.Name+"》未选择"))
  23. return
  24. }
  25. }
  26. isCanSelect := "0"
  27. sess := svc.MasterDb(c).NewSession()
  28. defer sess.Close()
  29. sess.Begin()
  30. var data models.CampTaskProjectOperatorLike
  31. sess.Where("uid=?", user.Info.Uid).Desc("id").Get(&data)
  32. if data.State == 3 || data.Id == 0 || data.CreateTime.Unix()+365 < time.Now().Unix() {
  33. isCanSelect = "1"
  34. }
  35. if isCanSelect != "1" {
  36. sess.Rollback()
  37. e.OutErr(c, 400, e.NewErr(400, "您不能选择"))
  38. return
  39. }
  40. no := data.No + 1
  41. if data.State == 3 {
  42. no = data.No
  43. update, _ := sess.Where("no=? and uid=?", no, user.Info.Uid).Delete(&models.CampTaskProjectOperatorLike{})
  44. if update == 0 {
  45. sess.Rollback()
  46. e.OutErr(c, 400, e.NewErr(400, "提交失败"))
  47. return
  48. }
  49. }
  50. for _, v := range args.Ids {
  51. var tmp = models.CampTaskProjectOperatorLike{
  52. Uid: user.Info.Uid,
  53. ProjectId: utils.StrToInt(v),
  54. CreateTime: time.Now(),
  55. No: no,
  56. }
  57. insert, _ := sess.Insert(&tmp)
  58. if insert == 0 {
  59. sess.Rollback()
  60. e.OutErr(c, 400, e.NewErr(400, "提交失败"))
  61. return
  62. }
  63. }
  64. sess.Commit()
  65. e.OutSuc(c, "success", nil)
  66. return
  67. }
  68. func ProjectList(c *gin.Context) {
  69. var args md.ProjectListReq
  70. if err := c.ShouldBindJSON(&args); err != nil {
  71. e.OutErr(c, e.ERR_INVALID_ARGS)
  72. return
  73. }
  74. user := svc.GetUser(c)
  75. isCanSelect := "0"
  76. var data models.CampTaskProjectOperatorLike
  77. svc.MasterDb(c).Where("uid=?", user.Info.Uid).Desc("id").Get(&data)
  78. if data.State == 3 || data.Id == 0 || data.CreateTime.Unix()+365 < time.Now().Unix() {
  79. isCanSelect = "1"
  80. }
  81. hotTask := make([]map[string]string, 0)
  82. var hotTaskList []models.CampTaskProject
  83. sess := svc.MasterDb(c).Where("state=?", 1)
  84. if args.Cid != "" {
  85. sess.And("cid=?", args.Cid)
  86. }
  87. total, _ := sess.Limit(utils.StrToInt(args.P), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("is_must desc,id desc").FindAndCount(&hotTaskList)
  88. for _, v := range hotTaskList {
  89. tmp := map[string]string{
  90. "id": utils.IntToStr(v.Id),
  91. "is_check": "0",
  92. "is_must": utils.IntToStr(v.IsMust),
  93. "name": v.Name,
  94. "money": v.Money,
  95. "icon": svc.ImageFormat(c, v.Logo),
  96. }
  97. counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskOperatorTask{})
  98. if counts > 0 {
  99. tmp["is_check"] = "1"
  100. }
  101. hotTask = append(hotTask, tmp)
  102. }
  103. taskCate := make([]map[string]string, 0)
  104. taskCateList := make([]models.CampTaskProjectCate, 0)
  105. svc.MasterDb(c).Where("is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
  106. for _, v := range taskCateList {
  107. tmp := map[string]string{
  108. "name": v.Name, "value": utils.IntToStr(v.Id),
  109. }
  110. taskCate = append(taskCate, tmp)
  111. }
  112. res := map[string]interface{}{
  113. "cate_list": taskCate,
  114. "is_can_select": isCanSelect,
  115. "total": total, "list": hotTask,
  116. }
  117. e.OutSuc(c, res, nil)
  118. return
  119. }