90) $cfgData[$CONFIGNAME]=90; $CONFIGNAME="share_getrate";//默认分佣比例share_getrate 基于平台分成下的百分比 if(!isset($cfgData[$CONFIGNAME])) throw new GeneralException("","没有传递必要的{$CONFIGNAME}配置属性"); $cfgData[$CONFIGNAME] = intval($cfgData[$CONFIGNAME]); if($cfgData[$CONFIGNAME]<0) $cfgData[$CONFIGNAME]=0; if($cfgData[$CONFIGNAME]>90) $cfgData[$CONFIGNAME]=90; $CONFIGNAME="tbreak_cutrate";//商家违约会员的扣除比例tbreak_cutrate 基于每人招聘费用的百分比 if(!isset($cfgData[$CONFIGNAME])) throw new GeneralException("","没有传递必要的{$CONFIGNAME}配置属性"); $cfgData[$CONFIGNAME] = intval($cfgData[$CONFIGNAME]); if($cfgData[$CONFIGNAME]<0) $cfgData[$CONFIGNAME]=0; if($cfgData[$CONFIGNAME]>90) $cfgData[$CONFIGNAME]=90; $CONFIGNAME="enroll_overate";//溢报倍数enroll_overate //至少是1倍 if(!isset($cfgData[$CONFIGNAME])) throw new GeneralException("","没有传递必要的{$CONFIGNAME}配置属性"); $cfgData[$CONFIGNAME] = round(floatval($cfgData[$CONFIGNAME]),2); if($cfgData[$CONFIGNAME]<1) $cfgData[$CONFIGNAME]=1; basecfg_setConfig("PLAT_PCWEB","RecuritRule",$cfgData); $afterConfig = basecfg_getConfig("PLAT_PCWEB","RecuritRule"); return $afterConfig; break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_fetchBaseConfig($configName,$needVerify){ switch($configName){ case "RecuritRule": $oldConfig = basecfg_getConfig("PLAT_PCWEB","RecuritRule"); if(empty($oldConfig)) throw new GeneralException("","还没有配置平台招聘规则"); if(intval($oldConfig["freeCount"])<0) $oldConfig["freeCount"]=0; if(intval($oldConfig["freeCount2"])<0) $oldConfig["freeCount2"]=0; if(round(floatval($oldConfig["pricePer"]), 2)<0) $oldConfig["pricePer"]=0; //每人招聘费用的最低额 feeper_min $oldConfig["feeper_min"]=round(floatval($oldConfig["feeper_min"]), 2); //会员报名押金额 enroll_premoney $oldConfig["enroll_premoney"]=round(floatval($oldConfig["enroll_premoney"]), 2); //默认平台分成比例plater_getrate 每人招聘费用的百分比 $oldConfig["plater_getrate"]=intval($oldConfig["plater_getrate"]); //默认分佣比例share_getrate 基于平台分成下的百分比 $oldConfig["share_getrate"]=intval($oldConfig["share_getrate"]); //商家违约会员的扣除比例tbreak_cutrate 基于每人招聘费用的百分比 $oldConfig["tbreak_cutrate"]=intval($oldConfig["tbreak_cutrate"]); //溢报倍数enroll_overate //至少是1倍 $oldConfig["enroll_overate"]=round(floatval($oldConfig["enroll_overate"]), 2); return $oldConfig; default: throw new GeneralException("","不支持的configName!"); } } /**********************平台协议信息相关逻辑**************************************/ function bizbase_agreementEntityHandle($fromSubSystem,$handleMode, $ajaxdata, $GPC){ switch($handleMode){ case "fetch": // $sql = "SELECT * FROM biz_todowork WHERE biz_recruitid = 473"; // $res = pdo_fetch($sql,array()); // var_dump($res);die; $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $backdata = pdo_fetch("select * from biz_common_agreement where id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); //数据转换 //属性映射 $backdata["picurls"]=json_decode($backdata["picurls"],true); return $backdata; break; case "fetchall": $backdata = pdo_fetchall("select * from biz_common_agreement where `deleted`=0 order by id asc;"); //数据转换 //属性映射 foreach($backdata as &$data){ $data["picurls"]=json_decode($data["picurls"],true); } return $backdata; break; case "update": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $title = isset($ajaxdata["title"]) ? $ajaxdata["title"] : $GPC["title"]; $content = isset($ajaxdata["content"]) ? $ajaxdata["content"] : $GPC["content"]; $picurls = isset($ajaxdata["picurls"]) ? $ajaxdata["picurls"] : $GPC["picurls"]; $saveData=array(); $saveData["title"]=trim($title); $saveData["content"]=trim($content); $saveData["picurls"]=json_encode($picurls); $oldData = pdo_fetch("select * from biz_common_agreement where id=" . intval($bizId)); if (empty($oldData)) throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!"); $saveData["updatetime"]=time(); $backdata = pdo_update("biz_common_agreement", $saveData,array("id"=>$bizId)); return $backdata; break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************轮播图相关逻辑**************************************/ function bizbase_cyclePicShowEntityHandle($fromSubSystem,$handleMode, $ajaxdata, $GPC){ switch($handleMode){ case "fetch": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $backdata = pdo_fetch("select brv.* ,bsr.title as bsr_title ,bma.title as bma_title from biz_recruit_videopics brv left join biz_trader_recruit bsr on bsr.id=brv.biz_recruitid left join biz_market_activity bma on bma.id=brv.biz_recruitid where brv.id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); //数据转换 //属性映射 $backdata["slideshowImg"]=$backdata["headpic"]; unset($backdata["headpic"]); $backdata["ofType"]=intval($backdata["catalog"]); $backdata["detailshowImg"]=$backdata["detailpic"]; unset($backdata["detailpic"]); $backdata["detailedIntroduction"]=$backdata["bsr_title"]; unset($backdata["bsr_title"]); return $backdata; break; case "fetchall": case "fetchallAPP": $biz_catalog = isset($ajaxdata["biz_catalog"]) ? $ajaxdata["biz_catalog"] : $GPC["biz_catalog"]; $backdata = pdo_fetchall("select brv.* ,bsr.title as bsr_title ,bma.title as bma_title from biz_recruit_videopics brv left join biz_trader_recruit bsr on bsr.id=brv.biz_recruitid left join biz_market_activity bma on bma.id=brv.biz_recruitid where brv.`deleted`=0 order by brv.id asc;",array( //":biz_catalog"=>intval($biz_catalog), )); foreach($backdata as &$item){ if($handleMode=="fetchallAPP"){//APP端 $item["headpic"]=WEBAPI_IMG_HOSTURL."".$item["headpic"]; $item["detailpic"]=WEBAPI_IMG_HOSTURL."".$item["detailpic"]; }else{ //数据转换 //属性映射 $item["slideshowImg"]=$item["headpic"]; unset($item["headpic"]); $item["ofType"]=intval($item["catalog"]); $item["detailshowImg"]=$item["detailpic"]; unset($item["detailpic"]); $item["detailedIntroduction"]=$item["bsr_title"]; unset($item["bsr_title"]); } } return $backdata; break; case "upsert": $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"]; if (empty($bizData)) throw new GeneralException("", "没有传递必要的bizData参数"); //属性映射 //数据转换 /***字段参数收集并校验**start***/ $saveData=array(); $saveData["biz_catalog"]=intval($bizData["biz_catalog"]);//0-招聘轮播图;1-活动轮播图; $saveData["headpic"]=trim($bizData["slideshowImg"]); if(empty($saveData["headpic"])) throw new GeneralException("", "轮播图不能为空!"); $saveData["catalog"]=intval($bizData["ofType"]);//0-独立宣传页;1-关联招聘记录; switch($saveData["catalog"]){ case 3: $saveData["detailpic"]=trim($bizData["detailshowImg"]); if(empty($saveData["detailpic"])) throw new GeneralException("", "宣传页不能为空!"); break; default: $saveData["biz_recruitid"]=intval($bizData["biz_recruitid"]); if($saveData["biz_recruitid"]<=0) throw new GeneralException("", "关联的信息记录ID不能为空!"); break; } /***字段参数收集并校验**finish***/ if(intval($bizData["id"])<=0){ $saveData["createtime"]=time(); $insertId = pdo_insert("biz_recruit_videopics",$saveData); if (intval($insertId)<=0) throw new GeneralException("", "没有返回insertId,插入失败!"); return $insertId; }else{ $oldData = pdo_fetch("select `id` from biz_recruit_videopics where id=" . intval($bizData["id"])); if (empty($oldData)) throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!"); $saveData["updatetime"]=time(); $backdata = pdo_update("biz_recruit_videopics", $saveData,array("id"=>$bizData["id"])); return $backdata; } break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************次数账户相关逻辑**************************************/ function bizbase_naccountEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; switch($handleMode){ case "buyPrepay": //--------------------------------------- $buyCount = isset($ajaxdata["buyCount"]) ? $ajaxdata["buyCount"] : $GPC["buyCount"]; if (intval($buyCount)<=0) throw new GeneralException("", "buyCount购买次数不能为空啊"); $recuritRule = bizbase_fetchBaseConfig("RecuritRule",true); $pricePer = round(floatval($recuritRule["pricePer"]), 2); $payTotal = round($buyCount * $pricePer, 2); if ($payTotal <= 0) throw new GeneralException("", "购买金额竟然小于等于0"); // $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"=>$bizTrader["id"], // ":money_userid"=>$bizTrader["id"], // ":money_roletype"=>0, // )); // $money_balance = round(floatval($backdata["money_balance"]), 2); $accountInfo=bizbase_traderAccountInfo($bizTrader); $money_balance =round(floatval($accountInfo["balance"]), 2); $nowPayMoney = round(floatval($payTotal - $money_balance), 2); eeglobal_log_handler('numpaySettle','info'," money_balance={$money_balance} payTotal={$payTotal} paymoney={$nowPayMoney} "); if ($nowPayMoney <= 0) $nowPayMoney = 0;//将来在收支明细中过滤掉money=0的记录; $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_traderid"]=intval($bizTrader["id"]); $sqlParam[":buyCount"]=intval($buyCount); $sqlParam[":pricePer"]=$pricePer; $sqlParam[":paymoney"]=$nowPayMoney; $sqlParam[":money"]=$payTotal; $sqlParam[":paypreno"]="CS".date("YmdHis",time())."ID"; $sqlTemp=""; $sqlTemp.=" insert into biz_trader_numaccount set createtime=:nowtime"; $sqlTemp.=" ,biz_traderid=:biz_traderid "; $sqlTemp.=" ,type=0,biz_catalog=0,biz_id=0,`status`=0,`count`=:buyCount,`pricePer`=:pricePer,`paymoney`=:paymoney,`money`=:money"; $sqlTemp.=" ,remark='购买次数';"; $sqlTemp.=" update biz_trader_numaccount set biz_idtag=concat(:paypreno,LAST_INSERT_ID()) where id=LAST_INSERT_ID(); "; $sqlTemp.=" select * from biz_trader_numaccount where id=LAST_INSERT_ID();"; $dataset = pdo_query3($sqlTemp, $sqlParam); $bizInfo= $dataset[count($dataset)-1][0]; if (empty($bizInfo)) throw new GeneralException("", "构建次数支付订单异常"); $payBizCatalog = "0"; //0-次数购买业务 $payBizId = $bizInfo["id"]; $payScene = "JSAPI"; $prePayArgs = array( "payBackBizCatalog" => $payBizCatalog, "payBackBizId" => $payBizId, "payScene" => $payScene, ); if ($nowPayMoney <= 0) { bizbase_paySuccess($payBizCatalog, $payBizId, false); return array("payResult" => true); } else { //--------------------------------------- $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"]; if (empty(trim($minaCode))) throw new GeneralException("", "没有传递必要的minaCode参数"); $bizArgs=array( "minaCode"=>$minaCode, "bizInfo"=>$bizInfo, "bizTrader"=>$bizTrader, ); require_once WEB_PHY_ROOT."/base/wxsrv.php"; $prePayInfo=weixin_prepayBuildV3($prePayArgs,$bizArgs,function($bizCatalog, $bizId, $bizArgs){ $minaCode = $bizArgs["minaCode"]; $bizInfo = $bizArgs["bizInfo"]; $bizTrader = $bizArgs["bizTrader"]; $prePayInfo= array(); switch($bizCatalog){ default: //--------------------------------------- $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA); $wxmina_appid = $resObj["wxmina_appid"]; $wxmina_openid = $resObj["openid"]; $payTotal = round(floatval($bizInfo["paymoney"]), 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_numaccount set"; $sqlTemp.=" wxmina_appid=:wxmina_appid,wxmina_openid=:wxmina_openid "; $sqlTemp.=" where id=:id; "; $dataset = pdo_query3($sqlTemp, $sqlParam); //--------------------------------------- $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; break; } return $prePayInfo; }); } $prePayInfo =array_merge($prePayArgs, $prePayInfo); return $prePayInfo; break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************微信相关逻辑**************************************/ function bizbase_weixinEntityHandle($fromSubSystem, $baseUser, $bizUser, $handleMode, $ajaxdata, $GPC){ if(intval($baseUser["subsystem"])==SUBSYS_LABOUR_MINA) $bizWorker = $bizUser; if(intval($baseUser["subsystem"])==SUBSYS_CAPITAL_MINA) $bizTrader = $bizUser; switch($handleMode){ case "confirmPaySuccess": $payBizCatalog = isset($ajaxdata["payBizCatalog"]) ? $ajaxdata["payBizCatalog"] : $GPC["payBizCatalog"]; $payBizId = isset($ajaxdata["payBizId"]) ? $ajaxdata["payBizId"] : $GPC["payBizId"]; $backdata = bizbase_paySuccess($payBizCatalog, $payBizId, true); return $backdata; break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************资金账相关逻辑**************************************/ function bizbase_accountEntityHandle($subSystem, $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; $subSystem = intval($baseUser["subsystem"]); switch($handleMode){ case "withdrawByWorker": $lockid = $bizWorker["id"]; $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"]; $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"]; $trueName = isset($ajaxdata["trueName"]) ? $ajaxdata["trueName"] : $GPC["trueName"]; $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"]; $params = array("subSystem"=>$subSystem, "bizWorker" => $bizWorker, "todo" => $todo, "money" => $money,"trueName"=>$trueName,"minaCode"=>$minaCode); $result = biz_flkForWorker($lockid, $params, function ($params) { $subSystem = $params["subSystem"]; $bizWorker = $params["bizWorker"]; $todo = $params["todo"]; $money = $params["money"]; $trueName = $params["trueName"]; $minaCode = $params["minaCode"]; switch(trim($todo)){ case "all": $accountInfo=bizbase_workerAccountInfo($bizWorker); $money = round(floatval($accountInfo["balance"]), 2); break; case "part": $money = round(floatval($money), 2); break; default:throw new GeneralException("","不支持的todo!"); } bizbase_accountWithdrawCheck($subSystem, $bizWorker, $money); require_once WEB_PHY_ROOT."/base/wxsrv.php"; $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_LABOUR_MINA); $wxmina_appid = $resObj["wxmina_appid"]; $wxmina_openid = $resObj["openid"]; $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_workerid"]=$bizWorker["id"]; $sqlParam[":wxmina_appid"]=$wxmina_appid; $sqlParam[":wxmina_openid"]=$wxmina_openid; $sqlParam[":money"]=$money; $sqlParam[":prefix"] = "TX" . date("YmdHis", time()) . "ID"; $sqlTemp=""; $sqlTemp.=" insert into biz_worker_account set createtime=:nowtime "; $sqlTemp.=" ,biz_workerid=:biz_workerid "; $sqlTemp.=" ,type=1, biz_catalog=0, money=:money "; $sqlTemp.=" ,wxmina_appid=:wxmina_appid, wxmina_openid=:wxmina_openid; "; $sqlTemp.=" update biz_worker_account set biz_idtag=concat(:prefix,id) where id=LAST_INSERT_ID(); "; $sqlTemp.=" select * from biz_worker_account where id=LAST_INSERT_ID(); "; $dataset=pdo_query3($sqlTemp,$sqlParam); $account = $dataset[count($dataset) - 1][0]; $insertId=intval($account["id"]); $withdrawNO=trim($account["biz_idtag"]); try{ $trueName = empty($trueName) ? $bizWorker["true_name"] : $trueName; $remark = "会员快来优钱包提现"; include_once WEB_PHY_ROOT."/base/wxsrv.php"; $transResult = weixin_transfers($wxmina_appid, $wxmina_openid, $withdrawNO, $trueName, $money * 100, $remark); $sqlParam=array(); $sqlParam[":id"]=$insertId; $sqlParam[":nowtime"]=time(); $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 提现成功 \n"; $sqlTemp=""; $sqlTemp.=" update biz_worker_account set updatetime=:nowtime "; $sqlTemp.=" ,`status`=1 ,remark=concat(:remark,ifnull(remark,'')) "; $sqlTemp.=" where id=:id;"; $backdata= pdo_query($sqlTemp,$sqlParam); return $transResult; }catch(Throwable $ex){ throw new GeneralException("", "提现异常" . $ex->getMessage()); } }); return $result; break; case "withdrawByTrader": $lockid = $bizTrader["id"]; $todo = isset($ajaxdata["todo"]) ? $ajaxdata["todo"] : $GPC["todo"]; $money = isset($ajaxdata["money"]) ? $ajaxdata["money"] : $GPC["money"]; $trueName = isset($ajaxdata["trueName"]) ? $ajaxdata["trueName"] : $GPC["trueName"]; $minaCode = isset($ajaxdata["minaCode"]) ? $ajaxdata["minaCode"] : $GPC["minaCode"]; $params = array("subSystem"=>$subSystem, "bizTrader" => $bizTrader, "todo" => $todo, "money" => $money,"trueName"=>$trueName,"minaCode"=>$minaCode); $result = biz_flkForTrader($lockid, $params, function ($params) { $subSystem = $params["subSystem"]; $bizTrader = $params["bizTrader"]; $todo = $params["todo"]; $money = $params["money"]; $trueName = $params["trueName"]; $minaCode = $params["minaCode"]; switch(trim($todo)){ case "all": $accountInfo=bizbase_traderAccountInfo($bizTrader); $money = round(floatval($accountInfo["balance"]), 2); break; case "part": $money = round(floatval($money), 2); break; default:throw new GeneralException("","不支持的todo!"); } bizbase_accountWithdrawCheck($subSystem, $bizTrader, $money); require_once WEB_PHY_ROOT."/base/wxsrv.php"; $resObj = bizwx_fetchMinaOpenidCore(SUBSYS_CAPITAL_MINA); $wxmina_appid = $resObj["wxmina_appid"]; $wxmina_openid = $resObj["openid"]; $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_traderid"]=$bizTrader["id"]; $sqlParam[":wxmina_appid"]=$wxmina_appid; $sqlParam[":wxmina_openid"]=$wxmina_openid; $sqlParam[":money"]=$money; $sqlParam[":prefix"] = "TXT" . date("YmdHis", time()) . "ID"; $sqlTemp=""; $sqlTemp.=" insert into biz_trader_account set createtime=:nowtime "; $sqlTemp.=" ,biz_traderid=:biz_traderid "; $sqlTemp.=" ,biz_roletype=0, biz_userid=:biz_traderid "; $sqlTemp.=" ,type=1, biz_catalog=5, money=:money "; $sqlTemp.=" ,wxmina_appid=:wxmina_appid, wxmina_openid=:wxmina_openid; "; $sqlTemp.=" update biz_trader_account set biz_idtag=concat(:prefix,id) where id=LAST_INSERT_ID(); "; $sqlTemp.=" select * from biz_trader_account where id=LAST_INSERT_ID(); "; $dataset=pdo_query3($sqlTemp,$sqlParam); $account = $dataset[count($dataset) - 1][0]; $insertId=intval($account["id"]); $withdrawNO=trim($account["biz_idtag"]); try{ $trueName = $trueName; $remark = "商家快来优钱包提现"; include_once WEB_PHY_ROOT."/base/wxsrv.php"; $transResult = weixin_transfers($wxmina_appid, $wxmina_openid, $withdrawNO, $trueName, $money * 100, $remark); $sqlParam=array(); $sqlParam[":id"]=$insertId; $sqlParam[":nowtime"]=time(); $sqlParam[":remark"] = "[" . date("Y-m-d H:i:s", time()) . "] 提现成功 \n"; $sqlTemp=""; $sqlTemp.=" update biz_trader_account set updatetime=:nowtime "; $sqlTemp.=" ,`status`=1 ,remark=concat(:remark,ifnull(remark,'')) "; $sqlTemp.=" where id=:id;"; $backdata= pdo_query($sqlTemp,$sqlParam); return $transResult; }catch(Throwable $ex){ throw new GeneralException("", "提现异常" . $ex->getMessage()); } }); return $result; break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_accountWithdrawCheck($subSystem, $bizUser, $money){ $minDate=1; $maxDate=31; $today=date("d",time());//提现日期 if($today<$minDate || $today>$maxDate) throw new GeneralException("NotInWithdrawDateScope",array( "minDate" => $minDate, "maxDate" => $maxDate, "today" => date("Y-m-d", time()), )); $minMoney=0.3;//提现最小额 if ($money < $minMoney) throw new GeneralException("WithdrawTooLittle", array( "minMoney" => $minMoney, )); } function bizbase_accountCatalogName($fromSubSystem, $type, $bizCatalog){ $backdata=array(); $backdata["typeName"] = (intval($type) <= 0) ? "收入" : "支出"; switch(intval($fromSubSystem)){ case SUBSYS_LABOUR_MINA: if(intval($type) <= 0){//工人收入 switch(intval($bizCatalog)){ case 0: $backdata["bizCatalogName"]="工资收入"; break; case 1: $backdata["bizCatalogName"]="佣金收入"; break; case 2: $backdata["bizCatalogName"]="支付活动报名"; break; case 3: $backdata["bizCatalogName"]="微信充值"; break; case 4: $backdata["bizCatalogName"]="支付报名押金"; break; case 5: $backdata["bizCatalogName"]="报名押金退还"; break; case 6: $backdata["bizCatalogName"]="违约罚金收入"; break; case 7: $backdata["bizCatalogName"]="解冻报名押金"; break; } }else{//工人支出 switch(intval($bizCatalog)){ case 0: $backdata["bizCatalogName"]="余额提现"; break; case 1: $backdata["bizCatalogName"]="营销活动支出"; break; case 2: $backdata["bizCatalogName"]="报名押金冻结"; break; case 3: $backdata["bizCatalogName"]="报名押金罚没"; break; } } break; case SUBSYS_CAPITAL_MINA: if(intval($type) <= 0){//商家收入 switch(intval($bizCatalog)){ case 0: $backdata["bizCatalogName"]="次数支付"; break; case 1: $backdata["bizCatalogName"]="订单支付"; break; case 2: $backdata["bizCatalogName"]="微信充值"; break; case 3: $backdata["bizCatalogName"]="转帐收入"; break; case 4: $backdata["bizCatalogName"]="平台代支付工单"; break; case 5: $backdata["bizCatalogName"]="工单费用部分退还"; break; case 6: $backdata["bizCatalogName"]="工单费用解冻"; break; case 7: $backdata["bizCatalogName"]="会员违约金收入"; break; } }else{//商家支出 switch(intval($bizCatalog)){ case 0: $backdata["bizCatalogName"]="次数支出"; break; case 1: $backdata["bizCatalogName"]="订单平台分成支出"; break; case 2: $backdata["bizCatalogName"]="订单佣金支出"; break; case 3: $backdata["bizCatalogName"]="订单工资支出"; break; case 4: $backdata["bizCatalogName"]="转帐支出"; break; case 5: $backdata["bizCatalogName"]="提现支出"; break; case 6: $backdata["bizCatalogName"]="订单费用支出"; break; case 7: $backdata["bizCatalogName"]="平台代为支付订单费用"; break; case 8: $backdata["bizCatalogName"]="工单费用冻结"; break; case 9: $backdata["bizCatalogName"]="工单违约罚金"; break; } } break; default: throw new GeneralException("","不支持的fromSubSystem!"); } return $backdata; } function bizbase_accountEntityAboutQuery($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; $subSystem=intval($baseUser["subsystem"]); switch($handleMode){ case "fetchallByTrader": $sqlParam=array(); $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 "catalog": switch(intval($fdValue)) { case 1: if(!empty($bizTrader)){//专款专户 $query.=" and bta.biz_roletype=0 "; } break; case 2: if(!empty($bizTrader)){//专款专户 $query.=" and bta.biz_roletype=1 "; } break; } break; case "type": $queryNew .= " and bta.type=" . (intval($fdValue) - 1) . " "; break; case "bizCatalog": $queryNew .= " and bta.biz_catalog=" . (intval($fdValue) - 1) . " "; break; case "traderId": $queryNew .= " and bta.biz_traderid=".intval($fdValue)." "; break; case "companyName": $paramName = ":qy_companyName"; $queryNew .=" and (bt.company_name like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "occurdate": $yestoday=strtotime("-1 day",strtotime(date("Y-m-d 23:59:59", strtotime($fdValue)))); $tomorrow=strtotime("+1 day",strtotime(date("Y-m-d 00:00:00", strtotime($fdValue)))); $queryNew .= " and bta.createtime>$yestoday and bta.createtime<$tomorrow "; break; } } $query=$queryNew; } if(!empty($bizTrader)){//专款专户 $query.=" and bta.biz_traderid=".intval($bizTrader["id"])." "; } //排序处理 $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)){ case 1: $orderby=" order by bta.money desc "; break; default://创建时间倒序 $orderby=" order by bta.id desc "; break; } //构建sql串 $sqlBody=""; $sqlBody.=" from biz_trader_account bta "; $sqlBody.=" left join biz_trader bt on bt.id=bta.biz_traderid "; $sqlBody.=" left join base_user bu on bu.id=bt.base_userid "; $sqlBody.=" left join biz_trader2 bt2 on bta.biz_roletype=1 and bt2.id=bta.biz_userid "; $sqlBody.=" left join base_user bu2 on bu2.id=bt2.base_userid "; $sqlBody.=" where 1=1 and bta.deleted=0 and bta.`status`=1 and bta.money<>0 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select bta.* "; $sqlFetch.=" ,bt.company_name as bt_company_name,bu.mobile as bu_mobile"; $sqlFetch.=" ,bt2.true_name as bt2_true_name,bu2.mobile as bu2_mobile"; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); //联合查询下,列项应该不算太多,可手工转换/映射!!或者以占主体的实体为主进行转换/映射; foreach($pageData as &$data){//数据转换/映射 $accountCatalogInfo=bizbase_accountCatalogName($subSystem,$data["type"],$data["biz_catalog"]); foreach ($accountCatalogInfo as $key => $value) $data["".$key] = $value; $data["occurdatetime"] = date("Y-m-d H:i:s", $data["createtime"]); $data["remark"] = trim(explode("\n", $data["remark"])[0]); } $sqlSummary=" select count(*) as count,sum(money) as moneytotal ".$sqlBody.";"; $sumData=pdo_fetch($sqlSummary,$sqlParam); return array( "pageData" => $pageData, "count" => intval($sumData["count"]), "moneytotal" => round(floatval($sumData["moneytotal"]), 2), ); break; case "fetchallByWorker": $sqlParam=array(); $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 "type": $queryNew .= " and bwa.type=" . (intval($fdValue) - 1) . " "; break; case "bizCatalog": $queryNew .= " and bwa.biz_catalog=" . (intval($fdValue) - 1) . " "; break; case "workerId": $queryNew .= " and bwa.biz_workerid=".intval($fdValue)." "; break; case "memberName": $paramName = ":qy_memberName"; $queryNew .=" and (wk.true_name like concat('%',{$paramName},'%') ) "; $sqlParam[$paramName] = $fdValue; break; case "occurdate": $yestoday=strtotime("-1 day",strtotime(date("Y-m-d 23:59:59", strtotime($fdValue)))); $tomorrow=strtotime("+1 day",strtotime(date("Y-m-d 00:00:00", strtotime($fdValue)))); $queryNew .= " and bwa.createtime>$yestoday and bwa.createtime<$tomorrow "; break; } } $query=$queryNew; } if(!empty($bizWorker)){ $query.=" and bwa.biz_workerid=".intval($bizWorker["id"])." "; } $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)){ case 1: $orderby=" order by bwa.money desc "; break; default://创建时间倒序 $orderby=" order by bwa.id desc "; break; } //构建sql串 $sqlBody=""; $sqlBody.=" from biz_worker_account bwa "; $sqlBody.=" left join biz_worker wk on wk.id=bwa.biz_workerid "; $sqlBody.=" left join base_user bu on bu.id=wk.base_userid "; $sqlBody.=" where 1=1 and bwa.deleted=0 and bwa.`status`=1 and bwa.money<>0 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select bwa.* "; $sqlFetch.=" ,wk.true_name as wk_true_name,bu.mobile as bu_mobile"; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); foreach($pageData as &$data){ //数据转换/映射 $accountCatalogInfo=bizbase_accountCatalogName($subSystem,$data["type"],$data["biz_catalog"]); foreach ($accountCatalogInfo as $key => $value) $data["".$key] = $value; $data["occurdatetime"] = date("Y-m-d H:i:s", $data["createtime"]); $data["remark"] = trim(explode("\n", $data["remark"])[0]); } $sqlSummary=" select count(*) as count,sum(money) as moneytotal ".$sqlBody.";"; $sumData=pdo_fetch($sqlSummary,$sqlParam); return array( "pageData" => $pageData, "count" => intval($sumData["count"]), "moneytotal" => round(floatval($sumData["moneytotal"]), 2), ); break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************通知公告信息相关逻辑**************************************/ function bizbase_noticeEntityHandle($fromSubSystem, $baseUser, $bizUser,$handleMode, $ajaxdata, $GPC){ 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_pubic_notice where id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); //数据转换 //属性映射 return $backdata; break; case "delete": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $backdata = pdo_fetch("select * from biz_pubic_notice where id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $backdata=pdo_query("update biz_pubic_notice set updatetime=:nowtime ,`deleted`=1,remark=concat(:remark,ifnull(remark,'')) where id=:id",array( ":nowtime"=>time(), ":id"=>intval($bizId), ":remark"=>"[".date("Y-m-d H:i:s")."] 删除 $reason ", )); return $backdata; break; case "upsert": $bizData = isset($ajaxdata["bizData"]) ? $ajaxdata["bizData"] : $GPC["bizData"]; if (empty($bizData)) throw new GeneralException("", "没有传递必要的bizData参数"); $id = intval($bizData["id"]); $catalog = intval($bizData["catalog"]); $title = trim($bizData["title"]); $content = trim($bizData["content"]); //----------------------------------- $saveData=array(); $saveData["catalog"]=$catalog; $saveData["title"]=trim($title); $saveData["content"]=trim($content); if(mb_strlen(trim($saveData["content"]))<1) throw new GeneralException("","内容不能为空!"); if ($id > 0) { $oldData = pdo_fetch("select * from biz_pubic_notice where id=" . intval($id)); if (empty($oldData)) throw new GeneralException("", "此id对应的记录不存在,请核查bizId是否正确!"); $saveData["updatetime"]=time(); $saveData["updateuserid"]=intval($baseUser["id"]); $backdata = pdo_update("biz_pubic_notice", $saveData,array("id"=>$id)); return $backdata; }else{ $saveData["createtime"]=time(); $saveData["createuserid"]=intval($baseUser["id"]); $backdata = pdo_insert("biz_pubic_notice", $saveData); return $backdata; } break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_noticeAboutQuery($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": $sqlParam=array(); //查询处理 $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 "catalog": $queryNew .=" and bpn.catalog=".(intval($fdValue)-1)." "; break; case "keywords": $paramName = ":qy_keywords"; $queryNew .=" and (bpn.title like concat('%',{$paramName},'%') or bpn.content like concat('%',{$paramName},'%')) "; $sqlParam[$paramName] = $fdValue; break; } } $query=$queryNew; } //排序处理 $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)){ default://创建时间倒序 $orderby=" order by bpn.id desc "; break; } //构建sql串 $sqlBody=""; $sqlBody.=" from biz_pubic_notice bpn "; $sqlBody.=" left join base_user buc on buc.id=bpn.createuserid "; $sqlBody.=" left join base_user buu on buu.id=bpn.updateuserid "; $sqlBody.=" where bpn.`deleted`=0 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select bpn.*,buc.login_name as buc_login_name,buu.login_name as buu_login_name "; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); //联合查询下,列项应该不算太多,可手工转换/映射!!或者以占主体的实体为主进行转换/映射; foreach($pageData as &$data){//数据转换/映射 $data["pasttimeTips"]=bizbase_pasttimeTips($data["createtime"]); $data["createtime"]=date("Y-m-d H:i:s",$data["createtime"]); if(!empty($bizTrader)){ $biz_usertype=1; $biz_userid=$bizTrader["id"]; } if(!empty($bizWorker)){ $biz_usertype=2; $biz_userid=$bizWorker["id"]; } if(!empty($biz_userid)){ $sqlTemp=""; $sqlTemp.=" set @handle_id=0; "; $sqlTemp.=" select @handle_id:=id from biz_basetrace bbt"; $sqlTemp.=" where bbt.deleted=0 and bbt.biz_catalog=1 and bbt.biz_id=:noticeid and bbt.biz_usertype=:biz_usertype and bbt.biz_userid=:biz_userid; "; $sqlTemp.=" insert into biz_basetrace(`biz_catalog`, biz_id, biz_usertype, biz_userid, count)"; $sqlTemp.=" select 1,:noticeid,:biz_usertype,:biz_userid, 1"; $sqlTemp.=" from dual where ifnull(@handle_id,0)=0 ;"; $backdata = pdo_query3($sqlTemp, array( ":noticeid"=>$data["id"], ":biz_usertype"=>$biz_usertype, ":biz_userid"=>$biz_userid, )); } } $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_appraisalEntityHandle($subSystem, $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_pubic_notice where id=" . intval($bizId)); // if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); // if (intval($backdata["deleted"]) != 0) // throw new GeneralException("", "此记录已删除了,请核查后再处理!"); // return $backdata; break; case "delete": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; if (empty($bizId)) throw new GeneralException("", "没有传递必要的bizId参数"); $backdata = pdo_fetch("select * from biz_appraisal where id=" . intval($bizId)); if(empty($backdata)) throw new GeneralException("", "无此记录,请核查bizId是否正确!"); if (intval($backdata["deleted"]) != 0) throw new GeneralException("", "此记录已删除了,请核查后再处理!"); $backdata = pdo_query("delete from biz_appraisal where id=" . intval($bizId)); return $backdata; break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_appraisalAboutQuery($subSystem, $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": $sqlParam=array(); $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 "bizCatalog": $queryNew .=" and apa.biz_catalog=".(intval($fdValue)-1)." "; break; case "fromWorkerId": $queryNew .=" and (apa.biz_catalog=0 or apa.biz_catalog=1) "; $queryNew .=" and apa.fromerid=".intval($fdValue)." "; break; case "fromTraderId": $queryNew .=" and (apa.biz_catalog=2) "; $queryNew .=" and apa.fromerid=".intval($fdValue)." "; break; case "toWorkerId": $queryNew .=" and (apa.biz_catalog=2) "; $queryNew .=" and apa.toerid=".intval($fdValue)." "; break; case "toTraderId": $queryNew .=" and (apa.biz_catalog=1) "; $queryNew .=" and apa.toerid=".intval($fdValue)." "; break; case "activityId": $queryNew .=" and (apa.biz_catalog=0) "; $queryNew .=" and bmao.market_activityid=".intval($fdValue)." "; break; case "recuritId": $queryNew .=" and (apa.biz_catalog=1 or apa.biz_catalog=2) "; $queryNew .=" and tdwk.biz_recruitid=".intval($fdValue)." "; break; case "title": $paramName = ":qy_keywords"; $queryNew .=" and (btr.title like concat('%',{$paramName},'%') or bma.title like concat('%',{$paramName},'%')) "; $sqlParam[$paramName] = $fdValue; break; case "memberName": $paramName = ":qy_memberName"; $queryNew .=" and (fwk.true_name like concat('%',{$paramName},'%') or twk.true_name like concat('%',{$paramName},'%')) "; $sqlParam[$paramName] = $fdValue; break; case "companyName": $paramName = ":qy_companyName"; $queryNew .=" and (fbt.company_name like concat('%',{$paramName},'%') or tbt.company_name like concat('%',{$paramName},'%')) "; $sqlParam[$paramName] = $fdValue; break; } } $query=$queryNew; } $orderby11 = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby11)){ default://创建时间倒序 $orderby=" order by apa.id desc "; break; } $roleCatalog = isset($ajaxdata["roleCatalog"]) ? $ajaxdata["roleCatalog"] : $GPC["roleCatalog"]; $sqlBodyExt=""; $sqlFetchExt=""; $sqlSummaryPre=""; $sqlSummaryPost=""; switch(intval($roleCatalog)){ case 0://所有首页用 明细模式 $sqlBodyExt=" group by apa.id "; $sqlFetchExt=" ,count(apa.id) as apa_total"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ default: $orderby=" order by apa.id desc "; break; } break; case 1://会员评价 $query.=" and (apa.biz_catalog=0 or apa.biz_catalog=1) "; $sqlBodyExt=" group by apa.fromerid "; $sqlFetchExt=" ,count(apa.id) as apa_total"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ default: $orderby=" order by apa_total desc "; break; } break; case 2://商家评价 $query.=" and (apa.biz_catalog=2) "; $sqlBodyExt=" group by apa.fromerid "; $sqlFetchExt=" ,count(apa.id) as apa_total"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ default: $orderby=" order by apa_total desc "; break; } break; case 3://会员被评价 $query.=" and (apa.biz_catalog=2) "; $sqlBodyExt=" group by apa.toerid "; $sqlFetchExt=" ,count(apa.id) as apa_total,avg(apa.result_level) as apa_avg"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ case 1: $orderby=" order by apa_total desc "; break; case 2: $orderby=" order by apa_avg desc "; break; default: $orderby=" order by apa.id desc "; break; } break; case 4://商家被评价 $query.=" and (apa.biz_catalog=1) "; $sqlBodyExt=" group by apa.toerid "; $sqlFetchExt=" ,count(apa.id) as apa_total,avg(apa.result_level) as apa_avg"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ case 1: $orderby=" order by apa_total desc "; break; case 2: $orderby=" order by apa_avg desc "; break; default: $orderby=" order by apa.id desc "; break; } break; case 5://活动评价 $query.=" and (apa.biz_catalog=0) "; $sqlBodyExt=" group by bmao.market_activityid "; $sqlFetchExt=" ,count(apa.id) as apa_total,avg(apa.result_level) as apa_avg"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ default: $orderby=" order by apa_avg desc "; break; } break; case 6://招聘评价 $query.=" and (apa.biz_catalog=1 or apa.biz_catalog=2) "; $sqlBodyExt=" group by tdwk.biz_recruitid "; $sqlFetchExt=" ,count(apa.id) as apa_total,avg(apa.result_level) as apa_avg"; $sqlSummaryPre=" from (select apa.id "; $sqlSummaryPost=" ) as temp "; switch(intval($orderby11)){ default: $orderby=" order by apa_avg desc "; break; } break; } $sqlBody=""; $sqlBody.=" from biz_appraisal apa "; $sqlBody.=" left join biz_worker fwk on fwk.id=apa.fromerid"; $sqlBody.=" left join base_user fwkbu on fwkbu.id=fwk.base_userid"; $sqlBody.=" left join biz_trader fbt on fbt.id=apa.fromerid"; $sqlBody.=" left join base_user fbtbu on fbtbu.id=fbt.base_userid"; $sqlBody.=" left join biz_worker twk on twk.id=apa.toerid"; $sqlBody.=" left join base_user twkbu on twkbu.id=twk.base_userid"; $sqlBody.=" left join biz_trader tbt on tbt.id=apa.toerid"; $sqlBody.=" left join base_user tbtbu on tbtbu.id=tbt.base_userid"; $sqlBody.=" left join biz_market_activity_order bmao on bmao.id=apa.biz_id and apa.biz_catalog=0"; $sqlBody.=" left join biz_market_activity bma on bma.id=bmao.market_activityid"; $sqlBody.=" left join biz_todowork tdwk on tdwk.id=apa.biz_id and (apa.biz_catalog=1 or apa.biz_catalog=2)"; $sqlBody.=" left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid"; $sqlBody.=" where apa.`deleted`=0 ".$query; $sqlBody.=$sqlBodyExt; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select apa.* "; $sqlFetch.=" ,(case when fwk.true_name<>'' then fwk.true_name else fwk.nickname end) as fwk_truename,fwkbu.mobile as fwkbu_mobile "; $sqlFetch.=" ,(case when twk.true_name<>'' then twk.true_name else twk.nickname end) as twk_truename,twkbu.mobile as twkbu_mobile "; $sqlFetch.=" ,fbt.company_name as fbt_companyname,fbtbu.mobile as fbtbu_mobile "; $sqlFetch.=" ,tbt.company_name as tbt_companyname,tbtbu.mobile as tbtbu_mobile "; $sqlFetch.=" ,bmao.market_activityid, bma.title as bma_title "; $sqlFetch.=" ,tdwk.biz_recruitid, btr.title as btr_title "; $sqlFetch.=" ,ifnull(avg(apa.result_level),0) as avg_level "; $sqlFetch.=" ,count(apa.id) as apa_count "; $sqlFetch.=" {$sqlFetchExt} {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); foreach($pageData as &$data){//数据转换/映射 unset($data["remark"]); $data["avg_level"]=round($data["avg_level"],1); $data["pasttimeTips"]=bizbase_pasttimeTips($data["createtime"]); $data["createtime"]=date("Y-m-d H:i:s",$data["createtime"]); $data["fromWorkerId"]=$data["fromerid"]; $data["fromTraderId"]=$data["fromerid"]; $data["toWorkerId"]=$data["toerid"]; $data["toTraderId"]=$data["toerid"]; $data["activityId"]=$data["market_activityid"]; $data["recuritId"]=$data["biz_recruitid"]; switch(intval($data["biz_catalog"])){ case 0: $data["biz_catalogName"]="会员对活动评价"; $data["apa_biztitle"]=$data["bma_title"]; $data["apaer_name"]=$data["fwk_truename"]; $data["apaer_mobile"]=$data["fwkbu_mobile"]; $data["apaee_name"]=""; $data["apaee_mobile"]=""; break; case 1: $data["biz_catalogName"]="会员基于工作过程对雇主评价"; $data["apa_biztitle"]=$data["btr_title"]; $data["apaer_name"]=$data["fwk_truename"]; $data["apaer_mobile"]=$data["fwkbu_mobile"]; $data["apaee_name"]=$data["tbt_companyname"]; $data["apaee_mobile"]=$data["tbtbu_mobile"]; break; case 2: $data["biz_catalogName"]="商家基于工作过程对会员评价"; $data["apa_biztitle"]=$data["btr_title"]; $data["apaer_name"]=$data["fbt_companyname"]; $data["apaer_mobile"]=$data["fbtbu_mobile"]; $data["apaee_name"]=$data["twk_truename"]; $data["apaee_mobile"]=$data["twkbu_mobile"]; break; } } $sqlSummary=" select count(*) as count ".$sqlSummaryPre.$sqlBody.$sqlSummaryPost.";"; $sumData=pdo_fetch($sqlSummary,$sqlParam); return array( "pageData" => $pageData, "count" => intval($sumData["count"]), ); break; default: throw new GeneralException("","不支持的handleMode!"); } } /**********************交互沟通相关逻辑**************************************/ function bizbase_interactionEntityHandle($subSystem, $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 "fetchLastSuggestion": $lastdata = bizbase_interactionLastSuggestion($bizUser); if(empty($lastdata)) return false; $lastdata["statusName"]=bizbase_interactionStatusName($lastdata["status"]); return $lastdata; break; case "fetchSuggestion": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; $sqlTemp=""; $sqlTemp.=" select ita.*"; $sqlTemp.=" ,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as wk_truename,wkbu.mobile as wkbu_mobile,wk.profile_photo as wk_profile_photo "; $sqlTemp.=" ,bt.company_name as bt_truename,btbu.mobile as btbu_mobile "; $sqlTemp.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_content"; $sqlTemp.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_picurls"; $sqlTemp.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_content"; $sqlTemp.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_picurls"; $sqlTemp.=" from biz_interaction ita"; $sqlTemp.=" left join biz_worker wk on wk.id=ita.fromerid "; $sqlTemp.=" left join base_user wkbu on wkbu.id=wk.base_userid "; $sqlTemp.=" left join biz_trader bt on bt.id=ita.fromerid "; $sqlTemp.=" left join base_user btbu on btbu.id=bt.base_userid "; $sqlTemp.=" where ita.id=".intval($bizId); $datainfo = pdo_fetch($sqlTemp); if(empty($datainfo)) throw new GeneralException("","没有定位到记录!"); if (intval($datainfo["biz_catalog"]) >1) throw new GeneralException("", "当前记录不是意见反馈类别"); $datainfo["createtime"]=date("Y-m-d H:i:s",$datainfo["createtime"]); $datainfo["finishtime"]=date("Y-m-d H:i:s",$datainfo["finishtime"]); $datainfo["statusName"]=bizbase_interactionStatusName($datainfo["status"]); unset($datainfo["remark"]); if(intval($baseUser["subsystem"])==SUBSYS_PLAT_PCWEB){ $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_id"]=intval($datainfo["id"]); $sqlTemp =""; $sqlTemp.=" set @handle_id=0; "; $sqlTemp.=" select @handle_id:=id from biz_interaction where id=:biz_id and ifnull(readed,0)=0 limit 1;"; $sqlTemp.=" update biz_interaction set `updatetime`=:nowtime,readed=1 where ifnull(@handle_id,0)=0 and id=:biz_id;"; $dataset = pdo_query3($sqlTemp,$sqlParam); } return $datainfo; break; case "submitNewSuggestion": if(empty($bizWorker) && empty($bizTrader)) throw new GeneralException("","当前用户类别不正确!"); $lastdata = bizbase_interactionLastSuggestion($bizUser); if(!empty($lastdata) && intval($lastdata["status"])<3) throw new GeneralException("","当前意见反馈还未完结"); $content = isset($ajaxdata["content"]) ? $ajaxdata["content"] : $GPC["content"]; if (empty(trim($content))) throw new GeneralException("", "没有传递必要的content参数或内容为空"); $sqlParam=array( ":nowtime"=>time(), ":userid"=>$bizUser["id"], ":biz_catalog" => (empty($bizTrader) ? 0 : 1), ":content"=>$content, ); $sqlTemp=""; $sqlTemp.=" insert into biz_interaction set createtime=:nowtime, biz_catalog=:biz_catalog, fromerid=:userid, `status`=1;"; $sqlTemp.=" insert into biz_interaction_talk set createtime=:nowtime "; $sqlTemp.=" , parentid=LAST_INSERT_ID(), catalog=0, content=:content; "; $backdata = pdo_query($sqlTemp,$sqlParam); return $backdata; break; case "finishSuggestion": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; $datainfo = pdo_fetch("select * from biz_interaction where id=" . intval($bizId)); if(empty($datainfo)) throw new GeneralException("","没有定位到记录!"); if (intval($datainfo["status"]) != 1) throw new GeneralException("", "当前意见反馈不是待回复状态"); if (intval($datainfo["biz_catalog"]) >= 2) throw new GeneralException("", "当前记录不是意见反馈类别"); $replyContent = isset($ajaxdata["replyContent"]) ? $ajaxdata["replyContent"] : $GPC["replyContent"]; $sqlTemp=""; $sqlTemp.=" update biz_interaction set updatetime=:nowtime, finishtime=:nowtime, `status`=3, remark=concat(:remark,ifnull(remark,'')) where id=:itaid;"; $sqlTemp.=" insert into biz_interaction_talk set createtime=:nowtime "; $sqlTemp.=" , parentid=:itaid, catalog=1, content=:content; "; $backdata = pdo_query($sqlTemp,array( ":nowtime"=>time(),":itaid"=>$datainfo["id"], ":content"=>$replyContent,":remark"=>"[".date("Y-m-d H:i:s",time())."] 回复后结单 \n")); return $backdata; break; case "deleteSuggestion": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; $datainfo = pdo_fetch("select * from biz_interaction where id=" . intval($bizId)); if(empty($datainfo)) throw new GeneralException("","没有定位到记录!"); if (intval($datainfo["deleted"]) != 0) throw new GeneralException("", "当前意见反馈已删除了,不能重复删除"); if (intval($datainfo["status"]) != 3) throw new GeneralException("", "当前意见反馈不是已完结状态,不能删除"); if (intval($datainfo["biz_catalog"]) >= 2) throw new GeneralException("", "当前记录不是意见反馈类别"); $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $sqlTemp=""; $sqlTemp.=" update biz_interaction set updatetime=:nowtime, `deleted`=1, remark=concat(:remark,ifnull(remark,'')) where id=:itaid;"; $backdata = pdo_query($sqlTemp,array( ":nowtime"=>time(),":itaid"=>$datainfo["id"], ":remark"=>"[".date("Y-m-d H:i:s",time())."] 删除 {$reason} \n")); return $backdata; break; case "fetchComplaint": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; $sqlTemp=""; $sqlTemp.=" select ita.*"; $sqlTemp.=" ,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as wk_truename,wkbu.mobile as wkbu_mobile,wk.profile_photo as wk_profile_photo "; $sqlTemp.=" ,bt.company_name as bt_truename,btbu.mobile as btbu_mobile "; $sqlTemp.=" ,btr.title as btr_title "; $sqlTemp.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_content"; $sqlTemp.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_picurls"; $sqlTemp.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_content"; $sqlTemp.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_picurls"; $sqlTemp.=" from biz_interaction ita "; $sqlTemp.=" left join biz_worker wk on wk.id=ita.fromerid "; $sqlTemp.=" left join base_user wkbu on wkbu.id=wk.base_userid "; $sqlTemp.=" left join biz_trader bt on ita.biz_catalog>=2 and bt.id=ita.objectid "; $sqlTemp.=" left join base_user btbu on ita.biz_catalog>=2 and btbu.id=bt.base_userid "; $sqlTemp.=" left join biz_todowork tdwk on ita.biz_catalog>=2 and tdwk.id=ita.biz_id"; $sqlTemp.=" left join biz_trader_recruit btr on ita.biz_catalog>=2 and (btr.id=tdwk.biz_recruitid or btr.id=ita.biz_id)"; $sqlTemp.=" where ita.id=".intval($bizId); $datainfo = pdo_fetch($sqlTemp); if(empty($datainfo)) throw new GeneralException("","没有定位到记录!"); if (intval($datainfo["biz_catalog"]) <2) throw new GeneralException("", "当前记录不是投诉类别"); if (!empty($bizWorker) && intval($datainfo["fromerid"]) !=intval($bizWorker["id"])) throw new GeneralException("", "当前记录不是您发起的"); $datainfo["createtime"]=date("Y-m-d H:i:s",$datainfo["createtime"]); $datainfo["finishtime"]=date("Y-m-d H:i:s",$datainfo["finishtime"]); $datainfo["statusName"]=bizbase_interactionStatusName($datainfo["status"]); unset($datainfo["remark"]); if(intval($baseUser["subsystem"])==SUBSYS_PLAT_PCWEB){ $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":biz_id"]=intval($datainfo["id"]); $sqlTemp =""; $sqlTemp.=" set @handle_id=0; "; $sqlTemp.=" select @handle_id:=id from biz_interaction where id=:biz_id and ifnull(readed,0)=0 limit 1;"; $sqlTemp.=" update biz_interaction set `updatetime`=:nowtime,readed=1 where ifnull(@handle_id,0)=0 and id=:biz_id;"; $dataset = pdo_query3($sqlTemp,$sqlParam); } return $datainfo; break; case "submitNewComplaint": $content = isset($ajaxdata["content"]) ? $ajaxdata["content"] : $GPC["content"]; if (empty(trim($content))) throw new GeneralException("", "没有传递必要的content参数或内容为空"); $sqlParam=array(); $sqlParam[":nowtime"]=time(); $sqlParam[":workerid"]=$bizWorker["id"]; $sqlParam[":content"]=$content; $workId = isset($ajaxdata["workid"]) ? $ajaxdata["workid"] : $GPC["workid"]; if(intval($workId)>0){ $workInfo = pdo_fetch("select tdwk.* ,btr.biz_traderid, btr.feetotal as pay_feetotal from biz_todowork tdwk left join biz_trader_recruit btr on btr.id=tdwk.biz_recruitid where tdwk.id=" . intval($workId)); if (empty($workInfo)) throw new GeneralException("", "订单id没有对应的记录,请核查!"); if (intval($workInfo["biz_traderid"])<=0) throw new GeneralException("", "订单id没有对应的商家记录,请核查!"); $sqlParam[":biz_catalog"]=3; $sqlParam[":biz_id"]=intval($workId); $sqlParam[":objectid"]=intval($workInfo["biz_traderid"]); $lastData = pdo_fetch("select * from biz_interaction where fromerid=:workerid and biz_catalog=:biz_catalog and `biz_id`=:biz_id and `objectid`=:objectid order by id desc limit 1",array( ":workerid"=>$sqlParam[":workerid"], ":biz_catalog"=>$sqlParam[":biz_catalog"], ":biz_id"=>$sqlParam[":biz_id"], ":objectid"=>$sqlParam[":objectid"], )); if (!empty($lastData) && intval($lastData["status"])<3) throw new GeneralException("waitSettle", "此订单的投诉还未处理,请等待处理后再提交新的投诉吧!"); }else{ bizbase_verifyUserAccount($bizWorker, true, "无法投诉"); $recuritid = isset($ajaxdata["recuritid"]) ? $ajaxdata["recuritid"] : $GPC["recuritid"]; if(intval($recuritid)<=0) throw new GeneralException("", "没有传递必要的workid/recuritid参数或值为空"); $recuritInfo = pdo_fetch("select * from biz_trader_recruit where id=" . intval($recuritid)); if (empty($recuritInfo)) throw new GeneralException("", "招聘id没有对应的记录,请核查!"); if (intval($recuritInfo["biz_traderid"])<=0) throw new GeneralException("", "招聘id没有对应的商家记录,请核查!"); $sqlParam[":biz_catalog"]=2; $sqlParam[":biz_id"]=intval($recuritid); $sqlParam[":objectid"]=intval($recuritInfo["biz_traderid"]); $lastData = pdo_fetch("select * from biz_interaction where fromerid=:workerid and biz_catalog=:biz_catalog and `biz_id`=:biz_id and `objectid`=:objectid order by id desc limit 1",array( ":workerid"=>$sqlParam[":workerid"], ":biz_catalog"=>$sqlParam[":biz_catalog"], ":biz_id"=>$sqlParam[":biz_id"], ":objectid"=>$sqlParam[":objectid"], )); if (!empty($lastData) && intval($lastData["status"])<3) throw new GeneralException("waitSettle", "此招聘的投诉还未处理,请等待处理后再提交新的投诉吧!"); } $sqlTemp=""; $sqlTemp.=" insert into biz_interaction set createtime=:nowtime"; $sqlTemp.=" ,biz_catalog=:biz_catalog, `biz_id`=:biz_id "; $sqlTemp.=" ,fromerid=:workerid, objectid=:objectid, `status`=1; "; $sqlTemp.=" insert into biz_interaction_talk set createtime=:nowtime "; $sqlTemp.=" ,parentid=LAST_INSERT_ID(), catalog=0, content=:content; "; $backdata = pdo_query($sqlTemp, $sqlParam); return $backdata; break; case "finishComplaint": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; $datainfo = pdo_fetch("select * from biz_interaction where id=" . intval($bizId)); if(empty($datainfo)) throw new GeneralException("","没有定位到记录!"); if (intval($datainfo["status"]) != 1) throw new GeneralException("", "当前投诉记录不是待回复状态"); if (intval($datainfo["biz_catalog"]) <2) throw new GeneralException("", "当前记录不是投诉类别"); $replyContent = isset($ajaxdata["replyContent"]) ? $ajaxdata["replyContent"] : $GPC["replyContent"]; $sqlTemp=""; $sqlTemp.=" update biz_interaction set updatetime=:nowtime, finishtime=:nowtime, `status`=3, remark=concat(:remark,ifnull(remark,'')) where id=:itaid;"; $sqlTemp.=" insert into biz_interaction_talk set createtime=:nowtime "; $sqlTemp.=" , parentid=:itaid, catalog=1, content=:content; "; $backdata = pdo_query($sqlTemp,array( ":nowtime"=>time(),":itaid"=>$datainfo["id"], ":content"=>$replyContent,":remark"=>"[".date("Y-m-d H:i:s",time())."] 回复后结单 \n")); return $backdata; break; case "deleteComplaint": $bizId = isset($ajaxdata["bizId"]) ? $ajaxdata["bizId"] : $GPC["bizId"]; $datainfo = pdo_fetch("select * from biz_interaction where id=" . intval($bizId)); if(empty($datainfo)) throw new GeneralException("","没有定位到记录!"); if (intval($datainfo["deleted"]) != 0) throw new GeneralException("", "当前投诉记录已删除了,不能重复删除"); if (intval($datainfo["status"]) != 3) throw new GeneralException("", "当前投诉记录不是已完结状态,不能删除"); if (intval($datainfo["biz_catalog"]) <2) throw new GeneralException("", "当前记录不是投诉类别"); $reason = isset($ajaxdata["reason"]) ? $ajaxdata["reason"] : $GPC["reason"]; $sqlTemp=""; $sqlTemp.=" update biz_interaction set updatetime=:nowtime, `deleted`=1, remark=concat(:remark,ifnull(remark,'')) where id=:itaid;"; $backdata = pdo_query($sqlTemp,array( ":nowtime"=>time(),":itaid"=>$datainfo["id"], ":remark"=>"[".date("Y-m-d H:i:s",time())."] 删除 {$reason} \n")); return $backdata; break; default: throw new GeneralException("","不支持的handleMode!"); } } function bizbase_interactionStatusName($status){ $statusName=""; switch(intval($status)){ case 0: $statusName="待提交草稿"; break; case 1: $statusName="已提交待回复"; break; case 2: $statusName="已回复待继续咨询"; break; case 3: $statusName="已结束会话待发起者评价"; break; case 4: $statusName="发起者评价待处理者评价"; break; case 5: $statusName="处理者已评价结单"; break; } return $statusName; } function bizbase_interactionLastSuggestion($bizWorkerTrader){ $sqlParam=array(); switch(intval($bizWorkerTrader["subsystem"])){ case SUBSYS_LABOUR_MINA: $sqlParam[":biz_catalog"]=0; $sqlParam[":userid"]=$bizWorkerTrader["id"]; break; case SUBSYS_CAPITAL_MINA: $sqlParam[":biz_catalog"]=1; $sqlParam[":userid"]=$bizWorkerTrader["id"]; break; default:throw new GeneralException("","不支持的subsystem!"); } $sqlTemp=""; $sqlTemp.=" select *"; $sqlTemp.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_content"; $sqlTemp.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_picurls"; $sqlTemp.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_content"; $sqlTemp.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_picurls"; $sqlTemp.=" from biz_interaction ita"; $sqlTemp.=" where ita.biz_catalog=:biz_catalog and ita.fromerid=:userid"; $sqlTemp.=" order by ita.id desc "; $sqlTemp.=" limit 1 "; $lastdata = pdo_fetch($sqlTemp, $sqlParam); return $lastdata; } function bizbase_interactionAboutQuery($subSystem, $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 "fetchallSuggestion": case "fetchallComplaint": $sqlParam=array(); $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 "catalog": switch(intval($fdValue)){ case 1: $queryNew .=" and ita.`status`<3 "; break; case 2: $queryNew .=" and ita.`status`>=3 "; break; } break; case "memberName": $paramName = ":qy_memberName"; $queryNew .=" and (wk.true_name like concat('%',{$paramName},'%') or wk.nickname like concat('%',{$paramName},'%')) "; $sqlParam[$paramName] = $fdValue; break; case "traderName": $paramName = ":qy_traderName"; $queryNew .=" and (bt.company_name like concat('%',{$paramName},'%')) "; $sqlParam[$paramName] = $fdValue; break; case "biz_catalog": $queryNew .=" and ita.`biz_catalog` =".(int)$fdValue; break; } } $query=$queryNew; } if(!empty($bizWorker)){ $query .= " and ita.fromerid=" . intval($bizWorker["id"]) . " "; } if(!empty($bizTrader)){ $query .= " and ita.fromerid=" . intval($bizTrader["id"]) . " "; } switch($handleMode){ case "fetchallSuggestion": $query .= " and ita.biz_catalog<2 "; break; case "fetchallComplaint": $query .= " and ita.biz_catalog>=2 "; break; } $orderby = isset($ajaxdata["orderby"]) ? $ajaxdata["orderby"] : $GPC["orderby"]; switch(intval($orderby)){ default://创建时间倒序 $orderby=" order by ita.id desc "; break; } $sqlBody=""; $sqlBody.=" from biz_interaction ita "; $sqlBody.=" left join biz_worker wk on wk.id=ita.fromerid "; $sqlBody.=" left join base_user wkbu on wkbu.id=wk.base_userid "; $sqlBody.=" left join biz_trader bt0 on bt0.id=ita.fromerid "; $sqlBody.=" left join base_user btbu0 on btbu0.id=bt0.base_userid "; $sqlBody.=" left join biz_trader bt on ita.biz_catalog>=2 and bt.id=ita.objectid "; $sqlBody.=" left join base_user btbu on ita.biz_catalog>=2 and btbu.id=bt.base_userid "; $sqlBody.=" left join biz_todowork tdwk on ita.biz_catalog>=2 and tdwk.id=ita.biz_id"; $sqlBody.=" left join biz_trader_recruit btr on ita.biz_catalog>=2 and (btr.id=tdwk.biz_recruitid or btr.id=ita.biz_id)"; $sqlBody.=" where ita.`deleted`=0 ".$query; //查询sql及统计sql $start = (intval($pageIndex) - 1) * $pageSize; $sqlFetch =" select ita.* "; $sqlFetch.=" ,(case when wk.true_name<>'' then wk.true_name else wk.nickname end) as wk_truename,wkbu.mobile as wkbu_mobile "; $sqlFetch.=" ,bt0.company_name as bt0_truename,btbu0.mobile as btbu0_mobile "; $sqlFetch.=" ,bt.company_name as bt_truename,btbu.mobile as btbu_mobile "; $sqlFetch.=" ,btr.title as btr_title "; $sqlFetch.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_content"; $sqlFetch.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=0 order by id asc limit 1) as ask_picurls"; $sqlFetch.=" ,(select content from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_content"; $sqlFetch.=" ,(select picurls from biz_interaction_talk where parentid=ita.id and catalog=1 order by id asc limit 1) as answer_picurls"; $sqlFetch.=" {$sqlBody} {$orderby} limit {$start},{$pageSize} "; $pageData = pdo_fetchall($sqlFetch, $sqlParam); foreach($pageData as &$data){//数据转换/映射 $data["pasttimeTips"]=bizbase_pasttimeTips($data["createtime"]); $data["createtime"]=date("Y-m-d H:i:s",$data["createtime"]); $data["finishtime"]=date("Y-m-d H:i:s",$data["finishtime"]); $data["statusName"]=bizbase_interactionStatusName($data["status"]); unset($data["remark"]); } $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_statisticsEntityHandle($subSystem, $handleMode, $baseUser, $bizUser, $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 "fetchUndoList": $backdata=bizPlater_undoList(); return $backdata; break; case "fetchallByPlater": case "fetchmoneyByPlater": case "fetchmemberByPlater": $qstartDate = isset($ajaxdata["startDate"]) ? $ajaxdata["startDate"] : $GPC["startDate"]; $qendDate = isset($ajaxdata["endDate"]) ? $ajaxdata["endDate"] : $GPC["endDate"]; $qstartDate=strtotime($qstartDate); $qendDate=strtotime($qendDate); $qendDate=$qendDate>0?$qendDate:39506057756; //------------------------------------------------- $monthFirstDate = strtotime(date("Y-m-01",time())); $monthLastDate = strtotime("+1 month -1 day",$monthFirstDate); $todayStart = strtotime(date("Y-m-d",time())); $todayFinish = strtotime(date("Y-m-d 23:59:59",time())); $yestodayStart =strtotime("-1 day",strtotime(date("Y-m-d",time()))); $yestodayFinish = strtotime(date("Y-m-d 23:59:59",$yestodayStart)); $backdata=array(); if ($handleMode != "fetchmoneyByPlater") { $backdata["trader_total"]=pdo_fetchcolumn("select count(*) from biz_trader where deleted=0;"); $backdata["worker_total"]=pdo_fetchcolumn("select count(*) from biz_worker where deleted=0;"); $backdata["worker_trace_total"]=pdo_fetchcolumn("select ifnull(count(*),0) from biz_worker_trace where deleted=0;"); $backdata["worker_month_total"]=pdo_fetchcolumn("select count(*) from biz_worker where deleted=0 and createtime>=:month1 and createtime<=:month2",array( ":month1"=>$monthFirstDate, ":month2"=>$monthLastDate, )); $backdata["worker_today_total"]=pdo_fetchcolumn("select count(*) from biz_worker where deleted=0 and createtime>=:today1 and createtime<=:today2",array( ":today1"=>$todayStart, ":today2"=>$todayFinish, )); $backdata["trader_total_query"]=pdo_fetchcolumn("select count(*) from biz_trader where deleted=0 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["worker_total_query"]=pdo_fetchcolumn("select count(*) from biz_worker where deleted=0 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["recruit_total_query1"]=pdo_fetchcolumn("select count(*) from biz_trader_recruit where deleted=0 and `status`>=0 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["recruit_total_query2"]=pdo_fetchcolumn("select count(*) from biz_trader_recruit where deleted=0 and `status`>=2 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["need_total_query"]=pdo_fetchcolumn("select sum(need_total) from biz_trader_recruit where deleted=0 and `status`>=0 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["wkrefuse_total_query"]=pdo_fetchcolumn("select count(*) from biz_todowork where deleted=0 and `status`=-1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["wkenroll_total_query"]=pdo_fetchcolumn("select count(*) from biz_todowork where deleted=0 and `status`>=0 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["wkpass_total_query"]=pdo_fetchcolumn("select count(*) from biz_todowork where deleted=0 and `status`>=2 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["wkexcept_total_query"]=pdo_fetchcolumn("select count(*) from biz_todowork where deleted=0 and `status`<0 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["wkfinish_total_query"]=pdo_fetchcolumn("select count(*) from biz_todowork where deleted=0 and `status`=5 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); } if ($handleMode != "fetchmoneyByPlater") {//--------moneyAbout----------------------------- $backdata["number_income_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_trader_numaccount where deleted=0 and `type`=0 and biz_catalog=0 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["activity_income_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_worker_account where deleted=0 and `type`=1 and biz_catalog=1 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["work_income_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_trader_account where deleted=9 and `type`=1 and biz_catalog>=1 and biz_catalog<=3 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["share_outgo_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_trader_account where deleted=9 and `type`=1 and biz_catalog=2 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["salary_outgo_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_trader_account where deleted=9 and `type`=1 and biz_catalog=3 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["plat_agentpay_total_query"]=round(pdo_fetchcolumn("select ifnull(sum(money),0) from biz_trader_account where deleted=0 and `type`=1 and biz_catalog=7 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )),2); $backdata["plat_workincome_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_trader_account where deleted=9 and `type`=1 and biz_catalog=1 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["worker_income_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_worker_account where deleted=0 and `type`=0 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["worker_outgo_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_worker_account where deleted=0 and `type`=1 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["worker_balance_total_query"]=round(floatval($backdata["worker_income_total_query"])-floatval($backdata["worker_outgo_total_query"]),2); $backdata["worker_withdraw_total_query"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_worker_account where deleted=0 and `type`=1 and biz_catalog=0 and `status`>=1 and createtime>=:qstartDate and createtime<=:qendDate",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )); $backdata["worker_income_total"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_worker_account where deleted=0 and `type`=0 and `status`>=1",array()); $backdata["worker_outgo_total"]=pdo_fetchcolumn("select ifnull(sum(money),0) from biz_worker_account where deleted=0 and `type`=1 and `status`>=1 ",array()); $backdata["worker_balance_total"]=round(floatval($backdata["worker_income_total"])-floatval($backdata["worker_outgo_total"]),2); $backdata["trader_debt2plat_total_query"]=round(pdo_fetchcolumn("select ifnull(sum(case when debt>0 then debt else 0 end),0) as debt from (select ifnull(sum(case when `type`=1 then money when `type`=0 then -money else 0 end),0) as debt from biz_trader_account where deleted=0 and `status`>=1 and biz_roletype=0 and createtime>=:qstartDate and createtime<=:qendDate group by biz_traderid) as temp ",array( ":qstartDate"=>$qstartDate, ":qendDate"=>$qendDate, )),2); $backdata["plat_income_total_query"]=round($backdata["plat_workincome_total_query"]+$backdata["number_income_total_query"]+$backdata["activity_income_total_query"],2); $backdata["plat_outgo_total_query"]=$backdata["trader_debt2plat_total_query"]; $backdata["plat_balance_total_query"]=round($backdata["plat_income_total_query"]-$backdata["plat_outgo_total_query"],2); } if($handleMode == "fetchallByPlater"){ $outSql=" select sum(ifnull(money,0)) as total"; $outSql.=" from biz_trader_account "; $outSql.=" where biz_roletype = 0 and type = 1 and deleted = 0 and status= 1 and biz_catalog=8"; $shopOutlist = pdo_fetchall($outSql, array()); //冻结工单费用 $frozenSql=" select sum(ifnull(money,0)) as total "; $frozenSql.=" from biz_trader_account "; $frozenSql.=" where biz_roletype = 0 and type = 0 and deleted=0 and status=1 and biz_catalog = 6"; $shopFrozenIn = pdo_fetchall($frozenSql, array());//工单费用解冻 $shopFrozenBalance=round(floatval($shopOutlist[0]["total"]), 2)-round(floatval($shopFrozenIn[0]["total"]), 2);//商户冻结余额,即当前实际冻结的金额 $userOut=" select sum(ifnull(money,0)) as total "; $userOut.=" from biz_worker_account "; $userOut.=" where deleted=0 and `status`=1 and type=0"; $userOutList = pdo_fetchall($userOut, array()); $userFrozenSql =" select sum(ifnull(money,0)) as total "; $userFrozenSql.=" from biz_worker_account "; $userFrozenSql.=" where deleted=0 and `status`=1 and type=1"; $userFrozenIn = pdo_fetchall($userFrozenSql, array()); $userFrozenBalance=round(floatval($userOutList[0]["total"]), 2)-round(floatval($userFrozenIn[0]["total"]), 2);//用户冻结余额,即当前实际冻结的金额 // 商户总共支付会员---总金额 $sumSql ="select sum(ifnull(money,0)) as total from biz_trader_account where (deleted=9 or deleted=0) and `status`=1 and type=1 and biz_catalog = 3"; $sumPay = pdo_fetchall($sumSql, array()); $sumPay = round(floatval($sumPay[0]["total"]), 2); // 平台收益 $adminSql =" select sum(ifnull(money,0)) as total "; $adminSql.=" from biz_worker_account "; $adminSql.=" where (deleted=9 or deleted=0) and `status`=1 and type=1 and biz_catalog = 1"; $adminSql = pdo_fetchall($adminSql, array()); $adminSum = round(floatval($adminSql[0]["total"]), 2); // 未提现金额:所有会员&商家的账户余额(即待提现金额)的总和 $shop_sum_sql =" select type,money as total "; $shop_sum_sql.=" from biz_trader_account "; $shop_sum_sql.=" where biz_roletype=0 and `deleted`=0 and `status`=1"; $totalList = pdo_fetchall($shop_sum_sql, 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; } } $shopBalance = round(floatval($income - $outgoing),2); $user_sum_sql =" select type,money as total "; $user_sum_sql.=" from biz_worker_account "; $user_sum_sql.=" where deleted=0 and `status`=1 "; $totalList = pdo_fetchall($user_sum_sql, array()); $user_income=0.0; $user_outgoing=0.0; foreach($totalList as $item){ switch(intval($item["type"])){ case 0://收入 $user_income += round(floatval($item["total"]), 2); break; case 1://支出 $user_outgoing = round(floatval($item["total"]), 2); break; } } $userBalance = round($user_income - $user_outgoing,2); $sum = $shopBalance + $userBalance; $newSum = [ 'shopFrozenBalance'=>round($shopFrozenBalance,2) , 'userFrozenBalance'=>round($userFrozenBalance,2) , 'sumPay'=>round($sumPay,2) , 'adminSum'=>round($adminSum,2) , 'remaining_sum'=> round($sum,2) ]; $backdata['newSum'] = $newSum; } return $backdata; break; default: throw new GeneralException("","不支持的handleMode!"); } }