Compare commits

...

4 Commits

Author SHA1 Message Date
MyronZhang
79b2c5f598 Merge a78360efd8 into 8b8cd03e85 2025-02-12 23:10:13 +08:00
JustSong
8b8cd03e85 feat: add balance not supported message in ChannelsTable
Some checks failed
CI / Unit tests (push) Has been cancelled
CI / commit_lint (push) Has been cancelled
2025-02-12 01:20:28 +08:00
MyronZhang
a78360efd8 fix send ByAll 2025-02-11 18:32:59 +08:00
MyronZhang
8f6b13c2fe fix send ByAll 2025-02-11 16:17:53 +08:00
3 changed files with 26 additions and 17 deletions

View File

@@ -12,6 +12,22 @@ const (
)
func Notify(by string, title string, description string, content string) error {
if by == ByAll {
var errMsgs []string
if err := SendEmail(title, config.RootUserEmail, content); err != nil {
errMsgs = append(errMsgs, fmt.Sprintf("failed to send email: %v", err))
}
if err := SendMessage(title, description, content); err != nil {
errMsgs = append(errMsgs, fmt.Sprintf("failed to send message: %v", err))
}
if len(errMsgs) > 0 {
return fmt.Errorf("multiple errors occurred: %v", errMsgs)
}
return nil
}
if by == ByEmail {
return SendEmail(title, config.RootUserEmail, content)
}

View File

@@ -266,7 +266,7 @@ func testChannels(ctx context.Context, notify bool, scope string) error {
if notify {
err := message.Notify(message.ByAll, "渠道测试完成", "", "渠道测试完成,如果没有收到禁用通知,说明所有渠道都正常")
if err != nil {
logger.SysError(fmt.Sprintf("failed to send email: %s", err.Error()))
logger.SysError(fmt.Sprintf("failed to send notify: %s", err.Error()))
}
}
}()

View File

@@ -1,17 +1,7 @@
import React, { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import {
Button,
Dropdown,
Form,
Input,
Label,
Message,
Pagination,
Popup,
Table,
} from 'semantic-ui-react';
import { Link } from 'react-router-dom';
import React, {useEffect, useState} from 'react';
import {useTranslation} from 'react-i18next';
import {Button, Dropdown, Form, Input, Label, Message, Pagination, Popup, Table,} from 'semantic-ui-react';
import {Link} from 'react-router-dom';
import {
API,
loadChannelModels,
@@ -23,8 +13,8 @@ import {
timestamp2string,
} from '../helpers';
import { CHANNEL_OPTIONS, ITEMS_PER_PAGE } from '../constants';
import { renderGroup, renderNumber } from '../helpers/render';
import {CHANNEL_OPTIONS, ITEMS_PER_PAGE} from '../constants';
import {renderGroup, renderNumber} from '../helpers/render';
function renderTimestamp(timestamp) {
return <>{timestamp2string(timestamp)}</>;
@@ -54,6 +44,9 @@ function renderType(type, t) {
function renderBalance(type, balance, t) {
switch (type) {
case 1: // OpenAI
if (balance === 0) {
return <span>{t('channel.table.balance_not_supported')}</span>;
}
return <span>${balance.toFixed(2)}</span>;
case 4: // CloseAI
return <span>¥{balance.toFixed(2)}</span>;