|
|
@@ -38,6 +38,7 @@ class PartnerTools{
|
|
|
"order_calc"=>"子级用户消费分佣",
|
|
|
"partner_calc"=>"子级合伙人收益分佣",
|
|
|
"cash_balance"=>"合伙人余额提现",
|
|
|
+ "cash_no_balance"=>"提现驳回返还余额",
|
|
|
];
|
|
|
|
|
|
|
|
|
@@ -601,12 +602,21 @@ class PartnerTools{
|
|
|
* @param type $type 0返回标题数组,1范围完整数组
|
|
|
* @return type
|
|
|
*/
|
|
|
- public static function getBankType($type=0){
|
|
|
+ public static function getBankType($type=0,$title=""){
|
|
|
$data = [
|
|
|
["title"=>"支付宝","code"=>"alipay","icon"=>"ibonumidd17","addefault"=>"支付宝"],
|
|
|
["title"=>"微信钱包","code"=>"wxpay","icon"=>"ibonweixinzhifu","addefault"=>"微信"],
|
|
|
["title"=>"银行卡","code"=>"bank","icon"=>"ibonyinhangqia","addefault"=>""],
|
|
|
];
|
|
|
+
|
|
|
+ if(!empty($title)){
|
|
|
+ foreach($data as $k=>$v){
|
|
|
+ if($v["title"]==$title){
|
|
|
+ return $v;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return [];
|
|
|
+ }
|
|
|
if($type==1){
|
|
|
return $data;
|
|
|
}
|
|
|
@@ -641,6 +651,10 @@ class PartnerTools{
|
|
|
if(!in_array($data["bank_type"], self::getBankType())){
|
|
|
return ["code"=>-1,"msg"=>"提现方式不存在"];
|
|
|
}
|
|
|
+ $bankTypeData = self::getBankType(1, $data["bank_type"]);
|
|
|
+ if(empty($bankTypeData)){
|
|
|
+ return ["code"=>-1,"msg"=>"提现方式不存在"];
|
|
|
+ }
|
|
|
if(!is_numeric($data["money"])){
|
|
|
return ["code"=>-1,"msg"=>"提现金额错误"];
|
|
|
}
|
|
|
@@ -657,16 +671,17 @@ class PartnerTools{
|
|
|
}
|
|
|
$nowTime = time();
|
|
|
$save=[
|
|
|
- "customer_id"=>$partnerData["customerId"],
|
|
|
- "user_center_id"=>$partnerData["userCenterId"],
|
|
|
- "partner_id" => $partnerData["id"],
|
|
|
- "bank_type" => $data["bank_type"],
|
|
|
- "bank_name" => $data["bank_name"],
|
|
|
- "bank_num" => $data["bank_num"],
|
|
|
- "bank_ad" => $data["bank_ad"],
|
|
|
- "money" => $data["money"],
|
|
|
- "status" => 0,
|
|
|
- "time" => $nowTime
|
|
|
+ "customer_id" => $partnerData["customerId"],
|
|
|
+ "user_center_id" => $partnerData["userCenterId"],
|
|
|
+ "partner_id" => $partnerData["id"],
|
|
|
+ "bank_type" => $data["bank_type"],
|
|
|
+ "bank_type_code" => $bankTypeData["code"],
|
|
|
+ "bank_name" => $data["bank_name"],
|
|
|
+ "bank_num" => $data["bank_num"],
|
|
|
+ "bank_ad" => $data["bank_ad"],
|
|
|
+ "money" => $data["money"],
|
|
|
+ "status" => 0,
|
|
|
+ "time" => $nowTime
|
|
|
];
|
|
|
|
|
|
try{
|
|
|
@@ -894,10 +909,20 @@ class PartnerTools{
|
|
|
. "left join {$userCenterTableName} u on u.id = p.user_center_id "
|
|
|
. "left join {$customerTableName} c on c.id = p.customer_id ";
|
|
|
|
|
|
- $whereSql = ' where p.id>0 ';
|
|
|
+ $whereSql = ' where 1=1 ';
|
|
|
if(isset($params['search'])){
|
|
|
$whereSql .= ' and (u.mobile like "%'.$params['search'].'%" or c.name like "%'.$params['search'].'%") ';
|
|
|
}
|
|
|
+ if(isset($params['status'])){
|
|
|
+ $whereSql .= ' and p.status = '.$params['status'];
|
|
|
+ }
|
|
|
+ if(!empty($params['bank_type_code'])){
|
|
|
+ $whereSql .= " and p.bank_type_code = '{$params['bank_type_code']}'";
|
|
|
+ }
|
|
|
+ if(!empty($params['start_time']) && !empty($params['end_time'])){
|
|
|
+ $whereSql .= " and p.time >= {$params['start_time']} and p.time < {$params['end_time']}";
|
|
|
+ }
|
|
|
+
|
|
|
$orderSql = ' order by p.id desc ';
|
|
|
$limitSql = ' limit '.$params['offset'].','.$params['limit'];
|
|
|
$querySql = $sql.$whereSql.$orderSql.$limitSql;
|
|
|
@@ -917,6 +942,111 @@ class PartnerTools{
|
|
|
return ['data'=>$data,'total'=>($total) ? intval($total) : 0];
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 提现处理
|
|
|
+ * @param type $id
|
|
|
+ * @param type $mono
|
|
|
+ * @param type $type
|
|
|
+ */
|
|
|
+ public function partnerCashAudit($id,$mono,$type,$audit_id=0){
|
|
|
+ if(empty($id)|| empty($mono) || empty($type) || !in_array($type, [1,-1])){
|
|
|
+ return ["code"=>-1,"msg"=>"参数错误"];
|
|
|
+ }
|
|
|
+
|
|
|
+ //频繁操作限制
|
|
|
+ $key = "partnerCashDealCache_".$id.'::'.$this->enterpriseId;
|
|
|
+ $result = $this->cache->get($key);
|
|
|
+ if(!empty($result)){
|
|
|
+ return ["code"=>-1,"msg"=>"处理中,请耐心等待!"];
|
|
|
+ }
|
|
|
+ $this->cache->set($key,1,5);
|
|
|
+ $where = ["id"=>$id,"status"=>0];
|
|
|
+ $data = $this->dbNewCommissionCash->get($where);
|
|
|
+ if(empty($data)){
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"数据不存在"];
|
|
|
+ }
|
|
|
+ //合伙人账户信息
|
|
|
+ $partnerData = $this->dbNewCommissionPartner->get(["id"=>$data["partner_id"]]);
|
|
|
+ if(empty($partnerData)){
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"合伙人账户不存在"];
|
|
|
+ }
|
|
|
+ //打款成功
|
|
|
+ if($type==1){
|
|
|
+ $res = $this->dbNewCommissionCash->update([
|
|
|
+ "status"=>1,
|
|
|
+ "audit_time"=>time(),
|
|
|
+ "audti_mono"=>$mono,
|
|
|
+ "audit_id"=>$audit_id
|
|
|
+ ], $where);
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ if(empty($res )){
|
|
|
+ return ["code"=>-1,"msg"=>"系统繁忙,请稍后重试!"];
|
|
|
+ }
|
|
|
+ return ["code"=>1,"msg"=>"处理完成"];
|
|
|
+ }
|
|
|
+ //审核驳回
|
|
|
+ try{
|
|
|
+ $this->dbNewCommissionCash->beginTransaction();
|
|
|
+ $res = $this->dbNewCommissionCash->update([
|
|
|
+ "status"=>-1,
|
|
|
+ "audit_time"=>time(),
|
|
|
+ "audti_mono"=>$mono,
|
|
|
+ "audit_id"=>$audit_id
|
|
|
+ ], $where);
|
|
|
+ if(empty($res)){
|
|
|
+ $this->dbNewCommissionCash->rollBack();
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"操作失败001!"];
|
|
|
+ }
|
|
|
+ //添加账户余额明细记录
|
|
|
+ $dres = $this->dbNewCommissionBalanceDetail->insert([
|
|
|
+ "type"=>1,
|
|
|
+ "title"=>"提现驳回返还余额",
|
|
|
+ "code"=>"cash_no_balance",
|
|
|
+ "money"=>$data["money"],
|
|
|
+ "content"=>"提现驳回返还余额:".$mono,
|
|
|
+ "admin_id"=>$audit_id,
|
|
|
+ "customer_id"=>$partnerData["customerId"],
|
|
|
+ "partner_id"=>$partnerData["id"],
|
|
|
+ "user_center_id"=>$partnerData["userCenterId"],
|
|
|
+ "cash_id"=>$data["id"],
|
|
|
+ "old_balance"=>$partnerData["balance"],
|
|
|
+ "now_balance"=>$partnerData["balance"]+$data["money"],
|
|
|
+ "time"=>time(),
|
|
|
+ "expand"=>"",
|
|
|
+ "detail_id"=>0,
|
|
|
+ ]);
|
|
|
+ if(empty($dres)){
|
|
|
+ $this->dbNewCommissionCash->rollBack();
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"操作失败002!"];
|
|
|
+ }
|
|
|
+ //更新账户数据
|
|
|
+ $withdrawRes = $this->dbNewCommissionPartner->set_dec("withdraw", ["id"=>$partnerData["id"]], $data["money"]);
|
|
|
+ if(empty($withdrawRes)){
|
|
|
+ $this->dbNewCommissionCash->rollBack();
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"操作失败003"];
|
|
|
+ }
|
|
|
+ $balanceRes = $this->dbNewCommissionPartner->set_inc("balance", ["id"=>$partnerData["id"]], $data["money"]);
|
|
|
+ if(empty($balanceRes)){
|
|
|
+ $this->dbNewCommissionCash->rollBack();
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"操作失败004"];
|
|
|
+ }
|
|
|
+ //提交事务
|
|
|
+ $this->dbNewCommissionCash->commit();
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>1,"msg"=>"提现申请处理成功!"];
|
|
|
+ } catch (\Exception $e){
|
|
|
+ $this->dbNewCommissionCash->rollBack();
|
|
|
+ $this->cache->set($key,null);
|
|
|
+ return ["code"=>-1,"msg"=>"系统繁忙,请稍后重试!"];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|