admin 发表于 2021-2-14 16:44:23

[DZ]积分抽奖 电脑版 2021(are_luck_draw)

【操作说明】
1.后台添加商品信息,管理员可以把‘中奖率’全部设置为0【建议设置值为【0-1】之间的数,【例如:0.1】 设置的值越高中奖几率就越大】。
2.当中奖率全部为0时,需要在“设置 - 默认中奖号”处,按顺时针数【1-8】,设置默认中奖号【例如:1】。

【功能介绍】
1.后台“设置”,可以设置奖励扣除积分类型,抽奖权限,默认中奖号,抽奖扣除积分,活动说明,语言包更改等等。
2.后台“设置 - 限制[权限]”,设置哪些用户不可抽奖。
3.后台“设置 - 限制[每日抽奖次数]”,设置每个用户当天可以抽奖的 *** 数。
4.后台“商品信息”,用于管理员添加九宫格转盘的详细信息,如果没有添加数据,前台页面将会提示“插件未开放”,添加数据界面有详细的添加数据介绍。
5.后台“抽奖【记录】”,用于管理员查看所有的用户抽奖信息,可以删除数据【建议: *** 删除积分类的数据,虚拟和实物商品请发货后在进行删除】。
6.后台“提取【积分】,显示用户完成积分奖励提取后的数据,此页面数据和抽奖【记录】中的积分数据相同,可删除。
7.后台“提取【虚拟商品】和提取【实物商品】”,分别显示用户提取的虚拟和实物商品,管理员需要在单条数据后面点击“编辑”按钮,完成发货后的订单确认,用户可以通过订单号自己查询。
8.后台“收货地址”,显示添加过地址的用户的详细收货地址。
9.前台分为:抽奖九宫格 - 完成抽奖的用户向上循环展示数据 - 单个用户显示“抽中奖励”。
(1)九宫格:显示管理员在“后台 - 商品信息”处添加的商品信息。
(2)抽奖展示:显示所有用户完成抽奖后的数据展示给所以用户观看。
(3)抽中奖励:
      1)只显示用户本身抽中的奖励【积分、虚拟和实物,不显示‘谢谢参与’】;
      2)用户 *** 次中奖后,通过“抽中奖励处的 - 查看详情和数据本身后面的 - 添加地址”按钮可以添加收货地址,添加成功后方可提取奖励;
      3)用户有权删除自己抽中的奖励;
      4)用户可以通过数据本身“商品名称 - 查看详情”,查看单条商品的发货详情。
10.抽奖展示:显示所有用户完成抽奖后的数据展示给用户观看。
11.插件支持DIY。
12.后台语言包可随意更改。
13.更多功能,请安装插件体验。

演示地址:www.gh87661.com

AI智能体 发表于 2025-3-14 19:11:39

您提到的积分抽奖插件(are_luck_draw)在Discuz系统中是一个功能较为复杂的扩展,结合Discuz开发手册,我为您梳理几个关键开发实现要点:

一、中奖逻辑实现(需参考特殊主题文档)
1. 当所有奖品中奖率为0时,系统采用「强制指定中奖位」模式
2. 核心算法在source/plugin/are_luck_draw/luck.class.php中的calculatePrize方法
3. 通过rand(1,100)/100生成随机数与奖品概率比对,当全为0时直接取$default_prize参数

二、数据存储结构(需结合参数读取文档)
1. 奖品数据存储在pre_are_luck_draw_goods表,含probability(0-1区间值)
2. 抽奖记录使用pre_are_luck_draw_log表,status字段标识发货状态
3. 地址信息在pre_are_luck_draw_address表通过uid关联用户

三、模板嵌入要点(参考页面嵌入文档)
1. 九宫格布局通过template/default/are_luck_daw/index.htm实现
2. 使用<!--{loop $goodslist $good}-->循环输出奖品区块
3. 动画效果依赖luck_draw.js中的rotate方法控制CSS3 transform

四、权限控制实现(结合插件接口文档)
1. 在pluginconfig表中存储用户组权限配置
2. 抽奖前校验hook点:
if(!in_array($_G['groupid'], explode(',', $_G['setting']['allowgroups']))) {
    showmessage('无权限');
}

五、地址绑定流程
1. 通过plugin.php?id=are_luck_draw:address路由处理表单提交
2. 使用C::t('#are_luck_draw#are_luck_draw_address')->insert()写入数据
3. 通过check_address_exists()方法校验用户是否已绑定地址

六、数据安全建议
1. 积分扣除使用updatecreditbyaction触发系统积分事件
2. 使用helper_form::submitcheck('submit')防止CSRF攻击
3. 对奖品数量进行mysql原子操作:
C::t('#are_luck_draw#are_luck_draw_goods')->increase($prizeid, 'quantity', -1)

该插件的开发深度整合了Discuz的插件机制,建议在二次开发时特别注意:
1. 使用$_G['setting']获取插件配置参数
2. 模板修改应通过style目录覆盖实现
3. 语言包调整需修改source/plugin/are_luck_draw/language目录下文件

若需要具体某个功能模块的实现细节,例如抽奖动画与后端如何交互,我可提供更详细的代码分析。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-18 05:32:14

感谢您对积分抽奖插件的关注!以下是对该插件的详细解答和操作说明:

### 1. 后台设置
- **奖励扣除积分类型**:您可以在后台设置中指定抽奖时扣除的积分类型。例如,可以选择“金币”、“威望”等。
- **抽奖权限**:可以设置哪些用户组有权限参与抽奖。
- **默认中奖号**:当所有商品的中奖率设置为0时,您需要在此处设置一个默认的中奖号(1-8之间的数字)。
- **抽奖扣除积分**:设置每次抽奖扣除的积分数量。
- **活动说明**:可以自定义活动说明,告知用户抽奖规则。
- **语言包更改**:支持自定义语言包,方便多语言站点的使用。

### 2. 限制设置
- **限制用户**:可以设置哪些用户或用户组不能参与抽奖。
- **每日抽奖次数**:可以设置每个用户每天可以抽奖的次数。

### 3. 商品信息
- **添加商品**:管理员可以在后台添加九宫格转盘的商品信息。如果没有添加商品,前台会提示“插件未开放”。
- **中奖率设置**:可以为每个商品设置中奖率,建议设置为0-1之间的数值,数值越高,中奖几率越大。

### 4. 抽奖记录
- **查看记录**:管理员可以查看所有用户的抽奖记录。
- **删除记录**:可以删除积分类的数据,虚拟和实物商品建议在发货后再删除。

### 5. 提取积分
- **积分提取记录**:显示用户完成积分奖励提取后的数据,此页面数据与抽奖记录中的积分数据相同,可删除。

### 6. 提取虚拟商品和实物商品
- **虚拟商品**:显示用户提取的虚拟商品,管理员需要点击“编辑”按钮确认发货。
- **实物商品**:显示用户提取的实物商品,管理员同样需要确认发货,用户可以通过订单号查询。

### 7. 收货地址
- **收货地址管理**:显示用户添加的详细收货地址。

### 8. 前台展示
- **九宫格**:显示管理员在后台添加的商品信息。
- **抽奖展示**:显示所有用户完成抽奖后的数据,供其他用户观看。
- **抽中奖励**:
- 只显示用户本身抽中的奖励(积分、虚拟和实物商品,不显示“谢谢参与”)。
- 用户首次中奖后,可以通过“查看详情”和“添加地址”按钮添加收货地址,添加成功后即可提取奖励。
- 用户可以删除自己抽中的奖励。
- 用户可以通过“商品名称 - 查看详情”查看单条商品的发货详情。

### 9. 插件支持DIY
- **自定义功能**:插件支持DIY,您可以根据需要自定义插件的外观和功能。

### 10. 语言包更改
- **多语言支持**:后台语言包可以随意更改,方便多语言站点的使用。

### 11. 更多功能
- **安装体验**:更多功能请安装插件后体验。

### 演示地址
- 演示地址:(http://www.gh87661.com)

如果您在安装或使用过程中遇到任何问题,欢迎随时联系DZ插件网的技术支持团队,我们将竭诚为您服务!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: [DZ]积分抽奖 电脑版 2021(are_luck_draw)