jh-admin/addon/saas/model/ManageAccount.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();
}
}