998 lines
37 KiB
Go
998 lines
37 KiB
Go
package mongo
|
||
|
||
import (
|
||
"context"
|
||
"finclip-app-manager/domain/entity"
|
||
"finclip-app-manager/domain/entity/proto/apiproto"
|
||
"finclip-app-manager/domain/repository"
|
||
"strings"
|
||
"time"
|
||
|
||
mgo "gitlab.finogeeks.club/finclip-backend-v2/finclip-mgo"
|
||
"gitlab.finogeeks.club/finclip-backend-v2/finclip-mgo/bson"
|
||
)
|
||
|
||
var _ repository.IBindingRepo = new(BindingByMongoRepo)
|
||
|
||
type BindingByMongoRepo struct {
|
||
}
|
||
|
||
func NewBindingByMongoRepo() *BindingByMongoRepo {
|
||
return &BindingByMongoRepo{}
|
||
}
|
||
|
||
// 这张表暂时废弃
|
||
//type BundleInfoMongo struct {
|
||
// BindingId string `json:"bindingId" bson:"binding_id"`
|
||
// BundleID string `json:"bundleId" bson:"bundle_id"`
|
||
// GroupID string `json:"groupId" bson:"group_id"` //企业ID
|
||
// Remark string `json:"remark" bson:"remark"`
|
||
// SDKKey string `json:"SDKKey" bson:"sdk_key"`
|
||
// SDKID string `json:"SDKID" bson:"sdk_id"`
|
||
// IsFirstCreate string `json:"isFirstCreate" bson:"is_first_create"` //是否第一次创建
|
||
// CreatedAt int64 `json:"createdAt" bson:"created_at"`
|
||
// CreatedAccount string `json:"createdAccount" bson:"created_account"`
|
||
// CreatedBy string `json:"createdBy" bson:"created_by"`
|
||
//}
|
||
|
||
// BundleInfoData 驼峰换下划线,给BindingMongo使用
|
||
type BundleInfoData struct {
|
||
BundleID string `json:"bundle_id" bson:"bundle_id"`
|
||
Remark string `json:"remark" bson:"remark"`
|
||
SDKKey string `json:"sdk_key" bson:"sdk_key"`
|
||
SDKID string `json:"sdk_id" bson:"sdk_id"`
|
||
IsFirstCreate bool `json:"is_first_create" bson:"is_first_create"` //是否第一次创建
|
||
CreatedAt int64 `json:"created_at" bson:"created_at"`
|
||
CreatedAccount string `json:"created_account" bson:"created_account"`
|
||
CreatedBy string `json:"created_by" bson:"created_by"`
|
||
IsForbidden int `json:"is_forbidden" bson:"is_forbidden"`
|
||
IsReview int `json:"is_review" bson:"is_review"`
|
||
}
|
||
|
||
type AppInfo struct {
|
||
AppID string `json:"appId" bson:"appId"`
|
||
AssociatedAt int64 `json:"associatedAt" bson:"associatedAt"`
|
||
AssociatedBy string `json:"associatedBy" bson:"associatedBy"`
|
||
}
|
||
|
||
type BindingMongo struct {
|
||
BindingID string `json:"bindingId" bson:"binding_id"` //应用的id
|
||
Name string `json:"name" bson:"name"` //应用名称
|
||
BundleInfos []BundleInfoData `json:"bundleInfos" bson:"bundle_infos"` //bundle ids
|
||
CreatedInfoBy string `json:"createdInfoBy" bson:"created_info_by"`
|
||
CreatedInfoAt int64 `json:"createdInfoAt" bson:"created_info_at"`
|
||
CreatedInfoAccount string `json:"createdInfoAccount" bson:"created_info_account"`
|
||
GroupID string `json:"groupId" bson:"group_id"` //企业ID
|
||
GroupName string `json:"groupName" bson:"group_name"` //企业名称(为了查询)
|
||
CooperateStatusValue string `json:"cooperateStatusValue" bson:"cooperate_status_value"`
|
||
CooperateStatusReason string `json:"cooperateStatusReason" bson:"cooperate_status_reason"`
|
||
CooperateStatusLastUpdated int64 `json:"cooperateStatusLastUpdated" bson:"cooperate_status_last_updated"`
|
||
CooperateStatusModifiedBy string `json:"cooperateStatusModifiedBy" bson:"cooperate_status_modified_by"`
|
||
CooperateValidStatusReason string `json:"cooperateValidStatusReason" bson:"cooperate_valid_status_reson"`
|
||
CooperateValidStatusLastUpdated int64 `json:"cooperateValidStatusLastUpdated" bson:"cooperate_valid_status_last_updated"`
|
||
CooperateValidStatusModifiedBy string `json:"cooperateValidStatusModifiedBy" bson:"cooperate_valid_status_modified_by"`
|
||
CooperateInvalidStatusReason string `json:"cooperateInvalidStatusReason" bson:"cooperate_invalid_status_reson"`
|
||
CooperateInvalidStatusLastUpdated int64 `json:"cooperateInvalidStatusLastUpdated" bson:"cooperate_invalid_status_last_updated"`
|
||
CooperateInvalidStatusModifiedBy string `json:"cooperateInvalidStatusModifiedBy" bson:"cooperate_invalid_status_modified_by"`
|
||
AppInfos []AppInfo `json:"appInfos" bson:"app_infos"` //appid 的信息
|
||
Owner string `json:"owner" bson:"owner"` //所属企业
|
||
Expire int64 `json:"expire" bson:"expire"`
|
||
ApiServer string `json:"apiServer" bson:"api_server"` //子域名
|
||
PlatForm int `json:"platform" bson:"platform"` //来源平台
|
||
AutoBind int `json:"autoBind" bson:"auto_bind"` //自动关联小程序
|
||
HiddenBundle int `json:"hiddenBundle" bson:"hidden_bundle"` //隐藏bundle信息
|
||
FromBindingID string `json:"fromBindingId" bson:"from_binding_id"` //来源ID
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetInfo(ctx context.Context, bindingId string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"binding_id": bindingId}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetByGroupIdAndName(ctx context.Context, groupId string, name string, isAdmin bool) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
filter := bson.M{}
|
||
if isAdmin {
|
||
filter["group_id"] = groupId
|
||
filter["name"] = name
|
||
filter["platform"] = entity.BINGING_PLATFORM_OPER
|
||
} else {
|
||
filter["group_id"] = groupId
|
||
filter["name"] = name
|
||
filter["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}
|
||
}
|
||
err := bindingTable.GetOne(ctx, filter, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bindingTable.GetAll(ctx, bson.M{"binding_id": bindingMongo.BindingID}, []string{}, &bundleInfoMongos)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
//
|
||
//result := convertBindingMongoToBinding(bindingMongo, bundleInfoMongos)
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetByApiServer(ctx context.Context, apiServer string) (entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
res := entity.Binding{}
|
||
|
||
err := bindingTable.GetOne(ctx, bson.M{"api_server": apiServer}, &bindingMongo)
|
||
if err != nil {
|
||
return res, err
|
||
}
|
||
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bindingTable.GetAll(ctx, bson.M{"binding_id": bindingMongo.BindingID}, []string{}, &bundleInfoMongos)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
//
|
||
//result := convertBindingMongoToBinding(bindingMongo, bundleInfoMongos)
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetInfoByParams(ctx context.Context, sdkKey, organId, appId string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
|
||
filters := []bson.M{}
|
||
filters = append(filters, bson.M{"bundle_infos": bson.M{"$elemMatch": bson.M{"sdk_key": sdkKey}}}) //bson.M{"bundleInfos.SDKKey": bson.M{"$in": []string{sdkKey}}}
|
||
if appId != "" {
|
||
filters = append(filters, bson.M{"app_infos": bson.M{"$elemMatch": bson.M{"appId": appId}}})
|
||
}
|
||
if organId != "" {
|
||
filters = append(filters, bson.M{"group_id": organId})
|
||
}
|
||
filter := bson.M{"$and": filters}
|
||
|
||
err := bindingTable.GetOne(ctx, filter, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetInfoBySdkKeyOrganId(ctx context.Context, organId, sdkKey string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"group_id": organId, "bundle_infos.sdk_key": sdkKey}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetAllSdkKey(ctx context.Context, organId string) ([]string, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
_, err := bindingTable.GetAll(ctx, bson.M{"group_id": organId}, []string{}, &bindingMongos)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := make([]string, 0)
|
||
for _, v := range bindingMongos {
|
||
//result := make([]string, 0)
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bundleInfoTable.GetAll(ctx, bson.M{"binding_id": v.BindingID}, []string{}, bundleInfoMongos)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
|
||
for _, bundleInfo := range v.BundleInfos {
|
||
result = append(result, bundleInfo.SDKKey)
|
||
}
|
||
|
||
}
|
||
|
||
return result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindListBySdkKey(ctx context.Context, sdkKey string) ([]entity.Binding, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
_, err := bindingTable.GetAll(ctx, bson.M{"bundle_infos.sdk_key": sdkKey}, []string{"created_info_at"}, &bindingMongos)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bundleInfoTable.GetAll(ctx, bson.M{"binding_id": bindingMongo.BindingID}, []string{}, bundleInfoMongos)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
|
||
//bindings = append(bindings, convertBindingMongoToBinding(bindingMongo, bundleInfoMongos))
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) SdkKeyExi(ctx context.Context, sdkKey string) (bool, error) {
|
||
if _, ok := entity.SdkExiCache.Get(sdkKey); ok {
|
||
return true, nil
|
||
}
|
||
|
||
count, err := bindingTable.Count(ctx, bson.M{"bundle_infos.sdk_key": sdkKey})
|
||
if err != nil {
|
||
return false, err
|
||
}
|
||
|
||
if count > 0 {
|
||
entity.SdkExiCache.Set(sdkKey, true, -1)
|
||
return true, err
|
||
}
|
||
return false, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) Insert(ctx context.Context, bind *entity.Binding) error {
|
||
err := bindingTable.Insert(ctx, convertBindingToBindingMongo(bind))
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
//for _, v := range bind.BundleInfos {
|
||
// err = bundleInfoTable.Insert(ctx, convertBundleInfoToBundleInfoMongo(bind.BindingID, bind.GroupID, v))
|
||
//}
|
||
|
||
return err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) Count(ctx context.Context) (int, error) {
|
||
return bindingTable.Count(ctx, bson.M{})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetCountByStatus(ctx context.Context, status string, platform int) (int, error) {
|
||
filter := bson.M{}
|
||
filter["cooperate_status_value"] = "Valid"
|
||
/*switch platform {
|
||
case entity.BINGING_PLATFORM_OPER:
|
||
filter["platform"] = entity.BINGING_PLATFORM_OPER
|
||
filter["fromBindingId"] = ""
|
||
case entity.BINGING_PLATFORM_ORGAN:
|
||
filter["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}
|
||
default:
|
||
filter["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_OPER, "fromBindingId": ""}, {"$or": []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}}}
|
||
}*/
|
||
filter["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_OPER, "group_id": ""}, {"$or": []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}}}
|
||
return bindingTable.Count(ctx, filter)
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBundleIdNum(ctx context.Context) (int, error) {
|
||
//校验bundingId的数量
|
||
pipSelect := []bson.M{
|
||
{"$match": bson.M{"bundle_infos": bson.M{"$elemMatch": bson.M{"is_forbidden": 0}}}},
|
||
{"$unwind": "$bundleInfos"},
|
||
{"$group": bson.M{"_id": nil, "total": bson.M{"$sum": 1}}},
|
||
}
|
||
bundleIdTotal, err := bindingTable.AggregateCount(ctx, pipSelect)
|
||
if err != nil && !b.NotFound(err) {
|
||
log.Errorf("GetBundleIdNum err:", err.Error())
|
||
return 0, err
|
||
}
|
||
if b.NotFound(err) {
|
||
bundleIdTotal = 0
|
||
return 0, nil
|
||
}
|
||
return bundleIdTotal, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBundleIdLimitHand(ctx context.Context, groupId string) (int, error) {
|
||
//校验bundingId的数量
|
||
pipSelect := []bson.M{
|
||
//{"$match": bson.M{"group_id": groupId}},
|
||
{"$match": bson.M{"group_id": groupId, "bundle_infos": bson.M{"$elemMatch": bson.M{"is_forbidden": 0}}}},
|
||
{"$unwind": "$bundle_infos"},
|
||
{"$group": bson.M{"_id": nil, "total": bson.M{"$sum": 1}}},
|
||
}
|
||
bundleIdTotal, err := bindingTable.AggregateCount(ctx, pipSelect)
|
||
if err != nil && !b.NotFound(err) {
|
||
return 0, err
|
||
}
|
||
if b.NotFound(err) {
|
||
bundleIdTotal = 0
|
||
return 0, nil
|
||
}
|
||
return bundleIdTotal, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBundleLimit(ctx context.Context) (int, error) {
|
||
//return bundleTable.Count(ctx, bson.M{})
|
||
return bundleTable.Count(ctx, bson.M{"is_forbidden": 0})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindingByBindingId(ctx context.Context, bindingId string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"binding_id": bindingId}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
func (b BindingByMongoRepo) GetBindingByGroupIdAndBindingId(ctx context.Context, groupId string, bindingId string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"group_id": groupId, "binding_id": bindingId}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bindingTable.GetAll(ctx, bson.M{"binding_id": bindingMongo.BindingID}, []string{}, &bundleInfoMongos)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
//
|
||
//result := convertBindingMongoToBinding(bindingMongo, bundleInfoMongos)
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindingByGroupIdAndSdkKey(ctx context.Context, groupId string, sdkKey string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"group_id": groupId, "bundle_infos.sdk_key": sdkKey}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBundleInfosByGroupIdAndBindId(ctx context.Context, groupId string, bindingId string, infos []entity.BundleInfo) error {
|
||
bundleInfoDatas := make([]BundleInfoData, 0)
|
||
for _, v := range infos {
|
||
bundleInfoData := BundleInfoData{
|
||
BundleID: v.BundleID,
|
||
Remark: v.Remark,
|
||
SDKKey: v.SDKKey,
|
||
SDKID: v.SDKID,
|
||
IsFirstCreate: v.IsFirstCreate,
|
||
CreatedAt: v.CreatedAt,
|
||
CreatedAccount: v.CreatedAccount,
|
||
CreatedBy: v.CreatedBy,
|
||
IsForbidden: v.IsForbidden,
|
||
}
|
||
|
||
bundleInfoDatas = append(bundleInfoDatas, bundleInfoData)
|
||
}
|
||
return bindingTable.UpdateOne(ctx, bson.M{"group_id": groupId, "binding_id": bindingId}, bson.M{"$set": bson.M{"bundle_infos": bundleInfoDatas}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) AppendBundles(ctx context.Context, bindingId, groupId string, bundles []entity.BundleInfo) error {
|
||
bindingInfo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"binding_id": bindingId}, &bindingInfo)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
bundleInfoDatas := make([]BundleInfoData, 0)
|
||
bundleInfoDatas = append(bundleInfoDatas, bindingInfo.BundleInfos...)
|
||
for _, v := range bundles {
|
||
bundleInfoData := BundleInfoData{
|
||
BundleID: v.BundleID,
|
||
Remark: v.Remark,
|
||
SDKKey: v.SDKKey,
|
||
SDKID: v.SDKID,
|
||
IsFirstCreate: v.IsFirstCreate,
|
||
CreatedAt: v.CreatedAt,
|
||
CreatedAccount: v.CreatedAccount,
|
||
CreatedBy: v.CreatedBy,
|
||
IsForbidden: v.IsForbidden,
|
||
}
|
||
|
||
bundleInfoDatas = append(bundleInfoDatas, bundleInfoData)
|
||
}
|
||
return bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": bson.M{"bundle_infos": bundleInfoDatas}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBundleIsView(ctx context.Context, reviews []apiproto.BundleReviewItem, isReview int) error {
|
||
return nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) ListReviewBundle(ctx context.Context, pageSize int, pageNo int, searchText string, isReview int) (int64, []entity.ReviewBundleInfo, error) {
|
||
return 0, nil, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) CheckReviewBySdkKey(ctx context.Context, sdkKey string) bool {
|
||
return false
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetReviewBindBySdkKey(ctx context.Context, sdkKey string) (*entity.ReviewBundleInfo, error) {
|
||
return nil, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBundles(ctx context.Context, bindingId, groupId string, bundles []entity.BundleInfo) error {
|
||
bundleInfoDatas := make([]BundleInfoData, 0)
|
||
for _, v := range bundles {
|
||
bundleInfoData := BundleInfoData{
|
||
BundleID: v.BundleID,
|
||
Remark: v.Remark,
|
||
SDKKey: v.SDKKey,
|
||
SDKID: v.SDKID,
|
||
IsFirstCreate: v.IsFirstCreate,
|
||
CreatedAt: v.CreatedAt,
|
||
CreatedAccount: v.CreatedAccount,
|
||
CreatedBy: v.CreatedBy,
|
||
IsForbidden: v.IsForbidden,
|
||
IsReview: v.IsReview,
|
||
}
|
||
|
||
bundleInfoDatas = append(bundleInfoDatas, bundleInfoData)
|
||
}
|
||
return bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": bson.M{"bundle_infos": bundleInfoDatas}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetByBindIdList(ctx context.Context, ids []string) ([]entity.Binding, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
_, err := bindingTable.GetAll(ctx, bson.M{"binding_id": bson.M{"$in": ids}}, []string{}, &bindingMongos)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bundleInfoTable.GetAll(ctx, bson.M{"binding_id": bindingMongo.BindingID}, []string{}, bundleInfoMongos)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
//
|
||
//bindings = append(bindings, convertBindingMongoToBinding(bindingMongo, bundleInfoMongos))
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindListByGroupId(ctx context.Context, groupId string, pageSize int, pageNo int) ([]entity.Binding, int, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
filter := bson.M{"group_id": groupId}
|
||
filter["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}
|
||
total, err := bindingTable.GetSome(ctx, filter, []string{"-created_info_at"}, pageSize, pageNo, &bindingMongos)
|
||
if err != nil {
|
||
return make([]entity.Binding, 0), 0, err
|
||
}
|
||
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
//bundleInfoMongos := make([]BundleInfoMongo, 0)
|
||
//_, err = bundleInfoTable.GetAll(ctx, bson.M{"binding_id": bindingMongo.BindingID}, []string{}, bundleInfoMongos)
|
||
//if err != nil {
|
||
// return make([]entity.Binding, 0), 0, err
|
||
//}
|
||
//
|
||
//bindings = append(bindings, convertBindingMongoToBinding(bindingMongo, bundleInfoMongos))
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, total, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateRelatedBindingCooperate(ctx context.Context, bindingId string, status entity.Status, specificStatus entity.SpecificStatus, cooperate bool) error {
|
||
if cooperate {
|
||
return bindingTable.UpdateAll(ctx, bson.M{"from_binding_id": bindingId, "platform": entity.BINGING_PLATFORM_OPER},
|
||
bson.M{"$set": bson.M{"cooperate_status_value": status.Value, "cooperate_status_last_updated": status.LastUpdated, "cooperate_status_modified_by": status.ModifiedBy,
|
||
"cooperate_valid_status_last_updated": specificStatus.LastUpdated, "cooperate_valid_status_modified_by": specificStatus.ModifiedBy}})
|
||
} else {
|
||
return bindingTable.UpdateAll(ctx, bson.M{"from_binding_id": bindingId, "platform": entity.BINGING_PLATFORM_OPER},
|
||
bson.M{"$set": bson.M{"cooperate_status_value": status.Value, "cooperate_status_last_updated": status.LastUpdated, "cooperate_status_modified_by": status.ModifiedBy,
|
||
"cooperate_invalid_status_last_updated": specificStatus.LastUpdated, "cooperate_invalid_status_modified_by": specificStatus.ModifiedBy}})
|
||
}
|
||
}
|
||
|
||
func (b BindingByMongoRepo) AppendApps(ctx context.Context, bindingId string, apps []entity.AppInfo) error {
|
||
bindingInfo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"binding_id": bindingId}, &bindingInfo)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
appsInfo := make([]AppInfo, 0)
|
||
appsInfo = append(appsInfo, bindingInfo.AppInfos...)
|
||
for _, v := range apps {
|
||
app := AppInfo{
|
||
AppID: v.AppID,
|
||
AssociatedAt: v.AssociatedAt,
|
||
AssociatedBy: v.AssociatedBy,
|
||
}
|
||
|
||
appsInfo = append(appsInfo, app)
|
||
}
|
||
return bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": bson.M{"app_infos": appsInfo}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) RemoveApps(ctx context.Context, bindingId string, appIds []string) error {
|
||
rmAppsMap := make(map[string]bool)
|
||
for _, appId := range appIds {
|
||
rmAppsMap[appId] = true
|
||
}
|
||
bindingInfo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"binding_id": bindingId}, &bindingInfo)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
appsInfo := make([]AppInfo, 0)
|
||
for _, app := range bindingInfo.AppInfos {
|
||
if _, ok := rmAppsMap[app.AppID]; !ok {
|
||
appsInfo = append(appsInfo, app)
|
||
}
|
||
}
|
||
return bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": bson.M{"app_infos": appsInfo}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateByBindId(ctx context.Context, bindingId string, bind *entity.Binding) error {
|
||
err := bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, convertBindingToBindingMongo(bind))
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
//for _, v := range bind.BundleInfos {
|
||
// err = bundleInfoTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, convertBundleInfoToBundleInfoMongo(bind.BindingID, bind.GroupID, v))
|
||
//}
|
||
|
||
return err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBindingInfo(ctx context.Context, bindingId string, info map[string]interface{}, platform int) error {
|
||
if platform == entity.BINGING_PLATFORM_OPER {
|
||
err := bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": info})
|
||
if err != nil {
|
||
return err
|
||
}
|
||
return bindingTable.UpdateAll(ctx, bson.M{"from_binding_id": bindingId}, bson.M{"$set": info})
|
||
} else {
|
||
return bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": info})
|
||
}
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBindingGroupName(ctx context.Context, groupId, groupName string) error {
|
||
return nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateExpire(ctx context.Context, bindingId string, expire int64) error {
|
||
err := bindingTable.UpdateOne(ctx, bson.M{"binding_id": bindingId}, bson.M{"$set": bson.M{"expire": expire}})
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
return nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) BundleIdCount(ctx context.Context, groupId string) (int, error) {
|
||
var pipSelect []bson.M
|
||
if groupId == "" {
|
||
pipSelect = []bson.M{
|
||
{"$match": bson.M{"bundle_infos": bson.M{"$elemMatch": bson.M{"is_forbidden": 0}}}},
|
||
{"$unwind": "$bundleInfos"},
|
||
{"$group": bson.M{"_id": nil, "total": bson.M{"$sum": 1}}},
|
||
}
|
||
} else {
|
||
pipSelect = []bson.M{
|
||
{"$match": bson.M{"groupId": groupId, "bundle_infos": bson.M{"$elemMatch": bson.M{"is_forbidden": 0}}}},
|
||
{"$unwind": "$bundleInfos"},
|
||
{"$group": bson.M{"_id": nil, "total": bson.M{"$sum": 1}}},
|
||
}
|
||
}
|
||
bundleIdTotal, err := bindingTable.AggregateCount(ctx, pipSelect)
|
||
if err != nil && !b.NotFound(err) {
|
||
log.Errorf("updateLicenseValid get bundle id count err:%s", err.Error())
|
||
return 0, err
|
||
}
|
||
if b.NotFound(err) {
|
||
bundleIdTotal = 0
|
||
return 0, nil
|
||
}
|
||
return bundleIdTotal, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBundleByGroupIdAndBundleId(ctx context.Context, groupId string, bundleId string) (*entity.Binding, error) {
|
||
//bundleInfoMongo := BundleInfoMongo{}
|
||
//err := bundleInfoTable.GetOne(ctx, bson.M{"group_id": groupId, "bundle_id": bundleId}, &bundleInfoMongo)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
//
|
||
//return convertBundleInfoMongoToBundleInfo(bundleInfoMongo), err
|
||
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"group_id": groupId, "bundle_infos.bundle_id": bson.M{"$in": []string{bundleId}}}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetbundlesByBundleId(ctx context.Context, bundleId string) (*entity.Binding, error) {
|
||
//bundleInfoMongo := BundleInfoMongo{}
|
||
//err := bundleInfoTable.GetOne(ctx, bson.M{"bundle_id": bundleId}, &bundleInfoMongo)
|
||
//if err != nil {
|
||
// return nil, err
|
||
//}
|
||
//
|
||
//return convertBundleInfoMongoToBundleInfo(bundleInfoMongo), err
|
||
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"bundle_infos.bundle_id": bson.M{"$in": []string{bundleId}}}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindingsBySearch(ctx context.Context, pageSize int, pageNo int, sort string, searchText string, searchFields string, cooperateStatus string, platform int) ([]entity.Binding, int, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
|
||
sortColumn := make([]string, 0)
|
||
switch sort {
|
||
case "-created":
|
||
sortColumn = append(sortColumn, "-created_info_at") //按创建时间排序
|
||
case "-expire":
|
||
sortColumn = append(sortColumn, "-expire") //按过期时间倒序排序
|
||
case "expire":
|
||
sortColumn = append(sortColumn, "expire") //按过期时间正序排序
|
||
default:
|
||
sortColumn = append(sortColumn, "-created_info_at") //按创建时间倒序排序
|
||
}
|
||
filter := []bson.M{}
|
||
if searchText != "" && searchFields != "" {
|
||
sf := bson.M{}
|
||
r := bson.RegEx{Pattern: searchText, Options: "i"}
|
||
searchFilter := make([]bson.M, 0)
|
||
for _, v := range strings.Split(searchFields, ",") {
|
||
searchFilter = append(searchFilter, bson.M{v: r})
|
||
}
|
||
sf["$or"] = searchFilter
|
||
filter = append(filter, sf)
|
||
}
|
||
if cooperateStatus != "all" {
|
||
q := bson.M{"cooperateStatus.value": cooperateStatus}
|
||
filter = append(filter, q)
|
||
}
|
||
switch platform {
|
||
case entity.BINGING_PLATFORM_OPER:
|
||
filter = append(filter, bson.M{"platform": entity.BINGING_PLATFORM_OPER, "group_id": ""})
|
||
case entity.BINGING_PLATFORM_ORGAN:
|
||
q := bson.M{}
|
||
q["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}
|
||
filter = append(filter, q)
|
||
default:
|
||
q := bson.M{}
|
||
q["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_OPER, "group_id": ""}, {"$or": []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}}}
|
||
filter = append(filter, q)
|
||
}
|
||
total, err := bindingTable.GetSome(ctx, bson.M{"$and": filter}, sortColumn, pageSize, pageNo, &bindingMongos)
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, total, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindingsByAppId(ctx context.Context, pageSize int, pageNo int, appId string) ([]entity.Binding, int, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
|
||
filter := bson.M{"app_infos.appId": appId}
|
||
|
||
total, err := bindingTable.GetSome(ctx, filter, []string{"-created_info_at"}, pageSize, pageNo, &bindingMongos)
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, total, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetDevListBinding(ctx context.Context, pageSize int, pageNo int, sort string, searchText string, pullType string, groupId string, bindStatus string, platform int) ([]entity.Binding, int, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
|
||
sortColumn := make([]string, 0)
|
||
switch sort {
|
||
case "-created":
|
||
sortColumn = append(sortColumn, "-created_info_at") //按创建时间排序
|
||
case "-expire":
|
||
sortColumn = append(sortColumn, "-expire") //按过期时间倒序排序
|
||
case "expire":
|
||
sortColumn = append(sortColumn, "expire") //按过期时间正序排序
|
||
default:
|
||
sortColumn = append(sortColumn, "-created_info_at") //按创建时间倒序排序
|
||
}
|
||
|
||
filter := []bson.M{}
|
||
filter = append(filter, bson.M{"group_id": groupId})
|
||
switch pullType {
|
||
case "recently-expire":
|
||
q := bson.M{}
|
||
beginData := time.Now().UnixNano() / 1e6
|
||
endData := time.Now().AddDate(0, 0, 30).UnixNano() / 1e6
|
||
q["expire"] = bson.M{"$gte": beginData, "$lte": endData}
|
||
filter = append(filter, q)
|
||
}
|
||
|
||
switch bindStatus {
|
||
case "Valid":
|
||
filter = append(filter, bson.M{"cooperate_status_value": "Valid"})
|
||
case "Invalid":
|
||
filter = append(filter, bson.M{"cooperate_status_value": "Invalid"})
|
||
}
|
||
if searchText != "" {
|
||
q := bson.M{}
|
||
r := bson.RegEx{Pattern: searchText, Options: "i"}
|
||
q["$or"] = []bson.M{{"name": bson.M{"$regex": r}}}
|
||
filter = append(filter, q)
|
||
}
|
||
switch platform {
|
||
case entity.BINGING_PLATFORM_OPER:
|
||
filter = append(filter, bson.M{"platform": entity.BINGING_PLATFORM_OPER})
|
||
case entity.BINGING_PLATFORM_ORGAN:
|
||
q := bson.M{}
|
||
q["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}
|
||
filter = append(filter, q)
|
||
default:
|
||
q := bson.M{}
|
||
q["$or"] = []bson.M{{"platform": entity.BINGING_PLATFORM_OPER}, {"$or": []bson.M{{"platform": entity.BINGING_PLATFORM_ORGAN}, {"platform": bson.M{"$exists": false}}}}}
|
||
filter = append(filter, q)
|
||
}
|
||
total, err := bindingTable.GetSome(ctx, bson.M{"$and": filter}, sortColumn, pageSize, pageNo, &bindingMongos)
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, total, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetBindingBySdkKey(ctx context.Context, sdkKey string) (*entity.Binding, error) {
|
||
bindingMongo := BindingMongo{}
|
||
err := bindingTable.GetOne(ctx, bson.M{"bundle_infos.sdk_key": sdkKey}, &bindingMongo)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := convertBindingMongoToBinding(bindingMongo)
|
||
|
||
return &result, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) ListAutoBindAppBinding(ctx context.Context, groupId string) ([]string, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
_, err := bindingTable.GetAll(ctx, bson.M{"auto_bind": 1, "platform": entity.BINGING_PLATFORM_OPER, "group_id": groupId}, []string{}, &bindingMongos)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := []string{}
|
||
for _, binding := range bindingMongos {
|
||
result = append(result, binding.BindingID)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) ListCopyOperBinding(ctx context.Context, bindingId string) ([]string, []entity.Binding, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
_, err := bindingTable.GetAll(ctx, bson.M{"platform": entity.BINGING_PLATFORM_OPER, "from_binding_id": bindingId}, []string{}, &bindingMongos)
|
||
if err != nil {
|
||
return nil, nil, err
|
||
}
|
||
result := []string{}
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, binding := range bindingMongos {
|
||
result = append(result, binding.BindingID)
|
||
bindings = append(bindings, convertBindingMongoToBinding(binding))
|
||
}
|
||
return result, bindings, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) ListBindings(ctx context.Context, groupId string, searchText string, pageNo int, pageSize int) ([]entity.Binding, int, error) {
|
||
bindingMongos := make([]BindingMongo, 0)
|
||
|
||
sortColumn := make([]string, 0)
|
||
sortColumn = append(sortColumn, "-created_info_at") //按创建时间排序
|
||
filter := bson.M{}
|
||
if groupId != "" {
|
||
filter["group_id"] = groupId
|
||
}
|
||
|
||
if searchText != "" {
|
||
r := bson.RegEx{Pattern: searchText, Options: "i"}
|
||
filter["$or"] = []bson.M{{"name": r}, {"group_name": r}, {"bundle_infos.bundle_id": r}}
|
||
}
|
||
|
||
total, err := bindingTable.GetSome(ctx, filter, sortColumn, pageSize, pageNo, &bindingMongos)
|
||
bindings := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindingMongos {
|
||
bindings = append(bindings, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
|
||
return bindings, total, err
|
||
}
|
||
|
||
func (b BindingByMongoRepo) GetAllAssBinds(ctx context.Context, appId string) ([]entity.Binding, error) {
|
||
bindings := make([]BindingMongo, 0)
|
||
err := bindingTable.OnlyGetAll(ctx, bson.M{"app_infos.appId": appId}, []string{}, &bindings)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
result := make([]entity.Binding, 0)
|
||
for _, bindingMongo := range bindings {
|
||
result = append(result, convertBindingMongoToBinding(bindingMongo))
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
func (b BindingByMongoRepo) NotFound(err error) bool {
|
||
return err == mgo.ErrNotFound
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBundleIdIsForbidden(ctx context.Context, bundleId string) error {
|
||
return bindingTable.UpdateAll(ctx, bson.M{"bundle_infos": bson.M{"$elemMatch": bson.M{"bundle_id": bundleId}}}, bson.M{"$set": bson.M{"is_forbidden": 1}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBundleIdPlatform(ctx context.Context, bundleId, platform string) error {
|
||
return bindingTable.UpdateAll(ctx, bson.M{"bundle_infos": bson.M{"$elemMatch": bson.M{"bundle_id": bundleId}}}, bson.M{"$set": bson.M{"remark": platform}})
|
||
}
|
||
|
||
func (b BindingByMongoRepo) UpdateBundleBindingId(ctx context.Context, bundleId, bindingId, toBindingId string) error {
|
||
return nil
|
||
}
|
||
|
||
func convertBindingMongoToBinding(bindingMongo BindingMongo) entity.Binding {
|
||
result := entity.Binding{}
|
||
|
||
bundleInfos := make([]entity.BundleInfo, 0)
|
||
for _, v := range bindingMongo.BundleInfos {
|
||
bundleInfo := entity.BundleInfo{
|
||
BundleID: v.BundleID,
|
||
Remark: v.Remark,
|
||
SDKKey: v.SDKKey,
|
||
SDKID: v.SDKID,
|
||
IsFirstCreate: v.IsFirstCreate,
|
||
CreatedAt: v.CreatedAt,
|
||
CreatedAccount: v.CreatedAccount,
|
||
CreatedBy: v.CreatedBy,
|
||
IsForbidden: v.IsForbidden,
|
||
IsReview: v.IsReview,
|
||
}
|
||
|
||
bundleInfos = append(bundleInfos, bundleInfo)
|
||
}
|
||
appInfos := make([]entity.AppInfo, 0)
|
||
for _, v := range bindingMongo.AppInfos {
|
||
item := entity.AppInfo{
|
||
AppID: v.AppID,
|
||
AssociatedAt: v.AssociatedAt,
|
||
AssociatedBy: v.AssociatedBy,
|
||
}
|
||
appInfos = append(appInfos, item)
|
||
}
|
||
|
||
createInfo := entity.CreatedInfo{
|
||
CreatedBy: bindingMongo.CreatedInfoBy,
|
||
CreatedAt: bindingMongo.CreatedInfoAt,
|
||
}
|
||
|
||
cooperateStatus := entity.Status{
|
||
Value: bindingMongo.CooperateStatusValue,
|
||
Reason: bindingMongo.CooperateStatusReason,
|
||
LastUpdated: bindingMongo.CooperateStatusLastUpdated,
|
||
ModifiedBy: bindingMongo.CooperateStatusModifiedBy,
|
||
}
|
||
|
||
cooperateValidStatus := entity.SpecificStatus{
|
||
Reason: bindingMongo.CooperateValidStatusReason,
|
||
LastUpdated: bindingMongo.CooperateValidStatusLastUpdated,
|
||
ModifiedBy: bindingMongo.CooperateValidStatusModifiedBy,
|
||
}
|
||
|
||
cooperateInvalidStatus := entity.SpecificStatus{
|
||
Reason: bindingMongo.CooperateInvalidStatusReason,
|
||
LastUpdated: bindingMongo.CooperateInvalidStatusLastUpdated,
|
||
ModifiedBy: bindingMongo.CooperateInvalidStatusModifiedBy,
|
||
}
|
||
|
||
//var appInfos []entity.AppInfo
|
||
//json.Unmarshal([]byte(bindingMongo.AppInfos), &appInfos)
|
||
|
||
result.BindingID = bindingMongo.BindingID
|
||
result.Name = bindingMongo.Name
|
||
result.BundleInfos = bundleInfos
|
||
result.CreatedInfo = createInfo
|
||
result.GroupID = bindingMongo.GroupID
|
||
result.GroupName = bindingMongo.GroupName
|
||
result.CooperateStatus = cooperateStatus
|
||
result.CooperateValidStatus = cooperateValidStatus
|
||
result.CooperateInvalidStatus = cooperateInvalidStatus
|
||
result.AppInfos = appInfos
|
||
result.Owner = bindingMongo.Owner
|
||
result.Expire = bindingMongo.Expire
|
||
result.ApiServer = bindingMongo.ApiServer
|
||
result.PlatForm = bindingMongo.PlatForm
|
||
result.AutoBind = bindingMongo.AutoBind
|
||
result.HiddenBundle = bindingMongo.HiddenBundle
|
||
result.FromBindingID = bindingMongo.FromBindingID
|
||
return result
|
||
}
|
||
|
||
func convertBindingToBindingMongo(binding *entity.Binding) BindingMongo {
|
||
result := BindingMongo{}
|
||
|
||
bundleInfos := make([]BundleInfoData, 0)
|
||
for _, v := range binding.BundleInfos {
|
||
bundleInfo := BundleInfoData{
|
||
BundleID: v.BundleID,
|
||
Remark: v.Remark,
|
||
SDKKey: v.SDKKey,
|
||
SDKID: v.SDKID,
|
||
IsFirstCreate: v.IsFirstCreate,
|
||
CreatedAt: v.CreatedAt,
|
||
CreatedAccount: v.CreatedAccount,
|
||
CreatedBy: v.CreatedBy,
|
||
IsForbidden: v.IsForbidden,
|
||
IsReview: v.IsReview,
|
||
}
|
||
|
||
bundleInfos = append(bundleInfos, bundleInfo)
|
||
}
|
||
|
||
result.BindingID = binding.BindingID
|
||
result.Name = binding.Name
|
||
result.BundleInfos = bundleInfos
|
||
result.CreatedInfoBy = binding.CreatedInfo.CreatedBy
|
||
result.CreatedInfoAt = binding.CreatedInfo.CreatedAt
|
||
result.CreatedInfoAccount = binding.CreatedInfo.CreatedAccount
|
||
result.GroupID = binding.GroupID
|
||
result.GroupName = binding.GroupName
|
||
result.CooperateStatusValue = binding.CooperateStatus.Value
|
||
result.CooperateStatusReason = binding.CooperateStatus.Reason
|
||
result.CooperateStatusLastUpdated = binding.CooperateStatus.LastUpdated
|
||
result.CooperateStatusModifiedBy = binding.CooperateStatus.ModifiedBy
|
||
result.CooperateValidStatusReason = binding.CooperateValidStatus.Reason
|
||
result.CooperateValidStatusLastUpdated = binding.CooperateValidStatus.LastUpdated
|
||
result.CooperateValidStatusModifiedBy = binding.CooperateValidStatus.ModifiedBy
|
||
result.CooperateInvalidStatusReason = binding.CooperateInvalidStatus.Reason
|
||
result.CooperateInvalidStatusLastUpdated = binding.CooperateInvalidStatus.LastUpdated
|
||
result.CooperateInvalidStatusModifiedBy = binding.CooperateInvalidStatus.ModifiedBy
|
||
appInfos := make([]AppInfo, 0)
|
||
for _, v := range binding.AppInfos {
|
||
item := AppInfo{
|
||
AppID: v.AppID,
|
||
AssociatedAt: v.AssociatedAt,
|
||
AssociatedBy: v.AssociatedBy,
|
||
}
|
||
appInfos = append(appInfos, item)
|
||
}
|
||
//result.AppInfos = utility.InterfaceToJsonString(binding.AppInfos)
|
||
result.AppInfos = appInfos
|
||
result.Owner = binding.Owner
|
||
result.Expire = binding.Expire
|
||
result.ApiServer = binding.ApiServer
|
||
result.PlatForm = binding.PlatForm
|
||
result.AutoBind = binding.AutoBind
|
||
result.HiddenBundle = binding.HiddenBundle
|
||
result.FromBindingID = binding.FromBindingID
|
||
return result
|
||
}
|