ActivityController.php 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use Illuminate\Http\Request;
  4. use App\Http\Requests;
  5. use App\Http\Controllers\Controller;
  6. use App\Common\Api;
  7. use App\Models\Apps;
  8. use App\Models\Activitys;
  9. use App\Models\Corps;
  10. use Illuminate\Support\Facades\Validator;
  11. use Qiniu\Auth;
  12. use Qiniu\Storage\UploadManager;
  13. use App\Services\ActivityService;
  14. use DB;
  15. use Excel;
  16. class ActivityController extends Controller
  17. {
  18. public function __construct(){
  19. //加载中间键
  20. $this->middleware('CheckLogin');
  21. $this->middleware('Logs');
  22. $this->middleware('CacheClear');
  23. }
  24. //宝箱设置
  25. const LOTTERY_LEVEL = array(
  26. 'copperPrize'=>1,
  27. 'sliverPrize'=>2,
  28. 'goldPrize' =>3,
  29. );
  30. const USER_UPLOAD = 1;
  31. /**
  32. * 获取活动列表
  33. * Corp_id int() 企业ID
  34. * 2018-05-08 16:55 韩
  35. */
  36. public function getActList(Request $request){
  37. try {
  38. $params = $request->all();
  39. $keys = array('corp_id');
  40. foreach ($keys as $key) {
  41. if (empty($params[$key])) {
  42. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_error'));
  43. }
  44. }
  45. $page_size = empty($params['page_size']) ? 10 : $params['page_size'];
  46. if (isset($params['keyword']) && !empty($params['keyword'])) {
  47. $data = Activitys::where('corp_id', $params['corp_id'])
  48. ->where('status', '1')
  49. ->where('is_complete_set', '1')
  50. ->where('title', 'like', "%" . $params['keyword'] . "%")
  51. ->orderByDesc("create_time")->paginate($page_size);
  52. } else {
  53. $data = Activitys::where('corp_id', $params['corp_id'])
  54. ->where('status', '1')
  55. ->where('is_complete_set', '1')
  56. ->orderByDesc("create_time")->paginate($page_size);
  57. }
  58. $data = Api::page($data);
  59. foreach ($data['data'] as $k => $v) {
  60. //管理路由地址
  61. $app_info = Apps::where('app_id', $v['app_id'])->first()->toArray();
  62. $data['data'][$k]['admin_url'] = $app_info['admin_url'];
  63. //游戏路由地址
  64. $data['data'][$k]['game_url'] = env('WEB_URL') . '/' . $app_info['app_code'] . '?activity_id=' . $v['activity_id'];
  65. }
  66. //时间戳格式化
  67. foreach ($data['data'] as $key => $val) {
  68. $data['data'][$key] = Api::dateFormat($val);
  69. //活动状态
  70. if ($val['start_time'] > time()) {
  71. $data['data'][$key]['activity_status_text'] = '未开始';
  72. } elseif ($val['end_time'] < time()) {
  73. $data['data'][$key]['activity_status_text'] = '已结束';
  74. } else {
  75. if ($val['is_temp_stop'] == 1) {
  76. $data['data'][$key]['activity_status_text'] = '已暂停';
  77. } else {
  78. $data['data'][$key]['activity_status_text'] = '进行中';
  79. }
  80. }
  81. }
  82. return Api::json(config('code.success'), trans('msg.success'), $data);
  83. } catch(\Exception $e) {
  84. return Api::serviceError($e);
  85. }
  86. }
  87. /**
  88. * 获取活动详情
  89. * act_id int 活动ID
  90. */
  91. public function getActInfo(Request $request){
  92. try {
  93. $params = $request->all();
  94. $keys = array('activity_id', 'corp_id');
  95. foreach ($keys as $key) {
  96. if (empty($params[$key])) {
  97. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_error'));
  98. }
  99. }
  100. $res = ActivityService::getActivityInfo($params['activity_id'], $params['corp_id']);
  101. if ($res) {
  102. return Api::json(config('code.success'), trans('msg.success'), $res);
  103. } else {
  104. return Api::json(config('code.activity_not_exist'), trans('msg.activity_not_exist'));
  105. }
  106. } catch(\Exception $e) {
  107. return Api::serviceError($e);
  108. }
  109. }
  110. /**
  111. * 应用列表
  112. * corp_id 企业ID
  113. */
  114. public function getAppList(Request $request){
  115. try {
  116. $res = Apps::get();
  117. $data = json_decode($res, true);
  118. $params = $request->all();
  119. if (empty($params['corp_id'])) {
  120. return Api::json(config('code.params_error'), trans('msg.params_error'));
  121. }
  122. $userInfo = $request->session()->get('userInfo');
  123. //给超级管理员的企业ID赋值。赋予当前选中的企业ID
  124. if ($userInfo['is_admin'] == 1) {
  125. $userInfo['corp_id'] = $params['corp_id'];
  126. $request->session()->put('userInfo', $userInfo);
  127. }
  128. return Api::json(config('code.success'), trans('msg.success'), $data);
  129. }catch(\Exception $e) {
  130. return Api::serviceError($e);
  131. }
  132. }
  133. /**
  134. * 获取应用详情
  135. * id int 活动类行ID
  136. */
  137. public function getAppInfo(Request $request){
  138. try {
  139. $params = $request->all();
  140. if (empty($params['app_id'])) {
  141. return Api::json(config('code.params_error'), trans('msg.params_error'));
  142. }
  143. $data = Apps::where('app_id', $params['app_id'])->first();
  144. return Api::json(config('code.success'), trans('msg.success'), $data);
  145. }catch(\Exception $e) {
  146. return Api::serviceError($e);
  147. }
  148. }
  149. /**
  150. * 超级管理员获取企业列表
  151. *
  152. */
  153. public function getCorpList(Request $request){
  154. try {
  155. $params = $request->all();
  156. $page_size = empty($params['page_size']) ? 10 : $params['page_size'];
  157. $keyword = $request->get("keyword");
  158. if (is_null($keyword)) {
  159. $corp_info = Corps::orderByDesc("corp_id")->paginate($page_size);
  160. } else {
  161. $corp_info = Corps::where("corp_name", "like", "%" . $keyword . "%")
  162. ->orderByDesc("corp_id")->paginate($page_size);
  163. }
  164. $data = Api::page($corp_info);
  165. //时间戳转换
  166. foreach ($data['data'] as $key => $val) {
  167. $data['data'][$key] = Api::dateFormat($val);
  168. }
  169. return Api::json(config('code.success'), trans('msg.success'), $data);
  170. }catch(\Exception $e) {
  171. return Api::serviceError($e);
  172. }
  173. }
  174. /**
  175. * 获取七牛上传头token
  176. */
  177. public function getUploadToken(Request $request){
  178. try {
  179. $accessKey = env("QINIU_ACCESS_KEY");
  180. $secretKey = env("QINIU_SECRET_KEY");
  181. $auth = new Auth($accessKey, $secretKey);
  182. $bucket = env("QINIU_BUCKET");
  183. // 生成上传Token
  184. $token = $auth->uploadToken($bucket);
  185. $data['token'] = $token;
  186. return Api::json(config('code.success'), trans('msg.success'), $data);
  187. }catch(\Exception $e) {
  188. return Api::serviceError($e);
  189. }
  190. }
  191. /**
  192. * 活动复制
  193. * @param Request $request
  194. * @return string
  195. */
  196. public function getActCopy(Request $request){
  197. try {
  198. $params = $request->all();
  199. $keys = array('activity_id');
  200. foreach ($keys as $key) {
  201. if (empty($params[$key])) {
  202. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
  203. }
  204. }
  205. $res = ActivityService::copyActivity($params);
  206. if ($res) {
  207. $data['activity_id'] = $res;
  208. return Api::json(config('code.success'), trans('msg.success'), $data);
  209. } else {
  210. return Api::json(config('code.fail'), trans('msg.fail'));
  211. }
  212. }catch(\Exception $e) {
  213. return Api::serviceError($e);
  214. }
  215. }
  216. /**
  217. * 活动下架(删除)
  218. * @param Request $request
  219. * @return string
  220. */
  221. public function postChangeStatus(Request $request){
  222. try {
  223. $params = $request->all();
  224. $keys = array('activity_id', 'corp_id');
  225. foreach ($keys as $key) {
  226. if (empty($params[$key])) {
  227. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
  228. }
  229. }
  230. $res = ActivityService::changeActStatus($params);
  231. return Api::json($res['code'], $res['msg']);
  232. }catch(\Exception $e) {
  233. return Api::serviceError($e);
  234. }
  235. }
  236. /**
  237. * 暂停活动
  238. * @param Request $request
  239. * @return string
  240. */
  241. public function getActStop(Request $request){
  242. try {
  243. $params = $request->all();
  244. $keys = array('activity_id', 'corp_id');
  245. foreach ($keys as $key) {
  246. if (empty($params[$key])) {
  247. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
  248. }
  249. }
  250. $res = ActivityService::stopActivity($params);
  251. return Api::json($res['code'], $res['msg']);
  252. }catch(\Exception $e) {
  253. return Api::serviceError($e);
  254. }
  255. }
  256. /**
  257. * 新建活动
  258. * 2018-06-19 17:00:00
  259. * @param Request $request
  260. * @return string
  261. */
  262. public function postAddAct(Request $request){
  263. try {
  264. $params = $request->all();
  265. $keys = array('corp_id', 'app_id');
  266. foreach ($keys as $key) {
  267. if (empty($params[$key])) {
  268. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
  269. }
  270. }
  271. if($params['activity_id']){
  272. $res = ActivityService::getConfigs($params['activity_id'], $params['corp_id']);
  273. } else {
  274. $res = ActivityService::addAct($params['corp_id'], $params['app_id']);
  275. }
  276. return Api::json($res['code'], $res['msg'], $res['data']);
  277. }catch(\Exception $e) {
  278. return Api::serviceError($e);
  279. }
  280. }
  281. /**
  282. * 保存活动
  283. * 2018-06-20 10:25:00
  284. * @param Request $request
  285. * @return string
  286. */
  287. public function postSaveAct(Request $request){
  288. try {
  289. $params = $request->all();
  290. $keys = array('activity_id', 'corp_id', 'app_id', 'title', 'start_time', 'end_time');
  291. foreach ($keys as $key) {
  292. if (empty($params[$key])) {
  293. return Api::json(config('code.params_error'), trans('params.'.$key) . trans('msg.params_not_null'));
  294. }
  295. }
  296. //数字不能为小数点 不能为负数
  297. $int_key = array();
  298. $res = ActivityService::saveActivity($params);
  299. return Api::json($res['code'], $res['msg'], $res['data']);
  300. }catch(\Exception $e) {
  301. return Api::serviceError($e);
  302. }
  303. }
  304. public function postTest(Request $request){
  305. /*参数验证测试*/
  306. //// $params = $request->validate([
  307. //// 'username'=>'required',
  308. //// 'password'=>'required',
  309. //// ]);
  310. // $validator = Validator::make($request->all(), [
  311. // 'username' => 'required |max:255',
  312. // 'password' => 'required',
  313. // ]);
  314. //
  315. // if ($validator->fails()) {
  316. // $errors = collect($validator->errors())->toArray();
  317. // $res = current($errors);
  318. // return Api::json(config('code.success'), trans('msg.success'), $res);
  319. //// return $validator->errors();
  320. // }
  321. //
  322. // return Api::json(config('code.success'), trans('msg.success'));
  323. return 'xxxx';
  324. }
  325. }
  326. ?>