init: create project

This commit is contained in:
kallydev
2020-11-28 18:32:36 +08:00
commit a970ad7653
83 changed files with 24196 additions and 0 deletions

View File

@ -0,0 +1,21 @@
package database
import "context"
type Database interface {
QueryByQQNumber(ctx context.Context, qqNumber int64) ([]Model, error)
QueryByEmail(ctx context.Context, email string) ([]Model, error)
QueryByIDNumber(ctx context.Context, idNumber string) ([]Model, error)
QueryByPhoneNumber(ctx context.Context, phoneNumber int64) ([]Model, error)
}
type Model interface {
GetName() (name string, valid bool)
GetNickname() (nickname string, valid bool)
GetPassword() (password string, valid bool)
GetEmail() (email string, valid bool)
GetQQNumber() (qqNumber int64, valid bool)
GetIDNumber() (idNumber string, valid bool)
GetPhoneNumber() (phoneNumber int64, valid bool)
GetAddress() (address string, valid bool)
}

129
server/database/table/jd.go Normal file
View File

@ -0,0 +1,129 @@
package table
import (
"context"
"database/sql"
"github.com/kallydev/privacy/database"
"github.com/kallydev/privacy/ent"
"github.com/kallydev/privacy/ent/jdmodel"
)
var (
_ database.Database = &JDDatabase{}
_ database.Model = &JDModel{}
)
type JDDatabase struct {
Client *ent.Client
}
func (db *JDDatabase) QueryByQQNumber(ctx context.Context, qqNumber int64) ([]database.Model, error) {
return []database.Model{}, nil
}
func (db *JDDatabase) QueryByEmail(ctx context.Context, email string) ([]database.Model, error) {
models, err := db.Client.JDModel.
Query().
Where(jdmodel.EmailEQ(email)).
All(ctx)
if err != nil {
return nil, err
}
return entModelsToJDModels(models), nil
}
func (db *JDDatabase) QueryByIDNumber(ctx context.Context, idNumber string) ([]database.Model, error) {
models, err := db.Client.JDModel.
Query().
Where(jdmodel.IDNumberEQ(idNumber)).
All(ctx)
if err != nil {
return nil, err
}
return entModelsToJDModels(models), nil
}
func (db *JDDatabase) QueryByPhoneNumber(ctx context.Context, phoneNumber int64) ([]database.Model, error) {
models, err := db.Client.JDModel.
Query().
Where(jdmodel.PhoneNumberEQ(phoneNumber)).
All(ctx)
if err != nil {
return nil, err
}
return entModelsToJDModels(models), nil
}
type JDModel struct {
Name sql.NullString
Nickname sql.NullString
Password sql.NullString
Email sql.NullString
IDNumber sql.NullString
PhoneNumber sql.NullInt64
}
func (model *JDModel) GetName() (name string, valid bool) {
return model.Name.String, model.Name.Valid
}
func (model *JDModel) GetNickname() (nickname string, valid bool) {
return model.Nickname.String, model.Nickname.Valid
}
func (model *JDModel) GetPassword() (password string, valid bool) {
return model.Password.String, model.Password.Valid
}
func (model *JDModel) GetEmail() (email string, valid bool) {
return model.Email.String, model.Email.Valid
}
func (model *JDModel) GetQQNumber() (qqNumber int64, valid bool) {
return 0, false
}
func (model *JDModel) GetIDNumber() (idNumber string, valid bool) {
return model.IDNumber.String, model.IDNumber.Valid
}
func (model *JDModel) GetPhoneNumber() (phoneNumber int64, valid bool) {
return model.PhoneNumber.Int64, model.PhoneNumber.Valid
}
func (model *JDModel) GetAddress() (address string, valid bool) {
return "", false
}
func entModelsToJDModels(endModels []*ent.JDModel) []database.Model {
models := make([]database.Model, len(endModels))
for i, model := range endModels {
models[i] = &JDModel{
Name: sql.NullString{
String: model.Name,
Valid: model.Name != "",
},
Nickname: sql.NullString{
String: model.Nickname,
Valid: model.Nickname != "",
},
Password: sql.NullString{
String: model.Password,
Valid: model.Password != "",
},
Email: sql.NullString{
String: model.Email,
Valid: model.Email != "",
},
IDNumber: sql.NullString{
String: model.IDNumber,
Valid: model.IDNumber != "",
},
PhoneNumber: sql.NullInt64{
Int64: model.PhoneNumber,
Valid: model.PhoneNumber != 0,
},
}
}
return models
}

102
server/database/table/qq.go Normal file
View File

@ -0,0 +1,102 @@
package table
import (
"context"
"database/sql"
"github.com/kallydev/privacy/database"
"github.com/kallydev/privacy/ent"
"github.com/kallydev/privacy/ent/qqmodel"
)
var (
_ database.Database = &QQDatabase{}
_ database.Model = &QQModel{}
)
type QQDatabase struct {
Client *ent.Client
}
func (db *QQDatabase) QueryByQQNumber(ctx context.Context, qqNumber int64) ([]database.Model, error) {
models, err := db.Client.QQModel.
Query().
Where(qqmodel.QqNumberEQ(qqNumber)).
All(ctx)
if err != nil {
return nil, err
}
return entModelsToQQModels(models), nil
}
func (db *QQDatabase) QueryByEmail(ctx context.Context, email string) ([]database.Model, error) {
return []database.Model{}, nil
}
func (db *QQDatabase) QueryByIDNumber(ctx context.Context, idNumber string) ([]database.Model, error) {
return []database.Model{}, nil
}
func (db *QQDatabase) QueryByPhoneNumber(ctx context.Context, phoneNumber int64) ([]database.Model, error) {
models, err := db.Client.QQModel.
Query().
Where(qqmodel.PhoneNumberEQ(phoneNumber)).
All(ctx)
if err != nil {
return nil, err
}
return entModelsToQQModels(models), nil
}
type QQModel struct {
QQNumber sql.NullInt64
PhoneNumber sql.NullInt64
}
func (model *QQModel) GetName() (name string, valid bool) {
return "", false
}
func (model *QQModel) GetNickname() (nickname string, valid bool) {
return "", false
}
func (model *QQModel) GetPassword() (password string, valid bool) {
return "", false
}
func (model *QQModel) GetEmail() (email string, valid bool) {
return "", false
}
func (model *QQModel) GetQQNumber() (qqNumber int64, valid bool) {
return model.QQNumber.Int64, model.QQNumber.Valid
}
func (model *QQModel) GetIDNumber() (idNumber string, valid bool) {
return "", false
}
func (model *QQModel) GetPhoneNumber() (phoneNumber int64, valid bool) {
return model.PhoneNumber.Int64, model.PhoneNumber.Valid
}
func (model *QQModel) GetAddress() (address string, valid bool) {
return "", false
}
func entModelsToQQModels(endModels []*ent.QQModel) []database.Model {
models := make([]database.Model, len(endModels))
for i, model := range endModels {
models[i] = &QQModel{
QQNumber: sql.NullInt64{
Int64: model.QqNumber,
Valid: model.QqNumber != 0,
},
PhoneNumber: sql.NullInt64{
Int64: model.PhoneNumber,
Valid: model.PhoneNumber != 0,
},
}
}
return models
}

100
server/database/table/sf.go Normal file
View File

@ -0,0 +1,100 @@
package table
import (
"context"
"database/sql"
"github.com/kallydev/privacy/database"
"github.com/kallydev/privacy/ent"
"github.com/kallydev/privacy/ent/sfmodel"
)
var (
_ database.Database = &SFDatabase{}
_ database.Model = &SFModel{}
)
type SFDatabase struct {
Client *ent.Client
}
func (db *SFDatabase) QueryByQQNumber(ctx context.Context, qqNumber int64) ([]database.Model, error) {
return []database.Model{}, nil
}
func (db *SFDatabase) QueryByEmail(ctx context.Context, email string) ([]database.Model, error) {
return []database.Model{}, nil
}
func (db *SFDatabase) QueryByIDNumber(ctx context.Context, idNumber string) ([]database.Model, error) {
return []database.Model{}, nil
}
func (db *SFDatabase) QueryByPhoneNumber(ctx context.Context, phoneNumber int64) ([]database.Model, error) {
models, err := db.Client.SFModel.
Query().
Where(sfmodel.PhoneNumberEQ(phoneNumber)).
All(ctx)
if err != nil {
return nil, err
}
return entModelsToSFModels(models), nil
}
type SFModel struct {
Name sql.NullString
PhoneNumber sql.NullInt64
Address sql.NullString
}
func (model *SFModel) GetName() (name string, valid bool) {
return model.Name.String, model.Name.Valid
}
func (model *SFModel) GetNickname() (nickname string, valid bool) {
return "", false
}
func (model *SFModel) GetPassword() (password string, valid bool) {
return "", false
}
func (model *SFModel) GetEmail() (email string, valid bool) {
return "", false
}
func (model *SFModel) GetQQNumber() (qqNumber int64, valid bool) {
return 0, false
}
func (model *SFModel) GetIDNumber() (idNumber string, valid bool) {
return "", false
}
func (model *SFModel) GetPhoneNumber() (phoneNumber int64, valid bool) {
return model.PhoneNumber.Int64, model.PhoneNumber.Valid
}
func (model *SFModel) GetAddress() (address string, valid bool) {
return model.Address.String, model.Address.Valid
}
func entModelsToSFModels(endModels []*ent.SFModel) []database.Model {
models := make([]database.Model, len(endModels))
for i, model := range endModels {
models[i] = &SFModel{
Name: sql.NullString{
String: model.Name,
Valid: model.Name != "",
},
PhoneNumber: sql.NullInt64{
Int64: model.PhoneNumber,
Valid: model.PhoneNumber != 0,
},
Address: sql.NullString{
String: model.Address,
Valid: model.Name != "",
},
}
}
return models
}