feat: able to manage user's quota now

This commit is contained in:
JustSong 2023-05-21 10:01:02 +08:00
parent b383983106
commit 61e682ca47
2 changed files with 23 additions and 4 deletions

View File

@ -19,8 +19,7 @@ type User struct {
Email string `json:"email" gorm:"index" validate:"max=50"` Email string `json:"email" gorm:"index" validate:"max=50"`
GitHubId string `json:"github_id" gorm:"column:github_id;index"` GitHubId string `json:"github_id" gorm:"column:github_id;index"`
WeChatId string `json:"wechat_id" gorm:"column:wechat_id;index"` WeChatId string `json:"wechat_id" gorm:"column:wechat_id;index"`
VerificationCode string `json:"verification_code" gorm:"-:all"` // this field is only for Email verification, don't save it to database! VerificationCode string `json:"verification_code" gorm:"-:all"` // this field is only for Email verification, don't save it to database!
Balance int `json:"balance" gorm:"type:int;default:0"`
AccessToken string `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management AccessToken string `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management
Quota int `json:"quota" gorm:"type:int;default:0"` Quota int `json:"quota" gorm:"type:int;default:0"`
} }

View File

@ -14,8 +14,9 @@ const EditUser = () => {
github_id: '', github_id: '',
wechat_id: '', wechat_id: '',
email: '', email: '',
quota: 0,
}); });
const { username, display_name, password, github_id, wechat_id, email } = const { username, display_name, password, github_id, wechat_id, email, quota } =
inputs; inputs;
const handleInputChange = (e, { name, value }) => { const handleInputChange = (e, { name, value }) => {
setInputs((inputs) => ({ ...inputs, [name]: value })); setInputs((inputs) => ({ ...inputs, [name]: value }));
@ -44,7 +45,11 @@ const EditUser = () => {
const submit = async () => { const submit = async () => {
let res = undefined; let res = undefined;
if (userId) { if (userId) {
res = await API.put(`/api/user/`, { ...inputs, id: parseInt(userId) }); let data = { ...inputs, id: parseInt(userId) };
if (typeof data.quota === 'string') {
data.quota = parseInt(data.quota);
}
res = await API.put(`/api/user/`, data);
} else { } else {
res = await API.put(`/api/user/self`, inputs); res = await API.put(`/api/user/self`, inputs);
} }
@ -92,6 +97,21 @@ const EditUser = () => {
autoComplete='new-password' autoComplete='new-password'
/> />
</Form.Field> </Form.Field>
{
userId && (
<Form.Field>
<Form.Input
label='剩余额度'
name='quota'
placeholder={'请输入新的剩余额度'}
onChange={handleInputChange}
value={quota}
type={'number'}
autoComplete='new-password'
/>
</Form.Field>
)
}
<Form.Field> <Form.Field>
<Form.Input <Form.Input
label='已绑定的 GitHub 账户' label='已绑定的 GitHub 账户'