Message.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Titan 名字就是密码
  5. * Date: 2019/12/12
  6. * Time: 10:25
  7. */
  8. namespace app\index\controller;
  9. use think\Controller;
  10. use think\Db;
  11. use think\Request;
  12. class Message extends Controller
  13. {
  14. public function zanCount(Request $request)
  15. {
  16. $status = $request->param("status");
  17. $p_id = $request->param("p_id");
  18. $g_id = $request->param("g_id");
  19. $no = $request->param("no");
  20. $openid = $request->param("openid");
  21. if($status == 1){
  22. $data = ["g_id"=>$g_id,"p_id"=>$p_id,"openid"=>$openid,"no"=>$no];
  23. $find = Db::name("zan")->where(["g_id"=>$g_id,"p_id"=>$p_id,"openid"=>$openid,"no"=>$no])->find();
  24. if(!$find){
  25. $zan = Db::name("zan")->insert($data);
  26. if($zan > 0){
  27. $update = Db::name("messages")->where(["g_id"=>$g_id,"p_id"=>$p_id,"no"=>$no])->inc("zanCounts")->update();
  28. if($update >0){
  29. return json(["result"=>1,"msg"=>"点赞成功"]);
  30. }else{
  31. return json(["result"=>0,"msg"=>"点赞失败"]);
  32. }
  33. }else{
  34. return json(["result"=>0,"msg"=>"点赞失败"]);
  35. }
  36. }else{
  37. return json(["result"=>0,"msg"=>"点赞失败"]);
  38. }
  39. }else{
  40. $delete = Db::name("zan")->where(["g_id"=>$g_id,"no"=>$no,"p_id"=>$p_id,"openid"=>$openid])->delete();
  41. if($delete >0 ){
  42. $update = Db::name("messages")->where(["g_id"=>$g_id,"p_id"=>$p_id,"no"=>$no])->dec("zanCounts")->update();
  43. if($update >0){
  44. return json(['result'=>1,"msg"=>"取消点赞成功"]);
  45. }else{
  46. return json(['result'=>0,"msg"=>"取消点赞失败"]);
  47. }
  48. }else{
  49. return json(["result"=>0,"msg"=>"取消点赞失败"]);
  50. }
  51. }
  52. }
  53. public function topMessages(Request $request)
  54. {
  55. $id = $request->param("id");
  56. $type = $request->param("type");
  57. if($type == 1){
  58. $result = Db::name("messages")->where(["p_id"=>$id])->update(["isTop"=>1]);
  59. if($result >0 ){
  60. return json(["result"=>1,"msg"=>"置顶成功"]);
  61. }else{
  62. return json(['result'=>0,"msg"=>"置顶失败"]);
  63. }
  64. }else{
  65. $res = Db::name("messages")->where(["p_id"=>$id])->update(["isTop"=>0]);
  66. if($res >0 ){
  67. return json(["result"=>1,"msg"=>"取消置顶成功"]);
  68. }else{
  69. return json(['result'=>0,"msg"=>"取消置顶失败"]);
  70. }
  71. }
  72. }
  73. public function chooseDeleteMessage(Request $request)
  74. {
  75. $id = $request->param("id");
  76. $type = $request->param("type");
  77. if($type == 1){
  78. $update = Db::name("messages")->where(["p_id"=>$id])->update(["isCheck"=>1]);
  79. if($update >0){
  80. return json(["result"=>1,"msg"=>"精选成功"]);
  81. }else{
  82. return json(["result"=>0,"msg"=>"精选失败"]);
  83. }
  84. }elseif ($type == 0){
  85. $messgeDelete = Db::name("messages")->where(["p_id"=>$id])->delete();
  86. if($messgeDelete > 0){
  87. $zanDelete = Db::name("zan")->where(["p_id"=>$id])->delete();
  88. if($zanDelete >=0 ){
  89. return json(["result"=>1,"msg"=>"已删除留言"]);
  90. }else{
  91. return json(["result"=>0,"删除留言失败"]);
  92. }
  93. }else{
  94. return json(["result"=>0,"删除留言失败"]);
  95. }
  96. }else{
  97. $update = Db::name("messages")->where(["p_id"=>$id])->update(["isCheck"=>0]);
  98. if($update >0){
  99. return json(["result"=>1,"msg"=>"已取消为精选留言"]);
  100. }else{
  101. return json(["result"=>0,"msg"=>"取消精选留言失败"]);
  102. }
  103. }
  104. }
  105. public function authorReply(Request $request)
  106. {
  107. $id = $request->param("id");
  108. $replyContent = $request->param("replyContent");
  109. $isCheckChoess = $request->param("isCheckChoess");
  110. if($isCheckChoess == 1){
  111. $update = Db::name("messages")->where(["p_id"=>$id])->update(["isCheck"=>1]);
  112. if($update >0){
  113. return json(["result"=>1,"msg"=>"精选成功"]);
  114. }else{
  115. return json(["result"=>0,"msg"=>"精选失败"]);
  116. }
  117. }else{
  118. $replyUpdate = Db::name("messages")->where(["p_id"=>$id])->update(["authorMesContent"=>$replyContent]);
  119. if($replyUpdate > 0){
  120. return json(['result'=>1,"msg"=>"回复成功","replyContent"=>$replyContent]);
  121. }else{
  122. return json(['result'=>0,"msg"=>"回复失败","replyContent"=>$replyContent]);
  123. }
  124. }
  125. }
  126. /**
  127. *
  128. * @param Request $request
  129. */
  130. public function messagesModel(Request $request)
  131. {
  132. $p_id = $request->param("p_id");
  133. $title = $request->param("title");
  134. $message = $request->param("message");
  135. $repleyMes = $request->param("replyMes");
  136. $page = $request->param("page");
  137. $upformid = $request->param("formid");
  138. $g_id = $request->param("g_id");
  139. $list = Db::name("messages")->field(["fromid","openid"])->where(["p_id"=>$p_id])->find();
  140. $update = Db::name("gonginfo")->where('id',$g_id)->update(["fromid"=>$upformid]);
  141. $token = (new AccessToken())->getAccessToken();
  142. if($list){
  143. $data = ["keyword1"=>["value"=>$repleyMes],"keyword2"=>["value"=>"作者"],"keyword3"=>["value"=>$message],"keyword4"=>
  144. ["value"=>$title]
  145. ];
  146. $modelData = ["touser"=>$list["openid"],"template_id","page"=>$page,"form_id"=>$list['fromid'],"data"=>$data];
  147. $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" .$token;
  148. $this->http($url,$modelData,"POST");
  149. }
  150. }
  151. public function realyMessagesList(Request $request)
  152. {
  153. $ischeckmessage = $request->param("ischeckmessage");
  154. if($ischeckmessage == 1){
  155. $g_id = $request->param("g_id");
  156. $no = $request->param("no");
  157. $openid = $request->param("openid");
  158. $sql = "select * from messages where no = $no and isCheck = 1 and g_id = $g_id ORDER BY messages.istop DESC ";
  159. $list = Db::query($sql);
  160. $zan = Db::name("zan")->where(["no"=>$no,"g_id"=>$g_id,"openid"=>$openid])->column("p_id");
  161. foreach ($list as $key=>$value){
  162. if(count($zan) > 0 ){
  163. if(in_array($value['p_id'],$zan)){
  164. $list[$key]['iszan'] = 1;
  165. }else{
  166. $list[$key]['iszan'] = 0;
  167. }
  168. }else{
  169. $list[$key]['iszan'] = 0;
  170. }
  171. }
  172. return json(["result"=>1,"msg"=>"获取公开留言成功","content"=>$list]);
  173. }else{
  174. $g_id = $request->param("id");
  175. $no = $request->param("no");
  176. $list = Db::name("messages")->where(["no"=>$no,"g_id"=>$g_id])->select();
  177. if(count($list)>0){
  178. return json(["result"=>1,"count"=>count($list),"content"=>$list]);
  179. }
  180. }
  181. }
  182. public function userDeleteMessage(Request $request)
  183. {
  184. $no = $request->param("no");
  185. $username = $request->param("username");
  186. $title = $request->param("title");
  187. $messages = $request->param("messages");
  188. $deletesql = "delete from messages where no = $no and username ='$username' and title ='$title' and userMesContent = '$messages'";
  189. $result = Db::query($deletesql);
  190. }
  191. public function submit(Request $request)
  192. {
  193. $g_id = $request->param("g_id");
  194. $no = $request->param('no');
  195. $username = $request->param("username");
  196. $title = $request->param("title");
  197. $headimage = $request->param("avatarUrl");
  198. $messages = $request->param("messages");
  199. $openid = $request->param("openid");
  200. $ischeck = $request->param("ischeck");
  201. $fromid = $request->param("form_id");
  202. //$token = $request->param("token");
  203. $data = ['g_id'=>$g_id,"no"=>$no,"username"=>$username,"title"=>$title,"headimage"=>$headimage,
  204. "userMesContent"=>$messages,"isCheck"=>$ischeck,"openid"=>$openid,"fromid"=>$fromid
  205. ];
  206. $result = Db::name("messages")->insert($data);
  207. if($result >0){
  208. return json(["result"=>1,"message"=>$messages]);
  209. }else{
  210. return json(["result"=>0,"msg"=>"提交失败"]);
  211. }
  212. }
  213. public function userModel(Request $request)
  214. {
  215. $title = $request->param("title");
  216. $message = $request->param("message");
  217. $page = $request->param("page");
  218. $g_id = $request->param("g_id");
  219. $username = $request->param("username");
  220. $result = Db::name("gonginfo")->field(["fromid","openid"])->where(["id"=>$g_id])->find();
  221. $data = ["keyword1"=>["value"=>$message],//留言内容
  222. "keyword2"=>["value"=>$username],//留言人
  223. "keyword3"=>["value"=>$title]//文章类型
  224. ];
  225. $modelData = ["touser"=>$result['openid'],"template_id"=>"","page"=>$page,"form_id"=>$result["fromid"],"data"=>$data];
  226. $token = (new AccessToken())->getAccessToken();
  227. $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$token;
  228. $res = $this->http($url,$modelData,"POST");
  229. }
  230. public function http($url, $params, $method = 'GET', $header = array(), $timeout = 5)
  231. {
  232. // POST 提交方式的传入 $set_params 必须是字符串形式
  233. $opts = array(
  234. CURLOPT_TIMEOUT => $timeout,
  235. CURLOPT_RETURNTRANSFER => 1,
  236. CURLOPT_SSL_VERIFYPEER => false,
  237. CURLOPT_SSL_VERIFYHOST => false,
  238. CURLOPT_HTTPHEADER => $header
  239. );
  240. /* 根据请求类型设置特定参数 */
  241. switch (strtoupper($method)) {
  242. case 'GET':
  243. $opts[CURLOPT_URL] = $url . '?' . http_build_query($params);
  244. break;
  245. case 'POST':
  246. $params = http_build_query($params);
  247. $opts[CURLOPT_URL] = $url;
  248. $opts[CURLOPT_POST] = 1;
  249. $opts[CURLOPT_POSTFIELDS] = $params;
  250. break;
  251. case 'DELETE':
  252. $opts[CURLOPT_URL] = $url;
  253. $opts[CURLOPT_HTTPHEADER] = array("X-HTTP-Method-Override: DELETE");
  254. $opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
  255. $opts[CURLOPT_POSTFIELDS] = $params;
  256. break;
  257. case 'PUT':
  258. $opts[CURLOPT_URL] = $url;
  259. $opts[CURLOPT_POST] = 0;
  260. $opts[CURLOPT_CUSTOMREQUEST] = 'PUT';
  261. $opts[CURLOPT_POSTFIELDS] = $params;
  262. break;
  263. default:
  264. throw new Exception('不支持的请求方式!');
  265. }
  266. /* 初始化并执行curl请求 */
  267. $ch = curl_init();
  268. curl_setopt_array($ch, $opts);
  269. $data = curl_exec($ch);
  270. $error = curl_error($ch);
  271. return $data;
  272. }
  273. }