'json' ]; // 追加属性 protected $append = [ 'event_text' ]; const TYPE_MAP = [ 'money' => '余额', 'score' => '积分', 'commission' => '服务收益' ]; protected $eventMap = [ 'score' => [ 'signin' => '签到-赠送积分', 'replenish_signin' => '签到-补签', 'activity_gift' => '活动-赠送积分', 'score_shop_pay' => '积分商城-积分支付', 'order_pay' => '商城订单-积分抵扣', 'order_refund' => '订单退款-退还积分', 'admin_recharge' => '合约调用', 'recharge_gift' => '线上充值-赠送积分' ], 'money' => [ 'order_pay' => '商城订单-余额支付', 'order_recharge' => '线上充值', 'admin_recharge' => '合约调用', 'recharge_gift' => '线上充值-赠送余额', 'activity_gift' => '活动-赠送余额', 'order_refund' => '订单退款-退还余额', 'withdraw' => '申请提现', 'withdraw_error' => '提现失败-返还余额', 'transfer_by_commission' => '服务收益-转入到余额', 'reward_income' => '收益分成-入账', 'reward_back' => '收益分成-退还', 'push3' => '推荐提成', 'maker_diff' => '创客进阶奖', 'maker_peer' => '创客协同奖', 'maker_overtaken' => '创客卓越奖', 'team_venue' => '酒道馆管理奖', 'team_county' => '区县管理奖', 'venue_peer' => '酒道馆平级奖', 'county_peer' => '区县代平级奖', 'venue_share' => '酒道馆加权奖', 'county_share' => '区县加权奖' ], 'commission' => [ 'withdraw' => '提现', 'withdraw_error' => '提现失败-返还收益', 'reward_income' => '服务收益-入账', 'reward_back' => '服务收益-退还', 'transfer_to_money' => '服务收益-转出到余额', 'push3' => '推荐提成', 'maker_diff' => '创客进阶奖', 'maker_peer' => '创客协同奖', 'maker_overtaken' => '创客卓越奖', 'team_venue' => '酒道馆管理奖', 'team_county' => '区县管理奖', 'venue_peer' => '酒道馆平级奖', 'county_peer' => '区县代平级奖', 'venue_share' => '酒道馆加权奖', 'county_share' => '区县加权奖' ] ]; public function getEventMap() { $map = $this->eventMap; if (class_exists('\\addons\\shopro\\service\\partner\\PartnerConfig')) { $partnerMap = \addons\shopro\service\partner\PartnerConfig::rewardTypeMap(); foreach ($partnerMap as $k => $v) { if (!isset($map['money'][$k])) { $map['money'][$k] = $v; } if (!isset($map['commission'][$k])) { $map['commission'][$k] = $v; } } } return $map; } public function scopeMoney($query) { return $query->where('type', 'money'); } public function scopeCommission($query) { return $query->where('type', 'commission'); } public function scopeScore($query) { return $query->where('type', 'score'); } public function getEventTextAttr($value, $data) { $type = $data['type'] ?? ''; $event = $data['event'] ?? ''; $eventMap = $this->getEventMap(); return $eventMap[$type][$event] ?? ($eventMap['money'][$event] ?? ($eventMap['commission'][$event] ?? ($event ?: ''))); } public function getMemoAttr($value, $data) { $event = $data['event'] ?? ''; if ($event === 'admin_recharge') { if ($value === '后台管理调整余额' || $value === '后台管理调整积分' || $value === '合约调用') { return ''; } } return $value ?? ''; } }