Files
spacestation/common/libraries/entity/ReceiverOrderSubsidyEntity.php
T
2025-07-27 12:22:34 +08:00

188 lines
8.2 KiB
PHP

<?php
class ReceiverOrderSubsidyEntity
{
public $id;
public $orderId;
public $userId;
public $cityId;
public $bizId;
public $brandId;
public $seriesId;
public $billImg;
public $businessImg;
public $ifcheck;
public $checkTime;
public $status;
public function __construct()
{
$ci = &get_instance();
$ci->load->model('agent/auto_product_model');
$ci->load->model('agent/receiver_order_subsidy_model');
$ci->load->model('agent/pingan/pingan_users_cmmssn_model');
$ci->load->model('agent/pingan/pingan_users_model');
$ci->load->model('agent/organization/organization_cmmssn_model', 'mdOrganizationCmmssn');
$ci->load->model('agent/organization/organization_model');
$ci->load->model('receiver/order/receiver_orders_model');
$ci->load->model('receiver/receiver_clues_model');
$ci->receiver_orders_model->set_db('ssdb');
$ci->receiver_clues_model->set_db('ssdb');
}
public function ifCheckSubsidy($status, $reason = '')
{
$ci = &get_instance();
try {
$data = [
'ifcheck' => $status ? Receiver_order_subsidy_model::IF_CHECK_YES : Receiver_order_subsidy_model::IF_CHECK_NO_PASS,
'checkTime' => date('Y-m-d H:i:s')
];
if ($data['ifcheck'] == Receiver_order_subsidy_model::IF_CHECK_NO_PASS && !$reason) {
throw new Exception("请输入审核未通过原因");
}
$reason && $data['reason'] = $reason;
$result = $ci->receiver_order_subsidy_model->update($data, ['id' => $this->id]);
if (!$result) {
throw new Exception("保存失败");
}
if ($data['ifcheck'] == Receiver_order_subsidy_model::IF_CHECK_YES) { //分佣
// $this->cmmssn();
//订单设置已完成
$ci->receiver_orders_model->update(['status' => 3], ['id' => $this->orderId]);
}
return new MyResponse(EXIT_SUCCESS, '保存成功');
} catch (Exception $e) {
return new MyResponse(EXIT_ERROR, $e->getMessage());
}
}
public function cmmssn()
{
$ci = &get_instance();
try {
$log_path = 'cmmssn.log';
$log_dir = 'pingan';
debug_log("开始分佣:" . $this->id, $log_path, $log_dir);
$cmmssn = $ci->pingan_users_cmmssn_model->get(['orderId' => $this->orderId]);
if ($cmmssn) {
throw new Exception("订单已经存在分佣记录");
}
$order = $ci->receiver_orders_model->get(['id' => $this->orderId]);
if (!$order) {
throw new Exception("订单不存在");
}
$clues = $ci->receiver_clues_model->get(['id' => $order['clue_id'], 'cf_id' => 38]);
if (!$clues) {
throw new Exception("线索不存在");
}
if (!$clues['out_id']) {
throw new Exception("报名来源不存在");
}
$pinanUser = $ci->pingan_users_model->get(['id' => $clues['pingan_user_id']]);
if (!$pinanUser['id']) {
throw new Exception("线索不存在绑定用户关系");
}
//获取分佣配置
$cmmssn = $ci->mdOrganizationCmmssn->get(['teamId' => $pinanUser['orgTeamId'], 'status' => 1]);
if (!$cmmssn) {
throw new Exception("分佣配置不存在");
}
//团队设置分佣等级
$level = $ci->organization_model->getTeamLevel($pinanUser['orgTeamId']);
$brokerage1 = $brokerage2 = $brokerage3 = $brokerage4 = 0;
$sourceId = 0;
if ($clues['cf2_id'] == 39) { //产品来源
$product = $ci->auto_product_model->get(['id' => $clues['out_id']]);
$brokerage1 = $product['orderCommission'] * ($cmmssn['orderLevel1'] / 100) ?: 0;
$brokerage2 = $product['orderCommission'] * ($cmmssn['orderLevel2'] / 100) ?: 0;
$brokerage3 = $product['orderCommission'] * ($cmmssn['orderLevel3'] / 100) ?: 0;
$brokerage4 = $product['orderCommission'] * ($cmmssn['orderLevel4'] / 100) ?: 0;
$sourceId = $product['id'] ?: 0;
} elseif ($clues['cf2_id'] == 40) { //活动获取分佣配置
}
$add_data = [];
if ($brokerage1 && $clues['area_id']) { //一级佣金
$add_data[] = [
'cfId' => $this->orderId,
'sourceId' => $sourceId,
'cfType' => Pingan_users_cmmssn_model::CF_TYPE_ORDER_TEAM,
'money' => $brokerage1,
'pinganUserId' => $clues['area_id'],
'teamId' => 0,
'depId' => 0,
'areaId' => $clues['area_id'],
'createTime' => date('Y-m-d H:i:s')
];
}
if ($brokerage2 && $clues['dep_id']) { //二级佣金
$add_data[] = [
'cfId' => $this->orderId,
'sourceId' => $sourceId,
'cfType' => Pingan_users_cmmssn_model::CF_TYPE_ORDER_TEAM,
'money' => $brokerage2,
'pinganUserId' => $clues['dep_id'],
'teamId' => 0,
'depId' => $clues['dep_id'],
'areaId' => $clues['area_id'] ?: 0,
'createTime' => date('Y-m-d H:i:s')
];
}
if ($level >= 4) { //4级
if ($brokerage3 && $clues['team_id']) {
$add_data[] = [
'cfId' => $this->orderId,
'sourceId' => $sourceId,
'cfType' => Pingan_users_cmmssn_model::CF_TYPE_ORDER_TEAM,
'money' => $brokerage3,
'pinganUserId' => $clues['team_id'],
'teamId' => $clues['team_id'],
'depId' => $clues['dep_id'],
'areaId' => $clues['area_id'] ?: 0,
'createTime' => date('Y-m-d H:i:s')
];
}
if ($brokerage4 && $clues['pingan_user_id']) {
$add_data[] = [
'cfId' => $this->orderId,
'sourceId' => $sourceId,
'cfType' => Pingan_users_cmmssn_model::CF_TYPE_ORDER_OWN,
'money' => $brokerage4,
'pinganUserId' => $clues['pingan_user_id'],
'teamId' => $clues['team_id'],
'depId' => $clues['dep_id'],
'areaId' => $clues['area_id'] ?: 0,
'createTime' => date('Y-m-d H:i:s')
];
}
} else { //三级
if ($brokerage3 && $clues['pingan_user_id']) {
$add_data[] = [
'cfId' => $this->orderId,
'sourceId' => $sourceId,
'cfType' => Pingan_users_cmmssn_model::CF_TYPE_ORDER_TEAM,
'money' => $brokerage3,
'pinganUserId' => $clues['team_id'],
'teamId' => 0,
'depId' => $clues['dep_id'],
'areaId' => $clues['area_id'] ?: 0,
'createTime' => date('Y-m-d H:i:s')
];
}
}
if (count($add_data)) {
$result = $ci->pingan_users_cmmssn_model->add_batch($add_data);
if (!$result) {
throw new Exception("保存失败");
}
}
return new MyResponse(EXIT_SUCCESS, '保存成功');
} catch (Exception $e) {
debug_log($e->getMessage(), $log_path, $log_dir);
return new MyResponse(EXIT_ERROR, $e->getMessage());
}
}
}