美文网首页
iris 抽奖实例2

iris 抽奖实例2

作者: 码农工号9527 | 来源:发表于2021-08-06 17:38 被阅读0次

1. 简单实现抽奖

  • 安装并创建好iris测试项目
    在测试项目目录下创建main.go文件,内容如下
/**
 * 1 即开即得型 刮刮乐
 * 2 定时开奖型 双色球
 */
package main

import (
    "fmt"
    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/mvc"
    "math/rand"
    "time"
)

type lotterController struct {
    Ctx iris.Context
}

func newApp() *iris.Application {
    app := iris.New()
    mvc.New(app.Party("/")).Handle(&lotterController{})
    return app
}

func main() {
    app := newApp()
    app.Run(iris.Addr(":8080"))
}

// 类型1
func (c *lotterController) Get() string {
    var prize string
    seed := time.Now().UnixNano()
    code := rand.New(rand.NewSource(seed)).Intn(10)
    switch {
    case code == 1:
        prize = "一等奖"
    case code >=2 && code <= 3:
        prize = "二等奖"
    case code >= 4 && code <= 6:
        prize = "三等奖"
    default:
        return fmt.Sprintf("尾号为1获得一等奖\n"+
            "尾号为2/3获得二等奖\n"+
            "尾号为4/5/6获得三等奖\n"+
            "code=%d\n"+
            "很遗憾,您未中奖", code)

    }
    return fmt.Sprintf("尾号为1获得一等奖\n"+
        "尾号为2/3获得二等奖\n"+
        "尾号为4/5/6获得三等奖\n"+
        "code=%d\n"+
        "恭喜您获得:%s", code, prize)
}

// 类型2
func (c *lotterController) GetPrize() string {
    seed := time.Now().UnixNano()
    r := rand.New(rand.NewSource(seed))
    var prize [7]int
    // 6个红色球,1~33
    for i := 0; i < 6; i++ {
        prize[i] = r.Intn(33)+1
    }
    // 最后一个蓝色球,1~16
    prize[6] = r.Intn(16)+1

    return fmt.Sprintf("今日开奖号码是: %v", prize)
}

启动:


刮刮乐类型抽奖:


彩色求类型抽奖:


由于不存在操作共享变量,因此不会出现并发问题

相关文章

  • iris 抽奖实例2

    1. 简单实现抽奖 安装并创建好iris测试项目在测试项目目录下创建main.go文件,内容如下 启动: 刮刮乐类...

  • iris 抽奖实例6

    大转盘 固定几个奖品,不同的中奖概率或者总数量限制 每一次转动抽奖,后端计算出这次抽奖的中奖情况,并返回对应的奖品...

  • iris 抽奖实例5

    微博抢红包在测试项目目录下创建main.go文件,内容如下: 启动: curl设置红包并抽红包: 查看剩余红包数量...

  • iris 抽奖实例1

    1. 简单实现抽奖 安装并创建好iris测试项目在测试项目目录下创建main.go文件,内容如下 测试请求当前总共...

  • iris 抽奖实例4

    支付宝集福卡 奖品是虚拟的5个福字,没数量限制 先识别图片,确定福字的获得概率 不存在线程安全问题在测试项目目录下...

  • iris 抽奖实例3

    微信摇一摇特点: 种类多、数量多 随机匹配奖品,针对虚拟物品、实物,不一样的规则 中奖后,减库存,记录并提示用户。...

  • 第六十九章 使用 REST API 监控 IRIS

    第六十九章 使用 REST API 监控 IRIS 每个 IRIS® 数据平台实例都包含一个提供实例统计信息的 R...

  • ES6 8.Generator

    实例:1.前端实现抽奖次数的限制。 2.长轮询

  • golang iris mvc框架的服务端加载过程

    整个iris框架共三层结构: 应用的配置和注册信息,如路由、中间件、日志。 中间的服务端实例,从iris实例拿配置...

  • 第六十七章 使用 Web 服务监控 IRIS - 监控 Web

    第六十七章 使用 Web 服务监控 IRIS - 监控 Web 服务的 URL 对于给定的 IRIS 实例,日志...

网友评论

      本文标题:iris 抽奖实例2

      本文链接:https://www.haomeiwen.com/subject/mqkivltx.html