|
@@ -0,0 +1,395 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Shop\Lib;
|
|
|
+
|
|
|
+use Dever;
|
|
|
+
|
|
|
+class Money
|
|
|
+{
|
|
|
+ # 查看用户信息
|
|
|
+ public function showUser($uid)
|
|
|
+ {
|
|
|
+ $user = Dever::db('passport/user')->one($uid);
|
|
|
+
|
|
|
+ return $user['username'] . '<br />' . $user['mobile'];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getCash($id)
|
|
|
+ {
|
|
|
+ $info = Dever::db('shop/user_money')->find($id);
|
|
|
+ $cdate = date('Y-m-d H:i',$info['cdate']);
|
|
|
+ $odate = '';
|
|
|
+ if ($info['operdate']) {
|
|
|
+ $odate = date('Y-m-d H:i',$info['operdate']);
|
|
|
+ }
|
|
|
+ return $info['cash'] . '<br />' . $info['yue'];
|
|
|
+ }
|
|
|
+
|
|
|
+ # 发起支付
|
|
|
+ public function pay($uid, $cash)
|
|
|
+ {
|
|
|
+ $openid = false;
|
|
|
+ if ($uid > 0) {
|
|
|
+ $wechat = Dever::db('passport/wechat')->one(array('uid' => $uid, 'type' => 1, 'system_id' => 1));
|
|
|
+
|
|
|
+ if (!$wechat) {
|
|
|
+ Dever::alert('错误的用户信息');
|
|
|
+ }
|
|
|
+
|
|
|
+ $openid = $wechat['openid'];
|
|
|
+ }
|
|
|
+ $param = array
|
|
|
+ (
|
|
|
+ 'project_id' => 5,
|
|
|
+ 'channel_id' => 1,
|
|
|
+ 'system_source' => 5,
|
|
|
+ 'account_id' => 5,
|
|
|
+ 'uid' => $uid,
|
|
|
+ 'name' => '用户充值',
|
|
|
+ 'openid' => $openid,
|
|
|
+ 'cash' => $cash,
|
|
|
+ 'product_id' => $uid,
|
|
|
+ 'refer' => '',
|
|
|
+ );
|
|
|
+
|
|
|
+ $result = Dever::load('pay/api.pay', $param);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ # 支付成功回调 安全加密 设置token
|
|
|
+ public function success_secure_api_token()
|
|
|
+ {
|
|
|
+ $project_id = Dever::input('pay_project_id');
|
|
|
+ $info = Dever::db('pay/project')->one($project_id);
|
|
|
+ if ($info) {
|
|
|
+ return $info['key'];
|
|
|
+ }
|
|
|
+ return 'cash_buy_dever_2020';
|
|
|
+ }
|
|
|
+
|
|
|
+ # 支付成功回调 安全加密
|
|
|
+ public function success_secure_api($param = array())
|
|
|
+ {
|
|
|
+ $this->success($param);
|
|
|
+ }
|
|
|
+
|
|
|
+ # 支付成功回调
|
|
|
+ public function success($param = array())
|
|
|
+ {
|
|
|
+ $send = $param ? $param : Dever::preInput('pay_');
|
|
|
+ $product_id = $send['pay_product_id'];
|
|
|
+ $order_id = $send['pay_order_id'];
|
|
|
+ $status = $send['pay_status'];
|
|
|
+ $cash = $send['pay_cash'];
|
|
|
+ $msg = $send['pay_msg'];
|
|
|
+ if ($status == 2) {
|
|
|
+ $this->up($product_id, 1, $cash, $send['pay_id'], '充值', 2);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 'ok';
|
|
|
+ }
|
|
|
+
|
|
|
+ public function up($uid, $type, $cash, $type_id, $desc, $status)
|
|
|
+ {
|
|
|
+ if ($cash == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $user = Dever::db('passport/user')->find(array('id' => $uid, 'clear' => true));
|
|
|
+ if ($user) {
|
|
|
+ $where['uid'] = $uid;
|
|
|
+ if ($type == 11) {
|
|
|
+ $cash = -1*$cash;
|
|
|
+ }
|
|
|
+ $where['type'] = $type;
|
|
|
+ $where['type_id'] = $type_id;
|
|
|
+ $where['clear'] = true;
|
|
|
+ $info = Dever::db('shop/user_money')->find($where);
|
|
|
+ if (!$info) {
|
|
|
+ $data = $where;
|
|
|
+ $data['order_num'] = $this->getOrderId();
|
|
|
+ $data['yue'] = $user['cash'] + $cash;
|
|
|
+ $data['cash'] = $cash;
|
|
|
+ $data['desc'] = $desc;
|
|
|
+ $data['status'] = $status;
|
|
|
+ if ($status == 2) {
|
|
|
+ $data['operdate'] = time();
|
|
|
+ }
|
|
|
+
|
|
|
+ $update['where_id'] = $uid;
|
|
|
+ $update['set_cash'] = $cash;
|
|
|
+ //$update['clear'] = true;
|
|
|
+ Dever::db('passport/user')->upCash($update);
|
|
|
+ return Dever::db('shop/user_money')->insert($data);
|
|
|
+ }
|
|
|
+ return $info['id'];
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成订单号
|
|
|
+ *
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
+ public function getOrderId()
|
|
|
+ {
|
|
|
+ $where['order_num'] = Dever::order('UM');
|
|
|
+ $where['clear'] = true;
|
|
|
+ $state = Dever::db('shop/user_money')->one($where);
|
|
|
+ if (!$state) {
|
|
|
+ return $where['order_num'];
|
|
|
+ } else {
|
|
|
+ return $this->getOrderId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ # 展示详情
|
|
|
+ public function show()
|
|
|
+ {
|
|
|
+ $id = Dever::input('id');
|
|
|
+
|
|
|
+ $config = Dever::db('shop/user_money')->config['set'];
|
|
|
+
|
|
|
+ $info = Dever::db('shop/user_money')->one($id);
|
|
|
+
|
|
|
+ $status = $config['status'][$info['status']];
|
|
|
+
|
|
|
+ $type = $config['type'][$info['type']];
|
|
|
+
|
|
|
+ $user = Dever::db('passport/user')->find($info['uid']);
|
|
|
+
|
|
|
+ $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('昵称', $user['username']),
|
|
|
+ array('手机号', $user['mobile']),
|
|
|
+ array('资金余额', '¥' . $member['cash'] . '元'),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+
|
|
|
+ $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 (Dever::load('manage/auth')->checkFunc('bill.tixian', 'edit', '审核')) {
|
|
|
+ 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) {
|
|
|
+ $config = Dever::db('bill/tixian')->config['set'];
|
|
|
+ $status = $config['status'][$tixian['status']];
|
|
|
+
|
|
|
+ if (Dever::load('manage/auth')->checkFunc('bill.tixian', 'edit1', '发放')) {
|
|
|
+ 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']) {
|
|
|
+ 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('发放状态', $status),
|
|
|
+ array('备注', $tixian['audit_desc']),
|
|
|
+ ),
|
|
|
+ array
|
|
|
+ (
|
|
|
+ array('凭证', $pic),
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $button[] = array
|
|
|
+ (
|
|
|
+ 'type' => 'link',
|
|
|
+ 'link' => 'refer',
|
|
|
+ 'name' => '返回上一页',
|
|
|
+ );
|
|
|
+ $head = array
|
|
|
+ (
|
|
|
+ 'name' => '基本信息',
|
|
|
+ 'btn' => $button,
|
|
|
+ );
|
|
|
+ $html = Dever::show($head, $result);
|
|
|
+
|
|
|
+ return $html;
|
|
|
+ }
|
|
|
+ public function order_num($id){
|
|
|
+ $info = Dever::db('shop/user_money')->find($id);
|
|
|
+ $cdate = date('Y-m-d H:i',$info['cdate']);
|
|
|
+ $odate = '';
|
|
|
+ if ($info['operdate']) {
|
|
|
+ $odate = date('Y-m-d H:i',$info['operdate']);
|
|
|
+ }
|
|
|
+ $html['num'] = $cdate . '<br/>'.$odate;
|
|
|
+ $html['cash'] = $info['cash'] . '<br />' . $info['yue'];
|
|
|
+ return $html;
|
|
|
+ }
|
|
|
+ #钱包管理数据导出
|
|
|
+ public function out_cash_api($data){
|
|
|
+ $header = array('邀请码', '姓名', '手机号', '身份证号', '代理角色', '代理商区域', '代理费', '审核时间', '直推收入', '团队收入', '管理员备注');
|
|
|
+ $body = array();
|
|
|
+ foreach($data as $k =>$v){
|
|
|
+ $arr[] = Dever::db('agent/member')->find(array('id'=>$v['mid']));
|
|
|
+ foreach($arr as $k1=>$v1){
|
|
|
+ if($v['mid'] == $v1['id']){
|
|
|
+ $arr[$k1]['operdate'] = $v['operdate'];
|
|
|
+ $arr[$k1]['audit_desc'] = $v['audit_desc'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $member = array();
|
|
|
+ $arr=array_unique($arr, SORT_REGULAR);
|
|
|
+ $rest=array();
|
|
|
+ foreach($arr as $k=>$v){
|
|
|
+ $rest[$v['id']]=$v;
|
|
|
+ }
|
|
|
+ $member=array_values($rest);
|
|
|
+ foreach($member as $k => $v){
|
|
|
+ $code = Dever::load("invite/api.code", $v['id']);
|
|
|
+ $role = Dever::db('setting/role')->find(array('id'=>$v['role']));
|
|
|
+ $area = Dever::load("area/api.string", $v['area']);
|
|
|
+ $order = Dever::db('agent/order')->state(array('mid'=>$v['id']));
|
|
|
+ $zhitui = Dever::db('shop/user_money')->state(array('mid'=>$v['id'],'type'=>1));
|
|
|
+ $total = 0;
|
|
|
+ foreach($zhitui as $key => $val){
|
|
|
+ $total += $val['cash'];
|
|
|
+ }
|
|
|
+ $tuandui = Dever::db('shop/user_money')->state(array('mid'=>$v['id'],'type'=>2));
|
|
|
+ $tuan = 0;
|
|
|
+ foreach($tuandui as $t){
|
|
|
+ $tuan += $t['cash'];
|
|
|
+ }
|
|
|
+ $sum = 0;
|
|
|
+ foreach($order as $k1 => $v1){
|
|
|
+ $sum += $v1['agent_cash'];
|
|
|
+ }
|
|
|
+ $operdate = '';
|
|
|
+ if($v['operdate']){
|
|
|
+ $operdate = date('Y-m-d',$v['operdate']);
|
|
|
+ }
|
|
|
+ $d = array
|
|
|
+ (
|
|
|
+ $code,
|
|
|
+ $v['name'],
|
|
|
+ $v['mobile'],
|
|
|
+ $v['idcard'],
|
|
|
+ $role['name'],
|
|
|
+ $area,
|
|
|
+ $sum,
|
|
|
+ $operdate,
|
|
|
+ $total,
|
|
|
+ $tuan,
|
|
|
+ $v['audit_desc'],
|
|
|
+ );
|
|
|
+ $body[] = $d;
|
|
|
+ }
|
|
|
+ $file = Dever::input('excel_name');
|
|
|
+ return Dever::excelExport($body, $header, $file);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|