addClassName('Point'); } public function getModelClass(): PointModel { return new PointModel(); } public function getEntityClass(): PointEntity { return new PointEntity(); } public function getFormFields(): array { return [ "clientinfo_uid", "status", "title", "amount" ]; } public function getFilterFields(): array { return ["clientinfo_uid", 'status']; } public function getBatchJobFields(): array { return ['status']; } private function setBalance(array $formDatas): ClientEntity { //point_balance 체크 $entity = $this->getClientService()->getEntity($formDatas['clientinfo_uid']); if (!$entity) { throw new \Exception("{$formDatas['clientinfo_uid']}에 대한 고객정보를 찾을수 없습니다."); } $amount = intval($formDatas['amount']); if ($formDatas['status'] === DEFAULTS['STATUS']) { //입금, 쿠폰추가 $entity = $this->getClientService()->deposit($entity, 'point_balance', $amount); } else { // 출금, 쿠폰사용 $entity = $this->getClientService()->withdrawal($entity, 'point_balance', $amount); } return $entity; } public function create(array $formDatas, mixed $entity = null): PointEntity { $this->setBalance($formDatas); return parent::create($entity, $formDatas); } }