index.php 8.9 KB

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