bonusex.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/4/11
  6. * Time: 上午12:49
  7. */
  8. defined('InShopNC') or exit('Access Invalid!');
  9. require_once (BASE_ROOT_PATH . '/helper/bonus_helper.php');
  10. require_once (BASE_ROOT_PATH . '/helper/predeposit_helper.php');
  11. require_once (BASE_ROOT_PATH . '/helper/session_helper.php');
  12. require_once (BASE_ROOT_PATH . '/helper/sms_helper.php');
  13. require_once (BASE_ROOT_PATH . '/helper/model_helper.php');
  14. require_once (BASE_ROOT_PATH . '/helper/bonus_share.php');
  15. class bonusexControl extends mobileControl
  16. {
  17. public function __construct() {
  18. parent::__construct();
  19. }
  20. private function fileter_typeinfos($type_infos,&$type_info,&$binded_info,&$avatars)
  21. {
  22. $type_info = bonus_helper::filter_type($type_infos['type_info']);
  23. $avatars = $type_infos['avatars'];
  24. $binded_info = array();
  25. $binded_infos = $type_infos['binded_info'];
  26. if(is_array($binded_infos))
  27. {
  28. foreach($binded_infos as $val)
  29. {
  30. $user_info = bonus_helper::filter_bonus($val);
  31. if(isset($val['user_mobile'])) {
  32. unset($val['user_mobile']);
  33. }
  34. array_push($binded_info,$user_info);
  35. }
  36. }
  37. }
  38. private function isMineType(bonus\type $type)
  39. {
  40. return ($type->sender_id() == $_SESSION['member_id'] || $type->relayer_id() == $_SESSION['member_id']);
  41. }
  42. public function openOp()
  43. {
  44. if(!isset($_GET['type_sn']) || empty($_GET['type_sn'])) {
  45. return self::outerr(errcode::ErrParamter,"需要红包 type_sn 参数.");
  46. }
  47. $type_sn = $_GET['type_sn'];
  48. $type_infos = bonus_helper::get_typeinfo($type_sn);
  49. if(empty($type_infos)) {
  50. return self::outerr(errcode::ErrBonus,"无此红包.");
  51. }
  52. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  53. $type = \bonus\type::create_by_paramer($type_infos['type_info']);
  54. $isMineType = $this->isMineType($type);
  55. if($type->isStart() == false) {
  56. return self::outsuccess(array('type_info' => $type_info),"bonus/unstart");
  57. }
  58. $mine_bonus = bonus_helper::get_mine_by_typesn($type_sn);
  59. if($mine_bonus != false)
  60. { //显示我抢到的红包,按照状态进行判断
  61. $bonus = \bonus\user_bonus::create_by_param($mine_bonus);
  62. $mine_bonus = bonus_helper::filter_bonus($mine_bonus);
  63. if($bonus->isBinded() == false && session_helper::isVerfiyMobile())
  64. {
  65. $ret = bonus_helper::bind_bonus($bonus->bonus_sn(),$_SESSION['MPHPSESSID'],session_helper::cur_mobile(),$new_sn);
  66. if($ret == true) {
  67. $mine_bonus = bonus_helper::get_mine_by_bonussn($new_sn);
  68. }
  69. }
  70. $data = array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars);
  71. if($bonus->isBinded() || $isMineType) {
  72. return self::outsuccess($data,"bonus/content");
  73. }
  74. else
  75. {
  76. if($type->isEnd()) {
  77. return self::outsuccess(array('type_info' => $type_info),"bonus/end");
  78. } else {
  79. return self::outsuccess($data,"bonus/bind");
  80. }
  81. }
  82. }
  83. else
  84. { //我没有抢过的情况
  85. if($isMineType == false)
  86. {
  87. if($type->isEnd()) {
  88. return self::outsuccess(array('type_info' => $type_info),"bonus/end");
  89. }
  90. else if($type->binded_over()) {
  91. return self::outsuccess(array('type_info' => $type_info,'msg' => "手慢了,红包派完了"),"bonus/over");
  92. } else {
  93. return self::outsuccess(array('type_info' => $type_info),"bonus/open");
  94. }
  95. }
  96. else
  97. {
  98. if($type->isEnd() || $type->binded_over()) {
  99. return self::outsuccess(array('type_info' => $type_info,
  100. 'binded_info' => $binded_info,
  101. 'avatars' => $avatars),
  102. 'bonus/detail');
  103. }
  104. else {
  105. return self::outsuccess(array('type_info' => $type_info),"bonus/open");
  106. }
  107. }
  108. }
  109. }
  110. public function detailOp()
  111. {
  112. if(!isset($_GET['type_sn']) || empty($_GET['type_sn'])) {
  113. return self::outerr(errcode::ErrParamter,"需要红包 type_sn 参数.");
  114. }
  115. $type_sn = $_GET['type_sn'];
  116. $type_infos = bonus_helper::get_typeinfo($type_sn);
  117. if(empty($type_infos)) {
  118. return self::outerr(errcode::ErrBonus,"无此红包.");
  119. }
  120. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  121. $type = \bonus\type::create_by_paramer($type_infos['type_info']);
  122. if($type->isStart() == false) {
  123. return self::outsuccess(array('type_info' => $type_info),"bonus/unstart");
  124. }
  125. $mine_bonus = bonus_helper::get_mine_by_typesn($type_sn);
  126. if($mine_bonus != false) { //显示我抢到的红包,按照状态进行判断
  127. $mine_bonus = bonus_helper::filter_bonus($mine_bonus);
  128. }
  129. return self::outsuccess(array('type_info' => $type_info,
  130. 'mine_bonus' => $mine_bonus,
  131. 'binded_info' => $binded_info,
  132. 'avatars' => $avatars),
  133. 'bonus/detail');
  134. }
  135. public function grabOp()
  136. {
  137. if(!isset($_GET['type_sn']) || empty($_GET['type_sn'])) {
  138. return self::outerr(errcode::ErrParamter,"需要红包 type_sn 参数.");
  139. }
  140. $type_sn = $_GET['type_sn'];
  141. $type_infos = bonus_helper::get_typeinfo($type_sn);
  142. if(empty($type_infos)) {
  143. return self::outerr(errcode::ErrBonus,"无此红包.");
  144. }
  145. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  146. $type = \bonus\type::create_by_paramer($type_infos['type_info']);
  147. if($type->isStart() == false) {
  148. return self::outsuccess(array('type_info' => $type_info),"bonus/unstart");
  149. }
  150. $mine_bonus = bonus_helper::get_mine_by_typesn($type_sn);
  151. if($mine_bonus != false)
  152. { //显示我抢到的红包,按照状态进行判断
  153. $bonus_obj = \bonus\user_bonus::create_by_param($mine_bonus);
  154. $mine_bonus = bonus_helper::filter_bonus($mine_bonus);
  155. if($bonus_obj->isBinded()) {
  156. return self::outsuccess(array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars),"bonus/content");
  157. }
  158. elseif($type->isEnd()) {
  159. return self::outsuccess(array('type_info' => $type_info),"bonus/end");
  160. }
  161. else
  162. {
  163. if(session_helper::isVerfiyMobile())
  164. {
  165. $ret = bonus_helper::bind_bonus($bonus_obj->bonus_sn(),$_SESSION['MPHPSESSID'],session_helper::cur_mobile(),$new_sn);
  166. if($ret == true) {
  167. $mine_bonus = bonus_helper::get_mine_by_bonussn($new_sn);
  168. return self::outsuccess(array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars),"bonus/content");
  169. } else {
  170. return self::outsuccess(array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars),"bonus/bind");
  171. }
  172. } else {
  173. return self::outsuccess(array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars),"bonus/bind");
  174. }
  175. }
  176. }
  177. else
  178. {
  179. if($type->isEnd()) {
  180. return self::outsuccess(array('type_info' => $type_info),"bonus/end");
  181. }
  182. elseif($type->binded_over()) {
  183. return self::outsuccess(array('type_info' => $type_info,'msg' => "手慢了,红包派完了"),"bonus/over");
  184. }
  185. else
  186. {
  187. $bonus = bonus_helper::grab_bonus($type_sn);
  188. if($bonus == false) {
  189. return self::outsuccess(array('type_info' => $type_info,'msg' => "手慢了,红包派完了"),"bonus/over");
  190. }
  191. else
  192. {
  193. $bonus_obj = \bonus\user_bonus::create_by_param($bonus);
  194. $mine_bonus = bonus_helper::filter_bonus($bonus);
  195. if($bonus_obj->isBinded())
  196. {
  197. $type_infos = bonus_helper::get_typeinfo($bonus_obj->type_sn());
  198. if(empty($type_infos)) {
  199. return self::outerr(errcode::ErrBonus,"无此红包.");
  200. }
  201. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  202. $data = array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars);
  203. return self::outsuccess($data,"bonus/content");
  204. } else {
  205. $data = array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars);
  206. return self::outsuccess($data,"bonus/bind");
  207. }
  208. }
  209. }
  210. }
  211. }
  212. public function bindOp()
  213. {
  214. if(!isset($_GET['bonus_sn']) || empty($_GET['bonus_sn'])) {
  215. return self::outerr(errcode::ErrParamter,"请输入红包序列号.");
  216. }
  217. $bonus_sn = $_GET['bonus_sn'];
  218. $mine_bonus = bonus_helper::get_mine_by_bonussn($bonus_sn);
  219. if($mine_bonus == false) {
  220. return self::outerr(errcode::ErrParamter, "您不能领没有抢到的红包.");
  221. }
  222. $bonus_obj = \bonus\user_bonus::create_by_param($mine_bonus);
  223. if($bonus_obj->isBinded()) {
  224. $type_sn = $bonus_obj->type_sn();
  225. $type_infos = bonus_helper::get_typeinfo($type_sn);
  226. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  227. $mine_bonus = bonus_helper::filter_bonus($mine_bonus);
  228. return self::outsuccess(array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars),"bonus/content");
  229. }
  230. $type_sn = $bonus_obj->type_sn();
  231. $type_infos = bonus_helper::get_typeinfo($type_sn);
  232. $type = \bonus\type::create_by_paramer($type_infos['type_info']);
  233. if($type->isEnd()) {
  234. return self::outsuccess(array('type_info' => $type_infos['type_info']),"bonus/end");
  235. }
  236. elseif(session_helper::isVerfiyMobile()) {
  237. $mobile = session_helper::cur_mobile();
  238. }
  239. else
  240. {
  241. $mobile = $_GET['mobile'];
  242. $validator = new Validate();
  243. $validator->setValidate(Validate::verify_mobile($mobile));
  244. $err = $validator->validate();
  245. if ($err != '') {
  246. return self::outerr(errcode::ErrParamter, $err);
  247. }
  248. if(!isset($_GET['code']) || empty($_GET['code'])) {
  249. return self::outerr(errcode::ErrParamter, "请输入验证码.");
  250. }
  251. $code = $_GET['code'];
  252. $ret = sms_helper::check_code(Sms::getbonus_code,$code,$mobile);
  253. if(is_array($ret)) {
  254. return self::outerr($ret['code'], $ret['msg']);
  255. }
  256. else
  257. {
  258. $_SESSION['member_mobile'] = $mobile;
  259. $password = $code . substr($mobile, -4);
  260. $relay_id = intval($_GET['relay_id']);
  261. session_helper::bonus_register($mobile,$password,$type,$relay_id);
  262. }
  263. }
  264. $ret = bonus_helper::bind_bonus($bonus_sn,$_SESSION['MPHPSESSID'],$mobile,$new_bonus_sn);
  265. if($ret == true) {
  266. $mine_bonus = bonus_helper::get_mine_by_bonussn($new_bonus_sn);
  267. $bonus_obj = \bonus\user_bonus::create_by_param($mine_bonus);
  268. $type_infos = bonus_helper::get_typeinfo($bonus_obj->type_sn());
  269. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  270. return self::outsuccess(array('type_info' => $type_info, 'mine_bonus' => $mine_bonus,'binded_info' => $binded_info,'avatars' => $avatars));
  271. } else {
  272. return self::outerr($ret['code'],$ret['msg']);
  273. }
  274. }
  275. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  276. public function shakeOp()
  277. {
  278. if(!isset($_GET['bonus_sn']) || empty($_GET['bonus_sn'])) {
  279. return self::outerr(errcode::ErrParamter,"请输入红包序列号.");
  280. }
  281. $bonus_sn = $_GET['bonus_sn'];
  282. $mine_bonus = bonus_helper::get_mine_by_bonussn($bonus_sn);
  283. if($mine_bonus == false) {
  284. return self::outerr(errcode::ErrParamter, "领到红包后才可以摇.");
  285. }
  286. if(!isset($_POST['strength']) || empty($_POST['strength'])) {
  287. $strength = intval($_POST['strength']);
  288. } else {
  289. $strength = 3;
  290. }
  291. $bonus_obj = \bonus\user_bonus::create_by_param($mine_bonus);
  292. if($bonus_obj->can_shake())
  293. {
  294. $type_sn = $bonus_obj->type_sn();
  295. $type_infos = bonus_helper::get_typeinfo($type_sn);
  296. $type = \bonus\type::create_by_paramer($type_infos['type_info']);
  297. if($type->isEnd()) {
  298. return self::outsuccess(errcode::ErrBonus,"该红包已经过期,不能再摇啦~");
  299. }
  300. elseif($type->binded_over()) {
  301. return self::outsuccess(errcode::ErrBonus,"该红包已经被领光,摇不出更多啦~");
  302. }
  303. elseif($type->isFixedAmount()) {
  304. return self::outsuccess(errcode::ErrBonus,"只有拼收起红包才可以摇哦~");
  305. }
  306. else
  307. {
  308. $ret = bonus_helper::check_shake($bonus_sn,$first);
  309. if($ret != true) {
  310. return self::outerr($ret['code'], $ret['msg']);
  311. }
  312. $direction = bonus_helper::get_direction($first);
  313. $ret = bonus_helper::shake($bonus_obj->bonus_sn(),$strength,$direction);
  314. if($ret == true)
  315. {
  316. $bonus = bonus_helper::get_mine_by_bonussn($bonus_obj->bonus_sn());
  317. $type_infos = bonus_helper::get_typeinfo($bonus_obj->type_sn());
  318. $this->fileter_typeinfos($type_infos,$type_info,$binded_info,$avatars);
  319. return self::outsuccess(array('type_info' => $type_info,'mine_bonus' => $bonus,'binded_info' => $binded_info,'avatars' => $avatars),"bonus/content");
  320. } else {
  321. return self::outsuccess(errcode::ErrBonus,"只有拼收起红包才可以摇哦~");
  322. }
  323. }
  324. }
  325. else {
  326. return self::outerr(errcode::ErrParamter, "抢到或者领到红包后才可以摇.");
  327. }
  328. }
  329. //红包留言
  330. public function commentOp()
  331. {
  332. if(!isset($_GET['bonus_sn']) || empty($_GET['bonus_sn'])) {
  333. return self::outerr(errcode::ErrParamter,"请输入红包序列号.");
  334. }
  335. $bonus_sn = $_GET['bonus_sn'];
  336. if(!isset($_GET['comment']) || empty($_GET['comment'])) {
  337. return self::outerr(errcode::ErrParamter,"请输入留言.");
  338. }
  339. $comment = urldecode($_GET['comment']);
  340. if(bonus_helper::comment($bonus_sn,urldecode($comment)) == true) {
  341. return self::outsuccess(array());
  342. } else {
  343. return self::outerr(errcode::ErrBonusComment,"留言失败.");
  344. }
  345. }
  346. }
  347. function bonus_output_unstart($output)
  348. {
  349. $type_info = $output['type_info'];
  350. $type = \bonus\type::create_by_paramer($type_info);
  351. $local_tm = time();
  352. $start_tm = $type->get_start_time();
  353. $str_localtime = "<input type=\"hidden\" id=\"server_local_time\" value=\"{$local_tm}\"/>";
  354. $str_starttime = "<input type=\"hidden\" id=\"server_start_time\" value=\"{$start_tm}\"/>";
  355. echo($str_localtime);
  356. echo($str_starttime);
  357. }
  358. function bonus_output_end($output)
  359. {
  360. $type_info = $output['type_info'];
  361. $type = \bonus\type::create_by_paramer($type_info);
  362. $start_tm = $type->get_start_time();
  363. $end_time = $type->get_end_time();
  364. $day_secs = 24 * 60 * 60;
  365. if(($end_time - $start_tm) == $day_secs) {
  366. return "该红包已超过24小时。";
  367. } else {
  368. return "该红包已过期。";
  369. }
  370. }
  371. function bonus_output_grabinfo($output)
  372. {
  373. $type_info = $output['type_info'];
  374. $type = \bonus\type::create_by_paramer($type_info);
  375. if($type->binded_over()) {
  376. echo("<p>手慢了,红包被领完了</p>");
  377. }
  378. else if($type->grabed_over())
  379. {
  380. echo ("<p>手慢了,红包被抢完了</p>");
  381. $last_time = $type->grab_lastime();
  382. if($last_time)
  383. {
  384. $wait_sec = $last_time + 600 - time();
  385. $wait_min = intval($wait_sec / 60);
  386. $wait_sec = $wait_sec % 60;
  387. if($wait_min > 0) {
  388. echo("<p style=\"font-size:1rem;margin-top:2rem\">{$wait_min}分钟后,您可以尝试抢一个未及时领取的红包.</p>");
  389. } else {
  390. echo("<p style=\"font-size:1rem;margin-top:2rem\">{$wait_sec}秒后,您可以尝试抢一个未及时领取的红包.</p>");
  391. }
  392. }
  393. }
  394. }
  395. function bonus_output_sender_header($output)
  396. {
  397. $type_info = $output['type_info'];
  398. $avatars = $output['avatars'];
  399. if(!empty($type_info))
  400. {
  401. $type = \bonus\type::create_by_paramer($type_info);
  402. $user_id = $type->sender_id();
  403. if(array_key_exists($user_id,$avatars)) {
  404. $avatar = $avatars[$user_id];
  405. } else {
  406. $avatar = RESOURCE_SITE_URL . '/mobile/defimg/female.png';
  407. }
  408. }
  409. return $avatar;
  410. }
  411. function bonus_output_sender($output)
  412. {
  413. $type_info = $output['type_info'];
  414. if(!empty($type_info)) {
  415. $type = \bonus\type::create_by_paramer($type_info);
  416. echo($type->sender_name());
  417. } else {
  418. echo("");
  419. }
  420. }
  421. function bonus_output_openurl($output)
  422. {
  423. $type_info = $output['type_info'];
  424. $type = \bonus\type::create_by_paramer($type_info);
  425. $type_sn = $type->getType_sn();
  426. $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=open&type_sn={$type_sn}";
  427. return $url;
  428. }
  429. function bonus_output_detailurl($output)
  430. {
  431. $type_info = $output['type_info'];
  432. $type = \bonus\type::create_by_paramer($type_info);
  433. $type_sn = $type->getType_sn();
  434. $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=detail&type_sn={$type_sn}&client_type=wap";
  435. return $url;
  436. }
  437. function bonus_output_graburl($output)
  438. {
  439. $type_info = $output['type_info'];
  440. $type = \bonus\type::create_by_paramer($type_info);
  441. $type_sn = $type->getType_sn();
  442. $url = BASE_SITE_URL . "/mobile/index.php?act=bonusex&op=grab&client_type=wap&type_sn={$type_sn}";
  443. return $url;
  444. }
  445. function bonus_output_type($output)
  446. {
  447. echo '<div class="name">';
  448. echo '<p class="p p_name" style="color:#454545">';
  449. $type_info = $output['type_info'];
  450. $type = \bonus\type::create_by_paramer($type_info);
  451. echo($type_info['sender_name'] . "的红包");
  452. if($type->isRandomAmount()) {
  453. echo '<s class="icon_pin"></s>';
  454. }
  455. echo '</p>';
  456. echo '<p class="prompt">' . $type_info['type_bless'] . '</p>';
  457. echo '</div>';
  458. }
  459. function bonus_output_mine($output)
  460. {
  461. if($_SESSION['is_app']) {
  462. $show_down = false;
  463. } else {
  464. $show_down = true;
  465. }
  466. $mine_bonus = $output['mine_bonus'];
  467. if(!empty($mine_bonus)) {
  468. $bonus = \bonus\user_bonus::create_by_param($mine_bonus);
  469. echo('<div class="price">');
  470. echo('<p><span>' . $bonus->bonus_value() . '</span>元</p>');
  471. echo('</div>');
  472. echo('<input type="hidden" id="mine_bonus" value=' ."{$bonus->bonus_sn()}>");
  473. $show_down = $bonus->isBinded() && $show_down;
  474. } else {
  475. $show_down = false;
  476. }
  477. if($show_down) {
  478. echo('<div class="link">');
  479. echo('<p><a href="javascript:void(0)" id="link"><span class="down_icon"></span>点击下载APP</a></p>');
  480. echo('</div>');
  481. }
  482. }
  483. function bonus_out_bindtimeout($output)
  484. {
  485. $mine_bonus = $output['mine_bonus'];
  486. if(!empty($mine_bonus))
  487. {
  488. $bonus = \bonus\user_bonus::create_by_param($mine_bonus);
  489. $grab_time = $bonus->grab_time();
  490. $time_out = 600;
  491. if($grab_time > 0)
  492. {
  493. if($grab_time + $time_out <= time() - 60) {
  494. return '您的红包随时可能被抢走,抓紧领啊~';
  495. } else {
  496. $left_time = $grab_time + $time_out - time();
  497. $mins = $left_time / 60;
  498. return "请{$mins}分钟内,输入手机号领取红包";
  499. }
  500. }
  501. }
  502. return '';
  503. }
  504. function bonus_out_bindedtime($period)
  505. {
  506. $min = 60;
  507. $hour = 3600;
  508. $day = 24 * 3600;
  509. $days = intval($period / $day);
  510. $period = $period % $day;
  511. $houres = intval($period / $hour);
  512. $period = $period % $hour;
  513. $mins = intval($period / $min);
  514. $period = $period % $min;
  515. if($period > 0) {
  516. $mins += 1;
  517. }
  518. $time_str = '';
  519. if($days > 0) {
  520. $time_str .= "{$days}天";
  521. }
  522. if($houres > 0) {
  523. $time_str .= "{$houres}小时";
  524. }
  525. if($mins > 0) {
  526. $time_str .= "{$mins}分钟";
  527. }
  528. $time_str .= "领完.";
  529. return $time_str;
  530. }
  531. function bonus_output_bindedinfo($output)
  532. {
  533. $type_info = $output['type_info'];
  534. $avatars = $output['avatars'];
  535. $type = \bonus\type::create_by_paramer($type_info);
  536. echo('<div class="prompt text_left">');
  537. if($type->binded_over()) {
  538. $prompt = "{$type->getTotal_num()}个红包";
  539. $prompt .= ",";
  540. $period = $type_info['binded_period'];
  541. $prompt .= bonus_out_bindedtime($period);
  542. } else {
  543. $prompt = "领取 {$type->binded_num()}/{$type->getTotal_num()}";
  544. }
  545. echo('<p class="prompt pro">' .$prompt. '</p>');
  546. echo('</div>');
  547. $bined_info = $output['binded_info'];
  548. if(empty($bined_info)) return;
  549. echo '<div class="list">';
  550. foreach($bined_info as $val)
  551. {
  552. $bonus = \bonus\user_bonus::create_by_param($val);
  553. $user_id = $bonus->user_id();
  554. if(array_key_exists($user_id,$avatars)) {
  555. $avatar = $avatars[$user_id];
  556. } else {
  557. $avatar = RESOURCE_SITE_URL . '/mobile/defimg/female.png';
  558. }
  559. echo('<div class="li">');
  560. echo('<div class="li_head_image">');
  561. echo('<img src="' . $avatar .'" />');
  562. echo('</div>');
  563. echo('<div class="li_left">');
  564. echo('<p class="p">' . $bonus->user_name() .'</p>');
  565. if(empty($bonus->user_comment()))
  566. {
  567. if($bonus->user_mobile() == $_SESSION['member_mobile']) {
  568. echo('<p class="prompt" id="my_prompt"><a href="javascript:void(0)" id="message" style="color: #1927D1;display:inline-block;padding-top: 0.1rem;">留言</a></p>');
  569. echo('<p class="prompt">' . $bonus->get_time_format() . '</p>');
  570. } else {
  571. echo('<p class="prompt">' . $bonus->get_time_format() . '</p>');
  572. echo('<p class="prompt"></p>');
  573. }
  574. }
  575. else
  576. {
  577. echo('<p class="prompt">' . $bonus->user_comment() . '</p>');
  578. echo('<p class="prompt">' . $bonus->get_time_format() . '</p>');
  579. }
  580. echo('</div>');
  581. echo('<div class="li_right">');
  582. echo('<p class="p">' . $bonus->bonus_value() . '元</p>');
  583. echo('<p><span class="hilt">' . $bonus->bonus_rate() . '%</span></p>');
  584. if($type->binded_over() && $type->isMaxAmount($bonus->bonus_value()) && $type->isRandomAmount()) {
  585. echo('<p class="king_box"><s class="king"></s>手气最佳</p>');
  586. }
  587. echo('</div>');
  588. echo('</div>');
  589. }
  590. echo('</div>');
  591. }
  592. function android_downpath()
  593. {
  594. $url = BASE_SITE_URL . '/data/upload/package/xmmz_release.apk';
  595. return $url;
  596. }
  597. function share_title($output)
  598. {
  599. $type_info = $output['type_info'];
  600. $type = \bonus\type::create_by_paramer($type_info);
  601. return $type->bless();
  602. }
  603. function share_subtitle($output)
  604. {
  605. $type_info = $output['type_info'];
  606. $type = \bonus\type::create_by_paramer($type_info);
  607. $share_id = $type->share_id();
  608. $share = bonus_share::instance()->get($share_id);
  609. return $share['sub_title'];
  610. }
  611. function share_image($output)
  612. {
  613. $type_info = $output['type_info'];
  614. $type = \bonus\type::create_by_paramer($type_info);
  615. $share_id = $type->share_id();
  616. $share = bonus_share::instance()->get($share_id);
  617. return $share['img_url'];
  618. }