request->isAjax && Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['page', 'user_id'], 'integer'], [['user_name', 'e_coupon_name', 'check_user_name'], 'string'], [['usage_time'], 'safe'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $where = [ ['=', 'mall_id', $this->mall_id], ['>=', 'status', StatusEnum::DISABLED], ]; if ($params['user_id']) { $where[] = ['=', 'user_id', (int)$params['user_id']]; } // 使用者 昵称、手机号 if ($params['user_name']) { $user_ids = User::find() ->orWhere(['like', 'nickname', "%" . $params['user_name'] . "%", false]) ->orWhere(['like', 'mobile', "%" . $params['user_name'] . "%", false]) ->select('id') ->asArray() ->column(); $where[] = ['in', 'user_id', $user_ids]; } // 核销员 昵称、手机号 if ($params['check_user_name']) { $user_ids = User::find() ->orWhere(['like', 'nickname', "%" . $params['check_user_name'] . "%", false]) ->orWhere(['like', 'mobile', "%" . $params['check_user_name'] . "%", false]) ->select('id') ->asArray() ->column(); $where[] = ['in', 'clerk_user_id', $user_ids]; } if ($params['e_coupon_name']) { $where[] = ['like', 'e_coupon_name', "%" . $params['e_coupon_name'] . "%", false]; } // 使用时间 $start_time = strtotime($params['usage_time'][0] ?? 0); $end_time = strtotime($params['usage_time'][1] ?? 0); if ($start_time > 0 && $end_time > 0 && $end_time >= $start_time) { $where[] = ['>=', 'usage_time', $start_time]; $where[] = ['<=', 'usage_time', $end_time]; } $condition = ['where' => $where, 'order' => 'id desc']; $page_data = ElectronCouponUsageLog::listPage($condition, false, true); $user_id_array1 = array_column($page_data['list'], 'user_id'); $user_id_array2 = array_column($page_data['list'], 'clerk_user_id'); $user_id_array3 = array_column($page_data['list'], 'proper_user_id'); $user_id_array = array_unique(array_filter(array_merge($user_id_array1, $user_id_array2, $user_id_array3))); $users = User::find() ->select('id,nickname,avatar_url,mobile') ->where(['>=', 'status', StatusEnum::DISABLED]) ->where(['mall_id' => $this->mall_id]) ->where(['in', 'id', $user_id_array]) ->asArray() ->all(); $users_data = array_column($users, null, 'id'); $page_data['list'] = is_array($page_data['list']) ? $page_data['list'] : []; foreach ($page_data['list'] as $index => $item) { $item['user'] = $users_data[$item['user_id']] ?? []; $item['clerk_user'] = $users_data[$item['clerk_user_id']] ?? []; $item['proper_user'] = $users_data[$item['proper_user_id']] ?? []; $page_data['list'][$index] = $item; } $this->success('获取成功', compact('page_data')); } else { return $this->render('index'); } } // 电子券核销 public function actionClerkUserCoupon() { if (Yii::$app->request->isAjax && Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['clerk_user_id'], 'integer'], [['code'], 'safe'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $admin = Yii::$app->getUser()->identity; $params['clerk_admin_id'] = $admin->id; $params['clerk_user_id'] = $params['clerk_user_id'] ?: 0; $params['mall_id'] = $this->mall_id; $result = ElectronCouponCode::doClerkCode($params); if($result == false) return $this->error(ElectronCouponCode::getStaticError()); $this->success('ok', $result); } } }