mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-05-22 14:59:14 +08:00
调整测试案例
This commit is contained in:
parent
4c8ecbf501
commit
71d301c162
@ -55,8 +55,9 @@ class News extends Controller
|
|||||||
*/
|
*/
|
||||||
public function getLike()
|
public function getLike()
|
||||||
{
|
{
|
||||||
$data = $this->_vali(['cid.require' => '文章ID不能为空!']);
|
$query = $this->app->db->name('DataNewsXCollect')->where($this->_vali([
|
||||||
$query = $this->app->db->name('DataNewsXLike')->where($data);
|
'cid.require' => '文章ID不能为空!', 'type.value' => 2,
|
||||||
|
]));
|
||||||
$this->success('获取已点赞的会员', ['list' => $query->order('mid asc')->column('mid')]);
|
$this->success('获取已点赞的会员', ['list' => $query->order('mid asc')->column('mid')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,8 +66,9 @@ class News extends Controller
|
|||||||
*/
|
*/
|
||||||
public function getCollect()
|
public function getCollect()
|
||||||
{
|
{
|
||||||
$data = $this->_vali(['cid.require' => '文章ID不能为空!']);
|
$query = $this->app->db->name('DataNewsXCollect')->where($this->_vali([
|
||||||
$query = $this->app->db->name('DataNewsXCollect')->where($data);
|
'cid.require' => '文章ID不能为空!', 'type.value' => 1,
|
||||||
|
]));
|
||||||
$this->success('获取已收藏的会员', ['list' => $query->order('mid asc')->column('mid')]);
|
$this->success('获取已收藏的会员', ['list' => $query->order('mid asc')->column('mid')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,19 @@ class News extends Auth
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取我的评论
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\DbException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
|
*/
|
||||||
|
public function getComment()
|
||||||
|
{
|
||||||
|
$data = $this->_vali(['mid.value' => $this->mid, 'cid.require' => '内容ID不能为空!']);
|
||||||
|
$query = $this->app->db->name('DataNewsXComment')->where($data)->order('id desc');
|
||||||
|
$this->success('获取评论列表成功', ['list' => $query->select()->toArray()]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除内容评论
|
* 删除内容评论
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
@ -49,31 +62,18 @@ class News extends Auth
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取我的评论
|
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
|
||||||
* @throws \think\db\exception\DbException
|
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
|
||||||
*/
|
|
||||||
public function getComment()
|
|
||||||
{
|
|
||||||
$data = $this->_vali(['mid.value' => $this->mid, 'cid.require' => '内容ID不能为空!']);
|
|
||||||
$query = $this->app->db->name('DataNewsXComment')->where($data)->order('id desc');
|
|
||||||
$this->success('获取评论列表成功', ['list' => $query->select()->toArray()]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加内容收藏
|
* 添加内容收藏
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
*/
|
*/
|
||||||
public function addCollect()
|
public function addCollect()
|
||||||
{
|
{
|
||||||
$data = $this->_vali(['mid.value' => $this->mid, 'cid.require' => '内容ID不能为空!']);
|
$map = $this->_getCollectWhere(1);
|
||||||
if ($this->app->db->name('DataNewsXCollect')->where($data)->count() > 0) {
|
if ($this->app->db->name('DataNewsXCollect')->where($map)->count() > 0) {
|
||||||
$this->success('您已收藏!');
|
$this->success('您已收藏!');
|
||||||
}
|
}
|
||||||
if ($this->app->db->name('DataNewsXCollect')->insert($data) !== false) {
|
if ($this->app->db->name('DataNewsXCollect')->insert($map) !== false) {
|
||||||
NewsService::instance()->syncNewsTotal($data['cid']);
|
NewsService::instance()->syncNewsTotal($map['cid']);
|
||||||
$this->success('收藏成功!');
|
$this->success('收藏成功!');
|
||||||
} else {
|
} else {
|
||||||
$this->error('收藏失败!');
|
$this->error('收藏失败!');
|
||||||
@ -86,7 +86,7 @@ class News extends Auth
|
|||||||
*/
|
*/
|
||||||
public function delCollect()
|
public function delCollect()
|
||||||
{
|
{
|
||||||
$data = $this->_vali(['mid.value' => $this->mid, 'cid.require' => '文章ID不能为空!']);
|
$data = $this->_getCollectWhere(1);
|
||||||
if ($this->app->db->name('DataNewsXCollect')->where($data)->delete() !== false) {
|
if ($this->app->db->name('DataNewsXCollect')->where($data)->delete() !== false) {
|
||||||
NewsService::instance()->syncNewsTotal($data['cid']);
|
NewsService::instance()->syncNewsTotal($data['cid']);
|
||||||
$this->success('取消收藏成功!');
|
$this->success('取消收藏成功!');
|
||||||
@ -96,12 +96,13 @@ class News extends Auth
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取我收藏的资讯
|
* 获取会员收藏的资讯
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
*/
|
*/
|
||||||
public function getMyCollect()
|
public function getCollect()
|
||||||
{
|
{
|
||||||
$query = $this->_query('DataNewsXCollect')->where(['mid' => $this->mid]);
|
$query = $this->_query('DataNewsXCollect');
|
||||||
|
$query->where(['mid' => $this->mid, 'type' => 1]);
|
||||||
$result = $query->order('id desc')->page(true, false, false, 15);
|
$result = $query->order('id desc')->page(true, false, false, 15);
|
||||||
NewsService::instance()->buildListByCid($result['list']);
|
NewsService::instance()->buildListByCid($result['list']);
|
||||||
$this->success('获取收藏记录成功!', $result);
|
$this->success('获取收藏记录成功!', $result);
|
||||||
@ -113,12 +114,12 @@ class News extends Auth
|
|||||||
*/
|
*/
|
||||||
public function addLike()
|
public function addLike()
|
||||||
{
|
{
|
||||||
$data = $this->_vali(['mid.value' => $this->mid, 'cid.require' => '内容ID不能为空!']);
|
$map = $this->_getCollectWhere(2);
|
||||||
if ($this->app->db->name('DataNewsXLike')->where($data)->count() > 0) {
|
if ($this->app->db->name('DataNewsXCollect')->where($map)->count() > 0) {
|
||||||
$this->success('您已点赞!');
|
$this->success('您已点赞!');
|
||||||
}
|
}
|
||||||
if ($this->app->db->name('DataNewsXLike')->insert($data) !== false) {
|
if ($this->app->db->name('DataNewsXCollect')->insert($map) !== false) {
|
||||||
NewsService::instance()->syncNewsTotal($data['cid']);
|
NewsService::instance()->syncNewsTotal($map['cid']);
|
||||||
$this->success('点赞成功!');
|
$this->success('点赞成功!');
|
||||||
} else {
|
} else {
|
||||||
$this->error('点赞失败!');
|
$this->error('点赞失败!');
|
||||||
@ -131,9 +132,9 @@ class News extends Auth
|
|||||||
*/
|
*/
|
||||||
public function delLike()
|
public function delLike()
|
||||||
{
|
{
|
||||||
$data = $this->_vali(['mid.value' => $this->mid, 'cid.require' => '内容ID不能为空!']);
|
$map = $this->_getCollectWhere(2);
|
||||||
if ($this->app->db->name('DataNewsXLike')->where($data)->delete() !== false) {
|
if ($this->app->db->name('DataNewsXCollect')->where($map)->delete() !== false) {
|
||||||
NewsService::instance()->syncNewsTotal($data['cid']);
|
NewsService::instance()->syncNewsTotal($map['cid']);
|
||||||
$this->success('取消点赞成功!');
|
$this->success('取消点赞成功!');
|
||||||
} else {
|
} else {
|
||||||
$this->error('取消点赞失败!');
|
$this->error('取消点赞失败!');
|
||||||
@ -141,18 +142,31 @@ class News extends Auth
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取浏览历史
|
* 获取会员的浏览历史
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
*/
|
*/
|
||||||
public function getHistory()
|
public function getHistory()
|
||||||
{
|
{
|
||||||
$query = $this->_query('DataNewsXHistory');
|
$query = $this->_query('DataNewsXHistory')->where(['mid' => $this->mid]);
|
||||||
$query->where(['mid' => $this->mid])->order('id desc');
|
$result = $query->order('id desc')->page(true, false, false, 15);
|
||||||
$result = $query->page(true, false, false, 15);
|
|
||||||
NewsService::instance()->buildListByCid($result['list']);
|
NewsService::instance()->buildListByCid($result['list']);
|
||||||
$this->success('获取浏览历史成功!', $result);
|
$this->success('获取浏览历史成功!', $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取收藏点赞
|
||||||
|
* @param integer $type 数据类型
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function _getCollectWhere($type = 1): array
|
||||||
|
{
|
||||||
|
return $this->_vali([
|
||||||
|
'mid.value' => $this->mid,
|
||||||
|
'type.value' => $type,
|
||||||
|
'cid.require' => '文章ID不能为空!',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -137,16 +137,17 @@ CREATE TABLE `data_news_mark` (
|
|||||||
-- Table structure for data_news_x_collect
|
-- Table structure for data_news_x_collect
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `data_news_x_collect`;
|
DROP TABLE IF EXISTS `data_news_x_collect`;
|
||||||
CREATE TABLE `data_news_x_collect` (
|
CREATE TABLE `data_news_x_collect` (
|
||||||
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`cid` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '文章编号',
|
`cid` bigint(20) unsigned DEFAULT '0' COMMENT '文章编号',
|
||||||
`mid` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '会员MID',
|
`mid` bigint(20) unsigned DEFAULT '0' COMMENT '会员MID',
|
||||||
`content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '评论内容',
|
`type` tinyint(1) unsigned DEFAULT '1' COMMENT '记录类型(1收藏,2点赞)',
|
||||||
`create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
`create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
INDEX `idx_data_news_x_collect_cid`(`cid`) USING BTREE,
|
KEY `idx_data_news_x_collect_cid` (`cid`) USING BTREE,
|
||||||
INDEX `idx_data_news_x_collect_mid`(`mid`) USING BTREE
|
KEY `idx_data_news_x_collect_mid` (`mid`) USING BTREE,
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据-文章-会员-收藏' ROW_FORMAT=Compact;
|
KEY `idx_data_news_x_collect_type` (`type`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='数据-文章-会员-收藏';
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for data_news_x_comment
|
-- Table structure for data_news_x_comment
|
||||||
@ -177,18 +178,4 @@ CREATE TABLE `data_news_x_history` (
|
|||||||
INDEX `idx_data_news_x_history_mid`(`mid`) USING BTREE
|
INDEX `idx_data_news_x_history_mid`(`mid`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据-文章-会员-历史' ROW_FORMAT=Compact;
|
) ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据-文章-会员-历史' ROW_FORMAT=Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Table structure for data_news_x_like
|
|
||||||
-- ----------------------------
|
|
||||||
DROP TABLE IF EXISTS `data_news_x_like`;
|
|
||||||
CREATE TABLE `data_news_x_like` (
|
|
||||||
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`cid` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '文章编号',
|
|
||||||
`mid` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '会员MID',
|
|
||||||
`create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
|
||||||
INDEX `idx_data_news_x_like_cid`(`cid`) USING BTREE,
|
|
||||||
INDEX `idx_data_news_x_like_mid`(`mid`) USING BTREE
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据-文章-会员-点赞' ROW_FORMAT=Compact;
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=1;
|
SET FOREIGN_KEY_CHECKS=1;
|
||||||
|
@ -13,21 +13,25 @@ class NewsService extends Service
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 同步文章数据统计
|
* 同步文章数据统计
|
||||||
* @param integer $cid 文章ID
|
* @param integer $cid 文章记录ID
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
*/
|
*/
|
||||||
public function syncNewsTotal($cid)
|
public function syncNewsTotal(int $cid)
|
||||||
{
|
{
|
||||||
$this->app->db->name('DataNewsItem')->where(['id' => $cid])->update([
|
[$map, $total] = [['cid' => $cid], []];
|
||||||
'num_like' => $this->app->db->name('DataNewsXLike')->where(['cid' => $cid])->count(),
|
$query = $this->app->db->name('DataNewsXCollect')->field('count(1) count,type');
|
||||||
'num_comment' => $this->app->db->name('DataNewsXComment')->where(['cid' => $cid])->count(),
|
$query->where($map)->group('type')->select()->map(function ($item) use (&$total) {
|
||||||
'num_collect' => $this->app->db->name('DataNewsXCollect')->where(['cid' => $cid])->count(),
|
$total[$item['type']] = $item['count'];
|
||||||
|
});
|
||||||
|
$this->app->db->name('DataNewsItem')->where($map)->update([
|
||||||
|
'num_collect' => $total[2] ?? 0, 'num_like' => $total[1] ?? 0,
|
||||||
|
'num_comment' => $this->app->db->name('DataNewsXComment')->where($map)->count(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据CID绑定列表数据
|
* 根据CID绑定列表数据
|
||||||
* @param array $list
|
* @param array $list 数据列表
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function buildListByCid(array &$list = []): array
|
public function buildListByCid(array &$list = []): array
|
||||||
@ -43,7 +47,7 @@ class NewsService extends Service
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据MID绑定列表数据
|
* 根据MID绑定列表数据
|
||||||
* @param array $list
|
* @param array $list 数据列表
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function buildListByMid(array &$list = []): array
|
public function buildListByMid(array &$list = []): array
|
||||||
@ -59,8 +63,8 @@ class NewsService extends Service
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取列表状态
|
* 获取列表状态
|
||||||
* @param array $list
|
* @param array $list 数据列表
|
||||||
* @param integer $mid
|
* @param integer $mid 会员MID
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function buildListState(array &$list, int $mid = 0): array
|
public function buildListState(array &$list, int $mid = 0): array
|
||||||
|
Loading…
x
Reference in New Issue
Block a user