Vote.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\AdminBaseController;
  4. use app\common\model\VoteApplyModel;
  5. use app\common\model\VoteModel;
  6. use app\common\service\QrcodeService;
  7. use app\common\validate\VoteValidate;
  8. use think\exception\ValidateException;
  9. class Vote extends AdminBaseController
  10. {
  11. /**
  12. * 列表
  13. */
  14. public function index()
  15. {
  16. return view('',[
  17. 'status_list' => VoteModel::STATUS,
  18. ]);
  19. }
  20. public function listVote()
  21. {
  22. $map = $this->dealEqualInput([], ['status']);
  23. $list = VoteModel::where($map)->limit(input('limit'))->page(input('page'))->append(['status_text'])->select();
  24. $count = VoteModel::where($map)->count();
  25. if ($count == 0) {
  26. ajax_return(1, '未查询到数据');
  27. }
  28. list_return($list, $count);
  29. }
  30. /**
  31. * 编辑
  32. */
  33. public function voteForm()
  34. {
  35. $id = input('id/d, 0');
  36. $info = VoteModel::find($id);
  37. return view('', [
  38. 'info' => $info,
  39. 'status_list' => VoteModel::STATUS,
  40. ]);
  41. }
  42. public function editVote()
  43. {
  44. $data = input('post.');
  45. try {
  46. validate(VoteValidate::class)->check($data);
  47. } catch (ValidateException $e) {
  48. ajax_return(1, $e->getError());
  49. }
  50. if (empty($data['id'])) {
  51. VoteModel::create($data);
  52. } else {
  53. VoteModel::update($data, ['id' => $data['id']]);
  54. }
  55. ajax_return();
  56. }
  57. public function delVote()
  58. {
  59. $id = input('id/d');
  60. $check = VoteApplyModel::where('vote_id', $id)->find();
  61. if (!empty($check)) {
  62. ajax_return(1, '已有投票的活动无法删除!');
  63. }
  64. VoteModel::destroy($id);
  65. ajax_return();
  66. }
  67. /**
  68. * 二维码
  69. */
  70. public function qrcodeVote()
  71. {
  72. $id = input('id/d', 0);
  73. $file_name = "/vote_{$id}.png";
  74. $link = url('/mobile/vote/detail') . '?id=' . $id;
  75. $file_url = QrcodeService::getQrcode($file_name, $link, 600);
  76. ajax_return(0, '', $file_url);
  77. }
  78. /**
  79. * 查看票数
  80. */
  81. public function showNum()
  82. {
  83. $id = input('id/d', 0);
  84. $apply = VoteApplyModel::where('vote_id', $id)->select();
  85. $res = [];
  86. foreach ($apply as $v) {
  87. if (empty($res[$v['option_name']])) {
  88. $res[$v['option_name']] = 0;
  89. }
  90. $res[$v['option_name']]++;
  91. }
  92. return view('', [
  93. 'info' => $res,
  94. ]);
  95. }
  96. /**
  97. * 投票明细
  98. */
  99. public function apply()
  100. {
  101. $vote_list = VoteModel::select();
  102. return view('', [
  103. 'vote_list' => $vote_list,
  104. ]);
  105. }
  106. public function listApply()
  107. {
  108. $map = $this->dealEqualInput([], ['vote_id']);
  109. $list = VoteApplyModel::with(['user', 'vote'])->where($map)->limit(input('limit'))->page(input('page'))->select();
  110. $count = VoteApplyModel::where($map)->count();
  111. if ($count == 0) {
  112. ajax_return(1, '未查询到数据');
  113. }
  114. list_return($list, $count);
  115. }
  116. /**
  117. * 带活动id的投票明细
  118. */
  119. public function applyVote()
  120. {
  121. return view('', [
  122. 'id' => input('id/d', 0),
  123. ]);
  124. }
  125. }