购物车总数优化、用户导出采用统一组件
parent
898aa0ac46
commit
8d16b0f714
|
|
@ -32,8 +32,6 @@ class User extends Base
|
|||
*/
|
||||
public function Index()
|
||||
{
|
||||
// Excel地址
|
||||
MyViewAssign('excel_url', MyUrl('admin/user/excelexport', $this->data_request));
|
||||
return MyView();
|
||||
}
|
||||
|
||||
|
|
@ -49,28 +47,6 @@ class User extends Base
|
|||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* excel文件导出
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-01-10T15:46:00+0800
|
||||
*/
|
||||
public function ExcelExport()
|
||||
{
|
||||
// 获取数据列表
|
||||
$data_params = [
|
||||
'where' => $this->form_where,
|
||||
'm' => 0,
|
||||
'n' => 0,
|
||||
];
|
||||
$data = UserService::UserList($data_params);
|
||||
|
||||
// Excel驱动导出数据
|
||||
$excel = new \base\Excel(array('filename'=>'user', 'title'=>MyConst('excel_user_title_list'), 'data'=>$data['data'], 'msg'=>'没有相关数据'));
|
||||
$excel->Export();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑页面
|
||||
* @author Devil
|
||||
|
|
|
|||
|
|
@ -39,12 +39,11 @@ class User
|
|||
return [
|
||||
// 基础配置
|
||||
'base' => [
|
||||
'key_field' => 'id',
|
||||
'is_search' => 1,
|
||||
'is_delete' => 1,
|
||||
'delete_url' => MyUrl('admin/user/delete'),
|
||||
'delete_key' => 'ids',
|
||||
'is_middle' => 0,
|
||||
'key_field' => 'id',
|
||||
'is_search' => 1,
|
||||
'is_delete' => 1,
|
||||
'is_data_export_excel' => 1,
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
|
|
@ -82,8 +81,11 @@ class User
|
|||
],
|
||||
[
|
||||
'label' => '头像',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'user/module/avatar',
|
||||
'view_type' => 'images',
|
||||
'view_key' => 'avatar',
|
||||
'images_width' => 40,
|
||||
'images_height' => 40,
|
||||
'width' => 65,
|
||||
],
|
||||
[
|
||||
'label' => '用户名',
|
||||
|
|
@ -128,12 +130,11 @@ class User
|
|||
[
|
||||
'label' => '性别',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'gender',
|
||||
'view_data_key' => 'name',
|
||||
'view_data' => MyConst('common_gender_list'),
|
||||
'view_key' => 'gender_name',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'gender',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_gender_list'),
|
||||
'data_key' => 'id',
|
||||
|
|
@ -144,12 +145,11 @@ class User
|
|||
[
|
||||
'label' => '状态',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'status',
|
||||
'view_data_key' => 'name',
|
||||
'view_data' => MyConst('common_user_status_list'),
|
||||
'view_key' => 'status_name',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'status',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_user_status_list'),
|
||||
'data_key' => 'id',
|
||||
|
|
@ -267,9 +267,17 @@ class User
|
|||
],
|
||||
// 数据配置
|
||||
'data' => [
|
||||
'table_name' => 'User',
|
||||
'data_handle' => 'UserService::UserListHandle',
|
||||
'is_page' => 1,
|
||||
'table_name' => 'User',
|
||||
'data_handle' => 'UserService::UserListHandle',
|
||||
'is_fixed_name_field' => 1,
|
||||
'fixed_name_data' => [
|
||||
'status' => [
|
||||
'data' => MyConst('common_user_status_list'),
|
||||
],
|
||||
'gender' => [
|
||||
'data' => MyConst('common_gender_list'),
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,6 @@
|
|||
<!-- 表单顶部操作栏 -->
|
||||
{{block name="form_operate_top"}}
|
||||
<a href="{{:MyUrl('admin/user/saveinfo')}}" class="am-btn am-btn-secondary am-radius am-btn-xs am-icon-plus"> 新增</a>
|
||||
{{if !IsMobile()}}
|
||||
<a href="{{$excel_url}}" class="am-btn am-btn-success am-btn-xs am-icon-file-excel-o am-radius" target="_blank"> 导出Excel</a>
|
||||
{{/if}}
|
||||
<!-- 父级内容 -->
|
||||
{__block__}
|
||||
{{/block}}
|
||||
|
|
@ -38,9 +38,9 @@ class Cart extends Common
|
|||
// 是否登录
|
||||
$this->IsLogin();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* [Index 首页]
|
||||
* 首页
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
|
|
@ -48,12 +48,12 @@ class Cart extends Common
|
|||
*/
|
||||
public function Index()
|
||||
{
|
||||
$ret = GoodsCartService::GoodsCartList(['user'=>$this->user]);
|
||||
$result = [
|
||||
'data' => $ret['data'],
|
||||
'common_cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
];
|
||||
// 汇总
|
||||
$result = GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]);
|
||||
|
||||
// 列表
|
||||
$list = GoodsCartService::GoodsCartList(['user'=>$this->user]);
|
||||
$result['data'] = $list['data'];
|
||||
return ApiService::ApiDataReturn(SystemBaseService::DataReturn($result));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -122,11 +122,11 @@ class Goods extends Common
|
|||
|
||||
// 数据返回
|
||||
$result = [
|
||||
'goods' => $goods,
|
||||
'common_cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
'buy_button' => $buy_button,
|
||||
'middle_tabs_nav' => $middle_tabs_nav,
|
||||
'nav_more_list' => $nav_more_list,
|
||||
'goods' => $goods,
|
||||
'cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
'buy_button' => $buy_button,
|
||||
'middle_tabs_nav' => $middle_tabs_nav,
|
||||
'nav_more_list' => $nav_more_list,
|
||||
];
|
||||
$ret = SystemBaseService::DataReturn($result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,12 +62,12 @@ class Index extends Common
|
|||
$data_list = GoodsService::HomeFloorList();
|
||||
}
|
||||
|
||||
// 购物车数量
|
||||
$common_cart_total = GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]);
|
||||
// 购物车汇总
|
||||
$cart_total = GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]);
|
||||
|
||||
// 未读消息总数
|
||||
$params = ['user'=>$this->user, 'is_more'=>1, 'is_read'=>0];
|
||||
$common_message_total = MessageService::UserMessageTotal($params);
|
||||
$message_total = MessageService::UserMessageTotal($params);
|
||||
|
||||
// 返回数据
|
||||
$result = [
|
||||
|
|
@ -75,9 +75,9 @@ class Index extends Common
|
|||
'banner_list' => BannerService::Banner(),
|
||||
'data_list' => $data_list,
|
||||
'article_list' => ArticleService::HomeArticleList(),
|
||||
'right_icon_list' => AppService::HomeRightIconList(['message_total'=>$common_message_total]),
|
||||
'common_cart_total' => $common_cart_total,
|
||||
'common_message_total' => $common_message_total,
|
||||
'right_icon_list' => AppService::HomeRightIconList(['message_total'=>$message_total]),
|
||||
'cart_total' => $cart_total,
|
||||
'message_total' => $message_total,
|
||||
'plugins_sort_list' => PluginsService::PluginsSortList(),
|
||||
];
|
||||
return ApiService::ApiDataReturn(SystemBaseService::DataReturn($result));
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ class User extends Common
|
|||
|
||||
// 未读消息总数
|
||||
$params = ['user'=>$this->user, 'is_more'=>1, 'is_read'=>0];
|
||||
$common_message_total = MessageService::UserMessageTotal($params);
|
||||
$message_total = MessageService::UserMessageTotal($params);
|
||||
|
||||
// 用户订单状态
|
||||
$user_order_status = OrderService::OrderStatusStepTotal(['user_type'=>'user', 'user'=>$this->user, 'is_comments'=>1, 'is_aftersale'=>1]);
|
||||
|
|
@ -261,18 +261,18 @@ class User extends Common
|
|||
|
||||
// 初始化数据
|
||||
$result = array(
|
||||
'integral' => $user_integral,
|
||||
'avatar' => $this->user['avatar'],
|
||||
'nickname' => $this->user['nickname'],
|
||||
'username' => $this->user['username'],
|
||||
'user_name_view' => $this->user['user_name_view'],
|
||||
'user_order_status' => $user_order_status['data'],
|
||||
'user_order_count' => $user_order_count,
|
||||
'user_goods_favor_count' => $user_goods_favor_count,
|
||||
'user_goods_browse_count' => $user_goods_browse_count,
|
||||
'common_message_total' => $common_message_total,
|
||||
'navigation' => AppCenterNavService::AppCenterNav(),
|
||||
'common_cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
'integral' => $user_integral,
|
||||
'avatar' => $this->user['avatar'],
|
||||
'nickname' => $this->user['nickname'],
|
||||
'username' => $this->user['username'],
|
||||
'user_name_view' => $this->user['user_name_view'],
|
||||
'user_order_status' => $user_order_status['data'],
|
||||
'user_order_count' => $user_order_count,
|
||||
'user_goods_favor_count' => $user_goods_favor_count,
|
||||
'user_goods_browse_count' => $user_goods_browse_count,
|
||||
'message_total' => $message_total,
|
||||
'navigation' => AppCenterNavService::AppCenterNav(),
|
||||
'cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
);
|
||||
|
||||
// 返回数据
|
||||
|
|
|
|||
|
|
@ -534,54 +534,6 @@ class ConstService
|
|||
1 => ['value' => 1, 'name' => 'PATHINFO模式'],
|
||||
2 => ['value' => 2, 'name' => 'PATHINFO模式+短地址'],
|
||||
],
|
||||
|
||||
// 用户excel导出标题列表
|
||||
'excel_user_title_list' => [
|
||||
'username' => [
|
||||
'name' => '用户名',
|
||||
'type' => 'string',
|
||||
],
|
||||
'nickname' => [
|
||||
'name' => '昵称',
|
||||
'type' => 'int',
|
||||
],
|
||||
'gender_text' => [
|
||||
'name' => '性别',
|
||||
'type' => 'string',
|
||||
],
|
||||
'birthday' => [
|
||||
'name' => '生日',
|
||||
'type' => 'string',
|
||||
],
|
||||
'status_text' => [
|
||||
'name' => '状态',
|
||||
'type' => 'string',
|
||||
],
|
||||
'mobile' => [
|
||||
'name' => '手机号码',
|
||||
'type' => 'int',
|
||||
],
|
||||
'email' => [
|
||||
'name' => '电子邮箱',
|
||||
'type' => 'string',
|
||||
],
|
||||
'province' => [
|
||||
'name' => '所在省',
|
||||
'type' => 'string',
|
||||
],
|
||||
'city' => [
|
||||
'name' => '所在市',
|
||||
'type' => 'string',
|
||||
],
|
||||
'address' => [
|
||||
'name' => '详细地址',
|
||||
'type' => 'string',
|
||||
],
|
||||
'add_time' => [
|
||||
'name' => '注册时间',
|
||||
'type' => 'string',
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -470,7 +470,7 @@ class GoodsCartService
|
|||
}
|
||||
|
||||
/**
|
||||
* 购物车总数
|
||||
* 购物车汇总
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
|
|
@ -480,7 +480,16 @@ class GoodsCartService
|
|||
*/
|
||||
public static function GoodsCartTotal($where = [])
|
||||
{
|
||||
return (int) Db::name('Cart')->where($where)->count();
|
||||
$data = Db::name('Cart')->where($where)->field('SUM(`stock`*`price`) AS total_price, SUM(`stock`) AS buy_number')->find();
|
||||
if(empty($data['buy_number']))
|
||||
{
|
||||
$data['buy_number'] = 0;
|
||||
}
|
||||
if(empty($data['total_price']))
|
||||
{
|
||||
$data['total_price'] = 0.00;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -491,7 +500,7 @@ class GoodsCartService
|
|||
* @date 2018-09-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
* @return [int|string] [超过99则返回 99+]
|
||||
* @return [array] [总数超过99则返回 99+]
|
||||
*/
|
||||
public static function UserGoodsCartTotal($params = [])
|
||||
{
|
||||
|
|
@ -506,7 +515,7 @@ class GoodsCartService
|
|||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return 0;
|
||||
return ['buy_number'=>0, 'total_price'=>0.00];
|
||||
}
|
||||
|
||||
// 条件
|
||||
|
|
@ -523,8 +532,13 @@ class GoodsCartService
|
|||
'where' => &$where,
|
||||
]);
|
||||
|
||||
$total = self::GoodsCartTotal($where);
|
||||
return ($total > 99) ? '99+' : $total;
|
||||
// 获取汇总
|
||||
$data = self::GoodsCartTotal($where);
|
||||
if($data['buy_number'] > 99)
|
||||
{
|
||||
$data['buy_number'] = '99+';
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -643,17 +643,18 @@ class NavigationService
|
|||
*/
|
||||
public static function HomeHavTopRight($params = [])
|
||||
{
|
||||
$common_cart_total = 0;
|
||||
$common_message_total = -1;
|
||||
$cart_total = 0;
|
||||
$message_total = -1;
|
||||
if(!empty($params['user']))
|
||||
{
|
||||
// 购物车商品总数
|
||||
$common_cart_total = GoodsCartService::UserGoodsCartTotal(['user'=>$params['user']]);
|
||||
// 购物车商品汇总
|
||||
$cart_res = GoodsCartService::UserGoodsCartTotal(['user'=>$params['user']]);
|
||||
$cart_total = $cart_res['buy_number'];
|
||||
|
||||
// 未读消息总数
|
||||
$message_params = ['user'=>$params['user'], 'is_more'=>1, 'is_read'=>0, 'user_type'=>'user'];
|
||||
$common_message_total = MessageService::UserMessageTotal($message_params);
|
||||
$common_message_total = ($common_message_total <= 0) ? -1 : $common_message_total;
|
||||
$message_total = MessageService::UserMessageTotal($message_params);
|
||||
$message_total = ($message_total <= 0) ? -1 : $message_total;
|
||||
}
|
||||
|
||||
// 列表
|
||||
|
|
@ -699,7 +700,7 @@ class NavigationService
|
|||
'name' => '购物车',
|
||||
'type' => 'cart',
|
||||
'is_login' => 1,
|
||||
'badge' => $common_cart_total,
|
||||
'badge' => $cart_total,
|
||||
'icon' => 'am-icon-shopping-cart',
|
||||
'url' => MyUrl('index/cart/index'),
|
||||
'items' => [],
|
||||
|
|
@ -708,7 +709,7 @@ class NavigationService
|
|||
'name' => '消息',
|
||||
'type' => 'message',
|
||||
'is_login' => 1,
|
||||
'badge' => $common_message_total,
|
||||
'badge' => $message_total,
|
||||
'icon' => 'am-icon-bell',
|
||||
'url' => MyUrl('index/message/index'),
|
||||
'items' => [],
|
||||
|
|
@ -1008,11 +1009,12 @@ class NavigationService
|
|||
*/
|
||||
public static function BottomNavigation($params = [])
|
||||
{
|
||||
$common_cart_total = 0;
|
||||
$cart_total = 0;
|
||||
if(!empty($params['user']))
|
||||
{
|
||||
// 购物车商品总数
|
||||
$common_cart_total = GoodsCartService::UserGoodsCartTotal(['user'=>$params['user']]);
|
||||
// 购物车商品汇总
|
||||
$cart_res = GoodsCartService::UserGoodsCartTotal(['user'=>$params['user']]);
|
||||
$cart_total = $cart_res['buy_number'];
|
||||
}
|
||||
|
||||
// 列表
|
||||
|
|
@ -1036,7 +1038,7 @@ class NavigationService
|
|||
[
|
||||
'name' => '购物车',
|
||||
'is_login' => 1,
|
||||
'badge' => $common_cart_total,
|
||||
'badge' => $cart_total,
|
||||
'icon' => 'nav-icon-cart',
|
||||
'only_tag' => 'cartindex',
|
||||
'url' => MyUrl('index/cart/index'),
|
||||
|
|
|
|||
|
|
@ -211,7 +211,8 @@ class SearchService
|
|||
})->group('g.id')->order($order_by)->limit($result['page_start'], $result['page_size'])->select()->toArray();
|
||||
|
||||
// 数据处理
|
||||
$goods = GoodsService::GoodsDataHandle($data);
|
||||
$params['is_spec'] = 1;
|
||||
$goods = GoodsService::GoodsDataHandle($data, $params);
|
||||
|
||||
// 返回数据
|
||||
$result['data'] = $goods['data'];
|
||||
|
|
|
|||
Loading…
Reference in New Issue