From ae6e6490b2aa8da498d6aa2e8a9bd828f016be2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Thu, 15 Sep 2022 15:58:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor(model):=E5=9F=BA=E6=9C=AC=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=AF=B9=E4=BA=8E=E6=95=B0=E6=8D=AE=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=9A=84=E8=BF=81=E7=A7=BB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/end_user_detail.go | 101 ++++++++++++++++++------------------ model/maintenance_fee.go | 22 ++++---- model/meter_04kv.go | 31 ++++++----- model/park.go | 79 ++++++++++++++-------------- model/region.go | 15 +++--- model/report.go | 80 +++++++++++++--------------- model/report_summary.go | 106 +++++++++++++++++++------------------- model/user.go | 42 +++++++-------- model/user_charges.go | 41 +++++++-------- model/user_detail.go | 61 +++++++++------------- model/will_diluted_fee.go | 25 ++++----- 11 files changed, 285 insertions(+), 318 deletions(-) diff --git a/model/end_user_detail.go b/model/end_user_detail.go index 66bbf49..238f379 100644 --- a/model/end_user_detail.go +++ b/model/end_user_detail.go @@ -4,60 +4,59 @@ import ( "errors" "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) type EndUserDetail struct { - CreatedAndModified `xorm:"extends"` - ReportId string `xorm:"varchar(120) pk not null" json:"reportId"` - ParkId string `xorm:"varchar(120) pk not null" json:"parkId"` - MeterId string `xorm:"meter_04kv_id varchar(120) pk not null" json:"meterId"` - Seq int64 `xorm:"bigint not null default 0" json:"seq"` - Ratio decimal.Decimal `xorm:"numeric(8,4) not null default 1" json:"ratio"` - Address *string `xorm:"varchar(100)" json:"address"` - CustomerName *string `xorm:"varchar(100)" json:"customerName"` - ContactName *string `xorm:"varchar(70)" json:"contactName"` - ContactPhone *string `xorm:"varchar(50)" json:"contactPhone"` - IsPublicMeter bool `xorm:"'public_meter' bool not null default false" json:"isPublicMeter"` - WillDilute bool `xorm:"'dilute' bool not null default false" json:"willDilute"` - LastPeriodOverall decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"lastPeriodOverall"` - LastPeriodCritical decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"lastPeriodCritical"` - LastPeriodPeak decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"lastPeriodPeak"` - LastPeriodFlat decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"lastPeriodFlat"` - LastPeriodValley decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"lastPeriodValley"` - CurrentPeriodOverall decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"currentPeriodOverall"` - CurrentPeriodCritical decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"currentPeriodCritical"` - CurrentPeriodPeak decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"currentPeriodPeak"` - CurrentPeriodFlat decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"currentPeriodFlat"` - CurrentPeriodValley decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"currentPeriodValley"` - AdjustOverall decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"adjustOverall"` - AdjustCritical decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"adjustCritical"` - AdjustPeak decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"adjustPeak"` - AdjustFlat decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"adjustFlat"` - AdjustValley decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"adjustValley"` - Overall decimal.NullDecimal `xorm:"numeric(14,2)" json:"overall"` - OverallFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"overallFee"` - OverallProportion decimal.Decimal `xorm:"numeric(16,15) not null default 0" json:"-"` - Critical decimal.NullDecimal `xorm:"numeric(14,2)" json:"critical"` - CriticalFee decimal.NullDecimal `xorm:"numeric(18,8)" json:"criticalFee"` - Peak decimal.NullDecimal `xorm:"numeric(14,2)" json:"peak"` - PeakFee decimal.NullDecimal `xorm:"numeric(18,8)" json:"peakFee"` - Flat decimal.NullDecimal `xorm:"numeric(14,2)" json:"flat"` - FlatFee decimal.NullDecimal `xorm:"numeric(18,8)" json:"flatFee"` - Valley decimal.NullDecimal `xorm:"numeric(14,2)" json:"valley"` - ValleyFee decimal.NullDecimal `xorm:"numeric(18,8)" json:"valleyFee"` - BasicFeeDiluted decimal.NullDecimal `xorm:"numeric(18,8)" json:"basicFeeDiluted"` - AdjustFeeDiluted decimal.NullDecimal `xorm:"numeric(18,8)" json:"adjustFeeDiluted"` - LossDiluted decimal.NullDecimal `xorm:"numeric(18,8)" json:"lossDiluted"` - LossFeeDiluted decimal.NullDecimal `xorm:"numeric(18,8)" json:"lossFeeDiluted"` - MaintenanceFeeDiluted decimal.NullDecimal `xorm:"numeric(18,8)" json:"maintenanceFeeDiluted"` - PublicConsumptionDiluted decimal.NullDecimal `xorm:"numeric(18,8)" json:"publicConsumptionDiluted"` - FinalDiluted decimal.NullDecimal `xorm:"numeric(14,2)" json:"finalDiluted"` - FinalCharge decimal.NullDecimal `xorm:"numeric(14,2)" json:"finalCharge"` - Initialize bool `xorm:"-" json:"-"` -} - -func (EndUserDetail) TableName() string { - return "end_user_detail" + bun.BaseModel `bun:"table:end_user_detail,alias:eud"` + CreatedAndModified `bun:",extend"` + ReportId string `bun:",pk,notnull" json:"reportId"` + ParkId string `bun:",pk,notnull" json:"parkId"` + MeterId string `bun:"meter_04kv_id,pk,notnull" json:"meterId"` + Seq int64 `bun:"type:bigint,notnull,default:0" json:"seq"` + Ratio decimal.Decimal `bun:",notnull,default:1" json:"ratio"` + Address *string `json:"address"` + CustomerName *string `json:"customerName"` + ContactName *string `json:"contactName"` + ContactPhone *string `json:"contactPhone"` + IsPublicMeter bool `bun:"public_meter,notnull,default:false" json:"isPublicMeter"` + WillDilute bool `bun:"dilute,notnull,default:false" json:"willDilute"` + LastPeriodOverall decimal.Decimal `bun:",notnull,default:0" json:"lastPeriodOverall"` + LastPeriodCritical decimal.Decimal `bun:",notnull,default:0" json:"lastPeriodCritical"` + LastPeriodPeak decimal.Decimal `bun:",notnull,default:0" json:"lastPeriodPeak"` + LastPeriodFlat decimal.Decimal `bun:",notnull,default:0" json:"lastPeriodFlat"` + LastPeriodValley decimal.Decimal `bun:",notnull,default:0" json:"lastPeriodValley"` + CurrentPeriodOverall decimal.Decimal `bun:",notnull,default:0" json:"currentPeriodOverall"` + CurrentPeriodCritical decimal.Decimal `bun:",notnull,default:0" json:"currentPeriodCritical"` + CurrentPeriodPeak decimal.Decimal `bun:",notnull,default:0" json:"currentPeriodPeak"` + CurrentPeriodFlat decimal.Decimal `bun:",notnull,default:0" json:"currentPeriodFlat"` + CurrentPeriodValley decimal.Decimal `bun:",notnull,default:0" json:"currentPeriodValley"` + AdjustOverall decimal.Decimal `bun:",notnull,default:0" json:"adjustOverall"` + AdjustCritical decimal.Decimal `bun:",notnull,default:0" json:"adjustCritical"` + AdjustPeak decimal.Decimal `bun:",notnull,default:0" json:"adjustPeak"` + AdjustFlat decimal.Decimal `bun:",notnull,default:0" json:"adjustFlat"` + AdjustValley decimal.Decimal `bun:",notnull,default:0" json:"adjustValley"` + Overall decimal.NullDecimal `json:"overall"` + OverallFee decimal.NullDecimal `json:"overallFee"` + OverallProportion decimal.Decimal `bun:",notnull,default:0" json:"-"` + Critical decimal.NullDecimal `json:"critical"` + CriticalFee decimal.NullDecimal `json:"criticalFee"` + Peak decimal.NullDecimal `json:"peak"` + PeakFee decimal.NullDecimal `json:"peakFee"` + Flat decimal.NullDecimal `json:"flat"` + FlatFee decimal.NullDecimal `json:"flatFee"` + Valley decimal.NullDecimal `json:"valley"` + ValleyFee decimal.NullDecimal `json:"valleyFee"` + BasicFeeDiluted decimal.NullDecimal `json:"basicFeeDiluted"` + AdjustFeeDiluted decimal.NullDecimal `json:"adjustFeeDiluted"` + LossDiluted decimal.NullDecimal `json:"lossDiluted"` + LossFeeDiluted decimal.NullDecimal `json:"lossFeeDiluted"` + MaintenanceFeeDiluted decimal.NullDecimal `json:"maintenanceFeeDiluted"` + PublicConsumptionDiluted decimal.NullDecimal `json:"publicConsumptionDiluted"` + FinalDiluted decimal.NullDecimal `json:"finalDiluted"` + FinalCharge decimal.NullDecimal `json:"finalCharge"` + Initialize bool `bun:"-" json:"-"` + Origin *Meter04KV `bun:"rel:belongs-to,join:park_id=park_id,join:meter_04kv_id=code"` } func (d EndUserDetail) Validate() (bool, error) { diff --git a/model/maintenance_fee.go b/model/maintenance_fee.go index 9ef28e2..0ec4d61 100644 --- a/model/maintenance_fee.go +++ b/model/maintenance_fee.go @@ -2,19 +2,17 @@ package model import ( "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) type MaintenanceFee struct { - CreatedAndModified `xorm:"extends"` - Deleted `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"id"` - ParkId string `xorm:"varchar(120) not null" json:"parkId"` - Name string `xorm:"varchar(50) not null" json:"name"` - Fee decimal.Decimal `xorm:"numeric(8,2) not null" json:"fee"` - Memo *string `xorm:"text" json:"memo"` - Enabled bool `xorm:"bool not null" json:"enabled"` -} - -func (MaintenanceFee) TableName() string { - return "maintenance_fee" + bun.BaseModel `bun:"table:maintenance_fee,alias:m"` + CreatedAndModified `bun:",extend"` + Deleted `bun:",extend"` + Id string `bun:",pk,notnull" json:"id"` + ParkId string `bun:",notnull" json:"parkId"` + Name string `bun:",notnull" json:"name"` + Fee decimal.Decimal `bun:",notnull" json:"fee"` + Memo *string `bun:"type:text" json:"memo"` + Enabled bool `bun:",notnull" json:"enabled"` } diff --git a/model/meter_04kv.go b/model/meter_04kv.go index 70a5da5..162c1fc 100644 --- a/model/meter_04kv.go +++ b/model/meter_04kv.go @@ -2,23 +2,22 @@ package model import ( "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) type Meter04KV struct { - CreatedAndModified `xorm:"extends"` - Code string `xorm:"varchar(120) pk not null" json:"code" excel:"code"` - ParkId string `xorm:"varchar(120) pk not null" json:"parkId"` - Address *string `xorm:"varchar(100)" json:"address" excel:"address"` - CustomerName *string `xorm:"varchar(100)" json:"customerName" excel:"name"` - ContactName *string `xorm:"varchar(70)" json:"contactName" excel:"contact"` - ContactPhone *string `xorm:"varchar(50)" json:"contactPhone" excel:"phone"` - Ratio decimal.Decimal `xorm:"numeric(8,4) not null default 1" json:"ratio" excel:"ratio"` - Seq int64 `xorm:"bigint not null" json:"seq" excel:"seq"` - IsPublicMeter bool `xorm:"'public_meter' bool not null default false" json:"isPublicMeter" excel:"public"` - WillDilute bool `xorm:"'dilute' bool not null default false" json:"willDilute" excel:"dilute"` - Enabled bool `xorm:"bool not null default true" json:"enabled"` -} - -func (Meter04KV) TableName() string { - return "meter_04kv" + bun.BaseModel `bun:"table:meter_04kv,alias:mt"` + CreatedAndModified `bun:",extend"` + Code string `bun:",pk,notnull" json:"code" excel:"code"` + ParkId string `bun:",pk,notnull" json:"parkId"` + Address *string `json:"address" excel:"address"` + CustomerName *string `json:"customerName" excel:"name"` + ContactName *string `json:"contactName" excel:"contact"` + ContactPhone *string `json:"contactPhone" excel:"phone"` + Ratio decimal.Decimal `bun:",notnull,default:1" json:"ratio" excel:"ratio"` + Seq int64 `bun:"type:bigint,notnull" json:"seq" excel:"seq"` + IsPublicMeter bool `bun:"public_meter,notnull,default:false" json:"isPublicMeter" excel:"public"` + WillDilute bool `bun:"dilute,notnull,default:false" json:"willDilute" excel:"dilute"` + Enabled bool `bun:",notnull,default:true" json:"enabled"` + ParkDetail *Park `bun:"rel:belongs-to,join:park_id=id" json:"-"` } diff --git a/model/park.go b/model/park.go index 2c7eb52..437475c 100644 --- a/model/park.go +++ b/model/park.go @@ -4,6 +4,7 @@ import ( "time" "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) const ( @@ -18,50 +19,48 @@ const ( ) type Park struct { - CreatedAndModified `xorm:"extends"` - Deleted `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"id"` - UserId string `xorm:"varchar(120) not null" json:"userId"` - Name string `xorm:"varchar(70) not null" json:"name"` - Abbr *string `xorm:"varchar(50)" json:"abbr"` - Area decimal.NullDecimal `xorm:"numeric(14,2)" json:"area"` - TenementQuantity decimal.NullDecimal `xorm:"numeric(8,0)" json:"tenement"` - Capacity decimal.NullDecimal `xorm:"numeric(16,2)" json:"capacity"` - Category int8 `xorm:"smallint not null default 0" json:"category"` - SubmeterType int8 `xorm:"'meter_04kv_type' smallint not null default 0" json:"meter04kvType"` - Region *string `xorm:"varchar(10)" json:"region"` - Address *string `xorm:"varchar(120)" json:"address"` - Contact *string `xorm:"varchar(100)" json:"contact"` - Phone *string `xorm:"varchar(50)" json:"phone"` - Enabled bool `xorm:"bool not null" json:"enabled"` -} - -func (Park) TableName() string { - return "park" + bun.BaseModel `bun:"table:park,alias:p"` + CreatedAndModified `bun:",extend"` + Deleted `bun:",extend"` + Id string `bun:",pk,notnull" json:"id"` + UserId string `bun:",notnull" json:"userId"` + Name string `bun:",notnull" json:"name"` + Abbr *string `json:"abbr"` + Area decimal.NullDecimal `json:"area"` + TenementQuantity decimal.NullDecimal `json:"tenement"` + Capacity decimal.NullDecimal `json:"capacity"` + Category int8 `bun:"type:smallint,notnull,default:0" json:"category"` + SubmeterType int8 `bun:"meter_04kv_type,type:smallint,notnull,default:0" json:"meter04kvType"` + Region *string `json:"region"` + Address *string `json:"address"` + Contact *string `json:"contact"` + Phone *string `json:"phone"` + Enabled bool `bun:",notnull" json:"enabled"` + EnterpriseIndex *User `bun:"rel:belongs-to,join:user_id=id" json:"-"` + Enterprise *UserDetail `bun:"rel:belongs-to,join:user_id=id" json:"-"` + MaintenanceFees []*MaintenanceFee `bun:"rel:has-many,join:id=park_id" json:"-"` + Meters []*Meter04KV `bun:"rel:has-many,join:id=park_id" json:"-"` } type ParkSimplified struct { - Id string `xorm:"varchar(120) pk not null" json:"id"` - UserId string `xorm:"varchar(120) not null" json:"userId"` - Name string `xorm:"varchar(70) not null" json:"name"` - Abbr *string `xorm:"varchar(50)" json:"abbr"` - Area decimal.NullDecimal `xorm:"numeric(14,2)" json:"area"` - TenementQuantity decimal.NullDecimal `xorm:"numeric(8,0)" json:"tenement"` - Capacity decimal.NullDecimal `xorm:"numeric(16,2)" json:"capacity"` - Category int8 `xorm:"smallint not null" json:"category"` - SubmeterType int8 `xorm:"'meter_04kv_type' smallint not null" json:"meter04kvType"` - Region *string `xorm:"varchar(10)" json:"region"` - Address *string `xorm:"varchar(120)" json:"address"` - Contact *string `xorm:"varchar(100)" json:"contact"` - Phone *string `xorm:"varchar(50)" json:"phone"` -} - -func (ParkSimplified) TableName() string { - return "park" + bun.BaseModel `bun:"table:park,alias:p"` + Id string `bun:",pk,notnull" json:"id"` + UserId string `bun:",notnull" json:"userId"` + Name string `bun:",notnull" json:"name"` + Abbr *string `json:"abbr"` + Area decimal.NullDecimal `json:"area"` + TenementQuantity decimal.NullDecimal `json:"tenement"` + Capacity decimal.NullDecimal `json:"capacity"` + Category int8 `bun:"type:smallint,notnull" json:"category"` + SubmeterType int8 `bun:"meter_04kv_type,type:smallint,notnull" json:"meter04kvType"` + Region *string `json:"region"` + Address *string `json:"address"` + Contact *string `json:"contact"` + Phone *string `json:"phone"` } type ParkPeriodStatistics struct { - Id string `xorm:"varchar(120) not null" json:"id"` - Name string `xorm:"varchar(120) not null" json:"name"` - Period *time.Time `xorm:"date" json:"period" time_format:"simple_date" time_location:"shanghai"` + Id string `bun:",notnull" json:"id"` + Name string `bun:",notnull" json:"name"` + Period *time.Time `bun:"type:date" json:"period" time_format:"simple_date" time_location:"shanghai"` } diff --git a/model/region.go b/model/region.go index 89b8f46..3fa46f6 100644 --- a/model/region.go +++ b/model/region.go @@ -1,12 +1,11 @@ package model -type Region struct { - Code string `xorm:"varchar(15) pk not null" json:"code"` - Name string `xorm:"varchar(50) not null" json:"name"` - Level int `xorm:"int not null default 0" json:"level"` - Parent string `xorm:"varchar(15) not null default '0'" json:"parent"` -} +import "github.com/uptrace/bun" -func (Region) TableName() string { - return "region" +type Region struct { + bun.BaseModel `bun:"table:region,alias:r"` + Code string `bun:",pk,notnull" json:"code"` + Name string `bun:",notnull" json:"name"` + Level int `bun:",notnull,default:0" json:"level"` + Parent string `bun:",notnull,default:'0'" json:"parent"` } diff --git a/model/report.go b/model/report.go index 9786218..f161a75 100644 --- a/model/report.go +++ b/model/report.go @@ -1,6 +1,10 @@ package model -import "time" +import ( + "time" + + "github.com/uptrace/bun" +) const ( REPORT_NOT_WITHDRAW int8 = iota @@ -10,18 +14,23 @@ const ( ) type Report struct { - CreatedAndModified `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"id"` - ParkId string `xorm:"varchar(120) not null" json:"parkId"` - Period time.Time `xorm:"date not null" json:"period" time_format:"simple_date" time_location:"shanghai"` - Category int8 `xorm:"smallint not null default 0" json:"category"` - SubmeterType int8 `xorm:"'meter_04kv_type' smallint not null default 0" json:"meter04kvType"` - StepState Steps `xorm:"text not null json" json:"stepState"` - Published bool `xorm:"bool not null default false" json:"published"` - PublishedAt *time.Time `xorm:"timestampz" json:"publishedAt" time_format:"simple_datetime" time_location:"shanghai"` - Withdraw int8 `xorm:"smallint not null default 0" json:"withdraw"` - LastWithdrawAppliedAt *time.Time `xorm:"timestampz" json:"lastWithdrawAppliedAt" time_format:"simple_datetime" time_location:"shanghai"` - LastWithdrawAuditAt *time.Time `xorm:"timestampz" json:"lastWithdrawAuditAt" time_format:"simple_datetime" time_location:"shanghai"` + bun.BaseModel `bun:"table:report,alias:r"` + CreatedAndModified `bun:"extends"` + Id string `bun:",pk,notnull" json:"id"` + ParkId string `bun:",notnull" json:"parkId"` + Period time.Time `bun:"type:date,notnull" json:"period" time_format:"simple_date" time_location:"shanghai"` + Category int8 `bun:"type:smallint,notnull,default:0" json:"category"` + SubmeterType int8 `bun:"meter_04kv_type,type:smallint,notnull,default:0" json:"meter04kvType"` + StepState Steps `bun:"type:jsonb,notnull" json:"stepState"` + Published bool `bun:",notnull,default:false" json:"published"` + PublishedAt *time.Time `bun:"type:timestamptz,nullzero" json:"publishedAt" time_format:"simple_datetime" time_location:"shanghai"` + Withdraw int8 `bun:"type:smallint,notnull,default:0" json:"withdraw"` + LastWithdrawAppliedAt *time.Time `bun:"type:timestamptz,nullzero" json:"lastWithdrawAppliedAt" time_format:"simple_datetime" time_location:"shanghai"` + LastWithdrawAuditAt *time.Time `bun:"type:timestamptz,nullzero" json:"lastWithdrawAuditAt" time_format:"simple_datetime" time_location:"shanghai"` + Park *Park `bun:"rel:belongs-to,join:park_id=id" json:"-"` + Summary *ReportSummary `bun:"rel:has-one,join:id=report_id" json:"-"` + WillDilutedFees []*WillDilutedFee `bun:"rel:has-many,join:id=report_id" json:"-"` + EndUsers []*EndUserDetail `bun:"rel:has-many,join:id=report_id,join:park_id=park_id" json:"-"` } type Steps struct { @@ -33,10 +42,6 @@ type Steps struct { Publish bool `json:"publish"` } -func (Report) TableName() string { - return "report" -} - func NewSteps() Steps { return Steps{ Summary: false, @@ -49,12 +54,8 @@ func NewSteps() Steps { } type ParkNewestReport struct { - Park Park `xorm:"extends" json:"park"` - Report *Report `xorm:"extends" json:"report"` -} - -func (ParkNewestReport) TableName() string { - return "park" + Park Park `bun:"extends" json:"park"` + Report *Report `bun:"extends" json:"report"` } func (p *ParkNewestReport) AfterLoad() { @@ -64,27 +65,20 @@ func (p *ParkNewestReport) AfterLoad() { } type ReportIndexSimplified struct { - Id string `xorm:"varchar(120) pk not null" json:"id"` - ParkId string `xorm:"varchar(120) not null" json:"parkId"` - Period time.Time `xorm:"date not null" json:"period" time_format:"simple_date" time_location:"shanghai"` - StepState Steps `xorm:"text not null json" json:"stepState"` - Published bool `xorm:"bool not null default false" json:"published"` - PublishedAt *time.Time `xorm:"timestampz" json:"publishedAt" time_format:"simple_datetime" time_location:"shanghai"` - Withdraw int8 `xorm:"smallint not null default 0" json:"withdraw"` - LastWithdrawAppliedAt *time.Time `xorm:"timestampz" json:"lastWithdrawAppliedAt" time_format:"simple_datetime" time_location:"shanghai"` - LastWithdrawAuditAt *time.Time `xorm:"timestampz" json:"lastWithdrawAuditAt" time_format:"simple_datetime" time_location:"shanghai"` -} - -func (ReportIndexSimplified) TableName() string { - return "report" + bun.BaseModel `bun:"table:report,alias:r"` + Id string `bun:",pk,notnull" json:"id"` + ParkId string `bun:",notnull" json:"parkId"` + Period time.Time `bun:"type:date,notnull" json:"period" time_format:"simple_date" time_location:"shanghai"` + StepState Steps `bun:"type:jsonb,notnull" json:"stepState"` + Published bool `bun:",notnull,default:false" json:"published"` + PublishedAt *time.Time `bun:"type:timestampz" json:"publishedAt" time_format:"simple_datetime" time_location:"shanghai"` + Withdraw int8 `bun:"type:smallint,notnull,default:0" json:"withdraw"` + LastWithdrawAppliedAt *time.Time `bun:"type:timestamptz" json:"lastWithdrawAppliedAt" time_format:"simple_datetime" time_location:"shanghai"` + LastWithdrawAuditAt *time.Time `bun:"type:timestamptz" json:"lastWithdrawAuditAt" time_format:"simple_datetime" time_location:"shanghai"` } type JoinedReportForWithdraw struct { - Report Report `xorm:"extends" json:"report"` - Park ParkSimplified `xorm:"extends" json:"park"` - User UserDetailSimplified `xorm:"extends" json:"user"` -} - -func (JoinedReportForWithdraw) TableName() string { - return "report" + Report Report `bun:"extends" json:"report"` + Park ParkSimplified `bun:"extends" json:"park"` + User UserDetailSimplified `bun:"extends" json:"user"` } diff --git a/model/report_summary.go b/model/report_summary.go index e70ae35..b8aaf0d 100644 --- a/model/report_summary.go +++ b/model/report_summary.go @@ -4,63 +4,61 @@ import ( "errors" "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) type ReportSummary struct { - ReportId string `xorm:"varchar(120) pk not null" json:"-"` - Overall decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"overall"` - OverallFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"overallFee"` - ConsumptionFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"consumptionFee"` - OverallPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"overallPrice"` - Critical decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"critical"` - CriticalFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"criticalFee"` - CriticalPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"criticalPrice"` - Peak decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"peak"` - PeakFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"peakFee"` - PeakPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"peakPrice"` - Flat decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"flat"` - FlatFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"flatFee"` - FlatPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"flatPrice"` - Valley decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"valley"` - ValleyFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"valleyFee"` - ValleyPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"valleyPrice"` - Loss decimal.NullDecimal `xorm:"numeric(14,2)" json:"loss"` - LossFee decimal.NullDecimal `xorm:"numeric(16,2)" json:"lossFee"` - LossProportion decimal.NullDecimal `xorm:"numeric(16,15)" json:"lossProportion"` - CustomerConsumption decimal.NullDecimal `xorm:"numeric(16,2)" json:"customerConsumption"` - CustomerConsumptionFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"customerConsumptionFee"` - CustomerConsumptionCritical decimal.NullDecimal `xorm:"numeric(16,2)" json:"customerConsumptionCritical"` - CustomerConsumptionCriticalFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"customerConsumptionCriticalFee"` - CustomerConsumptionPeak decimal.NullDecimal `xorm:"numeric(16,2)" json:"customerConsumptionPeak"` - CustomerConsumptionPeakFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"customerConsumptionPeakFee"` - CustomerConsumptionFlat decimal.NullDecimal `xorm:"numeric(16,2)" json:"customerConsumptionFlat"` - CustomerConsumptionFlatFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"customerConsumptionFlatFee"` - CustomerConsumptionValley decimal.NullDecimal `xorm:"numeric(16,2)" json:"customerConsumptionValley"` - CustomerConsumptionValleyFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"customerConsumptionValleyFee"` - PublicConsumption decimal.NullDecimal `xorm:"numeric(14,2)" json:"publicConsumption"` - PublicConsumptionFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"publicConsumptionFee"` - PublicConsumptionProportion decimal.NullDecimal `xorm:"numeric(16,15)" json:"publicConsumptionProportion"` - PublicConsumptionCritical decimal.NullDecimal `xorm:"numeric(16,2)" json:"publicConsumptionCritical"` - PublicConsumptionCriticalFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"publicConsumptionCriticalFee"` - PublicConsumptionPeak decimal.NullDecimal `xorm:"numeric(16,2)" json:"publicConsumptionPeak"` - PublicConsumptionPeakFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"publicConsumptionPeakFee"` - PublicConsumptionFlat decimal.NullDecimal `xorm:"numeric(16,2)" json:"publicConsumptionFlat"` - PublicConsumptionFlatFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"publicConsumptionFlatFee"` - PublicConsumptionValley decimal.NullDecimal `xorm:"numeric(16,2)" json:"publicConsumptionValley"` - PublicConsumptionValleyFee decimal.NullDecimal `xorm:"numeric(14,2)" json:"publicConsumptionValleyFee"` - BasicFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"basicFee"` - BasicDilutedPrice decimal.NullDecimal `xorm:"numeric(18,8)" json:"basicDilutedPrice"` - AdjustFee decimal.Decimal `xorm:"numeric(14,2) not null default 0" json:"adjustFee"` - AdjustDilutedPrice decimal.NullDecimal `xorm:"numeric(18,8)" json:"adjustDilutedPrice"` - MaintenanceDilutedPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"maintencanceDilutedPrice"` - LossDilutedPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"lossDilutedPrice"` - PublicConsumptionDilutedPrice decimal.NullDecimal `xorm:"numeric(16,8)" json:"publicConsumptionDilutedPrice"` - MaintenanceOverall decimal.NullDecimal `xorm:"numeric(16,8)" json:"maintenanceOverall"` - FinalDilutedOverall decimal.NullDecimal `xorm:"numeric(14,2)" json:"finalDilutedOverall"` -} - -func (ReportSummary) TableName() string { - return "report_summary" + bun.BaseModel `bun:"table:report_summary,alias:rs"` + ReportId string `bun:",pk,notnull" json:"-"` + Overall decimal.Decimal `bun:",notnull,default:0" json:"overall"` + OverallFee decimal.Decimal `bun:",notnull,default:0" json:"overallFee"` + ConsumptionFee decimal.NullDecimal `json:"consumptionFee"` + OverallPrice decimal.NullDecimal `json:"overallPrice"` + Critical decimal.Decimal `bun:",notnull,default:0" json:"critical"` + CriticalFee decimal.Decimal `bun:",notnull,default:0" json:"criticalFee"` + CriticalPrice decimal.NullDecimal `json:"criticalPrice"` + Peak decimal.Decimal `bun:",notnull,default:0" json:"peak"` + PeakFee decimal.Decimal `bun:",notnull,default:0" json:"peakFee"` + PeakPrice decimal.NullDecimal `json:"peakPrice"` + Flat decimal.Decimal `bun:",notnull,default:0" json:"flat"` + FlatFee decimal.Decimal `bun:",notnull,default:0" json:"flatFee"` + FlatPrice decimal.NullDecimal `json:"flatPrice"` + Valley decimal.Decimal `bun:",notnull,default:0" json:"valley"` + ValleyFee decimal.Decimal `bun:",notnull,default:0" json:"valleyFee"` + ValleyPrice decimal.NullDecimal `json:"valleyPrice"` + Loss decimal.NullDecimal `json:"loss"` + LossFee decimal.NullDecimal `json:"lossFee"` + LossProportion decimal.NullDecimal `json:"lossProportion"` + CustomerConsumption decimal.NullDecimal `json:"customerConsumption"` + CustomerConsumptionFee decimal.NullDecimal `json:"customerConsumptionFee"` + CustomerConsumptionCritical decimal.NullDecimal `json:"customerConsumptionCritical"` + CustomerConsumptionCriticalFee decimal.NullDecimal `json:"customerConsumptionCriticalFee"` + CustomerConsumptionPeak decimal.NullDecimal `json:"customerConsumptionPeak"` + CustomerConsumptionPeakFee decimal.NullDecimal `json:"customerConsumptionPeakFee"` + CustomerConsumptionFlat decimal.NullDecimal `json:"customerConsumptionFlat"` + CustomerConsumptionFlatFee decimal.NullDecimal `json:"customerConsumptionFlatFee"` + CustomerConsumptionValley decimal.NullDecimal `json:"customerConsumptionValley"` + CustomerConsumptionValleyFee decimal.NullDecimal `json:"customerConsumptionValleyFee"` + PublicConsumption decimal.NullDecimal `json:"publicConsumption"` + PublicConsumptionFee decimal.NullDecimal `json:"publicConsumptionFee"` + PublicConsumptionProportion decimal.NullDecimal `json:"publicConsumptionProportion"` + PublicConsumptionCritical decimal.NullDecimal `json:"publicConsumptionCritical"` + PublicConsumptionCriticalFee decimal.NullDecimal `json:"publicConsumptionCriticalFee"` + PublicConsumptionPeak decimal.NullDecimal `json:"publicConsumptionPeak"` + PublicConsumptionPeakFee decimal.NullDecimal `json:"publicConsumptionPeakFee"` + PublicConsumptionFlat decimal.NullDecimal `json:"publicConsumptionFlat"` + PublicConsumptionFlatFee decimal.NullDecimal `json:"publicConsumptionFlatFee"` + PublicConsumptionValley decimal.NullDecimal `json:"publicConsumptionValley"` + PublicConsumptionValleyFee decimal.NullDecimal `json:"publicConsumptionValleyFee"` + BasicFee decimal.Decimal `bun:",notnull,default:0" json:"basicFee"` + BasicDilutedPrice decimal.NullDecimal `json:"basicDilutedPrice"` + AdjustFee decimal.Decimal `bun:",notnull,default:0" json:"adjustFee"` + AdjustDilutedPrice decimal.NullDecimal `json:"adjustDilutedPrice"` + MaintenanceDilutedPrice decimal.NullDecimal `json:"maintencanceDilutedPrice"` + LossDilutedPrice decimal.NullDecimal `json:"lossDilutedPrice"` + PublicConsumptionDilutedPrice decimal.NullDecimal `json:"publicConsumptionDilutedPrice"` + MaintenanceOverall decimal.NullDecimal `json:"maintenanceOverall"` + FinalDilutedOverall decimal.NullDecimal `json:"finalDilutedOverall"` } func (s ReportSummary) Validate() (bool, error) { diff --git a/model/user.go b/model/user.go index 0fd1cd9..5691749 100644 --- a/model/user.go +++ b/model/user.go @@ -1,5 +1,7 @@ package model +import "github.com/uptrace/bun" + const ( USER_TYPE_ENT int8 = iota USER_TYPE_SUP @@ -7,29 +9,25 @@ const ( ) type User struct { - Created `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"id"` - Username string `xorm:"varchar(30) not null" json:"username"` - Password string `xorm:"varchar(256) not null" json:"-"` - ResetNeeded bool `xorm:"bool not null" json:"resetNeeded"` - Type int8 `xorm:"smallint not null" json:"type"` - Enabled bool `xorm:"bool not null" json:"enabled"` -} - -func (User) TableName() string { - return "user" + bun.BaseModel `bun:"table:user,alias:u"` + Created `bun:",extend"` + Id string `bun:",pk,notnull" json:"id"` + Username string `bun:",notnull" json:"username"` + Password string `bun:",notnull" json:"-"` + ResetNeeded bool `bun:",notnull" json:"resetNeeded"` + Type int8 `bun:"type:smallint,notnull" json:"type"` + Enabled bool `bun:",notnull" json:"enabled"` + Detail *UserDetail `bun:"rel:has-one,join:id=id" json:"-"` + Charges []*UserCharge `bun:"rel:has-many,join:id=user_id" json:"-"` } type UserWithCredentials struct { - Created `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"id"` - Username string `xorm:"varchar(30) not null" json:"username"` - Password string `xorm:"varchar(256) not null" json:"credential"` - ResetNeeded bool `xorm:"bool not null" json:"resetNeeded"` - Type int8 `xorm:"smallint not null" json:"type"` - Enabled bool `xorm:"bool not null" json:"enabled"` -} - -func (UserWithCredentials) TableName() string { - return "user" + bun.BaseModel `bun:"table:user,alias:u"` + Created `bun:",extend"` + Id string `bun:",pk,notnull" json:"id"` + Username string `bun:",notnull" json:"username"` + Password string `bun:",notnull" json:"credential"` + ResetNeeded bool `bun:",notnull" json:"resetNeeded"` + Type int8 `bun:"type:smallint,notnull" json:"type"` + Enabled bool `bun:",notnull" json:"enabled"` } diff --git a/model/user_charges.go b/model/user_charges.go index a157bab..53f2f6c 100644 --- a/model/user_charges.go +++ b/model/user_charges.go @@ -4,33 +4,28 @@ import ( "time" "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) type UserCharge struct { - Created `xorm:"extends"` - Seq int64 `xorm:"bigint pk not null autoincr" json:"seq"` - UserId string `xorm:"varchar(120) not null" json:"userId"` - Fee decimal.NullDecimal `xorm:"numeric(12,2)" json:"fee"` - Discount decimal.NullDecimal `xorm:"numeric(5,4)" json:"discount"` - Amount decimal.NullDecimal `xorm:"numeric(12,2)" json:"amount"` - ChargeTo time.Time `xorm:"date not null" json:"chargeTo" time_format:"simple_date" time_location:"shanghai"` - Settled bool `xorm:"bool not null default false" json:"settled"` - SettledAt *time.Time `xorm:"timestampz" json:"settledAt" time_format:"simple_datetime" time_location:"shanghai"` - Cancelled bool `xorm:"bool not null default false" json:"cancelled"` - CancelledAt *time.Time `xorm:"timestampz" json:"cancelledAt" time_format:"simple_datetime" time_location:"shanghai"` - Refunded bool `xorm:"bool not null default false" json:"refunded"` - RefundedAt *time.Time `xorm:"timestampz" json:"refundedAt" time_format:"simple_datetime" time_location:"shanghai"` -} - -func (UserCharge) TableName() string { - return "user_charge" + bun.BaseModel `bun:"table:user_charge,alias:c"` + Created `bun:"extends"` + Seq int64 `bun:"type:bigint,pk,notnull,autoincrement" json:"seq"` + UserId string `bun:",notnull" json:"userId"` + Fee decimal.NullDecimal `json:"fee"` + Discount decimal.NullDecimal `json:"discount"` + Amount decimal.NullDecimal `json:"amount"` + ChargeTo time.Time `bun:"type:date,notnull" json:"chargeTo" time_format:"simple_date" time_location:"shanghai"` + Settled bool `bun:",notnull,default:false" json:"settled"` + SettledAt *time.Time `bun:"type:timestamptz" json:"settledAt" time_format:"simple_datetime" time_location:"shanghai"` + Cancelled bool `bun:",notnull,default:false" json:"cancelled"` + CancelledAt *time.Time `bun:"type:timestamptz" json:"cancelledAt" time_format:"simple_datetime" time_location:"shanghai"` + Refunded bool `bun:",notnull,default:false" json:"refunded"` + RefundedAt *time.Time `bun:"type:timestamptz" json:"refundedAt" time_format:"simple_datetime" time_location:"shanghai"` + Detail *UserDetail `bun:"rel:belongs-to,join:user_id=id" json:"-"` } type ChargeWithName struct { - UserDetail `xorm:"extends"` - UserCharge `xorm:"extends"` -} - -func (ChargeWithName) TableName() string { - return "user_detail" + UserDetail `bun:"extends"` + UserCharge `bun:"extends"` } diff --git a/model/user_detail.go b/model/user_detail.go index 1aa461a..d28984d 100644 --- a/model/user_detail.go +++ b/model/user_detail.go @@ -4,57 +4,44 @@ import ( "time" "github.com/shopspring/decimal" + "github.com/uptrace/bun" ) type UserDetail struct { - CreatedAndModifiedWithUser `xorm:"extends"` - DeletedWithUser `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"-"` - Name *string `xorm:"varchar(100)" json:"name"` - Abbr *string `xorm:"varchar(50)" json:"abbr"` - Region *string `xorm:"varchar(10)" json:"region"` - Address *string `xorm:"varchar(120)" json:"address"` - Contact *string `xorm:"varchar(100)" json:"contact"` - Phone *string `xorm:"varchar(50)" json:"phone"` - UnitServiceFee decimal.Decimal `xorm:"numeric(8,2) not null" json:"unitServiceFee"` - ServiceExpiration time.Time `xorm:"date not null" json:"serviceExpiration" time_format:"simple_date" time_location:"shanghai"` -} - -func (UserDetail) TableName() string { - return "user_detail" + bun.BaseModel `bun:"table:user_detail,alias:d"` + CreatedAndModifiedWithUser `bun:",extend"` + DeletedWithUser `bun:",extend"` + Id string `bun:",pk,notnull" json:"-"` + Name *string `json:"name"` + Abbr *string `json:"abbr"` + Region *string `json:"region"` + Address *string `json:"address"` + Contact *string `json:"contact"` + Phone *string `json:"phone"` + UnitServiceFee decimal.Decimal `bun:",notnull" json:"unitServiceFee"` + ServiceExpiration time.Time `bun:"type:date,notnull" json:"serviceExpiration" time_format:"simple_date" time_location:"shanghai"` } type JoinedUserDetail struct { - UserDetail `xorm:"extends"` + UserDetail `bun:"extends"` Id string `json:"id"` Username string `json:"username"` Type int8 `json:"type"` Enabled bool `json:"enabled"` } -func (JoinedUserDetail) TableName() string { - return "user" -} - type FullJoinedUserDetail struct { - UserDetail `xorm:"extends"` - User `xorm:"extends"` -} - -func (FullJoinedUserDetail) TableName() string { - return "user_detail" + UserDetail `bun:"extends"` + User `bun:"extends"` } type UserDetailSimplified struct { - Id string `xorm:"varchar(120) pk not null" json:"id"` - Name *string `xorm:"varchar(100)" json:"name"` - Abbr *string `xorm:"varchar(50)" json:"abbr"` - Region *string `xorm:"varchar(10)" json:"region"` - Address *string `xorm:"varchar(120)" json:"address"` - Contact *string `xorm:"varchar(100)" json:"contact"` - Phone *string `xorm:"varchar(50)" json:"phone"` -} - -func (UserDetailSimplified) TableName() string { - return "user_detail" + bun.BaseModel `bun:"table:user_detail,alias:d"` + Id string `bun:",pk,notnull" json:"id"` + Name *string `json:"name"` + Abbr *string `json:"abbr"` + Region *string `json:"region"` + Address *string `json:"address"` + Contact *string `json:"contact"` + Phone *string `json:"phone"` } diff --git a/model/will_diluted_fee.go b/model/will_diluted_fee.go index b13906f..801e145 100644 --- a/model/will_diluted_fee.go +++ b/model/will_diluted_fee.go @@ -1,17 +1,18 @@ package model -import "github.com/shopspring/decimal" +import ( + "github.com/shopspring/decimal" + "github.com/uptrace/bun" +) type WillDilutedFee struct { - CreatedAndModified `xorm:"extends"` - Id string `xorm:"varchar(120) pk not null" json:"diluteId"` - ReportId string `xorm:"varchar(120) not null" json:"reportId"` - SourceId *string `xorm:"varchar(120)" json:"sourceId"` - Name string `xorm:"varchar(50) not null" json:"name"` - Fee decimal.Decimal `xorm:"numeric(8,2) not null default 0" json:"fee"` - Memo *string `xorm:"text" json:"memo"` -} - -func (WillDilutedFee) TableName() string { - return "will_diluted_fee" + bun.BaseModel `bun:"table:will_diluted_fee,alias:w"` + CreatedAndModified `bun:"extends"` + Id string `bun:",pk,notnull" json:"diluteId"` + ReportId string `bun:",notnull" json:"reportId"` + SourceId *string `json:"sourceId"` + Name string `bun:",notnull" json:"name"` + Fee decimal.Decimal `bun:",notnull,default:0" json:"fee"` + Memo *string `bun:"type:text" json:"memo"` + Origin *MaintenanceFee `bun:"rel:belongs-to,join:source_id=id"` }