Esempio n. 1
0
 /**
  * 订单完成\归档.
  *
  * @param $sdf array 订单ID\操作者ID\操作者名称
  *
  * @return bool - 成功与否
  */
 public function generate($sdf, &$msg = '')
 {
     $mdl_order = app::get('b2c')->model('orders');
     $order_sdf = $mdl_order->dump($sdf['order_id']);
     //订单作废前验证
     foreach (vmc::servicelist('b2c.order.end.finish') as $service) {
         if (!$service->exec($order_sdf, $msg)) {
             return false;
         }
     }
     $order_sdf['status'] = 'finish';
     // 更新退款日志结果
     if ($mdl_order->save($order_sdf)) {
         //订单日志记录
         vmc::singleton('b2c_order_log')->set_operator(array('ident' => $sdf['op_id'] ? $sdf['op_id'] : $order_sdf['member_id'], 'model' => $sdf['op_id'] ? 'shopadmin' : 'members', 'name' => $sdf['op_name'] ? $sdf['op_name'] : '会员'))->set_order_id($order_sdf['order_id'])->success('finish', '订单已完成归档!', $order_sdf);
     } else {
         $msg = '完成\\归档失败!';
         return false;
     }
     //订单作废时同步扩展服务
     foreach (vmc::servicelist('b2c.order.end.finish') as $service) {
         if (!$service->exec($order_sdf, $msg)) {
             //记录日志,不中断
             logger::error($sdf['order_id'] . '完成归档时出错!' . $msg);
         }
     }
     return true;
 }
Esempio n. 2
0
 public function index()
 {
     $desktop_user = vmc::singleton('desktop_user');
     $menus = $desktop_user->get_work_menu();
     $user_id = $this->user->get_id();
     foreach ((array) $menus['workground'] as $key => $value) {
         //if($i++>$workground_count) break;
         $fav_menus[] = $key;
     }
     $this->pagedata['title'] = $title;
     $this->pagedata['title_desc'] = $title_desc;
     $this->pagedata['session_id'] = vmc::singleton('base_session')->sess_id();
     $this->pagedata['uname'] = $this->user->get_login_name();
     $this->pagedata['avatar'] = $this->user->get_avatar();
     $this->pagedata['is_super'] = $this->user->is_super();
     $this->pagedata['param_id'] = $user_id;
     $this->pagedata['menus'] = $menus;
     $this->pagedata['fav_menus'] = (array) $fav_menus;
     $this->pagedata['shop_base'] = vmc::base_url(1);
     $this->pagedata['shopadmin_dir'] = $_SERVER['REQUEST_URI'];
     // 桌面内容替换埋点
     foreach (vmc::servicelist('desktop_content') as $services) {
         if (is_object($services)) {
             if (method_exists($services, 'changeContent')) {
                 $services->changeContent(app::get('desktop'));
                 $services->changeContent($desktop_menu);
             }
         }
     }
     $this->display('index.html');
 }
Esempio n. 3
0
 public function index()
 {
     header('Location:index.php?app=b2c&ctl=admin_setting&act=index');
     die;
     $dashboard_from = $this->_request->get_post('f');
     $dashboard_to = $this->_request->get_post('t');
     $default_enter = true;
     if (!$dashboard_to) {
         $dashboard_to = strtotime(date('Y-m-d'));
     } else {
         $default_enter = false;
     }
     if (!$dashboard_from) {
         $dashboard_from = strtotime('-1 week', $dashboard_to);
     } else {
         $default_enter = false;
     }
     //权限带入
     $user = vmc::singleton('desktop_user');
     $is_super = $user->is_super();
     $group = $user->group();
     $group = (array) $group;
     //统一时间格式
     if (strpos($dashboard_from, ':')) {
         $dashboard_from = strtotime($dashboard_from);
         $dashboard_to = strtotime($dashboard_to);
     }
     if ($dashboard_from > $dashboard_to) {
         $tmp_t = $dashboard_to;
         $dashboard_to = $dashboard_from;
         $dashboard_from = $tmp_t;
     }
     //桌面挂件排序,用户自定义
     if ($default_enter && cacheobject::get('desktop.dashboard.widgets' . $dashboard_to, $cache_data) && isset($cache_data['data'])) {
         $this->pagedata['cached_time'] = $cache_data['cached_time'];
         $widgets = $cache_data['data'];
     } else {
         foreach (vmc::servicelist('desktop.widgets') as $key => $obj) {
             if ($is_super || in_array(get_class($obj), $group)) {
                 $item = array('title' => $obj->get_title(), 'layout' => $obj->get_layout(), 'html' => $obj->get_html($dashboard_from, $dashboard_to), 'order' => $obj->get_order());
                 if (method_exists($obj, 'get_classname')) {
                     $item['classname'] = $obj->get_classname();
                 }
                 $widgets[$item['layout']][] = $item;
             }
         }
         if ($default_enter) {
             $cache_data = array('cached_time' => time(), 'data' => $widgets);
             cacheobject::set('desktop.dashboard.widgets' . $dashboard_to, $cache_data, time() + 86400);
             //缓存24小时
         }
     }
     $this->pagedata['widgets'] = $widgets;
     $this->pagedata['dashboard_from'] = $dashboard_from;
     $this->pagedata['dashboard_to'] = $dashboard_to;
     //快捷
     $this->pagedata['tody'] = date('Y-m-d H:i', strtotime(date('Y-m-d')));
     $this->pagedata['from_arr'] = array('w' => date('Y-m-d H:i', strtotime('-1 week', strtotime($this->pagedata['tody']))), 'm' => date('Y-m-d H:i', strtotime('-1 month', strtotime($this->pagedata['tody']))), 'q' => date('Y-m-d H:i', strtotime('-3 month', strtotime($this->pagedata['tody']))));
     $this->display('dashboard.html');
 }
Esempio n. 4
0
 /**
  * 经验值变更减少,更新会员等级.
  *
  * @param $member_id 会员ID
  * @param $experience 新增经验值
  * @param $msg 错误信息
  */
 public function downgrade($member_id, &$experience, &$msg = '')
 {
     $experience = abs(intval($experience));
     $member = $this->mdl_members->dump($member_id);
     if (!$member) {
         $msg = '参数错误!';
     }
     $exp = $member['experience'] - $experience;
     if ($exp < 0) {
         $exp = 0;
     }
     $experience = $member['experience'] = $exp;
     $is_save = $this->mdl_members->save($member);
     $is_touch = $this->mdl_members->touch_lv($member_id);
     $downgrade_flag = $is_save && $is_touch;
     if ($downgrade_flag) {
         //会员经验值减少成功后执行
         foreach (vmc::servicelist('b2c.member.exp.downgrade') as $object) {
             if (method_exists($object, 'exec')) {
                 $object->exec($member_id);
             }
         }
     }
     return $downgrade_flag;
 }
Esempio n. 5
0
 public function index()
 {
     $group[] = array('label' => '商品权重', 'data-submit' => 'index.php?app=b2c&ctl=admin_goods&act=batch_edit&p[0]=dorder', 'data-target' => '_ACTION_MODAL_');
     if ($this->has_permission('catgoods')) {
         $group[] = array('label' => '商品分类', 'data-submit' => 'index.php?app=b2c&ctl=admin_goods&act=batch_edit&p[0]=cat', 'data-target' => '_ACTION_MODAL_');
         $group[] = array('label' => '_SPLIT_');
     }
     $group[] = array('label' => 'PC端展示模板', 'data-submit' => 'index.php?app=b2c&ctl=admin_goods&act=batch_edit&p[0]=template', 'data-target' => '_ACTION_MODAL_');
     $group[] = array('label' => 'HTML5触屏端展示模板', 'data-submit' => 'index.php?app=b2c&ctl=admin_goods&act=batch_edit&p[0]=template_m', 'data-target' => '_ACTION_MODAL_');
     foreach (vmc::servicelist('b2c.goods_finder_edit_group') as $object) {
         if (is_object($object) && method_exists($object, 'get_extends_group')) {
             $object->get_extends_group($group);
         }
     }
     if ($this->has_permission('addgoods')) {
         $custom_actions[] = array('label' => '添加商品', 'icon' => 'fa-plus', 'href' => 'index.php?app=b2c&ctl=admin_goods_editor&act=add');
     }
     $custom_actions[] = array('label' => '批量操作', 'group' => $group);
     $actions_base['title'] = '商品列表';
     $actions_base['actions'] = $custom_actions;
     $actions_base['use_buildin_set_tag'] = true;
     $actions_base['use_buildin_filter'] = true;
     if ($this->has_permission('importgoods')) {
         $actions_base['use_buildin_import'] = true;
     }
     if ($this->has_permission('exportgoods')) {
         $actions_base['use_buildin_export'] = true;
     }
     if ($this->has_permission('deletegoods')) {
         $actions_base['use_buildin_recycle'] = true;
     }
     $actions_base['finder_extra_view'] = array(array('app' => 'b2c', 'view' => '/admin/goods/finder/catalog.html'));
     $this->finder('b2c_mdl_goods', $actions_base);
 }
Esempio n. 6
0
 public function input_element($type, $params = false)
 {
     if (!self::$inputer) {
         if (vmc::is_online()) {
             self::$inputer = vmc::servicelist('html_input');
         } else {
             self::$inputer = array('base_view_input' => new base_view_input());
         }
     }
     if ($params === false) {
         foreach (self::$inputer as $inputer) {
             $inputer->app = $this->app;
             if (method_exists($inputer, 'input_' . $type)) {
                 return true;
             }
         }
     } else {
         foreach (self::$inputer as $inputer) {
             $inputer->app = $this->app;
             if (method_exists($inputer, 'input_' . $type)) {
                 $html = $inputer->{'input_' . $type}($params);
             }
         }
         return $html;
     }
     return false;
 }
Esempio n. 7
0
 /**
  * 获取模板列表信息
  *
  */
 public function getTemplateList()
 {
     $aResult = array();
     foreach (vmc::servicelist('b2c_promotion_tpl_order_apps') as $object) {
         $aResult[get_class($object)] = array('name' => $object->tpl_name, 'type' => $object->type);
     }
     return $aResult;
 }
Esempio n. 8
0
 /**
  * 获得消息发送器列表
  */
 public function get_sender_list()
 {
     $sender_list = array();
     foreach (vmc::servicelist('b2c_messenger_sender') as $key => $v) {
         $sender_list[$key] = (array) $v;
         $sender_list[$key]['methods'] = get_class_methods($v);
     }
     return $sender_list;
 }
Esempio n. 9
0
 public function work($full_object_name)
 {
     $this->url = 'index.php?';
     vmc_('desktop', 'finder_make_get');
     $query = utils::http_build_query($_GET);
     $this->url = $this->url . $query;
     $this->object_name = $full_object_name;
     list($object_app, $object_name) = vmc_('desktop', 'finder_split_model', $full_object_name);
     $service_list = array();
     foreach (vmc::servicelist('desktop_finder.' . $this->object_name) as $name => $object) {
         $service_list[$name] = $object;
     }
     foreach (vmc::servicelist('desktop_finder.' . $this->object_name . '.' . $this->finder_aliasname) as $name => $object) {
         $service_list[$name] = $object;
     }
     foreach ($service_list as $name => $object) {
         $tmpobj = $object;
         foreach (get_class_methods($tmpobj) as $method) {
             switch (substr($method, 0, 7)) {
                 case 'column_':
                     $this->addon_columns[] = array(&$tmpobj, $method);
                     break;
                 case 'detail_':
                     if (!$this->object_select_model) {
                         $this->detail_pages[$method] = array(&$tmpobj, $method);
                     }
                     break;
             }
         }
         $this->service_object[] =& $tmpobj;
         if (method_exists($tmpobj, 'row_style')) {
             $this->row_style_func[] =& $tmpobj;
         }
         unset($tmpobj);
         $i++;
     }
     /*
      * 对额外添加的column和detail的修改
      */
     $obj_addon_cols = vmc::servicelist('desktop_finder_column_modifier.' . $this->object_name . '.' . $this->finder_aliasname);
     if ($obj_addon_cols) {
         foreach ($obj_addon_cols as $obj) {
             $obj->columns_modifier($this->addon_columns);
         }
     }
     $obj_addon_detail_cols = vmc::servicelist('desktop_finder_detail_modifier.' . $this->object_name . '.' . $this->finder_aliasname);
     if ($obj_addon_detail_cols) {
         foreach ($obj_addon_detail_cols as $obj) {
             $obj->detail_columns_modifier($this->detail_pages);
         }
     }
     /* end **/
     $this->object = app::get($object_app)->model($object_name);
     $this->has_tag = $this->object->has_tag;
     $this->dbschema = $this->object->schema;
     $this->main();
 }
Esempio n. 10
0
 /**
  * loginlimit-登录受限检测
  *
  * @param      none
  * @return     void
  */
 function loginlimit($mid, &$redirect)
 {
     $services = vmc::servicelist('loginlimit.check');
     if ($services) {
         foreach ($services as $service) {
             $redirect = $service->checklogin($mid);
         }
     }
     return $redirect ? true : false;
 }
Esempio n. 11
0
 public function function_SYSTEM_FOOTER_M($params, &$smarty)
 {
     $html = $smarty->fetch('footer.html', app::get('mobile')->app_id);
     $services = vmc::servicelist('mobile_view_helper');
     foreach ($services as $service) {
         if (method_exists($service, 'function_SYSTEM_FOOTER_M')) {
             $html .= $service->function_SYSTEM_FOOTER_M($params, $smarty);
         }
     }
     return $html;
 }
Esempio n. 12
0
 /**
  * 重写insert方法
  * @param mixed 需要插入记录的数组
  * @return boolean
  */
 public function insert(&$data)
 {
     $is_inserted = parent::insert($data);
     if ($is_inserted) {
         $obj_extends_service = vmc::servicelist('b2c.api_sales_rule_goods_extends_actions');
         if ($obj_extends_service) {
             foreach ($obj_extends_service as $obj) {
                 $obj->extend_insert($data);
             }
         }
     }
     return $is_inserted;
 }
Esempio n. 13
0
 protected function _init_attribute()
 {
     if (is_null($this->_aAttribute)) {
         $aResult = array();
         foreach (vmc::servicelist($this->attribute_apps) as $object) {
             if (!is_object($object)) {
                 continue;
             }
             $aResult = array_merge($aResult, $object->getItem());
         }
         $this->_aAttribute = $aResult;
     }
 }
Esempio n. 14
0
 private function _cart_count(&$cart_result)
 {
     //初始化购物车小计项
     $amount_arr = array('consume_score' => 0, 'gain_score' => 0, 'goods_count' => 0, 'object_count' => 0, 'weight' => 0, 'cart_amount' => 0.0, 'member_discount_amount' => 0.0, 'order_promotion_discount_amount' => 0.0, 'goods_promotion_discount_amount' => 0.0, 'promotion_discount_amount' => 0.0, 'finally_cart_amount' => 0.0);
     $cart_result = array_merge($cart_result, $amount_arr);
     foreach (vmc::servicelist('b2c_cart_object_apps') as $object) {
         if (!is_object($object)) {
             continue;
         }
         $object->count($cart_result);
         //$cart_result 引用传递
     }
 }
Esempio n. 15
0
 public function process($filter, &$cart_result = array(), $config = array())
 {
     // servicelist('b2c_cart_prefilter_apps')=>
     // b2c_cart_prefilter_promotion_goods
     //商品促销过滤计算
     foreach (vmc::servicelist('b2c_cart_prefilter_apps') as $object) {
         if (!is_object($object)) {
             continue;
         }
         $object->filter($cart_result, $config);
         //$cart_result 引用传递
     }
 }
Esempio n. 16
0
 function get_all()
 {
     if ($this->_operator == null) {
         $aResult = array();
         foreach (vmc::servicelist('b2c_sales_basic_operator_apps') as $object) {
             if (!is_object($object)) {
                 continue;
             }
             $aResult = array_merge($aResult, $object->getOperators());
         }
         $this->_operator = $aResult;
     }
     return $this->_operator;
 }
Esempio n. 17
0
 /**
  * 临时创建会员
  */
 protected function create_member($member_sdf, &$msg)
 {
     $member_sdf = $this->pre_sdf($member_sdf);
     $mdl_members = app::get('b2c')->model('members');
     if (!$mdl_members->save($member_sdf)) {
         $msg = '本地会员自动创建失败!';
         return fasle;
     }
     $member_id = $member_sdf['member_id'];
     foreach (vmc::servicelist('member.create_after') as $object) {
         $object->create_after($member_id);
     }
     return $member_id;
 }
Esempio n. 18
0
 public function process($filter, &$cart_result = array(), $config = array())
 {
     // servicelist('b2c_cart_postfilter_apps')=>
     // b2c_cart_postfilter_promotion
     //订单促销过滤计算
     //事先计算此时finally_cart_amount 购物车金额
     $cart_result['finally_cart_amount'] = $this->omath->number_minus(array($cart_result['cart_amount'], $cart_result['member_discount_amount'], $cart_result['promotion_discount_amount']));
     foreach (vmc::servicelist('b2c_cart_postfilter_apps') as $object) {
         if (!is_object($object)) {
             continue;
         }
         $object->filter($filter, $cart_result, $config);
     }
 }
Esempio n. 19
0
 function index()
 {
     $this->_request = vmc::singleton('base_component_request');
     $params = $this->_request->get_get('params');
     $params = explode(':', $params);
     $svckey = $params[0];
     $cols = explode(',', $params[1]);
     $key = $this->_request->get_get($cols[0]);
     $autocomplete = vmc::servicelist('autocomplete.' . $svckey);
     foreach ($autocomplete as $service) {
         $return = $service->get_data($key, $cols);
     }
     echo "window.autocompleter_json=" . json_encode($return) . "";
 }
Esempio n. 20
0
 public function logout($backurl = 'index.php')
 {
     $this->begin('index.php?app=desktop&ctl=dashboard');
     $this->user->login();
     $this->user->logout();
     $auth = pam_auth::instance(pam_account::get_account_type($this->app->app_id));
     foreach (vmc::servicelist('passport') as $k => $passport) {
         if ($auth->is_module_valid($k, $this->app->app_id)) {
             $passport->loginout($auth, $backurl);
         }
     }
     vmc::singleton('base_session')->destory();
     $this->end('true', '成功登出');
 }
Esempio n. 21
0
 public function __construct(&$app)
 {
     parent::__construct($app);
     if (@constant('WITHOUT_STRIP_HTML')) {
         $this->enable_strip_whitespace = false;
     }
     $this->app = $app;
     $this->_request = vmc::singleton('base_component_request');
     $this->_response = vmc::singleton('base_component_response');
     foreach (vmc::servicelist('site.controller.construct') as $object) {
         if (method_exists($object, 'exec')) {
             $object->exec($this->_request);
         }
     }
 }
Esempio n. 22
0
 public function function_desktop_footer($params, &$smarty)
 {
     $footers = $smarty->pagedata['footers'];
     if (is_array($footers)) {
         foreach ($footers as $footer) {
             $html .= $footer;
         }
     }
     //
     $services = vmc::servicelist("desktop_view_helper");
     foreach ($services as $service) {
         $html .= $service->function_desktop_footer($params, $smarty);
     }
     return $html;
 }
Esempio n. 23
0
 /**
  * 重写getlist方法
  */
 public function getList($cols = '*', $filter = array(), $start = 0, $limit = -1, $orderType = null)
 {
     $arr_reship = parent::getList($cols, $filter, $start, $limit, $orderType);
     $obj_extends_service = vmc::servicelist('b2c.api_reship_extends_actions');
     if ($obj_extends_service) {
         foreach ($obj_extends_service as $obj) {
             $obj->extend_list($arr_reship);
         }
     }
     $info_object = vmc::service('sensitive_information');
     if (is_object($info_object)) {
         $info_object->opinfo($arr_reship, 'b2c_mdl_reship', __FUNCTION__);
     }
     return $arr_reship;
 }
Esempio n. 24
0
 function checkpassport($model_passport)
 {
     foreach (vmc::servicelist('passport') as $k => $passport) {
         if ($model_passport != $passport) {
             $config = $passport->get_config();
             if ($config['site_passport_status']['value'] == 'true') {
                 $flag = true;
                 break;
             } else {
                 $flag = false;
             }
         }
     }
     return $flag;
 }
Esempio n. 25
0
 public function index()
 {
     $this->pagedata['enable'] = get_class(cachemgr::instance()) == 'base_cache_nocache' ? 'false' : 'true';
     if (cachemgr::status($status)) {
         // foreach ($status as $key => $value) {
         //     $status_obj[] = array(
         //         'label'=>$key,
         //         'data'=>$value
         //     );
         // }
         $this->pagedata['status'] = $status;
     }
     $this->pagedata['cache_name'] = cachemgr::instance()->name;
     $this->pagedata['static_cache'] = array();
     $this->pagedata['syscache'] = array('setting_cache' => syscache::instance('setting')->get_status(), 'service_cache' => syscache::instance('service')->get_status());
     $this->pagedata['kvstore'] = array('name' => vmc::singleton('base_kvstore')->get_controller()->name, 'kvprefix' => base_kvstore::kvprefix());
     foreach (vmc::servicelist('site.router.cache') as $value) {
         if (!method_exists($value, 'get_cache_methods')) {
             continue;
         }
         $methods = $value->get_cache_methods();
         foreach ((array) $methods as $method) {
             if (isset($method['app']) && isset($method['ctl']) && isset($method['act'])) {
                 $expires = app::get('site')->getConf($method['app'] . '_' . $method['ctl'] . '_' . $method['act'] . '.cache_expires');
                 if ($expires !== null) {
                     $method['expires'] = $expires;
                 }
                 $this->pagedata['static_cache'][] = $method;
             }
         }
     }
     foreach (vmc::servicelist('mobile.router.cache') as $value) {
         if (!method_exists($value, 'get_cache_methods')) {
             continue;
         }
         $methods = $value->get_cache_methods();
         foreach ((array) $methods as $method) {
             if (isset($method['app']) && isset($method['ctl']) && isset($method['act'])) {
                 $expires = app::get('mobile')->getConf($method['app'] . '_' . $method['ctl'] . '_' . $method['act'] . '.cache_expires');
                 if ($expires !== null) {
                     $method['expires'] = $expires;
                 }
                 $this->pagedata['mstatic_cache'][] = $method;
             }
         }
     }
     $this->page('cachestage/index.html');
 }
Esempio n. 26
0
 /**
  * 会员中心基础菜单.
  */
 private function get_menu()
 {
     $menu = array(array('label' => '会员中心', 'ordernum' => -1, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'index')), array('label' => '交易', 'ordernum' => 0, 'items' => array(array('label' => '我的订单', 'ordernum' => 0, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'orders')), array('label' => '我的购物车', 'ordernum' => 10, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_cart', 'act' => 'index')))), array('label' => '购物', 'ordernum' => 10, 'items' => array(array('label' => '我的收货地址', 'ordernum' => 0, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'receiver')), array('label' => '我的收藏夹', 'ordernum' => 10, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'favorite')), array('label' => '我的优惠券', 'ordernum' => 20, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'coupon')))), array('label' => '账户', 'ordernum' => 30, 'items' => array(array('label' => '个人信息', 'ordernum' => 0, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'setting')), array('label' => '安全中心', 'ordernum' => 10, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'securitycenter')), array('label' => '消息通知', 'ordernum' => 20, 'link' => array('app' => 'b2c', 'ctl' => 'mobile_member', 'act' => 'message')))));
     //END BASEMENU ARRAY
     foreach (vmc::servicelist('b2c.member_menu_extends') as $obj) {
         if (method_exists($obj, 'get_extends_menu')) {
             $obj->get_extends_menu($menu);
         }
         //引用传递
     }
     foreach ($menu as &$i) {
         usort($i['items'], array('b2c_ctl_mobile_member', 'sort_menu'));
     }
     usort($menu, array('b2c_ctl_mobile_member', 'sort_menu'));
     return $menu;
 }
Esempio n. 27
0
 function main()
 {
     $render = app::get('desktop')->render();
     $ioType = array();
     foreach (vmc::servicelist('desktop_io') as $aio) {
         $ioType[] = $aio->io_type_name;
     }
     $render->pagedata['ioType'] = $ioType;
     if ($_GET['change_type']) {
         $render->pagedata['change_type'] = $_GET['change_type'];
     }
     if (!$render->pagedata['thisUrl']) {
         $render->pagedata['thisUrl'] = $this->url;
     }
     echo $render->fetch('common/export.html', app::get('desktop')->app_id);
 }
Esempio n. 28
0
 public function save(&$delivery_sdf, &$msg = '')
 {
     if (!$this->mdl_delivery->save($delivery_sdf)) {
         $msg = '单据保存失败';
         return false;
     } else {
         //时同步扩展服务
         foreach (vmc::servicelist('b2c.order.delivery.' . $delivery_sdf['delivery_type'] . '.finish') as $service) {
             if (!$service->exec($delivery_sdf, $msg)) {
                 logger::error($delivery_sdf['delivery_id'] . $delivery_sdf['delivery_type'] . '单据保存出错!' . $msg);
                 return false;
                 //直接中断
             }
         }
     }
     return true;
 }
Esempio n. 29
0
 public function getList($cols = '*', $filter = false)
 {
     foreach (vmc::servicelist('toauth.pam') as $class_name => $app_ins) {
         $setting = $app_ins->setting();
         if (!$app_ins->login_type) {
             continue;
         }
         $auth_url = $app_ins->authorize_url();
         if (!$auth_url) {
             continue;
         }
         $conf = unserialize($this->app->getConf($class_name));
         foreach ($setting as $key => $item) {
             if (!$conf || empty($conf[$key])) {
                 $conf[$key] = $item['default'];
             }
         }
         $row = array('name' => $app_ins->name, 'version' => $app_ins->version, 'display_name' => $conf['display_name'], 'order_num' => $conf['order_num'] ? $conf['order_num'] : 0, 'pam_class' => $class_name, 'login_type' => $app_ins->login_type, 'description' => $conf['description'], 'authorize_url' => $app_ins->authorize_url(), 'status' => $conf['status']);
         $flag = true;
         if ($filter && is_array($filter)) {
             foreach ($filter as $key => $value) {
                 if ($row[$key]) {
                     $flag = $flag && (is_array($row[$key]) && array_intersect($row[$key], $value) || $row[$key] == $value);
                 }
             }
         }
         if ($flag) {
             $list[] = $row;
         }
     }
     $tmp_list = array();
     $index = 0;
     foreach ($list as $key => $value) {
         $index = $value['order_num'];
         while (true) {
             if (!isset($tmp_list[$index])) {
                 break;
             }
             $index++;
         }
         $tmp_list[$index] = $value;
     }
     ksort($tmp_list);
     return array_values($tmp_list);
 }
Esempio n. 30
0
 function main()
 {
     $oIo = vmc::servicelist('desktop_io');
     foreach ($oIo as $aIo) {
         if ($aIo->io_type_name == ($_POST['_io_type'] ? $_POST['_io_type'] : 'csv')) {
             $oImportType = $aIo;
             break;
         }
     }
     unset($oIo);
     $oName = substr($this->object_name, strlen($this->app->app_id . '_mdl_'));
     $model = app::get($this->app->app_id)->model($oName);
     $model->filter_use_like = true;
     $oImportType->init($model);
     $offset = 0;
     $data = array('name' => $oName);
     if ($_POST['view']) {
         $_view = $this->get_views();
         if (count($this->get_views())) {
             $view_filter = (array) $_view[$_POST['view']]['filter'];
             $_POST = array_merge($_POST, $view_filter);
         }
     }
     /** 合并base filter **/
     $base_filter = (array) $this->base_filter;
     $_POST = array_merge($_POST, $base_filter);
     /** end **/
     if (method_exists($model, 'fgetlist_' . $_POST['_io_type'])) {
         /** 到处头部 **/
         $oImportType->export_header($data, $model, $_POST['_export_type']);
         $method_name = 'fgetlist_' . $_POST['_io_type'];
         while ($listFlag = $model->{$method_name}($data, $_POST, $offset, $_POST['_export_type'])) {
             $offset++;
         }
         $oImportType->export($data, $offset, $model, $_POST['_export_type']);
     } else {
         /** 到处头部 **/
         $oImportType->export_header($data, $model, $_POST['_export_type']);
         while ($listFlag = $oImportType->fgetlist($data, $model, $_POST, $offset, $_POST['_export_type'])) {
             $offset++;
             $oImportType->export($data, $offset, $model, $_POST['_export_type']);
         }
     }
     //end if
 }