打赏加悬赏功能插件,重新整理发布,献给有需要的用户

※ 特别说明:
由于wecenter的插件机制非常不完善,所以不能开发出完全独立的插件。但是已经做到尽量少修改系统原有文件。
因为涉及到模板修改,为了不影响原有模板,所以所有修改的模板文件都放在了新建的fesiong模板目录。
所以,需要使用打赏功能,首先需要到后台配置、选择fesiong作为界面模板。
在后台打赏配置那里,配置好支付宝、微信的收款配置。
如果你需要整合到现有模板,则需要把/static/css/fesiong/fesiong.css里面的样式复制到你的css中。
article.tpl.htm、question.tpl.htm均有改动,请自行搜索“赏”字,来找到改动的地方,复制到对应文件。
    导入shang.sql。如果你的表前缀不是aws_,请先打开shang.sql替换aws_成你的表前缀。

其他说明:
    提现现在有2种方式,一种是微信自动提现,另一种是支付宝提现。支付宝无法做到自动提现,用户申请后,管理员通过后台可以看到申请情况,然后根据申请填写的支付宝账号,到支付宝打款给申请者,然后回来吧把支付的流水号填写到提现申请页面,完成提现流程。

修改说明:

如果你是全新使用,请拉到最后
新增、修改文件列表
wecenter根目录
├── app
│   ├── admin
│   │   └── shang.php
│   ├── article
│   │   └── main.php
│   ├── m
│   │   ├── main.php
│   │   └── shang.php
│   ├── payment
│   │   ├── ajax.php
│   │   ├── callback.php
│   │   ├── main.php
│   │   └── notify.php
│   ├── question
│   │   ├── ajax.php
│   │   └── main.php
│   └── shang
│       ├── ajax.php
│       └── main.php
├── models
│   ├── crond.php
│   ├── payment
│   │   ├── WxPay.Api.php
│   │   ├── WxPay.Config.php
│   │   ├── WxPay.Data.php
│   │   ├── WxPay.Exception.php
│   │   ├── WxPay.JsApiPay.php
│   │   ├── WxPay.NativePay.php
│   │   ├── WxPay.Notify.php
│   │   ├── alipay.php
│   │   ├── aliwap.php
│   │   ├── apiclient_cert.pem
│   │   └── apiclient_key.pem
│   └── shang.php
├── static
│   ├── common
│   │   ├── recommend.png
│   │   ├── wx-help.png
│   │   └── wxpay.png
│   ├── css
│   │   └── fesiong
│   │       ├── fesiong-black.css
│   │       └── fesiong.css
│   └── js
│       └── app
│           └── shang.js
├── system
│   └── config
│       └── admin_menu.extension.php
└── views
    └── fesiong
        ├── admin
        │   └── shang
        │       ├── config.tpl.htm
        │       ├── info.tpl.htm
        │       ├── list.tpl.htm
        │       ├── withdraw_apply.tpl.htm
        │       └── withdraw_list.tpl.htm
        ├── article
        │   └── index.tpl.htm
        ├── block
        │   └── sidebar_menu.tpl.htm
        ├── m
        │   ├── article.tpl.htm
        │   ├── question.tpl.htm
        │   └── shang
        │       ├── index.tpl.htm
        │       ├── payment.tpl.htm
        │       ├── receive.tpl.htm
        │       ├── send.tpl.htm
        │       ├── shang.tpl.htm
        │       ├── withdraw.tpl.htm
        │       └── withdraw_list.tpl.htm
        ├── payment
        │   └── shang.tpl.htm
        ├── question
        │   └── index.tpl.htm
        └── shang
            ├── index.tpl.htm
            ├── receive.tpl.htm
            ├── send.tpl.htm
            ├── withdraw.tpl.htm
            └── withdraw_list.tpl.htm

添加表aws_shang
CREATE TABLE `aws_shang` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `uid` int(11) DEFAULT '0',
 `order_id` bigint(20) DEFAULT NULL,
 `add_time` int(11) DEFAULT '0',
 `price` int(11) DEFAULT '0',
 `pay_way` tinyint(1) DEFAULT '1',
 `terrace_id` varchar(64) DEFAULT NULL,
 `has_pay` tinyint(1) DEFAULT '0',
 `pay_time` int(11) DEFAULT '0',
 `item_type` tinyint(1) DEFAULT '1',
 `item_id` int(11) DEFAULT '0',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;

添加表aws_flow
CREATE TABLE `aws_flow` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `uid` int(11) DEFAULT '0',
 `price` int(11) DEFAULT '0',
 `add_time` int(11) DEFAULT '0',
 `order_id` bigint(20) DEFAULT NULL,
 `item_id` int(11) DEFAULT '0',
 `item_type` tinyint(1) DEFAULT '1',
 `item_uid` int(11) DEFAULT '0',
 `pay_type` tinyint(1) DEFAULT '1',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
添加表aws_withdraw
CREATE TABLE `aws_withdraw` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `type` tinyint(1) DEFAULT '1',
 `uid` int(11) DEFAULT '0',
 `add_time` int(11) DEFAULT '0',
 `price` int(11) DEFAULT '0',
 `status` tinyint(1) DEFAULT '0',
 `pay_time` int(11) DEFAULT '0',
 `pay_account` varchar(64) DEFAULT NULL,
 `pay_name` varchar(64) DEFAULT NULL,
 `order_id` bigint(20) DEFAULT NULL,
 `terrace_id` varchar(64) DEFAULT NULL,
 `info` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

修改aws_users
ALTER TABLE `aws_users` 
ADD COLUMN `balance` INT NULL DEFAULT 0 AFTER `recent_topics`;
修改aws_users_attrib
ALTER TABLE `aws_users_attrib`
ADD COLUMN `alipay_name`  varchar(255) DEFAULT NULL COMMENT '支付宝提现姓名' AFTER `homepage`;
ALTER TABLE `aws_users_attrib`
ADD COLUMN `alipay_account`  varchar(255) DEFAULT NULL COMMENT '支付宝提现账号' AFTER `alipay_name`;
修改aws_question
ALTER TABLE `aws_question` 
ADD COLUMN `price` INT NULL DEFAULT 0 AFTER `sort`,
ADD COLUMN `expity_date` SMALLINT(3) NULL DEFAULT 3 AFTER `price`,
ADD COLUMN `has_pay` tinyint(1) NULL DEFAULT 0 AFTER `expity_date`,
ADD COLUMN `pay_time` INT NULL DEFAULT 0 AFTER `has_pay`;

涉及到修改原有系统文件的地方
1、 /app/article/main.php
73行:
        //start 如果需要得到该文章被打赏了多少,则在这里查询
        $article_info['price'] = $this->model('shang')->get_article_shang($article_info['id']);
        //end
2、 /app/question/ajax.php
1015行
        //当设置为最佳回复的时候,则悬赏金额归最佳回复作者所有。
        if(!$question_info['has_pay']){
            $this->model('shang')->set_ok_question_shang($this->user_id, $question_info['price'], $answer_info['answer_id']);
            $this->model('shang')->set_question_has_pay($question_info['question_id']);
        }
        //end
    1003行
        //调整问题的提问者也有权限设置最佳答案
        if ($question_info['published_uid'] != $this->user_id AND ! $this->user_info['permission']['is_moderator'] AND ! $this->user_info['permission']['is_administortar'])
        {
            H::ajax_json_output(AWS_APP::RSM(null, - 1, AWS_APP::lang()->_t('你没有权限进行此操作')));
        }
        //end
3、 /app/question/main.php
269行
                //start 如果需要得到该回复被打赏了多少,则在这里查询,会影响性能
                $answer['price'] = $this->model('shang')->get_answer_shang($answer['answer_id']);
                //end
    135行
        //如果已经领取悬赏,则查找领取的人;
        if($question_info['has_pay'] == shang_class::HAS_PAY){
            $order_users = $this->model('shang')->get_shang_users_by_question_id($question_info['question_id']);
            TPL::assign('order_users', $order_users);
        }
        //end
4、 /app/m/main.php
112行
            //添加打赏css样式
            './css/fesiong/fesiong.css',
    1146行
        //start 如果需要得到该文章被打赏了多少,则在这里查询
        $article_info['price'] = $this->model('shang')->get_article_shang($article_info['id']);
        //end
    336行
        //如果已经领取悬赏,则查找领取的人;
        if($question_info['has_pay'] == shang_class::HAS_PAY){
            $order_users = $this->model('shang')->get_shang_users_by_question_id($question_info['question_id']);
            TPL::assign('order_users', $order_users);
        }
        //end
    442行
       //start 如果需要得到该回复被打赏了多少,则在这里查询,会影响性能
            $answer['price'] = $this->model('shang')->get_answer_shang($answer['answer_id']);
            //end
5、 /models/crond.php
151行
        //自动完成悬赏的计划任务
        $this->model('shang')->auto_question_shang();
6、 /app/explore/main.php
    157行
        //获得最新打赏记录
        TPL::assign('flow', $this->model('shang')->get_last_shang_list(5));
        //end
已邀请:

茶小白

赞同来自: 张赛

支持一下!

要回复问题请先登录注册