github.com/infraboard/keyauth@v0.8.1/apps/wxwork/impl/query.go (about)

     1  package impl
     2  
     3  import (
     4  	"github.com/infraboard/keyauth/apps/wxwork"
     5  	"github.com/infraboard/mcube/exception"
     6  	"go.mongodb.org/mongo-driver/bson"
     7  	"go.mongodb.org/mongo-driver/mongo/options"
     8  )
     9  
    10  func newDescribeWechatWorkRequest(req *wxwork.DescribeWechatWorkConf) (*describeWechatWorkRequest, error) {
    11  	if err := req.Validate(); err != nil {
    12  		return nil, exception.NewBadRequest(err.Error())
    13  	}
    14  
    15  	return &describeWechatWorkRequest{req}, nil
    16  }
    17  
    18  type describeWechatWorkRequest struct {
    19  	*wxwork.DescribeWechatWorkConf
    20  }
    21  
    22  func (r *describeWechatWorkRequest) FindFilter() bson.M {
    23  	filter := bson.M{}
    24  
    25  	if r.Domain != "" {
    26  		filter["_id"] = r.Domain
    27  	}
    28  
    29  	return filter
    30  }
    31  
    32  // newQueryConfigRequest 查询
    33  func newQueryConfigRequest(req *wxwork.QueryConfigRequest) *queryConfigRequest {
    34  	return &queryConfigRequest{req}
    35  }
    36  
    37  type queryConfigRequest struct {
    38  	*wxwork.QueryConfigRequest
    39  }
    40  
    41  func (r *queryConfigRequest) FindOptions() *options.FindOptions {
    42  	pageSize := int64(r.PageSize)
    43  	skip := int64(r.PageSize) * int64(r.PageNumber-1)
    44  
    45  	opt := &options.FindOptions{
    46  		Sort:  bson.D{{Key: "create_at", Value: -1}},
    47  		Limit: &pageSize,
    48  		Skip:  &skip,
    49  	}
    50  
    51  	return opt
    52  }
    53  
    54  func (r *queryConfigRequest) FindFilter() bson.M {
    55  	filter := bson.M{}
    56  
    57  	return filter
    58  }