劲创营---任务项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

151 regels
4.3 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. "encoding/json"
  9. "github.com/gin-gonic/gin"
  10. "time"
  11. )
  12. func ProjectSelect(c *gin.Context) {
  13. var args md.ProjectListSelectReq
  14. if err := c.ShouldBindJSON(&args); err != nil {
  15. e.OutErr(c, e.ERR_INVALID_ARGS)
  16. return
  17. }
  18. user := svc.GetUser(c)
  19. var project = make([]models.CampTaskProject, 0)
  20. svc.MasterDb(c).Where("is_must=1 and state=1").Find(&project)
  21. for _, v := range project {
  22. if utils.InArr(utils.IntToStr(v.Id), args.Ids) == false {
  23. e.OutErr(c, 400, e.NewErr(400, "《"+v.Name+"》未选择"))
  24. return
  25. }
  26. }
  27. isCanSelect := "0"
  28. sess := svc.MasterDb(c).NewSession()
  29. defer sess.Close()
  30. sess.Begin()
  31. var data models.CampTaskProjectOperatorLike
  32. sess.Where("uid=?", user.Info.Uid).Desc("id").Get(&data)
  33. if data.State == 3 || data.Id == 0 || data.CreateTime.Unix()+365 < time.Now().Unix() {
  34. isCanSelect = "1"
  35. }
  36. if isCanSelect != "1" {
  37. sess.Rollback()
  38. e.OutErr(c, 400, e.NewErr(400, "您不能选择"))
  39. return
  40. }
  41. no := data.No + 1
  42. if data.State == 3 {
  43. no = data.No
  44. update, _ := sess.Where("no=? and uid=?", no, user.Info.Uid).Delete(&models.CampTaskProjectOperatorLike{})
  45. if update == 0 {
  46. sess.Rollback()
  47. e.OutErr(c, 400, e.NewErr(400, "提交失败"))
  48. return
  49. }
  50. }
  51. for _, v := range args.Ids {
  52. var tmp = models.CampTaskProjectOperatorLike{
  53. Uid: user.Info.Uid,
  54. ProjectId: utils.StrToInt(v),
  55. CreateTime: time.Now(),
  56. No: no,
  57. }
  58. insert, _ := sess.Insert(&tmp)
  59. if insert == 0 {
  60. sess.Rollback()
  61. e.OutErr(c, 400, e.NewErr(400, "提交失败"))
  62. return
  63. }
  64. }
  65. sess.Commit()
  66. e.OutSuc(c, "success", nil)
  67. return
  68. }
  69. func ProjectList(c *gin.Context) {
  70. var args md.ProjectListReq
  71. if err := c.ShouldBindJSON(&args); err != nil {
  72. e.OutErr(c, e.ERR_INVALID_ARGS)
  73. return
  74. }
  75. user := svc.GetUser(c)
  76. isCanSelect := "0"
  77. var data models.CampTaskProjectOperatorLike
  78. svc.MasterDb(c).Where("uid=?", user.Info.Uid).Desc("id").Get(&data)
  79. if data.State == 3 || data.Id == 0 || data.CreateTime.Unix()+365 < time.Now().Unix() {
  80. isCanSelect = "1"
  81. }
  82. hotTask := make([]map[string]interface{}, 0)
  83. var hotTaskList []models.CampTaskProject
  84. sess := svc.MasterDb(c).Where("state=?", 1)
  85. if args.Cid != "" {
  86. sess.And("cid=?", args.Cid)
  87. }
  88. total, _ := sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("is_must desc,id desc").FindAndCount(&hotTaskList)
  89. cate := make([]models.CampTaskProjectCate, 0)
  90. svc.MasterDb(c).Where("1=1").OrderBy("sort desc,id desc").Find(&cate)
  91. for _, v := range hotTaskList {
  92. enterpriseInfo := make(map[string]string)
  93. json.Unmarshal([]byte(v.EnterpriseInfo), &enterpriseInfo)
  94. enterpriseInfo1 := map[string]string{
  95. "name": enterpriseInfo["name"],
  96. "user_name": enterpriseInfo["user_name"],
  97. "address": enterpriseInfo["address"],
  98. }
  99. img := make([]string, 0)
  100. json.Unmarshal([]byte(v.Img), &img)
  101. firstImg := ""
  102. if len(img) > 0 {
  103. firstImg = img[0]
  104. }
  105. detailInfo := make([]string, 0)
  106. json.Unmarshal([]byte(v.DetailInfo), &detailInfo)
  107. tmp := map[string]interface{}{
  108. "year": v.CreateTime.Format("2006") + "年",
  109. "id": utils.IntToStr(v.Id),
  110. "name": v.Name,
  111. "cid": utils.IntToStr(v.Cid),
  112. "money": utils.Comm(v.Money),
  113. "img": firstImg,
  114. "video_info": v.VideoInfo,
  115. "img_list": img,
  116. "detail_info": detailInfo,
  117. "create_time": v.CreateTime.Format("2006-01-02 15:04:05"),
  118. "enterprise_info": enterpriseInfo1,
  119. "cate_name": "",
  120. "adv_word": v.AdvWord,
  121. "is_must": utils.IntToStr(v.IsMust),
  122. }
  123. for _, v1 := range cate {
  124. if v1.Id == v.Cid {
  125. tmp["cate_name"] = v1.Name
  126. }
  127. }
  128. hotTask = append(hotTask, tmp)
  129. }
  130. taskCate := make([]map[string]string, 0)
  131. taskCateList := make([]models.CampTaskProjectCate, 0)
  132. svc.MasterDb(c).Where("is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
  133. for _, v := range taskCateList {
  134. tmp := map[string]string{
  135. "name": v.Name, "value": utils.IntToStr(v.Id),
  136. }
  137. taskCate = append(taskCate, tmp)
  138. }
  139. res := map[string]interface{}{
  140. "cate_list": taskCate,
  141. "is_can_select": isCanSelect,
  142. "total": total, "list": hotTask,
  143. }
  144. e.OutSuc(c, res, nil)
  145. return
  146. }