package svc import ( "applet/app/comm/e" "applet/app/comm/svc" "applet/app/comm/utils" "applet/app/store/md" "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models" "github.com/gin-gonic/gin" "time" ) func DirectorList(c *gin.Context) { var args md.DirectorReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } storeId := svc.GetCampStoreId(c) list := make([]map[string]interface{}, 0) var data = make([]models.CampTaskStoreUser, 0) sess := svc.MasterDb(c).Where("pid=?", storeId) count, _ := sess.Limit(utils.StrToInt(args.Size), (utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size)).OrderBy("id desc").FindAndCount(&data) taskList := make([]map[string]string, 0) taskListMap := make([]models.CampTaskList, 0) svc.MasterDb(c).Where("store_id=? and is_delete=0", storeId).Find(&taskListMap) for _, v := range taskListMap { tmp := map[string]string{ "name": v.Name, "value": utils.IntToStr(v.Id), "store_id": v.Contact, } taskList = append(taskList, tmp) } for _, v := range data { taskId := make([]string, 0) for _, v1 := range taskListMap { if utils.StrToInt(v1.Contact) == v.Id { taskId = append(taskId, utils.IntToStr(v.Id)) } } tmp := map[string]interface{}{ "id": utils.IntToStr(v.Id), "phone": v.Phone, "name": v.Name, "task_ids": taskId, } list = append(list, tmp) } res := map[string]interface{}{ "list": list, "task_list": taskList, "total": count, } e.OutSuc(c, res, nil) return } func DirectorSave(c *gin.Context) { var args map[string]string if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } storeId := svc.GetCampStoreId(c) var data models.CampTaskStoreUser if args["id"] != "" { svc.MasterDb(c).Where("id=?", args["id"]).Get(&data) } count, _ := svc.MasterDb(c).Where("phone=?", args["phone"]).Count(&models.CampTaskStoreUser{}) if count > 0 && data.Phone != args["phone"] { e.OutErr(c, 400, e.NewErr(400, "该手机号已被绑定")) return } if args["id"] == "" { data = models.CampTaskStoreUser{ CreateTime: time.Now(), Phone: args["phone"], Pid: storeId, } svc.MasterDb(c).Insert(&data) } data.Phone = args["phone"] if args["password"] != "" { data.Password = utils.Md5(args["password"]) } data.Name = args["name"] svc.MasterDb(c).Where("id=?", data.Id).Update(&data) e.OutSuc(c, "success", nil) return } func DirectorTaskSave(c *gin.Context) { var args md.DirectorTaskSaveReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } sess := svc.MasterDb(c).NewSession() defer sess.Close() sess.Begin() count, _ := sess.Where("contact!=? and is_delete=0", "0").In("id", args.TaskIds).Cols("contact").Count(&models.CampTaskList{}) if count > 0 { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "部分任务已绑定负责人")) return } _, err := sess.Where("contact=? and is_delete=0", args.Id).NotIn("id", args.TaskIds).Cols("contact").Update(&models.CampTaskList{Contact: "0"}) if err != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "修改失败")) return } _, err = sess.Where("contact=? and is_delete=0", "0").In("id", args.TaskIds).Cols("contact").Update(&models.CampTaskList{Contact: args.Id}) if err != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "修改失败")) return } e.OutSuc(c, "success", nil) return } func DirectorDel(c *gin.Context) { var args md.DirectorDelReq if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS) return } svc.MasterDb(c).In("id", args.Ids).Delete(&models.CampTaskStoreUser{}) svc.MasterDb(c).Where(" is_delete=0").In("contact", args.Ids).Cols("contact").Update(&models.CampTaskList{Contact: "0"}) e.OutSuc(c, "success", nil) return }