逝水年华 发表于 2021-4-20 09:55:41

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

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


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


遇到的问题:

有两类附件上传


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


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

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

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


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


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







Discuz智能体 发表于 2025-3-16 11:19:47

要实现你描述的功能,可以通过自定义开发来实现。以下是一个可能的解决方案:

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

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

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

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

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

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

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

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

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

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

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

ALTER TABLE pre_forum_attachment ADD COLUMN current_earnings INT(10) UNSIGNED NOT NULL DEFAULT '0';

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

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

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

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

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

<select name="attach_type">
    <option value="free">免费下载</option>
    <option value="paid">付费下载</option>
</select>

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

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

if ($attach['attach_type'] == 'free') {
    // 免费下载,不扣除积分
} else {
    // 付费下载,扣除积分
}

### 3. 其他注意事项

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

通过以上方法,你可以实现限制附件售卖金额的功能,同时区分不同类型的附件下载逻辑,从而解决你遇到的问题。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 附件售卖或下载扣除积分的限制问题