package svc import ( "applet/app/db" "applet/app/db/im/model" md "applet/app/md/im" "errors" "time" ) func PageCustomerService(req md.PageCustomerServiceReq) (err error, resp md.PageCustomerServiceResp) { var userId int64 if req.Phone != "" { var user model.User get, err := db.DbIm.Where("phone_number = ?", req.Phone).Get(&user) if err != nil { return err, resp } if get { userId = user.Id } } sess := db.DbIm.Where("1=1") if req.Memo != "" { sess.And("memo LIKE ?", "%"+req.Memo+"%") } if req.State != 0 { sess.And("state = ?", req.State) } if userId != 0 { sess.And("uid = ?", userId) } var mm []*model.CustomerService resp.Total, err = sess.Limit(req.PageSize, (req.Page-1)*req.PageSize).Asc("id").FindAndCount(&mm) if err != nil { return } resp.Page = req.Page resp.PageSize = req.PageSize for _, v := range mm { var user model.User _, err = db.DbIm.Where("`id`=?", v.Uid).Get(&user) if err != nil { return } resp.List = append(resp.List, struct { Id int64 `json:"id"` //记录id Phone string `json:"phone" example:"手机号"` Nickname string `json:"nickname" example:"昵称"` Weight int32 `json:"weight"` // 权重 State int32 `json:"state"` // 状态 HaasUserNums int `json:"has_user_nums"` // 拥有用户数量 Memo string `json:"memo" example:"备注"` // 备注 CreateTime string `json:"create_time" example:"创建时间"` // 创建时间 UpdateTime string `json:"update_time" example:"更新时间"` // 更新时间 }{ Id: v.Id, Phone: user.PhoneNumber, Nickname: user.Nickname, Weight: v.Weight, State: v.State, HaasUserNums: v.HasUserNums, Memo: v.Memo, CreateTime: v.CreateTime, UpdateTime: v.UpdateTime, }) } return } func AddCustomerService(req md.AddCustomerServiceReq) (err error) { var user model.User has, err := db.DbIm.Where("`phone_number`=?", req.Phone).Get(&user) if err != nil { return } if !has { return errors.New("未查询到对应手机号账号记录") } var customerService model.CustomerService has, err = db.DbIm.Where("`uid`=?", user.Id).Get(&customerService) if err != nil { return } if has { return errors.New("该账号已是客服!") } cfg := model.CustomerService{ Uid: user.Id, Weight: req.Weight, State: 1, HasUserNums: 0, Memo: req.Memo, CreateTime: time.Now().Format("2006-01-02 15:04:05"), UpdateTime: time.Now().Format("2006-01-02 15:04:05"), } _, err = db.DbIm.InsertOne(&cfg) if err != nil { return } return } func SetCustomerServiceState(req md.SetCustomerServiceStateReq) (err error) { var customerService model.CustomerService has, err := db.DbIm.ID(req.Id).Get(&customerService) if err != nil { return } if !has { return errors.New("未查询到对应记录!") } customerService.State = req.State _, err = db.DbIm.ID(req.Id).Cols("state").Update(&customerService) if err != nil { return } return } func UpdateCustomerServiceMemo(req md.UpdateCustomerServiceMemoReq) (err error) { var customerService model.CustomerService has, err := db.DbIm.ID(req.Id).Get(&customerService) if err != nil { return } if !has { return errors.New("未查询到对应记录!") } customerService.Memo = req.Memo _, err = db.DbIm.ID(req.Id).Cols("memo").Update(&customerService) if err != nil { return } return }