diff --git a/app/admin/view/default/site/siteset/order.html b/app/admin/view/default/site/siteset/order.html index 25a5a24aa..3af7e5eb4 100644 --- a/app/admin/view/default/site/siteset/order.html +++ b/app/admin/view/default/site/siteset/order.html @@ -61,6 +61,16 @@ + +
+ + +
+
diff --git a/app/index/view/default/config.json b/app/index/view/default/config.json index 134037b62..5d42fc4c3 100755 --- a/app/index/view/default/config.json +++ b/app/index/view/default/config.json @@ -1,6 +1,6 @@ { "name":"默认主题", - "ver":"2.2.2", + "ver":"2.2.3", "author":"Devil", "home":"https://shopxo.net/" } \ No newline at end of file diff --git a/app/service/AppCenterNavService.php b/app/service/AppCenterNavService.php index 887b4e3cc..b2a845d42 100755 --- a/app/service/AppCenterNavService.php +++ b/app/service/AppCenterNavService.php @@ -61,7 +61,6 @@ class AppCenterNavService // 图片地址 if(isset($v['images_url'])) { - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); } @@ -274,23 +273,19 @@ class AppCenterNavService */ public static function AppCenterNav($params = []) { - // 平台 - $platform = ApplicationClientType(); - // 缓存 - $key = MyConfig('shopxo.cache_app_user_center_navigation_key').$platform; + $key = MyConfig('shopxo.cache_app_user_center_navigation_key').APPLICATION_CLIENT_TYPE; $data = MyCache($key); if(empty($data)) { $field = 'id,name,images_url,event_value,event_type,desc'; $order_by = 'sort asc,id asc'; - $data = Db::name('AppCenterNav')->field($field)->where(['platform'=>$platform, 'is_enable'=>1])->order($order_by)->select()->toArray(); + $data = Db::name('AppCenterNav')->field($field)->where(['platform'=>APPLICATION_CLIENT_TYPE, 'is_enable'=>1])->order($order_by)->select()->toArray(); if(!empty($data)) { foreach($data as &$v) { - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); $v['event_value'] = empty($v['event_value']) ? null : htmlspecialchars_decode($v['event_value']); } @@ -300,7 +295,7 @@ class AppCenterNavService } // 手机用户中心导航钩子 - $hook_name = 'plugins_service_app_user_center_navigation_'.$platform; + $hook_name = 'plugins_service_app_user_center_navigation_'.APPLICATION_CLIENT_TYPE; MyEventTrigger($hook_name, [ 'hook_name' => $hook_name, 'is_backend' => true, diff --git a/app/service/AppHomeNavService.php b/app/service/AppHomeNavService.php index 62ac05e11..1944b9d34 100755 --- a/app/service/AppHomeNavService.php +++ b/app/service/AppHomeNavService.php @@ -61,7 +61,6 @@ class AppHomeNavService // 图片地址 if(isset($v['images_url'])) { - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); } @@ -269,24 +268,20 @@ class AppHomeNavService */ public static function AppHomeNav($params = []) { - // 平台 - $platform = ApplicationClientType(); - // 缓存 - $key = MyConfig('shopxo.cache_app_home_navigation_key').$platform; + $key = MyConfig('shopxo.cache_app_home_navigation_key').APPLICATION_CLIENT_TYPE; $data = MyCache($key); if($data === null || MyEnv('app_debug')) { // 获取导航数据 $field = 'id,name,images_url,event_value,event_type,bg_color,is_need_login'; $order_by = 'sort asc,id asc'; - $data = Db::name('AppHomeNav')->field($field)->where(['platform'=>$platform, 'is_enable'=>1])->order($order_by)->select()->toArray(); + $data = Db::name('AppHomeNav')->field($field)->where(['platform'=>APPLICATION_CLIENT_TYPE, 'is_enable'=>1])->order($order_by)->select()->toArray(); if(!empty($data)) { foreach($data as &$v) { // 图片地址 - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); $v['event_value'] = empty($v['event_value']) ? null : $v['event_value']; @@ -306,7 +301,7 @@ class AppHomeNavService } // 手机首页导航钩子 - $hook_name = 'plugins_service_app_home_navigation_'.$platform; + $hook_name = 'plugins_service_app_home_navigation_'.APPLICATION_CLIENT_TYPE; MyEventTrigger($hook_name, [ 'hook_name' => $hook_name, 'is_backend' => true, diff --git a/app/service/BannerService.php b/app/service/BannerService.php index 455714fec..ea1d149ea 100755 --- a/app/service/BannerService.php +++ b/app/service/BannerService.php @@ -33,24 +33,20 @@ class BannerService */ public static function Banner($params = []) { - // 平台 - $platform = ApplicationClientType(); - // 缓存 - $key = MyConfig('shopxo.cache_banner_list_key').$platform; + $key = MyConfig('shopxo.cache_banner_list_key').APPLICATION_CLIENT_TYPE; $data = MyCache($key); if($data === null || MyEnv('app_debug')) { // 获取banner数据 $field = 'name,images_url,event_value,event_type,bg_color'; $order_by = 'sort asc,id asc'; - $data = Db::name('Slide')->field($field)->where(['platform'=>$platform, 'is_enable'=>1])->order($order_by)->select()->toArray(); + $data = Db::name('Slide')->field($field)->where(['platform'=>APPLICATION_CLIENT_TYPE, 'is_enable'=>1])->order($order_by)->select()->toArray(); if(!empty($data)) { foreach($data as &$v) { // 图片地址 - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); // 事件值 diff --git a/app/service/BuyService.php b/app/service/BuyService.php index 3794b31ab..0cec905e8 100755 --- a/app/service/BuyService.php +++ b/app/service/BuyService.php @@ -1058,9 +1058,6 @@ class BuyService // 订单默认状态 $order_status = (intval(MyC('common_order_is_booking', 0)) == 1) ? 0 : 1; - // 订单来源 - $client_type = ApplicationClientType(); - // 支付方式 $payment_id = 0; $is_under_line = 0; @@ -1075,7 +1072,8 @@ class BuyService $is_under_line = in_array($payment[0]['payment'], MyConfig('shopxo.under_line_list')) ? 1 : 0; // 线下支付订单是否直接成功 - if($is_under_line == 1) + // 是否开启线下订单正常进入流程 + if($is_under_line == 1 && MyC('common_is_under_line_order_normal') == 1) { $order_status = 2; } @@ -1125,7 +1123,7 @@ class BuyService 'extension_data' => empty($v['order_base']['extension_data']) ? '' : json_encode($v['order_base']['extension_data'], JSON_UNESCAPED_UNICODE), 'payment_id' => $payment_id, 'buy_number_count' => $v['order_base']['buy_count'], - 'client_type' => $client_type, + 'client_type' => APPLICATION_CLIENT_TYPE, 'order_model' => $site_model, 'is_under_line' => $is_under_line, ]; diff --git a/app/service/ConstService.php b/app/service/ConstService.php index 5883070a5..ec2fb59f8 100644 --- a/app/service/ConstService.php +++ b/app/service/ConstService.php @@ -88,6 +88,7 @@ class ConstService '2.2.0' => ['value' => '2.2.0', 'name' => 'v2.2.0'], '2.2.1' => ['value' => '2.2.1', 'name' => 'v2.2.1'], '2.2.2' => ['value' => '2.2.2', 'name' => 'v2.2.2'], + '2.2.3' => ['value' => '2.2.3', 'name' => 'v2.2.3'], ], // 用户注册类型列表 diff --git a/app/service/OrderService.php b/app/service/OrderService.php index b1ce34379..f62172467 100755 --- a/app/service/OrderService.php +++ b/app/service/OrderService.php @@ -172,7 +172,7 @@ class OrderService // 是否直接跳转 if($success_count > 0 && $success_count == count($order_data)) { - return DataReturn('支付成功', 0, ['data'=>MyUrl('index/order/respond', ['appoint_status'=>0]), 'is_success'=>1]); + return DataReturn('操作成功', 0, ['data'=>MyUrl('index/order/respond', ['appoint_status'=>0]), 'is_success'=>1]); } // 支付入口文件检查 @@ -289,7 +289,7 @@ class OrderService } // 微信中打开并且webopenid为空 - if(ApplicationClientType() == 'h5' && IsWeixinEnv() && empty($pay_data['user']['weixin_web_openid'])) + if(APPLICATION_CLIENT_TYPE == 'pc' && IsWeixinEnv() && empty($pay_data['user']['weixin_web_openid'])) { // 授权成功后回调订单详情页面重新自动发起支付 // 单个订单进入详情,则进入列表 @@ -341,9 +341,17 @@ class OrderService $ret['data']['is_payment_type'] = 1; // 线下支付处理 + // 0 订单状态操作支付成功 + // -8888 订单提交成功,等待用户线下支付 + // 其他错误 $pay_ret = self::UserOrderPayUnderLine($pay_log['data']['log_no']); - if($pay_ret['code'] != 0) + if($pay_ret['code'] == 0) { + $ret['data']['is_success'] = 1; + } elseif($pay_ret['code'] == -8888) + { + $ret['msg'] = $pay_ret['msg']; + } else { return $pay_ret; } } else { @@ -626,57 +634,62 @@ class OrderService */ public static function UserOrderPayUnderLine($pay_log_no) { - // 支付订单数据 - $pay_data = self::OrderPayLogValueList($pay_log_no); - if($pay_data['code'] != 0) + // 是否开启线下支付订单状态正常进行 + if(MyC('common_is_under_line_order_normal') == 1) { - return $pay_data; - } - - // 订单支付日志已支付则直接返回 - if($pay_data['data']['pay_log_data']['status'] == 1) - { - return DataReturn('操作成功', 0); - } - - // 启动事务 - Db::startTrans(); - - // 捕获异常 - try { - // 更新订单状态 - $order_ids = array_column($pay_data['data']['order_list'], 'id'); - $upd_data = [ - 'status' => 2, - 'upd_time' => time(), - ]; - if(!Db::name('Order')->where(['id'=>$order_ids])->update($upd_data)) + // 支付订单数据 + $pay_data = self::OrderPayLogValueList($pay_log_no); + if($pay_data['code'] != 0) { - throw new \Exception('订单更新失败'); + return $pay_data; } - // 循环处理订单 - foreach($pay_data['data']['order_list'] as $order) + // 订单支付日志已支付则直接返回 + if($pay_data['data']['pay_log_data']['status'] == 1) { - if(!self::OrderHistoryAdd($order['id'], $upd_data['status'], $order['status'], '用户线下支付', 0, '系统')) + return DataReturn('操作成功', 0); + } + + // 启动事务 + Db::startTrans(); + + // 捕获异常 + try { + // 更新订单状态 + $order_ids = array_column($pay_data['data']['order_list'], 'id'); + $upd_data = [ + 'status' => 2, + 'upd_time' => time(), + ]; + if(!Db::name('Order')->where(['id'=>$order_ids])->update($upd_data)) { - throw new \Exception('订单日志添加失败['.$order['id'].']'); + throw new \Exception('订单更新失败'); } - } - // 更改日志订单状态 - if(!Db::name('PayLog')->where(['log_no'=>$pay_log_no])->update(['status'=>1])) - { - throw new \Exception('日志订单更新失败'); - } + // 循环处理订单 + foreach($pay_data['data']['order_list'] as $order) + { + if(!self::OrderHistoryAdd($order['id'], $upd_data['status'], $order['status'], '用户线下支付', 0, '系统')) + { + throw new \Exception('订单日志添加失败['.$order['id'].']'); + } + } - // 完成 - Db::commit(); - return DataReturn('操作成功', 0); - } catch(\Exception $e) { - Db::rollback(); - return DataReturn($e->getMessage(), -1); + // 更改日志订单状态 + if(!Db::name('PayLog')->where(['log_no'=>$pay_log_no])->update(['status'=>1])) + { + throw new \Exception('日志订单更新失败'); + } + + // 完成 + Db::commit(); + return DataReturn('操作成功', 0); + } catch(\Exception $e) { + Db::rollback(); + return DataReturn($e->getMessage(), -1); + } } + return DataReturn('操作成功、请尽快联系管理员确认支付信息', -8888); } /** diff --git a/app/service/QuickNavService.php b/app/service/QuickNavService.php index b4add3aa1..4448a63f0 100755 --- a/app/service/QuickNavService.php +++ b/app/service/QuickNavService.php @@ -61,7 +61,6 @@ class QuickNavService // 图片地址 if(isset($v['images_url'])) { - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); } @@ -268,31 +267,27 @@ class QuickNavService */ public static function QuickNav($params = []) { - // 平台 - $platform = ApplicationClientType(); - // 缓存 - $key = MyConfig('shopxo.cache_quick_navigation_key').$platform; + $key = MyConfig('shopxo.cache_quick_navigation_key').APPLICATION_CLIENT_TYPE; $data = MyCache($key); if($data === null || MyEnv('app_debug')) { // 获取导航数据 $field = 'id,name,images_url,event_value,event_type,bg_color'; $order_by = 'sort asc,id asc'; - $data = Db::name('QuickNav')->field($field)->where(['platform'=>$platform, 'is_enable'=>1])->order($order_by)->select()->toArray(); + $data = Db::name('QuickNav')->field($field)->where(['platform'=>APPLICATION_CLIENT_TYPE, 'is_enable'=>1])->order($order_by)->select()->toArray(); if(!empty($data)) { foreach($data as &$v) { // 图片地址 - $v['images_url_old'] = $v['images_url']; $v['images_url'] = ResourcesService::AttachmentPathViewHandle($v['images_url']); $v['event_value'] = empty($v['event_value']) ? null : $v['event_value']; // 事件值 if(!empty($v['event_value'])) { - // 地图 + // 地图018064 if($v['event_type'] == 3) { $v['event_value_data'] = explode('|', $v['event_value']); @@ -307,7 +302,7 @@ class QuickNavService // 快捷导航钩子 // web端数据参数可以自定义新增 class_name 名称、方便非url事件使用js控制点击事件 // 支持标签自定义数据值 data_value 名称、方便自定义事件响应需要依赖的数据 - $hook_name = 'plugins_service_quick_navigation_'.$platform; + $hook_name = 'plugins_service_quick_navigation_'.APPLICATION_CLIENT_TYPE; MyEventTrigger($hook_name, [ 'hook_name' => $hook_name, 'is_backend' => true,