public function createShareCode($recordId, $userId) { $shareCode = ShareCode::findAll(['f_record_id' => $recordId, 'user_id' => $userId]); if ($shareCode != null) { return '1'; //分享码已存在 } $conn = \Yii::$app->db; $sql = 'select count(*) as num from share_code where user_id="' . $userId . '"'; $command = $conn->createCommand($sql); $result = $command->queryOne(); $conn->close(); $num = $result['num']; if ($num >= 20) { return '2'; //分享码超出上限 } $code = $this->generateCode(8); $exist = ShareCode::findOne(['code' => $code]); while ($exist != null) { $code = $this->generateCode(8); $exist = ShareCode::findOne(['code' => $code]); } $shareCode = new ShareCode(); $shareCode->code_id = md5($recordId . date('Y-m-d H:i:s')); $shareCode->code = $code; $shareCode->user_id = $userId; $shareCode->f_record_id = $recordId; $shareCode->create_date = date('Y-m-d H:i:s'); if ($shareCode->save()) { return $code; } else { return '3'; //创建失败 } }