bonusex.php 29 KB

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