feat:优化项目信息
This commit is contained in:
46
app/api/website/controller/payment/activity.go
Normal file
46
app/api/website/controller/payment/activity.go
Normal file
@ -0,0 +1,46 @@
|
||||
package payment
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/website/model"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Activity struct {
|
||||
uid, activityID uint64
|
||||
identity int
|
||||
}
|
||||
|
||||
type ActivityCallback func(uid, activityID uint64, identity int) *Activity
|
||||
|
||||
func (c *Activity) grant(tx *gorm.DB) error {
|
||||
var count int64
|
||||
|
||||
mActivityJoin := model.NewActivityJoin()
|
||||
|
||||
err := model2.Count(mActivityJoin.ActivityJoin, &count, model2.NewWhere("uid", c.uid),
|
||||
model2.NewWhere("activity_id", c.activityID),
|
||||
model2.NewWhere("identity", c.identity),
|
||||
model2.NewWhere("status", model2.ActivityJoinStatusForSuccess))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
} else if count > 0 {
|
||||
return nil
|
||||
}
|
||||
mActivityJoin.UID = c.uid
|
||||
mActivityJoin.ActivityID = c.activityID
|
||||
mActivityJoin.Identity = c.identity
|
||||
mActivityJoin.Status = model2.ActivityJoinStatusForSuccess
|
||||
return model2.Create(mActivityJoin.ActivityJoin, tx)
|
||||
}
|
||||
|
||||
func NewActivity() ActivityCallback {
|
||||
return func(uid, activityID uint64, identity int) *Activity {
|
||||
return &Activity{
|
||||
uid: uid,
|
||||
activityID: activityID,
|
||||
identity: identity,
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user