·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

附件售卖或下载扣除积分的限制问题

1254 1
发表于 2021-4-20 09:55:41 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
现状:交易积分设置为金钱,附件下载扣除1金钱,暂时未设置附件和主题售卖。


想法:最近想弄一个积分商城,目的为了增加社区的活跃性,鼓励大家赚金钱积分,用金钱积分兑换实物奖品。


遇到的问题:

有两类附件上传


1.有人发布提问帖,会把问题资料以附件方式发送出来,回复的人需要下载附件查看,然后再回复
但设置了附件下载需要扣除金钱积分,导致无人愿意下载回复。这类希望附件下载是不扣金钱积分的。


(帮人回复解决问题,还倒扣了金钱积分,这个就比较矛盾了

2.经验分享帖,会分享一些有价值的资料,好东西分享出来,当然希望能赚取一些金钱积分,这类需要扣除金钱再下载。这个设置是合理,同时增加金钱积分的消耗,增加活跃度。

考虑取消下载扣除积分,改为附件售卖的方式,这样就可以解决上面两类下载扣分问题。


但如果下载的人很多,售卖的方式,很可能会导致金钱积分暴涨。毕竟实物兑换算作成本的。不希望金钱积分暴涨。


有没有限制附件售卖的方式,比如售卖附件单次下载2金钱,最多20金钱,赚取20金钱后,后面下载的不会增加楼主的金钱积分。这样可以避免金钱积分暴涨的问题。







我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-16 11:19:47 | 查看全部
要实现你描述的功能,可以通过自定义开发来实现。以下是一个可能的解决方案:

### 1. 自定义附件售卖逻辑

你可以通过修改Discuz的附件售卖逻辑来实现限制售卖金额的功能。具体步骤如下:

#### 1.1 修改附件售卖逻辑

在Discuz中,附件售卖的逻辑主要位于 `source/module/forum/forum_attachment.php` 文件中。你可以在这个文件中找到相关的代码,并进行修改。

#### 1.2 添加售卖金额限制

你可以在附件售卖的代码中添加一个逻辑,限制每个附件的售卖金额。例如,当附件售卖的金额达到20金钱时,后续下载不再增加楼主的金钱积分。

  1. // 假设 $attach['price'] 是附件的售价
  2. // $attach['downloads'] 是附件的下载次数
  3. // $max_earnings 是最大收益,设置为20金钱

  4. $max_earnings = 20;
  5. $current_earnings = $attach['price'] * $attach['downloads'];

  6. if ($current_earnings < $max_earnings) {
  7.     // 正常扣除积分并增加楼主的金钱积分
  8.     // 这里是你原有的扣除积分和增加楼主积分的逻辑
  9. } else {
  10.     // 超过最大收益后,只扣除下载者的积分,不增加楼主的金钱积分
  11.     // 这里是你原有的扣除积分逻辑,但不增加楼主积分
  12. }
复制代码


#### 1.3 修改数据库结构

你可能需要在数据库中为附件表添加一个字段,用于记录每个附件的当前收益。例如,可以在 `pre_forum_attachment` 表中添加一个 `current_earnings` 字段。

  1. ALTER TABLE pre_forum_attachment ADD COLUMN current_earnings INT(10) UNSIGNED NOT NULL DEFAULT '0';
复制代码


然后在每次下载附件时更新这个字段。

### 2. 区分不同类型的附件

为了区分提问帖和经验分享帖的附件,你可以在发布附件时添加一个选项,让用户选择附件的类型(例如:免费下载或付费下载)。

#### 2.1 添加附件类型选项

你可以在发布附件的表单中添加一个下拉菜单,让用户选择附件的类型。

  1. <select name="attach_type">
  2.     <option value="free">免费下载</option>
  3.     <option value="paid">付费下载</option>
  4. </select>
复制代码


#### 2.2 根据附件类型处理下载逻辑

在下载附件时,根据附件的类型来决定是否扣除积分。

  1. if ($attach['attach_type'] == 'free') {
  2.     // 免费下载,不扣除积分
  3. } else {
  4.     // 付费下载,扣除积分
  5. }
复制代码


### 3. 其他注意事项

- **缓存问题**:修改代码后,记得清除缓存,确保修改生效。
- **测试**:在生产环境应用之前,建议在测试环境中充分测试,确保功能正常。
- **备份**:在进行任何代码修改之前,务必备份数据库和代码,以防出现问题。

通过以上方法,你可以实现限制附件售卖金额的功能,同时区分不同类型的附件下载逻辑,从而解决你遇到的问题。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.139.55.240,GMT+8, 2025-3-29 17:55 , Processed in 0.403832 second(s), 79 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表