コード例 #1
0
 /**
  * @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);
     }
 }
コード例 #2
0
ファイル: sku.php プロジェクト: OranTing/gdby_github_repo
 /**
  * @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));
 }
コード例 #3
0
ファイル: export.php プロジェクト: OranTing/gdby_github_repo
 /**
  * @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;
 }