diff --git a/application/admin/controller/zy/circle/Circle.php b/application/admin/controller/zy/circle/Circle.php
new file mode 100644
index 0000000..442ee65
--- /dev/null
+++ b/application/admin/controller/zy/circle/Circle.php
@@ -0,0 +1,72 @@
+model = new \app\admin\model\zy\circle\Circle;
+
+ }
+
+
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['club','user'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('club')->visible(['name']);
+ $row->getRelation('user')->visible(['nickname']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/admin/controller/zy/circle/Comment.php b/application/admin/controller/zy/circle/Comment.php
new file mode 100644
index 0000000..85ed1db
--- /dev/null
+++ b/application/admin/controller/zy/circle/Comment.php
@@ -0,0 +1,71 @@
+model = new \app\admin\model\zy\circle\Comment;
+
+ }
+
+
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['circle'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('circle')->visible(['id']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/admin/controller/zy/circle/Likes.php b/application/admin/controller/zy/circle/Likes.php
new file mode 100644
index 0000000..b0de8d5
--- /dev/null
+++ b/application/admin/controller/zy/circle/Likes.php
@@ -0,0 +1,72 @@
+model = new \app\admin\model\zy\circle\Likes;
+
+ }
+
+
+
+ /**
+ * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
+ * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
+ * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
+ */
+
+
+ /**
+ * 查看
+ */
+ public function index()
+ {
+ //当前是否为关联查询
+ $this->relationSearch = true;
+ //设置过滤方法
+ $this->request->filter(['strip_tags', 'trim']);
+ if ($this->request->isAjax()) {
+ //如果发送的来源是Selectpage,则转发到Selectpage
+ if ($this->request->request('keyField')) {
+ return $this->selectpage();
+ }
+ list($where, $sort, $order, $offset, $limit) = $this->buildparams();
+
+ $list = $this->model
+ ->with(['circle','user'])
+ ->where($where)
+ ->order($sort, $order)
+ ->paginate($limit);
+
+ foreach ($list as $row) {
+
+ $row->getRelation('circle')->visible(['id']);
+ $row->getRelation('user')->visible(['nickname']);
+ }
+
+ $result = array("total" => $list->total(), "rows" => $list->items());
+
+ return json($result);
+ }
+ return $this->view->fetch();
+ }
+
+}
diff --git a/application/admin/lang/zh-cn/zy/circle/circle.php b/application/admin/lang/zh-cn/zy/circle/circle.php
new file mode 100644
index 0000000..dc49e12
--- /dev/null
+++ b/application/admin/lang/zh-cn/zy/circle/circle.php
@@ -0,0 +1,16 @@
+ '俱乐部id',
+ 'User_id' => '用户id',
+ 'Username' => '用户名称',
+ 'Avatar' => '头像',
+ 'Gender' => '性别',
+ 'Club_name' => '俱乐部名称',
+ 'Content' => '内容',
+ 'Imgs' => '图片',
+ 'Create_time' => '创建时间',
+ 'Update_time' => '修改时间',
+ 'Club.name' => '俱乐部名称',
+ 'User.nickname' => '昵称'
+];
diff --git a/application/admin/lang/zh-cn/zy/circle/comment.php b/application/admin/lang/zh-cn/zy/circle/comment.php
new file mode 100644
index 0000000..2181655
--- /dev/null
+++ b/application/admin/lang/zh-cn/zy/circle/comment.php
@@ -0,0 +1,14 @@
+ '影圈id',
+ 'Pid' => '回复评论id',
+ 'User_id' => '用户id',
+ 'Username' => '用户名称',
+ 'Avatar' => '用户头像',
+ 'Gender' => '性别',
+ 'Content' => '评论或回复内容',
+ 'Status' => '状态',
+ 'Create_time' => '创建时间',
+ 'Update_time' => '修改时间'
+];
diff --git a/application/admin/lang/zh-cn/zy/circle/likes.php b/application/admin/lang/zh-cn/zy/circle/likes.php
new file mode 100644
index 0000000..20b4c7e
--- /dev/null
+++ b/application/admin/lang/zh-cn/zy/circle/likes.php
@@ -0,0 +1,12 @@
+ '影圈id',
+ 'User_id' => '用户id',
+ 'Username' => '用户名称',
+ 'Avatar' => '用户头像',
+ 'Gender' => '性别',
+ 'Create_time' => '创建时间',
+ 'Update_time' => '修改时间',
+ 'User.nickname' => '昵称'
+];
diff --git a/application/admin/model/zy/Circle.php b/application/admin/model/zy/Circle.php
new file mode 100644
index 0000000..386f230
--- /dev/null
+++ b/application/admin/model/zy/Circle.php
@@ -0,0 +1,12 @@
+belongsTo('app\admin\model\zy\Club', 'club_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\admin\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/admin/model/zy/circle/Comment.php b/application/admin/model/zy/circle/Comment.php
new file mode 100644
index 0000000..1013034
--- /dev/null
+++ b/application/admin/model/zy/circle/Comment.php
@@ -0,0 +1,44 @@
+belongsTo('app\admin\model\zy\Circle', 'circle_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/admin/model/zy/circle/Likes.php b/application/admin/model/zy/circle/Likes.php
new file mode 100644
index 0000000..07d4800
--- /dev/null
+++ b/application/admin/model/zy/circle/Likes.php
@@ -0,0 +1,50 @@
+belongsTo('app\admin\model\zy\Circle', 'circle_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+
+
+ public function user()
+ {
+ return $this->belongsTo('app\admin\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
+ }
+}
diff --git a/application/admin/validate/zy/circle/Circle.php b/application/admin/validate/zy/circle/Circle.php
new file mode 100644
index 0000000..3695a8b
--- /dev/null
+++ b/application/admin/validate/zy/circle/Circle.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/admin/validate/zy/circle/Comment.php b/application/admin/validate/zy/circle/Comment.php
new file mode 100644
index 0000000..74af8b7
--- /dev/null
+++ b/application/admin/validate/zy/circle/Comment.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/admin/validate/zy/circle/Likes.php b/application/admin/validate/zy/circle/Likes.php
new file mode 100644
index 0000000..f96909e
--- /dev/null
+++ b/application/admin/validate/zy/circle/Likes.php
@@ -0,0 +1,27 @@
+ [],
+ 'edit' => [],
+ ];
+
+}
diff --git a/application/admin/view/zy/circle/circle/add.html b/application/admin/view/zy/circle/circle/add.html
new file mode 100644
index 0000000..88dcfa4
--- /dev/null
+++ b/application/admin/view/zy/circle/circle/add.html
@@ -0,0 +1,74 @@
+
diff --git a/application/admin/view/zy/circle/circle/edit.html b/application/admin/view/zy/circle/circle/edit.html
new file mode 100644
index 0000000..f995b4d
--- /dev/null
+++ b/application/admin/view/zy/circle/circle/edit.html
@@ -0,0 +1,74 @@
+
diff --git a/application/admin/view/zy/circle/circle/index.html b/application/admin/view/zy/circle/circle/index.html
new file mode 100644
index 0000000..c140594
--- /dev/null
+++ b/application/admin/view/zy/circle/circle/index.html
@@ -0,0 +1,29 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/admin/view/zy/circle/comment/add.html b/application/admin/view/zy/circle/comment/add.html
new file mode 100644
index 0000000..ffa18cb
--- /dev/null
+++ b/application/admin/view/zy/circle/comment/add.html
@@ -0,0 +1,66 @@
+
diff --git a/application/admin/view/zy/circle/comment/edit.html b/application/admin/view/zy/circle/comment/edit.html
new file mode 100644
index 0000000..da34963
--- /dev/null
+++ b/application/admin/view/zy/circle/comment/edit.html
@@ -0,0 +1,66 @@
+
diff --git a/application/admin/view/zy/circle/comment/index.html b/application/admin/view/zy/circle/comment/index.html
new file mode 100644
index 0000000..3766642
--- /dev/null
+++ b/application/admin/view/zy/circle/comment/index.html
@@ -0,0 +1,29 @@
+
+ {:build_heading()}
+
+
+
diff --git a/application/admin/view/zy/circle/likes/add.html b/application/admin/view/zy/circle/likes/add.html
new file mode 100644
index 0000000..41d0186
--- /dev/null
+++ b/application/admin/view/zy/circle/likes/add.html
@@ -0,0 +1,48 @@
+
diff --git a/application/admin/view/zy/circle/likes/edit.html b/application/admin/view/zy/circle/likes/edit.html
new file mode 100644
index 0000000..b4607c3
--- /dev/null
+++ b/application/admin/view/zy/circle/likes/edit.html
@@ -0,0 +1,48 @@
+
diff --git a/application/admin/view/zy/circle/likes/index.html b/application/admin/view/zy/circle/likes/index.html
new file mode 100644
index 0000000..3657004
--- /dev/null
+++ b/application/admin/view/zy/circle/likes/index.html
@@ -0,0 +1,29 @@
+
+ {:build_heading()}
+
+
+
diff --git a/public/assets/js/backend/zy/circle/circle.js b/public/assets/js/backend/zy/circle/circle.js
new file mode 100644
index 0000000..8ce1cb9
--- /dev/null
+++ b/public/assets/js/backend/zy/circle/circle.js
@@ -0,0 +1,61 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
+
+ var Controller = {
+ index: function () {
+ // 初始化表格参数配置
+ Table.api.init({
+ extend: {
+ index_url: 'zy/circle/circle/index' + location.search,
+ add_url: 'zy/circle/circle/add',
+ edit_url: 'zy/circle/circle/edit',
+ del_url: 'zy/circle/circle/del',
+ multi_url: 'zy/circle/circle/multi',
+ import_url: 'zy/circle/circle/import',
+ table: 'zy_circle',
+ }
+ });
+
+ var table = $("#table");
+
+ // 初始化表格
+ table.bootstrapTable({
+ url: $.fn.bootstrapTable.defaults.extend.index_url,
+ pk: 'id',
+ sortName: 'id',
+ fixedColumns: true,
+ fixedRightNumber: 1,
+ columns: [
+ [
+ {checkbox: true},
+ {field: 'id', title: __('Id')},
+ {field: 'club.name', title: __('Club.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+ {field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
+ {field: 'username', title: __('Username'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+ {field: 'avatar', title: __('Avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
+ {field: 'gender', title: __('Gender'), searchList: {1: __('Male'), 0: __('Female')}},
+ {field: 'club_name', title: __('Club_name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+ {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+ {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+
+ {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+ ]
+ ]
+ });
+
+ // 为表格绑定事件
+ Table.api.bindevent(table);
+ },
+ add: function () {
+ Controller.api.bindevent();
+ },
+ edit: function () {
+ Controller.api.bindevent();
+ },
+ api: {
+ bindevent: function () {
+ Form.api.bindevent($("form[role=form]"));
+ }
+ }
+ };
+ return Controller;
+});
diff --git a/public/assets/js/backend/zy/circle/comment.js b/public/assets/js/backend/zy/circle/comment.js
new file mode 100644
index 0000000..52aa9b0
--- /dev/null
+++ b/public/assets/js/backend/zy/circle/comment.js
@@ -0,0 +1,61 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
+
+ var Controller = {
+ index: function () {
+ // 初始化表格参数配置
+ Table.api.init({
+ extend: {
+ index_url: 'zy/circle/comment/index' + location.search,
+ add_url: 'zy/circle/comment/add',
+ edit_url: 'zy/circle/comment/edit',
+ del_url: 'zy/circle/comment/del',
+ multi_url: 'zy/circle/comment/multi',
+ import_url: 'zy/circle/comment/import',
+ table: 'zy_circle_comment',
+ }
+ });
+
+ var table = $("#table");
+
+ // 初始化表格
+ table.bootstrapTable({
+ url: $.fn.bootstrapTable.defaults.extend.index_url,
+ pk: 'id',
+ sortName: 'id',
+ fixedColumns: true,
+ fixedRightNumber: 1,
+ columns: [
+ [
+ {checkbox: true},
+ {field: 'id', title: __('Id')},
+ {field: 'circle_id', title: __('Circle_id')},
+ {field: 'pid', title: __('Pid')},
+ {field: 'user_id', title: __('User_id')},
+ {field: 'username', title: __('Username'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+ {field: 'avatar', title: __('Avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
+ {field: 'gender', title: __('Gender')},
+ {field: 'status', title: __('Status')},
+ {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+ {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+ {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+ ]
+ ]
+ });
+
+ // 为表格绑定事件
+ Table.api.bindevent(table);
+ },
+ add: function () {
+ Controller.api.bindevent();
+ },
+ edit: function () {
+ Controller.api.bindevent();
+ },
+ api: {
+ bindevent: function () {
+ Form.api.bindevent($("form[role=form]"));
+ }
+ }
+ };
+ return Controller;
+});
diff --git a/public/assets/js/backend/zy/circle/likes.js b/public/assets/js/backend/zy/circle/likes.js
new file mode 100644
index 0000000..2958b30
--- /dev/null
+++ b/public/assets/js/backend/zy/circle/likes.js
@@ -0,0 +1,56 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
+
+ var Controller = {
+ index: function () {
+ // 初始化表格参数配置
+ Table.api.init({
+ extend: {
+ index_url: 'zy/circle/likes/index' + location.search,
+ add_url: 'zy/circle/likes/add',
+ edit_url: 'zy/circle/likes/edit',
+ del_url: 'zy/circle/likes/del',
+ multi_url: 'zy/circle/likes/multi',
+ import_url: 'zy/circle/likes/import',
+ table: 'zy_circle_likes',
+ }
+ });
+
+ var table = $("#table");
+
+ // 初始化表格
+ table.bootstrapTable({
+ url: $.fn.bootstrapTable.defaults.extend.index_url,
+ pk: 'id',
+ sortName: 'id',
+ columns: [
+ [
+ {checkbox: true},
+ {field: 'id', title: __('Id')},
+ {field: 'circle_id', title: __('Circle_id')},
+ {field: 'username', title: __('Username'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+ {field: 'avatar', title: __('Avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
+ {field: 'gender', title: __('Gender')},
+ {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+ {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
+ {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
+ ]
+ ]
+ });
+
+ // 为表格绑定事件
+ Table.api.bindevent(table);
+ },
+ add: function () {
+ Controller.api.bindevent();
+ },
+ edit: function () {
+ Controller.api.bindevent();
+ },
+ api: {
+ bindevent: function () {
+ Form.api.bindevent($("form[role=form]"));
+ }
+ }
+ };
+ return Controller;
+});