1688 lines
63 KiB
Go
1688 lines
63 KiB
Go
|
package mysql
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"errors"
|
|||
|
"finclip-app-manager/domain/entity"
|
|||
|
"finclip-app-manager/domain/entity/proto/apiproto"
|
|||
|
"finclip-app-manager/domain/repository"
|
|||
|
"finclip-app-manager/infrastructure/config"
|
|||
|
"finclip-app-manager/infrastructure/db/entity/sql"
|
|||
|
"finclip-app-manager/infrastructure/utility"
|
|||
|
"fmt"
|
|||
|
"time"
|
|||
|
|
|||
|
"gorm.io/gorm"
|
|||
|
)
|
|||
|
|
|||
|
var _ repository.IBindingRepo = new(BindingByMysqlRepo)
|
|||
|
|
|||
|
type BindingByMysqlRepo struct {
|
|||
|
}
|
|||
|
|
|||
|
func NewBindingByMysqlRepo() *BindingByMysqlRepo {
|
|||
|
return &BindingByMysqlRepo{}
|
|||
|
}
|
|||
|
|
|||
|
type Bundle struct {
|
|||
|
Id uint64 `json:"id" gorm:"primary_key;column:id;type:BIGINT(16) AUTO_INCREMENT;comment:'自增id'" sql:"auto_increment;primary_key"`
|
|||
|
BundleID string `json:"bundleId" gorm:"column:bundle_id;type:varchar(512);default:'';comment:bundleId"`
|
|||
|
Remark string `json:"remark" gorm:"column:remark;type:varchar(512);default:'';comment:类型"`
|
|||
|
SDKKey string `json:"SDKKey" gorm:"column:sdk_key;type:varchar(512);default:'';comment:sdkKey"`
|
|||
|
SDKID string `json:"SDKID" gorm:"column:sdk_id;type:varchar(64);default:'';comment:sdkid"`
|
|||
|
IsFirstCreate bool `json:"isFirstCreate" gorm:"column:is_first_create;type:bool;default:false;comment:是否第一次创建"` //是否第一次创建
|
|||
|
CreatedAt int64 `json:"createdAt" gorm:"column:created_at;type:BIGINT(16);default:0;comment:创建时间"`
|
|||
|
CreatedAccount string `json:"createdAccount" bson:"created_account" gorm:"column:created_account;type:varchar(64);default:'';comment:创建账号"`
|
|||
|
CreatedBy string `json:"createdBy" bson:"created_by" gorm:"column:created_by;type:varchar(64);default:'';comment:创建人"`
|
|||
|
IsForbidden int `json:"isForbidden" bson:"is_forbidden" gorm:"column:is_forbidden;type:BIGINT(16);default:0;comment:是否禁用"` //是否禁用 0:可用 1:禁用
|
|||
|
}
|
|||
|
|
|||
|
func (Bundle) TableName() string {
|
|||
|
return "bundle"
|
|||
|
}
|
|||
|
|
|||
|
type BundleInfo struct {
|
|||
|
Id uint64 `json:"id" gorm:"primary_key;column:id;type:BIGINT(16) AUTO_INCREMENT;comment:'自增id'" sql:"auto_increment;primary_key"`
|
|||
|
BindingId string `json:"bindingId" gorm:"column:binding_id;key;type:varchar(64);default:'';comment:应用Id"`
|
|||
|
GroupID string `json:"groupId" gorm:"column:group_id;key;type:varchar(64);default:'';comment:企业ID"`
|
|||
|
BundleID string `json:"bundleId" gorm:"column:bundle_id;type:varchar(512);default:'';comment:bundleId"`
|
|||
|
Remark string `json:"remark" gorm:"column:remark;type:varchar(512);default:'';comment:类型"`
|
|||
|
SDKKey string `json:"SDKKey" gorm:"column:sdk_key;type:varchar(512);default:'';comment:sdkKey"`
|
|||
|
SDKID string `json:"SDKID" gorm:"column:sdk_id;type:varchar(64);default:'';comment:sdkid"`
|
|||
|
IsFirstCreate bool `json:"isFirstCreate" gorm:"column:is_first_create;type:bool;default:false;comment:是否第一次创建"` //是否第一次创建
|
|||
|
CreatedAt int64 `json:"createdAt" gorm:"column:created_at;type:BIGINT(16);default:0;comment:创建时间"`
|
|||
|
CreatedAccount string `json:"createdAccount" gorm:"column:created_account;type:varchar(64);default:'';comment:创建账号"`
|
|||
|
CreatedBy string `json:"createdBy" gorm:"column:created_by;type:varchar(64);default:'';comment:创建人"`
|
|||
|
IsForbidden int `json:"isForbidden" gorm:"column:is_forbidden;type:BIGINT(16);default:0;comment:是否禁用"` //是否禁用 0:未禁用 1:禁用
|
|||
|
IsReview int `json:"isReview" gorm:"column:is_review;type:tinyint;default:0;comment:是否审核应用"` //是否禁用 0:未禁用 1:禁用
|
|||
|
}
|
|||
|
|
|||
|
func (BundleInfo) TableName() string {
|
|||
|
return "bundle_info"
|
|||
|
}
|
|||
|
|
|||
|
type BindingMysql struct {
|
|||
|
Id uint64 `json:"id" gorm:"primary_key;column:id;type:BIGINT(16) AUTO_INCREMENT;comment:'自增id'" sql:"auto_increment;primary_key"`
|
|||
|
BindingID string `json:"bindingID" gorm:"column:binding_id;unique;type:varchar(64);comment:'应用的id'"`
|
|||
|
Name string `json:"name" gorm:"column:name;type:varchar(64);default:'';comment:'应用名称'"`
|
|||
|
//BundleInfos string `json:"bundleInfos" gorm:"column:bundle_infos;type:text;comment:'bundle ids'"`
|
|||
|
CreatedInfoBy string `json:"createdInfoBy" gorm:"column:created_info_by;type:varchar(64);default:'';comment:''"`
|
|||
|
CreatedInfoAt int64 `json:"createdInfoAt" gorm:"column:created_info_at;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CreatedInfoAccount string `json:"createdInfoAccount" gorm:"column:created_info_account;type:varchar(64);default:'';comment:''"`
|
|||
|
GroupID string `json:"groupId" gorm:"column:group_id;type:varchar(64);default:'';comment:'企业ID'"`
|
|||
|
GroupName string `json:"groupName" gorm:"column:group_name;type:varchar(64);default:'';comment:'企业名称(为了查询)'"`
|
|||
|
CooperateStatusValue string `json:"cooperateStatusValue" gorm:"column:cooperate_status_value;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateStatusReason string `json:"cooperateStatusReason" gorm:"column:cooperate_status_reason;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateStatusLastUpdated int64 `json:"cooperateStatusLastUpdated" gorm:"column:cooperate_status_last_updated;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CooperateStatusModifiedBy string `json:"cooperateStatusModifiedBy" gorm:"column:cooperate_status_modified_by;type:varchar(256);default:0;comment:''"`
|
|||
|
CooperateValidStatusReason string `json:"cooperateValidStatusReason" gorm:"column:cooperate_valid_status_reson;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateValidStatusLastUpdated int64 `json:"cooperateValidStatusLastUpdated" gorm:"column:cooperate_valid_status_last_updated;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CooperateValidStatusModifiedBy string `json:"cooperateValidStatusModifiedBy" gorm:"column:cooperate_valid_status_modified_by;type:varchar(256);default:0;comment:''"`
|
|||
|
CooperateInvalidStatusReason string `json:"cooperateInvalidStatusReason" gorm:"column:cooperate_invalid_status_reson;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateInvalidStatusLastUpdated int64 `json:"cooperateInvalidStatusLastUpdated" gorm:"column:cooperate_invalid_status_last_updated;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CooperateInvalidStatusModifiedBy string `json:"cooperateInvalidStatusModifiedBy" gorm:"column:cooperate_invalid_status_modified_by;type:varchar(256);default:0;comment:''"`
|
|||
|
BundleInfos []BundleInfo `json:"bundleInfos" gorm:"ForeignKey:binding_id;AssociationForeignKey:binding_id"`
|
|||
|
AppInfos []LinkAppInfo `json:"appInfos" gorm:"ForeignKey:binding_id;AssociationForeignKey:binding_id"`
|
|||
|
//sAppInfos string `json:"appInfos" gorm:"column:app_infos;type:text;comment:'appid 的信息'"`
|
|||
|
Owner string `json:"owner" gorm:"column:owner;type:varchar(64);default:'';comment:'所属企业'"`
|
|||
|
Expire int64 `json:"expire" gorm:"column:expire;type:BIGINT(16);default:0;comment:''"`
|
|||
|
ApiServer string `json:"apiServer" gorm:"column:api_server;type:varchar(256);default:'';comment:'子域名'"`
|
|||
|
PlatForm int `json:"platform" gorm:"column:platform;type:tinyint;comment:'来源平台'"`
|
|||
|
AutoBind int `json:"autoBind" gorm:"column:auto_bind;type:tinyint;comment:'自动绑定'"`
|
|||
|
HiddenBundle int `json:"hiddenBundle" gorm:"column:hidden_bundle;type:tinyint;comment:'隐藏bundle信息'"`
|
|||
|
FromBindingID string `json:"fromBindingId" gorm:"column:from_binding_id;type:varchar(64);default:'';comment:'来源bindingid'"`
|
|||
|
}
|
|||
|
|
|||
|
type BindingMysqlV2 struct {
|
|||
|
Id uint64 `json:"id" gorm:"primary_key;column:id;type:BIGINT(16) AUTO_INCREMENT;comment:'自增id'" sql:"auto_increment;primary_key"`
|
|||
|
BindingID string `json:"bindingID" gorm:"column:binding_id;unique;type:varchar(64);comment:'应用的id'"`
|
|||
|
Name string `json:"name" gorm:"column:name;type:varchar(64);default:'';comment:'应用名称'"`
|
|||
|
CreatedInfoBy string `json:"createdInfoBy" gorm:"column:created_info_by;type:varchar(64);default:'';comment:''"`
|
|||
|
CreatedInfoAt int64 `json:"createdInfoAt" gorm:"column:created_info_at;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CreatedInfoAccount string `json:"createdInfoAccount" gorm:"column:created_info_account;type:varchar(64);default:'';comment:''"`
|
|||
|
GroupID string `json:"groupId" gorm:"column:group_id;type:varchar(64);default:'';comment:'企业ID'"`
|
|||
|
GroupName string `json:"groupName" gorm:"column:group_name;type:varchar(64);default:'';comment:'企业名称(为了查询)'"`
|
|||
|
CooperateStatusValue string `json:"cooperateStatusValue" gorm:"column:cooperate_status_value;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateStatusReason string `json:"cooperateStatusReason" gorm:"column:cooperate_status_reason;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateStatusLastUpdated int64 `json:"cooperateStatusLastUpdated" gorm:"column:cooperate_status_last_updated;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CooperateStatusModifiedBy string `json:"cooperateStatusModifiedBy" gorm:"column:cooperate_status_modified_by;type:varchar(256);default:0;comment:''"`
|
|||
|
CooperateValidStatusReason string `json:"cooperateValidStatusReason" gorm:"column:cooperate_valid_status_reson;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateValidStatusLastUpdated int64 `json:"cooperateValidStatusLastUpdated" gorm:"column:cooperate_valid_status_last_updated;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CooperateValidStatusModifiedBy string `json:"cooperateValidStatusModifiedBy" gorm:"column:cooperate_valid_status_modified_by;type:varchar(256);default:0;comment:''"`
|
|||
|
CooperateInvalidStatusReason string `json:"cooperateInvalidStatusReason" gorm:"column:cooperate_invalid_status_reson;type:varchar(256);default:'';comment:''"`
|
|||
|
CooperateInvalidStatusLastUpdated int64 `json:"cooperateInvalidStatusLastUpdated" gorm:"column:cooperate_invalid_status_last_updated;type:BIGINT(16);default:0;comment:''"`
|
|||
|
CooperateInvalidStatusModifiedBy string `json:"cooperateInvalidStatusModifiedBy" gorm:"column:cooperate_invalid_status_modified_by;type:varchar(256);default:0;comment:''"`
|
|||
|
Owner string `json:"owner" gorm:"column:owner;type:varchar(64);default:'';comment:'所属企业'"`
|
|||
|
Expire int64 `json:"expire" gorm:"column:expire;type:BIGINT(16);default:0;comment:''"`
|
|||
|
ApiServer string `json:"apiServer" gorm:"column:api_server;type:varchar(256);default:'';comment:'子域名'"`
|
|||
|
PlatForm int `json:"platform" gorm:"column:platform;type:tinyint;comment:'来源平台'"`
|
|||
|
AutoBind int `json:"autoBind" gorm:"column:auto_bind;type:tinyint;comment:'自动绑定'"`
|
|||
|
HiddenBundle int `json:"hiddenBundle" gorm:"column:hidden_bundle;type:tinyint;comment:'隐藏bundle信息'"`
|
|||
|
FromBindingID string `json:"fromBindingId" gorm:"column:from_binding_id;type:varchar(64);default:'';comment:'来源bindingid'"`
|
|||
|
}
|
|||
|
|
|||
|
type LinkAppInfo struct {
|
|||
|
Id uint64 `gorm:"primary_key;column:id;type:BIGINT(16) AUTO_INCREMENT;comment:'自增id'" sql:"auto_increment;primary_key"`
|
|||
|
BindingId string `gorm:"column:binding_id;key;type:varchar(64);comment:'关联应用的id'"`
|
|||
|
AppId string `gorm:"column:app_id;key;type:varchar(64);comment:'小程序id'"`
|
|||
|
AssociatedAt int64 `gorm:"column:associated_at;type:BIGINT(16);default:0;comment:'关联时间'"`
|
|||
|
AssociatedBy string `gorm:"column:associated_by;type:varchar(64);default:'';comment:'关联人'"`
|
|||
|
}
|
|||
|
|
|||
|
func (LinkAppInfo) TableName() string {
|
|||
|
return "link_app_infos"
|
|||
|
}
|
|||
|
|
|||
|
func (BindingMysql) TableName() string {
|
|||
|
return "binding"
|
|||
|
}
|
|||
|
|
|||
|
func (BindingMysqlV2) TableName() string {
|
|||
|
return "binding"
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetInfo(ctx context.Context, bindingId string) (*entity.Binding, error) {
|
|||
|
info := BindingMysql{}
|
|||
|
err := DB.Model(&BindingMysql{}).WithContext(ctx).
|
|||
|
Where("binding_id=?", bindingId).
|
|||
|
//Preload("BundleInfos").
|
|||
|
//Preload("AppInfos").
|
|||
|
First(&info).Error
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, info.BindingID)
|
|||
|
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
info.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
info.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
result := convertBindingMysqlToBinding(info)
|
|||
|
return &result, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetByGroupIdAndName(ctx context.Context, groupId string, name string, isAdmin bool) (*entity.Binding, error) {
|
|||
|
query := "group_id = ? and name = ? "
|
|||
|
args := []interface{}{groupId, name}
|
|||
|
if isAdmin {
|
|||
|
query += "and platform = ? "
|
|||
|
args = append(args, entity.BINGING_PLATFORM_OPER)
|
|||
|
} else {
|
|||
|
query += "and platform = ? "
|
|||
|
args = append(args, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}
|
|||
|
bindingMysql := BindingMysql{}
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).
|
|||
|
//Preload("BundleInfos").Preload("AppInfos").
|
|||
|
First(&bindingMysql).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
result := convertBindingMysqlToBinding(bindingMysql)
|
|||
|
return &result, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetByApiServer(ctx context.Context, apiServer string) (entity.Binding, error) {
|
|||
|
query := "api_server = ?"
|
|||
|
args := []interface{}{apiServer}
|
|||
|
res := entity.Binding{}
|
|||
|
bindingMysql := BindingMysql{}
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).First(&bindingMysql).Error
|
|||
|
if err != nil {
|
|||
|
return res, err
|
|||
|
}
|
|||
|
|
|||
|
query = "binding_id = ?"
|
|||
|
args = []interface{}{bindingMysql.BindingID}
|
|||
|
|
|||
|
bundleInfoMysqls := make([]BundleInfo, 0)
|
|||
|
err = DB.Model(&BindingMysql{}).Where(query, args...).Find(&bundleInfoMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return res, err
|
|||
|
}
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
result := convertBindingMysqlToBinding(bindingMysql)
|
|||
|
return result, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetInfoByParams(ctx context.Context, sdkKey, organId, appId string) (*entity.Binding, error) {
|
|||
|
db := DB.Model(&BindingMysql{})
|
|||
|
//db = db.Preload("BundleInfos").Preload("AppInfos")
|
|||
|
|
|||
|
db.Where("bundle_info.sdk_key like ?", sdkKey)
|
|||
|
|
|||
|
if appId != "" {
|
|||
|
db.Where("link_app_infos.app_id like ?", appId)
|
|||
|
}
|
|||
|
|
|||
|
if organId != "" {
|
|||
|
db.Where("binding.group_id = ?", organId)
|
|||
|
}
|
|||
|
|
|||
|
bindingMysql := BindingMysql{}
|
|||
|
err := db.
|
|||
|
Select("DISTINCT(binding.id), binding.*").
|
|||
|
Joins("left join bundle_info on binding.binding_id = bundle_info.binding_id").
|
|||
|
Joins("left join link_app_infos on binding.binding_id = link_app_infos.binding_id").
|
|||
|
First(&bindingMysql).Error
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
binding := convertBindingMysqlToBinding(bindingMysql)
|
|||
|
|
|||
|
return &binding, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetInfoBySdkKeyOrganId(ctx context.Context, organId, sdkKey string) (*entity.Binding, error) {
|
|||
|
query := "group_id = ? and sdk_key = ?"
|
|||
|
args := []interface{}{organId, sdkKey}
|
|||
|
|
|||
|
bundleInfoMysql := BundleInfo{}
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).First(&bundleInfoMysql).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
return b.GetInfo(ctx, bundleInfoMysql.BindingId)
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetAllSdkKey(ctx context.Context, organId string) ([]string, error) {
|
|||
|
query := "group_id = ?"
|
|||
|
args := []interface{}{organId}
|
|||
|
|
|||
|
bundleInfoMysqls := make([]BundleInfo, 0)
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).Find(&bundleInfoMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
result := make([]string, 0)
|
|||
|
for _, v := range bundleInfoMysqls {
|
|||
|
result = append(result, v.SDKKey)
|
|||
|
}
|
|||
|
|
|||
|
return result, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindListBySdkKey(ctx context.Context, sdkKey string) ([]entity.Binding, error) {
|
|||
|
query := "sdk_key = ?"
|
|||
|
args := []interface{}{sdkKey}
|
|||
|
|
|||
|
bundleInfoMysqls := make([]BundleInfo, 0)
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).Order("created_at").Find(&bundleInfoMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, bundleInfoMysql := range bundleInfoMysqls {
|
|||
|
binding, _ := b.GetInfo(ctx, bundleInfoMysql.BindingId)
|
|||
|
bindings = append(bindings, *binding)
|
|||
|
}
|
|||
|
|
|||
|
return bindings, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) SdkKeyExi(ctx context.Context, sdkKey string) (bool, error) {
|
|||
|
if _, ok := entity.SdkExiCache.Get(sdkKey); ok {
|
|||
|
return true, nil
|
|||
|
}
|
|||
|
|
|||
|
var count int64
|
|||
|
err := DB.Model(&BundleInfo{}).
|
|||
|
Where("sdk_key=?", sdkKey).
|
|||
|
Count(&count).Error
|
|||
|
if err != nil {
|
|||
|
return false, err
|
|||
|
}
|
|||
|
|
|||
|
if count > 0 {
|
|||
|
entity.SdkExiCache.Set(sdkKey, true, -1)
|
|||
|
return true, err
|
|||
|
}
|
|||
|
return false, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) Insert(ctx context.Context, bind *entity.Binding) error {
|
|||
|
info := convertBindingToBindingMysql(bind)
|
|||
|
infoV2 := convertBindingMysqlToBindingMysqlV2(&info)
|
|||
|
err := DB.WithContext(ctx).Model(&BindingMysqlV2{}).Create(&infoV2).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
if len(info.BundleInfos) > 0 {
|
|||
|
for _, v := range info.BundleInfos {
|
|||
|
DB.Model(&BundleInfo{}).Create(&v)
|
|||
|
}
|
|||
|
}
|
|||
|
if len(info.AppInfos) > 0 {
|
|||
|
for _, v := range info.AppInfos {
|
|||
|
DB.Model(&LinkAppInfo{}).Create(&v)
|
|||
|
}
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) Count(ctx context.Context) (int, error) {
|
|||
|
query := ""
|
|||
|
args := []interface{}{}
|
|||
|
var count int64
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).Count(&count).Error
|
|||
|
return int(count), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetCountByStatus(ctx context.Context, status string, platform int) (int, error) {
|
|||
|
query := "cooperate_status_value = ?"
|
|||
|
args := []interface{}{"Valid"}
|
|||
|
/*switch platform {
|
|||
|
case entity.BINGING_PLATFORM_OPER:
|
|||
|
query += " and platform = ? and from_binding_id = ?"
|
|||
|
args = append(args, platform)
|
|||
|
args = append(args, "")
|
|||
|
case entity.BINGING_PLATFORM_ORGAN:
|
|||
|
query += " and platform = ?"
|
|||
|
args = append(args, platform)
|
|||
|
default:
|
|||
|
query += " and ( ( platform = ? and from_binding_id = ? ) or ( platform = ? ) )"
|
|||
|
args = append(args, entity.BINGING_PLATFORM_OPER)
|
|||
|
args = append(args, "")
|
|||
|
args = append(args, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}*/
|
|||
|
query += " and ( ( platform = ? and group_id = ? ) or ( platform = ? ) )"
|
|||
|
args = append(args, entity.BINGING_PLATFORM_OPER)
|
|||
|
args = append(args, "")
|
|||
|
args = append(args, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
var count int64
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).Count(&count).Error
|
|||
|
return int(count), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBundleIdNum(ctx context.Context) (int, error) {
|
|||
|
query := "is_forbidden = ?"
|
|||
|
args := []interface{}{0}
|
|||
|
var count int64
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).Count(&count).Error
|
|||
|
return int(count), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBundleIdLimitHand(ctx context.Context, groupId string) (int, error) {
|
|||
|
var total int64
|
|||
|
err := DB.Model(&BundleInfo{}).
|
|||
|
Select("select * from bundle_info").Joins("left join binding on binding.binding_id = bundle_info.binding_id").
|
|||
|
Where("binding.group_id = ? and bundle_info.is_forbidden = ?", groupId, 0).
|
|||
|
Count(&total).Error
|
|||
|
|
|||
|
return int(total), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBundleLimit(ctx context.Context) (int, error) {
|
|||
|
/*query := ""
|
|||
|
args := []interface{}{}*/
|
|||
|
query := "is_forbidden = ?"
|
|||
|
args := []interface{}{0}
|
|||
|
var count int64
|
|||
|
err := DB.Model(&Bundle{}).Where(query, args...).Count(&count).Error
|
|||
|
return int(count), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindingByBindingId(ctx context.Context, bindingId string) (*entity.Binding, error) {
|
|||
|
bindingMysql := BindingMysql{}
|
|||
|
err := DB.Model(&BindingMysql{}).
|
|||
|
Where("binding_id = ?", bindingId).
|
|||
|
//Preload("BundleInfos").Preload("AppInfos").
|
|||
|
First(&bindingMysql).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
result := convertBindingMysqlToBinding(bindingMysql)
|
|||
|
return &result, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindingByGroupIdAndBindingId(ctx context.Context, groupId string, bindingId string) (*entity.Binding, error) {
|
|||
|
info := BindingMysql{}
|
|||
|
err := DB.Model(&BindingMysql{}).WithContext(ctx).
|
|||
|
Where("group_id = ? and binding_id = ?", []interface{}{groupId}, []interface{}{bindingId}).
|
|||
|
//Preload("BundleInfos").
|
|||
|
//Preload("AppInfos").
|
|||
|
First(&info).Error
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, info.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
info.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
info.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
result := convertBindingMysqlToBinding(info)
|
|||
|
return &result, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindingByGroupIdAndSdkKey(ctx context.Context, groupId string, sdkKey string) (*entity.Binding, error) {
|
|||
|
query := "group_id = ? and sdk_key = ?"
|
|||
|
args := []interface{}{groupId, sdkKey}
|
|||
|
|
|||
|
bundleInfoMysql := BundleInfo{}
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).First(&bundleInfoMysql).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
return b.GetInfo(ctx, bundleInfoMysql.BindingId)
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBundleInfosByGroupIdAndBindId(ctx context.Context, groupId string, bindingId string, infos []entity.BundleInfo) error {
|
|||
|
return DB.Transaction(func(tx *gorm.DB) error {
|
|||
|
var err error
|
|||
|
for _, v := range infos {
|
|||
|
query := "group_id = ? and binding_id = ?"
|
|||
|
args := []interface{}{groupId, bindingId}
|
|||
|
err = tx.Model(&BundleInfo{}).
|
|||
|
Where(query, args...).
|
|||
|
Updates(convertBundleInfoToBundleInfoMysql(bindingId, groupId, v)).Error
|
|||
|
}
|
|||
|
return err
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) AppendBundles(ctx context.Context, bindingId, groupId string, bundles []entity.BundleInfo) error {
|
|||
|
return DB.Transaction(func(tx *gorm.DB) error {
|
|||
|
var err error
|
|||
|
for _, v := range bundles {
|
|||
|
item := convertBundleInfoToBundleInfoMysql(bindingId, groupId, v)
|
|||
|
|
|||
|
if config.Cfg.PublishEnv == entity.ENV_PRIVATE {
|
|||
|
//私有化环境中,如果要变为启用状态,要先判断该bundleId运营端是否已启用
|
|||
|
if v.IsForbidden == 0 {
|
|||
|
info := BundleMysql{}
|
|||
|
err := DB.Debug().Model(&BundleMysql{}).Where("binary bundle_id=?", v.BundleID).First(&info).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
if info.IsForbidden == 1 {
|
|||
|
return errors.New(utility.FS_BIND_IS_FORBIDDEN)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if err = tx.Model(&BundleInfo{}).Create(&item).Error; err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
}
|
|||
|
return nil
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBundleIsView(ctx context.Context, reviews []apiproto.BundleReviewItem, isReview int) error {
|
|||
|
return DB.Transaction(func(tx *gorm.DB) error {
|
|||
|
var err error
|
|||
|
for _, review := range reviews {
|
|||
|
query := "binding_id = ? and binary bundle_id= ?"
|
|||
|
args := []interface{}{review.BindingId, review.BundleId}
|
|||
|
params := map[string]interface{}{
|
|||
|
"is_review": isReview,
|
|||
|
}
|
|||
|
err = tx.Model(&BundleInfo{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(params).Error
|
|||
|
}
|
|||
|
return err
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) ListReviewBundle(ctx context.Context, pageSize int, pageNo int, searchText string, isReview int) (int64, []entity.ReviewBundleInfo, error) {
|
|||
|
query := "binding.platform = ? AND binding.from_binding_id = ? AND bundle_info.is_review = ?"
|
|||
|
args := []interface{}{entity.BINGING_PLATFORM_OPER, "", isReview}
|
|||
|
if searchText != "" {
|
|||
|
query += " AND (binding.name LIKE ? OR bundle_info.bundle_id LIKE ?) "
|
|||
|
args = append(args, genLike(searchText))
|
|||
|
args = append(args, genLike(searchText))
|
|||
|
}
|
|||
|
list := []entity.ReviewBundleInfo{}
|
|||
|
var total int64
|
|||
|
var err error
|
|||
|
DB.Debug().Model(&BindingMysql{}).
|
|||
|
Joins("LEFT JOIN bundle_info ON binding.binding_id = bundle_info.binding_id").
|
|||
|
Where(query, args...).
|
|||
|
Count(&total)
|
|||
|
if pageSize == 0 && pageNo == 0 {
|
|||
|
err = DB.Debug().Model(&BindingMysql{}).
|
|||
|
Select("binding.binding_id as binding_id, binding.created_info_at as created_info_at, binding.name as name, binding.cooperate_status_value as status, bundle_info.bundle_id as bundle_id, bundle_info.remark as remark, bundle_info.sdk_key as sdk_key, bundle_info.sdk_id as sdk_id, bundle_info.is_forbidden as is_forbidden, bundle_info.is_review as is_review").
|
|||
|
Joins("LEFT JOIN bundle_info ON binding.binding_id = bundle_info.binding_id").
|
|||
|
Order("binding.created_info_at desc").
|
|||
|
Where(query, args...).
|
|||
|
Scan(&list).Error
|
|||
|
} else {
|
|||
|
err = DB.Debug().Model(&BindingMysql{}).
|
|||
|
Select("binding.binding_id as binding_id, binding.created_info_at as created_info_at, binding.name as name, binding.cooperate_status_value as status, bundle_info.bundle_id as bundle_id, bundle_info.remark as remark, bundle_info.sdk_key as sdk_key, bundle_info.sdk_id as sdk_id, bundle_info.is_forbidden as is_forbidden, bundle_info.is_review as is_review").
|
|||
|
Joins("LEFT JOIN bundle_info ON binding.binding_id = bundle_info.binding_id").
|
|||
|
Order("binding.created_info_at desc").
|
|||
|
Where(query, args...).
|
|||
|
Offset((pageNo - 1) * pageSize).
|
|||
|
Limit(pageSize).
|
|||
|
Scan(&list).Error
|
|||
|
}
|
|||
|
return total, list, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) CheckReviewBySdkKey(ctx context.Context, sdkKey string) bool {
|
|||
|
query := "binding.platform = ? AND binding.from_binding_id = ? AND binding.cooperate_status_value = ? AND bundle_info.is_review = ? and bundle_info.sdk_key = ? AND bundle_info.is_forbidden = ?"
|
|||
|
args := []interface{}{entity.BINGING_PLATFORM_OPER, "", entity.StBindValid, 1, sdkKey, 0}
|
|||
|
var total int64
|
|||
|
DB.Debug().Model(&BindingMysql{}).
|
|||
|
Joins("LEFT JOIN bundle_info ON binding.binding_id = bundle_info.binding_id").
|
|||
|
Where(query, args...).
|
|||
|
Count(&total)
|
|||
|
return total > 0
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetReviewBindBySdkKey(ctx context.Context, sdkKey string) (*entity.ReviewBundleInfo, error) {
|
|||
|
query := "binding.platform = ? AND binding.from_binding_id = ? AND bundle_info.sdk_key = ?"
|
|||
|
args := []interface{}{entity.BINGING_PLATFORM_OPER, "", sdkKey}
|
|||
|
list := []entity.ReviewBundleInfo{}
|
|||
|
|
|||
|
err := DB.Debug().Model(&BindingMysql{}).
|
|||
|
Select("binding.binding_id as binding_id, binding.created_info_at as created_info_at, binding.name as name, binding.cooperate_status_value as status, bundle_info.bundle_id as bundle_id, bundle_info.remark as remark, bundle_info.sdk_key as sdk_key, bundle_info.sdk_id as sdk_id, bundle_info.is_forbidden as is_forbidden, bundle_info.is_review as is_review").
|
|||
|
Joins("LEFT JOIN bundle_info ON binding.binding_id = bundle_info.binding_id").
|
|||
|
Order("binding.created_info_at desc").
|
|||
|
Where(query, args...).
|
|||
|
Scan(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
if len(list) > 0 {
|
|||
|
return &list[0], nil
|
|||
|
} else {
|
|||
|
return nil, nil
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBundles(ctx context.Context, bindingId, groupId string, bundles []entity.BundleInfo) error {
|
|||
|
return DB.Transaction(func(tx *gorm.DB) error {
|
|||
|
var err error
|
|||
|
for _, v := range bundles {
|
|||
|
if config.Cfg.PublishEnv == entity.ENV_PRIVATE {
|
|||
|
//私有化环境中,如果要变为启用状态,要先判断该bundleId运营端是否已启用
|
|||
|
if v.IsForbidden == 0 {
|
|||
|
info := BundleMysql{}
|
|||
|
err := DB.Debug().Model(&BundleMysql{}).Where("binary bundle_id=?", v.BundleID).First(&info).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
if info.IsForbidden == 1 {
|
|||
|
return errors.New(utility.FS_BIND_IS_FORBIDDEN)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
query := "binding_id = ? and binary bundle_id= ?"
|
|||
|
args := []interface{}{bindingId, v.BundleID}
|
|||
|
|
|||
|
params := map[string]interface{}{
|
|||
|
"is_forbidden": v.IsForbidden,
|
|||
|
"remark": v.Remark,
|
|||
|
}
|
|||
|
err = tx.Model(&BundleInfo{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(params).Error
|
|||
|
}
|
|||
|
return err
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetByBindIdList(ctx context.Context, ids []string) ([]entity.Binding, error) {
|
|||
|
query := "binding_id in ?"
|
|||
|
args := []interface{}{ids}
|
|||
|
|
|||
|
bindingMysqls := make([]BindingMysql, 0)
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).Find(&bindingMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, bindingMysql := range bindingMysqls {
|
|||
|
query = "binding_id = ?"
|
|||
|
args = []interface{}{bindingMysql.BindingID}
|
|||
|
|
|||
|
bundleInfoMysqls := make([]BundleInfo, 0)
|
|||
|
err = DB.Model(&BundleInfo{}).Where(query, args...).Find(&bundleInfoMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
bindingMysql.BundleInfos = bundleInfoMysqls
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(bindingMysql))
|
|||
|
}
|
|||
|
|
|||
|
return bindings, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindListByGroupId(ctx context.Context, groupId string, pageSize int, pageNo int) ([]entity.Binding, int, error) {
|
|||
|
bindingMysqls := make([]BindingMysql, 0)
|
|||
|
var total int64
|
|||
|
err := DB.Model(&BindingMysql{}).WithContext(ctx).
|
|||
|
Where("group_id = ? and platform = 0", groupId).
|
|||
|
//Preload("BundleInfos").
|
|||
|
//Preload("AppInfos").
|
|||
|
Order("created_info_at desc").
|
|||
|
Offset((pageNo - 1) * pageSize).
|
|||
|
Limit(pageSize).
|
|||
|
Find(&bindingMysqls).Error
|
|||
|
DB.Model(&BindingMysql{}).WithContext(ctx).
|
|||
|
Where("group_id = ? and platform = 0", groupId).Count(&total)
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, bindingMysql := range bindingMysqls {
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(bindingMysql))
|
|||
|
}
|
|||
|
return bindings, int(total), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) AppendApps(ctx context.Context, bindingId string, apps []entity.AppInfo) error {
|
|||
|
for _, app := range apps {
|
|||
|
linkApp := LinkAppInfo{
|
|||
|
BindingId: bindingId,
|
|||
|
AppId: app.AppID,
|
|||
|
AssociatedAt: app.AssociatedAt,
|
|||
|
AssociatedBy: app.AssociatedBy,
|
|||
|
}
|
|||
|
DB.Model(&LinkAppInfo{}).Create(&linkApp)
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) RemoveApps(ctx context.Context, bindingId string, appIds []string) error {
|
|||
|
err := DB.Where("binding_id = ? AND app_id IN ?", bindingId, appIds).Delete(&LinkAppInfo{}).Error
|
|||
|
if err != nil {
|
|||
|
log.Errorf("RemoveApps delete binding:%s LinkAppInfo err:%s", bindingId, err.Error())
|
|||
|
} else {
|
|||
|
log.Infof("RemoveApps delete binding:%s LinkAppInfo succ", bindingId)
|
|||
|
}
|
|||
|
return err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateByBindId(ctx context.Context, bindingId string, bind *entity.Binding) error {
|
|||
|
info := convertBindingToBindingMysql(bind)
|
|||
|
|
|||
|
data := make(map[string]interface{})
|
|||
|
data["name"] = info.Name
|
|||
|
data["cooperate_status_value"] = info.CooperateStatusValue
|
|||
|
data["cooperate_status_reason"] = info.CooperateStatusReason
|
|||
|
data["cooperate_status_last_updated"] = info.CooperateStatusLastUpdated
|
|||
|
data["cooperate_status_modified_by"] = info.CooperateStatusModifiedBy
|
|||
|
data["cooperate_valid_status_reson"] = info.CooperateValidStatusReason
|
|||
|
data["cooperate_valid_status_last_updated"] = info.CooperateValidStatusLastUpdated
|
|||
|
data["cooperate_valid_status_modified_by"] = info.CooperateValidStatusModifiedBy
|
|||
|
data["cooperate_invalid_status_reson"] = info.CooperateInvalidStatusReason
|
|||
|
data["cooperate_invalid_status_last_updated"] = info.CooperateInvalidStatusLastUpdated
|
|||
|
data["cooperate_invalid_status_modified_by"] = info.CooperateInvalidStatusModifiedBy
|
|||
|
data["owner"] = info.Owner
|
|||
|
data["expire"] = info.Expire
|
|||
|
data["api_server"] = info.ApiServer
|
|||
|
//DB.Delete(&BundleInfo{}, "binding_id=?", bindingId)
|
|||
|
//DB.Delete(&LinkAppInfo{}, "binding_id=?", bindingId)
|
|||
|
err := DB.Where("binding_id=?", bindingId).Delete(&BundleInfo{}).Error
|
|||
|
if err != nil {
|
|||
|
log.Errorf("UpdateByBindId delete binding:%s BundleInfo err:%s", bindingId, err.Error())
|
|||
|
} else {
|
|||
|
log.Infof("UpdateByBindId delete binding:%s BundleInfo succ", bindingId)
|
|||
|
}
|
|||
|
err = DB.Where("binding_id=?", bindingId).Delete(&LinkAppInfo{}).Error
|
|||
|
if err != nil {
|
|||
|
log.Errorf("UpdateByBindId delete binding:%s LinkAppInfo err:%s", bindingId, err.Error())
|
|||
|
} else {
|
|||
|
log.Infof("UpdateByBindId delete binding:%s LinkAppInfo succ", bindingId)
|
|||
|
}
|
|||
|
for _, v := range info.AppInfos {
|
|||
|
DB.Model(&LinkAppInfo{}).Create(&v)
|
|||
|
}
|
|||
|
for _, v := range info.BundleInfos {
|
|||
|
DB.Model(&BundleInfo{}).Create(&v)
|
|||
|
}
|
|||
|
|
|||
|
return DB.Model(&BindingMysql{}).Where("binding_id=?", bindingId).Updates(data).Error
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateExpire(ctx context.Context, bindingId string, expire int64) error {
|
|||
|
return DB.WithContext(ctx).Model(&sql.AppVersion{}).Where("binding_id=? ", bindingId).Update("expire", expire).Error
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBindingInfo(ctx context.Context, bindingId string, info map[string]interface{}, platform int) error {
|
|||
|
if platform == entity.BINGING_PLATFORM_OPER {
|
|||
|
query := "binding_id = ? "
|
|||
|
args := []interface{}{bindingId}
|
|||
|
err := DB.Model(&BindingMysqlV2{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(info).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
query = "from_binding_id = ? "
|
|||
|
args = []interface{}{bindingId}
|
|||
|
return DB.Model(&BindingMysqlV2{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(info).Error
|
|||
|
|
|||
|
} else {
|
|||
|
query := "binding_id = ? "
|
|||
|
args := []interface{}{bindingId}
|
|||
|
return DB.Model(&BindingMysqlV2{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(info).Error
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBindingGroupName(ctx context.Context, groupId, groupName string) error {
|
|||
|
info := make(map[string]interface{})
|
|||
|
info["group_name"] = groupName
|
|||
|
query := "group_id = ? "
|
|||
|
args := []interface{}{groupId}
|
|||
|
return DB.Model(&BindingMysqlV2{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(info).Error
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) BundleIdCount(ctx context.Context, groupId string) (int, error) {
|
|||
|
if groupId == "" {
|
|||
|
query := "is_forbidden = 0"
|
|||
|
args := make([]interface{}, 0)
|
|||
|
var count int64
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).Count(&count).Error
|
|||
|
return int(count), err
|
|||
|
} else {
|
|||
|
query := "group_id = ? and is_forbidden = 0"
|
|||
|
args := []interface{}{groupId}
|
|||
|
var count int64
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).Count(&count).Error
|
|||
|
return int(count), err
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBundleByGroupIdAndBundleId(ctx context.Context, groupId string, bundleId string) (*entity.Binding, error) {
|
|||
|
bindingMysql := BindingMysql{}
|
|||
|
err := DB.Model(&BindingMysql{}).
|
|||
|
Select("binding.*").Joins("left join bundle_info on binding.binding_id = bundle_info.binding_id").
|
|||
|
Where("binding.group_id = ? and binary bundle_info.bundle_id = ?", []interface{}{groupId}, []interface{}{bundleId}).
|
|||
|
First(&bindingMysql).Error
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
binding := convertBindingMysqlToBinding(bindingMysql)
|
|||
|
|
|||
|
return &binding, err
|
|||
|
|
|||
|
//query := "group_id = ? and bundle_id = ?"
|
|||
|
//args := []interface{}{groupId, bundleId}
|
|||
|
//
|
|||
|
//bundleInfoMysql := BundleInfo{}
|
|||
|
//err := DB.Model(&BundleInfo{}).Where(query, args...).First(&bundleInfoMysql).Error
|
|||
|
//if err != nil {
|
|||
|
// return nil, err
|
|||
|
//}
|
|||
|
//
|
|||
|
//return b.GetInfo(ctx, bundleInfoMysql.BindingId)
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetbundlesByBundleId(ctx context.Context, bundleId string) (*entity.Binding, error) {
|
|||
|
query := "binary bundle_id = ?"
|
|||
|
args := []interface{}{bundleId}
|
|||
|
|
|||
|
bundleInfoMysql := BundleInfo{}
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).First(&bundleInfoMysql).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
return b.GetInfo(ctx, bundleInfoMysql.BindingId)
|
|||
|
}
|
|||
|
|
|||
|
type BindingsResult struct {
|
|||
|
BindingId string `json:"bindingId" gorm:"column:binding_id"`
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindingsBySearch(ctx context.Context, pageSize int, pageNo int, sort string, searchText string, searchFields string, cooperateStatus string, platform int) ([]entity.Binding, int, error) {
|
|||
|
log.Infof("ListBindings req,groupId:[%s],searchText:[%s],pageNo:[%d],pageSize:[%d]", searchText, pageNo, pageSize)
|
|||
|
var sortColumn string
|
|||
|
switch sort {
|
|||
|
case "-created":
|
|||
|
sortColumn = "binding.created_info_at DESC" //按创建时间排序
|
|||
|
case "-expire":
|
|||
|
sortColumn = "binding.expire DESC" //按过期时间倒序排序
|
|||
|
case "expire":
|
|||
|
sortColumn = "binding.expire ASC" //按过期时间正序排序
|
|||
|
default:
|
|||
|
sortColumn = "binding.created_info_at DESC" //按创建时间倒序排序
|
|||
|
}
|
|||
|
list := make([]BindingMysql, 0)
|
|||
|
var total int64
|
|||
|
if searchText == "" {
|
|||
|
if cooperateStatus != "all" {
|
|||
|
query := "cooperate_status_value = ?"
|
|||
|
queryList := []interface{}{cooperateStatus}
|
|||
|
switch platform {
|
|||
|
case entity.BINGING_PLATFORM_OPER:
|
|||
|
query += " AND platform = ? and group_id = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
queryList = append(queryList, "")
|
|||
|
case entity.BINGING_PLATFORM_ORGAN:
|
|||
|
query += " AND platform = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
default:
|
|||
|
query += " AND ( ( platform = ? AND group_id = ? ) OR ( platform = ? ) )"
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_OPER)
|
|||
|
queryList = append(queryList, "")
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}
|
|||
|
err := DB.
|
|||
|
Where(query, queryList...).
|
|||
|
//Preload("BundleInfos").
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
err = DB.Model(&BindingMysql{}).
|
|||
|
Where(query, queryList...).
|
|||
|
Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
} else {
|
|||
|
query := ""
|
|||
|
queryList := []interface{}{}
|
|||
|
switch platform {
|
|||
|
case entity.BINGING_PLATFORM_OPER:
|
|||
|
query += "platform = ? and group_id = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
queryList = append(queryList, "")
|
|||
|
case entity.BINGING_PLATFORM_ORGAN:
|
|||
|
query += "platform = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
default:
|
|||
|
query += "( platform = ? AND group_id = ? ) OR ( platform = ? )"
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_OPER)
|
|||
|
queryList = append(queryList, "")
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}
|
|||
|
err := DB.
|
|||
|
Where(query, queryList...).
|
|||
|
//Preload("BundleInfos").
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
err = DB.Model(&BindingMysql{}).
|
|||
|
Where(query, queryList...).
|
|||
|
Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
|
|||
|
query := ""
|
|||
|
queryList := []interface{}{}
|
|||
|
if cooperateStatus != "all" {
|
|||
|
query = "(binding.name LIKE ? OR binding.group_name LIKE ? OR bundle_info.bundle_id LIKE ?) AND binding.cooperate_status_value = ? "
|
|||
|
s := genLike(searchText)
|
|||
|
queryList = []interface{}{s, s, s, cooperateStatus}
|
|||
|
switch platform {
|
|||
|
case entity.BINGING_PLATFORM_OPER:
|
|||
|
query += " AND binding.platform = ? and binding.group_id = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
queryList = append(queryList, "")
|
|||
|
case entity.BINGING_PLATFORM_ORGAN:
|
|||
|
query += " AND binding.platform = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
default:
|
|||
|
query += " AND ( ( binding.platform = ? AND binding.group_id = ? ) OR ( binding.platform = ? ) )"
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_OPER)
|
|||
|
queryList = append(queryList, "")
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}
|
|||
|
} else {
|
|||
|
query = "(binding.name LIKE ? OR binding.group_name LIKE ? OR bundle_info.bundle_id LIKE ?) "
|
|||
|
s := genLike(searchText)
|
|||
|
queryList = []interface{}{s, s, s}
|
|||
|
switch platform {
|
|||
|
case entity.BINGING_PLATFORM_OPER:
|
|||
|
query += " AND binding.platform = ? and binding.group_id = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
queryList = append(queryList, "")
|
|||
|
case entity.BINGING_PLATFORM_ORGAN:
|
|||
|
query += " AND binding.platform = ?"
|
|||
|
queryList = append(queryList, platform)
|
|||
|
default:
|
|||
|
query += " AND ( ( binding.platform = ? AND binding.group_id = ? ) OR ( binding.platform = ? ) )"
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_OPER)
|
|||
|
queryList = append(queryList, "")
|
|||
|
queryList = append(queryList, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}
|
|||
|
}
|
|||
|
resultArr := []BindingsResult{}
|
|||
|
/*err := mysql.MysqlDB.Table(dao.SDK_DATA_OPEN_INFO_C_NAME).Debug().Select("sum(app_open_count) as app_open_count, sum(total_app_stay_time) as total_app_stay_time, sum(app_close_count) as app_close_count, day_time").
|
|||
|
Where(query, args...).Group("day_time").Order("day_time").
|
|||
|
Scan(&resultArr).Error*/
|
|||
|
|
|||
|
err := DB.Debug().Model(&BindingMysql{}).
|
|||
|
Joins("LEFT JOIN `bundle_info` ON `binding`.`binding_id` = `bundle_info`.`binding_id` ").
|
|||
|
Select("binding.binding_id").
|
|||
|
Where(query, queryList...).
|
|||
|
Group("binding.binding_id").
|
|||
|
Scan(&resultArr).Error
|
|||
|
|
|||
|
/*err := DB.Debug().Model(&BindingMysql{}).Preload("BundleInfos").
|
|||
|
Joins("LEFT JOIN `bundle_info` `BundleInfos` ON `binding`.`binding_id` = `BundleInfos`.`binding_id` ").
|
|||
|
Select("binding.*,GROUP_CONCAT(BundleInfos.bundle_id) AS `bundle_ids`").
|
|||
|
Group("binding.binding_id").
|
|||
|
Having(query, queryList...).
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error*/
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
|
|||
|
fmt.Printf("resultArr = %s\n", utility.InterfaceToJsonString(resultArr))
|
|||
|
/*t := DB.Model(&BindingMysql{}).Joins("LEFT JOIN `bundle_info` `BundleInfos` ON `binding`.`binding_id` = `BundleInfos`.`binding_id`").
|
|||
|
Select("binding.*,GROUP_CONCAT(BundleInfos.bundle_id) AS `bundle_ids`").
|
|||
|
Group("binding.binding_id").
|
|||
|
Having(query, queryList...)
|
|||
|
err = DB.Debug().Table("(?) t", t).Count(&total).Error*/
|
|||
|
|
|||
|
t := DB.Model(&BindingMysql{}).Joins("LEFT JOIN `bundle_info` ON `binding`.`binding_id` = `bundle_info`.`binding_id`").
|
|||
|
Select("binding.binding_id").
|
|||
|
Where(query, queryList...).
|
|||
|
Group("binding.binding_id")
|
|||
|
err = DB.Debug().Table("(?) t", t).Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
|
|||
|
bindingIds := []string{}
|
|||
|
for _, id := range resultArr {
|
|||
|
bindingIds = append(bindingIds, id.BindingId)
|
|||
|
}
|
|||
|
query = "binding_id in (?)"
|
|||
|
queryList = []interface{}{bindingIds}
|
|||
|
|
|||
|
err = DB.Model(&BindingMysql{}).
|
|||
|
//Preload("BundleInfos").
|
|||
|
Where(query, queryList...).
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, v := range list {
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, v.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
v.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
v.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(v))
|
|||
|
}
|
|||
|
return bindings, int(total), nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindingsByAppId(ctx context.Context, pageSize int, pageNo int, appId string) ([]entity.Binding, int, error) {
|
|||
|
list := make([]BindingMysql, 0)
|
|||
|
var total int64
|
|||
|
|
|||
|
err := DB.Debug().Model(&BindingMysql{}).
|
|||
|
//Preload("BundleInfos").Preload("AppInfos").
|
|||
|
Where("link_app_infos.app_id = ?", appId).
|
|||
|
Select("DISTINCT(binding.id), binding.*").
|
|||
|
Joins("left join bundle_info on binding.binding_id = bundle_info.binding_id").
|
|||
|
Joins("left join link_app_infos on binding.binding_id = link_app_infos.binding_id").
|
|||
|
Order("binding.created_info_at DESC").
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
|
|||
|
err = DB.Debug().Model(&BindingMysql{}).
|
|||
|
//Preload("BundleInfos").Preload("AppInfos").
|
|||
|
Where("link_app_infos.app_id = ?", appId).
|
|||
|
Select("DISTINCT(binding.id), binding.*").
|
|||
|
Joins("left join bundle_info on binding.binding_id = bundle_info.binding_id").
|
|||
|
Joins("left join link_app_infos on binding.binding_id = link_app_infos.binding_id").
|
|||
|
Order("binding.created_info_at DESC").
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, v := range list {
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, v.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
v.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
v.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(v))
|
|||
|
}
|
|||
|
return bindings, int(total), nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetDevListBinding(ctx context.Context, pageSize int, pageNo int, sort string, searchText string, pullType string, groupId string, bindStatus string, platform int) ([]entity.Binding, int, error) {
|
|||
|
bindingMysqls := make([]BindingMysql, 0)
|
|||
|
var sortColumn string
|
|||
|
switch sort {
|
|||
|
case "-created":
|
|||
|
sortColumn = "created_info_at DESC" //按创建时间排序
|
|||
|
case "-expire":
|
|||
|
sortColumn = "expire DESC" //按过期时间倒序排序
|
|||
|
case "expire":
|
|||
|
sortColumn = "expire ASC" //按过期时间正序排序
|
|||
|
default:
|
|||
|
sortColumn = "created_info_at DESC" //按创建时间倒序排序
|
|||
|
}
|
|||
|
|
|||
|
query := "group_id = ? "
|
|||
|
args := []interface{}{groupId}
|
|||
|
|
|||
|
switch pullType {
|
|||
|
case "recently-expire":
|
|||
|
beginData := time.Now().UnixNano() / 1e6
|
|||
|
endData := time.Now().AddDate(0, 0, 30).UnixNano() / 1e6
|
|||
|
query = query + "AND expire > ? and expire < ? "
|
|||
|
args = append(args, beginData, endData)
|
|||
|
}
|
|||
|
|
|||
|
switch bindStatus {
|
|||
|
case "Valid":
|
|||
|
query = query + "AND cooperate_status_value = ? "
|
|||
|
args = append(args, entity.StBindValid)
|
|||
|
case "Invalid":
|
|||
|
query = query + "AND cooperate_status_value = ? "
|
|||
|
args = append(args, entity.StBindInvalid)
|
|||
|
}
|
|||
|
|
|||
|
if searchText != "" {
|
|||
|
query += "AND name LIKE ? "
|
|||
|
args = append(args, "%"+searchText+"%")
|
|||
|
}
|
|||
|
|
|||
|
switch platform {
|
|||
|
case entity.BINGING_PLATFORM_OPER:
|
|||
|
query += "AND platform = ? "
|
|||
|
args = append(args, platform)
|
|||
|
case entity.BINGING_PLATFORM_ORGAN:
|
|||
|
query += "AND platform = ? "
|
|||
|
args = append(args, platform)
|
|||
|
default:
|
|||
|
query += "AND ( ( platform = ? ) OR ( platform = ? ) ) "
|
|||
|
args = append(args, entity.BINGING_PLATFORM_OPER)
|
|||
|
args = append(args, entity.BINGING_PLATFORM_ORGAN)
|
|||
|
}
|
|||
|
|
|||
|
var total int64
|
|||
|
err := DB.Model(&BindingMysql{}).
|
|||
|
Where(query, args...).
|
|||
|
//Preload("BundleInfos").
|
|||
|
//Preload("AppInfos").
|
|||
|
Count(&total).
|
|||
|
Order(sortColumn).
|
|||
|
Offset((pageNo - 1) * pageSize).Limit(pageSize).
|
|||
|
Find(&bindingMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, bindingMysql := range bindingMysqls {
|
|||
|
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, bindingMysql.BindingID)
|
|||
|
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
bindingMysql.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
bindingMysql.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(bindingMysql))
|
|||
|
}
|
|||
|
|
|||
|
return bindings, int(total), err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBundleInfoAndLinkAppInfo(ctx context.Context, bindingId string) ([]BundleInfo, []LinkAppInfo, error) {
|
|||
|
tmpQuery := "binding_id = ?"
|
|||
|
tmpArgs := []interface{}{bindingId}
|
|||
|
|
|||
|
var bundleInfos []BundleInfo
|
|||
|
err := DB.Model(&BundleInfo{}).Where(tmpQuery, tmpArgs...).Find(&bundleInfos).Error
|
|||
|
|
|||
|
var linkAppInfos []LinkAppInfo
|
|||
|
err = DB.Model(&LinkAppInfo{}).Where(tmpQuery, tmpArgs...).Find(&linkAppInfos).Error
|
|||
|
|
|||
|
return bundleInfos, linkAppInfos, err
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetBindingBySdkKey(ctx context.Context, sdkKey string) (*entity.Binding, error) {
|
|||
|
query := "sdk_key = ?"
|
|||
|
args := []interface{}{sdkKey}
|
|||
|
|
|||
|
bundleInfoMysql := BundleInfo{}
|
|||
|
err := DB.Model(&BundleInfo{}).Where(query, args...).First(&bundleInfoMysql).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
return b.GetInfo(ctx, bundleInfoMysql.BindingId)
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) ListAutoBindAppBinding(ctx context.Context, groupId string) ([]string, error) {
|
|||
|
query := "auto_bind = ? and platform = ? and group_id = ?"
|
|||
|
args := []interface{}{1, entity.BINGING_PLATFORM_OPER, groupId}
|
|||
|
|
|||
|
bindingMysqls := make([]BindingMysql, 0)
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).Find(&bindingMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
result := []string{}
|
|||
|
for _, binding := range bindingMysqls {
|
|||
|
result = append(result, binding.BindingID)
|
|||
|
}
|
|||
|
return result, nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) ListCopyOperBinding(ctx context.Context, bindingId string) ([]string, []entity.Binding, error) {
|
|||
|
query := "platform = ? and from_binding_id = ?"
|
|||
|
args := []interface{}{entity.BINGING_PLATFORM_OPER, bindingId}
|
|||
|
|
|||
|
bindingMysqls := make([]BindingMysql, 0)
|
|||
|
err := DB.Model(&BindingMysql{}).Where(query, args...).Find(&bindingMysqls).Error
|
|||
|
if err != nil {
|
|||
|
return nil, nil, err
|
|||
|
}
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
result := []string{}
|
|||
|
for _, binding := range bindingMysqls {
|
|||
|
result = append(result, binding.BindingID)
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(binding))
|
|||
|
}
|
|||
|
return result, bindings, nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) ListBindings(ctx context.Context, groupId string, searchText string, pageNo int, pageSize int) ([]entity.Binding, int, error) {
|
|||
|
log.Infof("ListBindings req,groupId:[%s],searchText:[%s],pageNo:[%d],pageSize:[%d]", searchText, groupId, pageNo, pageSize)
|
|||
|
var (
|
|||
|
sortColumn = "binding.created_info_at DESC"
|
|||
|
list = make([]BindingMysql, 0)
|
|||
|
total int64
|
|||
|
)
|
|||
|
|
|||
|
if searchText == "" {
|
|||
|
if groupId != "" {
|
|||
|
err := DB.Debug().
|
|||
|
Where("binding.group_id=?", groupId).
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
err = DB.Model(&BindingMysql{}).
|
|||
|
Where("binding.group_id=?", groupId).
|
|||
|
Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
} else {
|
|||
|
err := DB.Debug().
|
|||
|
Where("binding.group_id <> ?", "").
|
|||
|
//Preload("BundleInfos").
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
err = DB.Model(&BindingMysql{}).
|
|||
|
Where("binding.group_id <> ?", "").
|
|||
|
Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
query := "(binding.name LIKE ? OR binding.group_name LIKE ? OR bundle_ids LIKE ?) "
|
|||
|
s := genLike(searchText)
|
|||
|
queryList := []interface{}{s, s, s}
|
|||
|
if groupId != "" {
|
|||
|
query += " AND binding.group_id=? "
|
|||
|
queryList = append(queryList, groupId)
|
|||
|
} else {
|
|||
|
query += " AND binding.group_id <> ? "
|
|||
|
queryList = append(queryList, "")
|
|||
|
}
|
|||
|
|
|||
|
err := DB.Debug().Model(&BindingMysql{}).
|
|||
|
//Select("select * from binding").
|
|||
|
//Preload("BundleInfos").
|
|||
|
Joins("LEFT JOIN `bundle_info` ON `binding`.`binding_id` = `bundle_info`.`binding_id` ").
|
|||
|
Where("binding.name LIKE ? OR binding.group_name LIKE ? OR bundle_info.bundle_id LIKE ?", s, s, s).
|
|||
|
//Select("binding.*,GROUP_CONCAT(bundle_id.bundle_id) AS `bundle_ids`").
|
|||
|
Group("binding.id").
|
|||
|
//Having(query, queryList...).
|
|||
|
Order(sortColumn).
|
|||
|
Offset(genOffset(pageNo, pageSize)).Limit(pageSize).
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
t := DB.Model(&BindingMysql{}).
|
|||
|
Joins("LEFT JOIN `bundle_info` ON `binding`.`binding_id` = `bundle_info`.`binding_id`").
|
|||
|
//Select("binding.*,GROUP_CONCAT(bundle_info.bundle_id) AS `bundle_ids`").
|
|||
|
Group("binding.id").
|
|||
|
Where("binding.name LIKE ? OR binding.group_name LIKE ? OR bundle_info.bundle_id LIKE ?", s, s, s)
|
|||
|
//Having(query, queryList...)
|
|||
|
err = DB.Debug().Table("(?) t", t).Count(&total).Error
|
|||
|
if err != nil {
|
|||
|
return nil, 0, err
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, v := range list {
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, v.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
v.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
v.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(v))
|
|||
|
}
|
|||
|
return bindings, int(total), nil
|
|||
|
//
|
|||
|
//db := DB.Model(&BindingMysql{})
|
|||
|
//if groupId != "" {
|
|||
|
// db = db.Where("binding.group_id = ?", groupId)
|
|||
|
//}
|
|||
|
//
|
|||
|
//if searchText != "" {
|
|||
|
// db = db.Where("binding.name LIKE ?", searchText).
|
|||
|
// Or("binding.group_name LIKE ?", searchText).
|
|||
|
// Or("bundle_info.bundle_id LIKE ?", searchText)
|
|||
|
//}
|
|||
|
//
|
|||
|
//var total int
|
|||
|
//bindingMysqls := make([]BindingMysql, 0)
|
|||
|
//db = db.
|
|||
|
// Select("DISTINCT(binding.id), binding.*").
|
|||
|
// Joins("LEFT JOIN bundle_info on binding.binding_id = bundle_info.binding_id").
|
|||
|
// Joins("LEFT JOIN link_app_infos on binding.binding_id = link_app_infos.binding_id").
|
|||
|
// Find(&bindingMysqls)
|
|||
|
//total = len(bindingMysqls)
|
|||
|
//
|
|||
|
//err := db.Order("created_info_at desc").Offset((pageNo - 1) * pageSize).Limit(pageSize).Find(&bindingMysqls).Error
|
|||
|
//if err != nil {
|
|||
|
// return nil, 0, err
|
|||
|
//}
|
|||
|
//bindings := make([]entity.Binding, 0)
|
|||
|
//for _, bindingMysql := range bindingMysqls {
|
|||
|
// bindings = append(bindings, convertBindingMysqlToBinding(bindingMysql))
|
|||
|
//}
|
|||
|
//return bindings, int(total), nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) GetAllAssBinds(ctx context.Context, appId string) ([]entity.Binding, error) {
|
|||
|
//bindings := make([]BindingMongo, 0)
|
|||
|
//err := bindingTable.OnlyGetAll(ctx, bson.M{"app_infos.app_id": 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
|
|||
|
list := make([]BindingMysql, 0)
|
|||
|
err := DB.Debug().Model(&BindingMysql{}).
|
|||
|
//Preload("BundleInfos").Preload("AppInfos").
|
|||
|
Where("link_app_infos.app_id = ?", appId).
|
|||
|
Select("DISTINCT(binding.id), binding.*").
|
|||
|
Joins("left join bundle_info on binding.binding_id = bundle_info.binding_id").
|
|||
|
Joins("left join link_app_infos on binding.binding_id = link_app_infos.binding_id").
|
|||
|
Find(&list).Error
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
bindings := make([]entity.Binding, 0)
|
|||
|
for _, v := range list {
|
|||
|
bundleInfos, linkAppInfos, _ := b.GetBundleInfoAndLinkAppInfo(ctx, v.BindingID)
|
|||
|
if len(linkAppInfos) > 0 {
|
|||
|
v.AppInfos = linkAppInfos
|
|||
|
}
|
|||
|
if len(bundleInfos) > 0 {
|
|||
|
v.BundleInfos = bundleInfos
|
|||
|
}
|
|||
|
bindings = append(bindings, convertBindingMysqlToBinding(v))
|
|||
|
}
|
|||
|
return bindings, nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateRelatedBindingCooperate(ctx context.Context, bindingId string, status entity.Status, specificStatus entity.SpecificStatus, cooperate bool) error {
|
|||
|
query := "from_binding_id = ? and platform = ?"
|
|||
|
args := []interface{}{bindingId, entity.BINGING_PLATFORM_OPER}
|
|||
|
params := map[string]interface{}{}
|
|||
|
if cooperate {
|
|||
|
params = map[string]interface{}{
|
|||
|
"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 {
|
|||
|
params = map[string]interface{}{
|
|||
|
"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,
|
|||
|
}
|
|||
|
}
|
|||
|
err := DB.Model(&BindingMysqlV2{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(params).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBundleIdIsForbidden(ctx context.Context, bundleId string) error {
|
|||
|
query := "binary bundle_id= ?"
|
|||
|
args := []interface{}{bundleId}
|
|||
|
|
|||
|
params := map[string]interface{}{
|
|||
|
"is_forbidden": 1,
|
|||
|
}
|
|||
|
err := DB.Model(&BundleInfo{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(params).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBundleIdPlatform(ctx context.Context, bundleId, platform string) error {
|
|||
|
query := "binary bundle_id= ?"
|
|||
|
args := []interface{}{bundleId}
|
|||
|
|
|||
|
params := map[string]interface{}{
|
|||
|
"remark": platform,
|
|||
|
}
|
|||
|
err := DB.Model(&BundleInfo{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(params).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) NotFound(err error) bool {
|
|||
|
return err == gorm.ErrRecordNotFound || errors.Is(err, gorm.ErrRecordNotFound)
|
|||
|
}
|
|||
|
|
|||
|
func (b BindingByMysqlRepo) UpdateBundleBindingId(ctx context.Context, bundleId, bindingId, toBindingId string) error {
|
|||
|
query := "binding_id = ? and bundle_id= ?"
|
|||
|
args := []interface{}{bindingId, bundleId}
|
|||
|
|
|||
|
params := map[string]interface{}{
|
|||
|
"binding_id": toBindingId,
|
|||
|
}
|
|||
|
err := DB.Model(&BundleInfo{}).Debug().
|
|||
|
Where(query, args...).
|
|||
|
Updates(params).Error
|
|||
|
if err != nil {
|
|||
|
return err
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func convertBindingMysqlToBinding(info BindingMysql) entity.Binding {
|
|||
|
result := entity.Binding{}
|
|||
|
|
|||
|
bundleInfos := make([]entity.BundleInfo, 0)
|
|||
|
for _, v := range info.BundleInfos {
|
|||
|
item := entity.BundleInfo{
|
|||
|
//Id: v.Id,
|
|||
|
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, item)
|
|||
|
}
|
|||
|
|
|||
|
createInfo := entity.CreatedInfo{
|
|||
|
CreatedBy: info.CreatedInfoBy,
|
|||
|
CreatedAt: info.CreatedInfoAt,
|
|||
|
CreatedAccount: info.CreatedInfoAccount,
|
|||
|
}
|
|||
|
|
|||
|
cooperateStatus := entity.Status{
|
|||
|
Value: info.CooperateStatusValue,
|
|||
|
Reason: info.CooperateStatusReason,
|
|||
|
LastUpdated: info.CooperateStatusLastUpdated,
|
|||
|
ModifiedBy: info.CooperateStatusModifiedBy,
|
|||
|
}
|
|||
|
|
|||
|
cooperateValidStatus := entity.SpecificStatus{
|
|||
|
Reason: info.CooperateValidStatusReason,
|
|||
|
LastUpdated: info.CooperateValidStatusLastUpdated,
|
|||
|
ModifiedBy: info.CooperateValidStatusModifiedBy,
|
|||
|
}
|
|||
|
|
|||
|
cooperateInvalidStatus := entity.SpecificStatus{
|
|||
|
Reason: info.CooperateInvalidStatusReason,
|
|||
|
LastUpdated: info.CooperateInvalidStatusLastUpdated,
|
|||
|
ModifiedBy: info.CooperateInvalidStatusModifiedBy,
|
|||
|
}
|
|||
|
|
|||
|
//var appInfos []entity.AppInfo
|
|||
|
//json.Unmarshal([]byte(bindingMysql.AppInfos), &appInfos)
|
|||
|
|
|||
|
result.BindingID = info.BindingID
|
|||
|
result.Name = info.Name
|
|||
|
result.BundleInfos = bundleInfos
|
|||
|
result.CreatedInfo = createInfo
|
|||
|
result.GroupID = info.GroupID
|
|||
|
result.GroupName = info.GroupName
|
|||
|
result.CooperateStatus = cooperateStatus
|
|||
|
result.CooperateValidStatus = cooperateValidStatus
|
|||
|
result.CooperateInvalidStatus = cooperateInvalidStatus
|
|||
|
//result.AppInfos = appInfos
|
|||
|
result.Owner = info.Owner
|
|||
|
result.Expire = info.Expire
|
|||
|
result.ApiServer = info.ApiServer
|
|||
|
result.AppInfos = make([]entity.AppInfo, 0)
|
|||
|
for _, v := range info.AppInfos {
|
|||
|
item := entity.AppInfo{
|
|||
|
//Id: v.Id,
|
|||
|
AppID: v.AppId,
|
|||
|
AssociatedAt: v.AssociatedAt,
|
|||
|
AssociatedBy: v.AssociatedBy,
|
|||
|
}
|
|||
|
result.AppInfos = append(result.AppInfos, item)
|
|||
|
}
|
|||
|
|
|||
|
result.GroupID = info.GroupID
|
|||
|
result.PlatForm = info.PlatForm
|
|||
|
result.AutoBind = info.AutoBind
|
|||
|
result.HiddenBundle = info.HiddenBundle
|
|||
|
result.FromBindingID = info.FromBindingID
|
|||
|
return result
|
|||
|
}
|
|||
|
|
|||
|
func convertBindingToBindingMysql(binding *entity.Binding) BindingMysql {
|
|||
|
result := BindingMysql{}
|
|||
|
|
|||
|
result.BindingID = binding.BindingID
|
|||
|
result.Name = binding.Name
|
|||
|
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
|
|||
|
result.AppInfos = make([]LinkAppInfo, 0)
|
|||
|
for _, v := range binding.AppInfos {
|
|||
|
item := LinkAppInfo{
|
|||
|
//Id: v.Id,
|
|||
|
BindingId: binding.BindingID,
|
|||
|
AppId: v.AppID,
|
|||
|
AssociatedAt: v.AssociatedAt,
|
|||
|
AssociatedBy: v.AssociatedBy,
|
|||
|
}
|
|||
|
result.AppInfos = append(result.AppInfos, item)
|
|||
|
}
|
|||
|
result.BundleInfos = make([]BundleInfo, 0)
|
|||
|
for _, v := range binding.BundleInfos {
|
|||
|
item := BundleInfo{
|
|||
|
//Id: v.Id,
|
|||
|
BindingId: binding.BindingID,
|
|||
|
GroupID: binding.GroupID,
|
|||
|
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,
|
|||
|
}
|
|||
|
result.BundleInfos = append(result.BundleInfos, item)
|
|||
|
}
|
|||
|
result.Owner = binding.Owner
|
|||
|
result.Expire = binding.Expire
|
|||
|
result.ApiServer = binding.ApiServer
|
|||
|
result.GroupID = binding.GroupID
|
|||
|
result.PlatForm = binding.PlatForm
|
|||
|
result.AutoBind = binding.AutoBind
|
|||
|
result.HiddenBundle = binding.HiddenBundle
|
|||
|
result.FromBindingID = binding.FromBindingID
|
|||
|
return result
|
|||
|
}
|
|||
|
|
|||
|
func convertBindingMysqlToBindingMysqlV2(binding *BindingMysql) BindingMysqlV2 {
|
|||
|
result := BindingMysqlV2{}
|
|||
|
|
|||
|
result.BindingID = binding.BindingID
|
|||
|
result.Name = binding.Name
|
|||
|
result.CreatedInfoBy = binding.CreatedInfoBy
|
|||
|
result.CreatedInfoAt = binding.CreatedInfoAt
|
|||
|
result.CreatedInfoAccount = binding.CreatedInfoAccount
|
|||
|
result.GroupID = binding.GroupID
|
|||
|
result.GroupName = binding.GroupName
|
|||
|
result.CooperateStatusValue = binding.CooperateStatusValue
|
|||
|
result.CooperateStatusReason = binding.CooperateStatusReason
|
|||
|
result.CooperateStatusLastUpdated = binding.CooperateStatusLastUpdated
|
|||
|
result.CooperateStatusModifiedBy = binding.CooperateStatusModifiedBy
|
|||
|
result.CooperateValidStatusReason = binding.CooperateValidStatusReason
|
|||
|
result.CooperateValidStatusLastUpdated = binding.CooperateValidStatusLastUpdated
|
|||
|
result.CooperateValidStatusModifiedBy = binding.CooperateValidStatusModifiedBy
|
|||
|
result.CooperateInvalidStatusReason = binding.CooperateInvalidStatusReason
|
|||
|
result.CooperateInvalidStatusLastUpdated = binding.CooperateInvalidStatusLastUpdated
|
|||
|
result.CooperateInvalidStatusModifiedBy = binding.CooperateInvalidStatusModifiedBy
|
|||
|
result.Owner = binding.Owner
|
|||
|
result.Expire = binding.Expire
|
|||
|
result.ApiServer = binding.ApiServer
|
|||
|
result.GroupID = binding.GroupID
|
|||
|
result.PlatForm = binding.PlatForm
|
|||
|
result.AutoBind = binding.AutoBind
|
|||
|
result.HiddenBundle = binding.HiddenBundle
|
|||
|
result.FromBindingID = binding.FromBindingID
|
|||
|
return result
|
|||
|
}
|
|||
|
|
|||
|
func convertBundleInfoToBundleInfoMysql(bindId, groupId string, bundleInfo entity.BundleInfo) BundleInfo {
|
|||
|
result := BundleInfo{}
|
|||
|
|
|||
|
result.BindingId = bindId
|
|||
|
result.GroupID = groupId
|
|||
|
result.BundleID = bundleInfo.BundleID
|
|||
|
result.Remark = bundleInfo.Remark
|
|||
|
result.SDKKey = bundleInfo.SDKKey
|
|||
|
result.SDKID = bundleInfo.SDKID
|
|||
|
result.IsFirstCreate = bundleInfo.IsFirstCreate
|
|||
|
result.CreatedAt = bundleInfo.CreatedAt
|
|||
|
result.CreatedAccount = bundleInfo.CreatedAccount
|
|||
|
result.CreatedBy = bundleInfo.CreatedBy
|
|||
|
result.IsForbidden = bundleInfo.IsForbidden
|
|||
|
return result
|
|||
|
}
|
|||
|
|
|||
|
func convertBundleInfoMysqlToBundleInfo(bundleInfoMysql BundleInfo) entity.BundleInfo {
|
|||
|
result := entity.BundleInfo{}
|
|||
|
|
|||
|
result.BundleID = bundleInfoMysql.BundleID
|
|||
|
result.Remark = bundleInfoMysql.Remark
|
|||
|
result.SDKKey = bundleInfoMysql.SDKKey
|
|||
|
result.SDKID = bundleInfoMysql.SDKID
|
|||
|
result.IsFirstCreate = bundleInfoMysql.IsFirstCreate
|
|||
|
result.CreatedAt = bundleInfoMysql.CreatedAt
|
|||
|
result.CreatedAccount = bundleInfoMysql.CreatedAccount
|
|||
|
result.CreatedBy = bundleInfoMysql.CreatedBy
|
|||
|
|
|||
|
return result
|
|||
|
}
|