作者 yangfu

fix

正在显示 63 个修改的文件 包含 306 行增加7443 行删除
[dev]
#数据库相关
data_source = "root:123456@tcp(192.168.100.102:3306)/opportunity?loc=Local"
data_source = "root:123456@tcp(127.0.0.1:3306)/opportunity?loc=Local"
#data_source = "root:sutianxia2015@tcp(115.29.205.99:3306)/ability_display"
#data_source = "root:root@tcp(localhost:3306)/ability_display?loc=Local"
#redis相关配置
redis_add_port = "192.168.100.102:6379"
redis_add_port = "127.0.0.1:6379"
redis_auth = "123456"
#sms相关配置
... ...
... ... @@ -184,7 +184,7 @@ func CheckToken(ctx *context.Context) (result bool) {
} else {
if rsp.UserInfo != nil {
//设置附加数据
ctx.Request.Header.Add("uid", fmt.Sprintf("%v", rsp.UserInfo.Uuid))
ctx.Request.Header.Add("uid", fmt.Sprintf("%v", rsp.UserInfo.UserId))
}
}
return
... ...
... ... @@ -3,27 +3,23 @@ package controllers
import (
"fmt"
"log"
"opp/protocol"
"reflect"
"testing"
"time"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/common"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/mybeego"
)
func Test_GenMessage(t *testing.T) {
input := []struct {
Rsp interface{}
Error error
Exceprt *mybeego.Message
Exceprt *protocol.ResponseMessage
}{
{Rsp: "test", Error: fmt.Errorf("test"), Exceprt: mybeego.NewMessage(1)},
{Rsp: "test-A", Error: common.NewErrorWithMsg(100, "test-A"), Exceprt: mybeego.NewErrMessage(100, "test-A")},
{Rsp: "test", Error: fmt.Errorf("test"), Exceprt: protocol.NewErrWithMessage(1, fmt.Errorf("test")).ParseToMessage()},
{Rsp: "test-A", Error: protocol.NewErrWithMessage(100, fmt.Errorf("test-A")), Exceprt: protocol.NewErrWithMessage(100, fmt.Errorf("test-A")).ParseToMessage()},
}
for i := range input {
o := input[i]
out := DefaultController.GenMessage(o.Rsp, o.Error)
out := protocol.NewReturnResponse(o.Rsp, o.Error)
if !reflect.DeepEqual(out, o.Exceprt) {
log.Fatal("not equal ", out, o.Exceprt)
}
... ... @@ -34,16 +30,12 @@ func Benchmark_GenMessage(b *testing.B) {
o := struct {
Rsp interface{}
Error error
Exceprt *mybeego.Message
}{Rsp: "test", Error: fmt.Errorf("test"), Exceprt: mybeego.NewMessage(1)}
Exceprt *protocol.ResponseMessage
}{Rsp: "test", Error: fmt.Errorf("test"), Exceprt: protocol.NewErrWithMessage(1, fmt.Errorf("test-A")).ParseToMessage()}
for i := 0; i < b.N; i++ {
out := DefaultController.GenMessage(o.Rsp, o.Error)
out := protocol.NewReturnResponse(o.Rsp, o.Error)
if out.Errmsg != o.Exceprt.Errmsg || out.Errno != o.Exceprt.Errno {
log.Fatal("not equal ", out, o.Exceprt)
}
}
}
func TestXXX(t *testing.T) {
t.Log(time.Now())
}
... ...
package repository
import "opp/models"
type IConfigRepository interface {
GetCfgClient(clintId, clientSecret string) (v *models.CfgClient, err error)
}
type ConfigRepository struct{}
func (r *ConfigRepository) GetCfgClient(clintId, clientSecret string) (v *models.CfgClient, err error) {
return models.GetCfgClient(clintId, clientSecret)
}
package repository
import "opp/models"
type ConfigMockeRepository struct{}
func (r *ConfigMockeRepository) GetCfgClient(clintId, clientSecret string) (v *models.CfgClient, err error) {
return
}
... ... @@ -2,34 +2,25 @@ package repository
import "sync"
var(
mutex sync.RWMutex
DefaultUserRepository IUserRepository
DefaultConfigRepository IConfigRepository
//全局
var (
once sync.Once
User IUserRepository
UserAuth IUserAuthRepository
)
func init(){
DefaultUserRepository = UserRepositoryFactory()
func init() {
InitRepository()
}
func UserRepositoryFactory()IUserRepository{
if DefaultUserRepository==nil{
mutex.Lock()
defer mutex.Unlock()
if DefaultUserRepository==nil{
DefaultUserRepository = &UserRepository{}
}
}
return DefaultUserRepository
func InitRepository() {
User = &UserRepository{}
UserAuth = &UserAuthRepository{}
}
func ConfigRepositoryFactory()IConfigRepository{
if DefaultConfigRepository==nil{
mutex.Lock()
defer mutex.Unlock()
if DefaultConfigRepository==nil{
DefaultConfigRepository = &ConfigRepository{}
}
}
return DefaultConfigRepository
func InitRepositoryMock() {
once.Do(func() {
User = &UserMockRepository{}
UserAuth = &UserAuthMockRepository{}
})
}
... ...
... ... @@ -3,35 +3,23 @@ package repository
import "opp/models"
type IUserRepository interface {
GetUsersByMobile(mobile string) (v *models.Users, err error)
GetUserInfoByMobile(mobile string) (v *models.UserInfo, err error)
UpdateUserInfoById(m *models.UserInfo) (err error)
GetUserInfoByAuthCode(authCode string) (v *models.UserInfo, err error)
GetUserInfoByRefreshToken(refreshToken string) (v *models.UserInfo, err error)
GetUsersById(uid int64) (v *models.User, err error)
GetUsersByMobile(mobile string) (v *models.User, err error)
UpdateUserInfo(m *models.User) (err error)
}
func assertImplement() {
var _ IUserRepository = (*UserRepository)(nil)
}
var _ IUserRepository = (*UserRepository)(nil)
type UserRepository struct{}
func (r *UserRepository) GetUsersByMobile(mobile string) (v *models.Users, err error) {
return models.GetUsersByMobile(mobile)
}
func (r *UserRepository) GetUserInfoByMobile(mobile string) (v *models.UserInfo, err error) {
return models.GetUserInfoByMobile(mobile)
func (r *UserRepository) GetUsersById(uid int64) (v *models.User, err error) {
return models.GetUsersById(uid)
}
func (r *UserRepository) UpdateUserInfoById(m *models.UserInfo) (err error) {
return models.UpdateUserInfoById(m)
}
func (r *UserRepository) GetUserInfoByAuthCode(authCode string) (v *models.UserInfo, err error) {
return models.GetUserInfoByAuthCode(authCode)
func (r *UserRepository) GetUsersByMobile(mobile string) (v *models.User, err error) {
return models.GetUsersByMobile(mobile)
}
func (r *UserRepository) GetUserInfoByRefreshToken(refreshToken string) (v *models.UserInfo, err error) {
return models.GetUserInfoByRefreshToken(refreshToken)
func (r *UserRepository) UpdateUserInfo(m *models.User) (err error) {
return models.UpdateUsersById(m)
}
... ...
package repository
import "opp/models"
type IUserAuthRepository interface {
GetUserAuthByUserId(uid int64) (v *models.UserAuth, err error)
UpdateUserAuthById(m *models.UserAuth) (err error)
GetUserAuthByAuthCode(authCode string) (v *models.UserAuth, err error)
GetUserAuthByRefreshToken(refreshToken string) (v *models.UserAuth, err error)
GetUserAuthByToken(refreshToken string) (v *models.UserAuth, err error)
}
var _ IUserAuthRepository = (*UserAuthRepository)(nil)
type UserAuthRepository struct{}
func (r *UserAuthRepository) GetUserAuthByUserId(uid int64) (v *models.UserAuth, err error) {
return models.GetUserAuthByUserId(uid)
}
func (r *UserAuthRepository) UpdateUserAuthById(m *models.UserAuth) (err error) {
return models.UpdateUserAuthById(m)
}
func (r *UserAuthRepository) GetUserAuthByAuthCode(authCode string) (v *models.UserAuth, err error) {
return models.GetUserByAuthCode(authCode)
}
func (r *UserAuthRepository) GetUserAuthByRefreshToken(refreshToken string) (v *models.UserAuth, err error) {
return models.GetUserAuthByRefreshToken(refreshToken)
}
func (r *UserAuthRepository) GetUserAuthByToken(refreshToken string) (v *models.UserAuth, err error) {
return models.GetUserAuthByToken(refreshToken)
}
... ...
package repository
import "opp/models"
var userAuth = &models.UserAuth{
AuthCode: "897ca746f46b11e98771000c29ad8d6d",
AccessToken: "897ca746f46b11e98771000c29ad8d7d",
RefreshToken: "897ca746f46b11e98771000c29ad8d8d",
}
type UserAuthMockRepository struct{}
func (r *UserAuthMockRepository) GetUserAuthByUserId(uid int64) (v *models.UserAuth, err error) {
v = userAuth
return
}
func (r *UserAuthMockRepository) UpdateUserAuthById(m *models.UserAuth) (err error) {
return
}
func (r *UserAuthMockRepository) GetUserAuthByAuthCode(authCode string) (v *models.UserAuth, err error) {
v = userAuth
return
}
func (r *UserAuthMockRepository) GetUserAuthByRefreshToken(refreshToken string) (v *models.UserAuth, err error) {
v = userAuth
return
}
func (r *UserAuthMockRepository) GetUserAuthByToken(refreshToken string) (v *models.UserAuth, err error) {
v = userAuth
return
}
... ...
... ... @@ -4,35 +4,27 @@ import "opp/models"
type UserMockRepository struct{}
var userInfo = &models.UserInfo{
Auth: "897ca746f46b11e98771000c29ad8d6d",
var userInfo = &models.UserAuth{
AuthCode: "897ca746f46b11e98771000c29ad8d6d",
AccessToken: "897ca746f46b11e98771000c29ad8d7d",
RefreshToken: "897ca746f46b11e98771000c29ad8d8d",
}
func (r *UserMockRepository) GetUsersByMobile(mobile string) (v *models.Users, err error) {
v = &models.Users{
Username: "18065048389",
Password: "$2y$10$YWg7jPRVLBzc3kevokMkW.boswtCvhToqC.TappIwfqwJ.cI0efvy",
}
return
}
func (r *UserMockRepository) GetUserInfoByMobile(mobile string) (v *models.UserInfo, err error) {
v = userInfo
return
var user = &models.User{
Phone: "18065048389",
Passwd: "$2y$10$YWg7jPRVLBzc3kevokMkW.boswtCvhToqC.TappIwfqwJ.cI0efvy",
}
func (r *UserMockRepository) UpdateUserInfoById(m *models.UserInfo) (err error) {
func (r *UserMockRepository) GetUsersById(uid int64) (v *models.User, err error) {
v = user
return
}
func (r *UserMockRepository) GetUserInfoByAuthCode(authCode string) (v *models.UserInfo, err error) {
v = userInfo
func (r *UserMockRepository) GetUsersByMobile(mobile string) (v *models.User, err error) {
v = user
return
}
func (r *UserMockRepository) GetUserInfoByRefreshToken(refreshToken string) (v *models.UserInfo, err error) {
v = userInfo
func (r *UserMockRepository) UpdateUserInfo(m *models.User) (err error) {
return
}
... ...
... ... @@ -34,7 +34,7 @@ func init() {
//panic(err)
}
orm.NewBeeormEngine(config.Mysql{
AliasName: "default",
//AliasName: "default",
DataSource: beego.AppConfig.String("data_source"),
MaxIdle: 100,
MaxOpen: 100,
... ...
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Announcement struct {
Id int `orm:"column(id);pk" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Content string `orm:"column(content);size(500)" description:"消息标题"`
CompanyId int64 `orm:"column(company_id);null"`
Day string `orm:"column(day);size(20)" description:"日期"`
}
func (t *Announcement) TableName() string {
return "announcement"
}
func init() {
orm.RegisterModel(new(Announcement))
}
// AddAnnouncement insert a new Announcement into database and returns
// last inserted Id on success.
func AddAnnouncement(m *Announcement) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetAnnouncementById retrieves Announcement by Id. Returns error if
// Id doesn't exist
func GetAnnouncementById(id int) (v *Announcement, err error) {
o := orm.NewOrm()
v = &Announcement{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllAnnouncement retrieves all Announcement matches certain condition. Returns empty list if
// no records exist
func GetAllAnnouncement(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Announcement))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Announcement
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateAnnouncement updates Announcement by Id and returns error if
// the record to be updated doesn't exist
func UpdateAnnouncementById(m *Announcement) (err error) {
o := orm.NewOrm()
v := Announcement{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteAnnouncement deletes Announcement by Id and returns error if
// the record to be deleted doesn't exist
func DeleteAnnouncement(id int) (err error) {
o := orm.NewOrm()
v := Announcement{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Announcement{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type BonusPoint struct {
Id int `orm:"column(id);pk"`
CompanyId int `orm:"column(company_id)" description:"公司ID"`
Type int8 `orm:"column(type)" description:"加分类型 0发现 1分析 2解决"`
Uid int64 `orm:"column(uid)" description:"被加分人"`
Score int `orm:"column(score)" description:"加分数值"`
JoinDate time.Time `orm:"column(join_date);type(date)" description:"加入年月"`
OperatorId int64 `orm:"column(operator_id)" description:"加分人(操作者id)"`
Reason string `orm:"column(reason);size(500);null" description:"加分理由"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);auto_now_add"`
}
func (t *BonusPoint) TableName() string {
return "bonus_point"
}
func init() {
orm.RegisterModel(new(BonusPoint))
}
// AddBonusPoint insert a new BonusPoint into database and returns
// last inserted Id on success.
func AddBonusPoint(m *BonusPoint) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetBonusPointById retrieves BonusPoint by Id. Returns error if
// Id doesn't exist
func GetBonusPointById(id int) (v *BonusPoint, err error) {
o := orm.NewOrm()
v = &BonusPoint{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllBonusPoint retrieves all BonusPoint matches certain condition. Returns empty list if
// no records exist
func GetAllBonusPoint(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(BonusPoint))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []BonusPoint
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateBonusPoint updates BonusPoint by Id and returns error if
// the record to be updated doesn't exist
func UpdateBonusPointById(m *BonusPoint) (err error) {
o := orm.NewOrm()
v := BonusPoint{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteBonusPoint deletes BonusPoint by Id and returns error if
// the record to be deleted doesn't exist
func DeleteBonusPoint(id int) (err error) {
o := orm.NewOrm()
v := BonusPoint{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&BonusPoint{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Bulletin struct {
Id int `orm:"column(id);auto"`
Title string `orm:"column(title);size(2000);null" description:"标题"`
Content string `orm:"column(content);null" description:"内容"`
Cover string `orm:"column(cover);size(255);null" description:"封面地址"`
W int `orm:"column(w);null" description:"宽"`
H int `orm:"column(h);null" description:"高"`
Type int8 `orm:"column(type);null" description:"公告类型(0图+跳转链接、1链接)"`
Receiver string `orm:"column(receiver);null" description:"接收者"`
QuestionSwitch int8 `orm:"column(question_switch);null" description:"设置问题开关"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null" description:"创建时间"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);null" description:"更新时间"`
AllowClose int8 `orm:"column(allowClose);null" description:"允许关闭公告(0允许,1禁止)"`
CompanyId int `orm:"column(company_id);null" description:"公司Id"`
Status uint8 `orm:"column(status)" description:"状态 0-下架 1- 上架"`
}
func (t *Bulletin) TableName() string {
return "bulletin"
}
func init() {
orm.RegisterModel(new(Bulletin))
}
// AddBulletin insert a new Bulletin into database and returns
// last inserted Id on success.
func AddBulletin(m *Bulletin) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetBulletinById retrieves Bulletin by Id. Returns error if
// Id doesn't exist
func GetBulletinById(id int) (v *Bulletin, err error) {
o := orm.NewOrm()
v = &Bulletin{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllBulletin retrieves all Bulletin matches certain condition. Returns empty list if
// no records exist
func GetAllBulletin(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Bulletin))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Bulletin
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateBulletin updates Bulletin by Id and returns error if
// the record to be updated doesn't exist
func UpdateBulletinById(m *Bulletin) (err error) {
o := orm.NewOrm()
v := Bulletin{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteBulletin deletes Bulletin by Id and returns error if
// the record to be deleted doesn't exist
func DeleteBulletin(id int) (err error) {
o := orm.NewOrm()
v := Bulletin{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Bulletin{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type BulletinQuestion struct {
Id int `orm:"column(id);auto"`
BulletinId int `orm:"column(bulletin_id);null" description:"公告id"`
Type int8 `orm:"column(type);null" description:"类型:0-单选,1-多选"`
Title string `orm:"column(title);size(2000);null" description:"标题"`
Content string `orm:"column(content);size(2000);null" description:"内容"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null" description:"创建时间"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);null" description:"更新时间"`
}
func (t *BulletinQuestion) TableName() string {
return "bulletin_question"
}
func init() {
orm.RegisterModel(new(BulletinQuestion))
}
// AddBulletinQuestion insert a new BulletinQuestion into database and returns
// last inserted Id on success.
func AddBulletinQuestion(m *BulletinQuestion) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetBulletinQuestionById retrieves BulletinQuestion by Id. Returns error if
// Id doesn't exist
func GetBulletinQuestionById(id int) (v *BulletinQuestion, err error) {
o := orm.NewOrm()
v = &BulletinQuestion{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllBulletinQuestion retrieves all BulletinQuestion matches certain condition. Returns empty list if
// no records exist
func GetAllBulletinQuestion(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(BulletinQuestion))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []BulletinQuestion
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateBulletinQuestion updates BulletinQuestion by Id and returns error if
// the record to be updated doesn't exist
func UpdateBulletinQuestionById(m *BulletinQuestion) (err error) {
o := orm.NewOrm()
v := BulletinQuestion{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteBulletinQuestion deletes BulletinQuestion by Id and returns error if
// the record to be deleted doesn't exist
func DeleteBulletinQuestion(id int) (err error) {
o := orm.NewOrm()
v := BulletinQuestion{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&BulletinQuestion{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type BulletinQuestionAnswer struct {
Id int `orm:"column(id);auto"`
Answer string `orm:"column(answer);null" description:"答案"`
BulletinId int `orm:"column(bulletin_id);null" description:"公告id"`
BulletinQuestionId int `orm:"column(bulletin_question_id);null" description:"公告问题id"`
Uid int64 `orm:"column(uid);null" description:"用户id"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null" description:"创建时间"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);null" description:"更新时间"`
}
func (t *BulletinQuestionAnswer) TableName() string {
return "bulletin_question_answer"
}
func init() {
orm.RegisterModel(new(BulletinQuestionAnswer))
}
// AddBulletinQuestionAnswer insert a new BulletinQuestionAnswer into database and returns
// last inserted Id on success.
func AddBulletinQuestionAnswer(m *BulletinQuestionAnswer) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetBulletinQuestionAnswerById retrieves BulletinQuestionAnswer by Id. Returns error if
// Id doesn't exist
func GetBulletinQuestionAnswerById(id int) (v *BulletinQuestionAnswer, err error) {
o := orm.NewOrm()
v = &BulletinQuestionAnswer{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllBulletinQuestionAnswer retrieves all BulletinQuestionAnswer matches certain condition. Returns empty list if
// no records exist
func GetAllBulletinQuestionAnswer(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(BulletinQuestionAnswer))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []BulletinQuestionAnswer
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateBulletinQuestionAnswer updates BulletinQuestionAnswer by Id and returns error if
// the record to be updated doesn't exist
func UpdateBulletinQuestionAnswerById(m *BulletinQuestionAnswer) (err error) {
o := orm.NewOrm()
v := BulletinQuestionAnswer{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteBulletinQuestionAnswer deletes BulletinQuestionAnswer by Id and returns error if
// the record to be deleted doesn't exist
func DeleteBulletinQuestionAnswer(id int) (err error) {
o := orm.NewOrm()
v := BulletinQuestionAnswer{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&BulletinQuestionAnswer{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type CfgAppVersion struct {
Id int `orm:"column(id);auto"`
DeviceType int8 `orm:"column(device_type);null" description:"设备类型 (0 ios 1android)"`
VersionName string `orm:"column(version_name);size(255)" description:"版本名"`
VersionNo int `orm:"column(version_no)" description:"版本号"`
VersionState int8 `orm:"column(version_state)" description:"版本状态(0正常 1危险)"`
Title string `orm:"column(title);size(255)" description:"版本标题"`
Content string `orm:"column(content);size(500)" description:"更新的内容"`
DownloadPage string `orm:"column(download_page);size(255);null" description:"下载页"`
DownloadFile string `orm:"column(download_file);size(255)" description:"文件下载页"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now"`
Enabled int8 `orm:"column(enabled);null" description:"是否有效"`
AdminId int `orm:"column(admin_id)" description:"操作人员"`
UpdateTime time.Time `orm:"column(update_time);type(timestamp);auto_now_add" description:"更新时间"`
Channel string `orm:"column(channel);size(255)" description:"当前渠道 0_AppStore、1_fir平台、2_华为、3_小米、4_魅族、5_oppo、6_vivo、7_360、8_百度、9_应用宝、10_其他(使用应用宝地址)"`
Type int8 `orm:"column(type);null" description:"0为手机 1为平板 终端类型"`
}
func (t *CfgAppVersion) TableName() string {
return "cfg_app_version"
}
func init() {
orm.RegisterModel(new(CfgAppVersion))
}
// AddCfgAppVersion insert a new CfgAppVersion into database and returns
// last inserted Id on success.
func AddCfgAppVersion(m *CfgAppVersion) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCfgAppVersionById retrieves CfgAppVersion by Id. Returns error if
// Id doesn't exist
func GetCfgAppVersionById(id int) (v *CfgAppVersion, err error) {
o := orm.NewOrm()
v = &CfgAppVersion{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCfgAppVersion retrieves all CfgAppVersion matches certain condition. Returns empty list if
// no records exist
func GetAllCfgAppVersion(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(CfgAppVersion))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []CfgAppVersion
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateCfgAppVersion updates CfgAppVersion by Id and returns error if
// the record to be updated doesn't exist
func UpdateCfgAppVersionById(m *CfgAppVersion) (err error) {
o := orm.NewOrm()
v := CfgAppVersion{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteCfgAppVersion deletes CfgAppVersion by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCfgAppVersion(id int) (err error) {
o := orm.NewOrm()
v := CfgAppVersion{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&CfgAppVersion{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
func GetCfgAppVersion(versionNo, channel int) (v *CfgAppVersion, err error) {
o := orm.NewOrm()
sql := `select * from cfg_app_version where version_no =? and channel =? and enabled=1`
if err = o.Raw(sql, versionNo, channel).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type CfgAttr struct {
Id int `orm:"column(id);auto" description:"主键ID"`
CompanyId int `orm:"column(company_id)" description:"公司Id"`
Name string `orm:"column(name);size(200)" description:"名称"`
Sort uint `orm:"column(sort)" description:"排序"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Enabled int `orm:"column(enabled)"`
}
func (t *CfgAttr) TableName() string {
return "cfg_attr"
}
func init() {
orm.RegisterModel(new(CfgAttr))
}
// AddCfgAttr insert a new CfgAttr into database and returns
// last inserted Id on success.
func AddCfgAttr(m *CfgAttr) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCfgAttrById retrieves CfgAttr by Id. Returns error if
// Id doesn't exist
func GetCfgAttrById(id int) (v *CfgAttr, err error) {
o := orm.NewOrm()
v = &CfgAttr{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCfgAttr retrieves all CfgAttr matches certain condition. Returns empty list if
// no records exist
func GetAllCfgAttr(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(CfgAttr))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []CfgAttr
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateCfgAttr updates CfgAttr by Id and returns error if
// the record to be updated doesn't exist
func UpdateCfgAttrById(m *CfgAttr) (err error) {
o := orm.NewOrm()
v := CfgAttr{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteCfgAttr deletes CfgAttr by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCfgAttr(id int) (err error) {
o := orm.NewOrm()
v := CfgAttr{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&CfgAttr{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type CfgClient struct {
Id int `orm:"column(id);auto" description:"主键ID"`
ClientId string `orm:"column(client_id);size(32)" description:"客户端ID"`
ClientSecret string `orm:"column(client_secret);size(128);null" description:"客户端密钥"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);auto_now" description:"创建时间"`
Enabled int8 `orm:"column(enabled)" description:"是否有效"`
}
func (t *CfgClient) TableName() string {
return "cfg_client"
}
func init() {
orm.RegisterModel(new(CfgClient))
}
// AddCfgClient insert a new CfgClient into database and returns
// last inserted Id on success.
func AddCfgClient(m *CfgClient) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCfgClientById retrieves CfgClient by Id. Returns error if
// Id doesn't exist
func GetCfgClientById(id int) (v *CfgClient, err error) {
o := orm.NewOrm()
v = &CfgClient{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCfgClient retrieves all CfgClient matches certain condition. Returns empty list if
// no records exist
func GetAllCfgClient(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(CfgClient))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []CfgClient
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateCfgClient updates CfgClient by Id and returns error if
// the record to be updated doesn't exist
func UpdateCfgClientById(m *CfgClient) (err error) {
o := orm.NewOrm()
v := CfgClient{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteCfgClient deletes CfgClient by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCfgClient(id int) (err error) {
o := orm.NewOrm()
v := CfgClient{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&CfgClient{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
func GetCfgClient(clintId, clientSecret string) (v *CfgClient, err error) {
o := orm.NewOrm()
sql := "select * from cfg_client where enabled=1 and client_id=? and client_secret=?"
if err = o.Raw(sql, clintId, clientSecret).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type CfgMsg struct {
Id int `orm:"column(id);pk" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Title string `orm:"column(title);size(100)" description:"消息标题"`
Type int `orm:"column(type)" description:"1为某某某代表解决 2为某某某提出 3为某某某申请解决"`
}
func (t *CfgMsg) TableName() string {
return "cfg_msg"
}
func init() {
orm.RegisterModel(new(CfgMsg))
}
// AddCfgMsg insert a new CfgMsg into database and returns
// last inserted Id on success.
func AddCfgMsg(m *CfgMsg) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCfgMsgById retrieves CfgMsg by Id. Returns error if
// Id doesn't exist
func GetCfgMsgById(id int) (v *CfgMsg, err error) {
o := orm.NewOrm()
v = &CfgMsg{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCfgMsg retrieves all CfgMsg matches certain condition. Returns empty list if
// no records exist
func GetAllCfgMsg(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(CfgMsg))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []CfgMsg
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateCfgMsg updates CfgMsg by Id and returns error if
// the record to be updated doesn't exist
func UpdateCfgMsgById(m *CfgMsg) (err error) {
o := orm.NewOrm()
v := CfgMsg{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteCfgMsg deletes CfgMsg by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCfgMsg(id int) (err error) {
o := orm.NewOrm()
v := CfgMsg{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&CfgMsg{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Commend struct {
Id int `orm:"column(cid);pk" description:"主键ID"`
Uid int64 `orm:"column(uid)" description:"用户ID"`
Username string `orm:"column(username);size(255)" description:"用户名"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
QuestionTitle string `orm:"column(questionTitle);size(100)" description:"标题"`
QuestionId int64 `orm:"column(questionId);null"`
Way int `orm:"column(way)" description:"0提出问题、1参与解决问题"`
Company string `orm:"column(company);size(50)" description:"是否已读 0未读,1已读"`
CompanyId int `orm:"column(company_id)" description:"公司id"`
Status int8 `orm:"column(status)" description:"状态 1可见 2不可见"`
CommendationTime time.Time `orm:"column(commendation_time);type(date)" description:"表彰时间"`
}
func (t *Commend) TableName() string {
return "commend"
}
func init() {
orm.RegisterModel(new(Commend))
}
// AddCommend insert a new Commend into database and returns
// last inserted Id on success.
func AddCommend(m *Commend) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCommendById retrieves Commend by Id. Returns error if
// Id doesn't exist
func GetCommendById(id int) (v *Commend, err error) {
o := orm.NewOrm()
v = &Commend{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCommend retrieves all Commend matches certain condition. Returns empty list if
// no records exist
func GetAllCommend(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Commend))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Commend
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateCommend updates Commend by Id and returns error if
// the record to be updated doesn't exist
func UpdateCommendById(m *Commend) (err error) {
o := orm.NewOrm()
v := Commend{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteCommend deletes Commend by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCommend(id int) (err error) {
o := orm.NewOrm()
v := Commend{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Commend{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Comment struct {
Id int `orm:"column(cid);pk"`
Uid int64 `orm:"column(uid);null"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
Content string `orm:"column(content)"`
PageView int `orm:"column(pageView);null" description:"浏览总数"`
CommentTotal int `orm:"column(commentTotal);null" description:"评论总数"`
SympathyTotal int `orm:"column(sympathyTotal)" description:"同感总数"`
Type int `orm:"column(type);null" description:"0问题、1评论、2方案"`
Id_RENAME int64 `orm:"column(id);null" description:"对应的ID"`
}
func (t *Comment) TableName() string {
return "comment"
}
func init() {
orm.RegisterModel(new(Comment))
}
// AddComment insert a new Comment into database and returns
// last inserted Id on success.
func AddComment(m *Comment) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCommentById retrieves Comment by Id. Returns error if
// Id doesn't exist
func GetCommentById(id int) (v *Comment, err error) {
o := orm.NewOrm()
v = &Comment{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllComment retrieves all Comment matches certain condition. Returns empty list if
// no records exist
func GetAllComment(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Comment))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Comment
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateComment updates Comment by Id and returns error if
// the record to be updated doesn't exist
func UpdateCommentById(m *Comment) (err error) {
o := orm.NewOrm()
v := Comment{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteComment deletes Comment by Id and returns error if
// the record to be deleted doesn't exist
func DeleteComment(id int) (err error) {
o := orm.NewOrm()
v := Comment{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Comment{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Companies struct {
Id int `orm:"column(id);auto"`
Name string `orm:"column(name);size(255)"`
Username string `orm:"column(username);size(255)"`
Phone string `orm:"column(phone);size(255)"`
Status uint8 `orm:"column(status)" description:"状态 1启用 2禁用"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);auto_now"`
}
func (t *Companies) TableName() string {
return "companies"
}
func init() {
orm.RegisterModel(new(Companies))
}
// AddCompanies insert a new Companies into database and returns
// last inserted Id on success.
func AddCompanies(m *Companies) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCompaniesById retrieves Companies by Id. Returns error if
// Id doesn't exist
func GetCompaniesById(id int) (v *Companies, err error) {
o := orm.NewOrm()
v = &Companies{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCompanies retrieves all Companies matches certain condition. Returns empty list if
// no records exist
func GetAllCompanies(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Companies))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Companies
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateCompanies updates Companies by Id and returns error if
// the record to be updated doesn't exist
func UpdateCompaniesById(m *Companies) (err error) {
o := orm.NewOrm()
v := Companies{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteCompanies deletes Companies by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCompanies(id int) (err error) {
o := orm.NewOrm()
v := Companies{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Companies{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Departments struct {
Id int `orm:"column(id);auto"`
CompanyId int `orm:"column(company_id)"`
Name string `orm:"column(name);size(255)"`
Username string `orm:"column(username);size(255)"`
Number int `orm:"column(number)"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);auto_now"`
Enabled uint8 `orm:"column(enabled)" description:"状态 1启用 0禁用"`
}
func (t *Departments) TableName() string {
return "departments"
}
func init() {
orm.RegisterModel(new(Departments))
}
// AddDepartments insert a new Departments into database and returns
// last inserted Id on success.
func AddDepartments(m *Departments) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetDepartmentsById retrieves Departments by Id. Returns error if
// Id doesn't exist
func GetDepartmentsById(id int) (v *Departments, err error) {
o := orm.NewOrm()
v = &Departments{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllDepartments retrieves all Departments matches certain condition. Returns empty list if
// no records exist
func GetAllDepartments(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Departments))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Departments
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateDepartments updates Departments by Id and returns error if
// the record to be updated doesn't exist
func UpdateDepartmentsById(m *Departments) (err error) {
o := orm.NewOrm()
v := Departments{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteDepartments deletes Departments by Id and returns error if
// the record to be deleted doesn't exist
func DeleteDepartments(id int) (err error) {
o := orm.NewOrm()
v := Departments{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Departments{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type LogUuid struct {
Id int64 `orm:"column(id);auto" description:"主键ID"`
Uuid string `orm:"column(uuid);size(128)"`
}
func (t *LogUuid) TableName() string {
return "log_uuid"
}
func init() {
orm.RegisterModel(new(LogUuid))
}
// AddLogUuid insert a new LogUuid into database and returns
// last inserted Id on success.
func AddLogUuid(m *LogUuid) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetLogUuidById retrieves LogUuid by Id. Returns error if
// Id doesn't exist
func GetLogUuidById(id int64) (v *LogUuid, err error) {
o := orm.NewOrm()
v = &LogUuid{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllLogUuid retrieves all LogUuid matches certain condition. Returns empty list if
// no records exist
func GetAllLogUuid(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(LogUuid))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []LogUuid
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateLogUuid updates LogUuid by Id and returns error if
// the record to be updated doesn't exist
func UpdateLogUuidById(m *LogUuid) (err error) {
o := orm.NewOrm()
v := LogUuid{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteLogUuid deletes LogUuid by Id and returns error if
// the record to be deleted doesn't exist
func DeleteLogUuid(id int64) (err error) {
o := orm.NewOrm()
v := LogUuid{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&LogUuid{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
func GetLogUuidByUuid(uuid string) (v *LogUuid, err error) {
o := orm.NewOrm()
sql := "select * from log_uuid where uuid=?"
if err = o.Raw(sql, uuid).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type Logic struct {
Id int `orm:"column(id);auto"`
Data string `orm:"column(data);null"`
Db string `orm:"column(db);size(50);null"`
Datatype string `orm:"column(datatype);size(50);null"`
Type string `orm:"column(type);size(100);null"`
Defaultparam string `orm:"column(defaultparam);size(200);null"`
}
func (t *Logic) TableName() string {
return "logic"
}
func init() {
orm.RegisterModel(new(Logic))
}
// AddLogic insert a new Logic into database and returns
// last inserted Id on success.
func AddLogic(m *Logic) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetLogicById retrieves Logic by Id. Returns error if
// Id doesn't exist
func GetLogicById(id int) (v *Logic, err error) {
o := orm.NewOrm()
v = &Logic{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllLogic retrieves all Logic matches certain condition. Returns empty list if
// no records exist
func GetAllLogic(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Logic))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Logic
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateLogic updates Logic by Id and returns error if
// the record to be updated doesn't exist
func UpdateLogicById(m *Logic) (err error) {
o := orm.NewOrm()
v := Logic{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteLogic deletes Logic by Id and returns error if
// the record to be deleted doesn't exist
func DeleteLogic(id int) (err error) {
o := orm.NewOrm()
v := Logic{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Logic{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type Permissions struct {
Id int `orm:"column(id);auto"`
Name string `orm:"column(name);size(255)"`
Value int8 `orm:"column(value)"`
}
func (t *Permissions) TableName() string {
return "permissions"
}
func init() {
orm.RegisterModel(new(Permissions))
}
// AddPermissions insert a new Permissions into database and returns
// last inserted Id on success.
func AddPermissions(m *Permissions) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetPermissionsById retrieves Permissions by Id. Returns error if
// Id doesn't exist
func GetPermissionsById(id int) (v *Permissions, err error) {
o := orm.NewOrm()
v = &Permissions{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllPermissions retrieves all Permissions matches certain condition. Returns empty list if
// no records exist
func GetAllPermissions(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Permissions))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Permissions
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdatePermissions updates Permissions by Id and returns error if
// the record to be updated doesn't exist
func UpdatePermissionsById(m *Permissions) (err error) {
o := orm.NewOrm()
v := Permissions{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeletePermissions deletes Permissions by Id and returns error if
// the record to be deleted doesn't exist
func DeletePermissions(id int) (err error) {
o := orm.NewOrm()
v := Permissions{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Permissions{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type PicsLog struct {
Id int `orm:"column(id);auto" description:"主键ID"`
Url string `orm:"column(url);size(128)"`
Thumbnail string `orm:"column(thumbnail);size(128)" description:"缩略图"`
Width int `orm:"column(width)" description:"宽度"`
Length int `orm:"column(length)" description:"长度"`
}
func (t *PicsLog) TableName() string {
return "pics_log"
}
func init() {
orm.RegisterModel(new(PicsLog))
}
// AddPicsLog insert a new PicsLog into database and returns
// last inserted Id on success.
func AddPicsLog(m *PicsLog) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetPicsLogById retrieves PicsLog by Id. Returns error if
// Id doesn't exist
func GetPicsLogById(id int) (v *PicsLog, err error) {
o := orm.NewOrm()
v = &PicsLog{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllPicsLog retrieves all PicsLog matches certain condition. Returns empty list if
// no records exist
func GetAllPicsLog(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(PicsLog))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []PicsLog
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdatePicsLog updates PicsLog by Id and returns error if
// the record to be updated doesn't exist
func UpdatePicsLogById(m *PicsLog) (err error) {
o := orm.NewOrm()
v := PicsLog{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeletePicsLog deletes PicsLog by Id and returns error if
// the record to be deleted doesn't exist
func DeletePicsLog(id int) (err error) {
o := orm.NewOrm()
v := PicsLog{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&PicsLog{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Positions struct {
Id int `orm:"column(id);auto"`
CompanyId int `orm:"column(company_id)"`
Name string `orm:"column(name);size(255)"`
Pid string `orm:"column(pid);size(255)"`
Path string `orm:"column(path);size(1000)"`
Level int8 `orm:"column(level)" description:"级别"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);auto_now"`
Enabled int8 `orm:"column(enabled)"`
}
func (t *Positions) TableName() string {
return "positions"
}
func init() {
orm.RegisterModel(new(Positions))
}
// AddPositions insert a new Positions into database and returns
// last inserted Id on success.
func AddPositions(m *Positions) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetPositionsById retrieves Positions by Id. Returns error if
// Id doesn't exist
func GetPositionsById(id int) (v *Positions, err error) {
o := orm.NewOrm()
v = &Positions{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllPositions retrieves all Positions matches certain condition. Returns empty list if
// no records exist
func GetAllPositions(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Positions))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Positions
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdatePositions updates Positions by Id and returns error if
// the record to be updated doesn't exist
func UpdatePositionsById(m *Positions) (err error) {
o := orm.NewOrm()
v := Positions{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeletePositions deletes Positions by Id and returns error if
// the record to be deleted doesn't exist
func DeletePositions(id int) (err error) {
o := orm.NewOrm()
v := Positions{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Positions{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Question struct {
Id int `orm:"column(id);pk"`
Title string `orm:"column(title);size(30)" description:"标题"`
Content string `orm:"column(content)" description:"内容"`
Uid int64 `orm:"column(uid)" description:"用户ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
Way int `orm:"column(way)" description:"提问方式(0语音,1图文)"`
PageView int `orm:"column(pageView)" description:"浏览总数"`
CommentTotal int `orm:"column(commentTotal)" description:"评论总数"`
SympathyTotal int `orm:"column(sympathyTotal)" description:"同感总数"`
Review int `orm:"column(review)" description:"0 待审核 1已审核"`
Status int `orm:"column(status);null" description:"状态 0 未解决 1已解决"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);null"`
ScoreAnalyze int `orm:"column(scoreAnalyze);null" description:"分析评分"`
ScoreAsk int `orm:"column(scoreAsk);null" description:"提问评分"`
ScoreScheme int `orm:"column(scoreScheme);null" description:"方案评分"`
Published int `orm:"column(published);null" description:"公开状态 0未公开、1本部门公开、2本公司公开"`
Level int `orm:"column(level)" description:"最后评分或审核人的级别"`
CheckUid int64 `orm:"column(checkUid);null" description:"审核人ID"`
Enabled int `orm:"column(enabled);null" description:"1有效 0删除"`
Tlevel int `orm:"column(tlevel)" description:"公开操作权限"`
PfUid int64 `orm:"column(pfUid)"`
QType int `orm:"column(qType)"`
SoluteTime time.Time `orm:"column(soluteTime);type(timestamp);auto_now_add"`
ResolverTime time.Time `orm:"column(resolverTime);type(timestamp);auto_now_add"`
Resolver int64 `orm:"column(resolver)"`
RelevantDepartmentId int `orm:"column(relevantDepartmentId)" description:"相关部门id"`
ReceiveStatus int8 `orm:"column(receiveStatus)" description:"领取状态 0未领取 1已领取"`
}
func (t *Question) TableName() string {
return "question"
}
func init() {
orm.RegisterModel(new(Question))
}
// AddQuestion insert a new Question into database and returns
// last inserted Id on success.
func AddQuestion(m *Question) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetQuestionById retrieves Question by Id. Returns error if
// Id doesn't exist
func GetQuestionById(id int) (v *Question, err error) {
o := orm.NewOrm()
v = &Question{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllQuestion retrieves all Question matches certain condition. Returns empty list if
// no records exist
func GetAllQuestion(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Question))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Question
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateQuestion updates Question by Id and returns error if
// the record to be updated doesn't exist
func UpdateQuestionById(m *Question) (err error) {
o := orm.NewOrm()
v := Question{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteQuestion deletes Question by Id and returns error if
// the record to be deleted doesn't exist
func DeleteQuestion(id int) (err error) {
o := orm.NewOrm()
v := Question{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Question{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type QuestionDepartment struct {
Id int `orm:"column(id);pk"`
Qid int64 `orm:"column(qid)" description:"所属的问题ID"`
DepartmentId int `orm:"column(department_id)" description:"语音路径"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
}
func (t *QuestionDepartment) TableName() string {
return "question_department"
}
func init() {
orm.RegisterModel(new(QuestionDepartment))
}
// AddQuestionDepartment insert a new QuestionDepartment into database and returns
// last inserted Id on success.
func AddQuestionDepartment(m *QuestionDepartment) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetQuestionDepartmentById retrieves QuestionDepartment by Id. Returns error if
// Id doesn't exist
func GetQuestionDepartmentById(id int) (v *QuestionDepartment, err error) {
o := orm.NewOrm()
v = &QuestionDepartment{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllQuestionDepartment retrieves all QuestionDepartment matches certain condition. Returns empty list if
// no records exist
func GetAllQuestionDepartment(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(QuestionDepartment))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []QuestionDepartment
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateQuestionDepartment updates QuestionDepartment by Id and returns error if
// the record to be updated doesn't exist
func UpdateQuestionDepartmentById(m *QuestionDepartment) (err error) {
o := orm.NewOrm()
v := QuestionDepartment{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteQuestionDepartment deletes QuestionDepartment by Id and returns error if
// the record to be deleted doesn't exist
func DeleteQuestionDepartment(id int) (err error) {
o := orm.NewOrm()
v := QuestionDepartment{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&QuestionDepartment{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type QuestionDepartmentLog struct {
Id int `orm:"column(id);pk"`
Qid int64 `orm:"column(qid)" description:"所属的问题ID"`
DepartmentId int `orm:"column(department_id)" description:"相关部门id"`
OperatorId int64 `orm:"column(operator_id)" description:"操作者id"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
}
func (t *QuestionDepartmentLog) TableName() string {
return "question_department_log"
}
func init() {
orm.RegisterModel(new(QuestionDepartmentLog))
}
// AddQuestionDepartmentLog insert a new QuestionDepartmentLog into database and returns
// last inserted Id on success.
func AddQuestionDepartmentLog(m *QuestionDepartmentLog) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetQuestionDepartmentLogById retrieves QuestionDepartmentLog by Id. Returns error if
// Id doesn't exist
func GetQuestionDepartmentLogById(id int) (v *QuestionDepartmentLog, err error) {
o := orm.NewOrm()
v = &QuestionDepartmentLog{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllQuestionDepartmentLog retrieves all QuestionDepartmentLog matches certain condition. Returns empty list if
// no records exist
func GetAllQuestionDepartmentLog(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(QuestionDepartmentLog))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []QuestionDepartmentLog
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateQuestionDepartmentLog updates QuestionDepartmentLog by Id and returns error if
// the record to be updated doesn't exist
func UpdateQuestionDepartmentLogById(m *QuestionDepartmentLog) (err error) {
o := orm.NewOrm()
v := QuestionDepartmentLog{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteQuestionDepartmentLog deletes QuestionDepartmentLog by Id and returns error if
// the record to be deleted doesn't exist
func DeleteQuestionDepartmentLog(id int) (err error) {
o := orm.NewOrm()
v := QuestionDepartmentLog{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&QuestionDepartmentLog{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type QuestionImage struct {
Id int `orm:"column(id);pk"`
Qid int64 `orm:"column(qid);null" description:"所属的问题ID"`
Path string `orm:"column(path);size(500);null" description:"语音路径"`
W int `orm:"column(w)"`
H int `orm:"column(h)"`
}
func (t *QuestionImage) TableName() string {
return "question_image"
}
func init() {
orm.RegisterModel(new(QuestionImage))
}
// AddQuestionImage insert a new QuestionImage into database and returns
// last inserted Id on success.
func AddQuestionImage(m *QuestionImage) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetQuestionImageById retrieves QuestionImage by Id. Returns error if
// Id doesn't exist
func GetQuestionImageById(id int) (v *QuestionImage, err error) {
o := orm.NewOrm()
v = &QuestionImage{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllQuestionImage retrieves all QuestionImage matches certain condition. Returns empty list if
// no records exist
func GetAllQuestionImage(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(QuestionImage))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []QuestionImage
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateQuestionImage updates QuestionImage by Id and returns error if
// the record to be updated doesn't exist
func UpdateQuestionImageById(m *QuestionImage) (err error) {
o := orm.NewOrm()
v := QuestionImage{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteQuestionImage deletes QuestionImage by Id and returns error if
// the record to be deleted doesn't exist
func DeleteQuestionImage(id int) (err error) {
o := orm.NewOrm()
v := QuestionImage{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&QuestionImage{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type QuestionScore struct {
Id int `orm:"column(id);pk"`
Uid int64 `orm:"column(uid);null" description:"评分用户ID"`
Qid int64 `orm:"column(qid);null" description:"所属的问题ID"`
ScoreAnalyze int `orm:"column(scoreAnalyze);null"`
ScoreAsk int `orm:"column(scoreAsk);null"`
ScoreScheme int `orm:"column(scoreScheme);null"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null;auto_now_add" description:"评分时间"`
}
func (t *QuestionScore) TableName() string {
return "question_score"
}
func init() {
orm.RegisterModel(new(QuestionScore))
}
// AddQuestionScore insert a new QuestionScore into database and returns
// last inserted Id on success.
func AddQuestionScore(m *QuestionScore) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetQuestionScoreById retrieves QuestionScore by Id. Returns error if
// Id doesn't exist
func GetQuestionScoreById(id int) (v *QuestionScore, err error) {
o := orm.NewOrm()
v = &QuestionScore{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllQuestionScore retrieves all QuestionScore matches certain condition. Returns empty list if
// no records exist
func GetAllQuestionScore(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(QuestionScore))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []QuestionScore
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateQuestionScore updates QuestionScore by Id and returns error if
// the record to be updated doesn't exist
func UpdateQuestionScoreById(m *QuestionScore) (err error) {
o := orm.NewOrm()
v := QuestionScore{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteQuestionScore deletes QuestionScore by Id and returns error if
// the record to be deleted doesn't exist
func DeleteQuestionScore(id int) (err error) {
o := orm.NewOrm()
v := QuestionScore{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&QuestionScore{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type QuestionSpeech struct {
Id int `orm:"column(id);pk"`
Duration int `orm:"column(duration);null" description:"秒数"`
Qid int64 `orm:"column(qid);null" description:"所属的问题ID"`
Path string `orm:"column(path);size(500);null" description:"语音路径"`
}
func (t *QuestionSpeech) TableName() string {
return "question_speech"
}
func init() {
orm.RegisterModel(new(QuestionSpeech))
}
// AddQuestionSpeech insert a new QuestionSpeech into database and returns
// last inserted Id on success.
func AddQuestionSpeech(m *QuestionSpeech) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetQuestionSpeechById retrieves QuestionSpeech by Id. Returns error if
// Id doesn't exist
func GetQuestionSpeechById(id int) (v *QuestionSpeech, err error) {
o := orm.NewOrm()
v = &QuestionSpeech{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllQuestionSpeech retrieves all QuestionSpeech matches certain condition. Returns empty list if
// no records exist
func GetAllQuestionSpeech(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(QuestionSpeech))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []QuestionSpeech
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateQuestionSpeech updates QuestionSpeech by Id and returns error if
// the record to be updated doesn't exist
func UpdateQuestionSpeechById(m *QuestionSpeech) (err error) {
o := orm.NewOrm()
v := QuestionSpeech{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteQuestionSpeech deletes QuestionSpeech by Id and returns error if
// the record to be deleted doesn't exist
func DeleteQuestionSpeech(id int) (err error) {
o := orm.NewOrm()
v := QuestionSpeech{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&QuestionSpeech{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type Roles struct {
Id int `orm:"column(id);auto"`
Name string `orm:"column(name);size(191)"`
GuardName string `orm:"column(guard_name);size(191)"`
CreatedAt time.Time `orm:"column(created_at);type(timestamp);null"`
UpdatedAt time.Time `orm:"column(updated_at);type(timestamp);null"`
ShowName string `orm:"column(show_name);size(191)"`
Description string `orm:"column(description);size(191);null"`
}
func (t *Roles) TableName() string {
return "roles"
}
func init() {
orm.RegisterModel(new(Roles))
}
// AddRoles insert a new Roles into database and returns
// last inserted Id on success.
func AddRoles(m *Roles) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetRolesById retrieves Roles by Id. Returns error if
// Id doesn't exist
func GetRolesById(id int) (v *Roles, err error) {
o := orm.NewOrm()
v = &Roles{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllRoles retrieves all Roles matches certain condition. Returns empty list if
// no records exist
func GetAllRoles(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Roles))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []Roles
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateRoles updates Roles by Id and returns error if
// the record to be updated doesn't exist
func UpdateRolesById(m *Roles) (err error) {
o := orm.NewOrm()
v := Roles{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteRoles deletes Roles by Id and returns error if
// the record to be deleted doesn't exist
func DeleteRoles(id int) (err error) {
o := orm.NewOrm()
v := Roles{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Roles{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import "time"
type Solution struct {
Id_RENAME int64 `orm:"column(id)" description:"方案ID"`
QuestionTitle string `orm:"column(questionTitle);size(500);null" description:"问题标题"`
Uid int64 `orm:"column(uid)" description:"方案提供者"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null" description:"方案创建时间"`
Content string `orm:"column(content);null" description:"方案内容"`
ScoreAnalyze int `orm:"column(scoreAnalyze);null" description:"分析评分(0-5对应分数)"`
ScoreSolution int `orm:"column(scoreSolution);null" description:"解决评分(0-5对应分数)"`
ScoreScheme int `orm:"column(scoreScheme);null" description:"方案评分(0-5对应分数)"`
PageView int `orm:"column(pageView);null" description:"浏览总数"`
CommentTotal int `orm:"column(commentTotal);null" description:"评论总数"`
SympathyTotal int `orm:"column(sympathyTotal);null" description:"同感总数"`
Qid int64 `orm:"column(qid);null" description:"问题ID"`
Plevel int `orm:"column(plevel);null" description:"最新评分人等级"`
Stype int `orm:"column(stype);null" description:"0备选方案 1解决方案"`
SpfUid int64 `orm:"column(spfUid)"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);auto_now_add" description:"方案编辑更新时间"`
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type SolutionImage struct {
Id int `orm:"column(id);auto" description:"方案ID"`
SolutionId int64 `orm:"column(solution_id)" description:"解决方案ID"`
Path string `orm:"column(path);size(255)" description:"图片路径"`
H int `orm:"column(h)"`
W int `orm:"column(w)"`
}
func (t *SolutionImage) TableName() string {
return "solution_image"
}
func init() {
orm.RegisterModel(new(SolutionImage))
}
// AddSolutionImage insert a new SolutionImage into database and returns
// last inserted Id on success.
func AddSolutionImage(m *SolutionImage) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetSolutionImageById retrieves SolutionImage by Id. Returns error if
// Id doesn't exist
func GetSolutionImageById(id int) (v *SolutionImage, err error) {
o := orm.NewOrm()
v = &SolutionImage{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllSolutionImage retrieves all SolutionImage matches certain condition. Returns empty list if
// no records exist
func GetAllSolutionImage(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(SolutionImage))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []SolutionImage
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateSolutionImage updates SolutionImage by Id and returns error if
// the record to be updated doesn't exist
func UpdateSolutionImageById(m *SolutionImage) (err error) {
o := orm.NewOrm()
v := SolutionImage{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteSolutionImage deletes SolutionImage by Id and returns error if
// the record to be deleted doesn't exist
func DeleteSolutionImage(id int) (err error) {
o := orm.NewOrm()
v := SolutionImage{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&SolutionImage{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type SolutionPartner struct {
Id int `orm:"column(id);auto"`
Uid int64 `orm:"column(uid);null" description:"参与者用户ID"`
Sid int64 `orm:"column(sid);null" description:"解决方案ID"`
ScoreSolution int `orm:"column(scoreSolution);null"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"评分时间"`
Puid int64 `orm:"column(puid);null" description:"评分人用户ID"`
Enabled int `orm:"column(enabled);null" description:"有效1 失效0"`
Sort int `orm:"column(sort)" description:"排序字段"`
}
func (t *SolutionPartner) TableName() string {
return "solution_partner"
}
func init() {
orm.RegisterModel(new(SolutionPartner))
}
// AddSolutionPartner insert a new SolutionPartner into database and returns
// last inserted Id on success.
func AddSolutionPartner(m *SolutionPartner) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetSolutionPartnerById retrieves SolutionPartner by Id. Returns error if
// Id doesn't exist
func GetSolutionPartnerById(id int) (v *SolutionPartner, err error) {
o := orm.NewOrm()
v = &SolutionPartner{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllSolutionPartner retrieves all SolutionPartner matches certain condition. Returns empty list if
// no records exist
func GetAllSolutionPartner(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(SolutionPartner))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []SolutionPartner
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateSolutionPartner updates SolutionPartner by Id and returns error if
// the record to be updated doesn't exist
func UpdateSolutionPartnerById(m *SolutionPartner) (err error) {
o := orm.NewOrm()
v := SolutionPartner{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteSolutionPartner deletes SolutionPartner by Id and returns error if
// the record to be deleted doesn't exist
func DeleteSolutionPartner(id int) (err error) {
o := orm.NewOrm()
v := SolutionPartner{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&SolutionPartner{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type SolutionScore struct {
Id int `orm:"column(id);pk"`
Uid int64 `orm:"column(uid);null" description:"评分用户ID"`
Sid int64 `orm:"column(sid);null" description:"所属的问题ID"`
ScoreAnalyze int `orm:"column(scoreAnalyze);null"`
ScoreScheme int `orm:"column(scoreScheme);null"`
ScoreSolution int `orm:"column(scoreSolution);null"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now" description:"评分时间"`
}
func (t *SolutionScore) TableName() string {
return "solution_score"
}
func init() {
orm.RegisterModel(new(SolutionScore))
}
// AddSolutionScore insert a new SolutionScore into database and returns
// last inserted Id on success.
func AddSolutionScore(m *SolutionScore) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetSolutionScoreById retrieves SolutionScore by Id. Returns error if
// Id doesn't exist
func GetSolutionScoreById(id int) (v *SolutionScore, err error) {
o := orm.NewOrm()
v = &SolutionScore{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllSolutionScore retrieves all SolutionScore matches certain condition. Returns empty list if
// no records exist
func GetAllSolutionScore(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(SolutionScore))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []SolutionScore
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateSolutionScore updates SolutionScore by Id and returns error if
// the record to be updated doesn't exist
func UpdateSolutionScoreById(m *SolutionScore) (err error) {
o := orm.NewOrm()
v := SolutionScore{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteSolutionScore deletes SolutionScore by Id and returns error if
// the record to be deleted doesn't exist
func DeleteSolutionScore(id int) (err error) {
o := orm.NewOrm()
v := SolutionScore{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&SolutionScore{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type SolveSolution struct {
Id int `orm:"column(id);auto" description:"方案ID"`
QuestionId int64 `orm:"column(question_id)" description:"问题ID"`
UserId int64 `orm:"column(user_id)" description:"方案解决者"`
Content string `orm:"column(content);null" description:"方案内容"`
ScoreSolve int `orm:"column(scoreSolve);null" description:"解决评分(0-5对应分数)"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);null" description:"方案创建时间"`
}
func (t *SolveSolution) TableName() string {
return "solve_solution"
}
func init() {
orm.RegisterModel(new(SolveSolution))
}
// AddSolveSolution insert a new SolveSolution into database and returns
// last inserted Id on success.
func AddSolveSolution(m *SolveSolution) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetSolveSolutionById retrieves SolveSolution by Id. Returns error if
// Id doesn't exist
func GetSolveSolutionById(id int) (v *SolveSolution, err error) {
o := orm.NewOrm()
v = &SolveSolution{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllSolveSolution retrieves all SolveSolution matches certain condition. Returns empty list if
// no records exist
func GetAllSolveSolution(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(SolveSolution))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []SolveSolution
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateSolveSolution updates SolveSolution by Id and returns error if
// the record to be updated doesn't exist
func UpdateSolveSolutionById(m *SolveSolution) (err error) {
o := orm.NewOrm()
v := SolveSolution{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteSolveSolution deletes SolveSolution by Id and returns error if
// the record to be deleted doesn't exist
func DeleteSolveSolution(id int) (err error) {
o := orm.NewOrm()
v := SolveSolution{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&SolveSolution{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"github.com/astaxie/beego/orm"
)
type SolveSolutionImage struct {
Id int `orm:"column(id);auto" description:"方案ID"`
SolveSolutionId int `orm:"column(solve_solution_id)" description:"解决方案ID"`
Path string `orm:"column(path);size(255)" description:"图片路径"`
W int `orm:"column(w)"`
H int `orm:"column(h)"`
}
func (t *SolveSolutionImage) TableName() string {
return "solve_solution_image"
}
func init() {
orm.RegisterModel(new(SolveSolutionImage))
}
// AddSolveSolutionImage insert a new SolveSolutionImage into database and returns
// last inserted Id on success.
func AddSolveSolutionImage(m *SolveSolutionImage) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetSolveSolutionImageById retrieves SolveSolutionImage by Id. Returns error if
// Id doesn't exist
func GetSolveSolutionImageById(id int) (v *SolveSolutionImage, err error) {
o := orm.NewOrm()
v = &SolveSolutionImage{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllSolveSolutionImage retrieves all SolveSolutionImage matches certain condition. Returns empty list if
// no records exist
func GetAllSolveSolutionImage(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(SolveSolutionImage))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []SolveSolutionImage
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateSolveSolutionImage updates SolveSolutionImage by Id and returns error if
// the record to be updated doesn't exist
func UpdateSolveSolutionImageById(m *SolveSolutionImage) (err error) {
o := orm.NewOrm()
v := SolveSolutionImage{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteSolveSolutionImage deletes SolveSolutionImage by Id and returns error if
// the record to be deleted doesn't exist
func DeleteSolveSolutionImage(id int) (err error) {
o := orm.NewOrm()
v := SolveSolutionImage{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&SolveSolutionImage{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserAnnouncementRela struct {
Id int `orm:"column(id);pk" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Uid int64 `orm:"column(uid)" description:"消息标题"`
Aid int64 `orm:"column(aid)"`
}
func (t *UserAnnouncementRela) TableName() string {
return "user_announcement_rela"
}
func init() {
orm.RegisterModel(new(UserAnnouncementRela))
}
// AddUserAnnouncementRela insert a new UserAnnouncementRela into database and returns
// last inserted Id on success.
func AddUserAnnouncementRela(m *UserAnnouncementRela) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserAnnouncementRelaById retrieves UserAnnouncementRela by Id. Returns error if
// Id doesn't exist
func GetUserAnnouncementRelaById(id int) (v *UserAnnouncementRela, err error) {
o := orm.NewOrm()
v = &UserAnnouncementRela{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserAnnouncementRela retrieves all UserAnnouncementRela matches certain condition. Returns empty list if
// no records exist
func GetAllUserAnnouncementRela(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserAnnouncementRela))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserAnnouncementRela
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserAnnouncementRela updates UserAnnouncementRela by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserAnnouncementRelaById(m *UserAnnouncementRela) (err error) {
o := orm.NewOrm()
v := UserAnnouncementRela{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserAnnouncementRela deletes UserAnnouncementRela by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserAnnouncementRela(id int) (err error) {
o := orm.NewOrm()
v := UserAnnouncementRela{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserAnnouncementRela{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
... ... @@ -10,47 +10,50 @@ import (
"github.com/astaxie/beego/orm"
)
type CfgQtype struct {
Id int `orm:"column(id);auto" description:"主键ID"`
CompanyId int `orm:"column(company_id)" description:"公司Id"`
Name string `orm:"column(name);size(200)" description:"消息标题"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Enabled int `orm:"column(enabled)"`
type UserAuth struct {
Id int `orm:"column(id);auto"`
UserId int64 `orm:"column(user_id)" description:"表user.id "`
RefreshToken string `orm:"column(refresh_token);size(64)" description:"refresh token "`
RefreshTokenExp time.Time `orm:"column(refresh_token_exp);type(timestamp);auto_now_add" description:"refresh token 过期时间"`
AccessToken string `orm:"column(access_token);size(64)" description:"access_token "`
AccessTokenExp time.Time `orm:"column(access_token_exp);type(timestamp);auto_now_add" description:"access token 过期时间"`
AuthCode string `orm:"column(auth_code);size(64)" description:"auth_code"`
AuthCodeExp time.Time `orm:"column(auth_code_exp);type(timestamp);auto_now_add" description:"auth_code过期时间"`
}
func (t *CfgQtype) TableName() string {
return "cfg_qtype"
func (t *UserAuth) TableName() string {
return "user_auth"
}
func init() {
orm.RegisterModel(new(CfgQtype))
orm.RegisterModel(new(UserAuth))
}
// AddCfgQtype insert a new CfgQtype into database and returns
// AddUserAuth insert a new UserAuth into database and returns
// last inserted Id on success.
func AddCfgQtype(m *CfgQtype) (id int64, err error) {
func AddUserAuth(m *UserAuth) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetCfgQtypeById retrieves CfgQtype by Id. Returns error if
// GetUserAuthById retrieves UserAuth by Id. Returns error if
// Id doesn't exist
func GetCfgQtypeById(id int) (v *CfgQtype, err error) {
func GetUserAuthById(id int) (v *UserAuth, err error) {
o := orm.NewOrm()
v = &CfgQtype{Id: id}
v = &UserAuth{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllCfgQtype retrieves all CfgQtype matches certain condition. Returns empty list if
// GetAllUserAuth retrieves all UserAuth matches certain condition. Returns empty list if
// no records exist
func GetAllCfgQtype(query map[string]string, fields []string, sortby []string, order []string,
func GetAllUserAuth(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(CfgQtype))
qs := o.QueryTable(new(UserAuth))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
... ... @@ -100,7 +103,7 @@ func GetAllCfgQtype(query map[string]string, fields []string, sortby []string, o
}
}
var l []CfgQtype
var l []UserAuth
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
... ... @@ -123,11 +126,11 @@ func GetAllCfgQtype(query map[string]string, fields []string, sortby []string, o
return nil, err
}
// UpdateCfgQtype updates CfgQtype by Id and returns error if
// UpdateUserAuth updates UserAuth by Id and returns error if
// the record to be updated doesn't exist
func UpdateCfgQtypeById(m *CfgQtype) (err error) {
func UpdateUserAuthById(m *UserAuth) (err error) {
o := orm.NewOrm()
v := CfgQtype{Id: m.Id}
v := UserAuth{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
... ... @@ -138,17 +141,55 @@ func UpdateCfgQtypeById(m *CfgQtype) (err error) {
return
}
// DeleteCfgQtype deletes CfgQtype by Id and returns error if
// DeleteUserAuth deletes UserAuth by Id and returns error if
// the record to be deleted doesn't exist
func DeleteCfgQtype(id int) (err error) {
func DeleteUserAuth(id int) (err error) {
o := orm.NewOrm()
v := CfgQtype{Id: id}
v := UserAuth{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&CfgQtype{Id: id}); err == nil {
if num, err = o.Delete(&UserAuth{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
func GetUserByAuthCode(authCode string) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where auth_code=? and auth_exp >= Now()"
if err = o.Raw(sql, authCode).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
func GetUserAuthByRefreshToken(refreshToken string) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where refresh_token=? and auth_exp >= Now()" // TODO: and enabled = 1
if err = o.Raw(sql, refreshToken).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
func GetUserAuthByToken(refreshToken string) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_auth where refresh_token=? and auth_exp >= Now()" // TODO: and enabled = 1
if err = o.Raw(sql, refreshToken).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
// GetUserAuthById retrieves UserAuth by Id. Returns error if
// Id doesn't exist
func GetUserAuthByUserId(uid int64) (v *UserAuth, err error) {
o := orm.NewOrm()
sql := "select * from user_id where user_id=?" //
if err = o.Raw(sql, uid).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
... ...
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserBulletinRela struct {
Id int `orm:"column(id);pk" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Uid int64 `orm:"column(uid)" description:"消息标题"`
Aid int64 `orm:"column(aid)"`
}
func (t *UserBulletinRela) TableName() string {
return "user_bulletin_rela"
}
func init() {
orm.RegisterModel(new(UserBulletinRela))
}
// AddUserBulletinRela insert a new UserBulletinRela into database and returns
// last inserted Id on success.
func AddUserBulletinRela(m *UserBulletinRela) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserBulletinRelaById retrieves UserBulletinRela by Id. Returns error if
// Id doesn't exist
func GetUserBulletinRelaById(id int) (v *UserBulletinRela, err error) {
o := orm.NewOrm()
v = &UserBulletinRela{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserBulletinRela retrieves all UserBulletinRela matches certain condition. Returns empty list if
// no records exist
func GetAllUserBulletinRela(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserBulletinRela))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserBulletinRela
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserBulletinRela updates UserBulletinRela by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserBulletinRelaById(m *UserBulletinRela) (err error) {
o := orm.NewOrm()
v := UserBulletinRela{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserBulletinRela deletes UserBulletinRela by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserBulletinRela(id int) (err error) {
o := orm.NewOrm()
v := UserBulletinRela{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserBulletinRela{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserClickLogs struct {
Id int `orm:"column(id);pk" description:"主键ID"`
Uid int64 `orm:"column(uid)" description:"用户ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Type int64 `orm:"column(type)" description:"消息标题"`
}
func (t *UserClickLogs) TableName() string {
return "user_click_logs"
}
func init() {
orm.RegisterModel(new(UserClickLogs))
}
// AddUserClickLogs insert a new UserClickLogs into database and returns
// last inserted Id on success.
func AddUserClickLogs(m *UserClickLogs) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserClickLogsById retrieves UserClickLogs by Id. Returns error if
// Id doesn't exist
func GetUserClickLogsById(id int) (v *UserClickLogs, err error) {
o := orm.NewOrm()
v = &UserClickLogs{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserClickLogs retrieves all UserClickLogs matches certain condition. Returns empty list if
// no records exist
func GetAllUserClickLogs(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserClickLogs))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserClickLogs
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserClickLogs updates UserClickLogs by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserClickLogsById(m *UserClickLogs) (err error) {
o := orm.NewOrm()
v := UserClickLogs{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserClickLogs deletes UserClickLogs by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserClickLogs(id int) (err error) {
o := orm.NewOrm()
v := UserClickLogs{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserClickLogs{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserCommend struct {
Id int `orm:"column(id);pk"`
Uid int64 `orm:"column(uid);null" description:"接收消息的用户ID"`
Cid int64 `orm:"column(cid)" description:"表彰ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null;auto_now_add" description:"显示的时间"`
}
func (t *UserCommend) TableName() string {
return "user_commend"
}
func init() {
orm.RegisterModel(new(UserCommend))
}
// AddUserCommend insert a new UserCommend into database and returns
// last inserted Id on success.
func AddUserCommend(m *UserCommend) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserCommendById retrieves UserCommend by Id. Returns error if
// Id doesn't exist
func GetUserCommendById(id int) (v *UserCommend, err error) {
o := orm.NewOrm()
v = &UserCommend{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserCommend retrieves all UserCommend matches certain condition. Returns empty list if
// no records exist
func GetAllUserCommend(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserCommend))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserCommend
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserCommend updates UserCommend by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserCommendById(m *UserCommend) (err error) {
o := orm.NewOrm()
v := UserCommend{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserCommend deletes UserCommend by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserCommend(id int) (err error) {
o := orm.NewOrm()
v := UserCommend{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserCommend{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserInfo struct {
Id int64 `orm:"column(uid);pk" description:"用户ID"`
Uname string `orm:"column(uname);size(100)" description:"名称"`
Icon string `orm:"column(icon);size(128)" description:"头像"`
Width int `orm:"column(width)" description:"宽度"`
Height int `orm:"column(height)" description:"高度"`
Thumbnail string `orm:"column(thumbnail);size(128)" description:"缩略图"`
Phone string `orm:"column(phone);size(40)" description:"手机号码"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
Passwd string `orm:"column(passwd);size(128)" description:"密码 sha1处理"`
State int8 `orm:"column(state)" description:"是否已认证 0未认证 1已认证 "`
Uuid string `orm:"column(uuid);size(128)" description:"用于接收消息推送的标识 设备码"`
ThirdloginCode string `orm:"column(thirdlogin_code);size(200)" description:"第三方登录code"`
Enabled int8 `orm:"column(enabled)" description:"是否有效"`
ImToken string `orm:"column(im_token);size(128)" description:"网易云token"`
CsAccount int64 `orm:"column(cs_account)" description:"客服有话说ID"`
RefreshExp time.Time `orm:"column(refresh_exp);type(timestamp);auto_now_add" description:"refresh token 过期时间"`
AccessExp time.Time `orm:"column(access_exp);type(timestamp);auto_now_add" description:"access token 过期时间"`
AccessToken string `orm:"column(access_token);size(64)" description:"access_token"`
RefreshToken string `orm:"column(refresh_token);size(64)"`
AuthExp time.Time `orm:"column(auth_exp);type(timestamp);auto_now_add" description:"auth_code过期时间"`
Auth string `orm:"column(auth);size(64)" description:"auth_code"`
LastloginTime time.Time `orm:"column(lastlogin_time);type(timestamp);auto_now_add" description:"最后一次登录时间"`
DeviceToken string `orm:"column(device_token);size(128);null" description:"推送标志位"`
ClientId string `orm:"column(client_id);size(128);null" description:"推送标识"`
CompanyId int `orm:"column(company_id)" description:"公司Id"`
DepartmentId int `orm:"column(department_id)" description:"部门id"`
PositionId int `orm:"column(position_id)" description:"职位id"`
Type int8 `orm:"column(type)" description:"1超级管理员 2公司负责人 3普通成员"`
Score int `orm:"column(score)" description:"评分星级"`
Questions int `orm:"column(questions)" description:"提问数"`
Answer int `orm:"column(answer)" description:"回答数"`
RememberToken string `orm:"column(remember_token);size(100);null"`
IsHighlight int8 `orm:"column(is_highlight)" description:"点赞是否高亮 0否 1是"`
ScoreAnalyze int `orm:"column(scoreAnalyze)" description:"分析得分"`
ScoreScheme int `orm:"column(scoreScheme)" description:"解决得分"`
ScoreAsk int `orm:"column(scoreAsk)" description:"提问得分"`
AttrId int `orm:"column(attr_id)" description:"属性id"`
RemainScore int `orm:"column(remain_score)"`
RemainAnalyze int `orm:"column(remain_Analyze)"`
BonusScoreAsk int `orm:"column(bonusScoreAsk)" description:"额外发现得分"`
BonusScoreAnalyze int `orm:"column(bonusScoreAnalyze)" description:"额外分析得分"`
BonusScoreScheme int `orm:"column(bonusScoreScheme)" description:"额外解决得分"`
}
func (t *UserInfo) TableName() string {
return "user_info"
}
func init() {
orm.RegisterModel(new(UserInfo))
}
// AddUserInfo insert a new UserInfo into database and returns
// last inserted Id on success.
func AddUserInfo(m *UserInfo) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserInfoById retrieves UserInfo by Id. Returns error if
// Id doesn't exist
func GetUserInfoById(id int64) (v *UserInfo, err error) {
o := orm.NewOrm()
v = &UserInfo{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserInfo retrieves all UserInfo matches certain condition. Returns empty list if
// no records exist
func GetAllUserInfo(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserInfo))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserInfo
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserInfo updates UserInfo by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserInfoById(m *UserInfo) (err error) {
o := orm.NewOrm()
v := UserInfo{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserInfo deletes UserInfo by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserInfo(id int64) (err error) {
o := orm.NewOrm()
v := UserInfo{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserInfo{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
func GetUserInfoByMobile(mobile string) (v *UserInfo, err error) {
o := orm.NewOrm()
sql := "select * from user_info where phone=?"
if err = o.Raw(sql, mobile).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
func GetUserInfoByClientId(clintId string) (v *UserInfo, err error) {
o := orm.NewOrm()
sql := "select * from user_info where clientId=?"
if err = o.Raw(sql, clintId).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
func GetUserInfoByToken(token string) (v *UserInfo, err error) {
o := orm.NewOrm()
sql := "select * from user_info where access_token=? and access_exp >= Now() and enabled = 1"
if err = o.Raw(sql, token).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
func GetUserInfoByAuthCode(authCode string) (v *UserInfo, err error) {
o := orm.NewOrm()
sql := "select * from user_info where auth=? and auth_exp >= Now() and enabled = 1"
if err = o.Raw(sql, authCode).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
func GetUserInfoByRefreshToken(refreshToken string) (v *UserInfo, err error) {
o := orm.NewOrm()
sql := "select * from user_info where refresh_token=? and auth_exp >= Now() and enabled = 1"
if err = o.Raw(sql, refreshToken).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserInteract struct {
Id int `orm:"column(id);pk"`
Uid int64 `orm:"column(uid);null" description:"接收消息的用户ID"`
Type int64 `orm:"column(type);null" description:"(0有人提交备选方案,对提问者、1提问被申请解决,对提问者、2提问申请解决被解除,对提问者、3提问申请解决解除,对解决者、4提问被解决,对提问者)"`
Qid int64 `orm:"column(qid)" description:"问题ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null;auto_now_add" description:"显示的时间"`
Sid int64 `orm:"column(sid)" description:"方案ID 无默认为0"`
}
func (t *UserInteract) TableName() string {
return "user_interact"
}
func init() {
orm.RegisterModel(new(UserInteract))
}
// AddUserInteract insert a new UserInteract into database and returns
// last inserted Id on success.
func AddUserInteract(m *UserInteract) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserInteractById retrieves UserInteract by Id. Returns error if
// Id doesn't exist
func GetUserInteractById(id int) (v *UserInteract, err error) {
o := orm.NewOrm()
v = &UserInteract{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserInteract retrieves all UserInteract matches certain condition. Returns empty list if
// no records exist
func GetAllUserInteract(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserInteract))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserInteract
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserInteract updates UserInteract by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserInteractById(m *UserInteract) (err error) {
o := orm.NewOrm()
v := UserInteract{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserInteract deletes UserInteract by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserInteract(id int) (err error) {
o := orm.NewOrm()
v := UserInteract{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserInteract{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserMsg struct {
Id int `orm:"column(msgId);pk" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
MsgTitle string `orm:"column(msgTitle);null" description:"消息标题"`
Uid int64 `orm:"column(uid)"`
Ext int64 `orm:"column(ext);null" description:"对应ID"`
Enabled int `orm:"column(enabled);null" description:"是否公开 1公开 0不公开"`
MsgType int `orm:"column(msgType)" description:"公司公告 1、星数变动2、表彰通知4、互动消息8、待评分16"`
IsRead int `orm:"column(isRead);null" description:"0未读 1已读"`
CompanyId int64 `orm:"column(company_id);null"`
}
func (t *UserMsg) TableName() string {
return "user_msg"
}
func init() {
orm.RegisterModel(new(UserMsg))
}
// AddUserMsg insert a new UserMsg into database and returns
// last inserted Id on success.
func AddUserMsg(m *UserMsg) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserMsgById retrieves UserMsg by Id. Returns error if
// Id doesn't exist
func GetUserMsgById(id int) (v *UserMsg, err error) {
o := orm.NewOrm()
v = &UserMsg{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserMsg retrieves all UserMsg matches certain condition. Returns empty list if
// no records exist
func GetAllUserMsg(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserMsg))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserMsg
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserMsg updates UserMsg by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserMsgById(m *UserMsg) (err error) {
o := orm.NewOrm()
v := UserMsg{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserMsg deletes UserMsg by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserMsg(id int) (err error) {
o := orm.NewOrm()
v := UserMsg{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserMsg{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserPermissions struct {
Id int `orm:"column(id);auto"`
UserId int64 `orm:"column(user_id)" description:"用户id"`
PermissionId int `orm:"column(permission_id)" description:"权限id (关联的部门id) 菜单权限(-1 成员管理,-2 职位管理,-3 部门管理,-4 表彰管理,-5 提问管理 -6 成员属性 -7 额外加分 -8 数据导出管理)"`
Type int8 `orm:"column(type)" description:"权限类型 1菜单权限 2查看权限 3评分权限 4解决权限"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);null"`
Enabled int8 `orm:"column(enabled)"`
}
func (t *UserPermissions) TableName() string {
return "user_permissions"
}
func init() {
orm.RegisterModel(new(UserPermissions))
}
// AddUserPermissions insert a new UserPermissions into database and returns
// last inserted Id on success.
func AddUserPermissions(m *UserPermissions) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserPermissionsById retrieves UserPermissions by Id. Returns error if
// Id doesn't exist
func GetUserPermissionsById(id int) (v *UserPermissions, err error) {
o := orm.NewOrm()
v = &UserPermissions{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserPermissions retrieves all UserPermissions matches certain condition. Returns empty list if
// no records exist
func GetAllUserPermissions(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserPermissions))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserPermissions
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserPermissions updates UserPermissions by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserPermissionsById(m *UserPermissions) (err error) {
o := orm.NewOrm()
v := UserPermissions{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserPermissions deletes UserPermissions by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserPermissions(id int) (err error) {
o := orm.NewOrm()
v := UserPermissions{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserPermissions{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserQuestionRela struct {
Id int `orm:"column(id);pk" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
Uid int64 `orm:"column(uid)" description:"消息标题"`
Qid int64 `orm:"column(qid)"`
Type int `orm:"column(type);null" description:"0未同感,1同感 类型"`
}
func (t *UserQuestionRela) TableName() string {
return "user_question_rela"
}
func init() {
orm.RegisterModel(new(UserQuestionRela))
}
// AddUserQuestionRela insert a new UserQuestionRela into database and returns
// last inserted Id on success.
func AddUserQuestionRela(m *UserQuestionRela) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserQuestionRelaById retrieves UserQuestionRela by Id. Returns error if
// Id doesn't exist
func GetUserQuestionRelaById(id int) (v *UserQuestionRela, err error) {
o := orm.NewOrm()
v = &UserQuestionRela{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserQuestionRela retrieves all UserQuestionRela matches certain condition. Returns empty list if
// no records exist
func GetAllUserQuestionRela(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserQuestionRela))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserQuestionRela
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserQuestionRela updates UserQuestionRela by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserQuestionRelaById(m *UserQuestionRela) (err error) {
o := orm.NewOrm()
v := UserQuestionRela{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserQuestionRela deletes UserQuestionRela by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserQuestionRela(id int) (err error) {
o := orm.NewOrm()
v := UserQuestionRela{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserQuestionRela{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserQuestionSolve struct {
Id int `orm:"column(id);auto" description:"主键ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"创建时间"`
UpdateTime time.Time `orm:"column(updateTime);type(timestamp);null;auto_now_add" description:"更新时间"`
Uid int64 `orm:"column(uid)" description:"消息标题"`
Qid int64 `orm:"column(qid)"`
StartTime time.Time `orm:"column(startTime);type(date);null" description:"解决开始时间"`
EndTime time.Time `orm:"column(endTime);type(date);null" description:"解决结束时间"`
Remark string `orm:"column(remark);null" description:"备注"`
CompanyId int `orm:"column(company_id);null" description:"公司Id"`
Flag int8 `orm:"column(flag);null" description:"标志位"`
}
func (t *UserQuestionSolve) TableName() string {
return "user_question_solve"
}
func init() {
orm.RegisterModel(new(UserQuestionSolve))
}
// AddUserQuestionSolve insert a new UserQuestionSolve into database and returns
// last inserted Id on success.
func AddUserQuestionSolve(m *UserQuestionSolve) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserQuestionSolveById retrieves UserQuestionSolve by Id. Returns error if
// Id doesn't exist
func GetUserQuestionSolveById(id int) (v *UserQuestionSolve, err error) {
o := orm.NewOrm()
v = &UserQuestionSolve{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserQuestionSolve retrieves all UserQuestionSolve matches certain condition. Returns empty list if
// no records exist
func GetAllUserQuestionSolve(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserQuestionSolve))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserQuestionSolve
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserQuestionSolve updates UserQuestionSolve by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserQuestionSolveById(m *UserQuestionSolve) (err error) {
o := orm.NewOrm()
v := UserQuestionSolve{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserQuestionSolve deletes UserQuestionSolve by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserQuestionSolve(id int) (err error) {
o := orm.NewOrm()
v := UserQuestionSolve{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserQuestionSolve{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserScore struct {
Id int `orm:"column(id);pk"`
Uid int64 `orm:"column(uid);null" description:"接收用户ID"`
Type int64 `orm:"column(type);null" description:"(0问题审核、1问题评分、2分析评分、3解决评分)"`
Qid int64 `orm:"column(qid)" description:"提问ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);null;auto_now_add" description:"评分时间"`
Sid int64 `orm:"column(sid)" description:"方案ID"`
}
func (t *UserScore) TableName() string {
return "user_score"
}
func init() {
orm.RegisterModel(new(UserScore))
}
// AddUserScore insert a new UserScore into database and returns
// last inserted Id on success.
func AddUserScore(m *UserScore) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserScoreById retrieves UserScore by Id. Returns error if
// Id doesn't exist
func GetUserScoreById(id int) (v *UserScore, err error) {
o := orm.NewOrm()
v = &UserScore{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserScore retrieves all UserScore matches certain condition. Returns empty list if
// no records exist
func GetAllUserScore(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserScore))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserScore
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserScore updates UserScore by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserScoreById(m *UserScore) (err error) {
o := orm.NewOrm()
v := UserScore{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserScore deletes UserScore by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserScore(id int) (err error) {
o := orm.NewOrm()
v := UserScore{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserScore{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserScoreChange struct {
Id int `orm:"column(id);pk"`
Uid int64 `orm:"column(uid);null" description:"接收用户ID"`
Type int64 `orm:"column(type);null" description:"(0发现问题、1分析问题、2解决问题)"`
Score int `orm:"column(score);null" description:"评分"`
Qid int64 `orm:"column(qid)" description:"问题ID"`
ScoreUid int64 `orm:"column(scoreUid)" description:"评分用户ID"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add" description:"时间"`
Sid int64 `orm:"column(sid)" description:"方案ID"`
}
func (t *UserScoreChange) TableName() string {
return "user_score_change"
}
func init() {
orm.RegisterModel(new(UserScoreChange))
}
// AddUserScoreChange insert a new UserScoreChange into database and returns
// last inserted Id on success.
func AddUserScoreChange(m *UserScoreChange) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserScoreChangeById retrieves UserScoreChange by Id. Returns error if
// Id doesn't exist
func GetUserScoreChangeById(id int) (v *UserScoreChange, err error) {
o := orm.NewOrm()
v = &UserScoreChange{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserScoreChange retrieves all UserScoreChange matches certain condition. Returns empty list if
// no records exist
func GetAllUserScoreChange(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserScoreChange))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserScoreChange
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserScoreChange updates UserScoreChange by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserScoreChangeById(m *UserScoreChange) (err error) {
o := orm.NewOrm()
v := UserScoreChange{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserScoreChange deletes UserScoreChange by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserScoreChange(id int) (err error) {
o := orm.NewOrm()
v := UserScoreChange{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserScoreChange{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserSmsCode struct {
Id int `orm:"column(id);auto" description:"主键ID"`
Phone string `orm:"column(phone);size(20)" description:"手机号"`
Code string `orm:"column(code);size(10)" description:"短信验证码"`
UseTime time.Time `orm:"column(useTime);type(timestamp);auto_now" description:"用户使用该验证码时间"`
StartTime time.Time `orm:"column(startTime);type(timestamp);auto_now_add" description:"开始时间"`
EndTime time.Time `orm:"column(endTime);type(timestamp);auto_now_add" description:"结束时间"`
Enabled int8 `orm:"column(enabled)" description:"是否有效"`
}
func (t *UserSmsCode) TableName() string {
return "user_sms_code"
}
func init() {
orm.RegisterModel(new(UserSmsCode))
}
// AddUserSmsCode insert a new UserSmsCode into database and returns
// last inserted Id on success.
func AddUserSmsCode(m *UserSmsCode) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserSmsCodeById retrieves UserSmsCode by Id. Returns error if
// Id doesn't exist
func GetUserSmsCodeById(id int) (v *UserSmsCode, err error) {
o := orm.NewOrm()
v = &UserSmsCode{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserSmsCode retrieves all UserSmsCode matches certain condition. Returns empty list if
// no records exist
func GetAllUserSmsCode(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserSmsCode))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserSmsCode
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserSmsCode updates UserSmsCode by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserSmsCodeById(m *UserSmsCode) (err error) {
o := orm.NewOrm()
v := UserSmsCode{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserSmsCode deletes UserSmsCode by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserSmsCode(id int) (err error) {
o := orm.NewOrm()
v := UserSmsCode{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserSmsCode{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
package models
import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/astaxie/beego/orm"
)
type UserSympathy struct {
Id int `orm:"column(sid);pk"`
Uid int64 `orm:"column(uid);null"`
Id_RENAME string `orm:"column(id);size(100);null" description:"对应的ID"`
Type int `orm:"column(type)" description:"0问题、1评论、2方案"`
Status int `orm:"column(status);null" description:"0 有效 1无效"`
CreateTime time.Time `orm:"column(createTime);type(timestamp);auto_now_add"`
}
func (t *UserSympathy) TableName() string {
return "user_sympathy"
}
func init() {
orm.RegisterModel(new(UserSympathy))
}
// AddUserSympathy insert a new UserSympathy into database and returns
// last inserted Id on success.
func AddUserSympathy(m *UserSympathy) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
}
// GetUserSympathyById retrieves UserSympathy by Id. Returns error if
// Id doesn't exist
func GetUserSympathyById(id int) (v *UserSympathy, err error) {
o := orm.NewOrm()
v = &UserSympathy{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
// GetAllUserSympathy retrieves all UserSympathy matches certain condition. Returns empty list if
// no records exist
func GetAllUserSympathy(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(UserSympathy))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1)
if strings.Contains(k, "isnull") {
qs = qs.Filter(k, (v == "true" || v == "1"))
} else {
qs = qs.Filter(k, v)
}
}
// order by:
var sortFields []string
if len(sortby) != 0 {
if len(sortby) == len(order) {
// 1) for each sort field, there is an associated order
for i, v := range sortby {
orderby := ""
if order[i] == "desc" {
orderby = "-" + v
} else if order[i] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
qs = qs.OrderBy(sortFields...)
} else if len(sortby) != len(order) && len(order) == 1 {
// 2) there is exactly one order, all the sorted fields will be sorted by this order
for _, v := range sortby {
orderby := ""
if order[0] == "desc" {
orderby = "-" + v
} else if order[0] == "asc" {
orderby = v
} else {
return nil, errors.New("Error: Invalid order. Must be either [asc|desc]")
}
sortFields = append(sortFields, orderby)
}
} else if len(sortby) != len(order) && len(order) != 1 {
return nil, errors.New("Error: 'sortby', 'order' sizes mismatch or 'order' size is not 1")
}
} else {
if len(order) != 0 {
return nil, errors.New("Error: unused 'order' fields")
}
}
var l []UserSympathy
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
for _, v := range l {
ml = append(ml, v)
}
} else {
// trim unused fields
for _, v := range l {
m := make(map[string]interface{})
val := reflect.ValueOf(v)
for _, fname := range fields {
m[fname] = val.FieldByName(fname).Interface()
}
ml = append(ml, m)
}
}
return ml, nil
}
return nil, err
}
// UpdateUserSympathy updates UserSympathy by Id and returns error if
// the record to be updated doesn't exist
func UpdateUserSympathyById(m *UserSympathy) (err error) {
o := orm.NewOrm()
v := UserSympathy{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Update(m); err == nil {
fmt.Println("Number of records updated in database:", num)
}
}
return
}
// DeleteUserSympathy deletes UserSympathy by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUserSympathy(id int) (err error) {
o := orm.NewOrm()
v := UserSympathy{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&UserSympathy{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
... ... @@ -10,35 +10,34 @@ import (
"github.com/astaxie/beego/orm"
)
type Users struct {
Id int `orm:"column(id);auto"`
Name string `orm:"column(name);size(191)" description:"用户名"`
Username string `orm:"column(username);size(191)" description:"登录用户名"`
Password string `orm:"column(password);size(191)" description:"密码"`
Photo string `orm:"column(photo);size(191);null" description:"头像"`
Accid string `orm:"column(accid);size(191);null" description:"网易云id"`
Token string `orm:"column(token);size(191);null" description:"网易云密码"`
Thumbnail string `orm:"column(thumbnail);size(191);null" description:"缩略图"`
Width int `orm:"column(width);null" description:"宽"`
Length int `orm:"column(length);null" description:"高"`
IsKefu int8 `orm:"column(is_kefu)" description:"是否是客服 0不是 1是"`
Status int8 `orm:"column(status)" description:"账号使用状态 0禁用 1启用"`
RememberToken string `orm:"column(remember_token);size(100);null" description:"记住我token"`
CreatedAt time.Time `orm:"column(created_at);type(timestamp);null" description:"创建时间"`
UpdatedAt time.Time `orm:"column(updated_at);type(timestamp);null" description:"更新时间"`
type User struct {
Id int64 `orm:"column(id);pk" description:"用户id"`
NickName string `orm:"column(nick_name);size(100)" description:"昵称"`
Phone string `orm:"column(phone);size(40)" description:"手机号码"`
Passwd string `orm:"column(passwd);size(128)" description:"密码"`
Icon string `orm:"column(icon);size(255)" description:"头像"`
CompanyId int `orm:"column(company_id)" description:"公司Id"`
DepartmentId int `orm:"column(department_id)" description:"部门id"`
PositionId int `orm:"column(position_id)" description:"职位id"`
CsAccount int64 `orm:"column(cs_account)" description:"客服有话说ID"`
IsKefu int8 `orm:"column(is_kefu)" description:"是否是客服 0:否 1:是"`
ImToken string `orm:"column(im_token);size(128)" description:"网易云token"`
LastLoginTime time.Time `orm:"column(last_login_time);type(timestamp);auto_now_add" description:"最后一次登录时间"`
CreateAt time.Time `orm:"column(create_at);type(timestamp);auto_now_add" description:"创建时间"`
EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"`
}
func (t *Users) TableName() string {
func (t *User) TableName() string {
return "users"
}
func init() {
orm.RegisterModel(new(Users))
orm.RegisterModel(new(User))
}
// AddUsers insert a new Users into database and returns
// last inserted Id on success.
func AddUsers(m *Users) (id int64, err error) {
func AddUsers(m *User) (id int64, err error) {
o := orm.NewOrm()
id, err = o.Insert(m)
return
... ... @@ -46,9 +45,9 @@ func AddUsers(m *Users) (id int64, err error) {
// GetUsersById retrieves Users by Id. Returns error if
// Id doesn't exist
func GetUsersById(id int) (v *Users, err error) {
func GetUsersById(id int64) (v *User, err error) {
o := orm.NewOrm()
v = &Users{Id: id}
v = &User{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
... ... @@ -60,7 +59,7 @@ func GetUsersById(id int) (v *Users, err error) {
func GetAllUsers(query map[string]string, fields []string, sortby []string, order []string,
offset int64, limit int64) (ml []interface{}, err error) {
o := orm.NewOrm()
qs := o.QueryTable(new(Users))
qs := o.QueryTable(new(User))
// query k=v
for k, v := range query {
// rewrite dot-notation to Object__Attribute
... ... @@ -110,7 +109,7 @@ func GetAllUsers(query map[string]string, fields []string, sortby []string, orde
}
}
var l []Users
var l []User
qs = qs.OrderBy(sortFields...)
if _, err = qs.Limit(limit, offset).All(&l, fields...); err == nil {
if len(fields) == 0 {
... ... @@ -135,9 +134,9 @@ func GetAllUsers(query map[string]string, fields []string, sortby []string, orde
// UpdateUsers updates Users by Id and returns error if
// the record to be updated doesn't exist
func UpdateUsersById(m *Users) (err error) {
func UpdateUsersById(m *User) (err error) {
o := orm.NewOrm()
v := Users{Id: m.Id}
v := User{Id: m.Id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
... ... @@ -150,20 +149,20 @@ func UpdateUsersById(m *Users) (err error) {
// DeleteUsers deletes Users by Id and returns error if
// the record to be deleted doesn't exist
func DeleteUsers(id int) (err error) {
func DeleteUsers(id int64) (err error) {
o := orm.NewOrm()
v := Users{Id: id}
v := User{Id: id}
// ascertain id exists in the database
if err = o.Read(&v); err == nil {
var num int64
if num, err = o.Delete(&Users{Id: id}); err == nil {
if num, err = o.Delete(&User{Id: id}); err == nil {
fmt.Println("Number of records deleted in database:", num)
}
}
return
}
func GetUsersByMobile(mobile string) (v *Users, err error) {
func GetUsersByMobile(mobile string) (v *User, err error) {
o := orm.NewOrm()
sql := `select * from users where username=?`
if err = o.Raw(sql, mobile).QueryRow(&v); err == nil {
... ... @@ -172,7 +171,7 @@ func GetUsersByMobile(mobile string) (v *Users, err error) {
return nil, err
}
func GetUsersKefu() (v []*Users, err error) {
func GetUsersKefu() (v []*User, err error) {
o := orm.NewOrm()
sql := `select * from users where is_kefu = 1`
if _, err = o.Raw(sql).QueryRows(&v); err == nil {
... ... @@ -180,3 +179,21 @@ func GetUsersKefu() (v []*Users, err error) {
}
return nil, err
}
func GetUserByMobile(mobile string) (v *User, err error) {
o := orm.NewOrm()
sql := "select * from users where phone=?"
if err = o.Raw(sql, mobile).QueryRow(&v); err == nil {
return v, nil
}
return nil, err
}
//func GetUserInfoByClientId(clintId string) (v *User, err error) {
// o := orm.NewOrm()
// sql := "select * from users where clientId=?"
// if err = o.Raw(sql, clintId).QueryRow(&v); err == nil {
// return v, nil
// }
// return nil, err
//}
... ...
... ... @@ -92,7 +92,7 @@ type CheckTokenRequest struct {
}
type CheckTokenResponse struct {
IsValid bool //true:过期 false:没有过期
UserInfo *models.UserInfo
UserInfo *models.UserAuth
}
/*CheckUuid */
... ...
... ... @@ -6,7 +6,6 @@ import (
"fmt"
"html/template"
"math/rand"
"strconv"
"strings"
"time"
... ... @@ -52,12 +51,12 @@ var (
//登录
func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.LoginResponse, err error) {
var (
user *models.Users
userInfo *models.UserInfo
user *models.User
userAuth *models.UserAuth
result bool
checkImResponse *protocol.CheckImResponse
)
user, err = repository.UserRepositoryFactory().GetUsersByMobile(request.Phone)
user, err = repository.User.GetUsersByMobile(request.Phone)
if err != nil {
log.Error(err)
err = protocol.NewErrWithMessage(2020, err) //账号不存在
... ... @@ -65,7 +64,7 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login
}
switch request.GrantType {
case protocol.LoginTypePassPord:
if strings.Compare(user.Password, request.PassWord) == 0 {
if strings.Compare(user.Passwd, request.PassWord) == 0 {
goto Success
} else {
err = protocol.NewErrWithMessage(2021, err) //登录密码错误
... ... @@ -84,108 +83,43 @@ func (s *AuthService) Login(request *protocol.LoginRequest) (rsp *protocol.Login
}
Success:
{
userInfo, err = repository.UserRepositoryFactory().GetUserInfoByMobile(request.Phone)
user, err = repository.User.GetUsersByMobile(request.Phone)
if err != nil {
log.Error(err)
return
}
if userInfo.Auth == "" {
userInfo.Auth = uid.NewV1().StringNoDash()
userAuth, err = repository.UserAuth.GetUserAuthByUserId(user.Id)
if err != nil {
log.Error(err)
return
}
if userAuth.AuthCode == "" {
userAuth.AuthCode = uid.NewV1().StringNoDash()
}
if checkImResponse, err = CheckIm(&protocol.CheckImRequest{
Uid: fmt.Sprintf("%v", userInfo.Id),
Uname: userInfo.Uname,
Icon: userInfo.Icon,
IsCreated: userInfo.ImToken != "",
Uid: fmt.Sprintf("%v", user.Id),
Uname: user.NickName,
Icon: user.Icon,
IsCreated: user.ImToken != "",
}); err != nil {
return
}
if checkImResponse != nil && checkImResponse.ImToken != "" {
userInfo.ImToken = checkImResponse.ImToken
user.ImToken = checkImResponse.ImToken
}
if userInfo.CsAccount == 0 {
userInfo.CsAccount = imGetRandomCSAccount()
if user.CsAccount == 0 {
user.CsAccount = imGetRandomCSAccount()
}
userInfo.AuthExp = time.Now().Add(time.Second * protocol.TokenExpire)
if err = repository.UserRepositoryFactory().UpdateUserInfoById(userInfo); err != nil {
userAuth.AccessTokenExp = time.Now().Add(time.Second * protocol.TokenExpire)
if err = repository.UserAuth.UpdateUserAuthById(userAuth); err != nil {
return
}
rsp = &protocol.LoginResponse{AuthCode: userInfo.Auth}
rsp = &protocol.LoginResponse{AuthCode: userAuth.AuthCode}
return
}
return
}
func (s *AuthService) Login1(request *protocol.LoginRequest) (rsp *protocol.LoginResponse, err error) {
var logintype ILoginAuth
switch request.GrantType {
case protocol.LoginTypePassPord:
logintype = NewLoginByPassword(request.Phone, request.PassWord)
case protocol.LoginTypeSmdcode:
logintype = NewLoginBySms(request.Phone, request.Code)
default:
err = fmt.Errorf("grantType error:%s", request.GrantType)
return
}
var useridentity *UserIdentity
useridentity, err = logintype.LoginAuth()
if err != nil {
return nil, err
}
rsp = &protocol.LoginResponse{
AuthCode: useridentity.Auth,
}
if len(useridentity.Auth) == 0 {
useridentity.Auth = uid.NewV1().StringNoDash()
}
if len(useridentity.Imtoken) == 0 {
//usercreate 最多重试俩次
for i := 0; i < 2; i++ {
v := s_im.UserCreate{
Accid: fmt.Sprintf("%s", useridentity.Uid),
Name: useridentity.Uname,
Icon: useridentity.Icon,
}
tokenInfo, err := s_im.ParseUserCreate(v)
if err != nil {
log.Error("s_im.ParseUserCreate err:", err)
}
if err == nil {
if tokenInfo.Code == 200 {
useridentity.Imtoken = tokenInfo.Info.Token
// 跳出
break
} else {
log.Error("s_im.ParseUserCreate response code:", tokenInfo.Code)
}
}
}
} else {
//userupdateunifo
for i := 0; i < 2; i++ {
v := s_im.UserUpdateUinfo{
Accid: fmt.Sprintf("%s", useridentity.Accid),
Name: useridentity.Uname,
Icon: useridentity.Icon,
}
imRsp, err := s_im.ParseUserUpdateUinfo(v)
if err != nil {
log.Error("s_im.ParseUserUpdateUinfo err:", err)
}
if err == nil {
if imRsp.Code == 200 {
break
} else {
log.Error("s_im.ParseUserUpdateUinfo response code:", imRsp.Code)
}
}
}
}
return nil, err
}
//更新设备信息
func (s *AuthService) UpdateDevice(request *protocol.UpdateDeviceRequest) (rsp *protocol.UpdateDeviceResponse, err error) {
return nil, nil
... ... @@ -194,28 +128,28 @@ func (s *AuthService) UpdateDevice(request *protocol.UpdateDeviceRequest) (rsp *
//获取accessToken
func (s *AuthService) AccessToken(request *protocol.AccessTokenRequest) (rsp *protocol.AccessTokenResponse, err error) {
var (
userInfo *models.UserInfo
userAuth *models.UserAuth
)
_, err = repository.ConfigRepositoryFactory().GetCfgClient(request.ClientId, request.ClientSecret)
if err != nil {
err = protocol.NewErrWithMessage(101, err)
return
}
userInfo, err = repository.UserRepositoryFactory().GetUserInfoByAuthCode(request.AuthCode)
//_, err = repository.ConfigRepositoryFactory().GetCfgClient(request.ClientId, request.ClientSecret)
//if err != nil {
// err = protocol.NewErrWithMessage(101, err)
// return
//}
userAuth, err = repository.UserAuth.GetUserAuthByAuthCode(request.AuthCode)
if err != nil {
err = protocol.NewErrWithMessage(4139, err)
return
}
userInfo.AccessToken = uid.NewV1().StringNoDash()
userInfo.RefreshToken = uid.NewV1().StringNoDash()
if err = repository.UserRepositoryFactory().UpdateUserInfoById(userInfo); err != nil {
userAuth.AccessToken = uid.NewV1().StringNoDash()
userAuth.RefreshToken = uid.NewV1().StringNoDash()
if err = repository.UserAuth.UpdateUserAuthById(userAuth); err != nil {
log.Error(err)
return
}
//valid token
rsp = &protocol.AccessTokenResponse{
RefreshToken: userInfo.RefreshToken,
AccessToken: userInfo.AccessToken,
RefreshToken: userAuth.RefreshToken,
AccessToken: userAuth.AccessToken,
ExpiresIn: protocol.TokenExpire,
}
return
... ... @@ -224,25 +158,25 @@ func (s *AuthService) AccessToken(request *protocol.AccessTokenRequest) (rsp *pr
//刷新token
func (s *AuthService) RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshTokenResponse, err error) {
var (
userInfo *models.UserInfo
userAuth *models.UserAuth
)
_, err = repository.ConfigRepositoryFactory().GetCfgClient(request.ClientId, request.ClientSecret)
if err != nil {
protocol.NewErrWithMessage(101, err)
return
}
userInfo, err = repository.UserRepositoryFactory().GetUserInfoByRefreshToken(request.RefreshToken)
//_, err = repository.ConfigRepositoryFactory().GetCfgClient(request.ClientId, request.ClientSecret)
//if err != nil {
// protocol.NewErrWithMessage(101, err)
// return
//}
userAuth, err = repository.UserAuth.GetUserAuthByRefreshToken(request.RefreshToken)
if err != nil {
protocol.NewErrWithMessage(4139, err)
return
}
userInfo.AccessToken = uid.NewV1().StringNoDash()
if err = repository.UserRepositoryFactory().UpdateUserInfoById(userInfo); err != nil {
userAuth.AccessToken = uid.NewV1().StringNoDash()
if err = repository.UserAuth.UpdateUserAuthById(userAuth); err != nil {
return
}
rsp = &protocol.RefreshTokenResponse{
AccessToken: userInfo.AccessToken,
RefreshToken: userInfo.RefreshToken,
AccessToken: userAuth.AccessToken,
RefreshToken: userAuth.RefreshToken,
ExpiresIn: protocol.TokenExpire,
}
return
... ... @@ -259,19 +193,19 @@ func (s *AuthService) RefreshToken(request *protocol.RefreshTokenRequest) (rsp *
//检查token有效性
func (s *AuthService) CheckToken(request *protocol.CheckTokenRequest) (rsp *protocol.CheckTokenResponse, err error) {
var (
userInfo *models.UserInfo
userAuth *models.UserAuth
)
if len(request.Token) == 0 {
err = common.NewErrorWithMsg(4141, "token not empty")
return
}
userInfo, err = models.GetUserInfoByToken(request.Token)
userAuth, err = repository.UserAuth.GetUserAuthByToken(request.Token)
if err != nil {
err = protocol.NewErrWithMessage(4141, err)
return
}
rsp = &protocol.CheckTokenResponse{
UserInfo: userInfo,
UserInfo: userAuth,
IsValid: true,
}
return
... ... @@ -279,18 +213,18 @@ func (s *AuthService) CheckToken(request *protocol.CheckTokenRequest) (rsp *prot
//检查uuid 是否重复
func (s *AuthService) CheckUuid(request *protocol.CheckUuidRequest) (rsp *protocol.CheckUuidResponse, err error) {
var (
logUuid *models.LogUuid
)
if len(request.Uuid) == 0 {
err = common.NewErrorWithMsg(4142, "uuid not empty")
}
logUuid, err = models.GetLogUuidByUuid(request.Uuid)
if err == nil && logUuid != nil {
err = common.NewErrorWithMsg(4142, "uuid not valid")
}
models.AddLogUuid(&models.LogUuid{Uuid: request.Uuid})
rsp = &protocol.CheckUuidResponse{}
//var (
// logUuid *models.LogUuid
//)
//if len(request.Uuid) == 0 {
// err = common.NewErrorWithMsg(4142, "uuid not empty")
//}
//logUuid, err = models.GetLogUuidByUuid(request.Uuid)
//if err == nil && logUuid != nil {
// err = common.NewErrorWithMsg(4142, "uuid not valid")
//}
//models.AddLogUuid(&models.LogUuid{Uuid: request.Uuid})
//rsp = &protocol.CheckUuidResponse{}
return
}
... ... @@ -502,9 +436,6 @@ func imGetRandomCSAccount() (acid int64) {
return
}
index := rand.Intn(len(kefus))
acid, err = strconv.ParseInt(kefus[index].Accid, 10, 64)
if err != nil {
log.Error(err)
}
acid = kefus[index].Id //Accid
return acid
}
... ...
... ... @@ -10,8 +10,7 @@ import (
func init() {
tests.Init()
repository.DefaultUserRepository = &repository.UserMockRepository{}
repository.DefaultConfigRepository = &repository.ConfigMockeRepository{}
repository.InitRepositoryMock()
}
var auth = AuthService{}
... ...
package auth
import (
"math/rand"
"opp/protocol"
"strings"
"time"
"gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log"
)
type ILoginAuth interface {
LoginAuth() (*UserIdentity, error) //登录认证操作,返回身份ID和错误
TODO(v interface{}) error //预留,不知道干嘛用,也许可以用来获取取认证结果,或进行认证后附带的操作
}
type UserIdentity struct {
Auth string `json:"auth`
Uid int64 `json:"uid"`
Imtoken string `json:"imtoken"`
Accid int64 `json:"accid"`
Icon string `json:"icon"`
Uname string `json:"uname"`
}
//TODO
//账号密码登录
type LoginByPassword struct {
Username string
Password string
err error
}
func NewLoginByPassword(username string, password string) *LoginByPassword {
return &LoginByPassword{
Username: username,
Password: password,
}
}
//手机短信登录
type LoginBySms struct {
Phone string
Code string
err error
}
func NewLoginBySms(phone string, code string) *LoginBySms {
return &LoginBySms{
Phone: phone,
Code: code,
}
}
//其他第三方登录
type LoginByXxxx struct {
Account string
Identity string
}
var (
_ ILoginAuth = LoginByPassword{}
_ ILoginAuth = LoginBySms{}
_ ILoginAuth = LoginByXxxx{}
)
func (o LoginByPassword) LoginAuth() (*UserIdentity, error) {
user, err := UserRepository.GetUserInfoByMobile(o.Username)
if err != nil {
log.Error(err)
o.err = protocol.NewErrWithMessage(2020, err) //账号不存在
return nil, o.err
}
if strings.Compare(user.Passwd, o.Password) != 0 {
o.err = protocol.NewErrWithMessage(2021, err) //登录密码错误
return nil, o.err
}
identity := &UserIdentity{
Uid: user.Id,
Imtoken: strings.TrimSpace(user.ImToken),
Accid: user.CsAccount,
Icon: user.Icon,
Uname: user.Uname,
Auth: strings.TrimSpace(user.Auth),
}
return identity, nil
}
func (o LoginBySms) LoginAuth() (*UserIdentity, error) {
user, err := UserRepository.GetUserInfoByMobile(o.Phone)
if err != nil {
log.Error(err)
o.err = protocol.NewErrWithMessage(2020, err) //账号不存在
return nil, o.err
}
result, err := CheckSmsCode(o.Phone, o.Code, protocol.SmsLoginCode)
if err != nil && !result {
return nil, err
}
identity := &UserIdentity{
Uid: user.Id,
Imtoken: strings.TrimSpace(user.ImToken),
Accid: user.CsAccount,
Icon: user.Icon,
Uname: user.Uname,
Auth: strings.TrimSpace(user.Auth),
}
return identity, nil
}
func (o LoginByXxxx) LoginAuth() (*UserIdentity, error) {
//TODO
return nil, nil
}
func (o LoginByPassword) TODO(v interface{}) error {
// rv := reflect.ValueOf(v)
// if rv.Kind() != reflect.Ptr {
// return errors.New("v must be point")
// }
// rv = rv.Elem()
// if ok := rv.CanSet(); !ok {
// panic("v can not set")
// }
// a := "random string"
// ra := reflect.ValueOf(a)
// rv.Set(ra)
//生成并更新authcode
return nil
}
func (o LoginBySms) TODO(v interface{}) error {
return nil
}
func (o LoginByXxxx) TODO(v interface{}) error {
return nil
}
func randomString(l int) string {
str := "0123456789abcdefghijklmnopqrstuvwxyz"
bytes := []byte(str)
result := []byte{}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
for i := 0; i < l; i++ {
result = append(result, bytes[r.Intn(len(bytes))])
}
return string(result)
}
package version
import (
"strconv"
"opp/models"
"opp/protocol"
)
... ... @@ -23,18 +20,18 @@ func GetLatestVersionInfo(request *protocol.GetLatestVersionInfoRequest) (rsp *p
//获取版本信息
func GetVersionInfo(versionNo, channel int) (v *protocol.VersionInfo, err error) {
cfgAppVersion, err := models.GetCfgAppVersion(versionNo, channel)
if err != nil {
return
}
v = &protocol.VersionInfo{
VersionName: cfgAppVersion.VersionName,
VersionNo: strconv.Itoa(cfgAppVersion.VersionNo),
Title: cfgAppVersion.Title,
Content: cfgAppVersion.Content,
DownloadPage: cfgAppVersion.DownloadPage,
DownloadFile: cfgAppVersion.DownloadFile,
UpdateType: cfgAppVersion.Type,
}
//cfgAppVersion, err := models.GetCfgAppVersion(versionNo, channel)
//if err != nil {
// return
//}
//v = &protocol.VersionInfo{
// VersionName: cfgAppVersion.VersionName,
// VersionNo: strconv.Itoa(cfgAppVersion.VersionNo),
// Title: cfgAppVersion.Title,
// Content: cfgAppVersion.Content,
// DownloadPage: cfgAppVersion.DownloadPage,
// DownloadFile: cfgAppVersion.DownloadFile,
// UpdateType: cfgAppVersion.Type,
//}
return
}
... ...