Skip to content

Commit

Permalink
fix: 配置初始 bug
Browse files Browse the repository at this point in the history
  • Loading branch information
027xiguapi committed Dec 18, 2023
1 parent 52e2ecc commit 88d237b
Show file tree
Hide file tree
Showing 17 changed files with 75 additions and 32 deletions.
2 changes: 1 addition & 1 deletion packages/desktop/electron/main/serverProcess.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ export function initServerProcess() {
}

export function quitServerProcess() {
serverProcess?.kill();
url || serverProcess?.kill();
}
1 change: 1 addition & 0 deletions packages/desktop/electron/preload/electronAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ contextBridge.exposeInMainWorld('electronAPI', {

//vvWin
sendVvOpenWin: (search?: string) => ipcRenderer.send('vv:open-win', search),
sendVvCloseWin: () => ipcRenderer.send('vv:close-win'),
invokeVvGetHistoryVideo: () => ipcRenderer.invoke('vv:get-historyVideo'),
sendVvSetHistoryVideo: (img: string) => ipcRenderer.send('vv:set-historyVideo', img),

Expand Down
4 changes: 3 additions & 1 deletion packages/desktop/electron/win/viewVideoWin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ function openViewVideoWin(search?: any) {
}

function closeViewVideoWin() {
viewVideoWin?.close();
if (!(viewVideoWin && viewVideoWin.isDestroyed())) {
viewVideoWin?.close();
}
viewVideoWin = null;
}

Expand Down
4 changes: 4 additions & 0 deletions packages/server/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# @pear-rec/server

## 1.3.2

fix: 配置初始 bug

## 1.3.1

fix: 接口代理、上传文件
Expand Down
7 changes: 4 additions & 3 deletions packages/server/src/app/app.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ export class AppService {
return 'Hello World!';
}

async uploadFile(fileDto, userId: number): Promise<Record> {
const user = await this.usersService.findOne(userId);
async uploadFile(file: Express.Multer.File, fileDto: CreateFileDto): Promise<Record> {
const user = await this.usersService.findOne(fileDto.userId);
let record = {
filePath: fileDto.path,
filePath: file.path,
fileType: fileDto.type,
user: user,
createdBy: user.id,
};

return this.recordsService.create(record);
Expand Down
2 changes: 1 addition & 1 deletion packages/server/src/app/file.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ export class FileController {
@UploadedFile() file: Express.Multer.File,
@Body() createFileDto: CreateFileDto,
): Promise<Record> {
return this.appService.uploadFile(file, createFileDto.userId);
return this.appService.uploadFile(file, createFileDto);
}
}
8 changes: 6 additions & 2 deletions packages/server/src/config/index.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import * as jsonfile from 'jsonfile';
import * as fs from 'node:fs';
import * as path from 'node:path';
import { v5 as uuidv5 } from 'uuid';
import dayjs from 'dayjs';
import { PEAR_FILES_PATH, CONFIG_FILE_PATH, DEFAULT_CONFIG_FILE_PATH } from '../contract';
import { PEAR_FILES_PATH, DB_PATH, CONFIG_FILE_PATH, DEFAULT_CONFIG_FILE_PATH } from '../contract';

export function initConfig() {
if (!fs.existsSync(PEAR_FILES_PATH)) {
fs.mkdirSync(PEAR_FILES_PATH, { recursive: true });
}
if (!fs.existsSync(path.dirname(DB_PATH))) {
fs.mkdirSync(path.dirname(DB_PATH), { recursive: true });
}
fs.access(DEFAULT_CONFIG_FILE_PATH, fs.constants.F_OK, (err) => {
if (err) {
initDefaultConfig();
Expand All @@ -22,7 +26,7 @@ function initDefaultConfig() {
uuid: uuidv5('https://www.w3.org/', uuidv5.URL),
userName: `pear-rec:user`,
userType: 1,
createdAt: dayjs().format(),
createdAt: dayjs(new Date()).format(),
},
isProxy: false,
proxyPort: '7890',
Expand Down
4 changes: 2 additions & 2 deletions packages/server/src/records/dto/create-record.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ export class CreateRecordDto {

createdAt?: Date;

createdBy?: string;
createdBy?: number;

updatedAt?: Date;

updatedBy?: string;
updatedBy?: number;
}
13 changes: 6 additions & 7 deletions packages/server/src/records/entity/record.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { IUser } from '../../users/interfaces/user.interface';

@Entity()
export class Record {
user: IUser;
@PrimaryGeneratedColumn()
id: number;

Expand All @@ -29,15 +28,15 @@ export class Record {
@CreateDateColumn({ nullable: true })
createdAt?: Date;

@Column('varchar', { nullable: true })
createdBy?: string;
@Column('int', { nullable: true })
createdBy?: number;

@UpdateDateColumn({ nullable: true })
updatedAt?: Date;

@Column('varchar', { nullable: true })
updatedBy?: string;
@Column('int', { nullable: true })
updatedBy?: number;

// @ManyToOne(() => User, (user) => user.records)
// user: IUser;
@ManyToOne(() => User, (user) => user.records)
user: IUser;
}
7 changes: 3 additions & 4 deletions packages/server/src/settings/entity/setting.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { ISetting } from '../interfaces/setting.interface';

@Entity()
export class Setting implements ISetting {
user: IUser;
@PrimaryGeneratedColumn()
id: number;

Expand Down Expand Up @@ -53,7 +52,7 @@ export class Setting implements ISetting {
@Column('varchar', { nullable: true })
updatedBy: string;

// @OneToOne(() => User, (user) => user.setting)
// @JoinColumn()
// user: IUser;
@OneToOne(() => User, (user) => user.setting)
@JoinColumn()
user: IUser;
}
6 changes: 6 additions & 0 deletions packages/server/src/settings/settings.controller.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Controller, Get, Post, Body, Param, UseInterceptors } from '@nestjs/common';
import { CreateSettingDto } from './dto/create-setting.dto';
import { SettingsService } from './settings.service';
import { UsersService } from 'src/users/users.service';
import { Setting } from './entity/setting.entity';

@Controller('settings')
Expand All @@ -17,6 +18,11 @@ export class SettingsController {
return this.settingsService.findAll();
}

@Get('user/:id')
async findOneByUserId(@Param('id') userId: number): Promise<Setting> {
return this.settingsService.findOneByUserId(userId);
}

@Get(':id')
findOne(@Param('id') id: number): Promise<Setting> {
return this.settingsService.findOne(id);
Expand Down
3 changes: 0 additions & 3 deletions packages/server/src/settings/settings.module.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
// import { DatabaseModule } from '../database/database.module';
import { SettingsController } from './settings.controller';
import { SettingsService } from './settings.service';
import { Setting } from './entity/setting.entity';
// import { settingsProviders } from './settings.providers';

@Module({
// imports: [DatabaseModule],
imports: [TypeOrmModule.forFeature([Setting])],
controllers: [SettingsController],
providers: [SettingsService],
Expand Down
24 changes: 24 additions & 0 deletions packages/server/src/settings/settings.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,30 @@ export class SettingsService {
return await this.settingRepository.findOneBy({ id });
}

async findOneByUserId(userId: number): Promise<Setting> {
let setting = await this.settingRepository
.createQueryBuilder('setting')
.leftJoinAndSelect('setting.user', 'user')
.where('user.id = :id', { id: userId })
.getOne();

if (setting == null) {
const defaultConfig = getDefaultConfig();
setting = {
isProxy: defaultConfig.isProxy,
proxyPort: defaultConfig.proxyPort,
language: defaultConfig.language,
filePath: defaultConfig.filePath,
openAtLogin: defaultConfig.openAtLogin,
serverPath: defaultConfig.serverPath,
} as any;

return await this.settingRepository.save(setting);
} else {
return setting;
}
}

async update(id: number, setting: Setting): Promise<Setting> {
await this.settingRepository.update(id, setting);
return await this.settingRepository.findOneBy({ id });
Expand Down
8 changes: 4 additions & 4 deletions packages/server/src/users/entity/user.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ export class User implements IUser {
@Column('varchar', { nullable: true })
updatedBy: string;

// @OneToMany(() => Record, (record) => record.user)
// records: Record[];
@OneToMany(() => Record, (record) => record.user)
records: Record[];

// @OneToOne(() => Setting, (setting) => setting.user)
// setting: Setting;
@OneToOne(() => Setting, (setting) => setting.user)
setting: Setting;
}
9 changes: 7 additions & 2 deletions packages/server/src/users/users.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,14 @@ export class UsersService {
return this.usersRepository.find();
}

findCurrent(): Promise<User | null> {
async findCurrent(): Promise<User | null> {
const config = getConfig();
return this.usersRepository.findOneBy({ uuid: config.user.uuid });
let user = await this.usersRepository.findOneBy({ uuid: config.user.uuid });
if (user == null) {
return await this.usersRepository.save(config.user);
} else {
return user;
}
}

findOne(id: number): Promise<User | null> {
Expand Down
2 changes: 1 addition & 1 deletion packages/web/src/api/setting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export function useSettingApi() {
return {
getSetting: (userId: string) => {
return request({
url: `/settings/${userId}`,
url: `/settings/user/${userId}`,
method: 'get',
});
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,8 @@ const ScreenRecorder = (props) => {
if (res.code == 0) {
if (window.isElectron) {
window.electronAPI.sendRsCloseWin();
window.electronAPI?.sendVvOpenWin({ videoUrl: res.data.filePath });
window.electronAPI.sendVvCloseWin();
window.electronAPI.sendVvOpenWin({ videoUrl: res.data.filePath });
} else {
Modal.confirm({
title: '录屏已保存,是否查看?',
Expand Down

0 comments on commit 88d237b

Please sign in to comment.