bonusex.php 27 KB

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