package db import ( "applet/app/db/model" "applet/app/md" "applet/app/utils" "xorm.io/xorm" ) func GetOrderByOid(eg *xorm.Engine, oid string) *model.CommunityTeamOrder { var data model.CommunityTeamOrder get, err := eg.Where("oid=?", oid).Get(&data) if get == false || err != nil { return nil } return &data } func GetOrderEg(eg *xorm.Engine, oid string) *model.CommunityTeamOrder { var data model.CommunityTeamOrder get, err := eg.Where("oid=?", oid).Get(&data) if get == false || err != nil { return nil } return &data } func GetOrder(sess *xorm.Session, oid string) *model.CommunityTeamOrder { var data model.CommunityTeamOrder get, err := sess.Where("oid=?", oid).Get(&data) if get == false || err != nil { return nil } return &data } func GetOrderInfo(sess *xorm.Session, oid string) *[]model.CommunityTeamOrderInfo { var data []model.CommunityTeamOrderInfo err := sess.Where("oid=?", oid).Find(&data) if err != nil { return nil } return &data } func GetOrderInfoAllEg(eg *xorm.Engine, oid string) *[]model.CommunityTeamOrderInfo { var data []model.CommunityTeamOrderInfo err := eg.Where("oid=?", oid).Find(&data) if err != nil { return nil } return &data } func GetOrderInfoEg(eg *xorm.Engine, oid string) *model.CommunityTeamOrderInfo { var data model.CommunityTeamOrderInfo get, err := eg.Where("oid=?", oid).Asc("id").Get(&data) if get == false || err != nil { return nil } return &data } func GetOrderList(eg *xorm.Engine, arg map[string]string) *[]model.CommunityTeamOrder { var data []model.CommunityTeamOrder sess := eg.Where("1=1") if arg["uid"] != "" { sess.And("uid=?", arg["uid"]) } if arg["state"] != "" { sess.And("state=?", arg["state"]) } if arg["store_uid"] != "" { sess.And("store_uid=?", arg["store_uid"]) } if arg["code"] != "" { sess.And("code=?", arg["code"]) } limit := utils.StrToInt(arg["size"]) start := (utils.StrToInt(arg["p"]) - 1) * limit err := sess.OrderBy("id desc").Limit(limit, start).Find(&data) if err != nil { return nil } return &data } func GetStoreOrderList(eg *xorm.Engine, req md.StoreOrder, parent_uid int) (*[]model.CommunityTeamOrder, int64, error) { var data []model.CommunityTeamOrder sess := eg.Where("1=1") if req.Oid != "" { sess.And("oid like ?", "%"+req.Oid+"%") } if req.StoreName != "" { var store []model.CommunityTeamStore eg.Where("name like ?", "%"+req.StoreName+"%").Find(&store) ids := []int{-1} for _, v := range store { ids = append(ids, v.Id) } sess.In("store_uid", ids) } if req.Phone != "" { var user []model.User eg.Where("phone like ?", "%"+req.Phone+"%").Find(&user) ids := []int{-1} for _, v := range user { ids = append(ids, v.Uid) } sess.In("uid", ids) } if req.Nickname != "" { var user []model.User eg.Where("nickname like ?", "%"+req.Nickname+"%").Find(&user) ids := []int{-1} for _, v := range user { ids = append(ids, v.Uid) } sess.In("uid", ids) } if req.StoreUid != "" { sess.And("store_uid=?", req.StoreUid) } if parent_uid > 0 { sess.And("parent_uid=?", parent_uid) } if req.StartTime != "" { sess.And("create_at>=?", req.StartTime) } if req.EndTime != "" { sess.And("create_at<=?", req.EndTime) } if req.ConfirmStartTime != "" { sess.And("confirm_at>=?", req.ConfirmStartTime) } if req.ConfirmEndTime != "" { sess.And("confirm_at<=?", req.ConfirmEndTime) } size := utils.StrToInt(req.Size) start := (utils.StrToInt(req.P) - 1) * size count, err := sess.Limit(size, start).OrderBy("create_at desc,id desc").FindAndCount(&data) if err != nil { return nil, 0, err } return &data, count, nil }