分享
  • 收藏
  • 举报
    X
    求解决会员权限反常掉级问题
    • 露脸网陈序男 消费3371.08元 2020-06-06 08:26 08:26
    451
    5

    我设了三个会员级别,一是0资产的,会员游客,二是10个资产(积分)社区社员,三是审核 员,达到100资产(积分)

    有时我也在管理后台指定一些会员为批定权限,可是,奇怪的是,不出一二天,这些人莫名奇妙跌成会员游客。看代码好像也没能什么问题,苦恼

    <?php


    namespace app\common\controller;


    use think\Db;



    //定义是会员中心

    define('IN_MEMBER', true);


    /**

     * 后台总控制器

     */

    class MemberBase extends Base

    {

        /**

         * 会员中心初始化

         */

        protected function _initialize()

        {

            parent::_initialize();


            hook_listen('member_begin', $array = ['user' => $this->user]);     //钩子扩展


            if (!defined('LOGIN_PAGE') && empty($this->user)) {

                $this->success('请先登录', iurl('index/login/index'));

            }

    //

    //        if ($this->user['uid'] == 38) {

            $userdb = Db::name('memberdata')->where("uid = " . $this->user['uid'])->find();

            $minmoney = [13 =>10, 14 => 1000000, 15 => 100];

            $myminmoney = $minmoney[$userdb['groupid']];

            $myid = $this->user['uid'];


            if (in_array($userdb['groupid'], [13, 14, 15])) {


                $updatatime = $userdb['updatatime'];

                if (empty($updatatime)) {

                    $updatatime = 0;

                }


                $mygetmoney = Db::name('moneylog')->where("uid = $myid and posttime > $updatatime")->sum('money');


                if ($myid == 38) {

                    $mygetmoney = 9999;

                    var_dump($this->user);

                }


                if ($userdb['money'] < $myminmoney and $mygetmoney > $myminmoney) {


                    //降级

                    switch ($userdb['groupid']) {

                        case 13:

                            $newlevel = 11;

                            break;

                        case 14:

                            if ($userdb['money'] >= 10)

                                $newlevel = 13;

                            else

                                $newlevel = 11;

                            break;

                        case 15:

                            if ($userdb['money'] >= 10) {

                                $newlevel = 14;

                            } elseif ($userdb['money'] >= 1) {

                                $newlevel = 13;

                            } else {

                                $newlevel = 11;

                            }

                    }

                    $leveldata = ['uid' => $myid, 


    5
    赏礼
    赏钱
    收藏
    点击回复
        全部留言
    • 5
    • kk1212 白金粉丝 消费:1211.05元 2020-06-06 09:57 09:576楼
      会员组那里填0即可解决,默认的是30天有效期(30天后会自动降级)
    0 赏钱 赏礼回复
    • admin 超级管理员 消费:3.04元 2020-06-06 08:46 08:466楼
      另外,你再仔细看看数据表qb_memberdata 这个字段 group_endtime 是不是为0,不为0的话,就是有效时间一过,就会降级的
    0 赏钱 赏礼回复
    • admin 超级管理员 消费:3.04元 2020-06-06 08:31 08:316楼
      你设置的是自动升级还是购买升级的?
      露脸网陈序男 消费:3371.08元 2020-06-06 08:37
      我是希望自动升级+后台管理员手动指定升级,可是找不到设置自动和购买升级的地方呀、
    0 赏钱 赏礼回复
    更多回复
        你可能感兴趣的主题
    恢复多功能编辑器
  • 3 1
  • 推荐内容
    扫一扫访问手机版
    请选择要切换的马甲:

     
    网页即时交流
    QQ咨询
    咨询热线
    020-28998648