'ID', 'user_id' => '会员id', 'tag_id' => '标签id', 'created_at' => 'Created At', 'updated_at' => 'Updated At', ]; } /** * 获取会员标签列表 * @param $mall_id * @param $user_id * @param int $is_array * @return array|UserTagRelate[]|\yii\db\ActiveRecord[] */ public static function getUserTagList($mall_id, $user_id, $is_array = 1) { $query = self::find()->select('utr.user_id,utr.tag_id,t.id,t.name')->alias('utr') ->leftJoin(['t' => Tag::tableName()], 't.id=utr.tag_id') ->where(['t.mall_id' => $mall_id, 't.status' => StatusEnum::ENABLED]); if (is_array($user_id)) { $query->andWhere(['in', 'utr.user_id', $user_id]); } else { $query->andWhere(['utr.user_id' => $user_id]); } if ($is_array) $query->asArray(); return $query->all(); } /** * 保存数据 * @param $user_id * @param $tag_id_arr * @return bool * @throws \yii\db\Exception */ public static function setData($user_id, $tag_id_arr) { try { if ($user_id) { //bug 6272 $count = self::deleteAll([ 'and', ['user_id' => $user_id], ['not in', 'tag_id', $tag_id_arr] ]); $exist_tag_ids = self::find()->select('tag_id')->where(array('user_id' => $user_id))->column(); $insert = []; $now = time(); foreach ($tag_id_arr as $tag_id) { if (in_array($tag_id, $exist_tag_ids)) continue; $insert[] = [$user_id, $tag_id, $now, $now]; } $field = ['user_id', 'tag_id', 'created_at', 'updated_at']; // 批量插入数据 //bug6272 if($insert) Yii::$app->db->createCommand()->batchInsert(self::tableName(), $field, $insert)->execute(); } return true; } catch (Exception $e) { self::$static_error = $e->getMessage(); return false; } } }