/** * 返回定价上下架worker具体处理信息 * * @param $flag 0-异常(需重复处理) 1-处理结束 * @param string $msg 处理结果 * @return array */ public static function build_return($flag, $msg = '') { if (BLL_Fixedspread_StaticPlanUpDownSwicher::isDebug()) { var_dump(json_encode(array('status' => $flag, 'msg' => $msg))); } return array('status' => $flag, 'msg' => $msg); }
/** * @return bool|multitype true 输出debug信息 */ public static function isDebug() { if (!isset(self::$debugeSwither)) { self::$debugeSwither = APF::get_instance()->get_config("static_plan_up_down_debug_switch"); } return self::$debugeSwither; }
public static function plan_budget_top($params) { $all_return = array(); $all_return[] = "队列(" . $params['id'] . ")开始处理"; //获取计划信息 $fixPlanInfoObj = Model_Plan_Jp::getPlanInfoByPk($params['plan_id']); if ($fixPlanInfoObj) { $all_return[] = "定价计划" . $fixPlanInfoObj->id . ",status=" . $fixPlanInfoObj->status . ",no_budget_date=" . $fixPlanInfoObj->noBudgetDate; if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { //更新计划信息 $fixPlanInfoObj->noBudgetDate = time(); $fixPlanInfoObj->save(); $all_return[] = "更新计划nobudget数据成功"; } if ($params['remark']) { $remark = json_decode($params['remark'], true); foreach ($remark as $houseId) { $params['pro_id'] = $houseId; $data = Bll_JpPropBll::build_prop_log($params, 7, "房源第二天推广", $params['broker_id']); if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $all_return[] = "房源" . $params['pro_id'] . "第二天推广日志写入失败"; } else { $all_return[] = "房源" . $params['pro_id'] . "第二天推广日志写入成功"; } } } } //写限额不足计划日志 $data = self::build_plan_log($params, 6, "计划限额不足停止", 0); Model_House_UpDown_PlanLog::create($data, date('m'))->save(); $all_return[] = "计划限额不足日志写入成功"; return Bll_JpPropBll::build_return(1, $all_return); }
/** * 108 房源价格变更 * * <ol> * <li> * 查询房源信息是否存在<br> * 如果不存在,返回结束<br> * 如果存在,记录房源编辑日志<br> * </li> * * <li> * 查询房源计划关系<br> * 如果不存在,返回结束<br> * 如果存在,重新计算定价的底价并更新计划关系表中的底价<br> * </li> * * <li> * 查询计划信息<br> * 如果计划不在推广,返回结束<br> * 如果计划正在推广或者第二天推广, 记录房源更新日志<br> * </li> * * <li> * 竞价rebuild(暂未处理) * </li> * </ol> */ public static function change_prop_price($params) { $returnLog = array(); array_push($returnLog, '队列(' . json_encode($params['id']) . ')开始处理'); if (empty($params['pro_id'])) { array_push($returnLog, '房源ID为空'); return self::build_return(1, $returnLog); } if (empty($params['city_id'])) { array_push($returnLog, '城市ID为空'); return self::build_return(1, $returnLog); } if (empty($params['remark'])) { array_push($returnLog, "remark为空"); return self::build_return(1, $returnLog); } $remark = json_decode($params['remark']); if (empty($remark->oldPrice)) { array_push($returnLog, 'oldPrice为空'); return self::build_return(1, $returnLog); } if (empty($remark->price)) { array_push($returnLog, 'price为空'); return self::build_return(1, $returnLog); } //获取房源信息 $propBll = new BLL_Property_Property(); $propInfo = $propBll->getPropBaseInfoById($params['pro_id']); if (isset($propInfo[-9999])) { array_push($returnLog, '获取数据库中房源信息失败'); return self::build_return(0, $returnLog); } if (empty($propInfo)) { array_push($returnLog, '房源信息为空'); return self::build_return(1, $returnLog); } //房源信息存在写入房源编辑信息 $data = self::build_prop_log($params, 2, json_encode(array("oldPrice" => $remark->oldPrice, "newPrice" => $remark->price, "msg" => "房源编辑" . ";队列表id为" . $params['id'])), $params['broker_id']); if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { array_push($returnLog, "房源编辑日志写入失败"); return self::build_return(0, $returnLog); } array_push($returnLog, "房源编辑日志写入"); /** * 新端口城市 */ if (Bll_City::isComboCity($params['city_id'])) { $houseRelationList = Bll_Combo_HouseRelation::getHouseRelation($params['broker_id'], $params['city_id'], array($params['pro_id']), Bll_Combo_HouseRelation::SITE_TYPE_AJK); if (empty($houseRelationList)) { $returnLog[] = '房源套餐关系为空'; return self::build_return(1, $returnLog); } foreach ($houseRelationList as $houseRelation) { if (Bll_Combo_HouseRelation::isRelationOnline($houseRelation['state'])) { $data = self::build_prop_log($params, 4, '房源更新;队列表id为' . $params['id'], $params['broker_id']); if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $returnLog[] = '房源更新日志写入失败'; } else { $returnLog[] = '房源更新日志写入成功'; } } } return self::build_return(1, $returnLog); } //查询房源计划关系 $relationBll = new Bll_FixedSpread_PropFixedPlanRelation(); $relationInfo = $relationBll->getProSpreadRelationByProId($params['pro_id'], $params['city_id']); if (empty($relationInfo)) { array_push($returnLog, '房源计划关系为空'); return self::build_return(1, $returnLog); } /** * 修正房源的计划id */ if (empty($params['plan_id'])) { $params['plan_id'] = $relationInfo['PlanId']; } //定价底价rebuild并更新关系表底价 if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { $fixedBll = new Bll_Fixedspread_AjkFixedSpread(); $result = $fixedBll->rebulidStaticPro($relationInfo['Id'], $params['city_id'], $remark->price); if ($result != true || (string) $result == '未知价格区间') { if ($result == '未知价格区间') { array_push($returnLog, '定价底价rebuild失败,未知价格区间'); } else { array_push($returnLog, '定价底价rebuild失败'); } return self::build_return(0, $returnLog); } array_push($returnLog, '定价底价rebuild成功,oldPrice(' . $remark->oldPrice . ')=>price(' . $remark->price . ')'); } /** 判断计划关系状态 */ if ($relationInfo['Status'] != 1) { array_push($returnLog, '房源不在定价推广中'); return self::build_return(1, $returnLog); } //获取计划信息 $planBll = new Bll_Fixedspread_AjkFixedSpread(); $planInfo = $planBll->getStaticPlanById($params['plan_id']); if (empty($planInfo)) { array_push($returnLog, '计划信息为空'); return self::build_return(1, $returnLog); } $planStatus = $planBll->getFixedPlanStatus($planInfo['Status'], $planInfo['ViewTime']); //1. 刪除 2.推广中 3.第二天推广 4.账户没钱停止 5.手动停止 switch ($planStatus) { case 1: array_push($returnLog, '计划状态已被置为删除'); break; case 2: case 3: //房源推广日志 $data = self::build_prop_log($params, 4, json_encode(array("oldPrice" => $remark->oldPrice, "newPrice" => $remark->price, "msg" => "房源更新" . ";队列表id为" . $params['id'])), $params['broker_id']); if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { array_push($returnLog, "房源更新日志写入失败"); return self::build_return(0, $returnLog); } array_push($returnLog, "房源更新日志写入"); //todo 竞价rebuild break; case 4: array_push($returnLog, "计划状态为账户没钱停止"); break; case 5: array_push($returnLog, "计划状态为手动停止"); break; default: break; } return self::build_return(1, $returnLog); }
public static function delete_prop($params) { //是否套餐经纪人,套餐单独处理 //$broker_info = Dao_Broker_BrokerInfo::get_broker_base_info($params['broker_id']); if (Bll_City::isComboCity($params['city_id'])) { return self::delete_combo_prop($params); } if (empty($params['pro_id'])) { return self::build_return(0, array("房源ID为空")); } $out_return[] = "队列(" . $params['id'] . ")开始处理"; $remark = json_decode($params['remark'], 1); if ($remark['fix'] == 'online') { //记录房源手动移除定价组日志 $data = self::build_prop_log($params, 11, "房源移出定价组", $params['broker_id']); if (Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $all_return[] = "房源手动移出定价组日志写入成功"; } else { $all_return[] = "房源手动移出定价组日志写入失败"; } //写入下线日志 $data = self::build_prop_log($params, 6, "房源下线", $params['broker_id']); if (Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $all_return[] = "房源" . $params['pro_id'] . "下线日志写入成功"; } else { $all_return[] = "房源" . $params['pro_id'] . "下线日志写入失败"; } } elseif ($remark['fix'] == 'stop') { //记录房源手动移除定价组日志 $data = self::build_prop_log($params, 11, "房源移出定价组", $params['broker_id']); if (Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $all_return[] = "房源手动移出定价组日志写入成功"; } else { $all_return[] = "房源手动移出定价组日志写入失败"; } } //获取房源分表信息 if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { $houseInfoObj = Model_House_JpHouseIdx::getPropInfoByPk($params['pro_id']); $houseClass = Model_House_JpHouseIdx::getHouseTypeModelClass($houseInfoObj->houseType); $houseObj = $houseClass::getPropInfoByPk($params['pro_id']); //更新删除房源时间 $houseObj->deleteTime = date("Y-m-d H:i:s"); $houseObj->save(); $all_return[] = "houseType:" . $houseInfoObj->houseType . ",deleteTime:0=>" . date("Y-m-d H:i:s"); } //写房源删除日志 $data = self::build_prop_log($params, 3, "房源删除", 0); if (Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { $all_return[] = '写房源删除日志成功'; return self::build_return(1, $all_return); } else { $all_return[] = '写房源删除日志失败'; return self::build_return(0, $all_return); } }
/** * 303竞价结算 * 1. 查询经纪人所有有效计划, * 没有计划return * * 2. 基于推广计划,查询计划下有效房源(循环计划查询) * * 判断计划状态 * 推广中,contine * 第二天推广,continue * 手动停止,continue * 账户限额不足,计划置为推广中,记录计划推广日志 * 查询计划下房源关系, * 如果为空,contine * 不为空,判断计划状态 * 如果账户余额不足,记录房源推广日志 */ public static function broker_frozen_money($params) { if (empty($params['broker_id'])) { return Bll_JpPropBll::build_return(1, array("经纪人ID为空")); } $returnLog = array(); //获取账户余额 try { $userId = Bll_Broker_MainBusiness::getDataByEsfId($params['broker_id'])->memberId; $balance = Bll_Service_Payment::balance(Bll_Service_Payment::SITE_ANJUKE, array('userId' => $userId)); } catch (Exception $e) { array_push($returnLog, "获取账户余额不足失败"); return Bll_JpPropBll::build_return(0, $returnLog); } if ($balance['data']['balance'] <= 0) { array_push($returnLog, "当前账户余额不足"); return Bll_JpPropBll::build_return(1, $returnLog); } array_push($returnLog, "当前账户余额:" . $balance['data']['balance']); //获取经纪人正在推广的计划 $StaticPricePlanList = DAO_Plan_StaticPricePlan::getStaticPricePlanListByBrokerId($params['broker_id']); foreach ($StaticPricePlanList as $list) { if ($list['Status'] != 1) { //无效的计划 array_push($returnLog, "无效的计划:" . $list['Id'] . ";"); continue; } if ($list['ViewTime'] != 1893427200) { //非账户没钱停止的计划 array_push($returnLog, "计划Id:" . $list['Id'] . "展示时间:" . date("Y-m-d H:i:s", $list['ViewTime']) . ";"); continue; } $tmpStr = "计划Id:" . $list['Id'] . "展示时间:" . date("Y-m-d H:i:s", $list['ViewTime']) . ";"; //获取计划下面的房源 $StaticPriceRelation = DAO_Plan_StaticPriceRelation::getProSpreadRelation($list['Id'], $list['CityId']); //更新计划的状态 if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { DAO_Plan_StaticPricePlan::updateStaticPricePlanById(array('Id' => $list['Id'], 'ViewTime' => time())); } //记录计划日志 $params['plan_id'] = $list['Id']; $data = self::build_plan_log($params, 8, "账户有钱计划推广,动作id:" . $params['id'], $params['broker_id']); if (!Model_House_UpDown_PlanLog::create($data, date('m'))->save()) { array_push($returnLog, "账户有钱计划推广日志写入失败"); return Bll_JpPropBll::build_return(0, $returnLog); } //记录房源日志 foreach ($StaticPriceRelation as $Relation) { $params['pro_id'] = $Relation['ProId']; $data = Bll_EsfPropBll::build_prop_log($params, 5, "房源推广,动作id:" . $params['id'], $params['broker_id']); if (!Model_Log_HouseLogNew::create($data, date('Ymd'))->save()) { array_push($returnLog, "房源" . $Relation['ProId'] . "房源推广日志写入失败"); return Bll_JpPropBll::build_return(0, $returnLog); } $tmpStr .= $Relation['ProId'] . ","; } array_push($returnLog, $tmpStr); } if (empty($returnLog)) { array_push($returnLog, "经纪人没有计划"); } return Bll_JpPropBll::build_return(1, $returnLog); }
public static function broker_frozen_money($params) { $all_return[] = "队列(" . $params['id'] . ")开始处理"; $all_return[] = '金铺竞价结算'; //todo 查询用户所有定价计划,开启计划,上线房源 $ajk_broker_id = $params['broker_id']; //获取金铺经纪人broker_id $jpBrokerInfoObj = Model_Broker_JpBroker::getJpBrokerInfoByAjkBrokerId($params['broker_id']); $params['broker_id'] = $jpBrokerInfoObj->id; //获取由于余额用完停止的计划 $fixInfoObjs = Model_Plan_Jp::getNoBalancePlan($params['broker_id']); foreach ($fixInfoObjs as $fixInfoObj) { $plan_log = array(); $plan_log['id'] = $params['id']; $plan_log['plan_id'] = $fixInfoObj->id; $plan_log['broker_id'] = $ajk_broker_id; $plan_log['city_id'] = $fixInfoObj->cityId; $plan_log['type'] = $params['type']; $plan_log = Bll_JpFixPlanBll::build_plan_log($plan_log, 8, "竞价结算返钱", 0); //写计划日志 if (!Model_House_UpDown_PlanLog::create($plan_log, date('m'))->save()) { $all_return[] = "计划" . $plan_log['planId'] . "计划推广日志写入失败"; } else { $all_return[] = "计划" . $plan_log['planId'] . "计划推广日志写入成功"; } if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { //计划开启 $fixInfoObj->status = 2; $fixInfoObj->stopReason = 0; if (!$fixInfoObj->save()) { return array('status' => 0, 'msg' => array("定价计划" . $plan_log['planId'] . ",更新失败")); } } //获取房源列表 $houseInfoObjs = Model_House_JpHouseIdx::getHouseInfoByFixPlanId($plan_log['planId']); if ($houseInfoObjs) { foreach ($houseInfoObjs as $houseInfoObj) { $prop_log['id'] = $params['id']; $prop_log['pro_id'] = $houseInfoObj->id; $prop_log['plan_id'] = $plan_log['planId']; $prop_log['broker_id'] = $ajk_broker_id; $prop_log['city_id'] = $houseInfoObj->cityId; $prop_log['type'] = $params['type']; $prop_log = Bll_JpPropBll::build_prop_log($prop_log, 5, "竞价结算返钱", 0); //写房源日志 if (!Model_Log_HouseLogNew::create($prop_log, date('Ymd'))->save()) { $all_return[] = "房源" . $houseInfoObj->id . "竞价结算返钱后房源推广日志写入失败"; } else { $all_return[] = "房源" . $houseInfoObj->id . "竞价结算返钱后房源推广日志写入成功"; } if (BLL_Fixedspread_StaticPlanUpDownSwicher::isOnline()) { //获取房源分表信息 $houseClass = Model_House_JpHouseIdx::getHouseTypeModelClass($houseInfoObj->houseType); $houseObj = $houseClass::getPropInfoByPk($houseInfoObj->id); //更新展示房源状态 $houseObj->isList = 1; if ($houseObj->save()) { $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=1成功"; } else { $all_return[] = "houseType=" . $houseInfoObj->houseType . ",更新分表isList=1失败"; } } } } } return Bll_JpPropBll::build_return(1, $all_return); }