劲创营---任务项目
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

131 рядки
3.8 KiB

  1. package svc
  2. import (
  3. "applet/app/comm/e"
  4. "applet/app/comm/svc"
  5. "applet/app/comm/utils"
  6. "applet/app/store/md"
  7. "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models"
  8. "github.com/gin-gonic/gin"
  9. "time"
  10. )
  11. func DirectorList(c *gin.Context) {
  12. var args md.DirectorReq
  13. if err := c.ShouldBindJSON(&args); err != nil {
  14. e.OutErr(c, e.ERR_INVALID_ARGS)
  15. return
  16. }
  17. storeId := svc.GetCampStoreId(c)
  18. list := make([]map[string]interface{}, 0)
  19. var data = make([]models.CampTaskStoreUser, 0)
  20. sess := svc.MasterDb(c).Where("pid=?", storeId)
  21. count, _ := sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("id desc").FindAndCount(&data)
  22. taskList := make([]map[string]string, 0)
  23. taskListMap := make([]models.CampTaskList, 0)
  24. svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId).Find(&taskListMap)
  25. for _, v := range taskListMap {
  26. tmp := map[string]string{
  27. "name": v.Name, "value": utils.IntToStr(v.Id), "store_id": v.Contact,
  28. }
  29. taskList = append(taskList, tmp)
  30. }
  31. for _, v := range data {
  32. taskId := make([]string, 0)
  33. for _, v1 := range taskListMap {
  34. if utils.StrToInt(v1.Contact) == v.Id {
  35. taskId = append(taskId, utils.IntToStr(v.Id))
  36. }
  37. }
  38. tmp := map[string]interface{}{
  39. "id": utils.IntToStr(v.Id),
  40. "phone": v.Phone,
  41. "name": v.Name,
  42. "task_ids": taskId,
  43. }
  44. list = append(list, tmp)
  45. }
  46. res := map[string]interface{}{
  47. "list": list,
  48. "task_list": taskList,
  49. "total": count,
  50. }
  51. e.OutSuc(c, res, nil)
  52. return
  53. }
  54. func DirectorSave(c *gin.Context) {
  55. var args map[string]string
  56. if err := c.ShouldBindJSON(&args); err != nil {
  57. e.OutErr(c, e.ERR_INVALID_ARGS)
  58. return
  59. }
  60. storeId := svc.GetCampStoreId(c)
  61. var data models.CampTaskStoreUser
  62. if args["id"] != "" {
  63. svc.MasterDb(c).Where("id=?", args["id"]).Get(&data)
  64. }
  65. count, _ := svc.MasterDb(c).Where("phone=?", args["phone"]).Count(&models.CampTaskStoreUser{})
  66. if count > 0 && data.Phone != args["phone"] {
  67. e.OutErr(c, 400, e.NewErr(400, "该手机号已被绑定"))
  68. return
  69. }
  70. if args["id"] == "" {
  71. data = models.CampTaskStoreUser{
  72. CreateTime: time.Now(),
  73. Phone: args["phone"],
  74. Pid: storeId,
  75. }
  76. svc.MasterDb(c).Insert(&data)
  77. }
  78. data.Phone = args["phone"]
  79. if args["password"] != "" {
  80. data.Password = utils.Md5(args["password"])
  81. }
  82. data.Name = args["name"]
  83. svc.MasterDb(c).Where("id=?", data.Id).Update(&data)
  84. e.OutSuc(c, "success", nil)
  85. return
  86. }
  87. func DirectorTaskSave(c *gin.Context) {
  88. var args md.DirectorTaskSaveReq
  89. if err := c.ShouldBindJSON(&args); err != nil {
  90. e.OutErr(c, e.ERR_INVALID_ARGS)
  91. return
  92. }
  93. sess := svc.MasterDb(c).NewSession()
  94. defer sess.Close()
  95. sess.Begin()
  96. count, _ := sess.Where("contact!=? and is_delete=0", "0").In("id", args.TaskIds).Cols("contact").Count(&models.CampTaskList{})
  97. if count > 0 {
  98. sess.Rollback()
  99. e.OutErr(c, 400, e.NewErr(400, "部分任务已绑定负责人"))
  100. return
  101. }
  102. _, err := sess.Where("contact=? and is_delete=0", args.Id).NotIn("id", args.TaskIds).Cols("contact").Update(&models.CampTaskList{Contact: "0"})
  103. if err != nil {
  104. sess.Rollback()
  105. e.OutErr(c, 400, e.NewErr(400, "修改失败"))
  106. return
  107. }
  108. _, err = sess.Where("contact=? and is_delete=0", "0").In("id", args.TaskIds).Cols("contact").Update(&models.CampTaskList{Contact: args.Id})
  109. if err != nil {
  110. sess.Rollback()
  111. e.OutErr(c, 400, e.NewErr(400, "修改失败"))
  112. return
  113. }
  114. sess.Commit()
  115. e.OutSuc(c, "success", nil)
  116. return
  117. }
  118. func DirectorDel(c *gin.Context) {
  119. var args md.DirectorDelReq
  120. if err := c.ShouldBindJSON(&args); err != nil {
  121. e.OutErr(c, e.ERR_INVALID_ARGS)
  122. return
  123. }
  124. svc.MasterDb(c).In("id", args.Ids).Delete(&models.CampTaskStoreUser{})
  125. svc.MasterDb(c).Where(" is_delete=0").In("contact", args.Ids).Cols("contact").Update(&models.CampTaskList{Contact: "0"})
  126. e.OutSuc(c, "success", nil)
  127. return
  128. }