<?php
|
|
namespace app\shop\model\plus\vip;
|
|
use app\common\model\plus\vip\Grade as GradeModel;
|
use app\shop\model\plus\vip\User as VipUserModel;
|
use app\common\model\user\Grade as UserGradeModel;
|
/**
|
* VIP专区等级模型
|
*/
|
class Grade extends GradeModel
|
{
|
/**
|
* 获取列表
|
*/
|
public function getList($search)
|
{
|
|
$list = $this->selectList();
|
// 如果为空,则插入默认等级
|
if(count($list) == 0){
|
$grade_id=Grade::getDefaultGradeId();
|
$where['app_id'] = self::$app_id;
|
$where['grade_id'] = 0;
|
// 更新之前的默认为0的id为此等级id
|
(new VipUserModel())->where($where)->update([
|
'grade_id' => $grade_id
|
]);
|
$list = $this->selectList();
|
}
|
|
return $list;
|
}
|
/**
|
* 获取等级列表
|
*/
|
public function selectList()
|
{
|
return $this->where('is_delete', '=', 0)
|
->order(['weight' => 'asc', 'create_time' => 'asc'])
|
->select();
|
}
|
/**
|
* 新增记录
|
*/
|
public function add($data)
|
{
|
$data['app_id'] = self::$app_id;
|
$data['is_default'] = 0;
|
$data['remark'] = $this->setRemark($data);
|
return $this->save($data);
|
}
|
public function edit( $data)
|
{
|
$data['remark'] = $this->setRemark($data);
|
return $this->save($data);
|
}
|
|
private function setRemark($data)
|
{
|
$remark = '';
|
if($data['is_purchase_count'] == 1){
|
if(!empty($remark)){
|
$remark .= '\r\n';
|
if ($data['condition_type']=='and'){
|
$remark .= "并且";
|
}else{
|
$remark .= "或";
|
}
|
}
|
$remark .= "购买VIP专区商品次数满{$data['purchase_count']}次";
|
}
|
|
if($data['is_supplier_count'] == 1){
|
if(!empty($remark)){
|
$remark .= '\r\n';
|
if ($data['condition_type']=='and'){
|
$remark .= "并且";
|
}else{
|
$remark .= "或";
|
}
|
}
|
$remark .= "直推商家满{$data['supplier_count']}家";
|
}
|
|
if($data['is_referee_grade'] == 1){
|
if(!empty($remark)){
|
$remark .= '\r\n';
|
if ($data['condition_type']=='and'){
|
$remark .= "并且";
|
}else{
|
$remark .= "或";
|
}
|
}
|
|
|
// 获取用户等级名称
|
$gradeNames = [];
|
if (!empty($data['referee_grade_ids']) && is_array($data['referee_grade_ids'])) {
|
// 查询用户等级名称
|
$grades = UserGradeModel::where('grade_id', 'in', $data['referee_grade_ids'])
|
->field('name')
|
->select();
|
|
foreach ($grades as $grade) {
|
$gradeNames[] = $grade['name'];
|
}
|
}
|
|
$gradeNamesStr = implode('、', $gradeNames);
|
$remark .= "直推{$gradeNamesStr}等级会员满{$data['referee_grade_count']}人";
|
}
|
|
if($data['open_buy_product'] == 1){
|
if(!empty($remark)){
|
$remark .= '\r\n';
|
if ($data['condition_type']=='and'&&$data['open_type_product']==0){
|
$remark .= "并且";
|
}else{
|
$remark .= "或";
|
}
|
}
|
$product_name='';
|
foreach ($data['product_image'] as $k=>$item){
|
$product_name .= $item['product_name'].($k!=0?'、':'');
|
}
|
$remark .= "购买指定商品{$product_name}";
|
}
|
return $remark;
|
}
|
}
|