2026-02-23 07:47:06 +08:00
|
|
|
|
package service
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"blazing/cool"
|
|
|
|
|
|
"blazing/modules/player/model"
|
2026-02-23 10:21:58 +08:00
|
|
|
|
"time"
|
2026-02-23 07:47:06 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type GoldService struct {
|
|
|
|
|
|
BaseService
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-27 00:09:23 +08:00
|
|
|
|
// 月 周 日限购检查
|
2026-03-02 01:36:16 +08:00
|
|
|
|
func (s *GoldService) Cheak(allcount, pid, ptye uint32) bool {
|
2026-02-27 00:09:23 +08:00
|
|
|
|
|
|
|
|
|
|
now := time.Now()
|
|
|
|
|
|
var va int
|
|
|
|
|
|
switch ptye {
|
|
|
|
|
|
case 0: //月限购
|
|
|
|
|
|
va = int(now.Month())
|
|
|
|
|
|
case 1: //周限购
|
|
|
|
|
|
_, va = now.ISOWeek()
|
|
|
|
|
|
case 2: //日限购
|
|
|
|
|
|
va = now.Day()
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2026-03-02 01:36:16 +08:00
|
|
|
|
ret, err := s.dbm_fix(s.Model).Where("year", now.Year()).Where("biz_id", pid).Wheref("consume ->> ?::integer = ?", ptye, va).Count()
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
if uint32(ret) < allcount {
|
|
|
|
|
|
return true
|
|
|
|
|
|
}
|
2026-02-27 00:09:23 +08:00
|
|
|
|
|
2026-03-02 01:36:16 +08:00
|
|
|
|
return false
|
2026-02-23 10:21:58 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
2026-02-23 07:52:36 +08:00
|
|
|
|
func (s *GoldService) Log(pid, count uint32) {
|
2026-02-27 01:00:01 +08:00
|
|
|
|
if cool.Config.ServerInfo.IsVip != 0 {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
2026-02-23 10:21:58 +08:00
|
|
|
|
|
|
|
|
|
|
// 获取当前时间
|
|
|
|
|
|
now := time.Now()
|
|
|
|
|
|
// 提取年份
|
|
|
|
|
|
year := uint32(now.Year())
|
|
|
|
|
|
// 构造消费时间数组 [月, 周, 日]
|
|
|
|
|
|
// ISOWeek返回(年,周数),这里只取周数;Day()返回当月的第几天
|
|
|
|
|
|
_, week := now.ISOWeek()
|
|
|
|
|
|
consumeTime := []uint32{
|
|
|
|
|
|
uint32(now.Month()), // 月份
|
|
|
|
|
|
uint32(week), // 周数
|
|
|
|
|
|
uint32(now.Day()), // 日期
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-23 07:52:36 +08:00
|
|
|
|
record := &model.GoldBeanConsume{
|
|
|
|
|
|
PlayerID: uint64(s.userid),
|
|
|
|
|
|
ConsumeNum: count,
|
|
|
|
|
|
BizID: pid,
|
2026-02-23 10:21:58 +08:00
|
|
|
|
Year: year, // 补充年份
|
|
|
|
|
|
Consume: consumeTime, // 补充消费时间(月-周-日)
|
2026-02-23 07:52:36 +08:00
|
|
|
|
}
|
2026-02-23 10:21:58 +08:00
|
|
|
|
s.dbm(s.Model).Data(record).Insert()
|
2026-02-23 07:52:36 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-23 07:47:06 +08:00
|
|
|
|
func NewGoldService(id uint32) *GoldService {
|
|
|
|
|
|
return &GoldService{
|
|
|
|
|
|
|
|
|
|
|
|
BaseService: BaseService{userid: id,
|
|
|
|
|
|
|
|
|
|
|
|
Service: &cool.Service{Model: model.NewGoldBeanConsume()},
|
|
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|