/** * @author: liaoxianwen@ymt360.com * @description 将product表的数据复制到sku表中,生产新的sku_number */ public function repair_t_sku() { $data = $this->MProduct->get_lists("id, status, title, spec, category_id"); foreach ($data as $v) { $req_time = $this->input->server('REQUEST_TIME'); $property = json_decode($v['spec'], TRUE); $single_price_property = array(); // 修复规格里面的单价属性 if ($property) { foreach ($property as $pro_val) { if (isset($pro_val['name'])) { if ($pro_val['name'] == '单价') { $single_price_property = $pro_val; } } } } $single_price = 0; $close_unit = 0; if ($single_price_property) { $units = C('unit'); $prop_arr = explode('/', $single_price_property['val']); if (isset($prop_arr[1])) { $close_unit_name = $prop_arr[1]; foreach ($units as $unit_val) { if ($unit_val['name'] == $close_unit_name) { $close_unit = $unit_val['id']; } } $single = explode('元', $prop_arr[0]); $single_price = $single[0] * 100; } } $sku_data = array('id' => $v['id'], 'name' => $v['title'], 'spec' => $v['spec'], 'sku_number' => set_sku($v['id']), 'error_code' => C('status.common.success'), 'category_id' => $v['category_id'], 'status' => C('status.common.success'), 'created_time' => $req_time, 'updated_time' => $req_time); $up_data = array('single_price' => $single_price, 'close_unit' => $close_unit, 'sku_number' => set_sku($v['id'])); if (intval($v['status']) === 0) { $up_data['is_active'] = 0; } else { $up_data['is_active'] = 1; } // 更新product 的sku号 $this->MProduct->update_info($up_data, array('id' => $v['id'])); // 创建新的sku信息 $this->MSku->create($sku_data); } }
/** * @author: liaoxianwen@ymt360.com * @description 产品创建 */ public function create() { $format_data = $this->_format_data(); extract($format_data); $lock_name = 'create__Lock30'; $product_id = $this->MSku->{$lock_name}($product); if (is_bool($product_id)) { $this->_return_json(array('status' => C('tips.code.op_failed'), 'msg' => '不要点击太快了,或许也有伙伴也在操作一样的信息')); } $sync_status = -1; if ($product_id) { $this->MSku->create_unlock($lock_name, $product); $sync_data['id'] = $product_id; $sync_data['code'] = set_sku($product_id); $sync_data['cate_id'] = $product['category_id']; $sync_data['name'] = $product['name']; // 更新sku货号 $update_data = array('sku_number' => $sync_data['code']); $where = array('id' => $product_id); $this->MSku->update_info($update_data, $where); $sync_status = $this->_sync_to_wms($sync_data); } $this->_return_json(array('status' => C('tips.code.op_success'), 'msg' => '保存成功', 'sync' => $sync_status)); }
/** * @author caochunhui@dachuwang.com * @description 格式化订单列表 */ private function _format_order_list($order_list = array()) { if (empty($order_list)) { return $order_list; } //批量取出下单用户信息 $user_ids = array_column($order_list, 'user_id'); $user_ids = array_unique($user_ids); $users = $this->MCustomer->get_lists('*', ['in' => ['id' => $user_ids]]); $user_ids = array_column($users, 'id'); $user_map = array_combine($user_ids, $users); $city_ids = array_column($users, 'city_id'); $province_ids = array_column($users, 'province_id'); $county_ids = array_column($users, 'county_id'); $location_ids = array_merge($city_ids, $province_ids, $county_ids); //取出用到的city_name, province_name, county_name $locations = $this->MLocation->get_lists('*', ['in' => array('id' => $location_ids)]); $location_ids = array_column($locations, 'id'); $location_map = array_combine($location_ids, $locations); //线路相关 $line_ids = array_column($users, 'line_id'); $lines = $this->MLine->get_lists('*', ['in' => array('id' => $line_ids)]); $line_ids = array_column($lines, 'id'); $line_map = array_combine($line_ids, $lines); //取出用到的bd $bd_ids = array_column($users, 'invite_id'); $bd_ids = array_filter(array_unique($bd_ids)); $bd_map = []; if (!empty($bd_ids)) { $bd_users = $this->MUser->get_lists('id, name, mobile', array('in' => array('id' => $bd_ids))); $bd_ids = array_column($bd_users, 'id'); $bd_map = array_combine($bd_ids, $bd_users); } //批量取出订单详情 $order_ids = array_column($order_list, 'id'); $where = ['in' => ['order_id' => $order_ids]]; $order_details = $this->MOrder_detail->get_lists('*', $where); $detail_map = []; foreach ($order_details as &$item) { $order_id = $item['order_id']; $item['price'] /= 100; $item['sum_price'] /= 100; $item['created_time'] = date('Y/m/d H:i', $item['created_time']); $item['updated_time'] = date('Y/m/d H:i', $item['updated_time']); $item['sku_id'] = set_sku($item['product_id']); $spec = json_decode($item['spec'], TRUE); if (!empty($spec)) { foreach ($spec as $idx => $spec_arr) { if (empty($spec_arr['name']) || empty($spec_arr['val'])) { unset($spec[$idx]); } } $item['spec'] = $spec; } else { $item['spec'] = ''; } $item['spec_str'] = $this->_format_spec($item['spec']); if (isset($detail_map[$order_id])) { $detail_map[$order_id][] = $item; } else { $detail_map[$order_id] = [$item]; } } unset($item); foreach ($order_list as $idx => &$item) { //价格和时间 $item['total_price'] = $item['total_price'] / 100; $item['deal_price'] = $item['deal_price'] / 100; $item['created_time'] = date('Y/m/d H:i', $item['created_time']); $deliver_arr = $this->_deliver_dict; $item['deliver_time'] = isset($deliver_arr[$item['deliver_time']]) ? $deliver_arr[$item['deliver_time']] : ''; $item['deliver_date'] = date('Y/m/d', $item['deliver_date']); //用户相关 $user_id = $item['user_id']; $order_user = $user_map[$user_id]; $item['mobile'] = $order_user['mobile']; $item['invite_id'] = $order_user['invite_id']; $item['shop_name'] = $order_user['shop_name']; $item['realname'] = $order_user['name']; $item['county_id'] = $order_user['county_id']; //线路 $line_id = $order_user['line_id']; $item['line_id'] = $line_id; $order_line = isset($line_map[$line_id]) ? $line_map[$line_id] : []; $item['line'] = !empty($order_line) ? $order_line['name'] : ''; //地址商圈相关 $city_id = $order_user['city_id']; $province_id = $order_user['province_id']; $county_id = $order_user['county_id']; $item['province'] = isset($location_map[$province_id]) ? $location_map[$province_id]['name'] : ''; $item['city'] = isset($location_map[$city_id]) ? $location_map[$city_id]['name'] : ''; $item['county'] = isset($location_map[$county_id]) ? $location_map[$county_id]['name'] : ''; $item['address'] = $order_user['address']; //bd信息 $invite_id = $order_user['invite_id']; if (!isset($bd_map[$invite_id])) { $item['bd'] = ''; $item['bd_mobile'] = ''; } else { $item['bd'] = $bd_map[$invite_id]['name']; $item['bd_mobile'] = $bd_map[$invite_id]['mobile']; } //订单状态 $status = $item['status']; $item['status_cn'] = $this->_status_dict[$status]; $order_id = $item['id']; $item['detail'] = isset($detail_map[$order_id]) ? $detail_map[$order_id] : []; } unset($item); return $order_list; }