yii2 DAO实现增,删,改,查

/**
     * 导入游戏资料包
     * author:mzc
     * date:2018/5/11 9:51
     */
    public function actionDataPkg()
    {
        $db = \Yii::$app->db;
        $btbox_db = \Yii::$app->btbox_db;
        try {
            //1. 新系统--查询现有游戏资料包存在但格式不是rar或zip的游戏及资料包id和游戏资料包不存在的游戏
            $sql = "select id,data_pkg from cy_game where data_pkg in (SELECT id FROM `cy_upload` where ext not in('zip','rar'))";
            $sql .= " or (data_pkg =0 or data_pkg is NULL)";//游戏资料包不存在的游戏

//            $sql = "select id,data_pkg from cy_game where id=9 ";
            $result = $db->createCommand($sql)->queryAll();

            if (empty($result)) {
                self::repSuccess('导入资料包成功');
            }

            $dataPkg = array_column($result, 'data_pkg');
            $dataPkg = array_unique(array_filter($dataPkg));

            $gameid = array_column($result, 'id');


            //2. 删除新系统中资料包不是rar或zip的上传记录
            if (!empty($dataPkg)) {
                $db->createCommand()->delete('cy_upload', ['id' => $dataPkg])->execute();
            }

            //3. 老系统-查询对应的游戏的资料包地址,资料包名称
            if (!empty($gameid)) {
                $gameidStr = trim(implode(',', $gameid), ',');
                $sql = "select id,data_package,package_name from cy_game where id in ({$gameidStr}) and  data_package!='0'";
                $result = $btbox_db->createCommand($sql)->queryAll();

                if (empty($result)) {
                    self::repSuccess('导入资料包成功');
                }
                $importStr = ",新导入的uploadId为:";
                foreach ($result as $value) {
                    $gameid = $value['id'];
                    $upload['name'] = $value['package_name'];
                    $upload['url'] = $value['data_package'];
                    //4. 插入到新系统cy_upload中
                    $db->createCommand()->insert('cy_upload', $upload)->execute();
                    $lastInsertId = $db->getLastInsertID();

                    //5. 更新游戏的资料包id
                    $res = $db->createCommand()->update('cy_game', ['data_pkg' => $lastInsertId], ['id' => $gameid])->execute();
                    if ($res) {
                        $importStr .= $lastInsertId . ',';
                    }
                }
            }
            self::repSuccess('导入资料包成功' . $importStr);
        } catch (\Exception $ex) {
            echo "1111";
            self::repError($ex->getMessage());
        }
    }

猜你喜欢

转载自blog.csdn.net/mengzuchao/article/details/80306110