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,42 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
"go_test",
)
go_library(
name = "go_default_library",
srcs = [
"db.go",
"elec_db.go",
"model.go",
],
importpath = "go-common/app/job/main/ugcpay/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//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"],
)
go_test(
name = "go_default_test",
srcs = ["model_test.go"],
embed = [":go_default_library"],
tags = ["automanaged"],
deps = ["//vendor/github.com/smartystreets/goconvey/convey:go_default_library"],
)

View File

@@ -0,0 +1,206 @@
package model
import (
"time"
)
// LogTask .
type LogTask struct {
ID int64
Name string
Expect int64
Success int64
Failure int64
State string
CTime time.Time
MTime time.Time
}
// Asset .
type Asset struct {
ID int64
MID int64
OID int64
OType string
Currency string
Price int64
State string
CTime time.Time
MTime time.Time
}
// Order .
type Order struct {
ID int64
OrderID string
MID int64
Biz string
Platform string
OID int64
OType string
Fee int64
RealFee int64
Currency string
PayID string
PayReason string
PayTime time.Time
RefundTime time.Time
State string // created 已创建, paying 支付中, paid 已支付, failed 支付失败, closed 已关闭, expired 已超时, finished 已完成(支付成功且对账成功)
Version int64 // 乐观锁,每次更新,值++
CTime time.Time
MTime time.Time
}
// LogOrder .
type LogOrder struct {
ID int64
OrderID string
FromState string
ToState string
Desc string
CTime time.Time
MTime time.Time
}
// Bill .
type Bill struct {
ID int64
BillID string
MID int64
Biz string
Currency string
In int64
Out int64
Ver int64 // 账单版本,比如 201812, 20181202
Version int64 // 乐观锁,每次更新++
CTime time.Time
MTime time.Time
}
// DailyBill .
type DailyBill struct {
Bill
MonthVer int64
}
// BizAccount .
type BizAccount struct {
ID int64
Biz string
Currency string
Balance int64
Ver int64
State string
CTime time.Time
MTime time.Time
}
// UserAccount .
type UserAccount struct {
BizAccount
MID int64
}
// AccountLog .
type AccountLog struct {
ID int64
Name string
AccountID int64
From int64
To int64
Ver int64
State string
CTime time.Time
MTime time.Time
}
// AggrIncomeUser .
type AggrIncomeUser struct {
ID int64
MID int64
Currency string
PaySuccess int64
PayError int64
TotalIn int64
TotalOut int64
CTime time.Time
MTime time.Time
}
// AggrIncomeUserAsset .
type AggrIncomeUserAsset struct {
ID int64
MID int64
Currency string
Ver int64
OID int64
OType string
PaySuccess int64
PayError int64
TotalIn int64
TotalOut int64
CTime time.Time
MTime time.Time
}
// OrderBadDebt .
type OrderBadDebt struct {
ID int64
OrderID string
Type string
State string
CTime time.Time
MTime time.Time
}
// LogBillDaily .
type LogBillDaily struct {
ID int64
BillID string
FromIn int64
ToIn int64
FromOut int64
ToOut int64
OrderID string
CTime time.Time
MTime time.Time
}
// LogBillMonthly .
type LogBillMonthly struct {
ID int64
BillID string
FromIn int64
ToIn int64
FromOut int64
ToOut int64
BillUserDailyID string
CTime time.Time
MTime time.Time
}
// OrderRechargeShell .
type OrderRechargeShell struct {
ID int64
MID int64
OrderID string
Biz string
Amount int64
PayMSG string
State string
Ver int64
CTime time.Time
MTime time.Time
}
// OrderRechargeShellLog .
type OrderRechargeShellLog struct {
ID int64
OrderID string
FromState string
ToState string
Desc string
BillUserMonthlyID string
CTime time.Time
MTime time.Time
}

View File

@@ -0,0 +1,153 @@
package model
import (
"time"
"go-common/library/log"
)
// DBOldElecPayTradeInfo .
type DBOldElecPayTradeInfo struct {
ID int64
OrderID string
AVID string
}
// DBOldElecPayOrder .
type DBOldElecPayOrder struct {
ID int64 `json:"id"`
APPID int `json:"app_id"`
UPMID int64 `json:"mid"`
PayMID int64 `json:"pay_mid"`
OrderID string `json:"order_no"`
ElecNum int64 `json:"elec_num"`
Status int `json:"status"` // 订单状态1.消费中 2.消费成功 3.消费失败
CTimeStr string `json:"ctime"`
MTimeStr string `json:"mtime"`
CTime time.Time
MTime time.Time
}
// IsPaid .
func (d *DBOldElecPayOrder) IsPaid() bool {
return d.Status == 2
}
// IsHiddnRank .
func (d *DBOldElecPayOrder) IsHiddnRank() bool {
return d.APPID == 19 // 动态互推
}
// ParseCTime .
func (d *DBOldElecPayOrder) ParseCTime() (t time.Time) {
if !d.CTime.IsZero() {
return d.CTime
}
var err error
if t, err = time.ParseInLocation("2006-01-02 15:04:05", d.CTimeStr, time.Local); err != nil {
log.Error("DBOldElecPayOrder ctime parse failed: %s, err: %+v", d.CTimeStr, err)
t = time.Now()
}
return
}
// ParseMTime .
func (d *DBOldElecPayOrder) ParseMTime() (t time.Time) {
if !d.MTime.IsZero() {
return d.MTime
}
var err error
if t, err = time.ParseInLocation("2006-01-02 15:04:05", d.MTimeStr, time.Local); err != nil {
log.Error("DBOldElecPayOrder mtime parse failed: %s, err: %+v", d.MTimeStr, err)
t = time.Now()
}
return
}
// DBOldElecMessage .
type DBOldElecMessage struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
RefMID int64 `json:"ref_mid"`
RefID int64 `json:"ref_id"`
Message string `json:"message"`
AVID string `json:"av_no"`
DateVer string `json:"date_version"` // yyyy-MM格式年-月
Type int `json:"type"` // 留言类型, 1.用户对up主留言 2.up回复用户留言
State int `json:"state"` // 留言状态 0.未回复 1.已回复 2 已屏蔽
CTimeStr string `json:"ctime"`
MTimeStr string `json:"mtime"`
CTime time.Time
MTime time.Time
}
// ParseCTime .
func (d *DBOldElecMessage) ParseCTime() (t time.Time) {
if !d.CTime.IsZero() {
return d.CTime
}
var err error
if t, err = time.ParseInLocation("2006-01-02 15:04:05", d.CTimeStr, time.Local); err != nil {
log.Error("DBOldElecMessage ctime parse failed: %s, err: %+v", d.CTimeStr, err)
t = time.Now()
}
return
}
// ParseMTime .
func (d *DBOldElecMessage) ParseMTime() (t time.Time) {
if !d.MTime.IsZero() {
return d.MTime
}
var err error
if t, err = time.ParseInLocation("2006-01-02 15:04:05", d.MTimeStr, time.Local); err != nil {
log.Error("DBOldElecMessage mtime parse failed: %s, err: %+v", d.MTimeStr, err)
t = time.Now()
}
return
}
// DBOldElecUserSetting .
type DBOldElecUserSetting struct {
ID int64 `json:"id"`
MID int64 `json:"mid"`
SettingID int `json:"setting_id"`
Status int `json:"status"`
}
// BitValue 返回该配置位==1的数值
func (d *DBOldElecUserSetting) BitValue() int32 {
switch d.SettingID {
case 1:
return 0x1
case 2:
return 0x2
default:
log.Error("DBOldElecUserSetting unknown SettingID:%d, %+v", d.SettingID, d)
}
return 0
}
// DBElecMessage .
type DBElecMessage struct {
ID int64
Ver int64
AVID int64
UPMID int64
PayMID int64
Message string
Replied bool
Hidden bool
CTime time.Time
MTime time.Time
}
// DBElecReply .
type DBElecReply struct {
ID int64
MSGID int64
Reply string
Hidden bool
CTime time.Time
MTime time.Time
}

View File

@@ -0,0 +1,98 @@
package model
import (
"encoding/json"
"math"
)
// 各种状态枚举
const (
OrderStatePaid = "paid"
OrderStateSettled = "settled"
OrderStateBadDebt = "bad_debt"
OrderStateRefundFinished = "ref_finished"
OrderStateSettledRefunded = "st_refunded"
BizAsset = "asset"
CurrencyBP = "bp"
StateRunning = "running"
StateValid = "valid"
AccountStateIncome = "income"
AccountStateWithdraw = "withdraw"
AccountStateProfit = "profit"
AccountStateLoss = "fill_loss"
PayCheckOrderStateING = "WAIT_RECONCILIATION"
PayCheckOrderStateSuccess = "RECONCILIATION_SUCCESS"
PayCheckOrderStateFail = "RECONCILIATION_FAIL"
DefaultUserSetting = math.MaxInt32
)
// Message binlog databus msg.
type Message struct {
Action string `json:"action"`
Table string `json:"table"`
New json.RawMessage `json:"new"`
Old json.RawMessage `json:"old"`
}
// BinlogOrderUser .
type BinlogOrderUser struct {
OrderID string `json:"order_id"`
}
// BinlogAsset .
type BinlogAsset struct {
OID int64 `json:"oid"`
OType string `json:"otype"`
Currency string `json:"currency"`
}
// BinlogAssetRelation .
type BinlogAssetRelation struct {
OID int64 `json:"oid"`
OType string `json:"otype"`
MID int64 `json:"mid"`
}
// PayCheckRefundOrder .
type PayCheckRefundOrder struct {
Elements []*PayCheckRefundOrderEle `json:"batchRefundBillVOS"`
TXID string `json:"txId"`
}
// PayCheckRefundOrderEle .
type PayCheckRefundOrderEle struct {
RefundNO string `json:"refundNo"`
RefundAmount int64 `json:"refundAmount"`
CustomerRefundID string `json:"customerRefundId"`
RecoStatusDesc string `json:"recoStatusDesc"`
TXID string `json:"txId"`
}
// PayCheckOrder .
type PayCheckOrder struct {
PayChannelOrderNo string `json:"payChannelOrderNo"` //第三方支付渠道支付流水号
TxID string `json:"txId"`
BankAmount int64 `json:"bankAmount"` // 订单支付金额
PayTime int64 `json:"payTime"` // 订单支付时间,毫秒值
RecoStatusDesc string `json:"recoStatusDesc"` // 对账状态 WAIT_RECONCILIATION对账中,RECONCILIATION_SUCCESS对账成功,RECONCILIATION_FAIL对账失败
}
// PayQuery .
type PayQuery struct {
Orders []*PayOrder `json:"orders"`
}
// PayOrder .
type PayOrder struct {
TXID int64 `json:"txId"`
OrderID string `json:"orderId"`
PayStatus string `json:"payStatus"`
PayStatusDesc string `json:"payStatusDesc"`
FailReason string `json:"failReason"`
}

View File

@@ -0,0 +1,24 @@
package model
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func TestElecUserSetting(t *testing.T) {
Convey("", t, func() {
data := &DBOldElecUserSetting{
MID: 46333,
SettingID: 1,
Status: 1,
}
So(data.BitValue(), ShouldEqual, 0x01)
data = &DBOldElecUserSetting{
MID: 46333,
SettingID: 2,
Status: 1,
}
So(data.BitValue(), ShouldEqual, 0x02)
})
}