/** * 提交保存点评 * @param unknown_type $user_id 提交点评的会员 * @param unknown_type $param 参数 详细规则见 check_dp_status函数说明 * @param unknown_type $content 点评文字内容 * @param unknown_type $dp_point 总评分 * @param unknown_type $dp_image 点评的图片数组 array("./public/...","./public/....."); * @param unknown_type $tag_group 点评标签(二维数组),格式如下 * array( * "group_id" = array("tag","tag") * ); 其中group_id为分组的ID,第二维为每个分组中的tag * @param unknown_type $point_group 点评评分分组数据,格式如下 * array( * "group_id" => "point" * ); 其中group_id为分组的ID,point为对应分组的评分 * * 返回 array("status"=>bool, "info"=>"消息","location_id"=>"门店的ID","deal_id"=>"","youhui_id"=>"","event_id"=>""); */ function save_review($user_id, $param = array("deal_id" => 0, "youhui_id" => 0, "event_id" => 0, "location_id" => 0, "order_item_id" => 0, "youhui_log_id" => 0, "event_submit_id" => 0), $content, $dp_point, $dp_image = array(), $tag_group = array(), $point_group = array()) { //获取参数 $order_item_id = intval($param['order_item_id']); //订单商品ID $youhui_log_id = intval($param['youhui_log_id']); //优惠券领取日志ID $event_submit_id = intval($param['event_submit_id']); //活动报名日志ID if ($order_item_id > 0) { $deal_id = intval($GLOBALS['db']->getOne("select deal_id from " . DB_PREFIX . "deal_order_item where id = " . $order_item_id)); } else { $deal_id = intval($param['deal_id']); } if ($youhui_log_id > 0) { $youhui_id = intval($GLOBALS['db']->getOne("select youhui_id from " . DB_PREFIX . "youhui_log where id = " . $youhui_log_id)); } else { $youhui_id = intval($param['youhui_id']); } if ($event_submit_id > 0) { $event_id = intval($GLOBALS['db']->getOne("select event_id from " . DB_PREFIX . "event_submit where id = " . $event_submit_id)); } else { $event_id = intval($param['event_id']); } $location_id = intval($param['location_id']); //部份初始化的变量 $is_buy = 0; //默认的点评为非购物点评 $avg_price = 0; //均价为0 if ($deal_id > 0) { require_once APP_ROOT_PATH . "system/model/deal.php"; $deal_info = get_deal($deal_id); if ($deal_info) { //验证是否可以点评 $checker = check_dp_status($GLOBALS['user_info']['id'], array("deal_id" => $deal_id, "order_item_id" => $order_item_id)); if (!$checker['status']) { return array("status" => false, "info" => $checker['info']); } else { $supplier_location_id = $checker['supplier_location_id']; } $is_buy = 1; $avg_price = $checker['avg_price']; } else { return array("status" => false, "info" => "你要点评的商品不存在"); } } elseif ($youhui_id > 0) { require_once APP_ROOT_PATH . "system/model/youhui.php"; $youhui_info = get_youhui($youhui_id); if ($youhui_info) { //验证是否可以点评 $checker = check_dp_status($GLOBALS['user_info']['id'], array("youhui_id" => $youhui_id, "youhui_log_id" => $youhui_log_id)); if (!$checker['status']) { return array("status" => false, "info" => $checker['info']); } else { $supplier_location_id = $checker['supplier_location_id']; } } else { return array("status" => false, "info" => "你要点评的优惠券不存在"); } } elseif ($event_id > 0) { require_once APP_ROOT_PATH . "system/model/event.php"; $event_info = get_event($event_id); if ($event_info) { //验证是否可以点评 $checker = check_dp_status($GLOBALS['user_info']['id'], array("event_id" => $event_id, "event_submit_id" => $event_submit_id)); if (!$checker['status']) { return array("status" => false, "info" => $checker['info']); } else { $supplier_location_id = $checker['supplier_location_id']; } } else { return array("status" => false, "info" => "你要点评的活动不存在"); } } elseif ($location_id > 0) { require_once APP_ROOT_PATH . "system/model/supplier.php"; $location_info = get_location($location_id); if ($location_info) { //验证是否可以点评 $checker = check_dp_status($GLOBALS['user_info']['id'], array("location_id" => $location_id)); if (!$checker['status']) { return array("status" => false, "info" => $checker['info']); } else { $supplier_location_id = $checker['supplier_location_id']; } } else { return array("status" => false, "info" => "你要点评的商家不存在"); } } if ($deal_id == 0 && $youhui_id == 0 && $event_id == 0 && $location_id == 0) { return array("status" => false, "info" => "非法的数据"); } //点评入库 $supplier_info = $GLOBALS['db']->getRow("select name,id,new_dp_count_time,supplier_id from " . DB_PREFIX . "supplier_location where id = " . intval($supplier_location_id)); $supplier_id = $supplier_info['supplier_id']; $dp_data = array(); if ($content != "") { $dp_data['is_content'] = 1; $dp_data['content'] = $content; } $dp_data['create_time'] = NOW_TIME; $dp_data['point'] = $dp_point; $dp_data['user_id'] = $user_id; $dp_data['supplier_location_id'] = $supplier_location_id; $dp_data['youhui_id'] = $youhui_id; $dp_data['event_id'] = $event_id; $dp_data['deal_id'] = $deal_id; $dp_data['images_cache'] = serialize($dp_image); $dp_data['supplier_id'] = $supplier_id; $dp_data['status'] = 1; if (count($dp_image) > 0) { $dp_data['is_img'] = 1; } $dp_data['avg_price'] = floatval($avg_price); $GLOBALS['db']->autoExecute(DB_PREFIX . "supplier_location_dp", $dp_data, "INSERT"); $dp_id = $GLOBALS['db']->insert_id(); if ($dp_id > 0) { if ($checker['order_item_id']) { $GLOBALS['db']->query("update " . DB_PREFIX . "deal_order_item set dp_id = " . $dp_id . " where id = '" . $checker['order_item_id'] . "'"); $order_id = intval($GLOBALS['db']->getOne("select order_id from " . DB_PREFIX . "deal_order_item where id = " . $checker['order_item_id'])); update_order_cache($order_id); require_once APP_ROOT_PATH . "system/model/deal_order.php"; distribute_order($order_id); } if ($checker['youhui_log_id']) { $GLOBALS['db']->query("update " . DB_PREFIX . "youhui_log set dp_id = " . $dp_id . " where id = '" . $checker['youhui_log_id'] . "'"); } if ($checker['event_submit_id']) { $GLOBALS['db']->query("update " . DB_PREFIX . "event_submit set dp_id = " . $dp_id . " where id = '" . $checker['event_submit_id'] . "'"); } increase_user_active($user_id, "发表了一则点评"); $GLOBALS['db']->query("update " . DB_PREFIX . "user set dp_count = dp_count + 1 where id = " . $user_id); //创建点评图库 if (count($dp_image) > 0) { foreach ($dp_image as $pkey => $photo) { //点评图片不入商户图片库 // $c_data = array(); // $c_data['image'] = $photo; // $c_data['sort'] = 10; // $c_data['create_time'] = NOW_TIME; // $c_data['user_id'] = $user_id; // $c_data['supplier_location_id'] = $supplier_location_id; // $c_data['dp_id'] = $dp_id; // $c_data['status'] = 0; // $GLOBALS['db']->autoExecute(DB_PREFIX."supplier_location_images", $c_data,"INSERT"); $c_data = array(); $c_data['image'] = $photo; $c_data['dp_id'] = $dp_id; $c_data['create_time'] = NOW_TIME; $c_data['location_id'] = $supplier_location_id; $c_data['supplier_id'] = $supplier_id; $GLOBALS['db']->autoExecute(DB_PREFIX . "supplier_location_dp_images", $c_data, "INSERT"); } } //创建点评评分 foreach ($point_group as $group_id => $point) { $point_data = array(); $point_data['group_id'] = $group_id; $point_data['dp_id'] = $dp_id; $point_data['supplier_location_id'] = $supplier_location_id; $point_data['point'] = $point; $GLOBALS['db']->autoExecute(DB_PREFIX . "supplier_location_dp_point_result", $point_data, "INSERT"); //创建商品点评数据 if ($dp_data['deal_id'] > 0) { $point_data = array(); $point_data['group_id'] = $group_id; $point_data['dp_id'] = $dp_id; $point_data['deal_id'] = $dp_data['deal_id']; $point_data['point'] = $point; $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_dp_point_result", $point_data, "INSERT"); } //创建优惠券点评数据 if ($dp_data['youhui_id'] > 0) { $point_data = array(); $point_data['group_id'] = $group_id; $point_data['dp_id'] = $dp_id; $point_data['youhui_id'] = $dp_data['youhui_id']; $point_data['point'] = $point; $GLOBALS['db']->autoExecute(DB_PREFIX . "youhui_dp_point_result", $point_data, "INSERT"); } //创建活动点评数据 if ($dp_data['event_id'] > 0) { $point_data = array(); $point_data['group_id'] = $group_id; $point_data['dp_id'] = $dp_id; $point_data['event_id'] = $dp_data['event_id']; $point_data['point'] = $point; $GLOBALS['db']->autoExecute(DB_PREFIX . "event_dp_point_result", $point_data, "INSERT"); } } //创建点评分组的标签 foreach ($tag_group as $group_id => $tag_row_arr) { foreach ($tag_row_arr as $tag_row) { $tag_row_data = array(); $tag_row_data['tags'] = $tag_row; $tag_row_data['dp_id'] = $dp_id; $tag_row_data['supplier_location_id'] = $supplier_location_id; $tag_row_data['group_id'] = $group_id; $GLOBALS['db']->autoExecute(DB_PREFIX . "supplier_location_dp_tag_result", $tag_row_data, "INSERT"); insert_match_item($tag_row, "supplier_location_dp", $dp_id, "tags_match"); //更新点评的索引 review_supplier_location_match($supplier_location_id, $tag_row, $group_id); //创建商品点评数据 if ($dp_data['deal_id'] > 0) { $tag_row_data = array(); $tag_row_data['tags'] = $tag_row; $tag_row_data['dp_id'] = $dp_id; $tag_row_data['deal_id'] = $dp_data['deal_id']; $tag_row_data['group_id'] = $group_id; $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_dp_tag_result", $tag_row_data, "INSERT"); } //创建优惠券点评数据 if ($dp_data['youhui_id'] > 0) { $tag_row_data = array(); $tag_row_data['tags'] = $tag_row; $tag_row_data['dp_id'] = $dp_id; $tag_row_data['youhui_id'] = $dp_data['youhui_id']; $tag_row_data['group_id'] = $group_id; $GLOBALS['db']->autoExecute(DB_PREFIX . "youhui_dp_tag_result", $tag_row_data, "INSERT"); } //创建活动点评数据 if ($dp_data['event_id'] > 0) { $tag_row_data = array(); $tag_row_data['tags'] = $tag_row; $tag_row_data['dp_id'] = $dp_id; $tag_row_data['event_id'] = $dp_data['event_id']; $tag_row_data['group_id'] = $group_id; $GLOBALS['db']->autoExecute(DB_PREFIX . "event_dp_tag_result", $tag_row_data, "INSERT"); } } } //更新统计 syn_supplier_locationcount($supplier_info); cache_store_point($supplier_info['id']); //统计商品点评数据 if ($dp_data['deal_id'] > 0) { //计算总点评1-5星人数 $item_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "deal where id = " . $dp_data['deal_id']); $sql = "select count(*) as total,point from " . DB_PREFIX . "supplier_location_dp where deal_id = " . $item_data['id'] . " group by point "; $data_result = $GLOBALS['db']->getAll($sql); foreach ($data_result as $k => $v) { $item_data['dp_count_' . $v['point']] = $v['total']; } $GLOBALS['db']->autoExecute(DB_PREFIX . "deal", $item_data, "UPDATE", " id = " . $item_data['id'] . " "); syn_deal_review_count($item_data['id']); } //创建优惠券点评数据 if ($dp_data['youhui_id'] > 0) { //计算总点评1-5星人数 $item_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "youhui where id = " . $dp_data['youhui_id']); $sql = "select count(*) as total,point from " . DB_PREFIX . "supplier_location_dp where youhui_id = " . $item_data['id'] . " group by point "; $data_result = $GLOBALS['db']->getAll($sql); foreach ($data_result as $k => $v) { $item_data['dp_count_' . $v['point']] = $v['total']; } $GLOBALS['db']->autoExecute(DB_PREFIX . "youhui", $item_data, "UPDATE", " id = " . $item_data['id'] . " "); syn_youhui_review_count($item_data['id']); } //创建活动点评数据 if ($dp_data['event_id'] > 0) { //计算总点评1-5星人数 $item_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "event where id = " . $dp_data['event_id']); $sql = "select count(*) as total,point from " . DB_PREFIX . "supplier_location_dp where event_id = " . $item_data['id'] . " group by point "; $data_result = $GLOBALS['db']->getAll($sql); foreach ($data_result as $k => $v) { $item_data['dp_count_' . $v['point']] = $v['total']; } $GLOBALS['db']->autoExecute(DB_PREFIX . "event", $item_data, "UPDATE", " id = " . $item_data['id'] . " "); syn_event_review_count($item_data['id']); } $return['location_id'] = $supplier_location_id; $return['deal_id'] = $dp_data['deal_id']; $return['youhui_id'] = $dp_data['youhui_id']; $return['event_id'] = $dp_data['event_id']; $return['status'] = 1; $return['info'] = "发表成功"; return $return; } else { $return['status'] = 0; $return['info'] = "数据库异常,提交失败"; return $return; } }
public function foreverdelete() { //删除指定记录 $ajax = intval($_REQUEST['ajax']); $id = $_REQUEST['id']; if (!empty($id)) { $name = $this->getActionName(); $model = D($name); $pk = $model->getPk(); $ids = explode(',', $id); $condition = array($pk => array('in', $ids)); $condition_link = array("dp_id" => array('in', $ids)); $dp_list = $model->where($condition)->findAll(); if (M("SupplierLocationDpReply")->where($condition_link)->count() > 0) { $this->error("请先清空点评回应", $ajax); } if (false !== $model->where($condition)->delete()) { M("SupplierLocationDpImages")->where($condition_link)->delete(); M("SupplierLocationDpPointResult")->where($condition_link)->delete(); M("SupplierLocationDpTagResult")->where($condition_link)->delete(); M("DealDpPointResult")->where($condition_link)->delete(); M("DealDpTagResult")->where($condition_link)->delete(); M("YouhuiDpPointResult")->where($condition_link)->delete(); M("YouhuiDpTagResult")->where($condition_link)->delete(); M("EventDpPointResult")->where($condition_link)->delete(); M("EventDpTagResult")->where($condition_link)->delete(); foreach ($dp_list as $k => $v) { if ($v['status'] == 1) { $merchant_info = M("SupplierLocation")->getById($v['supplier_location_id']); syn_supplier_locationcount($merchant_info); syn_deal_review_count($v['deal_id']); syn_youhui_review_count($v['youhui_id']); syn_event_review_count($v['event_id']); cache_store_point($merchant_info['id']); } $GLOBALS['db']->query("update " . DB_PREFIX . "user set dp_count = dp_count - 1 where id = " . intval($v['user_id'])); } save_log($ids . l("FOREVER_DELETE_SUCCESS"), 1); $this->success(l("FOREVER_DELETE_SUCCESS"), $ajax); } else { save_log($ids . l("FOREVER_DELETE_FAILED"), 0); $this->error(l("FOREVER_DELETE_FAILED"), $ajax); } } else { $this->error(l("INVALID_OPERATION"), $ajax); } }