UNPKG

11.1 kBSource Map (JSON)View Raw
1{"version":3,"sources":["service/info.group.service.ts"],"names":[],"mappings":"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","file":"info.group.service.js","sourcesContent":["import { Injectable, HttpException } from \"@nestjs/common\";\nimport { InjectRepository } from \"@nestjs/typeorm\";\nimport { Repository } from \"typeorm\";\nimport { InfoGroup } from \"../model/info.group.entity\";\nimport { InfoItem } from \"../model/info.item.entity\";\n\n@Injectable()\nexport class InfoGroupService {\n\n constructor(\n @InjectRepository(InfoItem) private readonly infoItemRepository: Repository<InfoItem>,\n @InjectRepository(InfoGroup) private readonly infoGroupRepository: Repository<InfoGroup>\n ) {}\n\n /* 获取所有信息组 */\n async getAll(): Promise<Array<InfoGroup>> {\n return this.infoGroupRepository.find();\n }\n\n /* 获取指定信息组的信息项,不管信息组状态如何都能获取到 */\n async getInfoItems(id: number): Promise<Array<InfoItem> | undefined> {\n const infoGroup: InfoGroup | undefined = await this.infoGroupRepository.findOne(id, { relations: [\"items\"] });\n return infoGroup ? infoGroup.items : undefined;\n }\n\n /* 创建信息组 */\n async createInfoGroup(name: string): Promise<void> {\n const exist: InfoGroup | undefined = await this.infoGroupRepository.findOne({ name });\n if (exist) {\n throw new HttpException(`给定名称name=${name}信息组已存在`, 407);\n }\n // 方法中创建的信息组都是非默认的,只有模块初始化时写入信息组才是默认的\n const infoGroup: InfoGroup = this.infoGroupRepository.create({ name, default: false, status: true });\n try {\n await this.infoGroupRepository.save(infoGroup);\n } catch (err) {\n throw new HttpException(`数据库错误:${err.toString()}`, 401);\n }\n }\n\n /* 更新信息组 */\n async updateInfoGroup(id: number, name: string): Promise<void> {\n const exist: InfoGroup | undefined = await this.infoGroupRepository.findOne(id);\n if (!exist) {\n throw new HttpException(`给定id=${id}信息组不存在`, 408);\n }\n // 默认信息组无法更新\n if (exist.default) {\n throw new HttpException(\"默认信息组不可更改\", 408);\n }\n // 更新的名称已存在也无法更新\n if (name !== exist.name) {\n const exist1: InfoGroup | undefined = await this.infoGroupRepository.findOne({ name });\n if (exist1) {\n throw new HttpException(`指定名称信息组已存在:${name}`, 408);\n }\n }\n try {\n exist.name = name;\n await this.infoGroupRepository.save(exist);\n } catch (err) {\n throw new HttpException(`数据库错误:${err.toString()}`, 401);\n }\n }\n\n /* 删除信息组,目前由于信息组与信息项是多对多关系,删除信息组只会解除关系,不会删除信息项 */\n async deleteInfoGroup(id: number): Promise<void> {\n const exist: InfoGroup | undefined = await this.infoGroupRepository.findOne(id);\n if (!exist) {\n throw new HttpException(`给定id=${id}信息组不存在`, 408);\n }\n // 默认信息组无法删除\n if (exist.default) {\n throw new HttpException(\"默认信息组不可删除\", 408);\n }\n try {\n await this.infoGroupRepository.remove(exist);\n } catch (err) {\n throw new HttpException(`数据库错误:${err.toString()}`, 401);\n }\n }\n\n /* 向指定信息组添加信息项 */\n async addInfoItem(id: number, infoItemId: number): Promise<void> {\n const group: InfoGroup | undefined = await this.infoGroupRepository.findOne(id, { relations: [\"items\"] });\n if (!group) {\n throw new HttpException(`给定id=${id}信息组不存在`, 408);\n }\n // 不能向默认信息组添加新项\n if (group.default) {\n throw new HttpException(\"默认信息组不可更改\", 408);\n }\n const item: InfoItem | undefined = await this.infoItemRepository.findOne(infoItemId);\n if (!item) {\n throw new HttpException(`指定id=${infoItemId}信息项不存在`, 409);\n }\n // 默认信息项也不能添加到别的组\n if (item.default) {\n throw new HttpException(\"默认信息项不可添加\", 408);\n }\n // 查找是否信息项已经存在于指定信息组中\n const find: InfoItem | undefined = group.items.find(item => {\n return item.id === id;\n });\n // 如果已经存在,报错\n if (find) {\n throw new HttpException(`指定信息项id=${infoItemId}已经存在于指定信息组id=${id}中`, 410);\n }\n try {\n group.items.push(item);\n await this.infoGroupRepository.save(group);\n } catch (err) {\n throw new HttpException(`数据库错误:${err.toString()}`, 401);\n }\n }\n\n /* 从信息组移除信息项 */\n async removeInfoItem(id: number, infoItemId: number): Promise<void> {\n const group: InfoGroup | undefined = await this.infoGroupRepository.findOne(id, { relations: [\"items\"] });\n if (!group) {\n throw new HttpException(`给定id=${id}信息组不存在`, 408);\n }\n // 默认信息组不能更改\n if (group.default) {\n throw new HttpException(\"默认信息组不可更改\", 408);\n }\n // 其他信息组不可能包含默认信息项,因为添加不进去\n const item: InfoItem | undefined = await this.infoItemRepository.findOne(infoItemId);\n if (!item) {\n throw new HttpException(`指定id=${infoItemId}信息项不存在`, 409);\n }\n // 查找是否信息项已经存在于指定信息组中\n const index = group.items.findIndex(item => {\n return item.id === id;\n });\n // 如果信息项不存在信息组中,报错\n if (index < 0) {\n throw new HttpException(`指定信息项id=${infoItemId}不存在于指定信息组id=${id}中`, 411);\n }\n try {\n group.items.splice(index, 1);\n await this.infoGroupRepository.save(group);\n } catch (err) {\n throw new HttpException(`数据库错误:${err.toString()}`, 401);\n }\n }\n}\n"]}
\No newline at end of file