ArticleDeleteController.class.php
3.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/**
* ArticleDeleteController.class.php
* 删除文章推荐 RPC 接口
* @author Deepseath
* @version $Id$
*/
namespace Rpc\Controller\Recommender;
use Common\Service\CommonRecommenderService;
use Think\Log;
use Common\Model\CommonRecommenderModel;
use Think\Exception;
use Common\Service\CommonRecommenderRightService;
/**
* 删除文章推荐 RPC 接口
*
* @uses 调用方法:\Com\Rpc::phprpc(rpc 接口 url)->invoke(接口方法名, 需要传入的参数数组key-value);
*/
class ArticleDeleteController extends AbstractController
{
/**
* 删除指定文章推荐信息
* @desc 【RPC】删除指定文章推荐信息接口
* @param mixed app:true 被推荐数据所在应用模块目录标识名
* @param mixed dataCategoryId:true 被推荐数据所属的分类Id,可以为空,但必须提供该参数
* @param mixed dataId:true 被推荐数据的原始数据 Id
* @return boolean
*/
public function Index()
{
if (!$this->_checkKeyParams()) {
return false;
}
$recommenderService = new CommonRecommenderService();
$recommenderRightService = new CommonRecommenderRightService();
$conds = [
'type' => CommonRecommenderModel::TYPE_ARTICLE,
'app_dir' => $this->_params['app'],
'data_category_id' => $this->_params['dataCategoryId'],
'data_id' => $this->_params['dataId']
];
// 获取所有待删除的推荐 ID
$list = $recommenderService->list_by_appData($conds['type'], $conds['app_dir'], $conds['data_id'], $conds['data_category_id']);
if (empty($list)) {
Log::record('<!-- 删除推荐数据:');
Log::record('!! 未发现待删除的数据 !!');
Log::record(print_r($this->_params, true));
Log::record('结束删除推荐数据 -->');
return true;
}
// 所有待操作的数据 id
$recommenderIds = array_keys($list);
unset($list);
try {
// 启动数据更改过程
$recommenderService->start_trans();
// 删除推荐数据主表
$recommenderService->delete($recommenderIds);
// 删除权限可见范围表
$recommenderRightService->delete_by_conds([
'recommender_id' => $recommenderIds
]);
// 提交数据更改
$recommenderService->commit();
} catch (Exception $e) {
// 回滚数据
$recommenderService->rollback();
Log::record('<!-- 删除推荐数据:');
Log::record('!! 数据库操作失败 !!');
Log::record(print_r($this->_params, true));
Log::record('结束删除推荐数据 -->');
E('_ERR_ACTIVITY_ADD_FAILED');
return false;
}
Log::record('<!-- 删除推荐数据:');
Log::record(print_r($this->_params, true));
Log::record('结束删除推荐数据 -->');
return true;
}
}