f
This commit is contained in:
76
app/main/model/queryUserRecordModel.go
Normal file
76
app/main/model/queryUserRecordModel.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"tydata-server/common/globalkey"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ QueryUserRecordModel = (*customQueryUserRecordModel)(nil)
|
||||
|
||||
type (
|
||||
// QueryUserRecordModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customQueryUserRecordModel.
|
||||
QueryUserRecordModel interface {
|
||||
queryUserRecordModel
|
||||
FindOneByQueryNo(ctx context.Context, queryNo string) (*QueryUserRecord, error)
|
||||
CountByEncryptedIdCardIn72Hours(ctx context.Context, encryptedIdCard string) (int64, error)
|
||||
}
|
||||
|
||||
customQueryUserRecordModel struct {
|
||||
*defaultQueryUserRecordModel
|
||||
}
|
||||
)
|
||||
|
||||
// FindOneByQueryNo 根据 query_no 查询一条记录(query_no 与 order.order_no 一致)
|
||||
func (m *customQueryUserRecordModel) FindOneByQueryNo(ctx context.Context, queryNo string) (*QueryUserRecord, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `query_no` = ? and del_state = ? limit 1", queryUserRecordRows, m.table)
|
||||
var resp QueryUserRecord
|
||||
err := m.QueryRowNoCacheCtx(ctx, &resp, query, queryNo, globalkey.DelStateNo)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// CountByEncryptedIdCardIn72Hours 查询72小时内某个加密身份证号的已支付查询次数
|
||||
func (m *customQueryUserRecordModel) CountByEncryptedIdCardIn72Hours(ctx context.Context, encryptedIdCard string) (int64, error) {
|
||||
// 计算72小时前的时间
|
||||
seventyTwoHoursAgo := time.Now().Add(-72 * time.Hour)
|
||||
|
||||
// 关联 order 表,只统计已支付的订单
|
||||
query := fmt.Sprintf(`
|
||||
select count(*)
|
||||
from %s qur
|
||||
inner join `+"`order`"+` o on qur.order_id = o.id
|
||||
where qur.id_card = ?
|
||||
and qur.create_time >= ?
|
||||
and qur.del_state = ?
|
||||
and qur.order_id > 0
|
||||
and o.status = 'paid'
|
||||
and o.del_state = ?
|
||||
`, m.table)
|
||||
var count int64
|
||||
err := m.QueryRowNoCacheCtx(ctx, &count, query, encryptedIdCard, seventyTwoHoursAgo, globalkey.DelStateNo, globalkey.DelStateNo)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// NewQueryUserRecordModel returns a model for the database table.
|
||||
func NewQueryUserRecordModel(conn sqlx.SqlConn, c cache.CacheConf) QueryUserRecordModel {
|
||||
return &customQueryUserRecordModel{
|
||||
defaultQueryUserRecordModel: newQueryUserRecordModel(conn, c),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user