intval($subSystem), ":mobile"=>trim($phone), )); if(empty($baseUser)) throw new GeneralException("","没有定位到此phone的登录用户记录!"); $bizTrader=pdo_fetch("select bt.*,bu.id as buid,bu.mobile,bu.subsystem from biz_trader bt left join base_user bu on bu.id=bt.base_userid where bt.base_userid=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"])); if(empty($bizTrader)) throw new GeneralException("","没有定位到此phone的业务用户记录!"); base_verifyForendToken($baseUser); //前端会话TOKEN校验 return array("baseUser" => $baseUser, "bizTrader" => $bizTrader); } function bizTrader2_verifyToken(){ $subSystem=intval(SUBSYS_CAPITAL2_MINA); $GPC=input_param_handle(false); $ajaxdata = input_getPostObj(); $phone=isset($ajaxdata["phone"])?$ajaxdata["phone"]:$GPC["phone"]; if(!empty($phone)){ $baseUser=pdo_fetch("select * from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;",array( ":subsystem"=>intval($subSystem), ":mobile"=>trim($phone), )); if(empty($baseUser)) throw new GeneralException("","没有定位到此phone的登录用户记录!"); }else{ $openid=isset($ajaxdata["openid"])?$ajaxdata["openid"]:$GPC["openid"]; if(empty($openid)) throw new GeneralException("","没有传递必要的phone/openid参数"); $wxParams = bizwx_fetchWxParams($subSystem); $mina_appid=$wxParams["mina_appid"]; $baseUser=pdo_fetch("select * from base_user where subsystem=:subsystem and `wxmina_appid`=:wxmina_appid and `wxmina_openid`=:wxmina_openid limit 1;",array( ":subsystem"=>intval($subSystem), ":wxmina_appid"=>trim($mina_appid), ":wxmina_openid"=>trim($openid), )); if(empty($baseUser)) throw new GeneralException("","没有定位到此openid的登录用户记录!"); } base_verifyForendToken($baseUser); //前端会话TOKEN校验 $bizTrader2=pdo_fetch("select bt.*,bu.id as buid,bu.mobile from biz_trader2 bt left join base_user bu on bu.id=bt.base_userid where bt.base_userid=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"])); if(empty($bizTrader2)) throw new GeneralException("","没有定位到此phone的业务用户记录!"); return array("baseUser" => $baseUser, "bizTrader2" => $bizTrader2); } function bizTrader2_verifyRecuritDelegate($bizTrader2, $recuritId){ $delegate = pdo_fetch("select * from biz_recruit_delegate brd where brd.biz_recruitid=:biz_recruitid and brd.biz_trader2id=:biz_trader2id and brd.finish_datetime>:verify_datetime", array( ":biz_recruitid" => intval($recuritId), ":biz_trader2id" => intval($bizTrader2["id"]), ":verify_datetime" => strtotime("+5minute"), )); if(empty($delegate)) throw new GeneralException("","您对此招聘活动没有委托管理权,或授权已过期!"); } function bizTrader2_getRecuritDelegate($recuritId){ $delegateList = pdo_fetchall("select brd.*,btr.title as recuritTitle,bt.company_name from biz_recruit_delegate brd left join biz_trader_recruit btr on btr.id=brd.biz_recruitid left join biz_trader bt on bt.id=btr.biz_traderid where brd.biz_recruitid=:biz_recruitid and brd.finish_datetime>:verify_datetime", array( ":biz_recruitid" => intval($recuritId), ":verify_datetime" => strtotime("-0 second"), )); if(count($delegateList)>0){ if (count($delegateList) > 1) throw new GeneralException("", "此招聘活动怎么出现了同时多个委托项呢!"); return $delegateList[0]; } return null; } /**********************商家信息相关逻辑**************************************/ function bizbase_traderEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser; switch($handleMode){ case "fetchByPlater": case "fetchByTrader": case "fetchByTrader2": case "fetchByWorker": if(!empty($bizTrader)) $traderId = $bizTrader["id"]; else $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"]; $sqlTemp = " select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid "; $sqlTemp .=" ,(select ifnull(avg(result_level),0) from biz_appraisal bapr where bapr.biz_catalog=1 and bapr.toerid=bt.id ) as trader_appraisal_avg "; $sqlTemp .= " from biz_trader bt"; $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid"; $sqlTemp .= " where bt.id=:bizUserId limit 1;"; $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId)); if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!"); $bizTrader["regtime"]=date("Y-m-d",$bizTrader["createtime"]); $bizTrader["trader_appraisal_avg"]=round($bizTrader["trader_appraisal_avg"],1); $accountInfo=bizbase_traderAccountInfo($bizTrader); foreach ($accountInfo as $key => $value) $bizTrader["finance_".$key] = $value; $statistics=bizbase_traderStatistics($bizTrader); foreach ($statistics as $key => $value) $bizTrader["ss_".$key] = $value; $uodoList=bizbase_traderUndoList($bizTrader); foreach ($uodoList as $key => $value) $bizTrader["ss_".$key] = $value; $bizTrader["breakTotal0"]=0; $bizTrader["breakTotal1"]=0; $bizTrader["breakTotal2"]=0; $bizTrader["breakTotal3"]=0; $breakSS = pdo_fetchall("select `catalog`,count(*) as count from biz_trader_breaklaw where biz_traderid=" . intval($traderId)." group by `catalog` "); foreach($breakSS as $item) $bizTrader["breakTotal".intval($item["catalog"])]=intval($item["total"]); $bizTrader["blocked"] = intval($bizTrader["hanging"])==4?"1":"0"; $bizTrader["blockedName"] = intval($bizTrader["blocked"]) <= 0 ? "非黑名单" : "黑名单"; return $bizTrader; break; case "blackhandle": $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"]; $sqlTemp = "select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid"; $sqlTemp .= " from biz_trader bt"; $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid"; $sqlTemp .= " where bt.id=:bizUserId limit 1;"; $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId)); if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!"); $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"]; switch(trim($todo)){ case "set": if(intval($bizTrader["hanging"])>=4) throw new GeneralException("", "已是黑名单状态了啊,请核查!"); $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime,`hanging`=4,remark=concat(:remark,ifnull(remark,'')) where id=:id;"; $backdata = pdo_query($sqlTemp, array( ":nowtime" => time(), ":id" => intval($bizTrader["id"]), ":remark"=>"[".date("Y-m-d H:i:s",time())."] 设置为黑名单 {$reason} \n")); return $backdata; break; case "reset": if(intval($bizTrader["hanging"])<4) throw new GeneralException("", "当前处于非黑名单状态,请核查!"); $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime,`hanging`=0,remark=concat(:remark,ifnull(remark,'')) where id=:id;"; $backdata = pdo_query($sqlTemp, array( ":nowtime" => time(), ":id" => intval($bizTrader["id"]), ":remark"=>"[".date("Y-m-d H:i:s",time())."] 取消黑名单 {$reason} \n")); return $backdata; break; default:throw new GeneralException("", "不支持的todo"); } break; case "certifConfirmed": $traderId = isset($ajaxdata["traderId"]) ? $ajaxdata["traderId"] : $GPC["traderId"]; $sqlTemp = "select bt.*,bu.mobile as bu_mobile,bu.subsystem as subsystem,bu.wxapp_appid,bu.wxapp_openid,bu.wxmina_appid,bu.wxmina_openid"; $sqlTemp .= " from biz_trader bt"; $sqlTemp .= " left join base_user bu on bu.id =bt.base_userid"; $sqlTemp .= " where bt.id=:bizUserId limit 1;"; $bizTrader = pdo_fetch($sqlTemp, array(":bizUserId" => $traderId)); if(empty($bizTrader)) throw new GeneralException("", "没有传递必要的traderId参数或没有对应的记录,请核查!"); $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"]; $operatorName=empty($baseUser["login_name"])?"":"由".$baseUser["login_name"].""; switch(trim($todo)){ case "setPerson": if(intval($bizTrader["certif_confirmed"])>0) throw new GeneralException("", "已是实名确认状态了啊,请核查!"); if(empty($bizTrader["lawer_idcard"])) throw new GeneralException("", "此商家还未提交【身份证】个人商家实名认证所需信息,请核查!"); $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=1,remark=concat(:remark,ifnull(remark,'')) where id=:id;"; $backdata = pdo_query($sqlTemp, array( ":nowtime" => time(), ":id" => intval($bizTrader["id"]), ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}设置为个人实名确认 {$reason} \n")); return $backdata; break; case "setEnterprise": if(intval($bizTrader["certif_confirmed"])>1) throw new GeneralException("", "已是企业实名确认状态了啊,请核查!"); if(empty($bizTrader["bizlicense_pic"])) throw new GeneralException("", "此商家还未提交【营业执照】企业商家实名认证所需信息,请核查!"); if(intval($bizTrader["catalog"])>0){ $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=2,remark=concat(:remark,ifnull(remark,'')) where id=:id;"; $backdata = pdo_query($sqlTemp, array( ":nowtime" => time(), ":id" => intval($bizTrader["id"]), ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}设置为企业实名确认 {$reason} \n")); return $backdata; }else{ $freeCountAdd=5; $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime,catalog=1,`certif_confirmed`=2,freecount=ifnull(freecount,0)+:freecount,remark=concat(:remark,ifnull(remark,'')) where id=:id;"; $backdata = pdo_query($sqlTemp, array( ":nowtime" => time(), ":id" => intval($bizTrader["id"]), ":freecount" => $freeCountAdd, ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}确认由个人转为企业商家,并给其新增【{$freeCountAdd}次】免费次数 {$reason} \n")); return $backdata; } break; case "reset": if(intval($bizTrader["certif_confirmed"])<=0) throw new GeneralException("", "当前处于非实名确认状态,请核查!"); $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime,`certif_confirmed`=0,remark=concat(:remark,ifnull(remark,'')) where id=:id;"; $backdata = pdo_query($sqlTemp, array( ":nowtime" => time(), ":id" => intval($bizTrader["id"]), ":remark"=>"[".date("Y-m-d H:i:s",time())."] {$operatorName}取消实名确认 {$reason} \n")); return $backdata; break; default:throw new GeneralException("", "不支持的todo"); } break; case "wxRecharge": $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"]; if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数"); $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"]; $money = round(floatval($money), 2); if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了"); $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_traderid"]=$bizTrader["id"]; $sqlParam[":biz_roletype"]=0; $sqlParam[":biz_userid"]=$bizTrader["id"]; $sqlParam[":type"]=0;//收支类型:0-收入;1-支出; $sqlParam[":money"]=$money; //收入:0-次数支付;1-支付工单; $sqlParam[":biz_catalog"] = 2; //微信支付充值 $sqlParam[":biz_id"] = 0; $sqlParam[":remark"] = "商家直接微信支付充值"; $sqlTemp=""; $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime"; $sqlTemp.=" ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid "; $sqlTemp.=" ,type=:type, `money`=:money"; $sqlTemp.=" ,biz_catalog=:biz_catalog, biz_id=:biz_id "; $sqlTemp.=" ,`status`=0, remark=:remark;";//统一固定的工单支付ID,避免重复支付 增加一个paytag $sqlTemp.=" update biz_trader_account set biz_idtag=concat('WXCG',id,'EE',paytag) where id=LAST_INSERT_ID();"; $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID();"; $dataset = pdo_query3($sqlTemp, $sqlParam); $bizInfo= $dataset[count($dataset)-1][0]; if (empty($bizInfo)) throw new GeneralException("", "构建预支付订单异常"); $payBizCatalog = 2; //微信支付充值 $payBizId = $bizInfo["id"]; $payScene = "JSAPI"; $prePayArgs = array( "payBackBizCatalog" => $payBizCatalog, "payBackBizId" => $payBizId, "payScene" => $payScene, ); require_once WEB_PHY_ROOT."/base/wxsrv.php"; $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA); $wxmina_appid = $resObj["wxmina_appid"]; $wxmina_openid = $resObj["openid"]; $bizArgs=array( "minaCode"=>$minaCode, "bizInfo"=>$bizInfo, "handleMode"=>$handleMode, "bizUser"=>$bizUser, "wxmina_appid"=>$wxmina_appid, "wxmina_openid"=>$wxmina_openid, ); $prePayInfo=bizbase_traderPayCore($prePayArgs, $bizArgs); //不会出现重复订单 $prePayInfo =array_merge($prePayArgs, $prePayInfo); return array( "prePayInfo" => $prePayInfo, ); break; case "transferToTrader2": $remark = isset($ajaxdata["remark"]) ? $ajaxdata["remark"] : $GPC["remark"]; $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"]; $money = round(floatval($money), 2); if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了"); $trader2Id = isset($ajaxdata["trader2Id"]) ? $ajaxdata["trader2Id"] : $GPC["trader2Id"]; if (intval($trader2Id) <= 0) throw new GeneralException("", "没有传递必要的trader2Id参数"); $delegateInfo = pdo_fetch("select brd.*,btr.title as recuritTitle,bt.company_name from biz_recruit_delegate brd left join biz_trader_recruit btr on btr.id=brd.biz_recruitid left join biz_trader bt on bt.id=btr.biz_traderid where brd.biz_trader2id=:biz_trader2id and btr.biz_traderid=:biz_traderid and brd.finish_datetime>:verify_datetime limit 1", array( ":biz_traderid" => intval($bizTrader["id"]), ":biz_trader2id" => intval($trader2Id), ":verify_datetime" => strtotime("0 second"), )); if (empty($delegateInfo)) throw new GeneralException("", "传递的现场经理与您商家没有任何授权关系啊!"); $backdata = pdo_fetch("select (sum(case when bta.type=0 then ifnull(money,0) else 0 end)- sum(case when bta.type=1 then ifnull(money,0) else 0 end)) as money_balance from biz_trader_account bta where bta.deleted=0 and bta.biz_traderid=:biz_traderid and bta.`biz_roletype`=:money_roletype and bta.biz_userid=:money_userid and bta.`status`=1",array( ":biz_traderid"=>intval($bizTrader["id"]), ":money_userid"=>intval($bizTrader["id"]), ":money_roletype"=>0, )); $money_balance = round(floatval($backdata["money_balance"]), 2); if ($money_balance < $money) throw new GeneralException("NoEnough", array( "errMsg"=>"账户余额已不足以转帐", "balance"=>$money_balance, )); $sqlParam = array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_traderid"]=intval($bizTrader["id"]); $sqlParam[":biz_trader2id"]=intval($trader2Id); $sqlParam[":money"] = $money; $sqlParam[":bizremark"]="[" . date("Y-m-d H:i:s", time()) . "] 转帐 {$remark} \n"; $sqlTemp=""; $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, `biz_roletype`, `biz_userid`, remark )"; $sqlTemp.=" select :biz_traderid , :nowtime , 1 , :money, 1, 4 , 0, 0, :biz_traderid, :bizremark from dual where 1=1;"; $sqlTemp.=" set @first_id=LAST_INSERT_ID();"; $sqlTemp.=" insert into biz_trader_account ( `biz_traderid`, `createtime`,`type`, `money`, `status`, `biz_catalog`, `biz_id`, `biz_roletype`, `biz_userid`, remark )"; $sqlTemp.=" select :biz_traderid , :nowtime , 0 , :money, 1, 3 , @first_id, 1, :biz_trader2id, :bizremark from dual where 1=1;"; $sqlTemp.=" update biz_trader_account set `biz_id`=LAST_INSERT_ID() where id=@first_id;"; $dataset=pdo_query3($sqlTemp,$sqlParam); return $dataset; break; case "adjustLevel": $becomeVip = isset($ajaxdata["becomeVip"]) ? $ajaxdata["becomeVip"] : $GPC["becomeVip"]; $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $traderIds = isset($ajaxdata["traderIds"]) ? $ajaxdata["traderIds"] : $GPC["traderIds"]; $idSet=array(); foreach($traderIds as $item){ array_push($idSet,intval($item)); } if (count($idSet)<=0) throw new GeneralException("", "没有传递必要的traderIds参数"); $idSet = implode(",", $idSet); $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":trader_level"]=(intval($becomeVip)<=0?0:1); if($sqlParam[":trader_level"]<=0){ $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 取消vip身份 $reason \n"; }else{ $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 设为vip身份 $reason \n"; } $sqlTemp=""; $sqlTemp.=" update biz_trader "; $sqlTemp.=" set updatetime=:nowtime,trader_level=:trader_level,remark=concat(:remark,ifnull(remark,'')) "; $sqlTemp.=" where id in ({$idSet});"; $backdata=pdo_query3($sqlTemp,$sqlParam); return $backdata; break; case "idCardCheck": $trueName = isset($ajaxdata["trueName"]) ? $ajaxdata["trueName"] : $GPC["trueName"]; $idCard = isset($ajaxdata["idCard"]) ? $ajaxdata["idCard"] : $GPC["idCard"]; if(empty($bizTrader)) throw new GeneralException("", "没有以商家身份登录,请核查!"); require_once WEB_PHY_ROOT."/base/wxsrv.php"; txcloud_idcardCheck($trueName,$idCard); $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":traderId"]=intval($bizTrader["id"]); $sqlParam[":lawer_name"]=$trueName; $sqlParam[":lawer_idcard"]=$idCard; $sqlParam[":linker_gender"]=((intval(mb_substr($idCard,17,1)) % 2)<=0?1:0); $sqlParam[":linker_birthday"]=strtotime(mb_substr($idCard,6,4)."-".mb_substr($idCard,10,2)."-".mb_substr($idCard,12,2)); $sqlParam[":remark"]="[".date("Y-m-d H:i:s",time())."] 实名认证 \n"; $sqlTemp=""; $sqlTemp.=" update biz_trader set updatetime=:nowtime "; $sqlTemp.=" ,lawer_name=:lawer_name,lawer_idcard=:lawer_idcard "; $sqlTemp.=" ,linker_gender=:linker_gender,linker_birthday=:linker_birthday "; $sqlTemp.=" ,remark=concat(:remark,ifnull(remark,'')) "; $sqlTemp.=" where id =:traderId;"; $backdata=pdo_query3($sqlTemp,$sqlParam); return $backdata; break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_traderPayCore($prePayArgs, $bizArgs){ require_once WEB_PHY_ROOT."/base/wxsrv.php"; $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){ $minaCode = $bizArgs["minaCode"]; $bizInfo = $bizArgs["bizInfo"]; $handleMode = $bizArgs["handleMode"]; $bizUser = $bizArgs["bizUser"]; $wxmina_appid = $bizArgs["wxmina_appid"]; $wxmina_openid = $bizArgs["wxmina_openid"]; //--------------------------------------- $payTotal = round(floatval($bizInfo["money"]), 2); if ($payTotal <= 0) throw new GeneralException("", "金额竟然小于等于0"); $payTotal = $payTotal * 100;//转为分 //--------------------------------------- $sqlParam=array(); $sqlParam[":id"]=intval($bizInfo["id"]); $sqlParam[":wxmina_appid"]=$wxmina_appid; $sqlParam[":wxmina_openid"]=$wxmina_openid; $sqlTemp=" update biz_trader_account set"; $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid "; $sqlTemp.=" where id=:id; "; $dataset = pdo_query3($sqlTemp, $sqlParam); //--------------------------------------- $prePayInfo= array(); $prePayInfo["appid"]=$wxmina_appid; $prePayInfo["mchId"]=WeiXinPay_mchId; $prePayInfo["mch_paykeyV2"]=WeiXinPay_apiKey; $prePayInfo["mch_paykeyV3"]=WeiXinPay_apiKeyV3; $prePayInfo["out_trade_no"]=$bizInfo["biz_idtag"]; $prePayInfo["total"]="{$payTotal}"; $prePayInfo["description"]="商家充值支付业务"; $prePayInfo["openid"]=$wxmina_openid; return $prePayInfo; }); return $prePayInfo; } function bizbase_traderAccountInfo($bizTrader){ $sqlTemp=""; $sqlTemp.=" select type,sum(ifnull(money,0)) as total "; $sqlTemp.=" from biz_trader_account "; $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and `deleted`=0 and `status`=1"; $sqlTemp.=" group by type"; $totalList = pdo_fetchall($sqlTemp, array()); $income=0.0; $outgoing=0.0; foreach($totalList as $item){ switch(intval($item["type"])){ case 0://收入 $income = round(floatval($item["total"]), 2); break; case 1://支出 $outgoing = round(floatval($item["total"]), 2); break; } } $balance = round(floatval($income - $outgoing),2); $frozenIn=0.0;//解冻总额 $frozenOut=0.0;//冻结总额 $frozenBalance=0.0;//冻结余额,即当前实际冻结的金额 $sqlTemp=""; $sqlTemp.=" select biz_catalog,sum(ifnull(money,0)) as total "; $sqlTemp.=" from biz_trader_account "; $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and type=0 and `deleted`=0 and `status`=1 "; $sqlTemp.=" group by biz_catalog "; $outlist = pdo_fetchall($sqlTemp, array()); $numIncome=0.0; $feeIncome=0.0; $wxcharge=0.0; $transferin=0.0; foreach($outlist as $item){ switch(intval($item["biz_catalog"])){ case 0://次数支付 $numIncome = round(floatval($item["total"]), 2); break; case 1://支付工单 $feeIncome = round(floatval($item["total"]), 2); break; case 2://微信支付充值; $wxcharge = round(floatval($item["total"]), 2); break; case 3://转帐收入 $transferin = round(floatval($item["total"]), 2); break; case 6://工单费用解冻 $frozenIn = round(floatval($item["total"]), 2); break; } } $sqlTemp=""; $sqlTemp.=" select biz_catalog,sum(ifnull(money,0)) as total "; $sqlTemp.=" from biz_trader_account "; $sqlTemp.=" where biz_roletype=0 and biz_traderid=".intval($bizTrader["id"])." and type=1 and `deleted`=0 and `status`=1 "; $sqlTemp.=" group by biz_catalog "; $outlist = pdo_fetchall($sqlTemp, array()); $numOutgoing=0.0; $platfetch=0.0; $commissionout=0.0; $salaryout=0.0; $transferout=0.0; $withdrawout=0.0; foreach($outlist as $item){ switch(intval($item["biz_catalog"])){ case 0://次数支出 $numOutgoing = round(floatval($item["total"]), 2); break; case 1://工单平台分成支出 $platfetch = round(floatval($item["total"]), 2); break; case 2://工单佣金支出 $commissionout = round(floatval($item["total"]), 2); break; case 3://工单工资支出 $salaryout = round(floatval($item["total"]), 2); break; case 4://转帐支出 $transferout = round(floatval($item["total"]), 2); break; case 5://提现支出 $withdrawout = round(floatval($item["total"]), 2); break; case 6://工单整体支出 $withdrawout = round(floatval($item["total"]), 2); break; case 7://平台代支付工单 $withdrawout = round(floatval($item["total"]), 2); break; case 8://冻结工单费用 $frozenOut = round(floatval($item["total"]), 2); break; } } $frozenBalance=$frozenOut-$frozenIn;//冻结余额,即当前实际冻结的金额 //------------------------------------------------------------------------------- $numaccountInfo=pdo_fetchall("select type,ifnull(sum(ifnull(count,0)),0) as total from biz_trader_numaccount where `deleted`=0 and `status`=1 and biz_traderid=".intval($bizTrader["id"])." group by type"); $numtotalIncome = 0; $numtotalOutgoing = 0; foreach($numaccountInfo as $item){ switch(intval($item["type"])){ case 0: $numtotalIncome = intval($item["total"]); break; case 1: $numtotalOutgoing = intval($item["total"]); break; } } $numtotalbalance = $numtotalIncome-$numtotalOutgoing; //$recuritRule = bizbase_fetchBaseConfig("RecuritRule",true); $freeCount = intval($bizTrader["freecount"]); $freeCount = $freeCount <= 0 ? 0 : $freeCount; $freecount_used=intval($bizTrader["freecount_used"]); $freecount_used = $freecount_used <= 0 ? 0 : $freecount_used; $canUseFreeCount = $freeCount - $freecount_used; return array( "balance" => $balance, "income" => $income, "outgoing" => $outgoing, "numIncome" => $numIncome, "feeIncome" => $feeIncome, "wxcharge" => $wxcharge, "transferin" => $transferin, "numOutgoing" => $numOutgoing, "platfetch" => $platfetch, "commissionout" => $commissionout, "salaryout" => $salaryout, "transferout" => $transferout, "withdrawout" => $withdrawout, "numtotalIncome" => $numtotalIncome, "numtotalOutgoing" => $numtotalOutgoing, "numtotalbalance" => $numtotalbalance, "numFreeCount" => $canUseFreeCount, "frozenBalance"=>$frozenBalance, ); } function bizbase_traderStatistics($bizTrader){ $sqlTemp=""; $sqlTemp.=" select count(*) as recuritTotal"; $sqlTemp.=" ,ifnull(sum(case when `status`>=1 then need_total else 0 end),0) as need_total"; $sqlTemp.=" ,ifnull(sum(case when `status`=-1 then 1 else 0 end),0) as refuseTotal"; $sqlTemp.=" ,ifnull(sum(case when `status`=1 then 1 else 0 end),0) as unauditedTotal"; $sqlTemp.=" ,ifnull(sum(case when `status`>=1 then 1 else 0 end),0) as auditedTotal"; $sqlTemp.=" ,ifnull(sum(case when `status`>=2 then 1 else 0 end),0) as auditedTotal2"; $sqlTemp.=" from biz_trader_recruit btr "; $sqlTemp.=" where btr.biz_traderid=".intval($bizTrader["id"]).";"; $totalInfo = pdo_fetch($sqlTemp, array()); $recuritTotal=intval($totalInfo["recuritTotal"]); //$need_total=pdo_fetchcolumn("select ifnull(sum(need_total),0) from biz_trader_recruit where biz_traderid=".intval($bizTrader["id"])." and `status`>=1"); $need_total=intval($totalInfo["need_total"]); $refuseTotal=intval($totalInfo["refuseTotal"]); $unauditedTotal=intval($totalInfo["unauditedTotal"]); $auditedTotal=intval($totalInfo["auditedTotal"]); $auditedTotal2=intval($totalInfo["auditedTotal2"]); $sqlTemp=""; $sqlTemp.=" select sum(workTotal) as workTotal, sum(enrollUnauditTotal) as enrollUnauditTotal, sum(enrollTotal) as enrollTotal "; $sqlTemp.=" ,sum(waitSettledTotal) as waitSettledTotal,sum(settledTotal) as settledTotal "; $sqlTemp.=" ,sum(exceptTotal) as exceptTotal "; $sqlTemp.=" ,sum(refuseTotal) as refuseTotal,sum(breakoffTotal) as breakoffTotal "; $sqlTemp.=" ,sum(cancelTotal) as cancelTotal,sum(cancel2Total) as cancel2Total,sum(denypayTotal) as denypayTotal "; $sqlTemp.=" ,sum(noStartWorkTotal) as noStartWorkTotal,sum(noFinishWorkTotal) as noFinishWorkTotal "; $unreadStatusMin=-8; $unreadStatusMax=5; $unreadStatusPrefix="unreadWKTotal"; for($iii=$unreadStatusMin;$iii<=$unreadStatusMax;$iii++){ $iiiExt=$iii<0?"_".abs($iii):$iii; $alias="{$unreadStatusPrefix}{$iiiExt}"; $sqlTemp.=" ,sum({$alias}) as {$alias} "; } $sqlTemp.=" from (select sum(case when tdwk.id>0 then 1 else 0 end) as workTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`>=2 then 1 else 0 end) as enrollTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=1 then 1 else 0 end) as enrollUnauditTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=4 then 1 else 0 end) as waitSettledTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=5 then 1 else 0 end) as settledTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`<0 then 1 else 0 end) as exceptTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=-1 then 1 else 0 end) as refuseTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=-3 then 1 else 0 end) as breakoffTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=-2 then 1 else 0 end) as cancelTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=-4 then 1 else 0 end) as cancel2Total "; $sqlTemp.=" ,sum(case when (tdwk.`status`=-5 or tdwk.`status`=-8) then 1 else 0 end) as denypayTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=-6 then 1 else 0 end) as noStartWorkTotal "; $sqlTemp.=" ,sum(case when tdwk.`status`=-7 then 1 else 0 end) as noFinishWorkTotal "; for($iii=$unreadStatusMin;$iii<=$unreadStatusMax;$iii++){ $iiiExt=$iii<0?"_".abs($iii):$iii; $alias="{$unreadStatusPrefix}{$iiiExt}"; $sqlTemp.=" ,sum(case when (tdwk.`status`={$iii} and !FIND_IN_SET(tdwk.`status`, tdwk.trader_readed)) then 1 else 0 end) as {$alias} "; } $sqlTemp.=" from biz_todowork tdwk "; $sqlTemp.=" inner join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid "; $sqlTemp.=" where btr.biz_traderid=".intval($bizTrader["id"]); $sqlTemp.=" group by tdwk.biz_recruitid"; $sqlTemp.=" ) as temp;"; $totalInfo = pdo_fetch($sqlTemp, array()); $workTotal=intval($totalInfo["workTotal"]); $enrollUnauditTotal=intval($totalInfo["enrollUnauditTotal"]); $enrollTotal=intval($totalInfo["enrollTotal"]); $waitSettledTotal=intval($totalInfo["waitSettledTotal"]); $settledTotal=intval($totalInfo["settledTotal"]); $backdata=array( "recuritTotal" => $recuritTotal, "need_total" => $need_total, "refuseTotal" => $refuseTotal, "unauditedTotal" => $unauditedTotal, "auditedTotal" => $auditedTotal, "auditedTotal2" => $auditedTotal2, "workTotal" => $workTotal, "enrollUnauditTotal" => $enrollUnauditTotal, "enrollTotal" => $enrollTotal, "waitSettledTotal" => $waitSettledTotal, "settledTotal" => $settledTotal, "exceptTotal" => intval($totalInfo["exceptTotal"]), "refuseTotal" => intval($totalInfo["refuseTotal"]), "breakoffTotal" => intval($totalInfo["breakoffTotal"]), "cancelTotal" => intval($totalInfo["cancelTotal"]), "cancel2Total" => intval($totalInfo["cancel2Total"]), "denypayTotal" => intval($totalInfo["denypayTotal"]), "noStartWorkTotal" => intval($totalInfo["noStartWorkTotal"]), "noFinishWorkTotal" => intval($totalInfo["noFinishWorkTotal"]), "othersTotal" => intval($totalInfo["noStartWorkTotal"])+intval($totalInfo["noFinishWorkTotal"]), "exceptTotal2" => intval($totalInfo["refuseTotal"])+intval($totalInfo["breakoffTotal"]) +intval($totalInfo["cancelTotal"])+intval($totalInfo["cancel2Total"])+intval($totalInfo["denypayTotal"]), ); $aliasALL="{$unreadStatusPrefix}_ALL"; $backdata[$aliasALL]=0; $aliasOther="{$unreadStatusPrefix}_Other"; $backdata[$aliasOther]=0; for($iii=$unreadStatusMin;$iii<$unreadStatusMax;$iii++){ $iiiExt=$iii<0?"_".abs($iii):$iii; $alias="{$unreadStatusPrefix}{$iiiExt}"; $backdata[$alias]=intval($totalInfo[$alias]); if($iii<0) $backdata[$aliasALL]+=intval($totalInfo[$alias]); if($iii==-6) $backdata[$aliasOther]+=intval($totalInfo[$alias]); if($iii==-7) $backdata[$aliasOther]+=intval($totalInfo[$alias]); } $backdata["{$unreadStatusPrefix}_5"]=intval($backdata["{$unreadStatusPrefix}_5"])+intval($backdata["{$unreadStatusPrefix}_8"]); return $backdata; } function bizbase_traderUndoList($bizTrader){ $backdata=array(); $backdata["notice_unreaded"]=intval(pdo_fetchcolumn("select count(*) from biz_pubic_notice bpn left join biz_basetrace bbt on bbt.deleted=0 and bbt.biz_catalog=1 and bbt.biz_id=bpn.id and bbt.biz_usertype=1 and bbt.biz_userid=".intval($bizTrader["id"])." where bpn.deleted=0 and bpn.catalog=2 and ifnull(bbt.id,0)<=0;")); $backdata["recurited_unreaded"]=intval(pdo_fetchcolumn("select count(*) from biz_trader_recruit btr left join biz_basetrace bbt on bbt.deleted=0 and bbt.biz_catalog=2 and bbt.biz_id=btr.id and bbt.biz_usertype=1 and bbt.biz_userid=".intval($bizTrader["id"])." where btr.deleted=0 and btr.biz_traderid=".intval($bizTrader["id"])." and btr.`status`=2 and ifnull(bbt.id,0)<=0;")); return $backdata; } function bizbase_traderAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser; switch($handleMode){ case "fetchall": $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)){ case 1: $orderby=" order by recruit_auditedtotal desc "; break; case 2: $orderby=" order by recruit_needtotal desc "; break; case 3: $orderby=" order by charge_total desc "; break; case 4: $orderby=" order by work_excepttotal desc "; break; default: $orderby=" order by bt.id desc "; break; } $sqlParam=array(); $sqlBody=""; $queryBreak=" and 1=1 "; //查询处理 $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"]; if (empty($query) && !is_array($query)){//验证一下query信息集 $query=" and 1=1 "; }else{ $queryNew=" and 1=1 "; foreach($query as $fdName=>$fdValue){ if(empty($fdName) || empty($fdValue)) continue; switch($fdName){ case "need_operate": if($fdValue == 1){ $queryNew .=" and (lawer_idcard != '' and ((catalog = '0' and (certif_confirmed = '0' or (certif_confirmed = '1' && company_idcard !=''))) or (catalog = '1' and certif_confirmed = '0')))"; } break; case "companyName": $paramName = ":qy_companyName"; $queryNew .=" and (bt.company_name like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "lawerIdcard": $paramName = ":qy_lawer_idcard"; $queryNew .=" and (bt.lawer_idcard like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "companyIdcard": $paramName = ":qy_company_idcard"; $queryNew .=" and (bt.company_idcard like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "mobile": $paramName = ":qy_mobile"; $queryNew .=" and (bu.mobile like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "regtime": $paramName111 = ":qy_regtime111"; $paramName222 = ":qy_regtime222"; $sqlParam[$paramName111] = strtotime($fdValue); $sqlParam[$paramName222] = strtotime(date("Y-m-d 23:59:59",strtotime($fdValue))); $queryNew .=" and ( bt.createtime >= {$paramName111} and bt.createtime <= {$paramName222} ) "; break; case "stoped": switch(intval($fdValue)){ case 1: $queryNew .=" and ( bt.hanging<=1 || ((bt.hanging=2 or bt.hanging=3) and bt.hanging_endtime<".time()." )) "; break; case 2: $queryNew .=" and ( bt.hanging=4 || ((bt.hanging=2 or bt.hanging=3) and bt.hanging_endtime>=".time()." )) "; break; } break; case "blocked": // if (intval($fdValue) > 0){ // $queryNew .=" and bt.blocked=".(intval($fdValue)-1); // } // 阿东修改上面注释是原来的代码 if (intval($fdValue) > 0){ if($fdValue == 1){ $queryNew .=" and bt.hanging = 0"; }elseif ($fdValue == 2){ $queryNew .=" and bt.hanging = 4"; } } break; case "debted": switch(intval($fdValue)){ case 1: $queryNew .=" and ( select ifnull(sum((case when type=0 then ifnull(money,0) when type=1 then -ifnull(money,0) else 0 end)),0) as total from biz_trader_account where biz_roletype=0 and biz_traderid=bt.id and `deleted`=0 and `status`=1 )>=0 "; break; case 2: $queryNew .=" and ( select ifnull(sum((case when type=0 then ifnull(money,0) when type=1 then -ifnull(money,0) else 0 end)),0) as total from biz_trader_account where biz_roletype=0 and biz_traderid=bt.id and `deleted`=0 and `status`=1 )<0 "; break; } break; case "breakType": if (intval($fdValue) > 0){ $queryBreak .= " and catalog=" . (intval($fdValue) - 1); $queryNew .=" and (select count(*) from biz_trader_breaklaw where biz_traderid=bt.id $queryBreak )>0 "; } break; case "statusCode": $queryNew .= " and bt.status =" . (intval($fdValue) - 1) . " "; break; case "catalog": $queryNew .= " and bt.catalog =" . (intval($fdValue) - 1) . " "; break; case "certif_confirmed": $queryNew .= " and bt.certif_confirmed =" . (intval($fdValue) - 1) . " "; break; case "upgrade_unaudit": $queryNew .= " and bt.catalog=0 and bt.certif_confirmed=1 and bt.bizlicense_pic<>'' "; break; } } $query=$queryNew; } //构建sql串 $sqlBody.=" from biz_trader as bt "; $sqlBody.=" left join base_user bu on bu.id=bt.base_userid "; $sqlBody.=" where 1=1 and bt.`deleted`=0 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch=" select bt.*,bu.mobile as bu_mobile "; $sqlFetch.=" ,(select count(*) from biz_trader_breaklaw where biz_traderid=bt.id $queryBreak ) as break_total "; $sqlFetch.=" ,(select count(*) from biz_trader_recruit where biz_traderid=bt.id and `status`>=1 ) as recruit_auditedtotal "; $sqlFetch.=" ,(select ifnull(sum(need_total),0) from biz_trader_recruit where biz_traderid=bt.id and `status`>=1 ) as recruit_needtotal "; $sqlFetch.=" ,(select ifnull(sum(money),0) from biz_trader_account where deleted=0 and `status`=1 and biz_traderid=bt.id and type=0 and biz_catalog=2 ) as charge_total "; $sqlFetch.=" ,(select count(*) from biz_todowork tdwk inner join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid where btr.biz_traderid=bt.id and tdwk.`status`<0 ) as work_excepttotal "; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); foreach($pageData as &$item){ $item["regtime"]=date("Y-m-d",$item["createtime"]); $accountInfo=bizbase_traderAccountInfo($item); foreach ($accountInfo as $key => $value) $item["finance_".$key] = $value; $statistics=bizbase_traderStatistics($item); foreach ($statistics as $key => $value) $item["ss_".$key] = $value; } $sqlSummary=" select count(*) as count ".$sqlBody; $sumData=pdo_fetch($sqlSummary,$sqlParam); return array( "pageData" => $pageData, "count" => intval($sumData["count"]), ); break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************现场经理信息相关逻辑**************************************/ function bizbase_trader2EntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser; switch($handleMode){ case "wxRecharge": $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"]; if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数"); $bizTraderId = isset($ajaxdata["bizTraderId"]) ? $ajaxdata["bizTraderId"] : $GPC["bizTraderId"]; if (intval($bizTraderId) <= 0) throw new GeneralException("", "没有传递必要的bizTraderId参数"); $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"]; $money = round(floatval($money), 2); if ($money <= 0) throw new GeneralException("", "没有传递必要的money参数或小于等于0了"); $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_traderid"]=$bizTraderId; $sqlParam[":biz_roletype"]=1; $sqlParam[":biz_userid"]=$bizTrader2["id"]; $sqlParam[":type"]=0;//收支类型:0-收入;1-支出; $sqlParam[":money"]=$money; //收入:0-次数支付;1-支付工单; $sqlParam[":biz_catalog"] = 2; //微信支付充值 $sqlParam[":biz_id"] = 0; $sqlParam[":remark"] = "现场经理直接微信支付充值"; $sqlTemp=""; $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime"; $sqlTemp.=" ,biz_traderid=:biz_traderid, biz_roletype=:biz_roletype, biz_userid=:biz_userid "; $sqlTemp.=" ,type=:type, `money`=:money"; $sqlTemp.=" ,biz_catalog=:biz_catalog, biz_id=:biz_id "; $sqlTemp.=" ,`status`=0, remark=:remark;";//统一固定的工单支付ID,避免重复支付 增加一个paytag $sqlTemp.=" update biz_trader_account set biz_idtag=concat('WXCGX',id,'EE',paytag) where id=LAST_INSERT_ID();"; $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID();"; $dataset = pdo_query3($sqlTemp, $sqlParam); $bizInfo= $dataset[count($dataset)-1][0]; if (empty($bizInfo)) throw new GeneralException("", "构建预支付订单异常"); $payBizCatalog = 2; //微信支付充值 $payBizId = $bizInfo["id"]; $payScene = "JSAPI"; $prePayArgs = array( "payBackBizCatalog" => $payBizCatalog, "payBackBizId" => $payBizId, "payScene" => $payScene, ); require_once WEB_PHY_ROOT."/base/wxsrv.php"; $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA); $wxmina_appid = $resObj["wxmina_appid"]; $wxmina_openid = $resObj["openid"]; $bizArgs=array( "minaCode"=>$minaCode, "bizInfo"=>$bizInfo, "handleMode"=>$handleMode, "bizUser"=>$bizUser, "wxmina_appid"=>$wxmina_appid, "wxmina_openid"=>$wxmina_openid, ); $prePayInfo=bizbase_traderPayCore($prePayArgs, $bizArgs); //不会出现重复订单 $prePayInfo =array_merge($prePayArgs, $prePayInfo); return array( "prePayInfo" => $prePayInfo, ); break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_trader2PayCore($prePayArgs, $bizArgs){ require_once WEB_PHY_ROOT."/base/wxsrv.php"; $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){ $minaCode = $bizArgs["minaCode"]; $bizInfo = $bizArgs["bizInfo"]; $handleMode = $bizArgs["handleMode"]; $bizUser = $bizArgs["bizUser"]; $wxmina_appid = $bizArgs["wxmina_appid"]; $wxmina_openid = $bizArgs["wxmina_openid"]; //--------------------------------------- $payTotal = round(floatval($bizInfo["money"]), 2); if ($payTotal <= 0) throw new GeneralException("", "金额竟然小于等于0"); $payTotal = $payTotal * 100;//转为分 //--------------------------------------- $sqlParam=array(); $sqlParam[":id"]=intval($bizInfo["id"]); $sqlParam[":wxmina_appid"]=$wxmina_appid; $sqlParam[":wxmina_openid"]=$wxmina_openid; $sqlTemp=" update biz_trader_account set"; $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid "; $sqlTemp.=" where id=:id; "; $dataset = pdo_query3($sqlTemp, $sqlParam); //--------------------------------------- $prePayInfo= array(); $prePayInfo["appid"]=$wxmina_appid; $prePayInfo["mchId"]=WeiXinPay_mchId; $prePayInfo["mch_paykeyV2"]=WeiXinPay_apiKey; $prePayInfo["mch_paykeyV3"]=WeiXinPay_apiKeyV3; $prePayInfo["out_trade_no"]=$bizInfo["biz_idtag"]; $prePayInfo["total"]="{$payTotal}"; $prePayInfo["description"]="现场经理充值支付业务"; $prePayInfo["openid"]=$wxmina_openid; return $prePayInfo; }); return $prePayInfo; } function bizbase_trader2FieldTrans($fromSubSystem,$direct,$data){ if($direct=="FtoB"){//前端到后端数据转换 //throw new GeneralException("", "平台侧没有更新商户信息的权限!"); }else{//后端到前端数据转换 $data["linker_gender"] = (intval($data["linker_gender"]) < 0) ?"":(intval($data["linker_gender"]) == 0 ? "男" : "女"); $data["createtime"] = date("Y-m-d",$data["createtime"]); } return $data; } function bizbase_trader2StatusName($statusCode){ switch(intval($statusCode)){ case 0: $statusName="待提交"; break; case 1: $statusName="待审核"; break; case 2: $statusName="已审核"; break; case 3: $statusName="被驳回"; break; default: throw new GeneralException("", "商家信息的状态码不正确!!"); } return $statusName; } function bizbase_trader2AboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser; switch($handleMode){ case "fetchallByPlater": case "fetchallByTrader": $sqlParam=array(); $verifyTime=0; //查询处理 $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"]; if (empty($query) && !is_array($query)){//验证一下query信息集 $query=" and 1=1 "; }else{ $queryNew=" and 1=1 "; foreach($query as $fdName=>$fdValue){ if(empty($fdName) || empty($fdValue)) continue; switch($fdName){ case "memberName": if(empty(trim($fdValue))) continue; $paramName = ":qy_truename"; $queryNew .=" and (bt2.true_name like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "verifyTime": $verifyTime = strtotime($fdValue); break; } } $query=$queryNew; } if(!empty($bizTrader)){ $query .= " and (select count(*) from biz_recruit_delegate brd "; $query .= " where brd.biz_trader2id=bt2.id and brd.biz_traderid=" . intval($bizTrader["id"])." "; if ($verifyTime > 0) $query .= " and brd.finish_datetime>=" . $verifyTime . " "; $query .= " )>0 "; } //排序处理 $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)) { default://0-默认时间倒序 $orderby=" order by bt2.id desc "; break; } //构建sql串 $sqlBody=""; $sqlBody.=" from biz_trader2 bt2 "; $sqlBody.=" left join base_user bt2bu on bt2bu.id=bt2.base_userid "; $sqlBody.=" where 1=1 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select bt2.*,bt2bu.mobile as bt2bu_mobile "; $sqlFetch.=" ,(select count(*) from biz_recruit_delegate brd "; $sqlFetch .= " where brd.biz_trader2id=bt2.id and brd.finish_datetime>=" . time()." ) as delegate_nowtotal"; $sqlFetch.=" ,(select count(*) from biz_recruit_delegate brd "; $sqlFetch .= " where brd.biz_trader2id=bt2.id and brd.finish_datetime>=" . intval($verifyTime)." ) as delegate_mantotal"; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); foreach($pageData as &$data){ //数据转换/映射 $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]); $data["remark"]=trim(explode("\n",$data["remark"])[0]); } $sqlSummary=" select count(*) as count ".$sqlBody.";"; $sumData=pdo_fetch($sqlSummary,$sqlParam); return array( "pageData" => $pageData, "count" => intval($sumData["count"]), ); break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************商家服务信息相关逻辑**************************************/ function bizbase_traServiceEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser; switch($handleMode){ case "fetch": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $backdata = pdo_fetch("select * from biz_trader_service where id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); //数据转换 //属性映射 $backdata["profile_photos"]=json_decode($backdata["profile_photos"],true); return $backdata; break; case "delete": $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $backdata = pdo_fetch("select * from biz_trader_service where id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); $sqlParam=array(); $sqlParam[":id"]=intval($backdata["id"]); $sqlParam[":nowtime"]=time(); $sqlParam[":remark"]="[".date("Y-m-d H:i:s",time())."] 删除记录 {$reason} "; $sqlTemp=" update biz_trader_service set"; $sqlTemp.=" updatetime=:nowtime,deleted=1,remark=concat(:remark,ifnull(remark,'')) "; $sqlTemp.=" where id=:id; "; $backdata = pdo_query($sqlTemp, $sqlParam); return $backdata; break; case "upsert": if(intval($baseUser["subsystem"]!=intval(SUBSYS_PLAT_PCWEB))) throw new GeneralException("", "只能是平台发布商家服务信息"); $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"]; if (empty($bizData)) throw new GeneralException("", "没有传递必要的bizData参数"); /***字段参数收集并校验**start***/ $saveData=array(); $saveData["title"]=trim($bizData["title"]); if(empty($saveData["title"])) throw new GeneralException("","标题必填"); $saveData["title2"]=trim($bizData["title2"]); $saveData["profile_photo"]=trim($bizData["profile_photo"]); $saveData["profile_photos"]=json_encode($bizData["profile_photos"]); $saveData["price"] = round(floatval($bizData["price"]), 2); $saveData["content"]=trim($bizData["content"]); $saveData["company_name"]=trim($bizData["company_name"]); $saveData["linker_name"]=trim($bizData["linker_name"]); $saveData["linker_phone"]=trim($bizData["linker_phone"]); $saveData["company_addr"]=trim($bizData["company_addr"]); $saveData["remark"]=trim($bizData["remark"]); /***字段参数收集并校验**finish***/ if(intval($bizData["id"])<=0){ $saveData["createtime"]=time(); $insertId = pdo_insert("biz_trader_service",$saveData); if (intval($insertId)<=0) throw new GeneralException("", "没有返回insertId,插入失败!"); return $insertId; }else{ $oldData = pdo_fetch("select `id` from biz_trader_service where id=" . intval($bizData["id"])); if (empty($oldData)) throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!"); $saveData["updatetime"]=time(); $backdata = pdo_update("biz_trader_service", $saveData,array("id"=>$bizData["id"])); return $backdata; } break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_traServiceAboutQuery($fromSubSystem, $baseUser, $bizUser, $handleMode, $pageIndex, $pageSize, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL2_MINA) $bizTrader2 = $bizUser; switch($handleMode){ case "fetchallByPlater": case "fetchallByTrader": $sqlParam=array(); $verifyTime=0; //查询处理 $query = isset($ajaxdata["query"]) ? $ajaxdata["query"] : $GPC["query"]; if (empty($query) && !is_array($query)){//验证一下query信息集 $query=" and 1=1 "; }else{ $queryNew=" and 1=1 "; foreach($query as $fdName=>$fdValue){ if(empty($fdName) || empty($fdValue)) continue; switch($fdName){ case "companyName": if(empty(trim($fdValue))) continue; $paramName = ":qy_companyName"; $queryNew .=" and (bts.company_name like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "title": $paramName = ":qy_title"; $queryNew .=" and (bts.title like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; } } $query=$queryNew; } //排序处理 $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)) { default://0-默认时间倒序 $orderby=" order by bts.id desc "; break; } //构建sql串 $sqlBody=""; $sqlBody.=" from biz_trader_service bts "; $sqlBody.=" where 1=1 and `deleted`=0 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select bts.* "; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); foreach($pageData as &$data){ //数据转换/映射 $data["createtime"] = date("Y-m-d H:i:s", $data["createtime"]); $data["profile_photos"]=json_decode($data["profile_photos"],true); $data["remark"]=trim(explode("\n",$data["remark"])[0]); } $sqlSummary=" select count(*) as count ".$sqlBody.";"; $sumData=pdo_fetch($sqlSummary,$sqlParam); return array( "pageData" => $pageData, "count" => intval($sumData["count"]), ); break; default: throw new GeneralException("","不支持的handleMode!"); } }