1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace App\Console\Commands;
- use Illuminate\Console\Command;
- use DB;
- use App\OrderGoodsSkus;
- use App\GoodsSkus;
- use App\Order;
- use App\RedisModel;
- class MonitorSkuToRedis extends Command {
- protected $signature = 'MonitorSkuToRedis';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '监控预占库存';
- public function handle()
- {
- $this->MonitorSkuToRedis();
-
- }
- public function MonitorSkuToRedis(){
- echo "\nStart: ".date('Y-m-d H:i:s');
- $order_ids = Order::where('warehouse', 3)->where('is_del', 0)->whereNull('orderCode')->lists('id');
- $res = OrderGoodsSkus::select(DB::raw('sum(num) as num , sku_id'))->whereIn('order_id', $order_ids)->where('mj_status', 0)->where('is_del', 0)->groupBy('sku_id')->get();
- $res = json_decode(json_encode($res), true);
- $sku_arr = array();
- foreach($res as $k=>$v){
- $sku_arr[$v['sku_id']] = $v['num'];
- }
- $order_ids = DB::table('seafood_fx.order')->where('warehouse', 3)->where('is_del', 0)->whereNull('orderCode')->lists('id');
- if(!empty($order_ids)){
- $res = DB::table('seafood_fx.order_goods_skus')->select(DB::raw('sum(num) as num , sku_id'))->whereIn('order_id', $order_ids)->where('mj_status', 0)->where('is_del', 0)->groupBy('sku_id')->get();
- $res = json_decode(json_encode($res), true);
- foreach($res as $k=>$v){
- if(isset($sku_arr[$v['sku_id']])){
- $sku_arr[$v['sku_id']] += $v['num'];
- }else{
- $sku_arr[$v['sku_id']] = $v['num'];
- }
- }
- }
- $order_ids = DB::table('seafood_fx2.order')->where('warehouse', 3)->where('is_del', 0)->whereNull('orderCode')->lists('id');
- if(!empty($order_ids)){
- $res = DB::table('seafood_fx2.order_goods_skus')->select(DB::raw('sum(num) as num , sku_id'))->whereIn('order_id', $order_ids)->where('mj_status', 0)->where('is_del', 0)->groupBy('sku_id')->get();
- $res = json_decode(json_encode($res), true);
- foreach($res as $k=>$v){
- if(isset($sku_arr[$v['sku_id']])){
- $sku_arr[$v['sku_id']] += $v['num'];
- }else{
- $sku_arr[$v['sku_id']] = $v['num'];
- }
- }
- }
- $redis_table = config('constants.SKU_QUANTITY_TABLE');
- foreach($sku_arr as $key=>$val){
- $code = GoodsSkus::where('id', $key)->pluck('code');
- $sku_redis_val = RedisModel::hGet($redis_table, $code);
- if($val != $sku_redis_val){
- echo "\nWARNING_Sku: ". $key.' '.$code.' true_num->redis_num:'.$val.' -> '.$sku_redis_val;
- }else{
- //echo "\nSUCCESS_Sku: ". $key.' '.$code.' true_num->redis_num:'.$val.' -> '.$sku_redis_val;
- }
- }
- }
- }
|