index.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <?php
  2. /**
  3. * cms首页
  4. *
  5. *
  6. *
  7. */
  8. use bonus\activity_bonus;
  9. use mcard\user_mcards;
  10. defined('InShopNC') or exit('Access Invalid!');
  11. require_once(BASE_ROOT_PATH . '/mobile/control/special.php');
  12. require_once(BASE_HELPER_PATH . '/goods_helper.php');
  13. require_once(BASE_HELPER_PATH . '/special_helper.php');
  14. require_once(BASE_HELPER_PATH . '/index_tab.php');
  15. require_once(BASE_HELPER_PATH . '/util_helper.php');
  16. require_once(BASE_HELPER_PATH . '/third_author/wxauthor.php');
  17. require_once(BASE_HELPER_PATH . '/third_author/wxauthor.php');
  18. require_once(BASE_HELPER_PATH . '/session_helper.php');
  19. require_once(BASE_HELPER_PATH . '/url_helper.php');
  20. require_once(BASE_HELPER_PATH . '/room/tpl_group_home.php');
  21. require_once(BASE_HELPER_PATH . '/room/tpl_chatwo_home.php');
  22. require_once(BASE_HELPER_PATH . '/mcard/mcard.php');
  23. require_once(BASE_HELPER_PATH . '/mtopcard/mtopcard.php');
  24. require_once(BASE_HELPER_PATH . '/calc_helper.php');
  25. class indexControl extends specialControl
  26. {
  27. const HomeSpecialID = 0;
  28. public function __construct()
  29. {
  30. parent::__construct();
  31. }
  32. public function mini_indexOp()
  33. {
  34. $_GET['special_id'] = 0;
  35. return parent::indexOp();
  36. }
  37. public function tabsOp()
  38. {
  39. $client_tpe = session_helper::client_type();
  40. if($client_tpe == session_helper::device_mini || $client_tpe == session_helper::device_wap) {
  41. $tabs = [];
  42. $tabs[] = ['special_id' => 1383,'name' => '推荐'];
  43. $tabs[] = ['special_id' => 1122,'name' => '品牌'];
  44. $tabs[] = ['special_id' => 1025,'name' => '护肤'];
  45. $tabs[] = ['special_id' => 1035,'name' => '彩妆'];
  46. $tabs[] = ['special_id' => 1036,'name' => '洗护'];
  47. $tabs[] = ['special_id' => 1019,'name' => '男士'];
  48. }
  49. else {
  50. $tabs = index_tab::instance()->tabs();
  51. }
  52. $daliy_bonus = activity_bonus::daliy_bonus_url();
  53. return self::outsuccess(['tabs' => $tabs,'daliy_bonus' =>$daliy_bonus]);
  54. }
  55. public function splashOp()
  56. {
  57. $sig = $_GET['sig'];
  58. $ret = $this->pub_special($this->splash_id());
  59. if(empty($ret['special_list'])) {
  60. return self::outsuccess(null);
  61. }
  62. $block = $ret['special_list'][0];
  63. if(empty($block) || empty($block['items'])) {
  64. return self::outsuccess(null);
  65. }
  66. $image = $block['items'][0]['image'];
  67. if(empty($sig) || $sig != md5($image)) {
  68. return self::outsuccess(['sig' => md5($image),'url' => $image]);
  69. } else {
  70. return self::outsuccess(null);
  71. }
  72. }
  73. private function splash_id()
  74. {
  75. global $config;
  76. $special_id = $config['splash_page']['special_id'];
  77. return $special_id;
  78. }
  79. public function inoherbOp()
  80. {
  81. return self::outsuccess(['direct_uri' => BASE_SITE_URL . '/hfive/inoherb/index.html?2'],"redirect");
  82. }
  83. /**
  84. * 会话详情页 talk_type:room/chatwo talk_id:room_id/user
  85. * 回话详情@ app打开
  86. * 群详情@ 微信扫码进入
  87. */
  88. public function room_indexOp()
  89. {
  90. $talk_type = trim($_GET['talk_type']);
  91. $talk_id = intval($_GET['talk_id']);
  92. $relay_id = intval($_GET['relay_id']);
  93. $open_talk = intval($_GET['open_talk']);
  94. if($talk_id <= 0) {
  95. return self::outerr(errcode::ErrParamter);
  96. }
  97. //微信内打开使用授权判断
  98. if(session_helper::need_wechat_author()) {
  99. $author = new thrid_author\wxauthor();
  100. $url = url_helper::room_detail_url($talk_type,$talk_id,$relay_id);
  101. $url = $author->enter($url);
  102. return self::outsuccess(['direct_uri' => $url],"redirect");
  103. }
  104. $is_app = intval(session_helper::isapp());
  105. $user = session_helper::memberid();
  106. $param = ["talk_type" => $talk_type, "talk_id" => $talk_id , "member_id" => $user,"room_name" => "","room_avatar" => "","relay_id" => $relay_id,
  107. "is_app" => $is_app,
  108. "open_talk" => $open_talk];
  109. if(!session_helper::logined())
  110. {
  111. if($talk_type == "room") {
  112. return self::outsuccess(['tpl' => null,"param" => $param],'talk/homepage_room');
  113. } elseif($talk_type == 'chatwo') {
  114. return self::outsuccess(['tpl' => null,"param" => $param],'talk/homepage_chatwo');
  115. } else {
  116. return self::outerr(errcode::ErrParamter);
  117. }
  118. }
  119. if($talk_type == "room")
  120. {
  121. try {
  122. $room_id = $talk_id;
  123. $tpl = new room\tpl_group_home($user,$talk_id,$relay_id);
  124. $param["room_name"] = $tpl->get_room_info()->name();
  125. $param["room_avatar"] = $tpl->get_room_info()->avatar();
  126. return self::outsuccess(['tpl' => $tpl,"param" => $param],'talk/homepage_room');
  127. } catch (Exception $ex) {
  128. Log::record("member_talk.room_detail error: room_id={$room_id} user={$user}",Log::ERR);
  129. return self::outerr(errcode::ErrParamter);
  130. }
  131. }
  132. elseif($talk_type == 'chatwo')
  133. {
  134. try {
  135. $other = $talk_id;
  136. $tpl = new room\tpl_chatwo_home($user,$other);
  137. return self::outsuccess(['tpl' => $tpl,"param"=>$param],'talk/homepage_chatwo');
  138. } catch (Exception $ex) {
  139. Log::record("member_talk.room_detail error: other={$other} user={$user}",Log::ERR);
  140. return self::outerr(errcode::ErrParamter);
  141. }
  142. }
  143. else
  144. {
  145. return self::outerr(errcode::ErrParamter);
  146. }
  147. }
  148. ///获取充值卡的数据接口.
  149. public function card_goodsOp()
  150. {
  151. $page_type = $_GET['page_type']; //oil or phone page.
  152. if(empty($page_type)) {
  153. return self::outerr(errcode::ErrParamter);
  154. }
  155. $calctor = new CalcPrice(session_helper::memberid());
  156. $goods = $this->card_goods($page_type,$calctor);
  157. $ret = [];
  158. if(session_helper::memberid() > 0)
  159. {
  160. $card_list = mtopcard\priority_cards(session_helper::memberid(),$page_type);
  161. $ret['cards'] = mtopcard\topcard_format($card_list);
  162. }
  163. else {
  164. $ret['cards'] = [];
  165. }
  166. $ret['tips'] = $calctor->calc_tips();
  167. foreach ($goods as $item) {
  168. $ret['goods_inviter_tips'][] = [
  169. 'goods_id' => $item['goods_id'],
  170. 'tip' => $calctor->inviter_tips($item['goods_id'])];
  171. }
  172. $ret['inviter_tips'] = empty($ret['goods_inviter_tips']) ? '' : $ret['goods_inviter_tips'][0]['tip'];
  173. $ret['goods'] = $goods;
  174. $ret['member_mobile'] = session_helper::mobile();
  175. $ret['special_id'] = $this->paysuccess_special();
  176. return self::outsuccess($ret);
  177. }
  178. private function paysuccess_special()
  179. {
  180. global $config;
  181. return $config['special_pay_success'];
  182. }
  183. private function card_goods($card_type,$calctor)
  184. {
  185. global $config;
  186. $card_commids = $config['card_commonid'];
  187. if(empty($card_commids)) {
  188. return [];
  189. }
  190. $commonid = intval($card_commids[$card_type]);
  191. Log::record("card_type = {$card_type} commonid={$commonid}",Log::DEBUG);
  192. if($commonid > 0)
  193. {
  194. $mod_goods = Model('goods');
  195. $goods_list = $mod_goods->getGoodsOnlineList(['goods_commonid' => $commonid]);
  196. $helper = new goods_helper(new bonus\normal_calc());
  197. $goods_list = $helper->summary($goods_list, $related_goods,[$calctor,'calc_vgoods_price']);
  198. $summarys = &$goods_list['summary'];
  199. usort($summarys,[__CLASS__,'comp_goods']);
  200. return $summarys;
  201. }
  202. else {
  203. return [];
  204. }
  205. }
  206. public static function comp_goods($left,$right)
  207. {
  208. $t_l = intval($left['goods_spec']);
  209. $t_r = intval($right['goods_spec']);
  210. if($t_l > $t_r) {
  211. return 1;
  212. }
  213. elseif($t_l == $t_r)
  214. {
  215. return 0;
  216. }
  217. else {
  218. return -1;
  219. }
  220. }
  221. }