123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674 |
- <?php
- /**
- * 2018-06-25 韩
- */
-
- namespace App\Http\Controllers\brainstorming;
-
- use App\Http\Requests;
- use App\Models\Lottery;
- use App\Models\LotteryBoxs;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
-
- use DB;
- use Excel;
- use App\Common\Api;
- use App\Models\Users;
- use App\Models\Configs;
- use App\Models\Lotterys;
- use App\Models\Prizes;
- use App\Models\Departments;
- use App\Models\PkRooms;
- use App\Models\KnowledgeRecords;
- use App\Models\Blockades;
-
- use App\Services\ActivityService;
- use App\Services\UserService;
- use App\Services\QuestionService;
- use Illuminate\Support\Facades\Redis;
- use Illuminate\Support\Facades\Log;
-
- class ActivityController extends Controller
- {
- public function __construct(){
-
- }
-
- const QUESTION_UPLOAD_FAIL = 'bsb_question_upload_fail:';
- const USER_UPLOAD_FAIL = 'bsb_user_upload_fail:';
-
- /**
- * 新建活动并获取默认配置
- * @param Request $request
- * @return string
- */
- public function postAdd(Request $request){
- try {
- $params = $request->all();
-
- $keys = array('corp_id', 'app_id');
- foreach ($keys as $key) {
- if (empty($params[$key])) {
- return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
- }
- }
-
- if(!empty($params['activity_id'])){
- $res = ActivityService::getConfigs($params['activity_id'], $params['corp_id']);
- } else {
- $res = ActivityService::addAct($params['corp_id'], $params['app_id']);
- }
-
- return Api::json($res['code'], $res['msg'], $res['data']);
- }catch(\Exception $e) {
- return Api::serviceError($e);
- }
- }
-
- /**
- * 保存活动
- * 2018-06-20 10:25:00
- * @param Request $request
- * @return string
- */
- public function postSave(Request $request){
- try {
- $params = $request->all();
-
- $keys = array('activity_id', 'corp_id', 'app_id', 'title', 'start_time', 'end_time');
- foreach ($keys as $key) {
- if (empty($params[$key])) {
- return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
- }
- }
-
- $res = ActivityService::saveActivity($params);
-
- return Api::json($res['code'], $res['msg'], $res['data']);
- }catch(\Exception $e) {
- return Api::serviceError($e);
- }
- }
-
- /**
- * 暂停活动
- * @param Request $request
- * @return string
- */
- public function postPause(Request $request){
- try {
- $params = $request->all();
-
- $keys = array('activity_id', 'corp_id');
- foreach ($keys as $key) {
- if (empty($params[$key])) {
- return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
- }
- }
-
- $res = ActivityService::stopActivity($params);
-
- return Api::json($res['code'], $res['msg']);
- }catch(\Exception $e) {
- return Api::serviceError($e);
- }
- }
-
- /**
- * 活动下架(删除)
- * @param Request $request
- * @return string
- */
- public function postDelete(Request $request){
- try {
- $params = $request->all();
-
- $keys = array('activity_id');
- foreach ($keys as $key) {
- if (empty($params[$key])) {
- return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
- }
- }
-
- $res = ActivityService::changeActStatus($params);
-
- return Api::json($res['code'], $res['msg']);
- }catch(\Exception $e) {
- return Api::serviceError($e);
- }
- }
-
- /**
- * 活动复制
- * @param Request $request
- * @return string
- */
- public function postCopy(Request $request){
- try {
- $params = $request->all();
-
- $keys = array('activity_id');
- foreach ($keys as $key) {
- if (empty($params[$key])) {
- return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
- }
- }
-
- $res = ActivityService::copyActivity($params);
-
- if ($res) {
- $data['activity_id'] = $res;
- return Api::json(config('code.success'), trans('msg.success'), $data);
- } else {
- return Api::json(config('code.fail'), trans('msg.fail'));
- }
- }catch(\Exception $e) {
- return Api::serviceError($e);
- }
- }
-
- /**
- * 下载上传失败的数据
- * @param Request $request
- * @return string
- */
- public function getErrorUpload(Request $request){
- try {
- $params = $request->all();
- $keys = array('corp_id', 'activity_id', 'type');
- foreach ($keys as $key) {
- if (empty($params[$key])) {
- return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
- }
- }
-
- $actInfo = ActivityService::getActivityInfo($params['activity_id'], $params['corp_id']);
- if (!$actInfo) {
- return Api::json(config('code.activity_not_exist'), trans('msg.activity_not_exist'));
- }
-
- $data = [];
- if($params['type'] == 'user'){
- $data = Redis::get(self::USER_UPLOAD_FAIL.$params['activity_id']);
- $data = json_decode($data, true);
- if(empty($data)) return Api::json(config('code.fail'), '无错误上传数据');
-
- UserService::downloadUserExcel($data);
- } elseif($params['type'] == 'question') {
- $data = Redis::get(self::QUESTION_UPLOAD_FAIL.$params['activity_id']);
- $data = json_decode($data, true);
- if(empty($data)) return Api::json(config('code.fail'), '无错误上传数据');
-
- QuestionService::downloadQuestionExcel($data);
- }
- }catch(\Exception $e) {
- return Api::serviceError($e);
- }
- }
-
- /**
- * 活动看板
- */
- public function getBoard(Request $request){
- $params = $request->all();
- $activity_id = $params['activity_id'];
- if(empty($activity_id) || !isset($activity_id)){
- return Api::json(config('code.params_error'), trans('msg.params_error'));
- }
- //概况
- $data = [];
- $data['time'] = date('Y-m-d H:i:s');
- $data['users']['total'] = Users::where('activity_id', $activity_id)->where('status', 1)->count();
- $data['users']['join'] = Users::where('activity_id', $activity_id)->where('status', 1)->where('platform', '!=', NULL)->count();
- $data['users']['is_blockade_success'] = Users::where('activity_id', $activity_id)->where('status', 1)->where('is_blockade_success', 1)->count();
- $userLotterys = Lotterys::where('activity_id', $activity_id)->groupBy('user_id')->get();
- $data['users']['prize'] = count($userLotterys);
- $data['users']['blockades'] = Blockades::where('activity_id', $activity_id)->count();
- $data['users']['user_online'] = intval(Redis::get('bs_online:'.$activity_id));
-
- //奖品情况
- $data['prize'] = Prizes::where('activity_id', $activity_id)->get()->toArray();
- $data['prize_counts'] = 0;
- $data['day_counts'] = 0;
- $data['total_counts'] = 0;
- foreach($data['prize'] as $k=>$v){
- $key = 'bs_prize_count:'.$v['prize_id'].':'.date('Ymd');
- if(Redis::exists($key)){
- $data['prize'][$k]['day_count'] = $v['prize_day_rule']- Redis::get($key);
- } else {
- $data['prize'][$k]['day_count'] = 0;
- }
- $data['prize_counts'] += $v['prize_count'];
- $data['day_counts'] += $data['prize'][$k]['day_count'];
- $data['total_counts'] += $v['prize_grant_count'];
-
- $data['prize'][$k]['lottery_name'] = LotteryBoxs::where('activity_id', $activity_id)->where('lottery_level', $v['lottery_level'])->value('lottery_name');
- }
-
- //知识币情况
- $boxConfigs = LotteryBoxs::where('activity_id', $activity_id)->where('status', 1)->get();
- $data['user_knowledge_success'] = 0;
- $data['prize_count'] = 0;
- $data['money'] = [];
- foreach($boxConfigs as $k=>$v){
- $data['money'][$v['open_rule']]['user_success'] = Users::where('activity_id', $activity_id)->where('status', 1)->where('knowledge_money', '>=', $v['open_rule'])->count();
- $data['money'][$v['open_rule']]['prize'] = Lotterys::where('activity_id', $activity_id)->where('lottery_level', $v['lottery_level'])->count();
- if($data['money'][$v['open_rule']]['user_success'] != 0){
- $data['money'][$v['open_rule']]['proportion'] = sprintf("%.2f", $data['money'][$v['open_rule']]['prize'] / $data['money'][$v['open_rule']]['user_success']);
- } else {
- $data['money'][$v['open_rule']]['proportion'] = 0;
- }
- $data['prize_count'] += $data['money'][$v['open_rule']]['prize']; //总抽奖人数
- }
- if(!empty($data['money'])){
- ksort($data['money']);
- }
- $data['user_knowledge_success'] = reset($data['money'])['user_success']; //知识币完成人数
-
- //个人排行
- $pkData = Redis::zRevrangebyscore('bs_top:users:pk:'.$params['activity_id'],"+inf", "-inf");
- $topUserInfos = Users::where('activity_id', $params['activity_id'])->where('status', 1)->get()->toArray();
- if(!empty($pkData)) {
- $userDatas = [];
- foreach($topUserInfos as $k=>$v){
- $userDatas[$v['user_id']] = $v;
- }
- foreach ($pkData as $k => $v) {
- $pkData[$k] = $userDatas[$v];
- }
- $data['top']['user']['pk'] = json_decode(json_encode($pkData), true);
- } else {
- $data['top']['user']['pk'] = [];
- }
-
-
- $sql = Users::where('activity_id', $activity_id)->where('status', 1)->orderByDesc('knowledge_money')->limit(100);
- $data['top']['user']['knowledge_money'] = $sql->get();
-
- $levelStarConfig = Configs::where('activity_id', $params['activity_id'])->value('level_star_config');
- $levelStarConfig = json_decode($levelStarConfig, true);
- $departmentInfo = Departments::where('activity_id', $params['activity_id'])->pluck('department_name', 'department_id')->toArray();
- if(!empty($data['top']['user']['knowledge_money'])) {
- foreach ($data['top']['user']['knowledge_money'] as $k=>$v) {
- $data['top']['user']['knowledge_money'][$k]['department_name'] = $v['department_id'] == 0 ? '' : $departmentInfo[$v['department_id']];
- }
- }
-
- if(!empty($data['top']['user']['pk'])) {
- foreach ($data['top']['user']['pk'] as $k=>$v) {
- $data['top']['user']['pk'][$k]['department_name'] = $v['department_id'] == 0 ? '' : $departmentInfo[$v['department_id']];
- $data['top']['user']['pk'][$k]['level_name'] = $levelStarConfig[$v['user_level']]['name'];
- }
- $data['top']['user']['pk'] = collect($data['top']['user']['pk'])->take(100);
- }
-
- //部门排行(参与率)
- $deparments = Departments::where('activity_id', $activity_id)->where('status', 1)->get()->toArray();
- if($deparments) {
- $result = Users::where('activity_id', $params['activity_id'])
- ->select(DB::raw('count(user_id) as count, department_id, sum(is_blockade_success) as success_num, sum(knowledge_money) as moneys'))
- ->where('status', 1)
- ->where('department_id', '!=', 0)
- ->groupBy('department_id')
- ->get()->toArray();
- foreach($result as $k=>$v){
- if(isset($departmentInfo[$v['department_id']])) {
- $result[$k]['department_name'] = $departmentInfo[$v['department_id']];
- } else {
- $result[$k]['department_name'] = '';
- }
- }
- //参与率、知识币、平均知识币
- $departmentRes = collect($result)->reduce(function($departmentRes, $item){
- if($item['count'] != 0) {
- $departmentRes['department_join'][$item["department_name"]] = sprintf("%.2f", $item["success_num"] / $item["count"]);
- $departmentRes['department_knowledge'][$item["department_name"]]['avg'] = round($item['moneys']/$item["count"]);
- } else {
- $departmentRes['department_join'][$item["department_name"]] = 0;
- $departmentRes['department_knowledge'][$item["department_name"]]['avg'] = $item['moneys'];
- }
-
- $departmentRes['department_knowledge'][$item["department_name"]]['count'] = $item['moneys'];
-
- return $departmentRes;
- });
-
- $data['top']['department_knowledge'] = $departmentRes['department_knowledge'];
- $data['top']['department_join'] = $departmentRes['department_join'];
-
- arsort($data['top']['department_knowledge']);
- arsort($data['top']['department_join']);
- }
-
- //游戏数据
- $data['must']['total'] = Blockades::where('activity_id', $activity_id)->where('is_first', 1)->count();
- $data['must']['question_count'] = Blockades::where('activity_id', $activity_id)->where('is_first', 1)->sum('question_count');
- $must_success = Blockades::where('activity_id', $activity_id)->where('is_first', 1)->where('is_success', 1)->count();
- if($data['must']['total'] != 0) {
- $data['must']['success'] = sprintf("%.2f", $must_success / $data['must']['total']);
- } else {
- $data['must']['success'] = 0;
- }
-
- $data['blockade']['total'] = Blockades::where('activity_id', $activity_id)->where('is_first', 0)->count();
- $data['blockade']['question_count'] = Blockades::where('activity_id', $activity_id)->where('is_first', 0)->sum('question_count');
- $blockade_success = Blockades::where('activity_id', $activity_id)->where('is_first', 0)->where('is_success', 1)->count();
- if($data['blockade']['total'] != 0) {
- $data['blockade']['success'] = sprintf("%.2f", $blockade_success / $data['blockade']['total']);
- } else {
- $data['blockade']['success'] = 0;
- }
-
- $data['pk']['total'] = PkRooms::where('activity_id', $activity_id)->count();
- $pk_question_ids = PkRooms::where('activity_id', $activity_id)->pluck('question_ids');
- $data['pk']['question_count'] = 0;
- foreach($pk_question_ids as $v){
- $ids = explode(',', $v);
- $data['pk']['question_count'] += count($ids);
- }
- $data['pk']['unstart'] = PkRooms::where('activity_id', $activity_id)->whereIn('status', [1,2])->count();
- $data['pk']['records'] = KnowledgeRecords::where('activity_id', $activity_id)->where('get_mode', 'pk')->where('money', '>', 0)->sum('money');
-
- $data['configs'] = ActivityService::getActivityConfig($activity_id);
- $data['activity_id'] = $activity_id;
-
- return view('board', ['data'=>$data]);
- }
-
- /**
- * 看板下载
- */
- public function getBoardDownload(Request $request){
- set_time_limit(0);
- ignore_user_abort(true);
-
- $params = $request->all();
-
- $keys = array('activity_id');
- foreach($keys as $key){
- if(empty($params[$key])){
- return Api::json(config('code.params_error'), trans('params.'.$key).trans('msg.params_error'));
- }
- }
-
- $activity_info = ActivityService::getActivityInfo($params['activity_id']);
- $departmentInfo = Departments::where('activity_id', $params['activity_id'])->pluck('department_name', 'department_id')->toArray();
-
- if($params['type'] == 'join') {
- $joins_info = Users::where('activity_id', $params['activity_id'])->where('status', 1)->orderByDesc('knowledge_money')->orderByDesc('blockade_success_time')->get()->toArray();
-
- $data = [];
- $res = [];
- $joins_info = json_decode(json_encode($joins_info), true);
-
- foreach ($joins_info as $k => $v) {
- $res['name'] = $v['name'];
- if($v['department_id'] != 0) {
- $res['department_name'] = $departmentInfo[$v['department_id']];
- } else {
- $res['department_name'] = '';
- }
- if(substr($activity_info['auth_type'],-3) == 'add'){
- $res['guid'] = $v['open_id'];
- } else {
- $res['guid'] = $v['guid'];
- }
- $res['knowledge_money'] = $v['knowledge_money'];
- $res['blockade_success_time'] = empty($v['blockade_success_time'])?'未完成':date('Y-m-d H:i:s', $v['blockade_success_time']);
- $data[] = $res;
- }
- $hands = array('姓名', '部门', '唯一标识', '知识币', '必答完成时间');
- array_unshift($data, $hands);
-
- Excel::create('参与情况', function ($excel) use ($data) {
- $excel->sheet('join', function ($sheet) use ($data) {
- $tot = count($data);
- $sheet->setWidth(array(
- 'A' => 15,
- 'B' => 15,
- 'C' => 25,
- 'D' => 15,
- 'E' => 25,
- ))->rows($data)->setFontSize(12);
-
- $sheet->setStyle([
- 'font' => [
- 'size' => 12,
- 'bold' => false,
- ]
- ])->cells('A1:E1', function($cells){ //设置单元格格式
- $cells->setAlignment('center'); //文本对齐方式
- $cells->setFontWeight('bold'); //粗体
- $cells->setBackground('#92D050'); //底色
- })->cells('A1:E'.$tot, function($cells){
- $cells->setAlignment('center'); //文本对齐方式
- });
- });
- })->export('xlsx');
- } elseif($params['type'] == 'lottery') {
- DB::enableQueryLog();
- $lotterys = DB::table('bs_user_lotterys')
- -> leftJoin('bs_prizes','bs_user_lotterys.prize_id','=','bs_prizes.prize_id')
- -> leftJoin('bs_users','bs_user_lotterys.user_id','=','bs_users.user_id')
- -> select('bs_users.name','bs_users.department_id','bs_users.guid','bs_user_lotterys.prize_name','bs_user_lotterys.lottery_time','bs_prizes.prize_id')
- -> where('bs_user_lotterys.activity_id','=',$params['activity_id'])
- -> orderBy('bs_user_lotterys.lottery_time','desc')
- -> get()
- -> toArray();
- Log::info(DB::getQueryLog());
-
- // $lotterys = Lotterys::where('activity_id', $params['activity_id']) ->orderBy('lottery_time', 'desc')->get()->toArray();
-
- $data = [];
- $res = [];
- $lotterys = json_decode(json_encode($lotterys), true);
- foreach ($lotterys as $k => $v) {
- // $prizeStatus = Prizes::where('prize_id', $v['prize_id'])->value('status');
- if (!$v['prize_id']) {
- continue;
- }
- // $userInfo = Users::where('user_id', $v['user_id'])->first()->toArray();
- $res['name'] = $v['name'];
- if($v['department_id'] != 0) {
- $res['department_name'] = $departmentInfo[$v['department_id']];
- } else {
- $res['department_name'] = '';
- }
- $res['guid'] = $v['guid'];
- $res['prize_name'] = $v['prize_name'];
- $res['lottery_time'] = $v['lottery_time'];
- $data[] = $res;
- }
- $hands = array('姓名', '部门', '手机号码/ID', '获得奖品', '抽奖时间');
- array_unshift($data, $hands);
-
- Excel::create('抽奖情况', function ($excel) use ($data) {
- $excel->sheet('lottery', function ($sheet) use ($data) {
- $tot = count($data);
- $sheet->setWidth(array(
- 'A' => 15,
- 'B' => 15,
- 'C' => 25,
- 'D' => 15,
- 'E' => 25,
- ))->rows($data)->setFontSize(12);
-
- $sheet->setStyle([
- 'font' => [
- 'size' => 12,
- 'bold' => false,
- ]
- ])->cells('A1:E1', function ($cells) { //设置单元格格式
- $cells->setAlignment('center'); //文本对齐方式
- $cells->setFontWeight('bold'); //粗体
- $cells->setBackground('#92D050'); //底色
- })->cells('A1:E' . $tot, function ($cells) {
- $cells->setAlignment('center'); //文本对齐方式
- });
- });
- })->export('xlsx');
- } elseif ($params['type'] == 'pk'){
- // $result = DB::select("select department_id,guid,`name`,user_level,user_star,pk_lost_count,pk_win_count,pk_draw_count from bs_users as b where status=1 and activity_id=".$params['activity_id']." ORDER BY b.user_level desc,b.user_star desc");
- // $res = json_decode(json_encode($result), true);
- ini_set('memory_limit', '256M');
- set_time_limit(0);
-
- //获取配置信息
- $levelStarConfig = Configs::where('activity_id', $params['activity_id'])->value('level_star_config');
- $levelStarConfig = json_decode($levelStarConfig, true);
-
- $pkData = Redis::zRevrangebyscore('bs_top:users:pk:'.$params['activity_id'],"+inf", "-inf");
- $topUserInfos = Users::where('activity_id', $params['activity_id'])->get();
- if(!empty($pkData)) {
- $userDatas = [];
- foreach($topUserInfos as $k=>$v){
- $userDatas[$v['user_id']] = $v;
- }
- foreach ($pkData as $k => $v) {
- $pkData[$k] = $userDatas[$v];
- }
- unset($userDatas);
- unset($topUserInfos);
- $pkData = collect($pkData)->toArray();
-
- $data = [];
- foreach($pkData as $k=>$v){
- $data[$k]['name'] = $v['name'];
- if($v['department_id'] != 0) {
- $departmentName = $departmentInfo[$v['department_id']];
- } else {
- $departmentName = '';
- }
- $data[$k]['department_name'] = !$departmentName ? '': $departmentName;
- $data[$k]['guid'] = $v['guid'];
- $data[$k]['top'] = $k+1;
- $data[$k]['level_name'] = $levelStarConfig[$v['user_level']]['name'];
- $data[$k]['star_num'] = $v['user_star'];
- $data[$k]['pk_total'] = $v['pk_lost_count'] + $v['pk_win_count'] + $v['pk_draw_count'];
- $data[$k]['pk_win'] = $v['pk_win_count'];
- $data[$k]['pk_lost'] = $v['pk_lost_count'];
- $data[$k]['pk_draw'] = $v['pk_draw_count'];
- $data[$k]['blockade_success'] = empty($v['is_blockade_success_copy'])?'未参与':'参与';
- $data[$k]['knowledge_money'] = $v['knowledge_money'];
- }
- unset($pkData);
- } else {
- $data = [];
- }
-
- $hands = array('姓名', '部门', '手机号码/ID', '排名', '段位', '星数', 'PK场数', '胜场', '负场', '平局','是否参与','知识币');
- array_unshift($data, $hands);
-
- Excel::create('PK情况', function ($excel) use ($data) {
- $excel->sheet('lottery', function ($sheet) use ($data) {
- $tot = count($data);
- $sheet->setWidth(array(
- 'A' => 15,
- 'B' => 15,
- 'C' => 25,
- 'D' => 25,
- 'E' => 15,
- 'F' => 25,
- 'G' => 25,
- 'H' => 25,
- 'I' => 25,
- 'J' => 25,
- 'K' => 25,
- 'L' => 25,
- ))->rows($data)->setFontSize(12);
-
- $sheet->setStyle([
- 'font' => [
- 'size' => 12,
- 'bold' => false,
- ]
- ])->cells('A1:L1', function ($cells) { //设置单元格格式
- $cells->setAlignment('center'); //文本对齐方式
- $cells->setFontWeight('bold'); //粗体
- $cells->setBackground('#92D050'); //底色
- })->cells('A1:L' . $tot, function ($cells) {
- $cells->setAlignment('center'); //文本对齐方式
- });
- });
- })->export('xlsx');
- } else {
- return Api::json(config('code.params_error'), trans('msg.params_error'));
- }
-
- }
-
- /**
- * 下载模板
- */
- public function getDownloadModel(Request $request){
- $params = $request->all();
-
- if(empty($params['type'])){
- return Api::json(config('code.params_error'), trans('params.type').trans('msg.params_not_null'));
- } else {
- if($params['type'] == 'user'){
- $url = '/model/人员模板.xlsx'; //人员导入模板
- } else {
- $url = '/model/题库模板.xlsx'; //题库导入模板
- }
- header('location:/manage'.$url);
- }
- }
-
- /**
- * 获取获奖情况(发奖使用)
- * @param Request $request
- * @return string
- */
- public function getPrizeUsers(Request $request){
- $params = $request->all();
-
- $keys = array('activity_id');
- foreach($keys as $key){
- if(empty($params[$key])){
- return Api::json(config('code.params_error'), trans('params.'.$key).trans('msg.params_error'));
- }
- }
-
- $lotterys = Lotterys::where('activity_id', $params['activity_id'])->orderBy('prize_id', 'desc')->get()->toArray();
-
- $data = [];
- $res = [];
- $lotterys = json_decode(json_encode($lotterys), true);
- foreach ($lotterys as $k => $v) {
- $userInfo = Users::where('user_id', $v['user_id'])->first()->toArray();
- $res['name'] = $userInfo['name'];
- $res['avatar'] = $userInfo['avatar'];
- $res['department_name'] = Departments::where('department_id', $userInfo['department_id'])->value('department_name');
- $res['prize_name'] = $v['prize_name'];
- $res['prize_image'] = $v['prize_image_url'];
- $res['blockade_success_time'] = $v['lottery_time'];
- $data[] = $res;
- }
-
- return view('user_prize', ['data'=>$data]);
- }
-
- /**
- * 修改PK段位配置
- * @param Request $request
- * @return string
- */
- public function postModifyLevelConfig(Request $request){
- $params = $request->all();
-
- $keys = array('activity_id', 'level_one', 'level_two', 'level_three', 'level_four', 'level_five', 'level_six');
- foreach($keys as $key){
- if(empty($params[$key])){
- return Api::json(config('code.params_error'), $key .trans('msg.params_error'));
- }
- }
-
- $res = ActivityService::modifyLevelConfig($params);
-
- return Api::json($res['code'], $res['msg'], $res['data']);
- }
- }
- ?>
|