Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = [
"archive_test.go",
"dao_test.go",
"staff_test.go",
"video_test.go",
],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/job/main/archive/conf:go_default_library",
"//app/job/main/archive/model/archive:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"archive.go",
"dao.go",
"staff.go",
"video.go",
],
importpath = "go-common/app/job/main/archive/dao/result",
tags = ["automanaged"],
deps = [
"//app/job/main/archive/conf:go_default_library",
"//app/job/main/archive/model/archive:go_default_library",
"//app/job/main/archive/model/result:go_default_library",
"//library/database/sql:go_default_library",
"//library/log:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,86 @@
package result
import (
"context"
"time"
"go-common/app/job/main/archive/model/archive"
"go-common/app/job/main/archive/model/result"
"go-common/library/database/sql"
"go-common/library/log"
)
const (
_arcSQL = "SELECT aid,mid,typeid,videos,copyright,title,cover,content,duration,attribute,state,access,pubtime,ctime,mission_id,order_id,redirect_url,forward,dynamic FROM archive WHERE aid=?"
_inArchiveSQL = `INSERT IGNORE INTO archive (aid,mid,typeid,videos,title,cover,content,duration,attribute,copyright,access,pubtime,state,mission_id,order_id,redirect_url,forward,dynamic,cid,dimensions)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`
_upArchiveSQL = "UPDATE archive SET mid=?,typeid=?,videos=?,title=?,cover=?,content=?,duration=?,attribute=?,copyright=?,access=?,pubtime=?,state=?,mission_id=?,order_id=?,redirect_url=?,mtime=?,forward=?,dynamic=?,cid=?,dimensions=? WHERE aid=?"
_delArchiveSQL = "UPDATE archive SET state=? WHERE aid=?"
_upPassedSQL = "SELECT aid FROM archive WHERE mid=? AND state>=0 ORDER BY pubtime DESC"
)
// UpPassed is
func (d *Dao) UpPassed(c context.Context, mid int64) (aids []int64, err error) {
rows, err := d.db.Query(c, _upPassedSQL, mid)
if err != nil {
log.Error("d.db.Query(%s, %d) error(%v)", _upPassedSQL, mid, err)
return
}
defer rows.Close()
for rows.Next() {
var aid int64
if err = rows.Scan(&aid); err != nil {
log.Error("rows.Scan(%d) error(%v)", aid, err)
return
}
aids = append(aids, aid)
}
err = rows.Err()
return
}
// Archive get a archive by aid.
func (d *Dao) Archive(c context.Context, aid int64) (a *result.Archive, err error) {
row := d.db.QueryRow(c, _arcSQL, aid)
a = &result.Archive{}
if err = row.Scan(&a.AID, &a.Mid, &a.TypeID, &a.Videos, &a.Copyright, &a.Title, &a.Cover, &a.Content, &a.Duration,
&a.Attribute, &a.State, &a.Access, &a.PubTime, &a.CTime, &a.MissionID, &a.OrderID, &a.RedirectURL, &a.Forward, &a.Dynamic); err != nil {
if err == sql.ErrNoRows {
a = nil
err = nil
} else {
log.Error("row.Scan error(%v)", err)
}
}
return
}
// TxAddArchive add archive result
func (d *Dao) TxAddArchive(c context.Context, tx *sql.Tx, a *archive.Archive, ad *archive.Addit, videoCnt int, firstCid int64, dimensions string) (rows int64, err error) {
res, err := tx.Exec(_inArchiveSQL, a.ID, a.Mid, a.TypeID, videoCnt, a.Title, a.Cover, a.Content, a.Duration, a.Attribute, a.Copyright, a.Access, a.PubTime, a.State, ad.MissionID, ad.OrderID, ad.RedirectURL, a.Forward, ad.Dynamic, firstCid, dimensions)
if err != nil {
log.Error("tx.Exec(%s) error(%v)", _inArchiveSQL, err)
return
}
return res.RowsAffected()
}
// TxUpArchive update archive result
func (d *Dao) TxUpArchive(c context.Context, tx *sql.Tx, a *archive.Archive, ad *archive.Addit, videoCnt int, firstCid int64, dimensions string) (rows int64, err error) {
res, err := tx.Exec(_upArchiveSQL, a.Mid, a.TypeID, videoCnt, a.Title, a.Cover, a.Content, a.Duration, a.Attribute, a.Copyright, a.Access, a.PubTime, a.State, ad.MissionID, ad.OrderID, ad.RedirectURL, time.Now(), a.Forward, ad.Dynamic, firstCid, dimensions, a.ID)
if err != nil {
log.Error("tx.Exec(%s) error(%v)", _upArchiveSQL, err)
return
}
return res.RowsAffected()
}
// TxDelArchive delete archive
func (d *Dao) TxDelArchive(c context.Context, tx *sql.Tx, aid int64) (rows int64, err error) {
res, err := tx.Exec(_delArchiveSQL, archive.StateForbidUpDelete, aid)
if err != nil {
log.Error("tx.Execerror(%v)", err)
return
}
return res.RowsAffected()
}

View File

@@ -0,0 +1,59 @@
package result
import (
"context"
"testing"
"go-common/app/job/main/archive/model/archive"
. "github.com/smartystreets/goconvey/convey"
)
func Test_UpPassed(t *testing.T) {
Convey("UpPassed", t, func() {
a, err := d.UpPassed(context.TODO(), 1684013)
So(err, ShouldBeNil)
Println(a)
})
}
func Test_Archive(t *testing.T) {
Convey("Archive", t, func() {
a, err := d.Archive(context.TODO(), 1684013)
So(err, ShouldBeNil)
Println(a)
})
}
func Test_TxAddArchive(t *testing.T) {
Convey("TxAddArchive", t, func() {
tx, err := d.BeginTran(context.TODO())
So(err, ShouldBeNil)
_, err = d.TxAddArchive(context.TODO(), tx, &archive.Archive{}, &archive.Addit{}, 0, 0, "")
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}
func Test_TxUpArchive(t *testing.T) {
Convey("TxUpArchive", t, func() {
tx, err := d.BeginTran(context.TODO())
So(err, ShouldBeNil)
_, err = d.TxUpArchive(context.TODO(), tx, &archive.Archive{ID: 0}, &archive.Addit{}, 0, 0, "")
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}
func Test_TxDelArchive(t *testing.T) {
Convey("TxDelArchive", t, func() {
tx, err := d.BeginTran(context.TODO())
So(err, ShouldBeNil)
_, err = d.TxDelArchive(context.TODO(), tx, 0)
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}

View File

@@ -0,0 +1,28 @@
package result
import (
"context"
"go-common/app/job/main/archive/conf"
"go-common/library/database/sql"
)
// Dao is redis dao.
type Dao struct {
c *conf.Config
db *sql.DB
}
// New is new redis dao.
func New(c *conf.Config) (d *Dao) {
d = &Dao{
c: c,
db: sql.NewMySQL(c.DB.Result),
}
return d
}
// BeginTran begin transcation.
func (d *Dao) BeginTran(c context.Context) (tx *sql.Tx, err error) {
return d.db.Begin(c)
}

View File

@@ -0,0 +1,34 @@
package result
import (
"flag"
"os"
"testing"
"go-common/app/job/main/archive/conf"
)
var (
d *Dao
)
func TestMain(m *testing.M) {
if os.Getenv("DEPLOY_ENV") != "" {
flag.Set("app_id", "main.app-svr.archive-job")
flag.Set("conf_token", "MmQwIqWAyIaIu8CKb7MKcNSYlGGhoudN")
flag.Set("tree_id", "2301")
flag.Set("conf_version", "docker-1")
flag.Set("deploy_env", "uat")
flag.Set("conf_host", "config.bilibili.co")
flag.Set("conf_path", "/tmp")
flag.Set("region", "sh")
flag.Set("zone", "sh001")
}
flag.Parse()
if err := conf.Init(); err != nil {
panic(err)
}
d = New(conf.Conf)
m.Run()
os.Exit(0)
}

View File

@@ -0,0 +1,41 @@
package result
import (
"context"
"fmt"
"strings"
"go-common/app/job/main/archive/model/archive"
"go-common/library/database/sql"
"go-common/library/log"
)
const (
_addStaffSQL = "INSERT INTO archive_staff (aid,mid,title,ctime,mtime) VALUES "
_delStaffSQL = "DELETE FROM archive_staff WHERE aid=?"
)
// TxDelStaff del archive staff
func (d *Dao) TxDelStaff(c context.Context, tx *sql.Tx, aid int64) (err error) {
_, err = tx.Exec(_delStaffSQL, aid)
if err != nil {
log.Error("tx.Exec error(%v)", err)
return
}
return
}
// TxAddStaff add archive staff
func (d *Dao) TxAddStaff(c context.Context, tx *sql.Tx, aid int64, staff []*archive.Staff) (err error) {
var valSQL []string
for _, s := range staff {
valSQL = append(valSQL, fmt.Sprintf("(%d,%d,'%s','%s','%s')", s.Aid, s.Mid, s.Title, s.Ctime, s.Mtime))
}
valSQLStr := strings.Join(valSQL, ",")
_, err = tx.Exec(_addStaffSQL + valSQLStr)
if err != nil {
log.Error("tx.Exec error(%v)", err)
return
}
return
}

View File

@@ -0,0 +1,47 @@
package result
import (
"context"
"testing"
"go-common/app/job/main/archive/model/archive"
"github.com/smartystreets/goconvey/convey"
)
func TestTxDelStaff(t *testing.T) {
var (
c = context.TODO()
aid = int64(4052032)
)
convey.Convey("TxDelStaff", t, func(ctx convey.C) {
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
tx, err := d.BeginTran(c)
ctx.So(err, convey.ShouldBeNil)
err = d.TxDelStaff(c, tx, aid)
ctx.So(err, convey.ShouldBeNil)
err = tx.Commit()
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestTxAddStaff(t *testing.T) {
var (
c = context.TODO()
aid = int64(4052032)
staff []*archive.Staff
)
convey.Convey("TxAddStaff", t, func(ctx convey.C) {
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
staff = append(staff, &archive.Staff{Aid: aid, Mid: 3333, Title: "哈哈", Ctime: "2018-11-28T16:50:14+08:00", Mtime: "2018-12-21T11:41:37+08:00"})
staff = append(staff, &archive.Staff{Aid: aid, Mid: 4444, Title: "2223", Ctime: "2018-11-28T16:50:14+08:00", Mtime: "2018-12-21T11:41:38+08:00"})
tx, err := d.BeginTran(c)
ctx.So(err, convey.ShouldBeNil)
err = d.TxAddStaff(c, tx, aid, staff)
ctx.So(err, convey.ShouldBeNil)
err = tx.Commit()
ctx.So(err, convey.ShouldBeNil)
})
})
}

View File

@@ -0,0 +1,47 @@
package result
import (
"context"
"go-common/app/job/main/archive/model/archive"
"go-common/library/database/sql"
"go-common/library/log"
)
const (
_inVideoSQL = `INSERT INTO archive_video (aid,eptitle,description,filename,src_type,cid,duration,index_order,attribute,weblink,dimensions) VALUES(?,?,?,?,?,?,?,?,?,?,?)
ON DUPLICATE KEY UPDATE eptitle=?,description=?,filename=?,src_type=?,duration=?,index_order=?,attribute=?,weblink=?,dimensions=?`
_delVideoByCidSQL = "DELETE FROM archive_video where aid=? and cid=?"
_delVideosSQL = "DELETE FROM archive_video WHERE aid=?"
)
// TxAddVideo add videos result
func (d *Dao) TxAddVideo(c context.Context, tx *sql.Tx, v *archive.Video) (rows int64, err error) {
res, err := tx.Exec(_inVideoSQL, v.Aid, v.Title, v.Desc, v.Filename, v.SrcType, v.Cid, v.Duration, v.Index, v.Attribute, v.WebLink, v.Dimensions,
v.Title, v.Desc, v.Filename, v.SrcType, v.Duration, v.Index, v.Attribute, v.WebLink, v.Dimensions)
if err != nil {
log.Error("tx.Exec error(%v)", err)
return
}
return res.RowsAffected()
}
// TxDelVideoByCid del videos by aid and cid
func (d *Dao) TxDelVideoByCid(c context.Context, tx *sql.Tx, aid, cid int64) (rows int64, err error) {
res, err := tx.Exec(_delVideoByCidSQL, aid, cid)
if err != nil {
log.Error("tx.Exec error(%v)", err)
return
}
return res.RowsAffected()
}
// TxDelVideos del videos
func (d *Dao) TxDelVideos(c context.Context, tx *sql.Tx, aid int64) (rows int64, err error) {
res, err := tx.Exec(_delVideosSQL, aid)
if err != nil {
log.Error("tx.Exec(%s, %d) error(%v)", _delVideosSQL, aid, err)
return
}
return res.RowsAffected()
}

View File

@@ -0,0 +1,43 @@
package result
import (
"context"
"testing"
"go-common/app/job/main/archive/model/archive"
. "github.com/smartystreets/goconvey/convey"
)
func Test_TxAddVideo(t *testing.T) {
Convey("Archive", t, func() {
tx, err := d.BeginTran(context.TODO())
So(err, ShouldBeNil)
_, err = d.TxAddVideo(context.TODO(), tx, &archive.Video{Aid: 1, Cid: 1})
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}
func Test_TxDelVideoByCid(t *testing.T) {
Convey("TxDelVideoByCid", t, func() {
tx, err := d.BeginTran(context.TODO())
So(err, ShouldBeNil)
_, err = d.TxDelVideoByCid(context.TODO(), tx, 1, 1)
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}
func Test_TxDelVideos(t *testing.T) {
Convey("TxDelVideos", t, func() {
tx, err := d.BeginTran(context.TODO())
So(err, ShouldBeNil)
_, err = d.TxDelVideos(context.TODO(), tx, 0)
So(err, ShouldBeNil)
err = tx.Commit()
So(err, ShouldBeNil)
})
}