文件
mashangyoujiu/Application/Distribution/Model/GradeModel.class.php

136 行
5.1 KiB
PHP
可执行文件

<?php
namespace Distribution\Model;
/**
* 分销等级表
* Class GradeModel
* @package Distribution\Model
*/
class GradeModel extends \Common\Model\BaseModel
{
protected $tableName = 'distribution_grade';
protected $fields = array(
'id', //int(11) NOT NULL AUTO_INCREMENT,
'merchant_id', //int(11) NOT NULL DEFAULT '0' COMMENT '商户id',
'grade_name', //varchar(50) DEFAULT '' COMMENT '等级名称',
'indent', //int(11) DEFAULT '0' COMMENT '分销订单数',
'invite', //int(11) DEFAULT '0' COMMENT '邀请人数',
'commission', //decimal(10,2) DEFAULT '0.00' COMMENT '推广佣金',
'myself_money', //decimal(10,2) DEFAULT '0.00' COMMENT '自购商品金额',
'client', //int(11) DEFAULT '0' COMMENT '客户数',
'is_invite', //tinyint(1) DEFAULT '0' COMMENT '是否选择邀请人数 0否 1是',
'is_commission', //tinyint(1) DEFAULT '0' COMMENT '是否选择推广佣金 0否 1是',
'is_myself_money', //tinyint(1) DEFAULT '0' COMMENT '是否选择自购商品金额 0否 1是',
'is_client', //tinyint(1) DEFAULT '0' COMMENT '是否选择客户数 0否 1是',
'proportion', //decimal(10,2) DEFAULT '0.00' COMMENT '佣金比例',
'status', //tinyint(1) DEFAULT '0' COMMENT '状态 0正常 1删除',
'grade_type', //tinyint(1) DEFAULT '0' COMMENT '等级类型 0初始等级 1其他等级',
'upgrade_type', //tinyint(1) DEFAULT '0' COMMENT '升级条件 0满足一个达成条件 1满足所有达成条件',
'add_time', //int(11) DEFAULT 0 NULL COMMENT '等级添加时间',
);
/**
* 获取分销员等级信息
* @param $merchant_id 商户ID
* @param $commission 推广佣金
* @param $indent 分销员分销订单数
* @param $invite 分销员邀请人数
* @param $client 客户数
* @return array|mixed
*/
public function getDistributionGradeInfo($merchant_id, $commission = 0, $indent = 0, $invite = 0, $client = 0)
{
$map = array(
'merchant_id' => $merchant_id,
);
$config = $this->getFind($map);
if ($config['commission'] == 1) {
$map['commission'] = array('elt', $commission);
}
if ($config['indent'] == 1) {
$map['indent'] = array('elt', $indent);
}
if ($config['invite'] == 1) {
$map['invite'] = array('elt', $invite);
}
if ($config['client'] == 1) {
$map['client'] = array('elt', $client);
}
if (empty($commission) && empty($indent) && empty($indent) && empty($client)) {
$map['commission'] = array('elt', $commission);
}
$field = 'id,proportion,grade_name';
$res = $this->getOrderFind($map, $field, 'proportion desc');
return $res ? $res : array();
}
/**
* 获取下个级别的升级条件
* @param $present 当前佣金比
* @param $merchant_id 商户ID
* @return array|mixed
*/
public function getUpgradeConditions($present, $merchant_id)
{
$where = [
'status' => 0,
'merchant_id' => $merchant_id,
'proportion' => ['GT', $present]
];
$field = [
'id',
'grade_name',
'invite',
'commission',
'myself_money',
'client',
'is_invite',
'is_commission',
'is_myself_money',
'is_client',
'proportion',
'upgrade_type'
];
$result = $this->getOrderFind($where, $field, 'proportion asc');
if ($result) {
if ($result['is_invite'] != 1) {
unset($result['invite']);
}
if ($result['is_commission'] != 1) {
unset($result['commission']);
}
if ($result['is_myself_money'] != 1) {
unset($result['myself_money']);
}
if ($result['is_client'] != 1) {
unset($result['client']);
}
if (!$result['is_invite'] || !$result['is_commission'] || !$result['is_myself_money'] || !$result['is_client']) {
// 未设置任何升级条件
}
// unset($result['is_invite']);
// unset($result['is_client']);
// unset($result['is_commission']);
// unset($result['is_myself_money']);
} else {
$result = [];
}
return $result;
}
// 获取升级条件V2--一次性获取所有级别
public function getAllUpgradeConditions($merchant_id, $field)
{
return $this->getSelect(['status' => 0, 'merchant_id' => $merchant_id], $field, 'proportion asc');
}
}