123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474 |
- <?php
- namespace Option\Lib;
- use Dever;
- class Cash
- {
- private function getInfo($type, $stype, $cash)
- {
- $cash_type = $type;
- $table = $stype;
- $prefix = ucwords(substr($table, 0, 1));
- if ($stype == 'duifu') {
- $table = 'duifu';
- //$cash = -1*$cash;
- }
- if ($stype == 'zuofei') {
- $table = 'zuofei';
- //$cash = -1*$cash;
- }
- return array($table, $cash, $cash_type, $prefix);
- }
- public function resetParent($uid, $parent)
- {
- # 获取所有下级
- $child = $this->getChild($uid, false);
- if ($child) {
- foreach ($child as $k => $v) {
- if ($v['level'] > 1) {
- $this->update(array('id' => $v['id']), array('uid' => $parent));
- }
- }
- }
- return $this->delete(array('to_uid' => $uid, 'level' => 1), array('uid' => $parent));
- }
- public function up($aid, $mid, $type, $stype, $cash, $desc, $alert = true)
- {
- if ($cash == 0) {
- return false;
- }
- $account = Dever::db('option/account')->find(array('id' => $aid, 'clear' => true));
- if ($account['status'] <= 2) {
- list($table, $cash, $cash_type, $prefix) = $this->getInfo($type, $stype, $cash);
- $where = array();
- $where['clear'] = true;
- $where['aid'] = $aid;
- $where['mid'] = $mid;
- $where['type'] = $cash_type;
- $info = false;
- if (!$info) {
- $data = $where;
- $data['order_num'] = $this->getOrderId($table, $prefix);
- $col = $table;
- $cash_info = Dever::db('option/cash')->find($where);
- if (!$cash_info) {
- Dever::db('option/cash')->insert($where);
- $cash_info = Dever::db('option/cash')->find($where);
- }
- if ($table == 'fafang') {
- $data['yue'] = $cash_info[$col] + $cash;
- $data['status'] = 1;
- if ($cash_info['jiaofu'] < $cash) {
- if ($alert) {
- Dever::alert('交付期权价值不足发放');
- } else {
- return false;
- $data['status'] = 2;
- }
- }
- } elseif ($table == 'duifu') {
- $data['yue'] = $cash_info[$col] + $cash;
- $data['status'] = 1;
- if ($cash_info['fafang'] < $cash) {
- if ($alert) {
- Dever::alert('发放期权价值不足兑付');
- } else {
- return false;
- $data['status'] = 2;
- }
- }
- } elseif ($table == 'zuofei') {
- $data['yue'] = $cash_info[$col] + $cash;
- $data['status'] = 1;
- if ($cash_info['jiaofu'] < $cash) {
- if ($alert) {
- Dever::alert('交付期权价值不足作废');
- } else {
- return false;
- $data['status'] = 2;
- }
- }
- } else {
- $col = 'dai' . $table;
- $data['status'] = 2;
- }
-
- $data['cash'] = $cash;
- $data['desc'] = $desc;
- $data['clear'] = true;
- $admin = Dever::load('manage/auth.info');
- if ($admin && $admin['id']) {
- $data['audit_admin'] = $admin['id'];
- }
-
- $state = Dever::db('option/bill_' . $table)->insert($data);
- if ($state && $cash_info) {
- # 更新余额
- $update = array();
- $update['where_id'] = $cash_info['id'];
- $update['set_cash'] = $cash;
- $update['clear'] = true;
- $method = 'upCash_' . $col;
- if ($table == 'fafang') {
- $update['jiaofu'] = $cash;
- if ($data['status'] == 2) {
- $update['jiaofu'] = 0;
- }
- } elseif ($table == 'duifu') {
- $update['fafang'] = $cash;
- if ($data['status'] == 2) {
- $update['fafang'] = 0;
- }
- } elseif ($table == 'zuofei') {
- $update['jiaofu'] = $cash;
- if ($data['status'] == 2) {
- $update['jiaofu'] = 0;
- }
- } else {
- $update['daijiaofu_date'] = time();
- }
- Dever::db('option/cash')->$method($update);
- }
- }
- return $state;
- }
- return false;
- }
- /**
- * 生成订单号
- *
- * @return mixed
- */
- public function getOrderId($table, $prefix)
- {
- $where['order_num'] = Dever::order($prefix);
- $state = Dever::db('option/bill_' . $table)->one($where);
- if (!$state) {
- return $where['order_num'];
- } else {
- return $this->getOrderId($table, $prefix);
- }
- }
- # 获取日志列表
- public function getList($aid, $table, $status, $name, $audit = false)
- {
- $where = array();
- $where['aid'] = $aid;
- if ($status > 0) {
- $where['status'] = $status;
- }
- if ($audit) {
- $where['audit'] = $audit;
- }
- $type = Dever::input('type');
- if ($type) {
- $where['type'] = $type;
- }
- $table = 'option/bill_' . $table;
- if ($status == 2) {
- $data = Dever::db($table)->select($where);
- } else {
- $data = Dever::db($table)->getData($where);
- }
-
- if ($data) {
- $audit = Dever::db($table)->config['config_audit'];
- foreach ($data as $k => $v) {
- $data[$k] = $this->getOne($v, $name, $audit);
- }
- }
- return $data;
- }
- # 获取日志详情
- public function getView($id, $aid, $table, $name)
- {
- if (!$id) {
- Dever::alert('参数错误');
- }
- $where = array();
- $where['id'] = $id;
- $where['aid'] = $aid;
- $table = 'option/bill_' . $table;
- $data = Dever::db($table)->find($where);
- if ($data) {
- $audit = Dever::db($table)->config['config_audit'];
- $data = $this->getOne($data, $name, $audit);
- }
- return $data;
- }
- # 获取详情
- private function getOne($data, $name, $audit)
- {
- $qiquan = Dever::db('option/company_qiquan')->one($data['type']);
- $data['type_name'] = $qiquan['name'] . $name ;
-
- $data['audit_name'] = $audit[$data['audit']];
- $data['cdate_string'] = date('Y-m-d H:i', $data['cdate']);
- return $data;
- }
- # 确认期权价值 废弃
- /*
- public function setValue_commit($info)
- {
- $cash = array();
- $state = Dever::db('option/bill_jiaofu')->update(array('status' => 1, 'where_id' => $info['id']));
- if ($state) {
- $account_cash = Dever::db('option/cash')->find(array('type' => $info['type'], 'aid' => $info['aid']));
- if ($account_cash) {
- $update['where_id'] = $account_cash['id'];
- $update['daijiaofu'] = $account_cash['daijiaofu'] - $info['cash'];
- $update['jiaofu'] = $account_cash['jiaofu'] + $info['cash'];
- if ($update['daijiaofu'] < 0) {
- $update['daijiaofu'] = 0;
- }
- $update['clear'] = true;
- Dever::db('option/cash')->update($update);
- # 获取待发放数据 对之前发放的数据进行发放
- $fafang = Dever::db('option/bill_fafang')->find(array('status' => 2, 'type' => $info['type'], 'aid' => $info['aid']));
- if ($fafang) {
- foreach ($fafang as $v) {
- if ($info['cash'] >= $v['cash']) {
- Dever::db('option/bill_fafang')->update(array('where_id' => $v['id'], 'status' => 1));
- $info['cash'] -= $v['cash'];
- }
- }
- }
- }
- }
- }
- */
- # 确认期权价值
- public function setValue_commit($info)
- {
- $this->setValue_act($info);
- }
- # 确认期权价值
- public function setValue_act($info)
- {
- $account_cash = Dever::db('option/cash')->select(array('aid' => $info['aid']));
- if ($account_cash) {
- foreach ($account_cash as $k => $v) {
- $cash = Dever::db('option/bill_jiaofu')->getTotal(array('where_end' => $info['jiaofu_date'], 'where_type' => $v['type'], 'where_aid' => $v['aid'], 'where_mid' => $v['mid'], 'where_status' => 2));
- if ($cash && $cash['total'] > 0) {
- $update = array();
- $update['where_id'] = $v['id'];
- $update['daijiaofu'] = $v['daijiaofu'] - $cash['total'];
- $update['jiaofu'] = $v['jiaofu'] + $cash['total'];
- if ($update['daijiaofu'] < 0) {
- $update['daijiaofu'] = 0;
- }
- $update['clear'] = true;
- Dever::db('option/cash')->update($update);
- # 获取待发放数据 对之前发放的数据进行发放
- $fafang = Dever::db('option/bill_fafang')->find(array('status' => 2, 'type' => $v['type'], 'aid' => $v['aid'], 'mid' => $v['mid']));
- if ($fafang) {
- foreach ($fafang as $v1) {
- if ($cash['total'] >= $v1['cash']) {
- Dever::db('option/bill_fafang')->update(array('where_id' => $v['id'], 'status' => 1));
- $cash['total'] -= $v1['cash'];
- }
- }
- }
- Dever::db('option/bill_jiaofu')->upYes(array('where_end' => $info['jiaofu_date'], 'where_aid' => $v['aid'], 'where_mid' => $v['mid'], 'where_type' => $v['type'], 'where_status' => 2, 'set_agreement_id' => $info['id'], 'set_status' => 1, 'set_qdate' => time()));
- }
- }
- }
- }
- # 展示详情
- public function show()
- {
- $id = Dever::input('id');
- $config = Dever::db('bill/cash')->config['set'];
- $info = Dever::db('bill/cash')->one($id);
- $status = $config['status'][$info['status']];
- $type = $config['type'][$info['type']];
- $member = Dever::db('agent/member')->find($info['mid']);
- $company = Dever::db('setting/company')->one($member['company']);
- $level = Dever::db('setting/level')->one($member['level_id']);
- if ($member['shop_id']) {
- $shop = Dever::db('shop/info')->one($member['shop_id']);
- } else {
- $shop['id'] = -1;
- $shop['name'] = '无';
- }
- $cdate = date('Y-m-d H:i', $info['cdate']);
- if ($info['operdate']) {
- $opertime = date('Y-m-d H:i', $info['operdate']);
- } else {
- $opertime = '';
- }
- $result = array();
- $result['代理商信息'] = array
- (
- 'type' => 'info',
- 'content' => array
- (
- array
- (
- array('代理商', $member['name'] . ' ' . $member['mobile']),
- array('代理公司', $company['name'] . ($level ? '('.$level['name'].')' : '')),
- array('所属店铺', $shop['name']),
- ),
- array
- (
- array('资金余额', '¥' . $member['cash'] . '元'),
- //array('直推业绩', '¥' . $member['sell'] . '元'),
- array('团队业绩', '¥' . $member['group_sell'] . '元'),
- ),
- ),
- );
- $result['交易信息'] = array
- (
- 'type' => 'info',
- 'content' => array
- (
- array
- (
- array('流水号', $info['order_num']),
- array('交易时间', $cdate),
- array('交易类型', $type),
- ),
- array
- (
- array('交易金额', '¥' . $info['cash'] . '元'),
- array('交易后账户余额', '¥' . $info['yue'] . '元'),
- array('交易说明', $info['desc']),
- ),
- )
- );
- $result['审核信息'] = array
- (
- 'type' => 'info',
- 'content' => array
- (
- array
- (
- array('审核时间', $opertime),
- array('审核状态', $status),
- array('备注', $info['audit_desc']),
- ),
- )
- );
-
- # 提现信息
- $button = array();
- if ($info['status'] == 1) {
- $button[] = array
- (
- 'type' => 'edit',
- 'link' => Dever::url('project/database/update?project=bill&table=cash&where_id='.$info['id'].'&col=audit,audit_desc&oper_save_jump=cash&oper_table=cash&oper_parent=cash', 'manage'),
- 'name' => '审核',
- );
- }
- if ($info['type'] == 11) {
- $tixian = Dever::db('bill/tixian')->find($info['type_id']);
- if ($tixian) {
- if ($info['status'] == 2 && $tixian['status'] == 1) {
- $button[] = array
- (
- 'type' => 'edit',
- 'link' => Dever::url('project/database/update?project=bill&table=tixian&where_id='.$tixian['id'].'&col=audit,audit_desc,pic&oper_save_jump=tixian&oper_table=tixian&oper_parent=tixian', 'manage'),
- 'name' => '发放',
- );
- }
- $bank = Dever::db('setting/bank')->find($tixian['bank']);
- $result['提现信息'] = array
- (
- 'type' => 'info',
- 'content' => array
- (
- array
- (
- array('银行名称', $bank['name']),
- array('开户行', $tixian['bankname']),
- ),
- array
- (
- array('姓名', $tixian['name']),
- array('卡号', $tixian['card']),
- ),
- )
- );
- if ($tixian['status'] == 2) {
- if ($tixian['operdate']) {
- $opertime = date('Y-m-d H:i', $tixian['operdate']);
- } else {
- $opertime = '';
- }
- $pic = '';
- if ($tixian['pic']) {
- $temp = explode(',', $tixian['pic']);
- foreach ($temp as $k => $v) {
- $pic .= '<a href="'.Dever::pic($v).'" target="_blank"><img src="'.Dever::pic($v).'" width="150" /></a>';
- }
- }
- $result['发放信息'] = array
- (
- 'type' => 'info',
- 'content' => array
- (
- array
- (
- array('发放时间', $opertime),
- array('备注', $tixian['audit_desc']),
- ),
- array
- (
- array('凭证', $pic),
- ),
- )
- );
- }
-
- }
- }
- $head = array
- (
- 'name' => '基本信息',
- 'btn' => $button,
- );
- $html = Dever::show($head, $result);
- return $html;
- }
- }
|