<?php
namespace wstmart\common\model;
/**
 * ============================================================================
 * 某些较杂业务处理类
 */
use think\db;
class Systems extends Base{
	/**
	 * 获取定时任务
	 */
	public function getSysMessages(){
		$tasks = strtolower(input('post.tasks'));
		$tasks = explode(',',$tasks);
		$userId = (int)session('WST_USER.userId');
		$shopId = (int)session('WST_USER.shopId');
		$data = [];
		if(in_array('message',$tasks)){
		    //获取用户未读消息
		    $data['message']['num'] = Db::name('messages')->where(['receiveUserId'=>$userId,'msgStatus'=>0,'dataFlag'=>1])->count();
		    $data['message']['id'] = 49;
		    $data['message']['sid'] = 120;
		}
		//获取商家待处理订单
		if(in_array('shoporder',$tasks)){
		    $data['shoporder']['24'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>0,'dataFlag'=>1])->count();
		    $data['shoporder']['25'] = Db::name('order_complains')->where(['respondTargetId'=>$shopId,'complainStatus'=>1])->count();
		    $data['shoporder']['55'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>-2,'dataFlag'=>1])->count();
		    //在线支付的退款单
		    $data['shoporder']['45'] = Db::name('orders')->alias('o')->join('order_refunds orf','orf.orderId=o.orderId')->where(['shopId'=>$shopId,'refundStatus'=>0,'o.dataFlag'=>1])->count();
		    //获取库存预警数量
		    $goodsn = Db::name('goods')->where('shopId ='.$shopId.' and dataFlag = 1 and goodsStock <= warnStock and isSpec = 0 and warnStock>0')->count();
		    $specsn = Db::name('goods_specs')->where('shopId ='.$shopId.' and dataFlag = 1 and specStock <= warnStock and warnStock>0')->count();
		    $data['shoporder']['54'] = $goodsn+$specsn;
		}
		//获取用户订单状态
	    if(in_array('userorder',$tasks)){
		    $data['userorder']['3'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>-2,'dataFlag'=>1])->count();
		    $data['userorder']['5'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>['in',[0,1]],'dataFlag'=>1])->count();
		    $data['userorder']['6'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'isAppraise'=>0,'dataFlag'=>1])->count();
		}

		//获取用户购物车数量
		if(in_array('cart',$tasks)){
			$cartNum = 0;
			$cartGoodsNum = 0;
			$rs = Db::name('carts')->field('cartNum')->where(['userId'=>$userId])->select();
			foreach($rs as $key => $v){
				$cartGoodsNum++;
				$cartNum = $cartNum + $v['cartNum'];
			}
			$data['cart']['goods'] = $cartGoodsNum;
			$data['cart']['num'] = $cartNum;
		}
		return $data;
	}
}