同步套餐
This commit is contained in:
parent
d22f743b18
commit
a656a0a50c
@ -19,10 +19,11 @@ class Dicts extends Repository
|
||||
'week' => ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
|
||||
'weekIso' => ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
|
||||
'pay_type' => ['微信支付', '支付宝', '银行转账'],
|
||||
'carrier_operator' => ['联通', '移动', '电信'],
|
||||
'carrier_operator' => ['联通', '移动', '电信', '全网'],
|
||||
'service_type' => ['套餐开通', '套餐续费', '套餐更换', '套餐销售'],
|
||||
'card_status' => ['测试期', '沉默期', '服务期', '已注销'],
|
||||
'bloc_channel' => ['运营商', '中间商'],
|
||||
'package_type' => ['基础套餐', '续费包', '加油包', '可选包', '附加包'],
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
|
17
app/Domains/Real/Commands/Sync/ActivateSync.php
Normal file
17
app/Domains/Real/Commands/Sync/ActivateSync.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
class ActivateSync extends Command
|
||||
{
|
||||
protected $name = 'sync:activate';
|
||||
|
||||
protected $description = '同步RD激活数据';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$datetime = $this->getDateTime();
|
||||
}
|
||||
}
|
34
app/Domains/Real/Commands/Sync/BlocSync.php
Normal file
34
app/Domains/Real/Commands/Sync/BlocSync.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Real\Bloc;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class BlocSync extends Command
|
||||
{
|
||||
protected $name = 'sync:bloc';
|
||||
|
||||
protected $description = '同步RD集团数据';
|
||||
|
||||
protected $carrier_operator = ['lt' => 0, 'yd' => 1, 'dx' => 2, 'qw' => 3];
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$datetime = $this->getDateTime();
|
||||
|
||||
$select = ['bloc_code as id', "bloc_name as name", 'carrieroperator as carrier_operator', 'create_time as created_at'];
|
||||
|
||||
$data = DB::connection('real')->table('jxc_bloc_manage')->select($select)->where('del', 0)->get()->toArray();
|
||||
|
||||
foreach ($data as &$item) {
|
||||
$item = (array)$item;
|
||||
$item['carrier_operator'] = $this->carrier_operator[$item['carrier_operator']];
|
||||
$item['created_at'] = Carbon::createFromTimestamp($item['created_at']);
|
||||
$item['updated_at'] = date('Y-m-d H:i:s');
|
||||
}
|
||||
|
||||
Bloc::replace($data);
|
||||
}
|
||||
}
|
30
app/Domains/Real/Commands/Sync/Command.php
Normal file
30
app/Domains/Real/Commands/Sync/Command.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Console\Command as BaseCommand;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
|
||||
class Command extends BaseCommand
|
||||
{
|
||||
protected function getDateTime()
|
||||
{
|
||||
if ($month = $this->argument('month')) {
|
||||
if (!preg_match('/\d{4}-\d{1,2}/', $month)) {
|
||||
throw new \App\Exceptions\InvalidArgumentException('请输入正确的年月 #示例: 2018-10');
|
||||
}
|
||||
|
||||
return Carbon::parse($month)->startOfMonth();
|
||||
}
|
||||
|
||||
return Carbon::now()->startOfMonth()->subMonth();
|
||||
}
|
||||
|
||||
protected function getArguments()
|
||||
{
|
||||
return [
|
||||
['month', InputArgument::OPTIONAL, '要同步的数据月份,默认上个月 #示例: 2018-10'],
|
||||
];
|
||||
}
|
||||
}
|
34
app/Domains/Real/Commands/Sync/CompanySync.php
Normal file
34
app/Domains/Real/Commands/Sync/CompanySync.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Real\Company;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class CompanySync extends Command
|
||||
{
|
||||
protected $name = 'sync:company';
|
||||
|
||||
protected $description = '同步RD企业数据';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$datetime = $this->getDateTime();
|
||||
|
||||
$sql = "SELECT c.custom_no AS id,c.name,c.create_time AS created_at FROM jxc_user a
|
||||
INNER JOIN jxc_user_custom_relation b ON a.id=b.uid
|
||||
INNER JOIN jxc_custom c ON b.custom_no=c.custom_no AND c.del=0
|
||||
WHERE a.parent_user IN (SELECT id FROM jxc_user WHERE parent_user=3 AND role_tag='normal')";
|
||||
|
||||
$data = DB::connection('real')->select($sql);
|
||||
|
||||
foreach ($data as &$item) {
|
||||
$item = (array)$item;
|
||||
$item['created_at'] = Carbon::parse($item['created_at']);
|
||||
$item['updated_at'] = date('Y-m-d H:i:s');
|
||||
}
|
||||
|
||||
Company::replace($data);
|
||||
}
|
||||
}
|
16
app/Domains/Real/Commands/Sync/OrderBaseSync.php
Normal file
16
app/Domains/Real/Commands/Sync/OrderBaseSync.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
class OrderBaseSync extends Command
|
||||
{
|
||||
protected $signature = 'sync:order-base';
|
||||
|
||||
protected $description = '同步RD基础订单数据';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
}
|
||||
}
|
16
app/Domains/Real/Commands/Sync/OrderRenewalSync.php
Normal file
16
app/Domains/Real/Commands/Sync/OrderRenewalSync.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
|
||||
class OrderRenewalSync extends Command
|
||||
{
|
||||
protected $signature = 'sync:order-renewal';
|
||||
|
||||
protected $description = '同步RD续费订单数据';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
}
|
||||
}
|
194
app/Domains/Real/Commands/Sync/PackageSync.php
Normal file
194
app/Domains/Real/Commands/Sync/PackageSync.php
Normal file
@ -0,0 +1,194 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\Real\Commands\Sync;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Real\Company;
|
||||
use App\Models\Real\Package;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class PackageSync extends Command
|
||||
{
|
||||
protected $name = 'sync:package';
|
||||
|
||||
protected $description = '同步RD套餐数据';
|
||||
|
||||
protected $companies;
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$datetime = $this->getDateTime();
|
||||
$this->companies = Company::all()->pluck('id')->toArray();
|
||||
|
||||
$basePackages = $this->getBasePackages();
|
||||
|
||||
$renewalPackages = $this->getRenewalPackages();
|
||||
|
||||
foreach ($renewalPackages as &$item) {
|
||||
$item['flows'] = $basePackages[$item['parent_id']]['flows'];
|
||||
$item['voices'] = $basePackages[$item['parent_id']]['voices'];
|
||||
$item['messages'] = $basePackages[$item['parent_id']]['messages'];
|
||||
$item['has_message_switch'] = $basePackages[$item['parent_id']]['has_message_switch'];
|
||||
$item['has_lbs'] = $basePackages[$item['parent_id']]['has_lbs'];
|
||||
$item['reset_cycle'] = $basePackages[$item['parent_id']]['reset_cycle'];
|
||||
}
|
||||
|
||||
$flowPackages = $this->getFlowPackages();
|
||||
$optionalPackages = $this->getOptionalPackages();
|
||||
$additionalPackages = $this->getAdditionalPackages();
|
||||
|
||||
$packages = array_merge($basePackages, $renewalPackages, $flowPackages, $optionalPackages, $additionalPackages);
|
||||
|
||||
Package::replace($packages);
|
||||
}
|
||||
|
||||
// 基础包
|
||||
protected function getBasePackages()
|
||||
{
|
||||
$select = [
|
||||
DB::raw('0 as type'),
|
||||
'jxc_package.package_sn as id',
|
||||
'jxc_package.name as name',
|
||||
'jxc_package.carrieroperator as carrier_operator',
|
||||
'jxc_package.price as cost_price',
|
||||
'jxc_package.guide_price as guide_price',
|
||||
'jxc_package.flows as flows',
|
||||
'jxc_package.voices as voices',
|
||||
'jxc_package.short_msg as messages',
|
||||
'jxc_package.short_msg_on as has_message_switch',
|
||||
'jxc_package.lbs as has_lbs',
|
||||
'jxc_package.flow_cycle as reset_cycle',
|
||||
'jxc_package.package_cycle as service_cycle',
|
||||
DB::raw("FROM_UNIXTIME(jxc_package.create_time, '%Y-%m-%d %H:%i:%s') as created_at"),
|
||||
];
|
||||
|
||||
$packages = DB::connection('real')->table('jxc_package')->join('jxc_package_custom_relation', function ($join) {
|
||||
$join->on('jxc_package_custom_relation.package_sn', '=', 'jxc_package.package_sn')
|
||||
->whereIn('jxc_package_custom_relation.custom_no', $this->companies)
|
||||
->where('jxc_package_custom_relation.del', 0);
|
||||
})->select($select)->where('jxc_package.del', 0)->where('type', 11)->get();
|
||||
|
||||
return $this->transform($packages);
|
||||
}
|
||||
|
||||
// 续费包
|
||||
protected function getRenewalPackages()
|
||||
{
|
||||
$select = [
|
||||
DB::raw('1 as type'),
|
||||
'jxc_package_renewal.bag_number as id',
|
||||
'jxc_package_renewal.package_sn as parent_id',
|
||||
'jxc_package_renewal.name as name',
|
||||
'jxc_package_renewal.price as cost_price',
|
||||
'jxc_package_renewal.guide_price as guide_price',
|
||||
'jxc_package_renewal.service_cycle as service_cycle',
|
||||
'jxc_package_renewal.create_time as created_at',
|
||||
];
|
||||
|
||||
$packages = DB::connection('real')->table('jxc_package_renewal')->join('jxc_package_value_add_relation', function ($join) {
|
||||
$join->on('jxc_package_value_add_relation.value_add_number', '=', 'jxc_package_renewal.bag_number')
|
||||
->whereIn('jxc_package_value_add_relation.custom_no', $this->companies)
|
||||
->where('jxc_package_value_add_relation.del', '0')
|
||||
->where('jxc_package_value_add_relation.type', 1);
|
||||
})->select($select)->where('jxc_package_renewal.del', '0')->get();
|
||||
|
||||
return $this->transform($packages);
|
||||
}
|
||||
|
||||
// 加油包
|
||||
protected function getFlowPackages()
|
||||
{
|
||||
$select = [
|
||||
DB::raw('2 as type'),
|
||||
'jxc_package_flows.bag_number as id',
|
||||
'jxc_package_flows.name as name',
|
||||
'jxc_package_flows.carrieroperator as carrier_operator',
|
||||
'jxc_package_flows.price as cost_price',
|
||||
'jxc_package_flows.guide_price as guide_price',
|
||||
'jxc_package_flows.flows as flows',
|
||||
'jxc_package_flows.voices as voices',
|
||||
'jxc_package_flows.short_msg as messages',
|
||||
'jxc_package_flows.lbs as has_lbs',
|
||||
'jxc_package_flows.flows_cycle as reset_cycle',
|
||||
'jxc_package_flows.service_cycle as service_cycle',
|
||||
'jxc_package_flows.create_time as created_at',
|
||||
];
|
||||
|
||||
$packages = DB::connection('real')->table('jxc_package_flows')->join('jxc_package_value_add_relation', function ($join) {
|
||||
$join->on('jxc_package_value_add_relation.value_add_number', '=', 'jxc_package_flows.bag_number')
|
||||
->whereIn('jxc_package_value_add_relation.custom_no', $this->companies)
|
||||
->where('jxc_package_value_add_relation.del', '0')
|
||||
->where('jxc_package_value_add_relation.type', 2);
|
||||
})->select($select)->where('jxc_package_flows.del', '0')->get();
|
||||
|
||||
return $this->transform($packages);
|
||||
}
|
||||
|
||||
// 可选包
|
||||
protected function getOptionalPackages()
|
||||
{
|
||||
$select = [
|
||||
DB::raw('3 as type'),
|
||||
'jxc_package_optional.bag_number as id',
|
||||
'jxc_package_optional.name as name',
|
||||
'jxc_package_optional.carrieroperator as carrier_operator',
|
||||
'jxc_package_optional.price as cost_price',
|
||||
'jxc_package_optional.guide_price as guide_price',
|
||||
'jxc_package_optional.flows as flows',
|
||||
'jxc_package_optional.voices as voices',
|
||||
'jxc_package_optional.short_msg as messages',
|
||||
'jxc_package_optional.lbs as has_lbs',
|
||||
'jxc_package_optional.flows_cycle as reset_cycle',
|
||||
'jxc_package_optional.service_cycle as service_cycle',
|
||||
'jxc_package_optional.create_time as created_at',
|
||||
];
|
||||
|
||||
$packages = DB::connection('real')->table('jxc_package_optional')->join('jxc_package_value_add_relation', function ($join) {
|
||||
$join->on('jxc_package_value_add_relation.value_add_number', '=', 'jxc_package_optional.bag_number')
|
||||
->whereIn('jxc_package_value_add_relation.custom_no', $this->companies)
|
||||
->where('jxc_package_value_add_relation.del', '0')
|
||||
->where('jxc_package_value_add_relation.type', 3);
|
||||
})->select($select)->where('jxc_package_optional.del', '0')->get();
|
||||
|
||||
return $this->transform($packages);
|
||||
}
|
||||
|
||||
// 可选包
|
||||
protected function getAdditionalPackages()
|
||||
{
|
||||
$select = [
|
||||
DB::raw('4 as type'),
|
||||
'jxc_package_addoptional.bag_number as id',
|
||||
'jxc_package_addoptional.name as name',
|
||||
DB::raw('255 as carrier_operator'),
|
||||
DB::raw('0 as cost_price'),
|
||||
'jxc_package_addoptional.guide_price as guide_price',
|
||||
DB::raw('0 as flows'),
|
||||
'jxc_package_addoptional.content_count as messages',
|
||||
'jxc_package_addoptional.reset_cycle as reset_cycle',
|
||||
'jxc_package_addoptional.service_cycle as service_cycle',
|
||||
'jxc_package_addoptional.create_time as created_at',
|
||||
];
|
||||
|
||||
$packages = DB::connection('real')->table('jxc_package_addoptional')->join('jxc_package_value_add_relation', function ($join) {
|
||||
$join->on('jxc_package_value_add_relation.value_add_number', '=', 'jxc_package_addoptional.bag_number')
|
||||
->whereIn('jxc_package_value_add_relation.custom_no', $this->companies)
|
||||
->where('jxc_package_value_add_relation.del', '0')
|
||||
->where('jxc_package_value_add_relation.type', 4);
|
||||
})->select($select)->where('jxc_package_addoptional.del', '0')->where('jxc_package_addoptional.tid', 1)->get();
|
||||
|
||||
return $this->transform($packages);
|
||||
}
|
||||
|
||||
protected function transform($packages)
|
||||
{
|
||||
$packages = $packages->toArray();
|
||||
|
||||
foreach ($packages as &$package) {
|
||||
$package = (array)$package;
|
||||
$package['updated_at'] = date('Y-m-d H:i:s');
|
||||
}
|
||||
|
||||
return array_keyBy($packages, 'id');
|
||||
}
|
||||
}
|
@ -28,8 +28,6 @@ class CreateRealTables extends Migration
|
||||
$table->string('id', 20)->comment('集团编号');
|
||||
$table->string('name', 32)->comment('集团名称');
|
||||
$table->tinyInteger('carrier_operator')->comment('运营商(0:联通 1:移动 2:电信)');
|
||||
$table->string('city')->comment('城市');
|
||||
$table->tinyInteger('channel')->comment('渠道(0:运营商 1:中间商)');
|
||||
$table->timestamps();
|
||||
|
||||
$table->primary('id');
|
||||
@ -52,8 +50,8 @@ class CreateRealTables extends Migration
|
||||
$table->integer('messages')->unsigned()->default(0)->comment('套餐短信(条)');
|
||||
$table->tinyInteger('has_message_switch')->unsigned()->default(0)->comment('短信开关(0:无 1:有)');
|
||||
$table->tinyInteger('has_lbs')->unsigned()->default(0)->comment('lbs位置服务(0:无 1:有)');
|
||||
$table->tinyInteger('flow_cycles')->unsigned()->default(0)->comment('流量周期(月)');
|
||||
$table->tinyInteger('package_cycles')->unsigned()->default(0)->comment('套餐周期(月)');
|
||||
$table->tinyInteger('reset_cycle')->unsigned()->default(0)->comment('流量周期(月)');
|
||||
$table->tinyInteger('service_cycle')->unsigned()->default(0)->comment('套餐周期(月)');
|
||||
$table->timestamps();
|
||||
|
||||
$table->primary('id');
|
||||
|
@ -19,6 +19,15 @@ class RealServiceProvider extends ServiceProvider
|
||||
$this->loadMigrationsFrom([realpath(__DIR__ . '/../Database/migrations')]);
|
||||
// $this->app->make(EloquentFactory::class)->load(realpath(__DIR__ . '/../Database/factories'));
|
||||
// $this->mergeConfigFrom(realpath(__DIR__ . '/../config.php'), 'domain.real');
|
||||
|
||||
$this->commands([
|
||||
\App\Domains\Real\Commands\Sync\CompanySync::class,
|
||||
\App\Domains\Real\Commands\Sync\BlocSync::class,
|
||||
\App\Domains\Real\Commands\Sync\PackageSync::class,
|
||||
\App\Domains\Real\Commands\Sync\OrderBaseSync::class,
|
||||
\App\Domains\Real\Commands\Sync\ActivateSync::class,
|
||||
\App\Domains\Real\Commands\Sync\OrderRenewalSync::class,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6,7 +6,6 @@ use App\Core\Model;
|
||||
use App\Models\Real\Order as RealOrder;
|
||||
use App\Models\Real\Company as RealCompany;
|
||||
use App\Models\Real\Package as RealPackage;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Card extends Model
|
||||
{
|
||||
@ -29,32 +28,32 @@ class Card extends Model
|
||||
}
|
||||
|
||||
// 基础订单
|
||||
public function realOrderBases()
|
||||
public function realBasesOrder()
|
||||
{
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_base_card_relations', 'sim' ,'order_id');
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_base_card_relations', 'sim', 'order_id');
|
||||
}
|
||||
|
||||
// 续费订单
|
||||
public function realOrderRenewals()
|
||||
public function realRenewalOrders()
|
||||
{
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_renewal_card_relations', 'sim' ,'order_id');
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_renewal_card_relations', 'sim', 'order_id');
|
||||
}
|
||||
|
||||
// 加油包订单
|
||||
public function realOrderFlows()
|
||||
public function realFlowOrders()
|
||||
{
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_flows_card_relations', 'sim' ,'order_id');
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_flows_card_relations', 'sim', 'order_id');
|
||||
}
|
||||
|
||||
// 可选包订单
|
||||
public function realOrderOptional()
|
||||
public function realOptionalOrders()
|
||||
{
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_optional_card_relations', 'sim' ,'order_id');
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_optional_card_relations', 'sim', 'order_id');
|
||||
}
|
||||
|
||||
|
||||
// 附加包订单
|
||||
public function realOrderAdditional()
|
||||
public function realAdditionalOrders()
|
||||
{
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_additional_card_relations', 'sim' ,'order_id');
|
||||
return $this->belongsToMany(RealOrder::class, 'real_order_additional_card_relations', 'sim', 'order_id');
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ use App\Models\Card;
|
||||
|
||||
class Bloc extends Model
|
||||
{
|
||||
protected $table = 'blocs';
|
||||
protected $table = 'real_blocs';
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
|
@ -7,7 +7,7 @@ use App\Models\Card;
|
||||
|
||||
class Company extends Model
|
||||
{
|
||||
protected $table = 'companies';
|
||||
protected $table = 'real_companies';
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
|
@ -7,33 +7,33 @@ use App\Models\Card;
|
||||
|
||||
class Order extends Model
|
||||
{
|
||||
protected $table = 'orders';
|
||||
protected $table = 'real_orders';
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
protected $dates = ['order_at', 'service_start_at', 'service_end_at'];
|
||||
|
||||
public function cardBases()
|
||||
public function baseCards()
|
||||
{
|
||||
return $this->belongsToMany(Card::class, 'real_order_base_card_relations', 'order_id', 'sim');
|
||||
}
|
||||
|
||||
public function cardRenewals()
|
||||
public function renewalCards()
|
||||
{
|
||||
return $this->belongsToMany(Card::class, 'real_order_renewal_card_relations', 'order_id', 'sim');
|
||||
}
|
||||
|
||||
public function cardFlows()
|
||||
public function flowCards()
|
||||
{
|
||||
return $this->belongsToMany(Card::class, 'real_order_flows_card_relations', 'order_id', 'sim');
|
||||
}
|
||||
|
||||
public function cardOptional()
|
||||
public function optionalCards()
|
||||
{
|
||||
return $this->belongsToMany(Card::class, 'real_order_optional_card_relations', 'order_id', 'sim');
|
||||
}
|
||||
|
||||
public function cardAdditional()
|
||||
public function additionalCards()
|
||||
{
|
||||
return $this->belongsToMany(Card::class, 'real_order_additional_card_relations', 'order_id', 'sim');
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ use App\Models\Card;
|
||||
|
||||
class Package extends Model
|
||||
{
|
||||
protected $table = 'packages';
|
||||
protected $table = 'real_packages';
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
|
@ -3,8 +3,13 @@
|
||||
use Carbon\Carbon;
|
||||
|
||||
require_once realpath(dirname(__FILE__) . '/TestCase.php');
|
||||
$date = new DateTime('2018-10-31');
|
||||
$date->modify('-1 month');
|
||||
echo $date->format('Y-m-d');
|
||||
|
||||
dd(\DB::connection('mongo')->table('tblCard')->count());
|
||||
$res = Carbon::parse('2018-10')->endOfMonth()->subMonth();
|
||||
|
||||
dd($res);
|
||||
|
||||
$conditions = [
|
||||
'starttime' => Carbon::parse('2018-10-01')->startOfDay(),
|
||||
|
27
vendor/dipper/foundation/src/helpers.php
vendored
27
vendor/dipper/foundation/src/helpers.php
vendored
@ -432,3 +432,30 @@ if (!function_exists('db_alter')) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 数组处理
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
*/
|
||||
|
||||
// 修改数组集合键名
|
||||
if (!function_exists('array_keyBy')) {
|
||||
function array_keyBy($arr, $key)
|
||||
{
|
||||
return array_combine(array_pluck($arr, $key), $arr);
|
||||
}
|
||||
}
|
||||
|
||||
// 数组集合分组
|
||||
if (!function_exists('array_groupBy')) {
|
||||
function array_groupBy($arr, $key)
|
||||
{
|
||||
$temp = [];
|
||||
foreach ($arr as $item) {
|
||||
$temp[$item[$key]][] = $item;
|
||||
}
|
||||
return $temp;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user