当前位置: 首页>网络资讯 > 网站建设 >

微米VM分时段关注自动回复修复

来源:灵动网络    点击:    日期:2015-12-31 12:09:01

1.执行以下sql语句:说明tp表前缀改成你自己的表前缀
  1. CREATE TABLE IF NOT EXISTS `tp_subscribe_reply` (
  2.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3.   `start_time` varchar(30) NOT NULL,
  4.   `end_time` varchar(30) NOT NULL,
  5.   `reply_type` tinyint(1) NOT NULL,
  6.   `r_type` char(10) NOT NULL,
  7.   `relevance_id` varchar(30) NOT NULL,
  8.   `relevance_name` varchar(255) NOT NULL,
  9.   `title` varchar(800) NOT NULL,
  10.   `token` char(30) NOT NULL DEFAULT '',
  11.   `add_time` int(11) NOT NULL,
  12.   `update_time` int(10) NOT NULL,
  13.   `status` tinyint(1) NOT NULL,
  14.   `isrepeat` tinyint(1) NOT NULL,
  15.   `times` int(10) NOT NULL,
  16.   PRIMARY KEY (`id`),
  17.   KEY `relevance_id` (`relevance_id`)
  18. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
复制代码
2.weimicms/Lib/Action/User/AreplyAction.class.php大约52行下边添加:
  1. public function advanceindex()
  2.         {
  3.                 $where = array("token" => $this->token);
  4.                 $count = M("subscribe_reply")->where($where)->count();
  5.                 $page = new Page($count, 10);
  6.                 $list = M("subscribe_reply")->where($where)->order("id desc")->limit($page->firstRow . "," . $page->listRows)->select();
  7.  
  8.                 foreach ($list as $key => $value ) {
  9.                         if (($value["reply_type"] == 5) && ($value["relevance_id"] == "")) {
  10.                                 $list[$key]["status"] = 1;
  11.                         }
  12.                         else {
  13.                                 if (($value["reply_type"] == 5) && ($value["relevance_id"] != "")) {
  14.                                         $list[$key]["lows"] = substr_count($value["relevance_id"], ",");
  15.                                 }
  16.                         }
  17.                 }
  18.  
  19.                 $this->assign("list", $list);
  20.                 $this->assign("page", $page->show());
  21.                 $this->display();
  22.         }
  23.  
  24.         public function advanceadd()
  25.         {
  26.                 if (IS_POST) {
  27.                         if ((count($_POST["start_time"]) == 1) && (count($_POST["end_time"]) == 1)) {
  28.                                 $data["start_time"] = $_POST["start_time"][0];
  29.                                 $data["end_time"] = $_POST["end_time"][0];
  30.                         }
  31.                         else {
  32.                                 if ((1 < count($_POST["start_time"])) && (1 < count($_POST["end_time"]))) {
  33.                                         $data["start_time"] = $_POST["start_time"];
  34.                                         $data["end_time"] = $_POST["end_time"];
  35.                                 }
  36.                         }
  37.  
  38.                         $data["reply_type"] = (int) $_POST["reply_type"];
  39.                         $data["id"] = (int) $_POST["id"];
  40.                         $data["original_id"] = (int) $_POST["original_id"];
  41.                         $data["imgids"] = trim($_POST["imgids"], ",");
  42.                         $data["r_type"] = trim($_POST["r_type"]);
  43.  
  44.                         switch ($data["reply_type"]) {
  45.                         case $data["reply_type"]:
  46.                                 $this->AddimgReply($data);
  47.                                 break;
  48.  
  49.                         case $data["reply_type"]:
  50.                                 $this->AddtitleReply($data);
  51.                                 break;
  52.  
  53.                         case $data["reply_type"]:
  54.                                 $this->AddcardReply($data);
  55.                                 break;
  56.  
  57.                         case $data["reply_type"]:
  58.                         case $data["reply_type"]:
  59.                                 $this->AddhbReply($data);
  60.                                 break;
  61.  
  62.                         case $data["reply_type"]:
  63.                                 $this->AddmultiimgReply($data);
  64.                                 break;
  65.  
  66.                         case $data["reply_type"]:
  67.                                 $this->AddImgAction($data);
  68.                                 break;
  69.  
  70.                         default:
  71.                                 break;
  72.                         }
  73.                 }
  74.  
  75.                 if ($_GET["id"] != "") {
  76.                         $set = M("subscribe_reply")->where(array("id" => (int) $_GET["id"]))->find();
  77.  
  78.                         if (5 == $set["reply_type"]) {
  79.                                 if (strpos($set["relevance_id"], ",") !== false) {
  80.                                         $set["relevance_id"] = trim($set["relevance_id"], ",");
  81.                                         $mlist = M("img")->where(array(
  82.         "id" => array("in", $set["relevance_id"])
  83.         ))->field("id,text,pic,info,url,title")->order("field(id," . $set["relevance_id"] . ")")->select();
  84.                                         $this->assign("end_img", $mlist[0]);
  85.                                         array_shift($mlist);
  86.                                         $this->assign("mlist", $mlist);
  87.                                 }
  88.                         }
  89.                         else {
  90.                                 if ((1 == $set["reply_type"]) || (7 == $set["reply_type"])) {
  91.                                         $img = M("img")->where(array("id" => $set["relevance_id"]))->field("id,text,pic,url,info,title")->find();
  92.                                         $this->assign("end_img", $img);
  93.                                 }
  94.                         }
  95.  
  96.                         $set["id"] = (int) $_GET["id"];
  97.                         $this->assign("set", $set);
  98.                 }
  99.                 else {
  100.                         $this->assign("reply_type", $_GET["reply_type"]);
  101.                 }
  102.  
  103.                 $r_type = ($_GET["r_type"] ? trim($_GET["r_type"]) : "add");
  104.                 $this->assign("r_type", $r_type);
  105.                 $this->assign("winxintype", $this->wxuser["winxintype"]);
  106.                 $this->assign("token", $this->token);
  107.                 $this->display();
  108.         }
  109.  
  110.         public function AddimgReply($data)
  111.         {
  112.                 if ($data["r_type"] == "select") {
  113.                         $data["title"] = trim($_POST["imgtitle"], ",");
  114.  
  115.                         if ($data["id"] == "") {
  116.                                 if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  117.                                         $data["relevance_id"] = $data["imgids"];
  118.                                         $data["token"] = $this->token;
  119.                                         $data["add_time"] = $_SERVER["REQUEST_TIME"];
  120.                                         $data["update_time"] = 0;
  121.                                         $insert = M("subscribe_reply")->add($data);
  122.                                 }
  123.                                 else {
  124.                                         if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  125.                                                 foreach ($data["start_time"] as $kk => $vv ) {
  126.                                                         if (($vv != "") && ($data["end_time"][$kk] != "")) {
  127.                                                                 $dataAll[$kk]["start_time"] = $vv;
  128.                                                                 $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  129.                                                                 $dataAll[$kk]["reply_type"] = $data["reply_type"];
  130.                                                                 $dataAll[$kk]["r_type"] = $data["r_type"];
  131.                                                                 $dataAll[$kk]["relevance_id"] = $data["imgids"];
  132.                                                                 $dataAll[$kk]["title"] = $data["title"];
  133.                                                                 $dataAll[$kk]["token"] = $this->token;
  134.                                                                 $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  135.                                                                 $dataAll[$kk]["update_time"] = 0;
  136.                                                         }
  137.                                                 }
  138.  
  139.                                                 $insert = M("subscribe_reply")->addAll($dataAll);
  140.                                         }
  141.                                         else {
  142.                                                 $this->error("参数错误");
  143.                                         }
  144.                                 }
  145.  
  146.                                 if ($insert) {
  147.                                         if ($data["original_id"] != "") {
  148.                                                 M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  149.                                         }
  150.  
  151.                                         $this->success("单图文消息添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  152.                                         exit();
  153.                                 }
  154.                                 else {
  155.                                         $this->error("单图文消息添加失败");
  156.                                 }
  157.                         }
  158.                         else {
  159.                                 $data["relevance_id"] = $data["imgids"];
  160.                                 $data["update_time"] = $_SERVER["REQUEST_TIME"];
  161.                                 $update = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  162.  
  163.                                 if ($update) {
  164.                                         $this->success("单图文消息编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  165.                                         exit();
  166.                                 }
  167.                                 else {
  168.                                         $this->error("单图文消息编辑失败");
  169.                                 }
  170.                         }
  171.                 }
  172.                 else {
  173.                         if (trim($_POST["img_title"]) == "") {
  174.                                 $this->error("回复标题不能为空");
  175.                         }
  176.  
  177.                         if (trim($_POST["reply_pic"]) == "") {
  178.                                 $this->error("回复图片不能为空");
  179.                         }
  180.  
  181.                         $data["title"] = trim($_POST["img_title"]);
  182.                         $img = array();
  183.                         $img["title"] = trim($_POST["img_title"]);
  184.                         $img["text"] = trim($_POST["reply_desc"]);
  185.  
  186.                         if ($data["reply_type"] == 1) {
  187.                                 $img["info"] = trim($_POST["reply_content"]);
  188.                         }
  189.  
  190.                         $img["pic"] = trim($_POST["reply_pic"]);
  191.                         $img["showpic"] = 1;
  192.                         $img["uid"] = session("uid");
  193.                         $img["uname"] = session("uname");
  194.  
  195.                         if (strpos($img["pic"], "http") === false) {
  196.                                 $img["pic"] = $this->siteUrl . $img["pic"];
  197.                         }
  198.  
  199.                         if ($data["id"] == "") {
  200.                                 $lastid = M("Img")->where(array("token" => $this->token))->order("usort DESC")->limit(1)->getField("usort");
  201.                                 $img["usort"] = $lastid + 1;
  202.                                 $img["is_focus"] = 0;
  203.                                 $img["createtime"] = $_SERVER["REQUEST_TIME"];
  204.                                 $img["updatetime"] = 0;
  205.                                 $img["token"] = $this->token;
  206.                                 $addImgId = M("img")->add($img);
  207.  
  208.                                 if ($addImgId) {
  209.                                         if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  210.                                                 $data["relevance_id"] = $addImgId;
  211.                                                 $data["add_time"] = $_SERVER["REQUEST_TIME"];
  212.                                                 $data["update_time"] = 0;
  213.                                                 $data["token"] = $this->token;
  214.                                                 $insert = M("subscribe_reply")->add($data);
  215.                                         }
  216.                                         else {
  217.                                                 if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  218.                                                         foreach ($data["start_time"] as $kk => $vv ) {
  219.                                                                 if (($vv != "") && ($data["end_time"][$kk] != "")) {
  220.                                                                         $dataAll[$kk]["start_time"] = $vv;
  221.                                                                         $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  222.                                                                         $dataAll[$kk]["reply_type"] = $data["reply_type"];
  223.                                                                         $dataAll[$kk]["r_type"] = $data["r_type"];
  224.                                                                         $dataAll[$kk]["relevance_id"] = $addImgId;
  225.                                                                         $dataAll[$kk]["title"] = $img["title"];
  226.                                                                         $dataAll[$kk]["token"] = $this->token;
  227.                                                                         $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  228.                                                                         $dataAll[$kk]["update_time"] = 0;
  229.                                                                 }
  230.                                                         }
  231.  
  232.                                                         $insert = M("subscribe_reply")->addAll($dataAll);
  233.                                                 }
  234.                                         }
  235.  
  236.                                         if ($insert) {
  237.                                                 if ($data["original_id"] != "") {
  238.                                                         M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  239.                                                 }
  240.  
  241.                                                 $this->success("单图文消息添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  242.                                                 exit();
  243.                                         }
  244.                                         else {
  245.                                                 $this->error("单图文消息添加失败");
  246.                                         }
  247.                                 }
  248.                                 else {
  249.                                         $this->error("单图文回复添加失败");
  250.                                 }
  251.                         }
  252.                         else {
  253.                                 $data["update_time"] = $_SERVER["REQUEST_TIME"];
  254.                                 $img["updatetime"] = $_SERVER["REQUEST_TIME"];
  255.                                 $updateImg = M("img")->where(array("id" => (int) $_POST["relevance_id"]))->save($img);
  256.                                 $updateReply = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  257.                                 if (($updateImg !== false) && ($updateReply !== false)) {
  258.                                         $this->success("单图文编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  259.                                         exit();
  260.                                 }
  261.                                 else {
  262.                                         $this->error("单图文编辑失败");
  263.                                 }
  264.                         }
  265.                 }
  266.         }
  267.  
  268.         private function AddImgAction($data)
  269.         {
  270.                 if (trim($_POST["img_title_action"]) == "") {
  271.                         $this->error("回复标题不能为空");
  272.                 }
  273.  
  274.                 if (trim($_POST["reply_pic_action"]) == "") {
  275.                         $this->error("回复图片不能为空");
  276.                 }
  277.  
  278.                 if (trim($_POST["jump_url"]) == "") {
  279.                         $this->error("图文外链地址不能为空");
  280.                 }
  281.  
  282.                 $data["title"] = trim($_POST["img_title_action"]);
  283.                 $img = array();
  284.                 $img["title"] = trim($_POST["img_title_action"]);
  285.                 $img["text"] = trim($_POST["reply_desc_action"]);
  286.  
  287.                 if ($data["reply_type"] == 1) {
  288.                         $img["info"] = trim($_POST["reply_content_action"]);
  289.                 }
  290.  
  291.                 $img["pic"] = trim($_POST["reply_pic_action"]);
  292.                 $img["showpic"] = 1;
  293.                 $img["uid"] = session("uid");
  294.                 $img["uname"] = session("uname");
  295.  
  296.                 if (strpos($img["pic"], "http") === false) {
  297.                         $img["pic"] = $this->siteUrl . $img["pic"];
  298.                 }
  299.  
  300.                 $img["url"] = trim($_POST["jump_url"]);
  301.  
  302.                 if (strpos($img["url"], "{wechat_id}") !== false) {
  303.                         $img["url"] = str_replace("{wechat_id}", "", $img["url"]);
  304.                 }
  305.  
  306.                 if (strpos($img["url"], "{siteUrl}") !== false) {
  307.                         $img["url"] = str_replace("{siteUrl}", $this->siteUrl, $img["url"]);
  308.                 }
  309.  
  310.                 if (strpos($img["url"], "{changjingUrl}") !== false) {
  311.                         $img["url"] = str_replace("{changjingUrl}", "http://www.meihua.com", $img["url"]);
  312.                 }
  313.  
  314.                 $url = str_replace(array("{siteUrl}", "{changjingUrl}"), $this->siteUrl, $img["url"]);
  315.                 $img["url"] = htmlspecialchars_decode($url);
  316.  
  317.                 if ($data["id"] == "") {
  318.                         $lastid = M("Img")->where(array("token" => $this->token))->order("usort DESC")->limit(1)->getField("usort");
  319.                         $img["usort"] = $lastid + 1;
  320.                         $img["is_focus"] = 0;
  321.                         $img["createtime"] = $_SERVER["REQUEST_TIME"];
  322.                         $img["updatetime"] = 0;
  323.                         $img["token"] = $this->token;
  324.                         $addImgId = M("img")->add($img);
  325.  
  326.                         if ($addImgId) {
  327.                                 if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  328.                                         $data["relevance_id"] = $addImgId;
  329.                                         $data["add_time"] = $_SERVER["REQUEST_TIME"];
  330.                                         $data["update_time"] = 0;
  331.                                         $data["token"] = $this->token;
  332.                                         $insert = M("subscribe_reply")->add($data);
  333.                                 }
  334.                                 else {
  335.                                         if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  336.                                                 foreach ($data["start_time"] as $kk => $vv ) {
  337.                                                         if (($vv != "") && ($data["end_time"][$kk] != "")) {
  338.                                                                 $dataAll[$kk]["start_time"] = $vv;
  339.                                                                 $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  340.                                                                 $dataAll[$kk]["reply_type"] = $data["reply_type"];
  341.                                                                 $dataAll[$kk]["r_type"] = $data["r_type"];
  342.                                                                 $dataAll[$kk]["relevance_id"] = $addImgId;
  343.                                                                 $dataAll[$kk]["title"] = $img["title"];
  344.                                                                 $dataAll[$kk]["token"] = $this->token;
  345.                                                                 $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  346.                                                                 $dataAll[$kk]["update_time"] = 0;
  347.                                                         }
  348.                                                 }
  349.  
  350.                                                 $insert = M("subscribe_reply")->addAll($dataAll);
  351.                                         }
  352.                                 }
  353.  
  354.                                 if ($insert) {
  355.                                         if ($data["original_id"] != "") {
  356.                                                 M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  357.                                         }
  358.  
  359.                                         $this->success("外链图文消息添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  360.                                         exit();
  361.                                 }
  362.                                 else {
  363.                                         $this->error("外链图文消息添加失败");
  364.                                 }
  365.                         }
  366.                         else {
  367.                                 $this->error("外链图文回复添加失败");
  368.                         }
  369.                 }
  370.                 else {
  371.                         $data["update_time"] = $_SERVER["REQUEST_TIME"];
  372.                         $img["updatetime"] = $_SERVER["REQUEST_TIME"];
  373.                         $updateImg = M("img")->where(array("id" => (int) $_POST["relevance_id"]))->save($img);
  374.                         $updateReply = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  375.                         if (($updateImg !== false) && ($updateReply !== false)) {
  376.                                 $this->success("外链图文消息编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  377.                                 exit();
  378.                         }
  379.                         else {
  380.                                 $this->error("外链图文消息编辑失败");
  381.                         }
  382.                 }
  383.         }
  384.  
  385.         private function AddmultiimgReply($data)
  386.         {
  387.                 if (trim($_POST["imgids"]) == "") {
  388.                         $this->error("请先选择单图文");
  389.                 }
  390.  
  391.                 $data["relevance_id"] = trim($_POST["imgids"], ",") . ",";
  392.                 $data["title"] = trim($_POST["imgtitle"], ",");
  393.  
  394.                 if ($data["id"] == "") {
  395.                         if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  396.                                 $data["add_time"] = $_SERVER["REQUEST_TIME"];
  397.                                 $data["update_time"] = 0;
  398.                                 $data["token"] = $this->token;
  399.                                 $insert = M("subscribe_reply")->add($data);
  400.                         }
  401.                         else {
  402.                                 if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  403.                                         foreach ($data["start_time"] as $kk => $vv ) {
  404.                                                 if (($vv != "") && ($data["end_time"][$kk] != "")) {
  405.                                                         $dataAll[$kk]["start_time"] = $vv;
  406.                                                         $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  407.                                                         $dataAll[$kk]["reply_type"] = $data["reply_type"];
  408.                                                         $dataAll[$kk]["r_type"] = $data["r_type"];
  409.                                                         $dataAll[$kk]["relevance_id"] = $data["relevance_id"];
  410.                                                         $dataAll[$kk]["title"] = "";
  411.                                                         $dataAll[$kk]["token"] = $this->token;
  412.                                                         $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  413.                                                         $dataAll[$kk]["update_time"] = 0;
  414.                                                 }
  415.                                         }
  416.  
  417.                                         $insert = M("subscribe_reply")->addAll($dataAll);
  418.                                 }
  419.                                 else {
  420.                                         $this->error("多图文回复添加失败");
  421.                                 }
  422.                         }
  423.  
  424.                         if ($insert) {
  425.                                 if ($data["original_id"] != "") {
  426.                                         M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  427.                                 }
  428.  
  429.                                 $this->success("多图文添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  430.                                 exit();
  431.                         }
  432.                         else {
  433.                                 $this->error("多图文添加失败");
  434.                         }
  435.                 }
  436.                 else {
  437.                         $data["update_time"] = $_SERVER["REQUEST_TIME"];
  438.                         $update = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  439.  
  440.                         if ($update) {
  441.                                 $this->success("多图文编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  442.                                 exit();
  443.                         }
  444.                         else {
  445.                                 $this->error("多图文编辑失败");
  446.                         }
  447.                 }
  448.         }
  449.  
  450.         public function AddcardReply($data)
  451.         {
  452.                 if ($_POST["relevance_id_card"] == "") {
  453.                         $this->error("请选择卡券");
  454.                 }
  455.  
  456.                 if (((int) $_POST["isrepeat_card"] == 1) && ($_POST["times_card"] == "")) {
  457.                         $this->error("每天领取次数不能为空");
  458.                 }
  459.  
  460.                 $data["relevance_id"] = (int) $_POST["relevance_id_card"];
  461.                 $data["relevance_name"] = (string) $_POST["relevance_name_card"];
  462.                 $data["isrepeat"] = (int) $_POST["isrepeat_card"];
  463.                 $data["times"] = (int) $_POST["times_card"];
  464.  
  465.                 if ($data["id"] == "") {
  466.                         if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  467.                                 $data["token"] = $this->token;
  468.                                 $data["add_time"] = $_SERVER["REQUEST_TIME"];
  469.                                 $data["update_time"] = 0;
  470.                                 $insert = M("subscribe_reply")->add($data);
  471.                         }
  472.                         else {
  473.                                 if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  474.                                         foreach ($data["start_time"] as $kk => $vv ) {
  475.                                                 if (($vv != "") && ($data["end_time"][$kk] != "")) {
  476.                                                         $dataAll[$kk]["start_time"] = $vv;
  477.                                                         $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  478.                                                         $dataAll[$kk]["reply_type"] = $data["reply_type"];
  479.                                                         $dataAll[$kk]["r_type"] = $data["r_type"];
  480.                                                         $dataAll[$kk]["relevance_id"] = $data["relevance_id"];
  481.                                                         $dataAll[$kk]["relevance_name"] = $data["relevance_name"];
  482.                                                         $dataAll[$kk]["title"] = "";
  483.                                                         $dataAll[$kk]["token"] = $this->token;
  484.                                                         $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  485.                                                         $dataAll[$kk]["update_time"] = 0;
  486.                                                 }
  487.                                         }
  488.  
  489.                                         $insert = M("subscribe_reply")->addAll($dataAll);
  490.                                 }
  491.                                 else {
  492.                                         $this->error("回复卡券添加失败");
  493.                                 }
  494.                         }
  495.  
  496.                         if ($insert) {
  497.                                 if ($data["original_id"] != "") {
  498.                                         M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  499.                                 }
  500.  
  501.                                 $this->success("回复卡券添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  502.                                 exit();
  503.                         }
  504.                         else {
  505.                                 $this->error("回复卡券添加失败");
  506.                         }
  507.                 }
  508.                 else {
  509.                         $data["update_time"] = $_SERVER["REQUEST_TIME"];
  510.                         $update = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  511.  
  512.                         if ($update) {
  513.                                 $this->success("回复卡券编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  514.                                 exit();
  515.                         }
  516.                         else {
  517.                                 $this->error("回复卡券编辑失败");
  518.                         }
  519.                 }
  520.         }
  521.  
  522.         public function AddhbReply($data)
  523.         {
  524.                 if ($data["reply_type"] == 4) {
  525.                         if ($_POST["relevance_id_hongbao_pt"] == "") {
  526.                                 $this->error("请选择普通红包");
  527.                         }
  528.  
  529.                         if (((int) $_POST["isrepeat_pt"] == 1) && ($_POST["times_pt"] == "")) {
  530.                                 $this->error("每天领取次数不能为空");
  531.                         }
  532.  
  533.                         $data["relevance_id"] = (int) $_POST["relevance_id_hongbao_pt"];
  534.                         $data["relevance_name"] = (string) $_POST["relevance_name_hongbao_pt"];
  535.                         $data["isrepeat"] = (int) $_POST["isrepeat_pt"];
  536.                         $data["times"] = (int) $_POST["times_pt"];
  537.                 }
  538.                 else if ($data["reply_type"] == 6) {
  539.                         if ($_POST["relevance_id_hongbao_lb"] == "") {
  540.                                 $this->error("请选择普通红包");
  541.                         }
  542.  
  543.                         if (((int) $_POST["isrepeat_lb"] == 1) && ($_POST["times_lb"] == "")) {
  544.                                 $this->error("每天领取次数不能为空");
  545.                         }
  546.  
  547.                         $data["relevance_id"] = (int) $_POST["relevance_id_hongbao_lb"];
  548.                         $data["relevance_name"] = (string) $_POST["relevance_name_hongbao_lb"];
  549.                         $data["isrepeat"] = (int) $_POST["isrepeat_lb"];
  550.                         $data["times"] = (int) $_POST["times_lb"];
  551.                 }
  552.  
  553.                 if ($data["id"] == "") {
  554.                         if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  555.                                 $data["token"] = $this->token;
  556.                                 $data["add_time"] = $_SERVER["REQUEST_TIME"];
  557.                                 $data["update_time"] = 0;
  558.                                 $insert = M("subscribe_reply")->add($data);
  559.                         }
  560.                         else {
  561.                                 if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  562.                                         foreach ($data["start_time"] as $kk => $vv ) {
  563.                                                 if (($vv != "") && ($data["end_time"][$kk] != "")) {
  564.                                                         $dataAll[$kk]["start_time"] = $vv;
  565.                                                         $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  566.                                                         $dataAll[$kk]["reply_type"] = $data["reply_type"];
  567.                                                         $dataAll[$kk]["r_type"] = $data["r_type"];
  568.                                                         $dataAll[$kk]["relevance_id"] = $data["relevance_id"];
  569.                                                         $dataAll[$kk]["relevance_name"] = $data["relevance_name"];
  570.                                                         $dataAll[$kk]["title"] = "";
  571.                                                         $dataAll[$kk]["token"] = $this->token;
  572.                                                         $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  573.                                                         $dataAll[$kk]["update_time"] = 0;
  574.                                                 }
  575.                                         }
  576.  
  577.                                         $insert = M("subscribe_reply")->addAll($dataAll);
  578.                                 }
  579.                                 else {
  580.                                         $this->error("回复红包添加失败");
  581.                                 }
  582.                         }
  583.  
  584.                         if ($insert) {
  585.                                 if ($data["original_id"] != "") {
  586.                                         M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  587.                                 }
  588.  
  589.                                 $this->success("回复红包添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  590.                                 exit();
  591.                         }
  592.                         else {
  593.                                 $this->error("回复红包添加失败");
  594.                         }
  595.                 }
  596.                 else {
  597.                         $data["update_time"] = $_SERVER["REQUEST_TIME"];
  598.                         $update = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  599.  
  600.                         if ($update) {
  601.                                 $this->success("回复红包编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  602.                                 exit();
  603.                         }
  604.                         else {
  605.                                 $this->error("回复红包编辑失败");
  606.                         }
  607.                 }
  608.         }
  609.  
  610.         private function AddtitleReply($data)
  611.         {
  612.                 if (trim($_POST["text_title"]) == "") {
  613.                         $this->error("文本回复时,回复标题不能为空");
  614.                 }
  615.  
  616.                 $data["title"] = preg_replace("/(\r\n)|(\r)|(\n)/", "\n", $_POST["text_title"]);
  617.                 $data["add_time"] = $_SERVER["REQUEST_TIME"];
  618.  
  619.                 if ($data["id"] == "") {
  620.                         if ((count($data["start_time"]) == 1) && (count($data["end_time"]) == 1)) {
  621.                                 $data["token"] = $this->token;
  622.                                 $data["add_time"] = $_SERVER["REQUEST_TIME"];
  623.                                 $data["update_time"] = 0;
  624.                                 $insert = M("subscribe_reply")->add($data);
  625.                         }
  626.                         else {
  627.                                 if ((1 < count($data["start_time"])) && (1 < count($data["end_time"]))) {
  628.                                         foreach ($data["start_time"] as $kk => $vv ) {
  629.                                                 if (($vv != "") && ($data["end_time"][$kk] != "")) {
  630.                                                         $dataAll[$kk]["start_time"] = $vv;
  631.                                                         $dataAll[$kk]["end_time"] = $data["end_time"][$kk];
  632.                                                         $dataAll[$kk]["reply_type"] = $data["reply_type"];
  633.                                                         $dataAll[$kk]["r_type"] = $data["r_type"];
  634.                                                         $dataAll[$kk]["relevance_id"] = "";
  635.                                                         $dataAll[$kk]["relevance_name"] = "";
  636.                                                         $dataAll[$kk]["title"] = $data["title"];
  637.                                                         $dataAll[$kk]["token"] = $this->token;
  638.                                                         $dataAll[$kk]["add_time"] = $_SERVER["REQUEST_TIME"];
  639.                                                         $dataAll[$kk]["update_time"] = 0;
  640.                                                 }
  641.                                         }
  642.  
  643.                                         $insert = M("subscribe_reply")->addAll($dataAll);
  644.                                 }
  645.                                 else {
  646.                                         $this->error("回复红包添加失败");
  647.                                 }
  648.                         }
  649.  
  650.                         if ($insert) {
  651.                                 if ($data["original_id"] != "") {
  652.                                         M("subscribe_reply")->where(array("id" => $data["original_id"]))->delete();
  653.                                 }
  654.  
  655.                                 $this->success("文本回复添加成功", U("Areply/advanceindex", array("token" => $this->token)));
  656.                                 exit();
  657.                         }
  658.                         else {
  659.                                 $this->error("文本回复添加失败");
  660.                         }
  661.                 }
  662.                 else {
  663.                         $data["update_time"] = $_SERVER["REQUEST_TIME"];
  664.                         $update = M("subscribe_reply")->where(array("id" => $data["id"]))->save($data);
  665.  
  666.                         if ($update) {
  667.                                 $this->success("文本回复编辑成功", U("Areply/advanceindex", array("token" => $this->token)));
  668.                                 exit();
  669.                         }
  670.                         else {
  671.                                 $this->error("文本回复编辑失败");
  672.                         }
  673.                 }
  674.         }
  675.  
  676.         public function select_hongbao()
  677.         {
  678.                 C("TOKEN_ON", false);
  679.                 $name = $this->_request("name", "trim");
  680.                 $where = array("token" => $this->token, "send_type" => 4, "hb_type" => (int) $_GET["hb_type"]);
  681.  
  682.                 if ($name) {
  683.                         $where["act_name"] = array("like", "%" . $name . "%");
  684.                 }
  685.  
  686.                 $count = M("directhongbao")->where($where)->count();
  687.                 $page = new Page($count, 10);
  688.                 $list = M("directhongbao")->where($where)->order("id desc")->limit($page->firstRow . "," . $page->listRows)->select();
  689.                 $this->assign("hblist", $list);
  690.                 $this->assign("name", $name);
  691.                 $this->assign("hb_type", (int) $_GET["hb_type"]);
  692.                 $this->assign("page", $page->show());
  693.                 $this->display();
  694.         }
  695.  
  696.         public function select_multiReply()
  697.         {
  698.                 C("TOKEN_ON", false);
  699.                 $name = $this->_request("name", "trim");
  700.                 $where = array("token" => $this->token);
  701.  
  702.                 if ($name) {
  703.                         $where["title"] = array("like", "%" . $name . "%");
  704.                 }
  705.  
  706.                 $count = M("Img")->where($where)->count();
  707.                 $page = new Page($count, 10);
  708.                 $list = M("img")->where($where)->order("usort desc")->limit($page->firstRow . "," . $page->listRows)->select();
  709.                 $this->assign("list", $list);
  710.                 $this->assign("page", $page->show());
  711.                 $this->assign("token", $this->token);
  712.                 $this->assign("reply_type", (int) $_GET["reply_type"]);
  713.                 $this->display();
  714.         }
  715.  
  716.         public function select_card()
  717.         {
  718.                 C("TOKEN_ON", false);
  719.                 $name = $this->_request("name", "trim");
  720.                 $where = array(
  721.                         "token"     => $this->token,
  722.                         "is_weixin" => 1,
  723.                         "is_check"  => 1,
  724.                         "is_delete" => 0,
  725.                         "total"     => array("gt", 0)
  726.                         );
  727.  
  728.                 if ($name) {
  729.                         $where["title"] = array("like", "%" . $name . "%");
  730.                 }
  731.  
  732.                 $count = M("member_card_coupon")->where($where)->count();
  733.                 $page = new Page($count, 10);
  734.                 $list = M("member_card_coupon")->where($where)->order("id desc")->limit($page->firstRow . "," . $page->listRows)->select();
  735.                 $this->assign("cardlist", $list);
  736.                 $this->assign("name", $name);
  737.                 $this->assign("page", $page->show());
  738.                 $this->display();
  739.         }
  740.  
  741.         public function del()
  742.         {
  743.                 $id = (int) $_GET["id"];
  744.                 $exists = M("subscribe_reply")->where(array("id" => $id))->find();
  745.  
  746.                 if (!empty($exists)) {
  747.                         $del = M("subscribe_reply")->where(array("id" => $id))->delete();
  748.  
  749.                         if ($del) {
  750.                                 $this->success("删除成功", U("Areply/advanceindex", array("token" => $this->token)));
  751.                                 exit();
  752.                         }
  753.                 }
  754.                 else {
  755.                         $this->error("不存在该删除项");
  756.                         exit();
  757.                 }
  758.         }
  759.  
  760.         public function Timevalid()
  761.         {
  762.                 if ($_POST["start_time"] == "") {
  763.                         exit("start_time_error");
  764.                 }
  765.  
  766.                 if ($_POST["end_time"] == "") {
  767.                         exit("end_time_error");
  768.                 }
  769.  
  770.                 $type = (string) $_POST["type"];
  771.                 $id = (int) $_POST["id"];
  772.                 list($start_hour, $start_minute) = explode(":", $_POST["start_time"]);
  773.                 list($end_hour, $end_minute) = explode(":", $_POST["end_time"]);
  774.                 $start_timestamp = mktime($start_hour, $start_minute, 0, date("m"), date("d"), date("y"));
  775.                 $end_timestamp = mktime($end_hour, $end_minute, 0, date("m"), date("d"), date("y"));
  776.  
  777.                 if ($end_timestamp <= $start_timestamp) {
  778.                         exit("start_gt_end");
  779.                 }
  780.  
  781.                 if (!empty($_POST["start_time_arr"]) && !empty($_POST["end_time_arr"])) {
  782.                         $start_time_arr = explode(",", $_POST["start_time_arr"]);
  783.                         $end_time_arr = explode(",", $_POST["end_time_arr"]);
  784.  
  785.                         foreach ($start_time_arr as $k => $v ) {
  786.                                 list($start_hour_pre, $start_minute_pre) = explode(":", $v);
  787.                                 list($end_hour_pre, $end_minute_pre) = explode(":", $end_time_arr[$k]);
  788.                                 $start_timestamp_pre = mktime($start_hour_pre, $start_minute_pre, 0, date("m"), date("d"), date("y"));
  789.                                 $end_timestamp_pre = mktime($end_hour_pre, $end_minute_pre, 0, date("m"), date("d"), date("y"));
  790.                                 if ((($start_timestamp_pre <= $start_timestamp) && ($start_timestamp < $end_timestamp_pre)) || (($start_timestamp_pre < $end_timestamp) && ($end_timestamp <= $end_timestamp_pre)) || (($start_timestamp < $start_timestamp_pre) && ($end_timestamp_pre < $end_timestamp))) {
  791.                                         exit("time_post_fail");
  792.                                 }
  793.                         }
  794.                 }
  795.  
  796.                 $data = array();
  797.                 $last_data = M("subscribe_reply")->where(array("token" => $this->token))->field("start_time,end_time")->select();
  798.  
  799.                 if (!empty($last_data)) {
  800.                         if (($id != "") && ($type == "edit")) {
  801.                                 $update_data = M("subscribe_reply")->where(array("id" => $id))->find();
  802.                                 if (($update_data["start_time"] != $_POST["start_time"]) || ($update_data["end_time"] != $_POST["end_time"])) {
  803.                                         foreach ($last_data as $key => $value ) {
  804.                                                 if (($value["start_time"] != $update_data["start_time"]) && ($value["end_time"] != $update_data["end_time"])) {
  805.                                                         list($vs_hour, $vs_minute) = explode(":", $value["start_time"]);
  806.                                                         list($ve_hour, $ve_minute) = explode(":", $value["end_time"]);
  807.                                                         $vs_timestamp = mktime($vs_hour, $vs_minute, 0, date("m"), date("d"), date("y"));
  808.                                                         $ve_timestamp = mktime($ve_hour, $ve_minute, 0, date("m"), date("d"), date("y"));
  809.                                                         if ((($vs_timestamp <= $start_timestamp) && ($start_timestamp < $ve_timestamp)) || (($vs_timestamp < $end_timestamp) && ($end_timestamp <= $ve_timestamp)) || (($start_timestamp < $vs_timestamp) && ($ve_timestamp < $end_timestamp))) {
  810.                                                                 exit("time_fail");
  811.                                                         }
  812.                                                         else {
  813.                                                                 continue;
  814.                                                         }
  815.                                                 }
  816.                                         }
  817.                                 }
  818.                         }
  819.                         else {
  820.                                 foreach ($last_data as $key => $value ) {
  821.                                         list($vs_hour, $vs_minute) = explode(":", $value["start_time"]);
  822.                                         list($ve_hour, $ve_minute) = explode(":", $value["end_time"]);
  823.                                         $vs_timestamp = mktime($vs_hour, $vs_minute, 0, date("m"), date("d"), date("y"));
  824.                                         $ve_timestamp = mktime($ve_hour, $ve_minute, 0, date("m"), date("d"), date("y"));
  825.                                         if ((($vs_timestamp <= $start_timestamp) && ($start_timestamp < $ve_timestamp)) || (($vs_timestamp < $end_timestamp) && ($end_timestamp <= $ve_timestamp)) || (($start_timestamp < $vs_timestamp) && ($ve_timestamp < $end_timestamp))) {
  826.                                                 exit("time_fail");
  827.                                         }
  828.                                         else {
  829.                                                 continue;
  830.                                         }
  831.                                 }
  832.                         }
  833.                 }
  834.                 else {
  835.                         exit("done");
  836.                 }
  837.         }
  838.  
  839.         public function multititle()
  840.         {
  841.                 $ids = trim($_GET["ids"], ",");
  842.                 $imgs = M("img")->where(array(
  843.         "id" => array("in", $ids)
  844.         ))->field("id,title,pic")->select();
  845.                 $this->assign("list", $imgs);
  846.                 $this->display();
  847.         }
  848.  
  849.         public function test1()
  850.         {
  851.                 $img_list = M("subscribe_reply")->where(array(
  852.         C("DB_PREFIX") . "subscribe_reply.id" => array(
  853.                 "in",
  854.                 array(3, 2, 1)
  855.                 )
  856.         ))->join(C("DB_PREFIX") . "subscribe_img on " . C("DB_PREFIX") . "subscribe_reply.id = " . C("DB_PREFIX") . "subscribe_img.rid")->field("title,reply_content,reply_pic,jump_url")->select();
  857.                 $multi = array();
  858.  
  859.                 foreach ($img_list as $key => $value ) {
  860.                         array_push($multi, $value);
  861.                 }
  862.  
  863.                 $data = array(
  864.                         array($multi),
  865.                         "news"
  866.                         );
  867.         }
  868.  
  869.         public function test()
  870.         {
  871.                 $subscribe = new subscribe($this->token, "BOBO", $data, $this->siteUrl, $xml);
  872.                 $reply = $subscribe->advanceReply();
  873.                 dump($reply);
  874.         }

3.专为懒人提供的附件:微米VM分时段关注自动回复修复