diff --git a/Application/Admin/Controller/ArticleController.class.php b/Application/Admin/Controller/ArticleController.class.php index 1a148ef3f..e85f25567 100644 --- a/Application/Admin/Controller/ArticleController.class.php +++ b/Application/Admin/Controller/ArticleController.class.php @@ -930,7 +930,7 @@ class ArticleController extends AdminController { $data['operater_id'] = is_login(); $data['status'] = 1; $res = $pop_rules_model->add($data); - return $res ? $this->success("新增完成") : $this->error("新增失败"); + return $res ? $this->success("新增完成", U('Article/pop_rules')) : $this->error("新增失败"); } } else { if($id) { @@ -943,7 +943,7 @@ class ArticleController extends AdminController { if (!$rule) { return $this->error('记录不存在'); } - $rule['pop_time'] = date("Y-m-d", ($rule['pop_time'] <= 10 ? time() : $rule['pop_time'])); + $rule['pop_time'] = $rule['type'] == 1 ? date("Y-m-d", $rule['pop_time']) : $rule['pop_time']; $this->assign('rule', $rule); } } diff --git a/Application/Admin/View/Article/pop_rule_edit.html b/Application/Admin/View/Article/pop_rule_edit.html index 6385b498e..3232af106 100644 --- a/Application/Admin/View/Article/pop_rule_edit.html +++ b/Application/Admin/View/Article/pop_rule_edit.html @@ -21,7 +21,7 @@
  • - @@ -37,6 +37,7 @@
  • +
  • @@ -65,27 +66,33 @@ \ No newline at end of file diff --git a/Application/Home/Controller/PromoteController.class.php b/Application/Home/Controller/PromoteController.class.php index 8c92a6ad2..d532ed431 100644 --- a/Application/Home/Controller/PromoteController.class.php +++ b/Application/Home/Controller/PromoteController.class.php @@ -26,6 +26,8 @@ use Home\Model\PromoteModel; use Base\Service\PromoteService; use Base\Service\ApplyService; +use Org\RedisSDK\Redis; + /** * 前台首页控制器 * 主要获取首页聚合数据 @@ -222,14 +224,22 @@ class PromoteController extends BaseController $this->assign("rules", $rules); $this->assign("rules_count", count($rules)); - $currentTime = strtotime(date('Y-m-d')); - $weekArray = [7,1,2,3,4,5,6]; - $week = $weekArray[date("w")]; - $match_rules = M("document_pop_rules") - ->field('id') - ->where("(type = 1 and pop_time = {$currentTime}) or (type = 2 and pop_time = {$week})") - ->order("sort asc, id desc") - ->select(); + $redis = new \Org\RedisSDK\Redis(['host'=>'127.0.0.1','port'=>6379],[]); + $cacheKey = "pop:rule:set"; + if (!$redis->sIsMember($cacheKey, get_pid())) { + $currentTime = strtotime(date('Y-m-d')); + $weekArray = [7,1,2,3,4,5,6]; + $week = $weekArray[date("w")]; + $match_rules = M("document_pop_rules") + ->field('id') + ->where("(type = 1 and pop_time = {$currentTime}) or (type = 2 and pop_time = {$week})") + ->order("sort asc, id desc") + ->select(); + } else { + $match_rules = []; + } + + $this->assign("match_rules_id", $match_rules ? json_encode(array_column($match_rules, 'id')) : 'null'); $this->assign("user_count", $user_count); @@ -280,6 +290,19 @@ class PromoteController extends BaseController $this->display('pop_rule_detail'); } + public function popRuleFinish() + { + $redis = new \Org\RedisSDK\Redis(['host'=>'127.0.0.1','port'=>6379],[]); + $cacheKey = "pop:rule:set"; + if ($redis->exists($cacheKey)) { + $redis->sadd($cacheKey, get_pid()); + } else { + $redis->sadd($cacheKey, get_pid()); + $redis->exprieAt($cacheKey, strtotime(date('Y-m-d')) + 86400); + } + return $this->success("成功", [], true); + } + private function caculateSpend($pay_time, $condition, $create = [], $type = 0) { $map['promote_id'] = array('egt', 0); diff --git a/Application/Home/View/default/Promote/pop_rule_detail.html b/Application/Home/View/default/Promote/pop_rule_detail.html index ae07b7b33..5cb08a123 100644 --- a/Application/Home/View/default/Promote/pop_rule_detail.html +++ b/Application/Home/View/default/Promote/pop_rule_detail.html @@ -90,6 +90,8 @@