chore: seed migration objects batch 52
This commit is contained in:
@@ -53,6 +53,12 @@ type MemberNotice struct {
|
||||
SourceType int `db:"source_type"`
|
||||
StartAt string `db:"start_at"`
|
||||
EndAt string `db:"end_at"`
|
||||
CreatedAt string `db:"created_at"`
|
||||
}
|
||||
|
||||
type MemberNoticePage struct {
|
||||
Items []MemberNotice
|
||||
Total int64
|
||||
}
|
||||
|
||||
type TaskSummary struct {
|
||||
@@ -147,13 +153,35 @@ func (s *Store) ActiveMemberNotices(ctx context.Context, tenantID, memberID int6
|
||||
rows := make([]MemberNotice, 0)
|
||||
err := s.db.SelectContext(ctx, &rows, `SELECT id,title,content,source_type,
|
||||
DATE_FORMAT(start_at,'%Y-%m-%dT%H:%i:%sZ') AS start_at,
|
||||
DATE_FORMAT(end_at,'%Y-%m-%dT%H:%i:%sZ') AS end_at
|
||||
DATE_FORMAT(end_at,'%Y-%m-%dT%H:%i:%sZ') AS end_at,
|
||||
DATE_FORMAT(created_at,'%Y-%m-%dT%H:%i:%sZ') AS created_at
|
||||
FROM hg_app_member_notice WHERE tenant_id=? AND member_id IN (0,?) AND notice_status=1
|
||||
AND start_at<=UTC_TIMESTAMP(3) AND end_at>UTC_TIMESTAMP(3)
|
||||
ORDER BY start_at DESC,id DESC LIMIT ?`, tenantID, memberID, limit)
|
||||
return rows, err
|
||||
}
|
||||
|
||||
func (s *Store) MemberNotices(ctx context.Context, tenantID, memberID int64, offset, limit int) (*MemberNoticePage, error) {
|
||||
if s == nil || s.db == nil {
|
||||
return nil, errors.New("store is unavailable")
|
||||
}
|
||||
const where = ` WHERE tenant_id=? AND member_id IN (0,?) AND notice_status=1
|
||||
AND start_at<=UTC_TIMESTAMP(3) AND end_at>UTC_TIMESTAMP(3)`
|
||||
args := []any{tenantID, memberID}
|
||||
var total int64
|
||||
if err := s.db.GetContext(ctx, &total, `SELECT COUNT(*) FROM hg_app_member_notice`+where, args...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items := make([]MemberNotice, 0)
|
||||
args = append(args, limit, offset)
|
||||
err := s.db.SelectContext(ctx, &items, `SELECT id,title,content,source_type,
|
||||
DATE_FORMAT(start_at,'%Y-%m-%dT%H:%i:%sZ') AS start_at,
|
||||
DATE_FORMAT(end_at,'%Y-%m-%dT%H:%i:%sZ') AS end_at,
|
||||
DATE_FORMAT(created_at,'%Y-%m-%dT%H:%i:%sZ') AS created_at
|
||||
FROM hg_app_member_notice`+where+` ORDER BY created_at DESC,id DESC LIMIT ? OFFSET ?`, args...)
|
||||
return &MemberNoticePage{Items: items, Total: total}, err
|
||||
}
|
||||
|
||||
func (s *Store) MemberTaskSummary(ctx context.Context, tenantID, memberID int64) (*TaskSummary, error) {
|
||||
if s == nil || s.db == nil {
|
||||
return nil, errors.New("store is unavailable")
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
type WalletLedger struct {
|
||||
ID int64 `db:"id"`
|
||||
LedgerNo string `db:"ledger_no"`
|
||||
BizType string `db:"biz_type"`
|
||||
BizNo string `db:"biz_no"`
|
||||
EntryType string `db:"entry_type"`
|
||||
Direction int `db:"direction"`
|
||||
Amount int64 `db:"amount"`
|
||||
BeforeAmount int64 `db:"before_amount"`
|
||||
AfterAmount int64 `db:"after_amount"`
|
||||
Currency string `db:"currency"`
|
||||
Remark string `db:"remark"`
|
||||
OccurredAt string `db:"occurred_at"`
|
||||
}
|
||||
|
||||
type WalletLedgerPage struct {
|
||||
Items []WalletLedger
|
||||
Total int64
|
||||
}
|
||||
|
||||
func (s *Store) WalletLedgers(ctx context.Context, tenantID, memberID int64, bizType string, direction, offset, limit int) (*WalletLedgerPage, error) {
|
||||
where := ` WHERE tenant_id=? AND member_id=?`
|
||||
args := []any{tenantID, memberID}
|
||||
if bizType != "" {
|
||||
where += ` AND biz_type=?`
|
||||
args = append(args, bizType)
|
||||
}
|
||||
if direction > 0 {
|
||||
where += ` AND direction=?`
|
||||
args = append(args, direction)
|
||||
}
|
||||
|
||||
var total int64
|
||||
if err := s.db.GetContext(ctx, &total, `SELECT COUNT(*) FROM hg_wallet_ledger`+where, args...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
args = append(args, limit, offset)
|
||||
items := make([]WalletLedger, 0)
|
||||
err := s.db.SelectContext(ctx, &items, `SELECT id,ledger_no,biz_type,biz_no,entry_type,direction,
|
||||
amount,before_amount,after_amount,currency,remark,
|
||||
DATE_FORMAT(occurred_at,'%Y-%m-%dT%H:%i:%sZ') AS occurred_at
|
||||
FROM hg_wallet_ledger`+where+` ORDER BY occurred_at DESC,id DESC LIMIT ? OFFSET ?`, args...)
|
||||
return &WalletLedgerPage{Items: items, Total: total}, err
|
||||
}
|
||||
Reference in New Issue
Block a user