import { Provide } from '@midwayjs/decorator'; import { InjectEntityModel } from '@midwayjs/typegoose'; import { ReturnModelType } from '@typegoose/typegoose'; import { FrameworkErrorEnum, ServiceError } from 'free-midway-component'; import { User } from '../../entity/User.entity'; import { CheckUpdateCardAndPid, checkPhoneAndPid, checkOffice, checkUpkeep, } from '../../interface/util/user.util.interface'; import { ShopSetting } from '../../entity/ShopSetting.entity'; import { Upkeep } from '../../entity/Upkeep.entity'; @Provide() export class UserUtilService { @InjectEntityModel(User) UserModel: ReturnModelType; @InjectEntityModel(ShopSetting) shopModel: ReturnModelType; @InjectEntityModel(Upkeep) keepModel: ReturnModelType; /** * 检查创建时,是否创建改街道/社区设置 * @param data 参数 */ async checkOffice(data: checkOffice) { if (data.office) { // 检查街道/社区 const useran = await this.shopModel.count({ office: data.office }); if (useran > 0) { throw new ServiceError( '已有该街道/社区 采购设置!', FrameworkErrorEnum.BAD_BODY ); } } } /** * 检查修改时,是否创建改街道/社区设置 * @param data 参数 */ async checkUpdateOffice(id, data: checkOffice) { const { office } = data; if (office) { // 检查街道/社区 const useran = await this.shopModel.count({ _id: { $ne: id }, office, }); if (useran > 0) { throw new ServiceError( '已有该街道/社区 采购设置!', FrameworkErrorEnum.BAD_BODY ); } } } /** * 检查创建时,检查手机号和姓名 * @param data 参数 */ async checkPhoneAndPid(data: checkPhoneAndPid) { if (data.tel) { // 检查手机号 const useran = await this.UserModel.count({ tel: data.tel }); if (useran > 0) { throw new ServiceError( '已有用户 使用该手机号!', FrameworkErrorEnum.BAD_BODY ); } } if (data.name) { // 检查姓名 const username = await this.UserModel.count({ name: data.name }); if (username > 0) { throw new ServiceError( '已有用户 使用该名称!', FrameworkErrorEnum.BAD_BODY ); } } if (data.openid) { // 检查opneid let openidan; openidan = await this.UserModel.count({ openid: data.openid, status: '0', }); if (openidan > 0) { throw new ServiceError( '注册成功 管理员审核中!', FrameworkErrorEnum.BAD_BODY ); } openidan = await this.UserModel.count({ openid: data.openid, status: '1', }); if (openidan > 0) { throw new ServiceError( '已有用户信息 请直接登录!', FrameworkErrorEnum.BAD_BODY ); } } } /** * 检查创建时,检查手机号和姓名 * @param id 当前要修改的数据 * @param data 参数 */ async checkUpdateCardAndPid(id, data: CheckUpdateCardAndPid) { const { tel, name } = data; if (tel) { const useran = await this.UserModel.count({ _id: { $ne: id }, tel, }); if (useran > 0) { throw new ServiceError( '已有用户 使用该手机号!', FrameworkErrorEnum.BAD_BODY ); } } if (name) { const username = await this.UserModel.count({ _id: { $ne: id }, name, }); if (username > 0) { throw new ServiceError( '已有用户 使用该名称!', FrameworkErrorEnum.BAD_BODY ); } } } // 创建维修检查 async checkUpkeep(data: checkUpkeep) { // 检查街道/社区 const keepan = await this.keepModel.count({ user: data.user, supplier: data.supplier, good: data.good, spec: data.spec, order_id: data.order_id, status: '0', }); if (keepan > 0) { throw new ServiceError( '已有维修申请 请等待维修人员上门或联系您!', FrameworkErrorEnum.BAD_BODY ); } } }