package pc import ( "fmt" "hudongzhuanjia/controllers" "hudongzhuanjia/models" ws_send_service "hudongzhuanjia/services/ws_send" "hudongzhuanjia/utils" "hudongzhuanjia/utils/code" "hudongzhuanjia/utils/define" "strings" "time" "github.com/ouxuanserver/osmanthuswine/src/core" ) type UpperWallCtl struct { controllers.AuthorCtl } type UpperWallResult struct { models.UpperWall `xorm:"extends"` User *models.User `json:"user" xorm:"extends"` } //获取所有已审核的上墙消息 func (t *UpperWallCtl) List() { activityId := t.MustGetInt64("activity_id") rehearsalId := t.MustGetInt64("rehearsal_id") result := make([]*UpperWallResult, 0) err := core.GetXormAuto().Table("ox_upper_wall").Alias("w"). Join("LEFT", "ox_user as u", "w.user_id=u.id and u.is_delete=0"). Where("w.is_delete=0 and w.status=3 and w.activity_id=? and w.rehearsal_id=?", activityId, rehearsalId). OrderBy("w.review_time desc").Find(&result) t.CheckErr(err) t.JSON(map[string]interface{}{ "total": len(result), "list": result, }) } //获取待审核列表 func (t *UpperWallCtl) WaitReview() { activityId := t.MustGetInt64("activity_id") rehearsalId := t.MustGetInt64("rehearsal_id") //根据霸屏服务得id获取待审核得霸屏列表 result := make([]*UpperWallResult, 0) err := core.GetXormAuto().Table("ox_upper_wall").Alias("w"). Join("LEFT", "ox_user as u", "w.user_id=u.id and u.is_delete=0"). Where("w.is_delete=0 and w.status=0 and w.activity_id=? and w.rehearsal_id=?", activityId, rehearsalId). OrderBy("w.review_time desc").Find(&result) t.CheckErr(err) t.JSON(map[string]interface{}{ "total": len(result), "list": result, }) } //审核操作 func (t *UpperWallCtl) Review() { idList := t.MustGet("ids") status := t.MustGetBool("status") uid := t.MustGetUID() ids := strings.Split(idList, "|") customer := new(models.Customer) exist, err := models.Get(customer, uid) t.CheckErr(err) t.Assert(exist, code.MSG_CUSTOMER_NOT_EXIST, "客户不存在") reviewStatus := 1 if !status { reviewStatus = 3 // 审核通过直接发送ws } t.CheckErr(models.Save(map[string]interface{}{ "id in": ids, }, &models.UpperWall{ Status: reviewStatus, ReviewTime: time.Now().Unix(), }, "status", "review_time")) // false 通过 if !status { result := make([]*UpperWallResult, 0) err := core.GetXormAuto().Table("ox_upper_wall").Alias("w"). Join("LEFT", "ox_user as u", "w.user_id=u.id and u.is_delete=0"). Where("w.is_delete=0").In("w.id", ids). OrderBy("w.created_at asc").Find(&result) t.CheckErr(err) if len(result) == 0 { t.ERROR("不存在上墙消息", code.MSG_DATA_NOT_EXIST) return } for index := range result { bi, err := utils.Gif2Base64(result[index].Img) t.CheckErr(err) result[index].Img = bi } go ws_send_service.SendUpperWall(fmt.Sprintf("%d", result[0].ActivityId), define.TYPE_CUSTOMER, customer.Id, map[string]interface{}{ "type": "upper_wall", "customer_id": customer.Id, "data": map[string]interface{}{ "list": result, "total": len(result)}, }) } t.SUCCESS("审核成功") } //获取黑名单列表 func (t *UpperWallCtl) Blacklist() { activityId := t.MustGetInt64("activity_id") rehearsalId := t.MustGetInt64("rehearsal_id") result := make([]*UpperWallResult, 0) err := core.GetXormAuto().Table("ox_upper_wall").Alias("w"). Join("LEFT", "ox_user as u", "w.user_id=u.id and u.is_delete=0"). Where("w.is_delete=0 and w.status=1 and w.status=1 and w.rehearsal_id=? and w.activity_id=?", rehearsalId, activityId).OrderBy("review_time desc").Find(&result) t.CheckErr(err) t.JSON(map[string]interface{}{ "total": len(result), "list": result, }) } //获取目前上墙得总条数 func (t *UpperWallCtl) Total() { activityId := t.MustGetInt64("activity_id") rehearsalId := t.MustGetInt64("rehearsal_id") total, err := core.GetXormAuto().Where("is_delete=0 and activity_id=? and rehearsal_id=? and status=3", activityId, rehearsalId).Count(new(models.UpperWall)) t.CheckErr(err) t.JSON(map[string]interface{}{ "total": total, }) } //二维码 // 跳到主页 func (t *UpperWallCtl) Qrcode() { activityId := t.MustGetInt64("activity_id") uid := t.MustGetUID() activity := new(models.Activity) exist, err := models.Get(activity, activityId) t.CheckErr(err) t.Assert(exist, code.MSG_ACTIVITY_NOT_EXIST, "互动信息异常") area := new(models.AreaStore) exist, err = area.GetByCustomerId(uid, activityId) t.CheckErr(err) t.Assert(exist, code.MSG_CUSTOMER_NOT_EXIST, "地区信息异常") qrcode, err := utils.GenH5Qrcode(define.H5Index, map[string]interface{}{ "activity_id": activityId, "area_id": area.Id, "customer_id": uid, "rehearsal_id": activity.RehearsalId, }) t.CheckErr(err) t.JSON(map[string]interface{}{ "qrcode": qrcode, }) } func (t *UpperWallCtl) Details() { activityId := t.MustGetInt64("activity_id") msgWall := new(models.MsgWallServer) exist, err := msgWall.GetByActivityId(activityId) t.CheckErr(err) if !exist { t.ERROR("上墙服务模块不存在", code.MSG_ERR) } t.JSON(map[string]interface{}{ "msg_wall": msgWall, }) }