添加修改性格

This commit is contained in:
zpc 2024-07-29 04:14:47 +08:00
parent 298967f661
commit f21e0bb29a
16 changed files with 480 additions and 83 deletions

View File

@ -22,6 +22,8 @@ declare module 'vue' {
ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup']
ACol: typeof import('ant-design-vue/es')['Col'] ACol: typeof import('ant-design-vue/es')['Col']
ACollapse: typeof import('ant-design-vue/es')['Collapse']
ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel']
ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] ADatePicker: typeof import('ant-design-vue/es')['DatePicker']
ADescriptions: typeof import('ant-design-vue/es')['Descriptions'] ADescriptions: typeof import('ant-design-vue/es')['Descriptions']
ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem'] ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem']
@ -70,6 +72,7 @@ declare module 'vue' {
ATimeline: typeof import('ant-design-vue/es')['Timeline'] ATimeline: typeof import('ant-design-vue/es')['Timeline']
ATimelineItem: typeof import('ant-design-vue/es')['TimelineItem'] ATimelineItem: typeof import('ant-design-vue/es')['TimelineItem']
ATooltip: typeof import('ant-design-vue/es')['Tooltip'] ATooltip: typeof import('ant-design-vue/es')['Tooltip']
ATransfer: typeof import('ant-design-vue/es')['Transfer']
ATree: typeof import('ant-design-vue/es')['Tree'] ATree: typeof import('ant-design-vue/es')['Tree']
ATreeSelect: typeof import('ant-design-vue/es')['TreeSelect'] ATreeSelect: typeof import('ant-design-vue/es')['TreeSelect']
ATypographyLink: typeof import('ant-design-vue/es')['TypographyLink'] ATypographyLink: typeof import('ant-design-vue/es')['TypographyLink']
@ -108,6 +111,7 @@ declare module 'vue' {
TableCurd: typeof import('./core/components/curd/TableCurd.vue')['default'] TableCurd: typeof import('./core/components/curd/TableCurd.vue')['default']
TagCharacters: typeof import('./core/components/characters/tag-characters.vue')['default'] TagCharacters: typeof import('./core/components/characters/tag-characters.vue')['default']
TenantSelect: typeof import('./core/components/curd/select-components/TenantSelect.vue')['default'] TenantSelect: typeof import('./core/components/curd/select-components/TenantSelect.vue')['default']
TypesCharacters: typeof import('./core/components/characters/types-characters.vue')['default']
WangEditor: typeof import('./core/components/WangEditor.vue')['default'] WangEditor: typeof import('./core/components/WangEditor.vue')['default']
} }
} }

View File

@ -0,0 +1,146 @@
<script setup lang="ts">
import AppDictionaryCache from "@/core/utils/AppDictionaryCache";
import T_Character_Personality_RelationService from "@/services/apps/T_Character_Personality_Relations/T_Character_Personality_RelationService";
const props = withDefaults(
defineProps<{
record: any;
color: string;
}>(),
{
color: "blue",
}
);
const emits = defineEmits<{
(e: "del"): void;
}>();
const open = ref<boolean>(false);
const showModal = async () => {
const _data = await AppDictionaryCache.appDictionaryTypesCache.getDataList();
const mData = [];
const keys = [];
_data.forEach((item, index) => {
const data = {
key: item.value,
title: item.name,
description: item.code,
};
// console.log(props.record.personas.filter(it=> it.value == item.value));
if (
props.record.personas.filter((it) => it.value == item.value).length > 0
) {
console.log("添加", data);
keys.push(data.key);
}
// if()
mData.push(data);
});
console.log(props.record);
mockData.value = mData;
targetKeys.value = keys;
console.log(mockData.value, targetKeys.value);
open.value = true;
};
const handleOk = async (e: MouseEvent) => {
console.log(e);
console.log(targetKeys.value);
await T_Character_Personality_RelationService.setCharacterPersonality(
props.record.id,
targetKeys.value
);
props.personas = mockData.value
.filter((it) => targetKeys.value.includes(it.value))
.map((item) => {
return {
name: item.title,
code: item.description,
value: item.key,
};
});
// setCharacterPersonality
open.value = false;
};
interface MockData {
key: number;
title: string;
description: string;
chosen: boolean;
}
// {
// "page": 1,
// "size": 50,
// "search": {},
// "searchSort": []
// }
// T_Character_Personality_RelationService.findList(1,999,{},{});
const mockData = ref<MockData[]>([]);
const targetKeys = ref<number[]>([]);
// onMounted(() => {
// getMock();
// });
const getMock = () => {
const keys = [];
const mData = [];
for (let i = 0; i < 20; i++) {
const data = {
key: i.toString(),
title: `content${i + 1}`,
description: `description of content${i + 1}`,
chosen: Math.random() * 2 > 1,
};
if (data.chosen) {
keys.push(data.key);
}
mData.push(data);
}
mockData.value = mData;
targetKeys.value = keys;
};
const handleChange = (
keys: number[],
direction: string,
moveKeys: string[]
) => {
console.log(keys, direction, moveKeys);
};
</script>
<template>
<a-button
type="primary"
size="small"
style="width: 60px; height: 22px; font-size: 12px"
@click="showModal"
>添加性格</a-button
>
<a-modal
v-model:open="open"
title="性格管理"
@ok="handleOk"
width="800px"
:maskClosable="false"
>
<a-transfer
v-model:target-keys="targetKeys"
:data-source="mockData"
:list-style="{
width: '300px',
height: '300px',
}"
@change="handleChange"
>
<template #render="item">
<span class="custom-item"
>{{ item.title }} - {{ item.description }}</span
>
</template>
</a-transfer>
</a-modal>
</template>
<style lang="less" scoped></style>

View File

@ -1,19 +1,17 @@
<template> <template>
<a-row :gutter="[16, 0]"> <a-row :gutter="[16, 0]">
<a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12"> <a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<a-input <a-input
v-model:value="props.modelValue" v-model:value="props.modelValue"
placeholder="请输入" placeholder="请选择或者输入图片Id"
@change="updateValue"
:rules="[{ required: true, message: '请输入', trigger: 'blur' }]"
/> />
</a-col> </a-col>
<a-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8"> <a-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8">
<a-select <a-select
v-model:value="value" v-model:value="value"
show-search show-search
placeholder="输入图片名称查找图片"
style="width: 200px"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="false"
@ -23,8 +21,18 @@
@change="handleChange" @change="handleChange"
></a-select> ></a-select>
</a-col> </a-col>
<a-col :xs="4" :sm="4" :md="4" :lg="4" :xl="4" > <a-col :xs="4" :sm="4" :md="4" :lg="4" :xl="4" >
<a-button type="primary">上传</a-button> <a-button type="primary" @click="fileupload">上传</a-button>
</a-col>
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" style="margin-top:10px">
<a-collapse>
<a-collapse-panel key="1" header="预览图片">
<p>
<a-image :src="TImageConfigService.getImageUrl(props.modelValue)" />
</p>
</a-collapse-panel>
</a-collapse>
</a-col> </a-col>
</a-row> </a-row>
</template> </template>
@ -35,9 +43,7 @@ import type { SelectProps } from "ant-design-vue";
import AppDictionaryCache from "@/core/utils/AppDictionaryCache"; import AppDictionaryCache from "@/core/utils/AppDictionaryCache";
import type { SelectValue } from "ant-design-vue/lib/select"; import type { SelectValue } from "ant-design-vue/lib/select";
import TImageConfigService from "@/services/apps/T_Image_Configs/TImageConfigService"; import TImageConfigService from "@/services/apps/T_Image_Configs/TImageConfigService";
// options import Tools from "@/core/utils/Tools";
const options = ref<SelectProps["options"]>([]);
// 使 withDefaults // 使 withDefaults
const props = defineProps<{ const props = defineProps<{
modelValue: number; modelValue: number;
@ -57,10 +63,24 @@ const emits = defineEmits(["update:modelValue"]);
// }); // });
// update:modelValue // update:modelValue
function updateValue(value: number) { function updateValue(event: any) {
emits("update:modelValue", value); console.log(event);
emits("update:modelValue", event.target.value);
} }
function updateValueNumber(event: number) {
emits("update:modelValue", event);
}
async function fileupload() {
const response = await Tools.imageFileUpload(0, 1);
console.log(response);
updateValueNumber(response.imageId);
}
let timeout: any; let timeout: any;
let currentValue = ""; let currentValue = "";
@ -72,11 +92,6 @@ function fetch(value: string, callback: any) {
currentValue = value; currentValue = value;
function fake() { function fake() {
// const params = new URLSearchParams({
// code: "utf-8",
// q: value,
// });
TImageConfigService.getImageList(value).then((res) => { TImageConfigService.getImageList(value).then((res) => {
if (res.data != null) { if (res.data != null) {
const data: any[] = []; const data: any[] = [];
@ -90,22 +105,6 @@ function fetch(value: string, callback: any) {
callback(data); callback(data);
} }
}); });
// fetch(`https://suggest.taobao.com/sug?${params}`)
// .then((response) => response.json())
// .then((d) => {
// if (currentValue === value) {
// const result = d.result;
// const data: any[] = [];
// result.forEach((r: any) => {
// data.push({
// value: r[0],
// label: r[0],
// });
// });
// callback(data);
// }
// });
} }
timeout = setTimeout(fake, 300); timeout = setTimeout(fake, 300);
@ -119,7 +118,8 @@ const handleSearch = (val: string) => {
}; };
const handleChange = (val: number) => { const handleChange = (val: number) => {
console.log(val); console.log(val);
// updateValue(val); updateValueNumber(val);
// emits("update:modelValue", val);
// props.modelValue = 1; // props.modelValue = 1;
// value.value = ""; // value.value = "";
// fetch(val, (d: any[]) => (data.value = d)); // fetch(val, (d: any[]) => (data.value = d));

View File

@ -2,7 +2,7 @@
import AppDictionaryImageCache from "./cache/AppDictionaryImageCache"; import AppDictionaryImageCache from "./cache/AppDictionaryImageCache";
import { AbstractDictionaryCache } from "./cache/AbstractDictionaryCache"; import { AbstractDictionaryCache } from "./cache/AbstractDictionaryCache";
import AppDictionaryTenantCache from "./cache/AppDictionaryTenantCache"; import AppDictionaryTenantCache from "./cache/AppDictionaryTenantCache";
import AppDictionaryTypesCache from "./cache/AppDictionaryTypesCache";
/** /**
* *
*/ */
@ -16,6 +16,11 @@ class AppDictionaryCache {
* *
*/ */
static appDictionaryTenantCache: AbstractDictionaryCache = new AppDictionaryTenantCache(); static appDictionaryTenantCache: AbstractDictionaryCache = new AppDictionaryTenantCache();
/**
*
*/
static appDictionaryTypesCache: AbstractDictionaryCache = new AppDictionaryTypesCache();
} }
export default AppDictionaryCache; export default AppDictionaryCache;

View File

@ -0,0 +1,41 @@
import { AbstractDictionaryCache } from './AbstractDictionaryCache'
import { DefaultOptionType } from "ant-design-vue/es/select";
import T_Character_PersonalityService from "@/services/apps/T_Character_Personalitys/T_Character_PersonalityService";
/**
*
*/
class AppDictionaryTypesCache extends AbstractDictionaryCache {
protected code: string = "types";
public static _lock: Promise<void> | null = null;
constructor() {
super(AppDictionaryTypesCache._lock);
}
/**
*
* @returns Promise<any>
*/
protected override async getSysDictionaryService(): Promise<any> {
const response = await T_Character_PersonalityService.findList(1, 9999, {}, []);
// console.log(response);
const _data = response.data.dataSource.map(item => {
return {
name: item.name,
value: item.id,
code: item.value
// name: item.name, value, code: item.code
};
});
return _data;
}
public async getDataListSelect(): Promise<DefaultOptionType[]> {
const _data = await this.getDataList();
return _data.map((item) => {
return { label: item.name, value: item.value, name: item.code, } as DefaultOptionType;
});
}
}
export default AppDictionaryTypesCache;

View File

@ -55,6 +55,18 @@ export default class T_CharacterService {
return Http.post(`${this.urlPrefix}/${id ? 'update' : 'create'}`, formData) return Http.post(`${this.urlPrefix}/${id ? 'update' : 'create'}`, formData)
} }
/**
*
* @param id
* @param v
* @returns
*/
static async setVisibility(id: number | undefined, v: boolean | undefined) {
return await Http.post(`${this.urlPrefix}/updateState/${id}/${(v == true ? "1" : "0")}`)
}
/** /**
* excel * excel
* *

View File

@ -5,7 +5,7 @@
*/ */
export default class TImageConfigService { export default class TImageConfigService {
static urlPrefix = "/api/v1/admin/TImageConfig"; static urlPrefix = "/api/v1/admin/TImageConfig";
static baseUrl = Http.baseURL + this.urlPrefix + "/image/";
/** /**
* *
* @param current * @param current
@ -109,6 +109,19 @@ export default class TImageConfigService {
* @returns * @returns
*/ */
static getImageList(name?: string | undefined) { static getImageList(name?: string | undefined) {
return Http.get(`${this.urlPrefix}/getImageList?name=${escape(name??"")}`); return Http.get(`${this.urlPrefix}/getImageList?name=${name}`);
}
/**
*
*
* @param id
* @returns
*/
static getImageUrl(imageId?: number | undefined) {
if (imageId == null) {
return "";
}
return this.baseUrl + imageId;
} }
} }

View File

@ -35,6 +35,15 @@ export default class T_Character_Personality_RelationService {
} }
/** /**
*
*
* @param ids
* @returns
*/
static delete(id: number,ids: string[]) {
return Http.post(`${this.urlPrefix}/deleteCIdList/${id}`, ids)
}
/**
* *
* *
* @param id * @param id
@ -70,5 +79,13 @@ export default class T_Character_Personality_RelationService {
searchSort searchSort
}); });
} }
/**
*
* @param id id
* @param ids
* @returns
*/
static async setCharacterPersonality(id: number, ids: any[]) {
return Http.post(`${this.urlPrefix}/setCharacterPersonality/${id}`, ids)
}
} }

View File

@ -15,6 +15,7 @@ import T_Character_Type_IntimacyService from "@/services/apps/T_Character_Type_I
// //
import T_Character_Label_RelationService from "@/services/apps/T_Character_Label_Relations/T_Character_Label_RelationService"; import T_Character_Label_RelationService from "@/services/apps/T_Character_Label_Relations/T_Character_Label_RelationService";
defineOptions({ name: "T_CharacterIndex" }); defineOptions({ name: "T_CharacterIndex" });
const state = reactive({ const state = reactive({
@ -287,7 +288,7 @@ async function lablesDel(e: any, record: any) {
* 删除关联的性格数据 * 删除关联的性格数据
*/ */
async function personasDel(e: any, record: any) { async function personasDel(e: any, record: any) {
const _request = await T_Character_Personality_RelationService.deleteList([ const _request = await T_Character_Personality_RelationService.delete(record.id,[
e.value, e.value,
]); ]);
if (_request.data) { if (_request.data) {
@ -298,6 +299,13 @@ async function personasDel(e: any, record: any) {
Tools.message.error("删除失败!"); Tools.message.error("删除失败!");
} }
//#endregion //#endregion
async function visibilityChange(id:number,visibility:boolean,record:any){
var response= await T_CharacterService.setVisibility(id,visibility);
console.log(visibility,response);
// record.visibility=visibility;
}
</script> </script>
<template> <template>
@ -532,7 +540,7 @@ async function personasDel(e: any, record: any) {
@del="personasDel(item, record)" @del="personasDel(item, record)"
/> />
</template> </template>
<a-button type="primary" size="small" >添加</a-button> <!-- <types-characters :record="record" /> -->
</a-space> </a-space>
</template> </template>
</a-table-column> </a-table-column>
@ -548,6 +556,7 @@ async function personasDel(e: any, record: any) {
v-model:checked="record.visibility" v-model:checked="record.visibility"
checked-children="上线" checked-children="上线"
un-checked-children="下线" un-checked-children="下线"
@change="visibilityChange(record.id,record.visibility,record)"
/> />
</template> </template>
</a-table-column> </a-table-column>
@ -575,6 +584,7 @@ async function personasDel(e: any, record: any) {
> >
<a-tag style="cursor: pointer" color="#f50">删除</a-tag> <a-tag style="cursor: pointer" color="#f50">删除</a-tag>
</a-popconfirm> </a-popconfirm>
<types-characters v-if="power.update" :record="record" />
</template> </template>
</a-table-column> </a-table-column>
</template> </template>

View File

@ -140,9 +140,7 @@ function save() {
name="bgImg" name="bgImg"
:rules="[{ required: true, message: '请输入', trigger: 'blur' }]" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]"
> >
<hm-image v-model:value="state.vm.form.bgImg" /> <hm-image v-model="state.vm.form.bgImg" />
<a-input v-model:value="state.vm.form.bgImg" placeholder="请输入"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> <a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@ -151,18 +149,12 @@ function save() {
name="iconImg" name="iconImg"
:rules="[{ required: true, message: '请输入', trigger: 'blur' }]" :rules="[{ required: true, message: '请输入', trigger: 'blur' }]"
> >
<a-input <hm-image v-model="state.vm.form.iconImg" />
v-model:value="state.vm.form.iconImg"
placeholder="请输入"
/>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12"> <a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<a-form-item <a-form-item label="对话名字(用户的名字)" name="userName">
label="对话名字(用户的名字)"
name="userName"
>
<a-input <a-input
v-model:value="state.vm.form.userName" v-model:value="state.vm.form.userName"
placeholder="请输入" placeholder="请输入"
@ -172,7 +164,8 @@ function save() {
<a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12"> <a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
<a-form-item label="对话性别(用户的性别)" name="userSex"> <a-form-item label="对话性别(用户的性别)" name="userSex">
<a-input <a-input
v-model:value="state.vm.form.userSex" placeholder="请输入" v-model:value="state.vm.form.userSex"
placeholder="请输入"
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -207,7 +200,10 @@ function save() {
</a-col> </a-col>
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> <a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
<a-form-item label="system最大的token数(非必填,会自定生成)" name="token"> <a-form-item
label="system最大的token数(非必填,会自定生成)"
name="token"
>
<a-input <a-input
v-model:value="state.vm.form.token" v-model:value="state.vm.form.token"
placeholder="请输入" placeholder="请输入"

View File

@ -199,6 +199,25 @@ public class T_CharacterService(
return ExcelUtil.ExportExcelByPagingView(tableViewModel, null, "Id"); return ExcelUtil.ExportExcelByPagingView(tableViewModel, null, "Id");
} }
/// <summary>
/// 修改状态
/// </summary>
/// <param name="state"></param>
/// <param name="id"></param>
/// <returns></returns>
public async Task<bool> UpdateState(bool state, int id)
{
var form = await this._defaultRepository.FindByIdAsync(id);
if (form == null)
{
return false;
}
form.Visibility = state;
await SaveFormAsync(form);
return true;
}
} }

View File

@ -1,4 +1,8 @@
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; using IdGen;
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps;
using NPOI.HSSF.Record.Chart;
namespace MiaoYu.Api.Admin.ApplicationServices.Apps; namespace MiaoYu.Api.Admin.ApplicationServices.Apps;
/// <summary> /// <summary>
@ -24,14 +28,18 @@ public class T_Character_Personality_RelationService : ApplicationService<IRepos
//项目 //项目
.WhereIf(pagingSearchInput.Search?.TenantId != null, .WhereIf(pagingSearchInput.Search?.TenantId != null,
w => w.TenantId == pagingSearchInput.Search.TenantId) w => w.TenantId == pagingSearchInput.Search.TenantId)
.WhereIf(pagingSearchInput.Search?.CharacterId != 0,
w => w.CharacterId == pagingSearchInput.Search.CharacterId)
.OrderByDescending(w => w.Id) .OrderByDescending(w => w.Id)
.Select(w => new .Select(w => new
{ {
w.Id, w.Id,
w.TenantId,w.PersonalityId,w.CharacterId,w.CreateTime, w.TenantId,
w.PersonalityId,
w.CharacterId,
w.CreateTime,
// w.LastModificationTime, // w.LastModificationTime,
// w.CreationTime // w.CreationTime
}) })
@ -59,6 +67,18 @@ public class T_Character_Personality_RelationService : ApplicationService<IRepos
await this._defaultRepository.DeleteByIdsAsync(ids); await this._defaultRepository.DeleteByIdsAsync(ids);
} }
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
public async Task DeleteListAsync(int id,List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it=>it.CharacterId==id&& ids.Contains(it.PersonalityId)).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
}
/// <summary> /// <summary>
/// 查询表单数据 /// 查询表单数据
/// </summary> /// </summary>
@ -92,6 +112,34 @@ public class T_Character_Personality_RelationService : ApplicationService<IRepos
return this._defaultRepository.InsertOrUpdateAsync(form); return this._defaultRepository.InsertOrUpdateAsync(form);
} }
/// <summary>
/// 保存数据
/// </summary>
/// <param name="form">form</param>
/// <returns></returns>
public async Task<int> SaveFormAsync(int characterId, List<int> ids)
{
var list = await this._defaultRepository.Select.Where(it => it.CharacterId == characterId).ToListAsync();
await this._defaultRepository.DeleteAsync(list);
List<T_Character_Personality_Relation> newList = new List<T_Character_Personality_Relation>();
foreach (var personalityId in ids)
{
var t_Character_Personality_Relation = new T_Character_Personality_Relation
{
CharacterId = characterId,
CreateTime = DateTime.Now,
PersonalityId = personalityId,
TenantId = Guid.Empty,
};
//this._defaultRepository.Insert(t_Character_Personality_Relation);
newList.Add(t_Character_Personality_Relation);
}
//var delList = list.Where(it => newList.Any(item => item.CharacterId != it.PersonalityId)).ToList();
//await this._defaultRepository.DeleteAsync(delList);
return await this._defaultRepository.InsertRangeAsync(newList);
}
/// <summary> /// <summary>
/// 导出Excel /// 导出Excel
/// </summary> /// </summary>

View File

@ -1,4 +1,4 @@
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; using MiaoYu.Repository.ChatAI.Admin.Entities.Apps;
namespace MiaoYu.Api.Admin.ApplicationServices.Apps; namespace MiaoYu.Api.Admin.ApplicationServices.Apps;
/// <summary> /// <summary>
@ -24,7 +24,8 @@ public class T_Character_Type_IntimacyService : ApplicationService<IRepository<T
//项目 //项目
.WhereIf(pagingSearchInput.Search?.TenantId!=null, .WhereIf(pagingSearchInput.Search?.TenantId!=null,
w => w.TenantId==pagingSearchInput.Search.TenantId) w => w.TenantId==pagingSearchInput.Search.TenantId)
.WhereIf(pagingSearchInput.Search?.CharacterId != 0,
w => w.CharacterId == pagingSearchInput.Search.CharacterId)
.OrderByDescending(w => w.Id) .OrderByDescending(w => w.Id)

View File

@ -1,4 +1,4 @@
using MiaoYu.Api.Admin.ApplicationServices.Apps; using MiaoYu.Api.Admin.ApplicationServices.Apps;
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; using MiaoYu.Repository.ChatAI.Admin.Entities.Apps;
namespace MiaoYu.Api.Admin.Controllers.Apps; namespace MiaoYu.Api.Admin.Controllers.Apps;
@ -94,7 +94,18 @@ public class T_CharacterController : AdminControllerBase<T_CharacterService>
base.HttpContext.DownLoadFile(data, Tools.GetFileContentType[".xls"].ToStr(), name); base.HttpContext.DownLoadFile(data, Tools.GetFileContentType[".xls"].ToStr(), name);
} }
/// <summary>
/// 修改角色状态
/// </summary>
/// <param name="id"></param>
/// <param name="v"></param>
/// <returns></returns>
[ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "修改角色状态")]
[HttpPost("{id?}/{v?}")]
public async Task<bool> UpdateState([FromRoute] int id, [FromRoute] int v)
{
return await this._defaultService.UpdateState(v == 0 ? false : true, id);
}
} }

View File

@ -1,4 +1,4 @@
using MiaoYu.Api.Admin.ApplicationServices.Apps; using MiaoYu.Api.Admin.ApplicationServices.Apps;
using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; using MiaoYu.Repository.ChatAI.Admin.Entities.Apps;
namespace MiaoYu.Api.Admin.Controllers.Apps; namespace MiaoYu.Api.Admin.Controllers.Apps;
@ -39,6 +39,19 @@ public class T_Character_Personality_RelationController : AdminControllerBase<T_
return true; return true;
} }
/// <summary>
/// 根据id数组删除
/// </summary>
/// <param name="ids">ids</param>
/// <returns></returns>
[ActionDescriptor(PermissionFunctionConsts.Function_Delete, DisplayName = "删除数据")]
[HttpPost("{id?}")]
public async Task<bool> DeleteCIdListAsync([FromRoute] int id,[FromBody] List<int> ids)
{
await this._defaultService.DeleteListAsync(id,ids);
return true;
}
/// <summary> /// <summary>
/// 查询表单数据 /// 查询表单数据
/// </summary> /// </summary>
@ -79,6 +92,22 @@ public class T_Character_Personality_RelationController : AdminControllerBase<T_
return this._defaultService.SaveFormAsync(form); return this._defaultService.SaveFormAsync(form);
} }
/// <summary>
/// 批量配置性格
/// </summary>
/// <param name="id"></param>
/// <param name="ids"></param>
/// <returns></returns>
[RequestLimitFilter(Duration = 1, LimitCount = 1)]
[ActionDescriptor(PermissionFunctionConsts.Function_Update, DisplayName = "批量配置性格")]
[HttpPost(("{id?}"))]
[ApiCheckModel]
public Task SetCharacterPersonality([FromRoute] int id, [FromBody] List<int> ids)
{
return this._defaultService.SaveFormAsync(id, ids);
}
/// <summary> /// <summary>
/// 导出Excel /// 导出Excel
/// </summary> /// </summary>

View File

@ -240,6 +240,14 @@
<param name="pagingSearchInput"></param> <param name="pagingSearchInput"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_CharacterService.UpdateState(System.Boolean,System.Int32)">
<summary>
修改状态
</summary>
<param name="state"></param>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_LabelService"> <member name="T:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_LabelService">
<summary> <summary>
角色标签表 服务 T_Character_LabelService 角色标签表 服务 T_Character_LabelService
@ -379,6 +387,13 @@
<param name="ids">ids</param> <param name="ids">ids</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.DeleteListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.FindFormAsync(System.Int32)"> <member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.FindFormAsync(System.Int32)">
<summary> <summary>
查询表单数据 查询表单数据
@ -393,6 +408,13 @@
<param name="form">form</param> <param name="form">form</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.SaveFormAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
保存数据
</summary>
<param name="form">form</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.ExportExcelAsync(MiaoYu.Shared.Admin.Models.PagingViews.PagingSearchInput{MiaoYu.Repository.ChatAI.Admin.Entities.Apps.T_Character_Personality_Relation})"> <member name="M:MiaoYu.Api.Admin.ApplicationServices.Apps.T_Character_Personality_RelationService.ExportExcelAsync(MiaoYu.Shared.Admin.Models.PagingViews.PagingSearchInput{MiaoYu.Repository.ChatAI.Admin.Entities.Apps.T_Character_Personality_Relation})">
<summary> <summary>
导出Excel 导出Excel
@ -2015,6 +2037,14 @@
<param name="pagingSearchInput"></param> <param name="pagingSearchInput"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_CharacterController.UpdateState(System.Int32,System.Int32)">
<summary>
修改角色状态
</summary>
<param name="id"></param>
<param name="v"></param>
<returns></returns>
</member>
<member name="T:MiaoYu.Api.Admin.Controllers.Apps.T_Character_LabelController"> <member name="T:MiaoYu.Api.Admin.Controllers.Apps.T_Character_LabelController">
<summary> <summary>
角色标签表 控制器 角色标签表 控制器
@ -2175,6 +2205,13 @@
<param name="ids">ids</param> <param name="ids">ids</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.DeleteCIdListAsync(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
根据id数组删除
</summary>
<param name="ids">ids</param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.FindFormAsync(System.Int32)"> <member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.FindFormAsync(System.Int32)">
<summary> <summary>
查询表单数据 查询表单数据
@ -2196,6 +2233,14 @@
<param name="form"></param> <param name="form"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.SetCharacterPersonality(System.Int32,System.Collections.Generic.List{System.Int32})">
<summary>
批量配置性格
</summary>
<param name="id"></param>
<param name="ids"></param>
<returns></returns>
</member>
<member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.ExportExcelAsync(MiaoYu.Shared.Admin.Models.PagingViews.PagingSearchInput{MiaoYu.Repository.ChatAI.Admin.Entities.Apps.T_Character_Personality_Relation})"> <member name="M:MiaoYu.Api.Admin.Controllers.Apps.T_Character_Personality_RelationController.ExportExcelAsync(MiaoYu.Shared.Admin.Models.PagingViews.PagingSearchInput{MiaoYu.Repository.ChatAI.Admin.Entities.Apps.T_Character_Personality_Relation})">
<summary> <summary>
导出Excel 导出Excel