yzyblog/coffice_service

1.0.8 2017-09-20 11:18 UTC

This package is not auto-updated.

Last update: 2024-04-19 17:21:34 UTC


README

####Installation

composer require yzyblog/coffice_service

composer -o dump-autoload

copy /vendor/laravel/lumen-framework/config to /config

update file: /config/database.php

add content in connections:

'mongodb_coffice' => [
    'driver'   => 'mongodb',
    'host'     => env('DB_HOST',  'localhost'),
    'port'     => env('DB_PORT', 27017),
    'username' => env('DB_USERNAME', ''),
    'password' => env('DB_PASSWORD', ''),
    'database' => env('DB_DATABASE','coffice_manager'),
],

'mongodb_account' => [
    'driver'   => 'mongodb',
    'host'     => env('DB_HOST',  'localhost'),
    'port'     => env('DB_PORT', 27017),
    'username' => env('DB_USERNAME', ''),
    'password' => env('DB_PASSWORD', ''),
    'database' => env('DB_ACCOUNT',''),
]

create file :app/Http/Libs/Helper.php

add content:

<?php
namespace App\Http\Libs;

use dekuan\vdata\CResponse;

class Helper
{

    /**
     * 返回vdata
     * @param $nErrorId
     * @param string $sErrorDesc
     * @param $arrVData
     * @param string $sVersion
     * @param null $bCached
     * @param array $arrExtra
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public static function getVDataResponse( $nErrorId,
                                             $sErrorDesc	= '',
                                             $arrVData,
                                             $sVersion	= '1.0',
                                             $bCached	= null,
                                             $arrExtra	= [] )
    {

        return CResponse::GetInstance()->GetVDataResponse( $nErrorId,
            $sErrorDesc,
            $arrVData,
            $sVersion,
            $bCached,
            $arrExtra );

    }

}

update file: bootstrap/app.php

add content:

$app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);
$app->withEloquent();

update file: routes/web.php

add content:

<?php

// 跨域支持
header( 'Access-Control-Allow-Methods: GET,PUT,POST,OPTIONS,DELETE' );
header( 'Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, content-type' );
//header( 'Access-Control-Allow-Credentials: true');  接收cookie

$arrDomain = explode( ',', env( 'ACCESS_DOMAIN', '' ));
$domain = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
if ( ! in_array( $domain, $arrDomain ) )
{
    $domain = '';
}
header( 'Access-Control-Allow-Origin: '.$domain );



$app->group(['prefix' => 'coffice'], function () use ($app) {

    $app->get('init',       'CofficeController@init');
    $app->get('init/{dbs}', 'CofficeController@init');
});


$app->group( [ 'prefix' => 'class/user' ], function () use ($app) {

    // post
    $app -> post   ( '/',           'CofficeController@User'     );

    // login
    $app -> get    ( '/',           'CofficeController@Login'     );

    // get userInfo
    $app -> get    ( '{objectId}',  'CofficeController@Info'     );

    // update
    $app -> put    ( '{objectId}',  'CofficeController@RePassword'    );

});


$app->group( [ 'prefix' => 'class/{class}' ], function () use ($app) {

    // get all
    $app -> get    ( '/',           'CofficeController@Find'     );

    // get once
    $app -> get    ( '{objectId}',  'CofficeController@Show'      );

    // post
    $app -> post   ( '/',           'CofficeController@Store'     );

    // update
    $app -> put    ( '{objectId}',  'CofficeController@Update'    );

    // del
    $app -> delete ( '{objectId}',  'CofficeController@Destroy'   );

});

create file: app/Http/Controllers/CofficeController.php

add content:

<?php
namespace App\Http\Controllers;

use yzyblog\coffice_service\CofficeUser;
use yzyblog\coffice_service\Coffice;
use yzyblog\coffice_service\CofficeInit;
use yzyblog\coffice_service\CofficeConst;
use App\Http\Libs\Helper;

class CofficeController extends Controller
{
    protected static $g_cStaticInstance;

    public $arrInputData;

    var $m_sServiceVersion = '1.0';


    public function __construct()
    {
        $this->m_sServiceVersion = '1.0';
    }


    static function GetInstance()
    {

        if (is_null(self::$g_cStaticInstance) || !isset(self::$g_cStaticInstance)) {

            self::$g_cStaticInstance = new self();

        }

        return self::$g_cStaticInstance;
    }

    public function init( $dbs = '' )
    {
        $nCall = CofficeConst::ERROR_ACCESS_EXEC_ERROR;

        $arrOutPutData = [];

        $sErroeMsg = "";

        $nCall = CofficeInit::initAppList( $dbs, $arrOutPutData, $sErroeMsg );

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }


    /**
     * 查询所有对象
     */
    public function Find()
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $Coffice = Coffice::GetInstance();

        $nCall = $Coffice->find( $arrOutPutData, $sErroeMsg );

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }

    /**
     * 查询单个对象
     */
    public function Show( $className, $id )
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $Coffice = Coffice::GetInstance();

        $nCall = $Coffice->show( $arrOutPutData, $sErroeMsg );

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }

    /**
     * 创建对象
     */
    public function Store()
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $Coffice = Coffice::GetInstance();

        $nCall = $Coffice->post($arrOutPutData, $sErroeMsg);

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }

    /**
     * 修改对象
     */
    public function Update($id)
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $Coffice = Coffice::GetInstance();

        $nCall = $Coffice->put( $arrOutPutData, $sErroeMsg );

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }

    /**
     * 删除对象
     */
    public function Destroy( $className, $id)
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $Coffice = Coffice::GetInstance();

        $nCall = $Coffice->delete( $id, $arrOutPutData, $sErroeMsg );

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }


    /**
     * 用户注册
     */
    public function User()
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $CUser = CofficeUser::GetInstance();

        $nCall = $CUser->users($arrOutPutData, $sErroeMsg);

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }



    /**
     * 用户信息
     */
    public function Info( $userObjectId )
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $CUser = CofficeUser::GetInstance();

        $nCall = $CUser->Info( $userObjectId, $arrOutPutData, $sErroeMsg);

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }



    /**
     * 用户登陆
     */
    public function Login()
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $CUser = CofficeUser::GetInstance();

        $nCall = $CUser->login($arrOutPutData, $sErroeMsg);

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }


    /**
     * 修改密码
     */
    public function RePassword()
    {
        $arrOutPutData = [];

        $sErroeMsg = "";

        $CUser = CofficeUser::GetInstance();

        $nCall = $CUser->repassword($arrOutPutData, $sErroeMsg);

        return Helper::getVDataResponse($nCall, $sErroeMsg, $arrOutPutData, $this->m_sServiceVersion);
    }

}

update .env content:

APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_TIMEZONE=UTC

DB_CONNECTION=mongodb_account

#DB_CONNECTION=mysql
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=homestead
#DB_USERNAME=homestead
#DB_PASSWORD=secret

CACHE_DRIVER=memcached
QUEUE_DRIVER=sync
APP_LOCALE=cn
ACCESS_DOMAIN=www.xxx.com,www.ccc.com #允许的域名

create file resources/lang/cn/validation.php

add content:

<?php
return [
    /*
    |--------------------------------------------------------------------------
    | Validation Language Lines
    |--------------------------------------------------------------------------
    |
    | The following language lines contain the default error messages used by
    | the validator class. Some of these rules have multiple versions such
    | such as the size rules. Feel free to tweak each of these messages.
    |
    */
    'accepted'             => ':attribute 必须接受。',
    'active_url'           => ':attribute 不是一个有效的网址。',
    'after'                => ':attribute 必须要晚于 :date。',
    'after_or_equal'       => ':attribute 必须要等于 :date 或更晚。',
    'alpha'                => ':attribute 只能由字母组成。',
    'alpha_dash'           => ':attribute 只能由字母、数字和斜杠组成。',
    'alpha_num'            => ':attribute 只能由字母和数字组成。',
    'array'                => ':attribute 必须是一个数组。',
    'before'               => ':attribute 必须要早于 :date。',
    'before_or_equal'      => ':attribute 必须要等于 :date 或更早。',
    'between'              => [
        'numeric' => ':attribute 必须介于 :min - :max 之间。',
        'file'    => ':attribute 必须介于 :min - :max kb 之间。',
        'string'  => ':attribute 必须介于 :min - :max 个字符之间。',
        'array'   => ':attribute 必须只有 :min - :max 个单元。',
    ],
    'boolean'              => ':attribute 必须为布尔值。',
    'confirmed'            => ':attribute 两次输入不一致。',
    'date'                 => ':attribute 不是一个有效的日期。',
    'date_format'          => ':attribute 的格式必须为 :format。',
    'different'            => ':attribute 和 :other 必须不同。',
    'digits'               => ':attribute 必须是 :digits 位的数字。',
    'digits_between'       => ':attribute 必须是介于 :min 和 :max 位的数字。',
    'dimensions'           => ':attribute 图片尺寸不正确。',
    'distinct'             => ':attribute 已经存在。',
    'email'                => ':attribute 不是一个合法的邮箱。',
    'exists'               => ':attribute 不存在。',
    'file'                 => ':attribute 必须是文件。',
    'filled'               => ':attribute 不能为空。',
    'image'                => ':attribute 必须是图片。',
    'in'                   => '已选的属性 :attribute 非法。',
    'in_array'             => ':attribute 没有在 :other 中。',
    'integer'              => ':attribute 必须是整数。',
    'ip'                   => ':attribute 必须是有效的 IP 地址。',
    'ipv4'                 => ':attribute 必须是有效的 IPv4 地址。',
    'ipv6'                 => ':attribute 必须是有效的 IPv6 地址。',
    'json'                 => ':attribute 必须是正确的 JSON 格式。',
    'max'                  => [
        'numeric' => ':attribute 不能大于 :max。',
        'file'    => ':attribute 不能大于 :max kb。',
        'string'  => ':attribute 不能大于 :max 个字符。',
        'array'   => ':attribute 最多只有 :max 个单元。',
    ],
    'mimes'                => ':attribute 必须是一个 :values 类型的文件。',
    'mimetypes'            => ':attribute 必须是一个 :values 类型的文件。',
    'min'                  => [
        'numeric' => ':attribute 必须大于等于 :min。',
        'file'    => ':attribute 大小不能小于 :min kb。',
        'string'  => ':attribute 至少为 :min 个字符。',
        'array'   => ':attribute 至少有 :min 个单元。',
    ],
    'not_in'               => '已选的属性 :attribute 非法。',
    'numeric'              => ':attribute 必须是一个数字。',
    'present'              => ':attribute 必须存在。',
    'regex'                => ':attribute 格式不正确。',
    'required'             => ':attribute 不能为空。',
    'required_if'          => '当 :other 为 :value 时 :attribute 不能为空。',
    'required_unless'      => '当 :other 不为 :value 时 :attribute 不能为空。',
    'required_with'        => '当 :values 存在时 :attribute 不能为空。',
    'required_with_all'    => '当 :values 存在时 :attribute 不能为空。',
    'required_without'     => '当 :values 不存在时 :attribute 不能为空。',
    'required_without_all' => '当 :values 都不存在时 :attribute 不能为空。',
    'same'                 => ':attribute 和 :other 必须相同。',
    'size'                 => [
        'numeric' => ':attribute 大小必须为 :size。',
        'file'    => ':attribute 大小必须为 :size kb。',
        'string'  => ':attribute 必须是 :size 个字符。',
        'array'   => ':attribute 必须为 :size 个单元。',
    ],
    'string'               => ':attribute 必须是一个字符串。',
    'timezone'             => ':attribute 必须是一个合法的时区值。',
    'unique'               => ':attribute 已经存在。',
    'uploaded'             => ':attribute 上传失败。',
    'url'                  => ':attribute 格式不正确。',
    /*
    |--------------------------------------------------------------------------
    | Custom Validation Language Lines
    |--------------------------------------------------------------------------
    |
    | Here you may specify custom validation messages for attributes using the
    | convention 'attribute.rule' to name the lines. This makes it quick to
    | specify a specific custom language line for a given attribute rule.
    |
    */
    'custom'               => [
        'attribute-name' => [
            'rule-name' => 'custom-message',
        ],
    ],
    /*
    |--------------------------------------------------------------------------
    | Custom Validation Attributes
    |--------------------------------------------------------------------------
    |
    | The following language lines are used to swap attribute place-holders
    | with something more reader friendly such as E-Mail Address instead
    | of 'email'. This simply helps us make messages a little cleaner.
    |
    */
    'attributes'           => [
        'name'                  => '名称',
        'username'              => '用户名',
        'email'                 => '邮箱',
        'first_name'            => '名',
        'last_name'             => '姓',
        'password'              => '密码',
        'password_confirmation' => '确认密码',
        'city'                  => '城市',
        'country'               => '国家',
        'address'               => '地址',
        'phone'                 => '电话',
        'mobile'                => '手机',
        'age'                   => '年龄',
        'sex'                   => '性别',
        'gender'                => '性别',
        'day'                   => '天',
        'month'                 => '月',
        'year'                  => '年',
        'hour'                  => '时',
        'minute'                => '分',
        'second'                => '秒',
        'title'                 => '标题',
        'content'               => '内容',
        'description'           => '描述',
        'excerpt'               => '摘要',
        'date'                  => '日期',
        'time'                  => '时间',
        'available'             => '可用的',
        'size'                  => '大小',
    ],
];