超惠拼系统模式设计以及超惠拼APP系统开发源码分享

超惠拼系统模式设计:

 

第①,每天签到普通客户都有100颗钻石。也就是十次拼团的机会。曾经西瓜口袋的钻石服务商代运营公司每天签到有200颗钻石,也就是20次拼团的机会。比其他人多十次。
第②,成功邀请一名新会员拼团,奖励100颗钻石。就是十次拼团机会。
第③,每天开团时间,下午2点到晚上10点,开启自动拼团,轻松赚钱。
第④,拼团成功可以选择拿产品,也可以选择不拿产品,留住积分,后期兑换更贵的产品。目前产品全部不发货,下周开始积分兑换上线,您有选项可以选择该产品发货,也可以选择留住积分去兑换。
第⑤,再次强调是同一款产品拼中五次。才能拥有一个西瓜
第⑥,一定一定要,提前把西瓜拿到手,2个西瓜你就是农场主了。能够瓜分本周奖金池里20%的奖金。12个西瓜就能瓜分本周奖金池里40%的奖金。所以可想而知西瓜的重要性。
第⑦,自动拼团过程中没有拼中,一块钱到你余额,100块钱继续参与下次拼团,所以余额你看不见这100块钱。

 

 

超惠拼系统源码分享:

//获取需要开奖的订单。
        $spell_order_model = StoreOrderSpell::where('goods_id',$data['id'])->where('is_pay',1)->where('status',0)->order('edit_time asc');
        if( intval($data['num']) > 0 )
        {
            $spell_order_model = $spell_order_model->limit(intval($data['num']));
        }
        $spell_order_info = $spell_order_model->select()->toArray();
        if( ! $spell_order_info )
            return Json::fail('该商品拼团暂时没有参与者');

        //获取商品信息
        $goods_info = StoreProduct::where('id',$data['id'])->find()->toArray();

        $sum_people = count($spell_order_info);
        $sum_win = $sum_lose = $level0_win = $level0_lose = $level1_win = $level1_lose = $level2_win = $level2_lose = $level3_win = $level3_lose = $level4_win = $level4_lose = 0;
        User::beginTrans();
        try {
            foreach ($spell_order_info as $value) {
                $order_info = \app\admin\model\order\StoreOrder::where('id', $value['oid'])->find()->toArray();
                $user_log_info = StoreOrderSpellUserLog::where('uid', $value['uid'])->where('goods_id', $value['goods_id'])->find()->toArray();

                $is_pick = false;
                //如果不是选中了必中必不中的人,则需要按照等级去随机开奖
                if ($value['win_flag'] != 1 && $value['lose_flag'] != 1) {
                    $is_pick = self::randPick($user_log_info['level'], $goods_info);
                }

                //如果中奖了
                if ($is_pick || $value['win_flag'] == 1) {
                    //处理中奖的操作
                    self::userWin($value, $user_log_info, $order_info['pay_price'], $goods_info['lose_reward_rate']);
                    $sum_win++;
                    ${'level' . $user_log_info['level'] . '_win'}++;
                } else {
                    //处理不中奖的操作
                    $sum_lose++;
                    ${'level' . $user_log_info['level'] . '_lose'}++;
                    self::userLose($value, $user_log_info, $order_info['pay_price'], $order_info['pay_type'], $goods_info['lose_reward_rate'],$goods_info['user_level_no']);
                }
            }
            //增加开奖记录
            $open_log_data = compact('sum_people', 'sum_win', 'sum_lose', 'level0_win', 'level0_lose', 'level1_win', 'level1_lose', 'level2_win', 'level2_lose', 'level3_win', 'level3_lose', 'level4_win', 'level4_lose');
            $open_log_data['add_time'] = time();
            $open_log_data['goods_id'] = $data['id'];
            StoreOrderSpellOpenLog::insert($open_log_data);

            User::commitTrans();
            return Json::success('开奖成功');
        } catch (\Exception $e)
        {
            User::rollbackTrans();
            return Json::fail('开奖事务执行失败,请联系技术查看原因');;
        }

  

上一篇:Mybatis基础知识(五)


下一篇:Vue.js 学习笔记十三:Vue Router 之路由组件传参