'商城ID', 'md_id' => '门店ID', 'goods_code' => '商品条码' ]; } public function indexData(): array { // 获取昨天零点的时间戳 $yesterday = strtotime(date('Y-m-d', strtotime('-1 day'))); // 获取今天零点的时间戳 $today = strtotime(date('Y-m-d')); $tomorrow = strtotime('+1 Day', $today); $md_id = $this->md_id; if ($md_id <= 0) { $md_id = [0, -1]; $this->md_id = 0; } $user = get_user(); $query = Order::find()->where(['store_id' => $this->store_id, 'md_id' => $md_id])->andWhere(['!=', 'trade_status', 1]) ->andWhere(['or', ['is_pay' => 1], ['pay_type' => \app\models\Order::PAY_TYPE_COD]]); $today_query = (clone $query)->andWhere(['between', 'created_at', $today, $tomorrow]); $data['order_price'] = (clone $today_query)->sum('total_price') ?? 0; $data['yesterday_order_price'] = (clone $query)->andWhere(['between', 'created_at', $yesterday, $today])->sum('total_price') ?? 0; $data['pay_price'] = (clone $today_query)->sum('pay_price') ?? 0; $data['yesterday_pay_price'] = (clone $query)->andWhere(['between', 'created_at', $yesterday, $today])->sum('pay_price') ?? 0; $data['order_count'] = (clone $today_query)->count() ?? 0; $data['yesterday_order_count'] = (clone $query)->andWhere(['between', 'created_at', $yesterday, $today])->count() ?? 0; $data['discount_amount'] = bcsub($data['order_price'], $data['pay_price'], 2); $data['yesterday_discount_amount'] = bcsub($data['yesterday_order_price'], $data['yesterday_pay_price'], 2); $data['md_id'] = $this->md_id; $data['cashier_data_auth'] = intval($user->cashier_data_auth); // 如果md>0的时候 要给查询一下有没有余额和积分的权限 if($md_id > 0){ $cashierUserExt = CashierUserExt::find()->where(['user_id' => $user->id, 'md_id' => $md_id,'is_delete' => 0])->one(); $data['balance'] = $cashierUserExt->balance ?? 0; $data['integral'] = $cashierUserExt->integral ?? 0; }else{ $data['balance'] = 1; $data['integral'] = 1; } return ['code' => 0, 'msg' => '请求成功', 'data' => $data]; } public function getGoods(): array { if (empty($this->goods_code)) { return ['code' => 1, 'msg' => '商品条码信息不能为空']; } $fields = 'g.id as goods_id, g.name,g.attr,g.cover_pic,g.cost_price'; $query = Goods::find()->alias('g')->where(['g.store_id' => $this->store_id, 'g.type' => Goods::GOODS_TYPE_NORMAL, 'g.status' => Goods::STATUS_NORMAL, 'g.is_delete' => 0]); if ($this->md_id > 0) { $query->andWhere(['g.id' => MdGoods::find()->where(['md_id' => $this->md_id, 'status' => 1])->select('goods_id')]); $query->leftJoin(['mg' => MdGoods::tableName()], 'g.id = mg.goods_id')->andWhere(['mg.md_id' => $this->md_id]); $fields = 'g.id as goods_id, g.name,mg.attr,g.cover_pic,g.cost_price'; } $goods = $query->andWhere(['or', ['g.goods_no' => $this->goods_code], ['LIKE', "JSON_UNQUOTE(JSON_EXTRACT(g.attr, '$[*].no'))", $this->goods_code]])->select($fields)->asArray()->one(); if (empty($goods)) { return ['code' => 1, 'msg' => '商品不存在']; } $attr = json_decode($goods['attr'], TRUE); foreach ($attr as $attr_item) { if ($attr_item['no'] === $this->goods_code) { $goods['attr_list'] = $attr_item['attr_list']; $goods['pic'] = !empty($attr_item['pic']) ? $attr_item['pic'] : $goods['cover_pic']; $goods['price'] = $goods['new_price'] = $attr_item['price']; $goods['goods_num'] = $attr_item['num']; } } $goods['num'] = 1; return ['code' => 0, 'msg' => '请求成功', 'data' => ['goods' => $goods]]; } }