yzyblog / coffice_service
1.0.8
2017-09-20 11:18 UTC
Requires
- dekuan/vdata: ^1.0
- jenssegers/mongodb: ^3.2
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' => '大小',
],
];