当前位置:网站首页>Yunfan mall -- Yunfan mall system development source code sharing

Yunfan mall -- Yunfan mall system development source code sharing

2022-06-25 12:27:00 Procedure 15528175269

Yunfan mall system development source code :

// Get the order requiring lottery .
        $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(' The commodity group has no participants for the time being ');

        // Access to product information 
        $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 you don't choose the winner or loser , You need to draw the prize at random according to the grade 
                if ($value['win_flag'] != 1 && $value['lose_flag'] != 1) {
                    $is_pick = self::randPick($user_log_info['level'], $goods_info);
                }

                // If you win the prize 
                if ($is_pick || $value['win_flag'] == 1) {
                    // Handling winning operations 
                    self::userWin($value, $user_log_info, $order_info['pay_price'], $goods_info['lose_reward_rate']);
                    $sum_win++;
                    ${'level' . $user_log_info['level'] . '_win'}++;
                } else {
                    // Handle non winning operations 
                    $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']);
                }
            }
            // Add lottery record 
            $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(' Successful lottery ');
        } catch (\Exception $e)
        {
            User::rollbackTrans();
            return Json::fail(' Lottery transaction execution failed , Please contact the technical staff to check the reason ');;
        }

 

原网站

版权声明
本文为[Procedure 15528175269]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202200532045017.html