function getSchoolPrice($schoolId, $uid) { $tblPrice = new DB_Udo_SchoolPrice(); $tblBought = new DB_Udo_UserBought(); $tblResource = new DB_Sso_Resource(); $bought = 0; //查找出频道的定价信息 $price = $tblPrice->scalar("priceType,price", "where resourceId = {$schoolId}"); //没有查询到定价信息的频道一律按照免费处理 if (!$price) { $price = array("priceType" => Common_Config::UDO_PRICETYPE_FREE, "price" => 0); } //查找用户的购买信息 //原则上免费课程不能加入购买表中 $isBought = $tblBought->fetchAll("resourceId", "where schoolId = {$schoolId} and resourceType = 2 and userId = {$uid}"); //print_r($isBought); //查找该频道下的所有非免费课程 $resource = $tblResource->fetchAll("id", "where entrance_id = {$schoolId} and type = 6 and price_type <> 3 and enabled = 1"); //如果定价免费 if ($price['priceType'] == 3) { $bought = 1; } else { $boughtCount = 0; foreach ($resource as $k => $value) { foreach ($isBought as $l => $val) { if ($value['id'] == $val['resourceId']) { $boughtCount++; break; } } } //考虑到频道中的课程可能会有更新,所以不能以当前频道的购买状态作为频道是否购买的依据, //而是要以非免费课程和已购买课程的数量是否相等作为依据 if ($boughtCount == count($resource) && count($resource) != 0) { $bought = 1; } } return array("price" => $price['price'], "priceType" => $price['priceType'], "isBought" => $bought); }
function newResourcePrice($resourcePrice, $schoolId) { $tblResource = new DB_Sso_Resource(); $tblSchoolPrice = new DB_Udo_SchoolPrice(); $priceSchool = 0; $school = $tblSchoolPrice->scalar("*", "where resourceId = {$schoolId}"); //print_r(count($resourcePrice)); foreach ($resourcePrice as $k => $val) { //print_r($val); $resource = $tblResource->scalar("type,price_type,cur_price", "where id ={$val['resourceId']}"); //print_r($resource); $notFree = $val['notFree']; $freeStr = ""; if (!$notFree) { $priceType = Common_Config::UDO_PRICETYPE_FREE; $freeStr = ",price_type = 3"; } else { $priceType = $school['priceType']; $freeStr = ",price_type={$priceType}"; } $price = $val['price']; $id = $val['resourceId']; $resourceUpdate = $tblResource->query("update resource set cur_price = {$price}" . $freeStr . " where id ={$id}"); //print_r($resource['type']." "); if ($resource['type'] == Common_Config::PUBLIC_COURSE_TYPE) { $priceSchool += $price; //print_r($priceSchool." "); } } $priceSchool *= $school['discount']; $priceSchool = ceil($priceSchool); /*print_r($school['discount']); print_r($priceSchool);*/ $schoolPrice = $tblSchoolPrice->query("update udo_school_price set price={$priceSchool} where resourceId={$schoolId}"); return $resourceUpdate; }
function alterAccount($uid, $schoolId) { $tblSchoolPrice = new DB_Udo_SchoolPrice(); $tblResource = new DB_Sso_Resource(); $tblBought = new DB_Udo_UserBought(); $tblOrder = new DB_Udo_Order(); $schoolPrice = $tblSchoolPrice->scalar("*", "where resourceId = {$schoolId}"); $courseType = Common_Config::PUBLIC_COURSE_TYPE; $free = Common_Config::UDO_PRICETYPE_FREE; $course = $tblResource->fetchAll("id", "where type = {$courseType} and price_type <> {$free} and entrance_id = {$schoolId}"); $resource = []; foreach ($course as $key => $value) { array_push($resource, array("resourceType" => 2, "resourceId" => $value['id'])); } //print_r($resource); $courseIds = $tblResource->columnRow($course, "id"); $resourceType = Common_Config::UDO_RESOURCE_COURSE; $newOrder = $tblOrder->insert(array("userId" => $uid, "resource" => json_encode($resource), "createTime" => time(), "status" => Common_Config::ORDER_SUCCESS, "payType" => $schoolPrice['priceType'] == 1 ? 2 : 1)); foreach ($courseIds as $key => $value) { $tblBought->insert(array("resourceId" => $value, "userId" => $uid, "schoolId" => $schoolId, "createTime" => time(), "resourceType" => $resourceType, "orderId" => $newOrder)); } return 1; }