Vote.php 3.1 KB

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