-
- {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
-
- {{$hook_name_content_top}}
-
- {{/if}}
- {{php}}
- $hook_data = Hook::listen($hook_name_content_top, ['hook_name'=>$hook_name_content_top, 'is_backend'=>true]);
- if(!empty($hook_data) && is_array($hook_data))
- {
- foreach($hook_data as $hook)
- {
- if(is_string($hook) || is_int($hook))
- {
- echo htmlspecialchars_decode($hook);
- }
- }
- }
- {{/php}}
-
-
-
-
- {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
-
- {{$hook_name_content_inside_top}}
-
- {{/if}}
- {{php}}
- $hook_data = Hook::listen($hook_name_content_inside_top, ['hook_name'=>$hook_name_content_inside_top, 'is_backend'=>true]);
- if(!empty($hook_data) && is_array($hook_data))
- {
- foreach($hook_data as $hook)
- {
- if(is_string($hook) || is_int($hook))
- {
- echo htmlspecialchars_decode($hook);
- }
- }
- }
- {{/php}}
-
-
- {{if !empty($form_table) and !empty($form_table['base']) and !empty($form_table['form']) and is_array($form_table['base']) and is_array($form_table['form'])}}
-
- {{else /}}
-
{{if empty($form_error)}}动态表格配置有误{{else /}}{{$form_error}}{{/if}}
- {{/if}}
-
-
- {{block name="form_page"}}
- {{if !empty($data_list) and isset($page_html)}}
- {{$page_html|raw}}
- {{/if}}
- {{/block}}
-
-
-
- {{block name="form_extend"}}{{/block}}
-
-
-
- {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
-
- {{$hook_name_content_inside_bottom}}
-
- {{/if}}
- {{php}}
- $hook_data = Hook::listen($hook_name_content_inside_bottom, ['hook_name'=>$hook_name_content_inside_bottom, 'is_backend'=>true]);
- if(!empty($hook_data) && is_array($hook_data))
- {
- foreach($hook_data as $hook)
- {
- if(is_string($hook) || is_int($hook))
- {
- echo htmlspecialchars_decode($hook);
- }
- }
- }
- {{/php}}
-
-
-
-
- {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
-
- {{$hook_name_content_bottom}}
-
- {{/if}}
- {{php}}
- $hook_data = Hook::listen($hook_name_content_bottom, ['hook_name'=>$hook_name_content_bottom, 'is_backend'=>true]);
- if(!empty($hook_data) && is_array($hook_data))
- {
- foreach($hook_data as $hook)
- {
- if(is_string($hook) || is_int($hook))
- {
- echo htmlspecialchars_decode($hook);
- }
- }
- }
- {{/php}}
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_top}}
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_top, ['hook_name'=>$hook_name_content_top, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
+
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_inside_top}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_inside_top, ['hook_name'=>$hook_name_content_inside_top, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
+
+
+ {{if !empty($form_table) and !empty($form_table['base']) and !empty($form_table['form']) and is_array($form_table['base']) and is_array($form_table['form'])}}
+
+ {{else /}}
+
{{if empty($form_error)}}动态表格配置有误{{else /}}{{$form_error}}{{/if}}
+ {{/if}}
+
+
+ {{block name="form_page"}}
+ {{if !empty($data_list) and isset($page_html)}}
+ {{$page_html|raw}}
+ {{/if}}
+ {{/block}}
+
+
+
+ {{block name="form_extend"}}{{/block}}
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_inside_bottom}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_inside_bottom, ['hook_name'=>$hook_name_content_inside_bottom, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
-
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_bottom}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_bottom, ['hook_name'=>$hook_name_content_bottom, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
diff --git a/application/index/view/default/public/module/form_operate_bottom.html b/application/index/view/default/public/module/form_operate_bottom.html
new file mode 100644
index 000000000..a2e50a169
--- /dev/null
+++ b/application/index/view/default/public/module/form_operate_bottom.html
@@ -0,0 +1,18 @@
+{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_form_bottom_operate}}
+
+{{/if}}
+{{php}}
+ $hook_data = Hook::listen($hook_name_form_bottom_operate, ['hook_name'=>$hook_name_form_bottom_operate, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+{{/php}}
\ No newline at end of file
diff --git a/application/index/view/default/public/module/form_operate_top.html b/application/index/view/default/public/module/form_operate_top.html
new file mode 100644
index 000000000..58064e7fc
--- /dev/null
+++ b/application/index/view/default/public/module/form_operate_top.html
@@ -0,0 +1,41 @@
+
+
+{{if isset($form_table['base']['is_delete']) and $form_table['base']['is_delete'] eq 1}}
+
删除
+{{/if}}
+
+
+{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ plugins_view_admin_goods_top_operate
+
+{{/if}}
+{{php}}
+ $hook_name = 'plugins_view_admin_goods_top_operate';
+ $hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+{{/php}}
+
+
+{{if isset($form_table['base']['is_search']) and $form_table['base']['is_search'] eq 1}}
+
重置
+
搜索
+{{/if}}
\ No newline at end of file
diff --git a/application/index/view/default/public/module/form_table.html b/application/index/view/default/public/module/form_table.html
new file mode 100644
index 000000000..3da3dbb1d
--- /dev/null
+++ b/application/index/view/default/public/module/form_table.html
@@ -0,0 +1,272 @@
+
\ No newline at end of file
diff --git a/application/index/view/default/public/module/user_form.html b/application/index/view/default/public/module/user_form.html
new file mode 100644
index 000000000..a790a628e
--- /dev/null
+++ b/application/index/view/default/public/module/user_form.html
@@ -0,0 +1,160 @@
+{{include file="public/header" /}}
+
+
+{{include file="public/header_top_nav" /}}
+
+
+{{include file="public/nav_search" /}}
+
+
+{{include file="public/header_nav" /}}
+
+
+{{include file="public/goods_category" /}}
+
+
+
+
+
+ {{include file="public/user_menu" /}}
+
+
+
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_top}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_top, ['hook_name'=>$hook_name_content_top, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
+
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_inside_top}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_inside_top, ['hook_name'=>$hook_name_content_inside_top, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
+
+
+ {{if !empty($form_table) and !empty($form_table['base']) and !empty($form_table['form']) and is_array($form_table['base']) and is_array($form_table['form'])}}
+
+ {{else /}}
+
{{if empty($form_error)}}动态表格配置有误{{else /}}{{$form_error}}{{/if}}
+ {{/if}}
+
+
+ {{block name="form_page"}}
+ {{if !empty($data_list) and isset($page_html)}}
+ {{$page_html|raw}}
+ {{/if}}
+ {{/block}}
+
+
+
+ {{block name="form_extend"}}{{/block}}
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_inside_bottom}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_inside_bottom, ['hook_name'=>$hook_name_content_inside_bottom, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
+
+
+
+
+ {{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
+
+ {{$hook_name_content_bottom}}
+
+ {{/if}}
+ {{php}}
+ $hook_data = Hook::listen($hook_name_content_bottom, ['hook_name'=>$hook_name_content_bottom, 'is_backend'=>true]);
+ if(!empty($hook_data) && is_array($hook_data))
+ {
+ foreach($hook_data as $hook)
+ {
+ if(is_string($hook) || is_int($hook))
+ {
+ echo htmlspecialchars_decode($hook);
+ }
+ }
+ }
+ {{/php}}
+
+
+
+
+
+
+{{include file="public/footer" /}}
+
\ No newline at end of file
diff --git a/application/index/view/default/userfavor/goods.html b/application/index/view/default/userfavor/goods.html
deleted file mode 100755
index b4b810d98..000000000
--- a/application/index/view/default/userfavor/goods.html
+++ /dev/null
@@ -1,91 +0,0 @@
-{{include file="public/header" /}}
-
-
-{{include file="public/header_top_nav" /}}
-
-
-{{include file="public/nav_search" /}}
-
-
-{{include file="public/header_nav" /}}
-
-
-{{include file="public/goods_category" /}}
-
-
-
-
-
- {{include file="public/user_menu" /}}
-
-
-
-
-
-
-
-
-
-
-
-
- 商品信息
- 价格
- 操作
-
-
-
- {{if !empty($data_list)}}
- {{foreach $data_list as $v}}
-
-
-
-
-
- {{if $v['original_price'] gt 0}}
- {{$price_symbol}}{{$v.original_price}}
- {{/if}}
- {{$price_symbol}}{{$v.price}}
-
-
- 取消
-
-
- {{/foreach}}
- {{/if}}
-
-
-
- {{if empty($data_list)}}
-
没有相关数据
- {{/if}}
-
-
-
- {{if !empty($data_list)}}
- {{$page_html|raw}}
- {{/if}}
-
-
-
-
-
-
-{{include file="public/footer" /}}
-
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsbrowse/detail.html b/application/index/view/default/usergoodsbrowse/detail.html
new file mode 100644
index 000000000..06eeee457
--- /dev/null
+++ b/application/index/view/default/usergoodsbrowse/detail.html
@@ -0,0 +1,2 @@
+
+{{extend name="public/module/detail" /}}
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsbrowse/index.html b/application/index/view/default/usergoodsbrowse/index.html
index bbe39982c..72b90466a 100755
--- a/application/index/view/default/usergoodsbrowse/index.html
+++ b/application/index/view/default/usergoodsbrowse/index.html
@@ -1,93 +1,2 @@
-{{include file="public/header" /}}
-
-
-{{include file="public/header_top_nav" /}}
-
-
-{{include file="public/nav_search" /}}
-
-
-{{include file="public/header_nav" /}}
-
-
-{{include file="public/goods_category" /}}
-
-
-
-
-
- {{include file="public/user_menu" /}}
-
-
-
-
-
-
-
-
-
-
-
-
- 商品信息
- 价格
- 操作
-
-
-
- {{if !empty($data_list)}}
- {{foreach $data_list as $v}}
-
-
-
-
-
- {{if $v['original_price'] gt 0}}
- {{$price_symbol}}{{$v.original_price}}
- {{/if}}
- {{$price_symbol}}{{$v.price}}
-
-
- 删除
-
-
- {{/foreach}}
- {{/if}}
-
-
-
- {{if empty($data_list)}}
-
没有相关数据
- {{/if}}
-
-
- {{if !empty($data_list)}}
-
清空
-
-
- {{$page_html|raw}}
- {{/if}}
-
-
-
-
-
-
-{{include file="public/footer" /}}
-
\ No newline at end of file
+
+{{extend name="public/module/user_form" /}}
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsbrowse/module/goods.html b/application/index/view/default/usergoodsbrowse/module/goods.html
new file mode 100644
index 000000000..baece3a92
--- /dev/null
+++ b/application/index/view/default/usergoodsbrowse/module/goods.html
@@ -0,0 +1,12 @@
+
+{{if !empty($module_data)}}
+
+{{/if}}
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsbrowse/module/operate.html b/application/index/view/default/usergoodsbrowse/module/operate.html
new file mode 100644
index 000000000..dbf4fd4d3
--- /dev/null
+++ b/application/index/view/default/usergoodsbrowse/module/operate.html
@@ -0,0 +1,9 @@
+
+
+
+
+ 删除
+
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsfavor/detail.html b/application/index/view/default/usergoodsfavor/detail.html
new file mode 100644
index 000000000..06eeee457
--- /dev/null
+++ b/application/index/view/default/usergoodsfavor/detail.html
@@ -0,0 +1,2 @@
+
+{{extend name="public/module/detail" /}}
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsfavor/index.html b/application/index/view/default/usergoodsfavor/index.html
new file mode 100755
index 000000000..72b90466a
--- /dev/null
+++ b/application/index/view/default/usergoodsfavor/index.html
@@ -0,0 +1,2 @@
+
+{{extend name="public/module/user_form" /}}
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsfavor/module/goods.html b/application/index/view/default/usergoodsfavor/module/goods.html
new file mode 100644
index 000000000..baece3a92
--- /dev/null
+++ b/application/index/view/default/usergoodsfavor/module/goods.html
@@ -0,0 +1,12 @@
+
+{{if !empty($module_data)}}
+
+{{/if}}
\ No newline at end of file
diff --git a/application/index/view/default/usergoodsfavor/module/operate.html b/application/index/view/default/usergoodsfavor/module/operate.html
new file mode 100644
index 000000000..b88a2ff1e
--- /dev/null
+++ b/application/index/view/default/usergoodsfavor/module/operate.html
@@ -0,0 +1,9 @@
+
+
+
+
+ 删除
+
\ No newline at end of file
diff --git a/application/index/view/default/userintegral/index.html b/application/index/view/default/userintegral/index.html
index c788f7b1b..9d8b99d82 100755
--- a/application/index/view/default/userintegral/index.html
+++ b/application/index/view/default/userintegral/index.html
@@ -1,5 +1,5 @@
-{{extend name="public/module/form" /}}
+{{extend name="public/module/user_form" /}}
{{block name="form_navigation"}}
diff --git a/application/service/GoodsBrowseService.php b/application/service/GoodsBrowseService.php
new file mode 100644
index 000000000..56afbfdd4
--- /dev/null
+++ b/application/service/GoodsBrowseService.php
@@ -0,0 +1,215 @@
+ 'empty',
+ 'key_name' => 'goods_id',
+ 'error_msg' => '商品id有误',
+ ],
+ [
+ 'checked_type' => 'is_array',
+ 'key_name' => 'user',
+ 'error_msg' => '用户信息有误',
+ ],
+ ];
+ $ret = ParamsChecked($params, $p);
+ if($ret !== true)
+ {
+ return DataReturn($ret, -1);
+ }
+
+ $where = ['goods_id'=>intval($params['goods_id']), 'user_id'=>$params['user']['id']];
+ $temp = Db::name('GoodsBrowse')->where($where)->find();
+
+ $data = [
+ 'goods_id' => intval($params['goods_id']),
+ 'user_id' => $params['user']['id'],
+ ];
+ if(empty($temp))
+ {
+ $data['add_time'] = time();
+ $status = Db::name('GoodsBrowse')->insertGetId($data) > 0;
+ } else {
+ $data['upd_time'] = time();
+ $status = Db::name('GoodsBrowse')->where($where)->update($data) !== false;
+ }
+ if($status)
+ {
+ return DataReturn('添加成功', 0);
+ }
+ return DataReturn('添加失败', -100);
+ }
+
+ /**
+ * 前端商品浏览列表条件
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-29
+ * @desc description
+ * @param [array] $params [输入参数]
+ */
+ public static function UserGoodsBrowseListWhere($params = [])
+ {
+ $where = [
+ ['g.is_delete_time', '=', 0]
+ ];
+
+ // 用户id
+ if(!empty($params['user']))
+ {
+ $where[] = ['b.user_id', '=', $params['user']['id']];
+ }
+
+ if(!empty($params['keywords']))
+ {
+ $where[] = ['g.title|g.model|g.simple_desc|g.seo_title|g.seo_keywords|g.seo_keywords', 'like', '%'.$params['keywords'].'%'];
+ }
+
+ return $where;
+ }
+
+ /**
+ * 商品浏览总数
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-29
+ * @desc description
+ * @param [array] $where [条件]
+ */
+ public static function GoodsBrowseTotal($where = [])
+ {
+ return (int) Db::name('GoodsBrowse')->alias('b')->join(['__GOODS__'=>'g'], 'g.id=b.goods_id')->where($where)->count();
+ }
+
+ /**
+ * 商品浏览列表
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-29
+ * @desc description
+ * @param [array] $params [输入参数]
+ */
+ public static function GoodsBrowseList($params = [])
+ {
+ $where = empty($params['where']) ? [] : $params['where'];
+ $m = isset($params['m']) ? intval($params['m']) : 0;
+ $n = isset($params['n']) ? intval($params['n']) : 10;
+ $order_by = empty($params['order_by']) ? 'b.id desc' : $params['order_by'];
+ $field = 'b.*, g.title, g.original_price, g.price, g.min_price, g.images';
+
+ // 获取数据
+ $data = Db::name('GoodsBrowse')->alias('b')->join(['__GOODS__'=>'g'], 'g.id=b.goods_id')->field($field)->where($where)->limit($m, $n)->order($order_by)->select();
+ if(!empty($data))
+ {
+ foreach($data as &$v)
+ {
+ // 用户信息
+ if(isset($v['user_id']))
+ {
+ if(isset($params['is_public']) && $params['is_public'] == 0)
+ {
+ $v['user'] = UserService::GetUserViewInfo($v['user_id']);
+ }
+ }
+
+ // 商品信息
+ $v['images_old'] = $v['images'];
+ $v['images'] = ResourcesService::AttachmentPathViewHandle($v['images']);
+ $v['goods_url'] = MyUrl('index/goods/index', ['id'=>$v['goods_id']]);
+
+ // 时间
+ $v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
+ $v['add_time_date'] = date('Y-m-d', $v['add_time']);
+ }
+ }
+ return DataReturn('处理成功', 0, $data);
+ }
+
+ /**
+ * 商品浏览删除
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-14
+ * @desc description
+ * @param [array] $params [输入参数]
+ */
+ public static function GoodsBrowseDelete($params = [])
+ {
+ // 请求参数
+ $p = [
+ [
+ 'checked_type' => 'empty',
+ 'key_name' => 'ids',
+ 'error_msg' => '操作id有误',
+ ],
+ ];
+ $ret = ParamsChecked($params, $p);
+ if($ret !== true)
+ {
+ return DataReturn($ret, -1);
+ }
+
+ // 是否数组
+ if(!is_array($params['ids']))
+ {
+ $params['ids'] = explode(',', $params['ids']);
+ }
+
+ // 条件
+ $where = ['id' => $params['ids']];
+
+ // 用户id
+ if(!empty($params['user']))
+ {
+ $where['user_id'] = $params['user']['id'];
+ }
+
+ // 删除
+ if(Db::name('GoodsBrowse')->where($where)->delete())
+ {
+ return DataReturn('删除成功', 0);
+ }
+ return DataReturn('删除失败', -100);
+ }
+}
+?>
\ No newline at end of file
diff --git a/application/service/GoodsFavorService.php b/application/service/GoodsFavorService.php
new file mode 100644
index 000000000..dff99332b
--- /dev/null
+++ b/application/service/GoodsFavorService.php
@@ -0,0 +1,278 @@
+ 'empty',
+ 'key_name' => 'id',
+ 'error_msg' => '商品id有误',
+ ],
+ [
+ 'checked_type' => 'empty',
+ 'key_name' => 'user',
+ 'error_msg' => '用户信息有误',
+ ],
+ ];
+ $ret = ParamsChecked($params, $p);
+ if($ret !== true)
+ {
+ return DataReturn($ret, -1);
+ }
+
+ // 查询用户状态是否正常
+ $ret = UserService::UserStatusCheck('id', $params['user']['id']);
+ if($ret['code'] != 0)
+ {
+ return $ret;
+ }
+
+ // 开始操作
+ $data = ['goods_id'=>intval($params['id']), 'user_id'=>$params['user']['id']];
+ $temp = Db::name('GoodsFavor')->where($data)->find();
+ if(empty($temp))
+ {
+ // 添加收藏
+ $data['add_time'] = time();
+ if(Db::name('GoodsFavor')->insertGetId($data) > 0)
+ {
+ return DataReturn('收藏成功', 0, [
+ 'text' => '已收藏',
+ 'status' => 1,
+ 'count' => self::GoodsFavorTotal(['goods_id'=>$data['goods_id']]),
+ ]);
+ } else {
+ return DataReturn('收藏失败');
+ }
+ } else {
+ // 是否强制收藏
+ if(isset($params['is_mandatory_favor']) && $params['is_mandatory_favor'] == 1)
+ {
+ return DataReturn('收藏成功', 0, [
+ 'text' => '已收藏',
+ 'status' => 1,
+ 'count' => self::GoodsFavorTotal(['goods_id'=>$data['goods_id']]),
+ ]);
+ }
+
+ // 删除收藏
+ if(Db::name('GoodsFavor')->where($data)->delete() > 0)
+ {
+ return DataReturn('取消成功', 0, [
+ 'text' => '收藏',
+ 'status' => 0,
+ 'count' => self::GoodsFavorTotal(['goods_id'=>$data['goods_id']]),
+ ]);
+ } else {
+ return DataReturn('取消失败');
+ }
+ }
+ }
+
+ /**
+ * 用户是否收藏了商品
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-08-29
+ * @desc description
+ * @param [array] $params [输入参数]
+ * @return [int] [1已收藏, 0未收藏]
+ */
+ public static function IsUserGoodsFavor($params = [])
+ {
+ // 请求参数
+ $p = [
+ [
+ 'checked_type' => 'empty',
+ 'key_name' => 'goods_id',
+ 'error_msg' => '商品id有误',
+ ],
+ [
+ 'checked_type' => 'empty',
+ 'key_name' => 'user',
+ 'error_msg' => '用户信息有误',
+ ],
+ ];
+ $ret = ParamsChecked($params, $p);
+ if($ret !== true)
+ {
+ return DataReturn($ret, -1);
+ }
+
+ $data = ['goods_id'=>intval($params['goods_id']), 'user_id'=>$params['user']['id']];
+ $temp = Db::name('GoodsFavor')->where($data)->find();
+ return DataReturn('操作成功', 0, empty($temp) ? 0 : 1);
+ }
+
+ /**
+ * 前端商品收藏列表条件
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-29
+ * @desc description
+ * @param [array] $params [输入参数]
+ */
+ public static function UserGoodsFavorListWhere($params = [])
+ {
+ $where = [
+ ['g.is_delete_time', '=', 0]
+ ];
+
+ // 用户id
+ if(!empty($params['user']))
+ {
+ $where[]= ['f.user_id', '=', $params['user']['id']];
+ }
+
+ if(!empty($params['keywords']))
+ {
+ $where[] = ['g.title|g.model|g.simple_desc|g.seo_title|g.seo_keywords|g.seo_keywords', 'like', '%'.$params['keywords'].'%'];
+ }
+
+ return $where;
+ }
+
+ /**
+ * 商品收藏总数
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-29
+ * @desc description
+ * @param [array] $where [条件]
+ */
+ public static function GoodsFavorTotal($where = [])
+ {
+ return (int) Db::name('GoodsFavor')->alias('f')->join(['__GOODS__'=>'g'], 'g.id=f.goods_id')->where($where)->count();
+ }
+
+ /**
+ * 商品收藏列表
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-29
+ * @desc description
+ * @param [array] $params [输入参数]
+ */
+ public static function GoodsFavorList($params = [])
+ {
+ $where = empty($params['where']) ? [] : $params['where'];
+ $m = isset($params['m']) ? intval($params['m']) : 0;
+ $n = isset($params['n']) ? intval($params['n']) : 10;
+ $order_by = empty($params['order_by']) ? 'f.id desc' : $params['order_by'];
+ $field = 'f.*, g.title, g.original_price, g.price, g.min_price, g.images';
+
+ // 获取数据
+ $data = Db::name('GoodsFavor')->alias('f')->join(['__GOODS__'=>'g'], 'g.id=f.goods_id')->field($field)->where($where)->limit($m, $n)->order($order_by)->select();
+ if(!empty($data))
+ {
+ foreach($data as &$v)
+ {
+ // 用户信息
+ if(isset($v['user_id']))
+ {
+ if(isset($params['is_public']) && $params['is_public'] == 0)
+ {
+ $v['user'] = UserService::GetUserViewInfo($v['user_id']);
+ }
+ }
+
+ // 商品信息
+ $v['images_old'] = $v['images'];
+ $v['images'] = ResourcesService::AttachmentPathViewHandle($v['images']);
+ $v['goods_url'] = MyUrl('index/goods/index', ['id'=>$v['goods_id']]);
+
+ // 时间
+ $v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
+ $v['add_time_date'] = date('Y-m-d', $v['add_time']);
+ }
+ }
+ return DataReturn('处理成功', 0, $data);
+ }
+
+ /**
+ * 商品收藏删除
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2018-09-14
+ * @desc description
+ * @param [array] $params [输入参数]
+ */
+ public static function GoodsFavorDelete($params = [])
+ {
+ // 请求参数
+ $p = [
+ [
+ 'checked_type' => 'empty',
+ 'key_name' => 'ids',
+ 'error_msg' => '操作id有误',
+ ],
+ ];
+ $ret = ParamsChecked($params, $p);
+ if($ret !== true)
+ {
+ return DataReturn($ret, -1);
+ }
+
+ // 是否数组
+ if(!is_array($params['ids']))
+ {
+ $params['ids'] = explode(',', $params['ids']);
+ }
+
+ // 条件
+ $where = ['id' => $params['ids']];
+
+ // 用户id
+ if(!empty($params['user']))
+ {
+ $where['user_id'] = $params['user']['id'];
+ }
+
+ // 删除
+ if(Db::name('GoodsFavor')->where($where)->delete())
+ {
+ return DataReturn('删除成功', 0);
+ }
+ return DataReturn('删除失败', -100);
+ }
+}
+?>
\ No newline at end of file
diff --git a/application/service/GoodsService.php b/application/service/GoodsService.php
index de9f612b3..ac7e72547 100755
--- a/application/service/GoodsService.php
+++ b/application/service/GoodsService.php
@@ -555,197 +555,6 @@ class GoodsService
return ['choose'=>$choose];
}
- /**
- * 商品收藏
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-08-29
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function GoodsFavor($params = [])
- {
- // 请求参数
- $p = [
- [
- 'checked_type' => 'empty',
- 'key_name' => 'id',
- 'error_msg' => '商品id有误',
- ],
- [
- 'checked_type' => 'empty',
- 'key_name' => 'user',
- 'error_msg' => '用户信息有误',
- ],
- ];
- $ret = ParamsChecked($params, $p);
- if($ret !== true)
- {
- return DataReturn($ret, -1);
- }
-
- // 查询用户状态是否正常
- $ret = UserService::UserStatusCheck('id', $params['user']['id']);
- if($ret['code'] != 0)
- {
- return $ret;
- }
-
- // 开始操作
- $data = ['goods_id'=>intval($params['id']), 'user_id'=>$params['user']['id']];
- $temp = Db::name('GoodsFavor')->where($data)->find();
- if(empty($temp))
- {
- // 添加收藏
- $data['add_time'] = time();
- if(Db::name('GoodsFavor')->insertGetId($data) > 0)
- {
- return DataReturn('收藏成功', 0, [
- 'text' => '已收藏',
- 'status' => 1,
- 'count' => self::GoodsFavorTotal(['goods_id'=>$data['goods_id']]),
- ]);
- } else {
- return DataReturn('收藏失败');
- }
- } else {
- // 是否强制收藏
- if(isset($params['is_mandatory_favor']) && $params['is_mandatory_favor'] == 1)
- {
- return DataReturn('收藏成功', 0, [
- 'text' => '已收藏',
- 'status' => 1,
- 'count' => self::GoodsFavorTotal(['goods_id'=>$data['goods_id']]),
- ]);
- }
-
- // 删除收藏
- if(Db::name('GoodsFavor')->where($data)->delete() > 0)
- {
- return DataReturn('取消成功', 0, [
- 'text' => '收藏',
- 'status' => 0,
- 'count' => self::GoodsFavorTotal(['goods_id'=>$data['goods_id']]),
- ]);
- } else {
- return DataReturn('取消失败');
- }
- }
- }
-
- /**
- * 用户是否收藏了商品
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-08-29
- * @desc description
- * @param [array] $params [输入参数]
- * @return [int] [1已收藏, 0未收藏]
- */
- public static function IsUserGoodsFavor($params = [])
- {
- // 请求参数
- $p = [
- [
- 'checked_type' => 'empty',
- 'key_name' => 'goods_id',
- 'error_msg' => '商品id有误',
- ],
- [
- 'checked_type' => 'empty',
- 'key_name' => 'user',
- 'error_msg' => '用户信息有误',
- ],
- ];
- $ret = ParamsChecked($params, $p);
- if($ret !== true)
- {
- return DataReturn($ret, -1);
- }
-
- $data = ['goods_id'=>intval($params['goods_id']), 'user_id'=>$params['user']['id']];
- $temp = Db::name('GoodsFavor')->where($data)->find();
- return DataReturn('操作成功', 0, empty($temp) ? 0 : 1);
- }
-
- /**
- * 前端商品收藏列表条件
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-29
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function UserGoodsFavorListWhere($params = [])
- {
- $where = [
- ['g.is_delete_time', '=', 0]
- ];
-
- // 用户id
- if(!empty($params['user']))
- {
- $where[]= ['f.user_id', '=', $params['user']['id']];
- }
-
- if(!empty($params['keywords']))
- {
- $where[] = ['g.title|g.model|g.simple_desc|g.seo_title|g.seo_keywords|g.seo_keywords', 'like', '%'.$params['keywords'].'%'];
- }
-
- return $where;
- }
-
- /**
- * 商品收藏总数
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-29
- * @desc description
- * @param [array] $where [条件]
- */
- public static function GoodsFavorTotal($where = [])
- {
- return (int) Db::name('GoodsFavor')->alias('f')->join(['__GOODS__'=>'g'], 'g.id=f.goods_id')->where($where)->count();
- }
-
- /**
- * 商品收藏列表
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-29
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function GoodsFavorList($params = [])
- {
- $where = empty($params['where']) ? [] : $params['where'];
- $m = isset($params['m']) ? intval($params['m']) : 0;
- $n = isset($params['n']) ? intval($params['n']) : 10;
- $order_by = empty($params['order_by']) ? 'f.id desc' : $params['order_by'];
- $field = 'f.*, g.title, g.original_price, g.price, g.min_price, g.images';
-
- // 获取数据
- $data = Db::name('GoodsFavor')->alias('f')->join(['__GOODS__'=>'g'], 'g.id=f.goods_id')->field($field)->where($where)->limit($m, $n)->order($order_by)->select();
- if(!empty($data))
- {
- foreach($data as &$v)
- {
- // 图片
- $v['images_old'] = $v['images'];
- $v['images'] = ResourcesService::AttachmentPathViewHandle($v['images']);
-
- $v['goods_url'] = MyUrl('index/goods/index', ['id'=>$v['goods_id']]);
- }
- }
- return DataReturn('处理成功', 0, $data);
- }
-
/**
* 商品访问统计加1
* @author Devil
@@ -764,174 +573,6 @@ class GoodsService
return false;
}
- /**
- * 商品浏览保存
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-10-15
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function GoodsBrowseSave($params = [])
- {
- // 请求参数
- $p = [
- [
- 'checked_type' => 'empty',
- 'key_name' => 'goods_id',
- 'error_msg' => '商品id有误',
- ],
- [
- 'checked_type' => 'is_array',
- 'key_name' => 'user',
- 'error_msg' => '用户信息有误',
- ],
- ];
- $ret = ParamsChecked($params, $p);
- if($ret !== true)
- {
- return DataReturn($ret, -1);
- }
-
- $where = ['goods_id'=>intval($params['goods_id']), 'user_id'=>$params['user']['id']];
- $temp = Db::name('GoodsBrowse')->where($where)->find();
-
- $data = [
- 'goods_id' => intval($params['goods_id']),
- 'user_id' => $params['user']['id'],
- 'upd_time' => time(),
- ];
- if(empty($temp))
- {
- $data['add_time'] = time();
- $status = Db::name('GoodsBrowse')->insertGetId($data) > 0;
- } else {
- $status = Db::name('GoodsBrowse')->where($where)->update($data) !== false;
- }
- if($status)
- {
- return DataReturn('处理成功', 0);
- }
- return DataReturn('处理失败', -100);
- }
-
- /**
- * 前端商品浏览列表条件
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-29
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function UserGoodsBrowseListWhere($params = [])
- {
- $where = [
- ['g.is_delete_time', '=', 0]
- ];
-
- // 用户id
- if(!empty($params['user']))
- {
- $where[] = ['b.user_id', '=', $params['user']['id']];
- }
-
- if(!empty($params['keywords']))
- {
- $where[] = ['g.title|g.model|g.simple_desc|g.seo_title|g.seo_keywords|g.seo_keywords', 'like', '%'.$params['keywords'].'%'];
- }
-
- return $where;
- }
-
- /**
- * 商品浏览总数
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-29
- * @desc description
- * @param [array] $where [条件]
- */
- public static function GoodsBrowseTotal($where = [])
- {
- return (int) Db::name('GoodsBrowse')->alias('b')->join(['__GOODS__'=>'g'], 'g.id=b.goods_id')->where($where)->count();
- }
-
- /**
- * 商品浏览列表
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-29
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function GoodsBrowseList($params = [])
- {
- $where = empty($params['where']) ? [] : $params['where'];
- $m = isset($params['m']) ? intval($params['m']) : 0;
- $n = isset($params['n']) ? intval($params['n']) : 10;
- $order_by = empty($params['order_by']) ? 'b.id desc' : $params['order_by'];
- $field = 'b.*, g.title, g.original_price, g.price, g.min_price, g.images';
-
- // 获取数据
- $data = Db::name('GoodsBrowse')->alias('b')->join(['__GOODS__'=>'g'], 'g.id=b.goods_id')->field($field)->where($where)->limit($m, $n)->order($order_by)->select();
- if(!empty($data))
- {
- foreach($data as &$v)
- {
- $v['images_old'] = $v['images'];
- $v['images'] = ResourcesService::AttachmentPathViewHandle($v['images']);
- $v['goods_url'] = MyUrl('index/goods/index', ['id'=>$v['goods_id']]);
- }
- }
- return DataReturn('处理成功', 0, $data);
- }
-
- /**
- * 商品浏览删除
- * @author Devil
- * @blog http://gong.gg/
- * @version 1.0.0
- * @date 2018-09-14
- * @desc description
- * @param [array] $params [输入参数]
- */
- public static function GoodsBrowseDelete($params = [])
- {
- // 请求参数
- $p = [
- [
- 'checked_type' => 'empty',
- 'key_name' => 'id',
- 'error_msg' => '删除数据id有误',
- ],
- [
- 'checked_type' => 'empty',
- 'key_name' => 'user',
- 'error_msg' => '用户信息有误',
- ],
- ];
- $ret = ParamsChecked($params, $p);
- if($ret !== true)
- {
- return DataReturn($ret, -1);
- }
-
- // 删除
- $where = [
- 'id' => explode(',', $params['id']),
- 'user_id' => $params['user']['id']
- ];
- if(Db::name('GoodsBrowse')->where($where)->delete())
- {
- return DataReturn('删除成功', 0);
- }
- return DataReturn('删除失败或资源不存在', -100);
- }
-
/**
* 获取商品总数
* @author Devil
diff --git a/application/service/NavigationService.php b/application/service/NavigationService.php
index a0fe4a400..1c9d723cd 100755
--- a/application/service/NavigationService.php
+++ b/application/service/NavigationService.php
@@ -16,6 +16,7 @@ use app\service\BuyService;
use app\service\MessageService;
use app\service\OrderService;
use app\service\GoodsService;
+use app\service\GoodsBrowseService;
/**
* 导航服务层
@@ -641,7 +642,7 @@ class NavigationService
'items' => [
[
'name' => '商品收藏',
- 'url' => MyUrl('index/userfavor/goods'),
+ 'url' => MyUrl('index/usergoodsfavor/index'),
],
],
],
@@ -833,8 +834,8 @@ class NavigationService
],
[
'name' => '我的收藏',
- 'url' => MyUrl('index/userfavor/goods'),
- 'contains' => ['indexuserfavorgoods'],
+ 'url' => MyUrl('index/usergoodsfavor/index'),
+ 'contains' => ['indexusergoodsfavorindex'],
'is_show' => 1,
'icon' => 'am-icon-heart-o',
'is_system' => 1,
@@ -1029,7 +1030,7 @@ class NavigationService
// 我的足迹总数
$where = ['user_id'=>$params['user']['id']];
- $user_goods_browse_count = GoodsService::GoodsBrowseTotal($where);
+ $user_goods_browse_count = GoodsBrowseService::GoodsBrowseTotal($where);
// 用户积分
$user_integral = isset($params['user']['integral']) ? $params['user']['integral'] : 0;
diff --git a/public/static/admin/default/css/admin.css b/public/static/admin/default/css/admin.css
index 819e3169c..e21d7c64b 100755
--- a/public/static/admin/default/css/admin.css
+++ b/public/static/admin/default/css/admin.css
@@ -1,6 +1,9 @@
/**
* 登录页面背景图片
*/
+body {
+ background: url(data:image/png;base64,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) left top #f5f5f5;
+}
.bg-slides {
position: absolute;
width: 100vw;
diff --git a/public/static/admin/default/css/answer.css b/public/static/admin/default/css/answer.css
index c59ac65d6..d1e28bc79 100755
--- a/public/static/admin/default/css/answer.css
+++ b/public/static/admin/default/css/answer.css
@@ -1,6 +1,6 @@
/**
* 列表
*/
-.content-right table.am-table .reply-content {
+.form-table-content table.am-table .reply-content {
max-height: 80px;
}
\ No newline at end of file
diff --git a/public/static/common/css/common.css b/public/static/common/css/common.css
index db6acbeb3..b23d8d7b1 100755
--- a/public/static/common/css/common.css
+++ b/public/static/common/css/common.css
@@ -87,7 +87,7 @@ form.am-form .am-form-group-refreshing, .plug-file-upload-view, .content-app-ite
height: 32px;
}
.popup-iframe-not-title .am-popup-inner .am-close:hover {
- background: #2f8ded;
+ background: #f22a30;
}
/**
diff --git a/public/static/index/default/css/answer.css b/public/static/index/default/css/answer.css
index 21481b8fc..d1e28bc79 100755
--- a/public/static/index/default/css/answer.css
+++ b/public/static/index/default/css/answer.css
@@ -1,4 +1,6 @@
/**
* 列表
*/
-.data-list table.am-table .reply-content { max-width: 200px; }
\ No newline at end of file
+.form-table-content table.am-table .reply-content {
+ max-height: 80px;
+}
\ No newline at end of file
diff --git a/public/static/index/default/css/common.css b/public/static/index/default/css/common.css
index b2528061f..0e77b251a 100755
--- a/public/static/index/default/css/common.css
+++ b/public/static/index/default/css/common.css
@@ -501,24 +501,24 @@ ul.am-dropdown-content > .am-active > a:focus,
}
.am-btn-secondary {
- color: #f77076 !important;
- background-color: #ffe2e5;
- border-color: #facbd0;
+ color: #F44336 !important;
+ background-color: #fddedc;
+ border-color: #ffc3bf;
}
.am-btn-secondary:hover, .am-btn-secondary:focus {
- background-color: #f77076;
+ background-color: #F44336;
}
.am-btn-secondary:hover, .am-btn-secondary:focus, .am-btn-secondary:active, .am-btn-secondary.am-active, .am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle {
color: #fff !important;
- border-color: #f77076;
+ border-color: #F44336;
}
.am-btn-secondary.am-disabled, .am-btn-secondary[disabled], fieldset[disabled] .am-btn-secondary, .am-btn-secondary.am-disabled:hover, .am-btn-secondary[disabled]:hover, fieldset[disabled] .am-btn-secondary:hover, .am-btn-secondary.am-disabled:focus, .am-btn-secondary[disabled]:focus, fieldset[disabled] .am-btn-secondary:focus, .am-btn-secondary.am-disabled:active, .am-btn-secondary[disabled]:active, fieldset[disabled] .am-btn-secondary:active, .am-btn-secondary.am-disabled.am-active, .am-btn-secondary[disabled].am-active, fieldset[disabled] .am-btn-secondary.am-active {
- background-color: #ffe2e5;
- border-color: #ffe2e5;
+ background-color: #fddedc;
+ border-color: #fddedc;
}
.am-btn-secondary:active, .am-btn-secondary.am-active, .am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle {
background-image: none;
- background-color: #f77076;
+ background-color: #F44336;
}
.am-btn-primary {
diff --git a/public/static/index/default/js/answer.js b/public/static/index/default/js/answer.js
new file mode 100644
index 000000000..124d9a45b
--- /dev/null
+++ b/public/static/index/default/js/answer.js
@@ -0,0 +1,5 @@
+$(function()
+{
+ // 问答表单初始化
+ FromInit('form.form-validation-plugins-answer-ask');
+});
\ No newline at end of file