| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | <?phpnamespace app\admin\controller;use app\admin\AdminBaseController;use app\common\model\VoteApplyModel;use app\common\model\VoteModel;use app\common\service\QrcodeService;use app\common\validate\VoteValidate;use think\exception\ValidateException;class Vote extends AdminBaseController{    /**     * 列表     */    public function index()    {        return view('',[            'status_list' => VoteModel::STATUS,        ]);    }    public function listVote()    {        $map = $this->dealEqualInput(['status']);        $list  = VoteModel::where($map)->limit(input('limit'))->page(input('page'))->append(['status_text'])->select();        $count = VoteModel::where($map)->count();        if ($count == 0) {            ajax_return(1, '未查询到数据');        }        list_return($list, $count);    }    /**     * 编辑     */    public function voteForm()    {        $id   = input('id/d, 0');        $info = VoteModel::find($id);        return view('', [            'info' => $info,            'status_list' => VoteModel::STATUS,            'option' => empty($info['option']) ? '[]' : json_encode($info['option']),        ]);    }    public function editVote()    {        $data = input('post.');        try {            validate(VoteValidate::class)->check($data);        } catch (ValidateException $e) {            ajax_return(1, $e->getError());        }        if (empty($data['id'])) {            VoteModel::create($data);        } else {            VoteModel::update($data, ['id' => $data['id']]);        }        ajax_return();    }    public function delVote()    {        $id    = input('id/d');        $check = VoteApplyModel::where('vote_id', $id)->find();        if (!empty($check)) {            ajax_return(1, '已有投票的活动无法删除!');        }        VoteModel::destroy($id);        ajax_return();    }    /**     * 二维码     */    public function qrcodeVote()    {        $id = input('id/d', 0);        $file_name = "/vote_{$id}.png";        $link      = url('/mobile/vote/detail') . '?id=' . $id;        $file_url  = QrcodeService::getQrcode($file_name, $link, 600);        ajax_return(0, '', $file_url);    }    /**     * 查看票数     */    public function showNum()    {        $id = input('id/d', 0);        $apply = VoteApplyModel::where('vote_id', $id)->select();        $res   = [];        foreach ($apply as $v) {            if (empty($res[$v['option_name']])) {                $res[$v['option_name']] = 0;            }            $res[$v['option_name']]++;        }        return view('', [            'info' => $res,        ]);    }    /**     * 投票明细     */    public function apply()    {        $vote_list = VoteModel::select();        return view('', [            'vote_list' => $vote_list,        ]);    }    public function listApply()    {        $map = $this->dealEqualInput([], ['vote_id']);        $list  = VoteApplyModel::with(['user', 'vote'])->where($map)->limit(input('limit'))->page(input('page'))->select();        $count = VoteApplyModel::where($map)->count();        if ($count == 0) {            ajax_return(1, '未查询到数据');        }        list_return($list, $count);    }    /**     * 带活动id的投票明细     */    public function applyVote()    {        return view('', [            'id' => input('id/d', 0),        ]);    }}
 |