bztang-admin/app/common/services/operation/ShopMemberLog.php

105 lines
3.8 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/11/2
* Time: 9:55
*/
namespace app\common\services\operation;
use app\backend\modules\member\models\Member;
use app\common\models\MemberLevel;
class ShopMemberLog extends OperationBase
{
public $modules = 'member';
public $type = 'update';
protected function modifyDefault()
{
if (is_array($this->model)) {
$this->setLog('mark', $this->model['uid']);
} else {
$this->setLog('mark', $this->model->getOriginal('member_id'));
}
}
protected function special()
{
$nick_name = Member::getMemberByUid($this->model['uid'])->value('nickname');
$this->setLog('field_name', '会员黑名单');
$this->setLog('field', 'is_black');
if ($this->model['is_black']) {
$this->setLog('old_content',$nick_name.'取消黑名单');
$this->setLog('new_content', $nick_name.'加入黑名单');
} else {
$this->setLog('old_content', $nick_name.'加入黑名单');
$this->setLog('new_content',$nick_name.'取消黑名单');
}
}
/**
* 获取模型需要记录的字段
* @return mixed
*/
protected function recordField()
{
return [
'level_id' => '会员等级',
'group_id' => '会员分组ID',
'wechat' => '会员微信号',
'alipayname' => '会员支付宝姓名',
'alipay' => '会员支付宝账号',
'is_agent' => '会员推广员权限',
'is_black' => '会员黑名单',
'parent_id' => '会员上线ID',
];
}
/**
* 获取模型修改了哪些字段
* @param object array
* @return array
*/
protected function modifyField()
{
$model = $this->model;
if (is_null($model->getOriginal())) {
return [];
}
$nick_name = Member::getMemberByUid($model->member_id)->value('nickname');
foreach ($this->recordField() as $key => $item) {
if ($model->isDirty($key)) {
if ($key == 'level_id') {
$old_level_name = MemberLevel::where('id', $model->getOriginal('level_id'))->value('level_name');
$new_level_name = MemberLevel::where('id', $model->level_id)->value('level_name');
$old_level_name = is_null($old_level_name) ? '普通会员': $old_level_name;
$new_level_name = is_null($new_level_name) ? '普通会员': $new_level_name;
$this->modify_fields[$key]['old_content'] = $nick_name.'旧等级:'. $old_level_name;
$this->modify_fields[$key]['new_content'] = $nick_name.'新等级:'. $new_level_name;
} elseif ($key == 'is_agent') {
$this->modify_fields[$key]['old_content'] = ['key'=> $model->getOriginal($key),0=>$nick_name.'推广员权限关闭',1=>$nick_name.'推广员权限开启'];
$this->modify_fields[$key]['new_content'] = ['key'=> $model->{$key},0=>$nick_name.'推广员权限关闭',1=>$nick_name.'推广员权限开启'];
} elseif ($key == 'is_black') {
$this->modify_fields[$key]['old_content'] = ['key'=> $model->getOriginal($key),0=>$nick_name.'取消黑名单',1=>$nick_name.'加入黑名单'];
$this->modify_fields[$key]['new_content'] = ['key'=> $model->{$key},0=>$nick_name.'取消黑名单',1=>$nick_name.'加入黑名单'];
} else {
$this->modify_fields[$key]['old_content'] = $nick_name.':'.$model->getOriginal($key);
$this->modify_fields[$key]['new_content'] = $nick_name.':'.$model->{$key};
}
}
}
return $this->modify_fields;
}
}