where($where)->order('cashId desc')->paginate()->toArray(); } /** * 申请提现 */ public function drawMoney(){ $userId = (int)session('WST_USER.userId'); $money = (float)input('money'); $accId = (float)input('accId'); $payPwd = input('payPwd'); $decrypt_data = WSTRSA($payPwd); if($decrypt_data['status']==1){ $payPwd = $decrypt_data['data']; }else{ return WSTReturn('提现申请失败'); } $limitMoney = (float)WSTConf('CONF.drawCashUserLimit'); if($money<$limitMoney)return WSTReturn('提取金额必须大于或等于¥'.$limitMoney.'方可提现'); if($payPwd=='')return WSTReturn('支付密码不能为空'); //加载提现账号信息 $acc = Db::name('cash_configs')->alias('cc') ->join('__BANKS__ b','cc.accTargetId=b.bankId')->where(['cc.dataFlag'=>1,'id'=>$accId]) ->field('b.bankName,cc.*')->find(); if(empty($acc))return WSTReturn('提现账号不存在'); $areas = model('areas')->getParentNames($acc['accAreaId']); //加载用户 $user = model('users')->get($userId); $userMoney = $user->userMoney; $rechargeMoney = $user->rechargeMoney; $payPwd = md5($payPwd.$user->loginSecret); if($payPwd!=$user->payPwd)return WSTReturn('支付密码错误'); if($money>($userMoney-$rechargeMoney))return WSTReturn('提取金额不能大于用户可提现金额'); //减去要提取的金额 $user->userMoney = $user->userMoney-$money; $user->lockMoney = $user->lockMoney+$money; Db::startTrans(); try{ $result = $user->save(); if(false !==$result){ //创建提现记录 $data = []; $data['targetType'] = 0; $data['targetId'] = $userId; $data['money'] = $money; $data['accType'] = 3; $data['accTargetName'] = $acc['bankName']; $data['accAreaName'] = implode('',$areas); $data['accNo'] = $acc['accNo']; $data['accUser'] = $acc['accUser']; $data['cashSatus'] = 0; $data['cashConfigId'] = $accId; $data['createTime'] = date('Y-m-d H:i:s'); $data['cashNo'] = ''; $this->save($data); $this->cashNo = $this->cashId.(fmod($this->cashId,7)); $this->save(); //判断是否需要发送管理员短信 $tpl = WSTMsgTemplates('PHONE_ADMIN_CASH_DRAWS'); if((int)WSTConf('CONF.smsOpen')==1 && (int)WSTConf('CONF.smsCashDrawsTip')==1 && $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['CASH_NO'=>$this->cashNo]]; $staffs = Db::name('staffs')->where(['staffId'=>['in',explode(',',WSTConf('CONF.cashDrawsTipUsers'))],'staffStatus'=>1,'dataFlag'=>1])->field('staffPhone')->select(); for($i=0;$isendAdminSMS(0,$staffs[$i]['staffPhone'],$params,'drawMoney',''); } } //微信消息 if((int)WSTConf('CONF.wxenabled')==1){ //判断是否需要发送给管理员消息 if((int)WSTConf('CONF.wxCashDrawsTip')==1){ $params = []; $params['CASH_NO'] = $this->cashNo; $params['LOGIN_NAME'] = session('WST_USER.loginName'); $params['MONEY'] = $money; $params['CASH_TIME'] = date('Y-m-d H:i:s'); WSTWxBatchMessage(['CODE'=>'WX_ADMIN_CASH_DRAW','userType'=>3,'userId'=>explode(',',WSTConf('CONF.cashDrawsTipUsers')),'params'=>$params]); } } Db::commit(); return WSTReturn('提现申请成功,请留意系统信息',1); } }catch (\Exception $e) { Db::rollback();errLog($e); return WSTReturn('提现申请失败',-1); } } //旺旺券提现 public function drawWangByShop(){ $shopId = (int)session('WST_USER.shopId'); $userId = (int)session('WST_USER.userId'); $money = (float)input('money'); $payPwd = input('payPwd'); $limitMoney = (float)WSTConf('CONF.drawCashShopLimit'); if($money<$limitMoney)return WSTReturn('提取金额必须大于或等于¥'.$limitMoney.'方可提现'); if($payPwd=='')return WSTReturn('操作密码不能为空'); $shops = model('shops')->get($shopId); //加载用户 $user = model('users')->get($userId); $payPwd = md5($payPwd.$user->loginSecret); if($payPwd!=$user->payPwd)return WSTReturn('操作密码错误'); if($money>$user->wangNum)return WSTReturn('提取金额不能大于商家的售物券额'); //减去要提取的金额 $user->wangNum = $user->wangNum-$money; Db::startTrans(); try{ $result = $user->save(); if(false !==$result){ $money = round($money - (dataConf('drawWangScale')*0.01),2);//产品券手续费 //创建提现记录 $data = []; $data['targetType'] = 1; $data['targetId'] = $shopId; $data['money'] = $money; $data['accType'] = 3; $data['accTargetName'] = $shops['bankName']; $data['accAreaName'] = ''; $data['accNo'] = $shops['bankNo']; $data['accUser'] = $shops['accountName']; $data['cashSatus'] = 0; $data['cashConfigId'] = 0; $data['createTime'] = date('Y-m-d H:i:s'); $data['cashNo'] = ''; $this->save($data); $this->cashNo = $this->cashId.(fmod($this->cashId,7)); $this->save(); //判断是否需要发送管理员短信 $tpl = WSTMsgTemplates('PHONE_ADMIN_CASH_DRAWS'); if((int)WSTConf('CONF.smsOpen')==1 && (int)WSTConf('CONF.smsCashDrawsTip')==1 && $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['CASH_NO'=>$this->cashNo]]; $staffs = Db::name('staffs')->where(['staffId'=>['in',explode(',',WSTConf('CONF.cashDrawsTipUsers'))],'staffStatus'=>1,'dataFlag'=>1])->field('staffPhone')->select(); for($i=0;$isendAdminSMS(0,$staffs[$i]['staffPhone'],$params,'drawMoney',''); } } //微信消息 if((int)WSTConf('CONF.wxenabled')==1){ //判断是否需要发送给管理员消息 if((int)WSTConf('CONF.wxCashDrawsTip')==1){ $params = []; $params['CASH_NO'] = $this->cashNo; $params['LOGIN_NAME'] = session('WST_USER.loginName'); $params['MONEY'] = $money; $params['CASH_TIME'] = date('Y-m-d H:i:s'); WSTWxBatchMessage(['CODE'=>'WX_ADMIN_CASH_DRAW','userType'=>3,'userId'=>explode(',',WSTConf('CONF.cashDrawsTipUsers')),'params'=>$params]); } } Db::commit(); return WSTReturn('提现申请成功,请留意系统信息',1); } }catch (\Exception $e) { Db::rollback();errLog($e); return WSTReturn('提现申请失败',-1); } } public function drawMoneyByShop(){ $shopId = (int)session('WST_USER.shopId'); $userId = (int)session('WST_USER.userId'); $money = (float)input('money'); $accId = (float)input('accId'); $payPwd = input('payPwd'); $decrypt_data = WSTRSA($payPwd); if($decrypt_data['status']==1){ $payPwd = $decrypt_data['data']; }else{ return WSTReturn('提现申请失败'); } $limitMoney = (float)WSTConf('CONF.drawCashShopLimit'); if($money<$limitMoney)return WSTReturn('提取金额必须大于或等于¥'.$limitMoney.'方可提现'); if($payPwd=='')return WSTReturn('支付密码不能为空'); $shops = model('shops')->get($shopId); $shopMoney = $shops->shopMoney; $rechargeMoney = $shops->rechargeMoney; $areas = model('areas')->getParentNames($shops->bankAreaId); $bank = model('banks')->get($shops->bankId); //加载用户 $user = model('users')->get($userId); $payPwd = md5($payPwd.$user->loginSecret); if($payPwd!=$user->payPwd)return WSTReturn('支付密码错误'); if($money>($shopMoney-$rechargeMoney))return WSTReturn('提取金额不能大于商家的可提现金额'); //减去要提取的金额 $shops->shopMoney = $shops->shopMoney-$money; $shops->lockMoney = $shops->lockMoney+$money; Db::startTrans(); try{ $result = $shops->save(); if(false !==$result){ //创建提现记录 $data = []; $data['targetType'] = 1; $data['targetId'] = $shopId; $data['money'] = $money; $data['accType'] = 3; $data['accTargetName'] = $bank['bankName']; $data['accAreaName'] = implode('',$areas); $data['accNo'] = $shops['bankNo']; $data['accUser'] = $shops['bankUserName']; $data['cashSatus'] = 0; $data['cashConfigId'] = 0; $data['createTime'] = date('Y-m-d H:i:s'); $data['cashNo'] = ''; $this->save($data); $this->cashNo = $this->cashId.(fmod($this->cashId,7)); $this->save(); //判断是否需要发送管理员短信 $tpl = WSTMsgTemplates('PHONE_ADMIN_CASH_DRAWS'); if((int)WSTConf('CONF.smsOpen')==1 && (int)WSTConf('CONF.smsCashDrawsTip')==1 && $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['CASH_NO'=>$this->cashNo]]; $staffs = Db::name('staffs')->where(['staffId'=>['in',explode(',',WSTConf('CONF.cashDrawsTipUsers'))],'staffStatus'=>1,'dataFlag'=>1])->field('staffPhone')->select(); for($i=0;$isendAdminSMS(0,$staffs[$i]['staffPhone'],$params,'drawMoney',''); } } //微信消息 if((int)WSTConf('CONF.wxenabled')==1){ //判断是否需要发送给管理员消息 if((int)WSTConf('CONF.wxCashDrawsTip')==1){ $params = []; $params['CASH_NO'] = $this->cashNo; $params['LOGIN_NAME'] = session('WST_USER.loginName'); $params['MONEY'] = $money; $params['CASH_TIME'] = date('Y-m-d H:i:s'); WSTWxBatchMessage(['CODE'=>'WX_ADMIN_CASH_DRAW','userType'=>3,'userId'=>explode(',',WSTConf('CONF.cashDrawsTipUsers')),'params'=>$params]); } } Db::commit(); return WSTReturn('提现申请成功,请留意系统信息',1); } }catch (\Exception $e) { Db::rollback();errLog($e); return WSTReturn('提现申请失败',-1); } } }