Member.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkAdmin
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://demo.thinkadmin.top
  8. // +----------------------------------------------------------------------
  9. // | 开源协议 ( https://mit-license.org )
  10. // +----------------------------------------------------------------------
  11. // | gitee 代码仓库:https://gitee.com/zoujingli/ThinkAdmin
  12. // | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
  13. // +----------------------------------------------------------------------
  14. namespace app\api\controller;
  15. use app\api\controller\Base;
  16. use app\api\model\Member as MemberModel;
  17. use think\Db;
  18. use think\db\Query;
  19. use think\Model;
  20. use app\api\controller\Login;
  21. use app\api\controller\Area;
  22. use app\api\controller\Serve;
  23. /**
  24. * @title 会员管理
  25. * @controller Member
  26. * @group base
  27. */
  28. class Member extends Base
  29. {
  30. function initialize()
  31. {
  32. $this->check_login();
  33. }
  34. /**
  35. * @title 个人信息
  36. * @desc 个人信息
  37. * @author QGF
  38. * @url /api/Member/member_info
  39. * @method GET
  40. * @tag 个人信息
  41. * @header name:Authorization require:1 desc:Token
  42. * @return name:phone type:int default:-- desc:手机号
  43. * @return name:name type:string default:-- desc:姓名
  44. * @return name:headimg type:string default:-- desc:头像地址
  45. * @return name:synopsis type:string default:-- desc:个人简介
  46. * @return name:news_switch type:int default:-- desc:推送消息开关(0:关闭,1:开启)
  47. * @return name:privacy_switch type:int default:-- desc:隐私设置开关(0:关闭,1:开启)
  48. * @return name:news_num type:int default:-- desc:未读消息的数量
  49. * @return name:background type:string default:-- desc:个人中心背景图片地址
  50. */
  51. public function member_info(){
  52. $uid = $this->uid;
  53. $field = 'phone,name,headimg,synopsis,news_switch,privacy_switch,status,background';
  54. $user_info = Db::name('store_member')->field($field)->where('id',$uid)->find();
  55. if(empty($user_info)){
  56. $this->error('用户信息不正确');
  57. }
  58. if($user_info['status'] == 0){
  59. $this->error('该用户已被禁用');
  60. }
  61. //查看未读消息的数量
  62. $user_info['news_num'] = Db::name('store_news')->where('user_id',$uid)->where('status',0)->count('id');
  63. unset($user_info['status']);
  64. $this->success('获取成功',$user_info);
  65. }
  66. /**
  67. * @title 编辑个人信息
  68. * @desc 编辑个人信息
  69. * @author QGF
  70. * @url /api/Member/edit_member_info
  71. * @method POST
  72. * @tag 编辑信息
  73. * @header name:Authorization require:1 desc:Token
  74. * @param name:type type:int require:1 default:-- desc:修改的类型(1:头像,2:昵称,3:个人简介)
  75. * @param name:headimg type:string require:0 default:-- desc:头像地址(type为1时必传)
  76. * @param name:name type:string require:0 default:-- desc:姓名(type为2时必传)
  77. * @param name:synopsis type:string require:0 default:-- desc:个人简介(type为3时必传)
  78. */
  79. public function edit_member_info(){
  80. $uid = $this->uid;
  81. $type = input('type');
  82. $headimg = input('headimg');
  83. $name = input('name');
  84. $synopsis = input('synopsis');
  85. if(empty($type)){
  86. $this->error('参数错误');
  87. }
  88. if($type == 1){
  89. if(empty($headimg)){
  90. $this->error('参数错误');
  91. }
  92. $update_data = array('headimg'=>$headimg);
  93. }elseif($type == 2){
  94. if(empty($name)){
  95. $this->error('参数错误');
  96. }
  97. $update_data = array('name'=>$name);
  98. }else{
  99. if(empty($synopsis)){
  100. $this->error('参数错误');
  101. }
  102. $update_data = array('synopsis'=>$synopsis);
  103. }
  104. Db::name('store_member')->where('id',$uid)->update($update_data);
  105. $this->success('编辑成功');
  106. }
  107. /**
  108. * @title 更换背景图片
  109. * @desc 更换背景图片
  110. * @author QGF
  111. * @url /api/Member/update_background
  112. * @method POST
  113. * @tag 更换背景图片
  114. * @header name:Authorization require:1 desc:Token
  115. * @param name:background type:string require:1 default:-- desc:头像地址(type为1时必传)
  116. */
  117. public function update_background(){
  118. $uid = $this->uid;
  119. $background = input('background');
  120. if(empty($background)){
  121. $this->error('参数错误');
  122. }
  123. Db::name('store_member')->where('id',$uid)->update(array('background'=>$background));
  124. $this->success('编辑成功');
  125. }
  126. /**
  127. * @title 修改手机号
  128. * @desc 修改手机号
  129. * @author QGF
  130. * @url /api/Member/update_phone
  131. * @method POST
  132. * @tag 修改手机号
  133. * @header name:Authorization require:1 desc:Token
  134. * @param name:old_phone type:int require:1 default:-- desc:原手机号
  135. * @param name:old_code type:int require:1 default:-- desc:原手机号验证码
  136. * @param name:new_phone type:int require:1 default:-- desc:新手机号
  137. * @param name:new_code type:int require:1 default:-- desc:新手机号验证码
  138. */
  139. public function update_phone(){
  140. $uid = $this->uid;
  141. $old_phone = input('old_phone');
  142. $old_code = input('old_code');
  143. $new_phone = input('new_phone');
  144. $new_code = input('new_code');
  145. if(empty($old_phone) || empty($old_code) || empty($new_phone) || empty($new_code)){
  146. $this->error('参数错误');
  147. }
  148. if($old_phone == $new_phone){
  149. $this->error('手机号一致,无需修改');
  150. }
  151. $member = Db::name('store_member')->field('id,phone')->where('id',$uid)->find();
  152. if($member['phone'] != $old_phone){
  153. $this->error('原手机号不正确');
  154. }
  155. $obj = new Login();
  156. $old_sms_id = $obj->verify_sms($old_phone,$old_code);
  157. if(empty($old_sms_id)){
  158. $this->error('原手机号验证码不正确');
  159. }
  160. $new_sms_id = $obj->verify_sms($new_phone,$new_code);
  161. if(empty($new_sms_id)){
  162. $this->error('新手机号验证码不正确');
  163. }
  164. //判断新手机号是否已注册
  165. $member_id = Db::name('store_member')->where('phone',$new_phone)->value('id');
  166. if($member_id){
  167. $this->error('新手机号已注册过');
  168. }
  169. $res = Db::name('store_member')->where('id',$uid)->update(array('phone'=>$new_phone));
  170. if($res !==false){
  171. Db::name('store_member_sms')->where('id',$old_sms_id)->update(array('used'=>1));
  172. Db::name('store_member_sms')->where('id',$new_sms_id)->update(array('used'=>1));
  173. $this->success('更换成功');
  174. }else{
  175. $this->error('更换失败');
  176. }
  177. }
  178. /**
  179. * @title 修改密码
  180. * @desc 修改密码
  181. * @author QGF
  182. * @url /api/Member/update_password
  183. * @method POST
  184. * @tag 修改密码
  185. * @param name:phone type:int require:1 default:-- desc:手机号
  186. * @param name:code type:int require:1 default:-- desc:短信验证码
  187. * @param name:password type:string require:1 default:-- desc:新密码
  188. */
  189. public function update_password(){
  190. $phone = input('phone');
  191. $code = input('code');
  192. $password = input('password');
  193. if(empty($phone) || empty($code) || empty($password)){
  194. $this ->error('参数错误');
  195. }
  196. $obj = new Login();
  197. $sms_id = $obj->verify_sms($phone,$code);
  198. if(empty($sms_id)){
  199. $this->error('验证码不正确');
  200. }
  201. $member = Db::name('store_member')->field('id,decode_password')->where('phone',$phone)->find();
  202. if(empty($member['id'])){
  203. $this ->error('该手机号未注册');
  204. }
  205. if($password == $member['decode_password']){
  206. $this ->error('新密码与原密码一致,无需修改');
  207. }
  208. $update_data = array(
  209. 'password'=>md5($password),
  210. 'decode_password'=>$password
  211. );
  212. Db::name('store_member')->where('phone',$phone)->update($update_data);
  213. Db::name('store_member_sms')->where('id',$sms_id)->update(array('used'=>1));
  214. $this->success('修改密码成功');
  215. }
  216. /**
  217. * @title 获取版本号
  218. * @desc 获取版本号
  219. * @author QGF
  220. * @url /api/Member/store_versions
  221. * @method GET
  222. * @tag 获取版本号
  223. * @param name:type type:int require:1 default:1 desc:类型(1:安卓,2:IOS。默认安卓)
  224. * @return name:title type:string default:-- desc:版本号
  225. * @return name:content type:string default:-- desc:修改内容
  226. */
  227. public function store_versions(){
  228. $type = input('type',1);
  229. $store_versions = Db::name('store_versions')->field('title,content')->where('type',$type)->find();
  230. $this->success('获取成功',$store_versions);
  231. }
  232. /**
  233. * @title 消息推送开关设置
  234. * @desc 消息推送开关设置
  235. * @author QGF
  236. * @url /api/Member/update_news_switch
  237. * @method POST
  238. * @tag 消息推送开关设置
  239. * @header name:Authorization require:1 desc:Token
  240. * @param name:news_switch type:string require:1 default:-- desc:开关(0:关闭,1:开启)
  241. */
  242. public function update_news_switch(){
  243. $uid = $this->uid;
  244. $news_switch = input('news_switch');
  245. if(!isset($news_switch)){
  246. $this->error('参数错误');
  247. }
  248. $old_news_switch = Db::name('store_member')->where('id',$uid)->value('news_switch');
  249. if($old_news_switch == $news_switch){
  250. $this->error('已是当前状态,无需操作');
  251. }
  252. Db::name('store_member')->where('id',$uid)->update(array('news_switch'=>$news_switch));
  253. $this->success('操作成功');
  254. }
  255. /**
  256. * @title 隐私开关设置
  257. * @desc 隐私开关设置
  258. * @author QGF
  259. * @url /api/Member/update_privacy_switch
  260. * @method POST
  261. * @tag 隐私开关设置
  262. * @header name:Authorization require:1 desc:Token
  263. * @param name:privacy_switch type:string require:1 default:-- desc:开关(0:关闭,1:开启)
  264. */
  265. public function update_privacy_switch(){
  266. $uid = $this->uid;
  267. $privacy_switch = input('privacy_switch');
  268. if(!isset($privacy_switch)){
  269. $this->error('参数错误');
  270. }
  271. $old_privacy_switch = Db::name('store_member')->where('id',$uid)->value('privacy_switch');
  272. if($old_privacy_switch == $privacy_switch){
  273. $this->error('已是当前状态,无需操作');
  274. }
  275. Db::name('store_member')->where('id',$uid)->update(array('privacy_switch'=>$privacy_switch));
  276. $this->success('操作成功');
  277. }
  278. /**
  279. * @title 隐私政策
  280. * @desc 隐私政策
  281. * @author QGF
  282. * @url /api/Member/privacy_policy
  283. * @method GET
  284. * @tag 隐私政策
  285. * @return name:-- type:string default:-- desc:隐私政策
  286. */
  287. public function privacy_policy(){
  288. $this->success('获取成功',htmlspecialchars_decode(sysconf('privacy_policy')));
  289. }
  290. /**
  291. * @title 关于我们
  292. * @desc 关于我们
  293. * @author QGF
  294. * @url /api/Member/about_us
  295. * @method GET
  296. * @tag 关于我们
  297. * @return name:-- type:string default:-- desc:关于我们
  298. */
  299. public function about_us(){
  300. $this->success('获取成功',htmlspecialchars_decode(sysconf('about_us')));
  301. }
  302. /**
  303. * @title 我的关注
  304. * @desc 我的关注
  305. * @author QGF
  306. * @url /api/Member/my_attention
  307. * @method GET
  308. * @tag 我的关注
  309. * @header name:Authorization require:1 desc:Token
  310. * @param name:page type:int require:0 default:1 desc:页数(默认为1)
  311. * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
  312. * @return name:from_user_id type:int default:-- desc:被关注着的用户ID
  313. * @return name:user_type type:int default:-- desc:关注类型(1:用户,2:媒体(用户只发布咨询,媒体有新闻和咨询))
  314. * @return name:user_name type:string default:-- desc:用户姓名/媒体名称
  315. * @return name:user_headimg type:string default:-- desc:用户头像/媒体logo
  316. * @return name:attention_num type:int default:-- desc:粉丝数量
  317. */
  318. public function my_attention(){
  319. $uid = $this->uid;
  320. $page = input('page',1);
  321. $pageSize = input('page_size',10);
  322. $list = Db::name('store_attention')->field('from_user_id')->where('user_id',$uid)->where('status',1)->page($page,$pageSize)->order('id','desc')->select();
  323. if($list){
  324. foreach ($list as &$value){
  325. $user_type = user_type($value['from_user_id']);//1:用户 2:媒体
  326. $value['user_type'] = $user_type;
  327. if($user_type == 1){
  328. $user_info = Db::name('store_member')->field('name,headimg')->where('id',$value['from_user_id'])->find();
  329. $value['user_name'] = $user_info['name'];
  330. $value['user_headimg'] = $user_info['headimg'];
  331. }else{
  332. $media_info = Db::name('store_media')->field('logo,title')->where('id',$value['from_user_id'])->find();
  333. $value['user_name'] = $media_info['title'];
  334. $value['user_headimg'] = $media_info['logo'];
  335. }
  336. //共关注的数
  337. $value['attention_num'] = Db::name('store_attention')->where('from_user_id',$value['from_user_id'])->where('status',1)->count('id');
  338. }
  339. }
  340. $this->success('获取成功',$list);
  341. }
  342. /**
  343. * @title 我的收藏
  344. * @desc 我的收藏
  345. * @author QGF
  346. * @url /api/Member/my_collect
  347. * @method GET
  348. * @tag 我的收藏
  349. * @header name:Authorization require:1 desc:Token
  350. * @param name:type type:int require:0 default:1 desc:类型(1:新闻(默认),2:咨询)
  351. * @param name:page type:int require:0 default:1 desc:页数(默认为1)
  352. * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
  353. * @return name:id type:int default:-- desc:新闻或咨询ID
  354. * @return name:title type:string default:-- desc:标题
  355. * @return name:content type:string default:-- desc:内容(咨询独有)
  356. * @return name:image type:array default:-- desc:图片数组
  357. * @return name:video type:string default:-- desc:视频地址
  358. * @return name:is_top type:int default:-- desc:是否置顶(0:不置顶,1:置顶)(新闻独有)
  359. * @return name:comment_num type:int default:-- desc:评论数量
  360. * @return name:media_logo type:string default:-- desc:用户头像或媒体logo
  361. * @return name:media_title type:string default:-- desc:用户姓名或媒体名称
  362. * @return name:duration type:string default:-- desc:时长
  363. */
  364. public function my_collect(){
  365. $uid = $this->uid;
  366. $type = input('type',1);
  367. $page = input('page',1);
  368. $pageSize = input('page_size',10);
  369. $id_arr = Db::name('store_collect')->field('forum_id')->where('user_id',$uid)->where('status',1)->where('type',$type)->page($page,$pageSize)->order('id','desc')->column('forum_id');
  370. if(empty($id_arr)){
  371. $this->success('获取成功',[]);
  372. }
  373. $list = $this->get_list($type,$id_arr,$page,$pageSize);
  374. $this->success('获取成功',$list);
  375. }
  376. /**
  377. * @title 我的浏览
  378. * @desc 我的浏览
  379. * @author QGF
  380. * @url /api/Member/my_browse
  381. * @method GET
  382. * @tag 我的浏览
  383. * @header name:Authorization require:1 desc:Token
  384. * @param name:type type:int require:0 default:1 desc:类型(1:新闻(默认),2:咨询)
  385. * @param name:page type:int require:0 default:1 desc:页数(默认为1)
  386. * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
  387. * @return name:id type:int default:-- desc:新闻或咨询ID
  388. * @return name:title type:string default:-- desc:标题
  389. * @return name:content type:string default:-- desc:内容(咨询独有)
  390. * @return name:image type:array default:-- desc:图片数组
  391. * @return name:video type:string default:-- desc:视频地址
  392. * @return name:is_top type:int default:-- desc:是否置顶(0:不置顶,1:置顶)(新闻独有)
  393. * @return name:comment_num type:int default:-- desc:评论数量
  394. * @return name:media_logo type:string default:-- desc:用户头像或媒体logo
  395. * @return name:media_title type:string default:-- desc:用户姓名或媒体名称
  396. * @return name:duration type:string default:-- desc:时长
  397. */
  398. public function my_browse(){
  399. $uid = $this->uid;
  400. $type = input('type',1);
  401. $page = input('page',1);
  402. $pageSize = input('page_size',10);
  403. $id_arr = Db::name('store_browse')->field('forum_id')->where('user_id',$uid)->where('status',1)->where('type',$type)->page($page,$pageSize)->order('id','desc')->column('forum_id');
  404. if(empty($id_arr)){
  405. $this->success('获取成功',[]);
  406. }
  407. $list = $this->get_list($type,$id_arr,$page,$pageSize);
  408. $this->success('获取成功',$list);
  409. }
  410. /**
  411. * @title 我的点赞
  412. * @desc 我的点赞
  413. * @author QGF
  414. * @url /api/Member/my_like
  415. * @method GET
  416. * @tag 我的点赞
  417. * @header name:Authorization require:1 desc:Token
  418. * @param name:type type:int require:0 default:1 desc:类型(1:新闻(默认),2:咨询)
  419. * @param name:page type:int require:0 default:1 desc:页数(默认为1)
  420. * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
  421. * @return name:id type:int default:-- desc:新闻或咨询ID
  422. * @return name:title type:string default:-- desc:标题
  423. * @return name:content type:string default:-- desc:内容(咨询独有)
  424. * @return name:image type:array default:-- desc:图片数组
  425. * @return name:video type:string default:-- desc:视频地址
  426. * @return name:is_top type:int default:-- desc:是否置顶(0:不置顶,1:置顶)(新闻独有)
  427. * @return name:comment_num type:int default:-- desc:评论数量
  428. * @return name:media_logo type:string default:-- desc:用户头像或媒体logo
  429. * @return name:media_title type:string default:-- desc:用户姓名或媒体名称
  430. * @return name:duration type:string default:-- desc:时长
  431. */
  432. public function my_like(){
  433. $uid = $this->uid;
  434. $type = input('type',1);
  435. $page = input('page',1);
  436. $pageSize = input('page_size',10);
  437. $id_arr = Db::name('store_like')->field('forum_id')->where('user_id',$uid)->where('status',1)->where('type',$type)->page($page,$pageSize)->order('id','desc')->column('forum_id');
  438. if(empty($id_arr)){
  439. $this->success('获取成功',[]);
  440. }
  441. $list = $this->get_list($type,$id_arr,$page,$pageSize);
  442. $this->success('获取成功',$list);
  443. }
  444. /**
  445. * @title 我的评论
  446. * @desc 我的评论
  447. * @author QGF
  448. * @url /api/Member/my_comment
  449. * @method GET
  450. * @tag 我的评论
  451. * @header name:Authorization require:1 desc:Token
  452. * @param name:type type:int require:0 default:1 desc:类型(1:新闻(默认),2:咨询)
  453. * @param name:page type:int require:0 default:1 desc:页数(默认为1)
  454. * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
  455. * @return name:id type:int default:-- desc:新闻或咨询ID
  456. * @return name:title type:string default:-- desc:标题
  457. * @return name:content type:string default:-- desc:内容(咨询独有)
  458. * @return name:image type:array default:-- desc:图片数组
  459. * @return name:video type:string default:-- desc:视频地址
  460. * @return name:is_top type:int default:-- desc:是否置顶(0:不置顶,1:置顶)(新闻独有)
  461. * @return name:comment_num type:int default:-- desc:评论数量
  462. * @return name:media_logo type:string default:-- desc:用户头像或媒体logo
  463. * @return name:media_title type:string default:-- desc:用户姓名或媒体名称
  464. * @return name:duration type:string default:-- desc:时长
  465. */
  466. public function my_comment(){
  467. $uid = $this->uid;
  468. $type = input('type',1);
  469. $page = input('page',1);
  470. $pageSize = input('page_size',10);
  471. $id_arr = Db::name('store_comment')->field('forum_id')->where('user_id',$uid)->where('forum_type',$type)->where('type',1)->page($page,$pageSize)->order('id','desc')->column('forum_id');
  472. if(empty($id_arr)){
  473. $this->success('获取成功',[]);
  474. }
  475. $list = $this->get_list($type,$id_arr,$page,$pageSize);
  476. $this->success('获取成功',$list);
  477. }
  478. public function get_list($type = 1,$id_arr = array(),$page = 1,$pageSize = 10){
  479. if($type == 1){ //新闻
  480. $field = 'id,title,user_id,image,video,is_top,create_at';
  481. $list = Db::name('store_goods')->field($field)->where('status',1)->where('is_deleted',0)->where('id','in',$id_arr)->page($page,$pageSize)->order(['is_top'=>'desc','sort'=>'desc','id'=>'desc'])->select();
  482. if($list){
  483. foreach($list as &$value) {
  484. //获取评论数量
  485. $value['comment_num'] = Db::name('store_comment')->where('forum_id',$value['id'])->where('type',1)->where('forum_type',1)->count('id');
  486. $value['image'] = image_path($value['image']);
  487. //媒体信息
  488. $media_info = Db::name('store_media')->field('logo,title')->where('id',$value['user_id'])->find();
  489. $value['media_logo'] = $media_info['logo'];
  490. $value['media_title'] = $media_info['title'];
  491. $remain_time = time() - strtotime($value['create_at']);
  492. $value['duration'] = get_stay_time($remain_time);
  493. unset($value['user_id']);
  494. unset($value['create_at']);
  495. }
  496. }
  497. }else{ //咨询
  498. $field = 'id,user_id,type,title,content,media_id,image,video,create_at';
  499. $list = Db::name('store_consult')->field($field)->where('status',1)->where('is_deleted',0)->where('id','in',$id_arr)->page($page,$pageSize)->order(['sort'=>'desc','id'=>'desc'])->select();
  500. if($list){
  501. foreach($list as &$value) {
  502. //获取评论数量
  503. $value['comment_num'] = Db::name('store_comment')->where('forum_id',$value['id'])->where('type',1)->where('forum_type',2)->count('id');
  504. $value['image'] = image_path($value['image']);
  505. if($value['type'] == 1){ //后台媒体
  506. //媒体信息
  507. $media_info = Db::name('store_media')->field('logo,title')->where('id',$value['user_id'])->find();
  508. $value['media_logo'] = $media_info['logo'];
  509. $value['media_title'] = $media_info['title'];
  510. }else{ //用户
  511. //用户信息
  512. $media_info = Db::name('store_member')->field('headimg,name')->where('id',$value['user_id'])->find();
  513. $value['media_logo'] = $media_info['headimg'];
  514. $value['media_title'] = $media_info['name'];
  515. }
  516. $remain_time = time() - strtotime($value['create_at']);
  517. $value['duration'] = get_stay_time($remain_time);
  518. unset($value['media_id']);
  519. unset($value['user_id']);
  520. unset($value['type']);
  521. unset($value['create_at']);
  522. }
  523. }
  524. }
  525. return $list;
  526. }
  527. /**
  528. * @title 消息列表
  529. * @desc 消息列表
  530. * @author QGF
  531. * @url /api/Member/news_list
  532. * @method GET
  533. * @tag 消息列表
  534. * @header name:Authorization require:1 desc:Token
  535. * @param name:page type:int require:0 default:1 desc:页数(默认为1)
  536. * @param name:page_size type:int require:0 default:10 desc:每页数量(默认为10)
  537. * @return name:-- type:array default:-- desc:消息信息(content:内容,type:类型(1:系统消息,2:用户消息),icon:消息前面的图标,type_name:消息类型名称,duration:时长)
  538. */
  539. public function news_list(){
  540. $uid = $this->uid;
  541. $page = input('page',1);
  542. $pageSize = input('page_size',10);
  543. $news_list = Db::name('store_news')->field('content,type,comment_user_id,create_at')->where('user_id',$uid)->page($page,$pageSize)->order('id','desc')->select();
  544. $type_arr = array('1'=>'系统消息','2'=>'用户消息');
  545. if($news_list){
  546. foreach ($news_list as &$value){
  547. if($value['type'] == 1){
  548. $value['icon'] = 'https://zjth2021.oss-cn-beijing.aliyuncs.com/164e89b793f57189/eea68607b8a59a4b.png';
  549. }else{
  550. $value['icon'] = Db::name('store_member')->where('id',$value['comment_user_id'])->value('headimg');
  551. }
  552. $value['type_name'] = $type_arr[$value['type']];
  553. $remain_time = time() - strtotime($value['create_at']);
  554. $value['duration'] = get_stay_time($remain_time);
  555. unset($value['comment_user_id']);
  556. unset($value['create_at']);
  557. }
  558. }
  559. //未读改成已读
  560. Db::name('store_news')->where('user_id',$uid)->where('status',0)->update(array('status'=>1));
  561. $this->success('获取成功',$news_list);
  562. }
  563. /**
  564. * @title 平台反馈
  565. * @desc 平台反馈
  566. * @author QGF
  567. * @url /api/Member/submit_complain
  568. * @method POST
  569. * @tag 平台反馈
  570. * @header name:Authorization require:1 desc:Token
  571. * @param name:explain type:string require:1 default:-- desc:反馈内容
  572. * @param name:images type:string require:1 default:-- desc:反馈的图片地址,多张图片以英文逗号(,)分隔
  573. */
  574. public function submit_complain(){
  575. $uid = $this->uid;
  576. $explain = input('explain');
  577. $images = input('images');
  578. if(empty($explain) || empty($images)){
  579. $this->error('参数错误');
  580. }
  581. $data = [
  582. 'user_id' => $uid,
  583. 'question' => $explain,
  584. 'images' => $images,
  585. 'type' => 2,
  586. 'date' => date('Y-m-d')
  587. ];
  588. $res = Db::name('store_complain')->insert($data);
  589. if($res !==false){
  590. $this->success('提交成功');
  591. }else{
  592. $this->error('提交失败');
  593. }
  594. }
  595. /**
  596. * @title 发表咨询
  597. * @desc 发表咨询
  598. * @author QGF
  599. * @url /api/Member/publish_consult
  600. * @method POST
  601. * @tag 发表咨询
  602. * @header name:Authorization require:1 desc:Token
  603. * @param name:cate_id type:int require:1 default:-- desc:咨询分类ID
  604. * @param name:title type:string require:1 default:-- desc:咨询标题
  605. * @param name:content type:string require:1 default:-- desc:咨询内容
  606. * @param name:image type:string require:1 default:-- desc:咨询图片,多张图片以英文逗号分隔
  607. * @param name:video type:string require:0 default:-- desc:咨询视频
  608. */
  609. public function publish_consult(){
  610. $uid = $this->uid;
  611. $cate_id = input('cate_id');
  612. $title = input('title');
  613. $content = input('content');
  614. $image = input('image');
  615. $video = input('video');
  616. if(empty($cate_id) || empty($title) || empty($image) || empty($content)){
  617. $this->error('参数错误');
  618. }
  619. $data = [
  620. 'user_id' => $uid,
  621. 'cate_id' => $cate_id,
  622. 'title' => $title,
  623. 'content' => $content,
  624. 'image' => $image,
  625. 'video' => $video,
  626. 'type' => 2
  627. ];
  628. $res = Db::name('store_consult')->insert($data);
  629. if($res !==false){
  630. $this->success('发布成功');
  631. }else{
  632. $this->error('发布失败');
  633. }
  634. }
  635. }