123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package service
- import (
- "gadmin/config"
- "gadmin/internal/admin/consts"
- "gadmin/internal/admin/forms"
- "gadmin/internal/gorm/model"
- "gadmin/internal/gorm/query"
- "gadmin/utility/serializer"
- "github.com/gin-gonic/gin"
- "time"
- )
- // Peripherals 周边活动
- var Peripherals = new(sPeripherals)
- type sPeripherals struct{}
- func (s *sPeripherals) ReceiveCdk(ctx *gin.Context, req forms.PeripheralsReceiveCdk) serializer.Response {
- var (
- q = query.Use(config.DB).RedeemCode
- pr = query.Use(config.DB).RedeemPeripheralsReceived
- models *model.RedeemCode
- prModels *model.RedeemPeripheralsReceived
- err error
- )
- if err = pr.WithContext(ctx).Where(pr.Sn.Eq(req.Sn)).Where(pr.Openid.Eq(req.OpenId)).Scan(&prModels); err != nil {
- return serializer.Err(consts.CodeParamErr, "领取记录查询异常", err)
- }
- // 还没有,就给一个
- if prModels == nil {
- if err = q.WithContext(ctx).
- Where(q.Sn.Eq(req.Sn)).
- Where(q.Times.Gt(0)).
- Where(q.Columns(q.ID).NotIn(pr.WithContext(ctx).Select(pr.Cid).Where(pr.Sn.Eq(req.Sn)))).
- Scan(&models); err != nil {
- return serializer.Err(consts.CodeParamErr, "兑换码查询异常-2", err)
- }
- if models == nil {
- return serializer.Err(101, "兑换码已用尽", err)
- }
- var data model.RedeemPeripheralsReceived
- data.Cid = models.ID
- data.Sn = models.Sn
- data.Openid = req.OpenId
- data.CreatedAt = time.Now().Unix()
- if err = query.Use(config.DB).RedeemPeripheralsReceived.WithContext(ctx).Create(&data); err != nil {
- return serializer.Err(consts.CodeParamErr, "兑换码失败,请稍后重试!", err)
- }
- return serializer.Suc(models)
- }
- if err = q.WithContext(ctx).Where(q.ID.Eq(prModels.Cid)).Scan(&models); err != nil {
- return serializer.Err(consts.CodeParamErr, "兑换码查询异常", err)
- }
- if models == nil {
- return serializer.Err(consts.CodeParamErr, "兑换码不存在或已被删除", err)
- }
- return serializer.Suc(models)
- }
|