exchange_activity.go 1.8 KB
package domain

import "time"

// 兑换活动
type ExchangeActivity struct {
	ExchangeActivityId int64 `json:"exchangeActivityId"` 					// 兑换素币活动编号
	ExchangeActivityName string `json:"exchangeActivityName"`				// 兑换素币活动名称
	CompanyId int64 `json:"companyId"`										// 公司ID
	ExchangedCash float64 `json:"exchangedCash"`							// 已兑换的现金
	ExchangedSuMoney float64 `json:"exchangedSuMoney"`  					// 已兑换的素币
	CreateTime time.Time	`json:"createTime"`								// 创建兑换素币活动时间
	Deadline time.Time	`json:"deadline"`									// 兑换素币活动截止时间
	CountDown string `json:"countDown"`										// 兑换素币活动结束倒计时
	Rate float64 `json:"rate"`   											// 兑换汇率
	LastRate float64 `json:"lastRate"`										// 上期兑换汇率
	ExchangeSuMoneyList []*ExchangePerson `json:"exchangeSuMoneyList"` 		// 素币兑换清单
}

type ExchangeActivityRepository interface {
	Save(activity *ExchangeActivity) (*ExchangeActivity, error)
	Remove(activity *ExchangeActivity) (*ExchangeActivity, error)
	FindOne(queryOptions map[string]interface{}) (*ExchangeActivity, error)
	Find(queryOptions map[string]interface{}) (int64, []*ExchangeActivity, error)
}

func (activity *ExchangeActivity) Identity() interface{} {
	if activity.ExchangeActivityId == 0 {
		return nil
	}
	return activity.ExchangeActivityId
}

func (activity *ExchangeActivity) TransferSuMoney(rate float64) error {
	activity.ExchangedSuMoney = activity.ExchangedCash * rate
	return nil
}

func (activity *ExchangeActivity) TransferLastRate(lastRate float64) error {
	activity.LastRate = lastRate
	return nil
}

func (activity *ExchangeActivity) TransferCountDown() error {
	activity.CountDown = string(time.Until(activity.Deadline))
	return nil
}