174 lines
6.2 KiB
PHP
174 lines
6.2 KiB
PHP
<?php
|
|
/**
|
|
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.gobuysaas.com
|
|
* =========================================================
|
|
*/
|
|
|
|
namespace addon\saas\model;
|
|
|
|
use app\model\BaseModel;
|
|
use app\model\system\Cron;
|
|
use think\facade\Db;
|
|
|
|
/**
|
|
* 分销
|
|
*/
|
|
class ManageAccount extends BaseModel
|
|
{
|
|
public $type = [
|
|
'withdraw' => '提现',
|
|
'order' => '订单结算',
|
|
'two_contribute' => '间联贡献值',
|
|
'three_contribute' => '管理贡献值',
|
|
];
|
|
|
|
/**
|
|
* 添加账户流水
|
|
* @param $manage_id
|
|
* @param $real_name
|
|
* @param string $type
|
|
* @param $money
|
|
* @param $relate_id
|
|
* @return array
|
|
*/
|
|
public function addAccount($manage_id, $real_name, $type, $money, $relate_id)
|
|
{
|
|
$account_no = date('YmdHi') . rand(1000, 9999);
|
|
$data = array(
|
|
'manage_id' => $manage_id,
|
|
'real_name' => $real_name,
|
|
'account_no' => $account_no,
|
|
'money' => $money,
|
|
'type' => $type,
|
|
'type_name' => $this->type[$type],
|
|
'relate_id' => $relate_id,
|
|
'create_time' => time(),
|
|
);
|
|
$res = model('manage_account')->add($data);
|
|
model('manage_user')->update([
|
|
'account' => Db::raw('account+' . $money),
|
|
'total_commission' => Db::raw('account+' . $money),
|
|
], [
|
|
'id' => $manage_id
|
|
]);
|
|
return $this->success($res);
|
|
}
|
|
|
|
public function addContribute($manage_id, $real_name, $type, $money, $relate_id)
|
|
{
|
|
$account_no = date('YmdHi') . rand(1000, 9999);
|
|
$data = array(
|
|
'manage_id' => $manage_id,
|
|
'real_name' => $real_name,
|
|
'account_no' => $account_no,
|
|
'money' => $money,
|
|
'type' => $type,
|
|
'type_name' => $this->type[$type],
|
|
'relate_id' => $relate_id,
|
|
'create_time' => time(),
|
|
);
|
|
$res = model('manage_account')->add($data);
|
|
model('manage_user')->update([
|
|
'contribute_number' => Db::raw('contribute_number+' . $money)
|
|
], [
|
|
'id' => $manage_id
|
|
]);
|
|
return $this->success($res);
|
|
}
|
|
|
|
/**
|
|
* 获取分销商账户流水信息
|
|
* @param array $condition
|
|
* @param string $field
|
|
*/
|
|
public function getAccountInfo($condition = [], $field = '*')
|
|
{
|
|
$list = model('manage_account')->getInfo($condition, $field);
|
|
return $this->success($list);
|
|
}
|
|
|
|
/**
|
|
* 获取商账户流水分页列表
|
|
* @param array $condition
|
|
* @param number $page
|
|
* @param string $page_size
|
|
* @param string $order
|
|
* @param string $field
|
|
*/
|
|
public function getAccountPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'create_time desc', $field = '*')
|
|
{
|
|
$list = model('manage_account')->pageList($condition, $field, $order, $page, $page_size);
|
|
return $this->success($list);
|
|
}
|
|
|
|
/**
|
|
* 添加商账户流水(不扣账户)
|
|
* @param $fenxiao_id
|
|
* @param $fenxiao_name
|
|
* @param string $type
|
|
* @param $money
|
|
* @param $relate_id
|
|
* @return array
|
|
*/
|
|
public function addAccountLog($manaeg_id, $real_name, $type, $money, $relate_id)
|
|
{
|
|
$account_no = date('YmdHi') . rand(1000, 9999);
|
|
$data = array(
|
|
'manaeg_id' => $manaeg_id,
|
|
'real_name' => $real_name,
|
|
'account_no' => $account_no,
|
|
'money' => $money,
|
|
'type' => $type,
|
|
'type_name' => $this->type[$type],
|
|
'relate_id' => $relate_id,
|
|
'create_time' => time(),
|
|
);
|
|
$res = model('manage_account')->add($data);
|
|
return $this->success($res);
|
|
}
|
|
|
|
/***
|
|
* 添加系统合作分账
|
|
* @param $param
|
|
* @return void
|
|
*/
|
|
public function OrderProfitSettlement($param)
|
|
{
|
|
if (isset($param['trade_form']) && $param['site_id']) { //添加分账任务
|
|
$account = model('dividemoney_account')->getInfo([['site_id', '=', $param['site_id']], ['is_system', '=', 1], ['channel_type', '=', 'aliapp']]);
|
|
$res = model('dividemoney_bill')->getInfo(['out_trade_no' => $param['out_trade_no']], 'id');
|
|
if (!$account || $res) return $this->error('', '系统账户不存在或订单已分账');
|
|
if ($param['trade_form'] == 'site_trade') {
|
|
$amount = $param['order_profit'] * $account['divide_rate'] / 100;
|
|
$platform['account_type'] = 'userId'; //订单归属
|
|
$platform['realname'] = $account['realname']; //订单归属
|
|
$platform['account'] = $account['account']; //订单归属
|
|
$platform['site_id'] = $param['site_id']; //订单号
|
|
$platform['ag_site_id'] = $param['ag_site_id']; //订单号
|
|
$platform['is_platform'] = 1; //订单号
|
|
$platform['fee_commission'] = round($amount / $param['price'], 3); //订单号
|
|
$platform['order_id'] = $param['order_id']; //订单号
|
|
$platform['member_id'] = $param['member_id']; //订单号
|
|
$platform['is_video_number'] = 0; //订单号
|
|
$platform['out_trade_no'] = $param['out_trade_no']; //交易号
|
|
$platform['trade_no'] = $param['trade_no'] ?? ''; //订单号
|
|
$platform['pay_money'] = $param['price']; //支付金额
|
|
$platform['amount'] = $amount; //分账金额
|
|
$platform['channel_type'] = 'aliapp'; //分账金额
|
|
$platform['promotion_type'] = 'saas'; //订单归属
|
|
$platform['reason'] = '平台技术合作'; //订单归属
|
|
$res = model('dividemoney_bill')->add($platform);
|
|
if ($res) {
|
|
$cron = new Cron();
|
|
$cron->addCron(1, 1, '执行自动分账', 'AutoCronOrderDividemoney', time() + 8, $param['order_id']);
|
|
}
|
|
}
|
|
}
|
|
return $this->success();
|
|
}
|
|
}
|