自媒体渠道绑定部门

This commit is contained in:
2026-04-27 12:50:35 +08:00
parent 5cb9706274
commit a89c7cce62
10 changed files with 457 additions and 43 deletions
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace app\adminapi\validate\finance;
use app\common\model\dept\Dept;
use app\common\model\finance\AccountCost;
use app\common\service\qywx\MediaChannelService;
use app\common\validate\BaseValidate;
@@ -14,6 +15,7 @@ class AccountCostValidate extends BaseValidate
'id' => 'require|checkExists',
'cost_date' => 'require|dateFormat:Y-m-d',
'media_channel_code' => 'require|checkMediaChannelCode',
'dept_id' => 'require|checkDeptId',
'amount' => 'require|float|egt:0',
'remark' => 'max:255',
];
@@ -23,6 +25,7 @@ class AccountCostValidate extends BaseValidate
'cost_date.require' => '请选择日期',
'cost_date.dateFormat' => '日期格式错误',
'media_channel_code.require' => '请选择自媒体渠道',
'dept_id.require' => '请选择绑定部门',
'amount.require' => '请输入账户消耗金额',
'amount.float' => '账户消耗金额格式错误',
'amount.egt' => '账户消耗金额不能小于0',
@@ -31,11 +34,19 @@ class AccountCostValidate extends BaseValidate
public function sceneAdd()
{
if (!AccountCost::supportsDeptBinding()) {
return $this->remove('id', true)->remove('dept_id', true);
}
return $this->remove('id', true);
}
public function sceneEdit()
{
if (!AccountCost::supportsDeptBinding()) {
return $this->remove('cost_date', true)->remove('dept_id', true);
}
return $this->remove('cost_date', true);
}
@@ -67,4 +78,22 @@ class AccountCostValidate extends BaseValidate
return true;
}
public function checkDeptId($value)
{
if (!AccountCost::supportsDeptBinding()) {
return true;
}
$deptId = (int) $value;
if ($deptId <= 0) {
return '请选择绑定部门';
}
if (!Dept::find($deptId)) {
return '绑定部门不存在';
}
return true;
}
}