token_type == ModelToken::USER_TYPE) { case ModelToken::USER_TYPE: //用户 //保证用户新增的任意代码类目审核状态为已审核 $model->code_module_category_audit = ModelCodeModuleCategory::AUDIT_PASS; break; case ModelToken::CUSTOMER_TYPE: //客户 //客户新增代码类目时只有库类为私用的权限时,才可默认审核状态为已审核,其余都为待审核 if ($model->code_module_category_library_type == ModelCodeModuleCategory::LIBRARY_PRIVATE) { $model->code_module_category_audit = ModelCodeModuleCategory::AUDIT_PASS; } else { $model->code_module_category_audit = ModelCodeModuleCategory::AUDIT_UNAUDITED; } break; default: throwErrorMsg("token所有者身份类型不正确!"); } } /** * 新增前父级(上级类目)guid处理 * * @param ModelCodeModuleCategory $model * @return void * @date 2023-06-28 * @author xjh * @since 1.0.0 */ public static function onBeforeInsertParentGuid(ModelCodeModuleCategory $model): void { if (isset($model->code_module_category_parent_guid) && $model->code_module_category_parent_guid) { if ($model->code_module_category_parent_guid == $model->code_module_category_guid) { throwErrorMsg('不可成为自己的子级类目!'); } $code_module_category_parent = ModelCodeModuleCategory::find($model->code_module_category_parent_guid); if (!$code_module_category_parent) { throwErrorMsg('上级类目不存在!'); } if ($code_module_category_parent->code_module_category_parent_guid != ModelCodeModuleCategory::MASTER_DEFAULT) { throwErrorMsg('不可选择已拥有上级类目的类目作为自己的上级类目!'); } if (ModelCodeModuleCategory::where('code_module_category_parent_guid', $model->code_module_category_guid)->find()) { throwErrorMsg('当前类目已有子类目,不可更换上级类目!'); } } else { $model->code_module_category_parent_guid = ModelCodeModuleCategory::MASTER_DEFAULT; } } /** * 父子类目共用信息验证 * * @param ModelCodeModuleCategory $model * @return void * @date 2023-06-29 * @author xjh * @since 1.0.0 */ public static function validateCategoryInfo(ModelCodeModuleCategory $model): void { if ($model->code_module_category_parent_guid != ModelCodeModuleCategory::MASTER_DEFAULT) { $parent_category = ModelCodeModuleCategory::find($model->code_module_category_parent_guid); if (!$parent_category) { throwErrorMsg("上级类目不存在!"); } foreach (ModelCodeModuleCategory::Common_INFO_FIELDS as $field) { if ($model->$field != $parent_category->$field) { throwErrorMsg("父子类目共用信息{$field}未完全相同! "); } }; } } }