V 3.2.5(2025.02.26)

1. 修复新用户合并MJ设置初始化问题
2. 修复原创MJ设置数据缺失
This commit is contained in:
lq1405 2025-02-26 12:03:01 +08:00
parent 03d3ff7e9d
commit 77ee38d302
10 changed files with 85 additions and 66 deletions

View File

@ -1,6 +1,6 @@
{
"name": "laitool",
"version": "3.2.4",
"version": "3.2.5",
"description": "An AI tool for image processing, video processing, and other functions.",
"main": "./out/main/index.js",
"author": "laitool.cn",

Binary file not shown.

View File

@ -1,16 +1,15 @@
import Realm, { UpdateMode } from 'realm'
import path from 'path'
import { BaseService } from '../baseService'
import { define } from '../../../define'
import { SoftwareModel } from '../../model/SoftWare/software'
import { ComponentSize, SoftwareThemeType } from '../../../enum/softwareEnum.js'
import { errorMessage, successMessage } from '../../../../main/Public/generalTools'
import { successMessage } from '../../../../main/Public/generalTools'
import { BaseSoftWareService } from './softwareBasic.js'
import { isEmpty, isNumber } from 'lodash'
import { cloneDeep, isEmpty } from 'lodash'
const { v4: uuidv4 } = require('uuid')
import { version } from '../../../../../package.json'
import { GeneralResponse } from '../../../../model/generalResponse'
import { MJCategroy } from '../../../enum/bookEnum'
import { OptionRealmService } from './optionRealmService'
import { OptionKeyName } from '@/define/enum/option'
import { OptionModel } from '@/model/option/option'
import { ValidateJson } from '@/define/Tools/validate'
export class MJSettingService extends BaseSoftWareService {
static instance: MJSettingService | null = null
@ -462,21 +461,29 @@ export class MJSettingService extends BaseSoftWareService {
* @param mjSettingQuery Id null
* @returns
*/
GetMjSetting(mjSettingQuery) {
GetMjSetting() {
try {
let mjSettings = this.realm.objects('MjSetting')
if (mjSettingQuery?.id) {
mjSettings = this.realm.objects('MjSetting').filtered('id = $0', mjSettingQuery.id)
}
let res = this.realm.objects('Options').filtered(`key = "${OptionKeyName.MJ_GlobalSetting}"`);
let resMjSetting = Array.from(mjSettings).map((mjSetting) => {
return {
...mjSetting
let mjSetting: OptionModel.OptionItem | null = null;
if (res.length > 0) {
let resData = Array.from(res).map((item) => {
let resObj = {
...item
}
return cloneDeep(resObj)
})
mjSetting = resData[0] as OptionModel.OptionItem
if (!ValidateJson(mjSetting.value)) {
throw new Error('MJ设置的数据格式不正确请检查数据格式')
}
})
return JSON.parse(mjSetting.value)?.mj_simpleSetting
return successMessage(resMjSetting, '获取MJ基础设置成功', 'MJSettingService_getMjSetting')
} else {
throw new Error('没有找到MJ的设置信息请检查')
}
} catch (error) {
throw error
}
@ -582,11 +589,14 @@ export class MJSettingService extends BaseSoftWareService {
GetMJSettingTreeData() {
try {
// 获取MJ的基础配置信息
let mjSettings = this.GetMjSetting(null)
if (mjSettings.data.length <= 0) {
this.InitData();
mjSettings = this.GetMjSetting(null)
let mjSettings = this.GetMjSetting()
// if (mjSettings.data.length <= 0) {
// this.InitData();
// mjSettings = this.GetMjSetting(null)
// }
if (mjSettings == null) {
throw new Error('未找到MJ的设置信息请检查');
}
// 获取API的配置信息
let apiSettings = this.GetAPIMjSetting(null)
@ -594,7 +604,7 @@ export class MJSettingService extends BaseSoftWareService {
let remoteSettings = this.GetRemoteMJSettings(null)
// 获取浏览器模式的配置信息
let browserSettings = this.GetBrowserMJSetting(null)
let mjSetting = mjSettings.data[0]
let mjSetting = mjSettings
mjSetting.apiSetting = apiSettings.data.length > 0 ? apiSettings.data[0] : null
mjSetting.remoteSetting = remoteSettings.data.length > 0 ? remoteSettings.data[0] : null
mjSetting.browserSetting = browserSettings.data.length > 0 ? browserSettings.data[0] : null

View File

@ -23,6 +23,9 @@ import path from "path"
const { v4: uuidv4 } = require('uuid')
import fs from "fs"
import { TaskModal } from "@/model/task";
import { OptionServices } from "../Options/optionServices";
import { OptionKeyName } from "@/define/enum/option";
import { ValidateJson } from "@/define/Tools/validate";
const fspromise = fs.promises
export class MJOpt {
@ -34,6 +37,8 @@ export class MJOpt {
bookServiceBasic: BookServiceBasic
presetService: PresetService
softWareServiceBasic: SoftWareServiceBasic
mj_globalSetting: MJSettingModel.MJ_GlobalSettingModel
constructor() {
this.imageStyle = new ImageStyle()
this.logScheduler = new LogScheduler()
@ -48,9 +53,20 @@ export class MJOpt {
* MJ设置
*/
async GetMJSetting() {
if (!this.mjSimpleSetting) {
this.mjSimpleSetting = await this.softWareServiceBasic.GetMjSetting()
let optionServices = new OptionServices()
let mjSettingData = await optionServices.GetOptionByKey(OptionKeyName.MJ_GlobalSetting);
if (mjSettingData.code == 0) {
throw new Error("加载MJ设置失败失败原因如下" + mjSettingData.message)
}
if (mjSettingData.data == null) {
throw new Error("加载MJ设置失败失败原因如下没有找到对应的MJ设置请先去MJ设置中设置")
}
if (!ValidateJson(mjSettingData.data.value)) {
throw new Error("MJ设置的数据格式不正确请检查数据格式")
}
this.mj_globalSetting = JSON.parse(mjSettingData.data.value) as MJSettingModel.MJ_GlobalSettingModel
this.mjSimpleSetting = this.mj_globalSetting.mj_simpleSetting
}
@ -378,8 +394,7 @@ export class MJOpt {
}
// let suffixParam = imageBaseSetting.mj_config.image_suffix ; // 没有就直接报错
let mjSettingDb = await this.softWareServiceBasic.GetMjSetting()
let suffixParam = mjSettingDb.imageSuffix
let suffixParam = this.mjSimpleSetting.imageSuffix
// let styleString = '';
// 拿到所有的风格

View File

@ -36,11 +36,11 @@ class MJApi {
*/
async InitMJSetting(): Promise<void> {
// 获取MJ配置从数据库中
let _mjSettingService = await MJSettingService.getInstance()
let mjSettings = _mjSettingService.GetMJSettingTreeData()
if (mjSettings.code == 0) {
throw new Error(mjSettings.message)
}
// let _mjSettingService = await MJSettingService.getInstance()
// let mjSettings = _mjSettingService.GetMJSettingTreeData()
// if (mjSettings.code == 0) {
// throw new Error(mjSettings.message)
// }
let mjSettingData = await this.optionServices.GetOptionByKey(OptionKeyName.MJ_GlobalSetting);

View File

@ -87,16 +87,9 @@ export class SoftWareServiceBasic {
*/
async GetMjSetting(): Promise<MJSettingModel.MjSimpleSettingModel> {
await this.InitService();
let mjSetting = this.mjSettingService.GetMjSetting({})
if (mjSetting.code == 1) {
if (mjSetting.data.length <= 0) {
throw new Error("未找到MJ的设置信息请检查");
}
// 这边只是返回第一个
return mjSetting.data[0]
} else {
throw new Error(mjSetting.message)
}
let mjSetting = this.mjSettingService.GetMjSetting()
return mjSetting
}
//#endregion

View File

@ -142,7 +142,7 @@ async function AutoSyncMJConfig2210() {
}
// 判断基础数据,不存在同步
let mjSetting = _mjSettingService.GetMjSetting(null)
let mjSetting = _mjSettingService.GetMjSetting()
if (mjSetting.code == 1 && mjSetting.data.length <= 0) {
//判断数据然后选择同步
if (

View File

@ -93,7 +93,7 @@ export class MJSetting {
async GetMJSetting(mjSettingQuery) {
try {
let _mjSetting = await MJSettingService.getInstance()
let res = _mjSetting.GetMjSetting(mjSettingQuery)
let res = _mjSetting.GetMjSetting()
return res
} catch (error) {
return errorMessage(

View File

@ -157,6 +157,9 @@ import {
import { DEFINE_STRING } from '../../../../../define/define_string'
import InputDialogContent from './InputDialogContent.vue'
import { v4 as uuidv4 } from 'uuid'
import MJDefine from '@/main/Service/MJ/mjDefine'
import { OptionKeyName, OptionType } from '@/define/enum/option'
import { ValidateJson } from '@/define/Tools/validate'
export default defineComponent({
components: {
@ -230,35 +233,28 @@ export default defineComponent({
character_select_model_options.value = value.data
})
}
let mj_globalSetting
/**
* 初始化MJ的option
*/
async function InitMjOptions() {
// mj
let res = await window.setting.GetMjSetting()
if (res.code == 0) {
message.error(res.message)
return
let mjSettingData = await window.options.GetOptionByKey(OptionKeyName.MJ_GlobalSetting)
if (mjSettingData.code == 0) {
throw new Error('加载MJ设置失败失败原因如下' + mjSettingData.message)
}
if (mjSettingData.data == null) {
throw new Error('加载MJ设置失败失败原因如下没有找到对应的MJ设置请先去MJ设置中设置')
}
if (!ValidateJson(mjSettingData.data.value)) {
throw new Error('MJ设置的数据格式不正确请检查数据格式')
}
if (res.data.length <= 0) {
message.error('当前没有MJ配置信息请先配置MJ信息')
return
}
mj_globalSetting = JSON.parse(mjSettingData.data.value)
let mjSimpleSetting = mj_globalSetting.mj_simpleSetting
mjSetting.value = Object.assign(mjSetting.value, res.data[0])
mjSetting.value = Object.assign(mjSetting.value, mjSimpleSetting)
await window.mj.GetMJGenerateCategory((value) => {
if (value.code == 0) {
message.error(value.message)
return
}
request_model_options.value = value.data.filter((item) => !item.disable)
if (request_model_options.value.length > 0 && mjSetting.value.request_model == null) {
mjSetting.value.request_model = request_model_options.value[0].value
}
})
request_model_options.value = MJDefine.GetMJRequestModelOptions()
mj_speed_options.value = [
{
@ -324,8 +320,13 @@ export default defineComponent({
}
})
debugger
// MJ
let saveMjRes = await window.setting.UpdateMJSetting(toRaw(mjSetting.value))
let saveMjRes = await window.options.ModifyOptionByKey(
OptionKeyName.MJ_GlobalSetting,
JSON.stringify({ ...mj_globalSetting, mj_simpleSetting: mjSetting.value }),
OptionType.JSON
)
if (saveMjRes.code == 0) {
throw new Error(saveMjRes.message)
}