request->isAjax) return $this->render($this->action->id); if (\Yii::$app->request->isGet) { $params = \Yii::$app->request->get(); $where[] = ['mall_id' => $this->mall_id]; $where[] = ['store_id' => $this->store_id]; $where[] = ['>','pay_time' ,0]; $where[] = ['>','credit_money' ,0]; if (!empty($params['goods_name'])) { $store_order_detail_list = StoreOrderDetail::lists(['where' => [ ['like', 'goods_name', trim($params['goods_name'])], ['mall_id' => $this->mall_id], ['store_id' => $this->store_id], ], 'select' => 'order_id,goods_name,pic_url']); $order_ids = array_column($store_order_detail_list, 'order_id'); $where[] = ['order_id' => $order_ids]; } if (!empty($params['order_no'])) { $store_order_list = StoreOrder::lists(['where' => [ ['order_no' => trim($params['order_no'])], ['mall_id' => $this->mall_id], ['store_id' => $this->store_id], ], 'select' => 'id,order_no']); $order_ids = array_column($store_order_list, 'id'); $store_cashier_order_list = StoreCashierOrder::lists(['where' => [ ['order_no' => trim($params['order_no'])], ['mall_id' => $this->mall_id], ['store_id' => $this->store_id], ], 'select' => 'id,order_no']); $cashier_order_ids = array_column($store_cashier_order_list, 'id'); $where[] = ['order_id' => array_merge($order_ids,$cashier_order_ids)]; } if (!empty($params['mobile'])) { $user_list = User::lists(['where' => [ ['like', 'mobile', trim($params['mobile'])], ['mall_id' => $this->mall_id], ['status' => [StatusEnum::DISABLED, StatusEnum::ENABLED]], ], 'select' => 'id']); $user_ids = array_column($user_list, 'id'); $where[] = ['user_id' => $user_ids]; } if (isset($params['is_repayment'])) { $where[] = ['is_repayment' => $params['is_repayment']]; } if (!empty($params['user_id'])) $where[] = ['user_id' => $params['user_id']]; if (!empty($params['start'])) $where[] = ['>=', 'created_at', strtotime($params['start'])]; if (!empty($params['end'])) $where[] = ['<=', 'created_at', strtotime($params['end'])]; $params['select'] = 'id,order_id,user_id,credit_money,is_repayment,created_at,type'; $params['where'] = $where; $params['order'] = 'id desc'; $page_data = StoreOrderCredit::listPage($params); if (!empty($page_data['list'])) { $order_ids = []; $cashier_order_ids = []; foreach ($page_data['list'] as $val){ if($val['type']==1){ $order_ids[] =$val['order_id']; }else{ $cashier_order_ids[] =$val['order_id']; } } $user_ids = array_column($page_data['list'], 'user_id'); if (empty($store_order_detail_list)) { $store_order_detail_list = StoreOrderDetail::lists(['where' => [['order_id' => $order_ids]], 'select' => 'order_id,goods_name,pic_url']); } $store_order_detail_arr = []; foreach ($store_order_detail_list as $val) { $store_order_detail_arr[$val['order_id']][] = $val; } $store_order_list = StoreOrder::lists(['where' => [['id' => $order_ids]], 'select' => 'id,order_no,pay_money', 'index' => 'id']); $cashier_store_order_list = StoreCashierOrder::lists(['where' => [['id' => $cashier_order_ids]], 'select' => 'id,order_no,pay_money', 'index' => 'id']); if (empty($user_list)) { $user_list = User::lists(['where' => [['id' => $user_ids]], 'select' => 'id,mobile,nickname', 'index' => 'id']); } foreach ($page_data['list'] as &$item) { $item['mobile'] = ''; $item['nickname'] = ''; $item['order_no'] = ''; $item['pay_money'] = 0; $item['detail'] = []; $item['is_repayment_text'] = $item['is_repayment'] == 1 ? '已还款' : '未还款'; $item['order_type_text'] = $item['type'] == 1 ? '门店商品订单' : '收银台订单'; if($item['type']==1){ if (!empty($store_order_list[$item['order_id']])) { $item['order_no'] = $store_order_list[$item['order_id']]['order_no']; $item['pay_money'] = $store_order_list[$item['order_id']]['pay_money']; } }else{ if (!empty($cashier_store_order_list[$item['order_id']])) { $item['order_no'] = $cashier_store_order_list[$item['order_id']]['order_no']; $item['pay_money'] = $cashier_store_order_list[$item['order_id']]['pay_money']; } } if (!empty($user_list[$item['user_id']])) { $item['mobile'] = $user_list[$item['user_id']]['mobile']; $item['nickname'] = $user_list[$item['user_id']]['nickname']; } if (!empty($store_order_detail_arr[$item['order_id']])) { $item['detail'] = $store_order_detail_arr[$item['order_id']]; } } } $page_data['is_repayment_map'] = StoreEnum::getIsRepaymentMap(); $page_data['order_type_map'] = StoreEnum::getOrderCreditTypeMap(); return $this->success('操作成功', $page_data); } } //赊账设置页面 public function actionSettingCredit(){ if (!\Yii::$app->request->isAjax) return $this->render($this->action->id); if (\Yii::$app->request->isGet) { $params = \Yii::$app->request->get(); $where[] = ['mall_id' => $this->mall_id]; $where[] = ['store_id' => $this->store_id]; $where[] = ['>','credit_rate',0]; $where[] = ['status' => [StatusEnum::ENABLED,StatusEnum::DISABLED]]; if (!empty($params['goods_name'])) { $where[] = ['like', 'goods_name', trim($params['goods_name'])]; } $params['select'] = 'id,store_id,mall_id,goods_name,price,cover_pic,credit_rate,goods_type'; $params['where'] = $where; $page_data = StoreGoods::listPage($params); $store = Store::findOne(['id'=>$this->store_id]); $page_data['is_open_credit'] = $store['is_open_credit']??0; $extra = StoreCashierExtra::findOne(['store_id'=>$this->store_id]); $page_data['credit_rate'] = $extra['credit_rate']??0; return $this->success('操作成功', $page_data); } } //赊账功能 public function actionOpenCredit(){ $params = \Yii::$app->request->post(); $is_open_credit = $params['is_open_credit']??0; $store_id = $this->store_id; $mall_id = $this->mall_id; $res = Store::updateAll(['is_open_credit'=>$is_open_credit],['id'=>$store_id,'mall_id'=>$mall_id]); if($res==false) return $this->error('fail'); return $this->success('success'); } //收银台赊账设置 public function actionCashierCredit(){ $params = \Yii::$app->request->post(); $credit_rate = $params['credit_rate']??0; if($credit_rate>70) return $this->error('比例不能大于70%'); $store_id = $this->store_id; $mall_id = $this->mall_id; $params = ['store_id'=>$store_id,'credit_rate'=>$credit_rate,'mall_id'=>$mall_id,'score_give_setting'=>[],'score_deduct_setting'=>[],'currency_deduct_setting'=>[],'member_price_setting'=>[],'member_buy_limit_setting'=>[]]; $res = StoreCashierExtra::setData($store_id,$params); if($res==false) return $this->error('fail'); return $this->success('success'); } //商品设置赊账比例 public function actionGoodsCredit(){ $params = \Yii::$app->request->post(); $credit_rate = $params['credit_rate']??0; if($credit_rate<=0||!is_numeric($credit_rate)) return $this->error('请输入正确的比例'); if($credit_rate>70) return $this->error('比例不能大于70%'); $goods_id = $params['goods_id']??0; $store_id = $this->store_id; $mall_id = $this->mall_id; $res = StoreGoods::updateAll(['credit_rate'=>$credit_rate],['id'=>$goods_id,'store_id'=>$store_id,'mall_id'=>$mall_id]); if($res==false) return $this->error('fail'); return $this->success('success'); } public function actionGoodCredit(){ $params = \Yii::$app->request->post(); $credit_rate = $params['credit_rate']??0; if($credit_rate>70) return $this->error('比例不能大于70%'); $id = $params['id']??0; $store_id = $this->store_id; $mall_id = $this->mall_id; $res = StoreGoods::updateAll(['credit_rate'=>$credit_rate],['id'=>$id,'store_id'=>$store_id,'mall_id'=>$mall_id]); if($res==false) return $this->error('fail'); return $this->success('success'); } public function actionDelGoodsCredit(){ $params = \Yii::$app->request->post(); $id = $params['id']??0; $store_id = $this->store_id; $mall_id = $this->mall_id; $res = StoreGoods::updateAll(['credit_rate'=>0],['id'=>$id,'store_id'=>$store_id,'mall_id'=>$mall_id]); if($res==false) return $this->error('fail'); return $this->success('操作成功'); } //商品下拉,不用验证权限 public function actionSearchGoods(){ $params = \Yii::$app->request->get(); $where[] = ['mall_id' => $this->mall_id]; $where[] = ['store_id' => $this->store_id]; $where[] = ['status' => [StatusEnum::ENABLED,StatusEnum::DISABLED]]; if (!empty($params['keyword'])) { $where[] = [ 'or', ['id'=> trim($params['keyword'])], ['like', 'goods_name', trim($params['keyword'])], ]; } $params['select'] = 'id,store_id,mall_id,goods_name,price,cover_pic,cost_price,stock,goods_type'; $params['where'] = $where; $page_data = StoreGoods::listPage($params); if(!empty($page_data['list'])){ foreach ($page_data['list'] as &$item){ $item['goods_source'] = 'store'; } } return $this->success('操作成功', $page_data); } }