94 lines
3.7 KiB
PHP
94 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace app\common\logic\Code;
|
|
|
|
use app\common\model\Code\CodeModuleCategory as ModelCodeModuleCategory;
|
|
use app\common\model\Token as ModelToken;
|
|
|
|
|
|
class CodeModuleCategory
|
|
{
|
|
/**
|
|
* 新增前审核状态处理
|
|
*
|
|
* @param ModelCodeModuleCategory &$model
|
|
* @return void
|
|
* @date 2023-06-28
|
|
* @author xjh
|
|
* @since 1.0.0
|
|
*/
|
|
public static function onBeforeInsertAudit(ModelCodeModuleCategory &$model): void
|
|
{
|
|
switch (ModelToken::getCurrent()->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}未完全相同! ");
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|