user_wpk.php 73 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. define("EMPTY_ERROR",1); //未填写的错误
  10. define("FORMAT_ERROR",2); //格式错误
  11. define("EXIST_ERROR",3); //已存在的错误
  12. define("ACCOUNT_NO_EXIST_ERROR",1); //帐户不存在
  13. define("ACCOUNT_PASSWORD_ERROR",2); //帐户密码错误
  14. define("ACCOUNT_NO_VERIFY_ERROR",3); //帐户未激活
  15. /**
  16. * 生成会员数据
  17. * @param $user_data 提交[post或get]的会员数据
  18. * @param $mode 处理的方式,注册或保存
  19. * 返回:data中返回出错的字段信息,包括field_name, 可能存在的field_show_name 以及 error 错误常量
  20. * $update_status后台更新标示字段
  21. */
  22. function save_user_wpk($user_data,$mode='INSERT',$update_status)
  23. {
  24. //开始数据验证
  25. $res = array('status'=>1,'info'=>'','data'=>''); //用于返回的数据
  26. if($user_data['mobile']!=''&&!check_mobile(trim($user_data['mobile'])))
  27. {
  28. $res['error'] = '手机格式错误:'.$user_data['mobile'];
  29. $res['status'] = 0;
  30. return $res;
  31. }
  32. if($user_data['mobile1']!=''&&!check_mobile(trim($user_data['mobile1'])))
  33. {
  34. $res['error'] = '备用手机格式错误:'.$user_data['mobile1'];
  35. $res['status'] = 0;
  36. return $res;
  37. }
  38. /*$exit_id = $GLOBALS['db']->getOne("select id from ".DB_PREFIX."user where mobile = '".trim($user_data['mobile'])."'");
  39. if($user_data['mobile']!=''&& $exit_id && $exit_id!=$user_data['id'])
  40. {
  41. //$field_item['field_name'] = 'mobile';
  42. //$field_item['error'] = EXIST_ERROR;
  43. //$res['status'] = 0;
  44. //$res['data'] = $field_item;
  45. $res['error'] = '手机号已存在';
  46. $res['status'] = 0;
  47. return $res;
  48. }*/
  49. if($user_data['identify_number']!=''&& !isCreditNo($user_data['identify_number']) &&$update_status!=1)
  50. {
  51. $res['error'] = '请填写正确的身份证号码';
  52. $res['status'] = 0;
  53. return $res;
  54. }
  55. //验证结束开始插入数据
  56. $user_data['nick_name'] = htmlspecialchars_decode($user_data['nick_name']);
  57. if(trim($user_data['nick_name'])!=''){
  58. $user['nick_name'] = trim($user_data['nick_name']);
  59. //检查昵称
  60. if(strlen($user['nick_name'])>60){
  61. $res['error'] = "昵称太长";
  62. $res['status'] =0;
  63. return $res;
  64. }
  65. }
  66. if($user_data['create_time']||$user_data['id']){
  67. $user['update_time'] = get_gmtime();
  68. }else{
  69. $user['create_time'] = get_gmtime();
  70. }
  71. //禁播
  72. if(isset($user_data['is_ban']))
  73. $user['is_ban'] = intval($user_data['is_ban']);
  74. if(intval($user_data['is_ban'])){
  75. $user['ban_time'] = 0;
  76. }else{
  77. if(isset($user_data['ban_time'])){
  78. $ban_time = strim($user_data['ban_time']);
  79. $user['ban_time'] = $ban_time!=''?to_timespan($ban_time):0;
  80. }
  81. }
  82. //机器人
  83. if(isset($user_data['is_robot'])){
  84. $user['is_robot'] = intval($user_data['is_robot']);
  85. }
  86. if(isset($user_data['user_level']))
  87. $user['user_level'] = intval($user_data['user_level']);
  88. if(isset($user_data['is_authentication']))
  89. $user['is_authentication'] = intval($user_data['is_authentication']);
  90. if(isset($user_data['authentication_type']))
  91. $user['authentication_type'] = strim($user_data['authentication_type']);
  92. if(isset($user_data['identify_number']))
  93. $user['identify_number'] = strim($user_data['identify_number']);
  94. if(isset($user_data['authentication_name']))
  95. $user['authentication_name'] = strim($user_data['authentication_name']);
  96. if(isset($user_data['contact']))
  97. $user['contact'] = strim($user_data['contact']);
  98. if(isset($user_data['from_platform']))
  99. $user['from_platform'] = strim($user_data['from_platform']);
  100. if(isset($user_data['wiki']))
  101. $user['wiki'] = strim($user_data['wiki']);
  102. if(isset($user_data['province']))
  103. $user['province'] = $user_data['province'];
  104. if(isset($user_data['city']))
  105. $user['city'] = $user_data['city'];
  106. if(isset($user_data['sex']))
  107. $user['sex'] = intval($user_data['sex']);
  108. if(isset($user_data['is_edit_sex']))
  109. $user['is_edit_sex'] = intval($user_data['is_edit_sex']);
  110. if(isset($user_data['intro']))
  111. $user['intro'] = strim($user_data['intro']);
  112. $head_image = strim($user_data['head_image']);
  113. if($head_image){
  114. $user['head_image'] = del_domain_url($head_image);
  115. }
  116. $thumb_head_image = strim($user_data['thumb_head_image']);
  117. if($thumb_head_image){
  118. $user['thumb_head_image'] = del_domain_url($thumb_head_image);
  119. }
  120. if(isset($user_data['signature']))
  121. $user['signature'] = htmlspecialchars_decode(trim($user_data['signature']));
  122. if(isset($user_data['job']))
  123. $user['job'] = htmlspecialchars_decode(trim($user_data['job']));
  124. if(isset($user_data['job_age']))
  125. $user['job_age'] = htmlspecialchars_decode(trim($user_data['job_age']));
  126. if($user_data['birthday']!=''){
  127. $user['birthday'] = $user_data['birthday'];
  128. }
  129. if(isset($user_data['emotional_state']))
  130. $user['emotional_state']=strim($user_data['emotional_state']);
  131. if(isset($user_data['identify_hold_image']))
  132. $user['identify_hold_image']=strim($user_data['identify_hold_image']);
  133. if(isset($user_data['identify_positive_image']))
  134. $user['identify_positive_image']=strim($user_data['identify_positive_image']);
  135. if(isset($user_data['identify_nagative_image']))
  136. $user['identify_nagative_image']=strim($user_data['identify_nagative_image']);
  137. if(isset($user_data['v_explain']))
  138. $user['v_explain']=strim($user_data['v_explain']);
  139. if(isset($user_data['user_type']))
  140. $user['user_type'] = intval($user_data['user_type']);
  141. if(isset($user_data['score']))
  142. $user['score'] = intval($user_data['score']);
  143. //验证结束开始插入数据(这里没写user模块写不进去)
  144. //会员状态
  145. if(intval($user_data['is_effect'])!=0)
  146. {
  147. $user['is_effect'] = $user_data['is_effect'];
  148. }else{
  149. $user['is_effect'] =1;
  150. }
  151. if(isset($user_data['mobile']) && strim($user_data['mobile'])){
  152. $user['mobile'] = strim($user_data['mobile']);
  153. }
  154. if(isset($user_data['v_explain']) && strim($user_data['v_explain'])){
  155. $user['v_explain'] = strim($user_data['v_explain']);
  156. }
  157. if(isset($user_data['v_icon']) && strim($user_data['v_icon'])){
  158. $user['v_icon'] = strim($user_data['v_icon']);
  159. }
  160. if(isset($user_data['authent_list_id']) && strim($user_data['authent_list_id'])){
  161. $user['authent_list_id'] = strim($user_data['authent_list_id']);
  162. }
  163. if(isset($user_data['is_authentication'])){
  164. if(intval($user_data['is_authentication'])==3 || intval($user_data['is_authentication'])==1 || intval($user_data['is_authentication'])==0){
  165. $user['v_icon'] = '';
  166. $user['v_explain'] = '';
  167. }
  168. }
  169. if(isset($user_data['is_admin']))
  170. $user['is_admin'] = intval($user_data['is_admin']);
  171. if(isset($user_data['user_status']))
  172. $user['user_status'] = intval($user_data['user_status']);
  173. if(isset($user_data['user_source']))
  174. $user['user_source'] = intval($user_data['user_source']);
  175. if(isset($user_data['user_net_worth']))
  176. $user['user_net_worth'] = intval($user_data['user_net_worth']);
  177. if(isset($user_data['sign_status']))
  178. $user['sign_status'] = intval($user_data['sign_status']);
  179. if(isset($user_data['sign_time']))
  180. $user['sign_time'] = intval($user_data['sign_time']);
  181. if(isset($user_data['birth_place']))
  182. $user['birth_place'] = strim($user_data['birth_place']);
  183. if(isset($user_data['postal_address']))
  184. $user['postal_address'] = strim($user_data['postal_address']);
  185. if(isset($user_data['consignee_name']))
  186. $user['consignee_name'] = strim($user_data['consignee_name']);
  187. if(isset($user_data['consignee_code']))
  188. $user['consignee_code'] = strim($user_data['consignee_code']);
  189. if(isset($user_data['phone_number']))
  190. $user['phone_number'] = strim($user_data['phone_number']);
  191. if(isset($user_data['facsimile_code']))
  192. $user['facsimile_code'] = strim($user_data['facsimile_code']);
  193. if(isset($user_data['assistant_name']))
  194. $user['assistant_name'] = strim($user_data['assistant_name']);
  195. if(isset($user_data['assistant_mobile']))
  196. $user['assistant_mobile'] = strim($user_data['assistant_mobile']);
  197. if(isset($user_data['assistant_wx_num']))
  198. $user['assistant_wx_num'] = strim($user_data['assistant_wx_num']);
  199. if(isset($user_data['assistant_email']))
  200. $user['assistant_email'] = strim($user_data['assistant_email']);
  201. if(isset($user_data['mobile1']))
  202. $user['mobile1'] = strim($user_data['mobile1']);
  203. if(isset($user_data['wx_num']))
  204. $user['wx_num'] = strim($user_data['wx_num']);
  205. if(isset($user_data['wx_num1']))
  206. $user['wx_num1'] = strim($user_data['wx_num1']);
  207. if(isset($user_data['qq_num']))
  208. $user['qq_num'] = strim($user_data['qq_num']);
  209. if(isset($user_data['email']))
  210. $user['email'] = strim($user_data['email']);
  211. if(isset($user_data['member_type']))
  212. $user['member_type'] = intval($user_data['member_type']);
  213. if(isset($user_data['source_url']))
  214. $user['source_url'] = strim($user_data['source_url']);
  215. if(isset($user_data['pid']))
  216. $user['pid'] = intval($user_data['pid']);
  217. if(isset($user_data['company']))
  218. $user['company'] = strim($user_data['company']);
  219. if(isset($user_data['company_address']))
  220. $user['company_address'] = strim($user_data['company_address']);
  221. if(isset($user_data['income_range']))
  222. $user['income_range'] = intval($user_data['income_range']);
  223. if(isset($user_data['interest']))
  224. $user['interest'] = strim($user_data['interest']);
  225. if(isset($user_data['interest_content']))
  226. $user['interest_content'] = strim($user_data['interest_content']);
  227. if(isset($user_data['speciality']))
  228. $user['speciality'] = strim($user_data['speciality']);
  229. if(isset($user_data['education']))
  230. $user['education'] = intval($user_data['education']);
  231. if(isset($user_data['school']))
  232. $user['school'] = trim($user_data['school']);
  233. if(isset($user_data['is_agent']))
  234. $user['is_agent'] = intval($user_data['is_agent']);
  235. if(isset($user_data['is_canal']))
  236. $user['is_canal'] = intval($user_data['is_canal']);
  237. if(isset($user_data['is_star_share']))
  238. $user['is_star_share'] = intval($user_data['is_star_share']);
  239. if(isset($user_data['real_name']))
  240. $user['real_name'] = strim($user_data['real_name']);
  241. if(isset($user_data['business_card']))
  242. $user['business_card'] = strim($user_data['business_card']);
  243. if(isset($user_data['work_card']))
  244. $user['work_card'] = strim($user_data['work_card']);
  245. if(isset($user_data['work_contract']))
  246. $user['work_contract'] = strim($user_data['work_contract']);
  247. if($mode == 'INSERT')
  248. {
  249. $user['code'] = ''; //默认不使用code, 该值用于其他系统导入时的初次认证
  250. }
  251. else
  252. {
  253. $user['code'] = $GLOBALS['db']->getOne("select code from ".DB_PREFIX."user where id =".$user_data['id']);
  254. }
  255. if($mode == 'INSERT')
  256. {
  257. //需要通过接口的方式,获得一个新用户id
  258. $user_id = get_max_user_id(0);
  259. $user['id'] = $user_id;
  260. $user['user_pwd']= md5(rand(100000,999999));
  261. $where = '';
  262. }
  263. else
  264. {
  265. $where = "id=".intval($user_data['id']);
  266. }
  267. if($GLOBALS['db']->autoExecute(DB_PREFIX."user",$user,$mode,$where))
  268. {
  269. if($mode == 'INSERT')
  270. {
  271. $user_id = $user['id'];
  272. }
  273. else
  274. {
  275. $user_id = $user_data['id'];
  276. //user_deal_to_reids(array($user_id));
  277. }
  278. }
  279. $res['data'] = $user_id;
  280. return $res;
  281. }
  282. function save_mobile_user($user_data,$mode='INSERT')
  283. {
  284. //开始数据验证
  285. $res = array('status'=>1,'info'=>'','data'=>''); //用于返回的数据
  286. if(!check_mobile(trim($user_data['mobile'])))
  287. {
  288. $field_item['field_name'] = 'mobile';
  289. $field_item['error'] = FORMAT_ERROR;
  290. $res['status'] = 0;
  291. $res['data'] = $field_item;
  292. return $res;
  293. }
  294. if($user_data['mobile']!=''&&$GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."user where mobile = '".trim($user_data['mobile'])."'")>0)
  295. {
  296. /*$field_item['field_name'] = 'mobile';
  297. $field_item['error'] = EXIST_ERROR;
  298. $res['status'] = 0;
  299. $res['data'] = $field_item;*/
  300. $res['data'] = $GLOBALS['db']->getOne("select id from ".DB_PREFIX."user where mobile = '".trim($user_data['mobile'])."'");
  301. $res['status'] = 1;
  302. return $res;
  303. }
  304. //检查验证码
  305. if(trim($user_data['verify_coder'])=='')
  306. {
  307. $field_item['field_name'] = 'verify_coder';
  308. $field_item['error'] = EMPTY_ERROR;
  309. $res['status'] = 0;
  310. $res['data'] = $field_item;
  311. return $res;
  312. }
  313. if($GLOBALS['db']->getOne("SELECT count(*) FROM ".DB_PREFIX."mobile_verify_code WHERE mobile=".trim($user_data['mobile'])." AND verify_code='".trim($user_data['verify_coder'])."'")==0)
  314. {
  315. $field_item['field_name'] = 'verify_coder';
  316. $field_item['error'] = FORMAT_ERROR;
  317. $res['status'] = 0;
  318. $res['data'] = $field_item;
  319. return $res;
  320. }
  321. //验证结束开始插入数据
  322. $user['nick_name'] = htmlspecialchars_decode($user_data['nick_name']);
  323. if($user_data['create_time']){
  324. $user['update_time'] = get_gmtime();
  325. }else{
  326. $user['create_time'] = get_gmtime();
  327. }
  328. //禁播
  329. $user['is_ban'] = intval($user_data['is_ban']);
  330. if(intval($user_data['is_ban'])){
  331. $user['ban_time'] = 0;
  332. }else{
  333. $ban_time = strim($user_data['ban_time']);
  334. $user['ban_time'] = $ban_time!=''?to_timespan($ban_time):0;
  335. }
  336. $user['is_authentication'] = intval($user_data['is_authentication']);
  337. $user['authentication_type'] = strim($user_data['authentication_type']);
  338. $user['authentication_name'] = strim($user_data['authentication_name']);
  339. $user['contact'] = strim($user_data['contact']);
  340. $user['from_platform'] = strim($user_data['from_platform']);
  341. $user['wiki'] = strim($user_data['wiki']);
  342. if(strim($user_data['province'])=='')
  343. $user['province'] = '火星';
  344. else
  345. $user['province'] = $user_data['province'];
  346. $user['city'] = $user_data['city'];
  347. if(isset($user_data['sex'])){
  348. if(intval($user_data['sex'])){
  349. $user['sex'] = intval($user_data['sex']);
  350. }else{
  351. $user['sex']=1;
  352. }
  353. }else{
  354. $user['sex']=1;
  355. }
  356. $user['intro'] = strim($user_data['intro']);
  357. if(strim($user_data['head_image'])){
  358. $user['head_image'] = strim($user_data['head_image']);
  359. }
  360. $user['identify_hold_image']=strim($user_data['identify_hold_image']);
  361. $user['identify_positive_image']=strim($user_data['identify_positive_image']);
  362. $user['identify_nagative_image']=strim($user_data['identify_nagative_image']);
  363. $user['v_explain']=strim($user_data['v_explain']);
  364. $user['user_type'] = intval($user_data['user_type']);
  365. if(strim($user_data['emotional_state'])=='')
  366. $user['emotional_state'] ='保密';
  367. if(isset($user_data['signature']))
  368. $user['signature'] = htmlspecialchars_decode(trim($user_data['signature']));
  369. if(strim($user_data['job'])=='')
  370. $user['job'] ='主播';
  371. else
  372. $user['job'] = htmlspecialchars_decode(trim($user_data['job']));
  373. //验证结束开始插入数据(这里没写user模块写不进去)
  374. //会员状态
  375. if(intval($user_data['is_effect'])!=0)
  376. {
  377. $user['is_effect'] = $user_data['is_effect'];
  378. }else{
  379. $user['is_effect'] =1;
  380. }
  381. $user['user_level'] = 1;
  382. $user['login_type'] = 2;
  383. $user['is_remind'] = 1;
  384. //临时测试
  385. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  386. $user['diamonds'] = 1000000;
  387. }
  388. if(strim($user_data['mobile'])){
  389. $user['mobile'] = strim($user_data['mobile']);
  390. }
  391. if($mode == 'INSERT')
  392. {
  393. $user['code'] = ''; //默认不使用code, 该值用于其他系统导入时的初次认证
  394. }
  395. else
  396. {
  397. $user['code'] = $GLOBALS['db']->getOne("select code from ".DB_PREFIX."user where id =".$user_data['id']);
  398. }
  399. if($mode == 'INSERT')
  400. {
  401. //需要通过接口的方式,获得一个新用户id
  402. $user_id = get_max_user_id(0);
  403. $user['id'] = $user_id;
  404. $user['user_pwd']= md5(rand(100000,999999));
  405. $where = '';
  406. }
  407. else
  408. {
  409. $where = "id=".intval($user_data['id']);
  410. }
  411. if($GLOBALS['db']->autoExecute(DB_PREFIX."user",$user,$mode,$where))
  412. {
  413. if($mode == 'INSERT')
  414. {
  415. //===========add start ===========
  416. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  417. $user_redis = new UserRedisService();
  418. //$user_id =$GLOBALS['db']->insert_id();
  419. $ridis_data = $user_redis->reg_data($user);
  420. //redis临时测试
  421. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  422. $ridis_data['diamonds'] = 1000000;
  423. }
  424. $user_redis->insert_db($user_id,$ridis_data);
  425. //===========add end ===========
  426. //$GLOBALS['msg']->manage_msg('MSG_MEMBER_REMIDE',$user_id,array('type'=>'会员注册','content'=>'您于 '.get_client_ip() ."注册成功!"));
  427. }
  428. else
  429. {
  430. $user_id = $user_data['id'];
  431. }
  432. }
  433. $res['data'] = $user_id;
  434. return $res;
  435. }
  436. function update_mobile_user($user_data,$mode='INSERT')
  437. {
  438. //开始数据验证
  439. $res = array('status'=>1,'error'=>'','data'=>''); //用于返回的数据
  440. if(trim($user_data['id'])=='')
  441. {
  442. $res['status'] = 0;
  443. $field_item['error']='用户编号不能为空';
  444. return $res;
  445. }
  446. if($GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."user where id = '".trim($user_data['id'])."'")<=0)
  447. {
  448. $res['status'] = 0;
  449. $field_item['error'] = '用户不存在!';
  450. return $res;
  451. }
  452. $GLOBALS['db']->query("set names 'utf8mb4'");
  453. //验证结束开始插入数据
  454. if(isset($user_data['nick_name']))
  455. $user['nick_name']= htmlspecialchars_decode($user_data['nick_name']);
  456. $user['update_time'] = get_gmtime();
  457. if(isset($user_data['sex'])){
  458. $user['sex'] = intval($user_data['sex']);
  459. }else{
  460. $user['sex'] = 1;
  461. }
  462. if(isset($user_data['head_image']))
  463. $user['head_image'] = trim($user_data['head_image']);
  464. if(isset($user_data['thumb_head_image']))
  465. $user['thumb_head_image'] = trim($user_data['thumb_head_image']);
  466. //验证结束开始插入数据(这里没写user模块写不进去)
  467. $where = "id=".intval($user_data['id']);
  468. if($GLOBALS['db']->autoExecute(DB_PREFIX."user",$user,$mode,$where))
  469. {
  470. $user_id = $user_data['id'];
  471. es_cookie::set("nick_name",$user['nick_name'],3600*24*30);
  472. }
  473. $res['data'] = $user_id;
  474. //更新redis
  475. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  476. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  477. $user_redis = new UserRedisService();
  478. $user_redis->update_db($user_id,$user);
  479. return $res;
  480. }
  481. /**
  482. * 删除会员以及相关数据
  483. * @param integer $id
  484. */
  485. function delete_user($id)
  486. {
  487. $result = 1;
  488. if($result>0)
  489. {
  490. //$GLOBALS['db']->query("delete from ".DB_PREFIX."user_consignee where user_id = ".$id);
  491. $GLOBALS['db']->query("delete from ".DB_PREFIX."user_log where user_id = ".$id);
  492. $GLOBALS['db']->query("delete from ".DB_PREFIX."user_refund where user_id = ".$id);
  493. //$GLOBALS['db']->query("delete from ".DB_PREFIX."user_weibo where user_id = ".$id);
  494. //$GLOBALS['db']->query("delete from ".DB_PREFIX."user_consignee where user_id = ".$id);
  495. //$GLOBALS['db']->query("delete from ".DB_PREFIX."referrals where user_id = ".$id);
  496. //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_comment where user_id = ".$id);
  497. //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_focus_log where user_id = ".$id);
  498. //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_log where user_id = ".$id);
  499. $GLOBALS['db']->query("delete from ".DB_PREFIX."deal_msg_list where user_id = ".$id);
  500. //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_order where user_id = ".$id);
  501. //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_log where user_id = ".$id);
  502. //$GLOBALS['db']->query("delete from ".DB_PREFIX."deal_support_log where user_id = ".$id);
  503. $GLOBALS['db']->query("delete from ".DB_PREFIX."payment_notice where user_id = ".$id);
  504. $GLOBALS['db']->query("delete from ".DB_PREFIX."user where id =".$id); //删除会员
  505. }
  506. }
  507. /**
  508. * 会员资金积分变化操作函数
  509. * @param array $data 包括 diamonds
  510. * @param integer $user_id
  511. * @param string $log_msg 日志内容
  512. * @param array $param 要插入的数组
  513. */
  514. function modify_account($data,$user_id,$log_msg='',$param=array())
  515. {
  516. /*$diamonds=intval($data['diamonds']);
  517. if ($diamonds < 0){
  518. $diamonds = abs($diamonds);
  519. $sql = "update ".DB_PREFIX."user set diamonds = diamonds - ".$diamonds." where diamonds >= ".$diamonds." and id =".$user_id;
  520. $log_msg1 = '扣除钻石';
  521. }else{
  522. $sql = "update ".DB_PREFIX."user set diamonds = diamonds + ".$diamonds." where id =".$user_id;
  523. $log_msg1 = '增加钻石';
  524. }*/
  525. $money = floatval($data['money']);
  526. if ($money < 0){
  527. $money = abs($money);
  528. $sql = "update ".DB_PREFIX."user set money = money - ".$money." where money >= ".$money." and id =".$user_id;
  529. $log_msg1 = '扣除钻石';
  530. }else{
  531. $sql = "update ".DB_PREFIX."user set money = money + ".$money." where id =".$user_id;
  532. $log_msg1 = '增加钻石';
  533. }
  534. if($log_msg==''){
  535. $log_msg = $log_msg1;
  536. }
  537. $GLOBALS['db']->query($sql);
  538. if($GLOBALS['db']->affected_rows()){
  539. //user_deal_to_reids(array($user_id));
  540. //写入日志
  541. account_log($data,$user_id,$log_msg,$param);
  542. return true;
  543. }else{
  544. return false;
  545. }
  546. }
  547. /**
  548. * 处理cookie的自动登录
  549. * @param $user_name_or_email 用户名或邮箱
  550. * @param $user_md5_pwd md5加密过的密码
  551. */
  552. function auto_do_login_user($user_id,$user_md5_pwd)
  553. {
  554. $user_data = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where id='".$user_id."' and is_effect = 1");
  555. if($user_data)
  556. {
  557. if(md5($user_data['user_pwd']."_EASE_COOKIE")==$user_md5_pwd)
  558. {
  559. //登录成功自动检测关于会员等级
  560. //user_leverl_syn($user_data);//$user_data 要包括会员id,会员等级,会员信用值
  561. //成功
  562. //$build_count = $GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."deal where is_delete = 0 and is_effect = 1 and user_id = ".$user_data['id']);
  563. //$focus_count = $GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."deal_focus_log where user_id = ".$user_data['id']);
  564. //$support_count = $GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."deal_support_log where user_id = ".$user_data['id']);
  565. $login_root = login_prompt($user_data['id']);
  566. es_session::set("first_login",$login_root['first_login']);
  567. es_session::set("new_level",$login_root['new_level']);
  568. es_session::set("user_info",$user_data);
  569. $GLOBALS['user_info'] = $user_data;
  570. //$GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".get_client_ip()."',login_time= ".get_gmtime().",build_count = $build_count,support_count = $support_count,focus_count = $focus_count where id =".$user_data['id']);
  571. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".get_client_ip()."',login_time= '".to_date(get_gmtime(),'Y-m-d H:i:s')."' where id =".$user_data['id']);
  572. //更新redis
  573. /*fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  574. $user_redis = new UserRedisService();
  575. $user =array();
  576. $user_id = $user_data['id'];
  577. $user['login_ip'] = get_client_ip();
  578. $user['login_time'] = to_date(get_gmtime());
  579. $user_redis->update_db($user_id,$user);*/
  580. }
  581. }
  582. }
  583. /**
  584. * 手机登录
  585. * @param $user_id_or_mobile 手机号
  586. * @param $verify_code 短信验证码
  587. *
  588. */
  589. function do_login_user($user_id_or_mobile,$verify_code)
  590. {
  591. $result = array('status'=>0,'info'=>'','is_lack'=>0);
  592. $user_id_or_mobile=strim($user_id_or_mobile);
  593. $verify_code=strim($verify_code);
  594. if($verify_code==''){
  595. $result['info'] = "请输入验证码";
  596. return $result;
  597. }
  598. if($user_id_or_mobile!=''){
  599. if($user_id_or_mobile!='13888888888'){
  600. if(!check_mobile(trim($user_id_or_mobile)))
  601. {
  602. $result['info'] = '手机格式错误';
  603. return $result;
  604. }
  605. if($GLOBALS['db']->getOne("SELECT count(*) FROM ".DB_PREFIX."mobile_verify_code WHERE mobile=".$user_id_or_mobile." AND verify_code='".$verify_code."'")==0){
  606. $result['info'] = "手机验证码出错";
  607. return $result;
  608. }
  609. }elseif($user_id_or_mobile=='13888888888' && $verify_code !='8888'){
  610. $result['info'] = "手机验证码出错";
  611. return $result;
  612. }
  613. }else{
  614. $result['info'] = "请输入手机号";
  615. return $result;
  616. }
  617. $user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where (id='".$user_id_or_mobile."' or mobile = '".$user_id_or_mobile."' ) and login_type = 2");
  618. $user_id = intval($user['id']);
  619. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  620. $user_redis = new UserRedisService();
  621. if ($user_id > 0){
  622. //登录成功自动检测关于会员等级
  623. $user_data = $user_redis->getRow_db($user_id);
  624. if(!$user_data){
  625. $ridis_data = $user_redis->reg_data($user);
  626. $user_redis->insert_db($user_id,$ridis_data);
  627. $user_data = $user_redis->getRow_db($user_id);
  628. }
  629. }
  630. if(!$user_data)
  631. {
  632. $data['mobile'] = $user_id_or_mobile;
  633. $data['verify_coder'] = $verify_code;
  634. $result = save_mobile_user($data);
  635. $user_data = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where id='".$result['data']."'");
  636. if(empty($user_data['nick_name'])){
  637. $update['nick_name']=$result['data'];
  638. $where = "id=".intval($result['data']);
  639. $GLOBALS['db']->autoExecute(DB_PREFIX."user",$update,UPDATE,$where);
  640. $user_data['nick_name']=$result['data'];
  641. }
  642. $result['user'] = $user_data;
  643. }
  644. else
  645. {
  646. $result['user'] = $user_data;
  647. }
  648. if($user_data['is_effect'] != 1){
  649. $result['info'] = "帐户已被禁用";
  650. }
  651. else
  652. {
  653. $result['status'] =1;
  654. //更新等级
  655. user_leverl_syn($user_data);
  656. $login_time = get_gmtime();
  657. $user_data['login_time'] = $login_time;
  658. //设置cookie
  659. es_cookie::set("client_ip",CLIENT_IP,3600*24*30);
  660. es_cookie::set("nick_name",$user_data['nick_name'],3600*24*30);
  661. es_cookie::set("user_id",$user_data['id'],3600*24*30);
  662. es_cookie::set("user_pwd",md5($user_data['user_pwd']."_EASE_COOKIE"),3600*24*30);
  663. es_cookie::set("PHPSESSID2",es_session::id(),3600*24*30);
  664. //设置session
  665. es_session::set("user_info",$user_data);
  666. $GLOBALS['user_info'] = $user_data;
  667. //修改登录时间之前,获取上一次登录时间,每日首次登录赠送积分
  668. $login_root = login_prompt($user_data['id']);
  669. $result['first_login'] = $login_root['first_login'];
  670. $result['new_level'] = $login_root['new_level'];
  671. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".get_client_ip()."',login_time= '".to_date($login_time)."' where id =".$user_data['id']);
  672. $user_new = $user_redis->getRow_db($user_data['id']);
  673. if($user_new){
  674. $user_redis->update_db($user_data['id'],array("login_time"=>to_date($login_time)));
  675. }
  676. //登录成功 同步信息
  677. accountimport($user_data);
  678. //$GLOBALS['msg']->manage_msg('MSG_MEMBER_REMIDE',$GLOBALS['user_info']['id'],array('type'=>'会员登录','content'=>'您的帐号 '.$GLOBALS['user_info']['user_name'].' 于 '.get_client_ip() ." 登录!"));
  679. }
  680. if($user_data['nick_name']==''||$user_data['head_image']==''){
  681. $result['is_lack'] = 1;
  682. }
  683. $result['user_info']['user_id'] =$user_data['id'];
  684. $result['user_info']['nick_name'] =$user_data['nick_name']?$user_data['nick_name']:'';
  685. $result['user_info']['mobile'] =$user_data['mobile']?$user_data['mobile']:'';
  686. $result['user_info']['head_image'] =get_spec_image($user_data['head_image']);
  687. return $result;
  688. }
  689. /**
  690. * 登出,返回 array('status'=>'',data=>'',msg=>'') msg存放整合接口返回的字符串
  691. */
  692. function loginout_user()
  693. {
  694. $result = array('status'=>1,'info'=>'','data'=>''); //用于返回的数据
  695. $user_info = es_session::get("user_info");
  696. if(!$user_info)
  697. {
  698. return false;
  699. }
  700. else
  701. {
  702. //清除cookie
  703. es_cookie::set("client_ip",'',0);
  704. es_cookie::set("nick_name",'',0);
  705. es_cookie::set("user_id",'',0);
  706. es_cookie::set("user_pwd",'',0);
  707. es_cookie::set("is_agree",'',0);
  708. es_cookie::set("PHPSESSID2",'',0);
  709. //清除session
  710. es_session::delete("user_info");
  711. $GLOBALS['user_info']='';
  712. //写入日志
  713. //$GLOBALS['msg']->manage_msg('MSG_MEMBER_REMIDE',$user_info['id'],array('type'=>'会员登出','content'=>'您的帐号 '.$user_info['user_name'].' 于 '.get_client_ip() ." 登出!"));
  714. return $result;
  715. }
  716. }
  717. /**
  718. * 验证会员数据
  719. */
  720. function check_user($field_name,$field_data)
  721. {
  722. delete_mobile_verify_code();
  723. //开始数据验证
  724. $user_data[$field_name] = $field_data;
  725. $res = array('status'=>1,'info'=>'','data'=>''); //用于返回的数据
  726. if(trim($user_data['user_name'])==''&&$field_name=='user_name')
  727. {
  728. $field_item['field_name'] = 'user_name';
  729. $field_item['error'] = EMPTY_ERROR;
  730. $res['status'] = 0;
  731. $res['data'] = $field_item;
  732. return $res;
  733. }
  734. if(mb_strlen(trim($user_data['user_name']))<4&&$field_name=='user_name')
  735. {
  736. $field_item['field_name'] = 'user_name';
  737. $field_item['error'] = FORMAT_ERROR;
  738. $res['status'] = 0;
  739. $res['data'] = $field_item;
  740. return $res;
  741. }
  742. if($field_name=='user_name'&&$GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."user where user_name = '".trim($user_data['user_name'])."' and id <> ".intval($user_data['id']))>0)
  743. {
  744. $field_item['field_name'] = 'user_name';
  745. $field_item['error'] = EXIST_ERROR;
  746. $res['status'] = 0;
  747. $res['data'] = $field_item;
  748. return $res;
  749. }
  750. if(app_conf("USER_VERIFY")!=2||$user_data['email']!=''){
  751. if($field_name=='email'&&$GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."user where email = '".trim($user_data['email'])."' and id <> ".intval($user_data['id']))>0)
  752. {
  753. $field_item['field_name'] = 'email';
  754. $field_item['error'] = EXIST_ERROR;
  755. $res['status'] = 0;
  756. $res['data'] = $field_item;
  757. return $res;
  758. }
  759. if($field_name=='email'&&trim($user_data['email'])=='')
  760. {
  761. $field_item['field_name'] = 'email';
  762. $field_item['error'] = EMPTY_ERROR;
  763. $res['status'] = 0;
  764. $res['data'] = $field_item;
  765. return $res;
  766. }
  767. if($field_name=='email'&&!check_email(trim($user_data['email'])))
  768. {
  769. $field_item['field_name'] = 'email';
  770. $field_item['error'] = FORMAT_ERROR;
  771. $res['status'] = 0;
  772. $res['data'] = $field_item;
  773. return $res;
  774. }
  775. }
  776. if($field_name=='mobile'&&!check_mobile(trim($user_data['mobile'])))
  777. {
  778. $field_item['field_name'] = 'mobile';
  779. $field_item['error'] = FORMAT_ERROR;
  780. $res['status'] = 0;
  781. $res['data'] = $field_item;
  782. return $res;
  783. }
  784. if($field_name=='mobile'&&$user_data['mobile']!=''&&$GLOBALS['db']->getOne("select count(*) from ".DB_PREFIX."user where mobile = '".trim($user_data['mobile'])."' and id <> ".intval($user_data['id']))>0)
  785. {
  786. $field_item['field_name'] = 'mobile';
  787. $field_item['error'] = EXIST_ERROR;
  788. $res['status'] = 0;
  789. $res['data'] = $field_item;
  790. return $res;
  791. }
  792. if($field_name=='verify_coder'&&(app_conf("USER_VERIFY")==2||app_conf("USER_VERIFY")==4)){
  793. if(strim($_REQUEST['verify_coder'])==''){
  794. $field_item['field_name'] = 'verify_coder';
  795. $field_item['error'] = EMPTY_ERROR;
  796. $res['status'] = 0;
  797. $res['data'] = $field_item;
  798. return $res;
  799. }
  800. if(!check_verify_coder(trim($_REQUEST['verify_coder']))){
  801. $field_item['field_name'] = 'verify_coder';
  802. $field_item['error'] = FORMAT_ERROR;
  803. $res['status'] = 0;
  804. $res['data'] = $field_item;
  805. return $res;
  806. }
  807. $check_code_sql="SELECT count(*) FROM ".DB_PREFIX."mobile_verify_code WHERE mobile=".strim($_REQUEST['mobile'])." AND verify_code='".trim($_REQUEST['verify_coder'])."'";
  808. if($GLOBALS['db']->getOne($check_code_sql)==0)
  809. {
  810. $field_item['field_name'] = 'verify_coder';
  811. $field_item['error'] = EXIST_ERROR;
  812. $res['status'] = 0;
  813. $res['data'] = $field_item;
  814. return $res;
  815. }
  816. }
  817. if($field_name=='verify_coder_email'&&(app_conf("USER_VERIFY")==1||app_conf("USER_VERIFY")==4)){
  818. if(strim($_REQUEST['verify_coder_email'])==''){
  819. $field_item['field_name'] = 'verify_coder_email';
  820. $field_item['error'] = EMPTY_ERROR;
  821. $res['status'] = 0;
  822. $res['data'] = $field_item;
  823. return $res;
  824. }
  825. if(!check_verify_coder(trim($_REQUEST['verify_coder_email']))){
  826. $field_item['field_name'] = 'verify_coder_email';
  827. $field_item['error'] = FORMAT_ERROR;
  828. $res['status'] = 0;
  829. $res['data'] = $field_item;
  830. return $res;
  831. }
  832. $check_code_sql="SELECT count(*) FROM ".DB_PREFIX."mobile_verify_code WHERE email='".strim($_REQUEST['email'])."' AND verify_code='".trim($_REQUEST['verify_coder_email'])."'";
  833. if($GLOBALS['db']->getOne($check_code_sql)==0)
  834. {
  835. $field_item['field_name'] = 'verify_coder_email';
  836. $field_item['error'] = EXIST_ERROR;
  837. $res['status'] = 0;
  838. $res['data'] = $field_item;
  839. return $res;
  840. }
  841. }
  842. return $res;
  843. }
  844. /**
  845. * 会员资金积分变化操作函数
  846. * @param array $data 包括 money
  847. * @param integer $user_id
  848. * @param string $log_msg 日志内容
  849. * @param array $param 要插入的数组
  850. */
  851. function modify_account_ben($data,$user_id,$log_msg='',$param=array())
  852. {
  853. $user_money=$GLOBALS['db']->getOne("select money from ".DB_PREFIX."user where id=".$user_id);
  854. $money=$data['money'];
  855. if(($user_money+$money)>=0){
  856. if(floatval($data['money'])!=0)
  857. {
  858. $sql = "update ".DB_PREFIX."user set money = money + ".floatval($data['money'])." where id =".$user_id;
  859. $GLOBALS['db']->query($sql);
  860. }
  861. if(floatval($data['ben_money'])!=0){
  862. licai_log($data,$user_id);
  863. }
  864. elseif(floatval($data['money'])!=0)
  865. {
  866. $log_info['log_info'] = $log_msg;
  867. $log_info['log_time'] = get_gmtime();
  868. $adm_session = es_session::get(md5(app_conf("AUTH_KEY")));
  869. $user_info = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where is_effect = 1 and id = ".$user_id);
  870. $adm_id = intval($adm_session['adm_id']);
  871. if($adm_id!=0)
  872. {
  873. $log_info['log_admin_id'] = $adm_id;
  874. }
  875. if(is_array($param)&&count($param)>0){
  876. foreach($param as $k=>$v){
  877. $log_info[$k] = $v;
  878. }
  879. }
  880. $log_info['money'] = floatval($data['money']);
  881. $log_info['user_id'] = $user_id;
  882. $GLOBALS['db']->autoExecute(DB_PREFIX."user_log",$log_info);
  883. }
  884. return true;
  885. }else{
  886. return false;
  887. }
  888. }
  889. /*
  890. * 获取用户信息
  891. * @param $field_data 会员ID
  892. * @param $field_name 查询的字段名称
  893. */
  894. function get_user_info($field_name,$field_data){
  895. //$get_user_sql= "select * from ".DB_PREFIX."user where id=".$field_data;
  896. $get_user_info = $GLOBALS['db']->getOne("select $field_name from ".DB_PREFIX."user where id=".$field_data);
  897. return $get_user_info;
  898. }
  899. /**
  900. * 获取QQ好友资料
  901. *
  902. * @param object $sdk OpenApiV3 Object
  903. * @param string $openid openid
  904. * @param string $openkey openkey
  905. * @param string $pf 平台
  906. * @return array 好友资料数组
  907. */
  908. function get_qq_user_info($sdk, $openid, $openkey, $pf)
  909. {
  910. $params = array(
  911. 'openid' => $openid,
  912. 'openkey' => $openkey,
  913. 'pf' => $pf,
  914. );
  915. $script_name = '/v3/user/get_info';
  916. return $sdk->api($script_name, $params,'post');
  917. }
  918. function wxxMakeUser($wx_info){
  919. if($wx_info['unionid']!=""||$wx_info['openid']!=""){
  920. $has_user = false;
  921. if($wx_info['unionid'])
  922. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where wx_unionid = '".$wx_info['unionid']."' and login_type = 0 ");
  923. if(!$has_user && $wx_info['openid'])
  924. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where wx_openid='".$wx_info['openid']."' and login_type = 0 ");
  925. //===========add start ===========
  926. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  927. $user_redis = new UserRedisService();
  928. //===========add end ===========
  929. if(!$has_user){
  930. //需要通过接口的方式,获得一个新用户id
  931. $user_id = get_max_user_id(0);
  932. $data=array();
  933. $data['id'] = $user_id ;
  934. $GLOBALS['db']->query("set names 'utf8mb4'");
  935. $data['nick_name']= htmlspecialchars_decode($wx_info['nickname']);
  936. $data['user_name']= htmlspecialchars_decode($wx_info['nickname']);
  937. $data['is_effect'] = 1;
  938. if($wx_info['headimgurl']!=''){
  939. $root = get_image_path();
  940. $save_name= get_gmtime().$user_id.".jpg";
  941. $image_file_domain = ".".$root['save_rec_Path'].$save_name;
  942. $image_file =$root['savePath'].$save_name;
  943. ini_set('default_socket_timeout', 1);
  944. @file_put_contents ( $image_file, file_get_contents ( $wx_info['headimgurl']));
  945. $data['head_image']= $image_file_domain;
  946. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  947. {
  948. syn_to_remote_image_server($image_file_domain);
  949. }
  950. }else{
  951. $data['head_image']= get_domain().'/theme/images/defaulthead.png';
  952. }
  953. $data['wx_openid']= $wx_info['openid'];
  954. $data['wx_unionid']= $wx_info['unionid'];
  955. $data['create_time']= NOW_TIME;
  956. $data['user_pwd']= md5(rand(100000,999999));
  957. $data['login_ip'] = CLIENT_IP;
  958. $data['synchronize'] = 0;
  959. $data['emotional_state'] ='保密';
  960. $data['province'] = '火星';
  961. $data['job'] = '主播';
  962. $data['user_level'] = 1;
  963. $data['login_type'] = 0;
  964. $data['is_remind'] = 1;
  965. if(intval(es_cookie::get("REFERRAL_USER"))>0){
  966. $data['pid'] = intval(es_cookie::get("REFERRAL_USER"));
  967. }
  968. //临时测试
  969. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  970. $data['diamonds'] = 1000000;
  971. }
  972. if($wx_info['sex']==1){
  973. $data['sex'] = 1;
  974. }elseif($wx_info['sex']==2){
  975. $data['sex'] = 2;
  976. }else{
  977. $data['sex'] = 1;
  978. }
  979. $GLOBALS['db']->autoExecute(DB_PREFIX."user",$data);
  980. //===========add start ===========
  981. $ridis_data = $user_redis->reg_data($data);
  982. //redis临时测试
  983. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  984. $ridis_data['diamonds'] = 1000000;
  985. }
  986. $user_redis->insert_db($user_id,$ridis_data);
  987. $user_info = $data;
  988. //===========add end ===========
  989. }else{
  990. if($has_user['is_effect'] != 1){
  991. $return['status'] = 0;
  992. $return['error'] = "帐户已被禁用";
  993. $return['data'] =$has_user['id'];
  994. return $return;
  995. }else{
  996. $user_info = $has_user;
  997. //===========add end ===========
  998. }
  999. }
  1000. es_session::set("user_info", $user_info);
  1001. //设置session过期时间一个月
  1002. es_session::setGcMaxLifetime('2592000');
  1003. //file_put_contents(APP_ROOT_PATH."/public/condition.txt", print_r(es_session::get("user_info"),1),FILE_APPEND);
  1004. es_cookie::set("client_ip",CLIENT_IP,3600*24*30);
  1005. //es_cookie::set("login_time",NEW_TIME,3600*24*30);
  1006. es_cookie::set("nick_name",$user_info['nick_name'],3600*24*30);
  1007. es_cookie::set("user_id",$user_info['id'],3600*24*30);
  1008. es_cookie::set("user_pwd",md5($user_info['user_pwd']."_EASE_COOKIE"),3600*24*30);
  1009. es_cookie::set("PHPSESSID2",es_session::id(),3600*24*30);
  1010. if($user_info['id']!=''){
  1011. //登录成功 同步信息
  1012. accountimport($user_info);
  1013. //修改登录时间之前,获取上一次登录时间,每日首次登录赠送积分
  1014. $login_root = login_prompt($user_info['id']);
  1015. $return['first_login'] = $login_root['first_login'];
  1016. $return['new_level'] = $login_root['new_level'];
  1017. $now_time = NOW_TIME;
  1018. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".CLIENT_IP."',login_time='".to_date($now_time,"Y-m-d H:i:s")."',wx_unionid = '".$wx_info['unionid']."' where id =".$user_info['id']);
  1019. //===========add start ===========
  1020. $data =array();
  1021. $data['login_ip'] = CLIENT_IP;
  1022. $data['login_time'] = to_date($now_time);
  1023. $data['wx_unionid'] = $wx_info['unionid'];
  1024. $user_redis->update_db($user_info['id'],$data);
  1025. $m_config = load_auto_cache("m_config");//初始化手机端配置
  1026. //判断昵称是否包含敏感词汇
  1027. if($m_config['name_limit']==1) {
  1028. //登录过滤铭感词汇
  1029. $nick_name = $user_info['nick_name'];
  1030. $limit_sql = $GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name");
  1031. //判断用户名是否含有铭感词汇,如果包含,替换
  1032. if ($GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name WHERE '$nick_name' like concat('%',name,'%')")) {
  1033. $user_info['nick_name'] = str_replace($limit_sql, '*', $nick_name);
  1034. }
  1035. $name = $user_info['nick_name'];
  1036. $id = $user_info['id'];
  1037. //更新数据库
  1038. $sql = "update " . DB_PREFIX . "user set nick_name = '$name',sex={$data['sex']} where id=" . $id;
  1039. $GLOBALS['db']->query($sql);
  1040. //更新redis
  1041. user_deal_to_reids(array($id));
  1042. }
  1043. $return['status'] = 1;
  1044. $return['error'] = "微信登录成功";
  1045. $return['data'] = $user_info['id'];
  1046. $return['user_id'] = $user_info['id'];
  1047. $return['nick_name'] = $user_info['nick_name'];
  1048. $return['is_agree'] = intval($user_info['is_agree']);//是否同意直播协议 0 表示不同意 1表示同意
  1049. $return['user_info']['user_id'] =$user_info['id'];
  1050. $return['user_info']['nick_name'] =$user_info['nick_name'];
  1051. $return['user_info']['mobile'] =$user_info['mobile'];
  1052. $return['user_info']['head_image'] =get_spec_image($user_info['head_image']);
  1053. }else{
  1054. $return['status'] = 0;
  1055. $return['error'] = "微信登录失败";
  1056. $return['data'] =$user_info['id'];
  1057. }
  1058. }else{
  1059. $return['status'] = 0;
  1060. $return['error'] = "未获取用户授权";
  1061. }
  1062. return $return;
  1063. }
  1064. //微信登陆
  1065. function wxMakeUser($wx_info){
  1066. if($wx_info['unionid']!=""||$wx_info['openid']!=""){
  1067. $has_user = false;
  1068. if($wx_info['unionid'])
  1069. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where wx_unionid = '".$wx_info['unionid']."'");
  1070. if(!$has_user && $wx_info['openid'])
  1071. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where wx_openid='".$wx_info['openid']."'");
  1072. if(!$has_user){
  1073. //需要通过接口的方式,获得一个新用户id
  1074. $user_id = get_max_user_id(0);
  1075. $data=array();
  1076. $data['id'] = $user_id ;
  1077. $GLOBALS['db']->query("set names 'utf8mb4'");
  1078. $data['nick_name']= htmlspecialchars_decode($wx_info['nickname']);
  1079. $data['user_name']= htmlspecialchars_decode($wx_info['nickname']);
  1080. $data['is_effect'] = 1;
  1081. if($wx_info['headimgurl']!=''){
  1082. $root = get_image_path();
  1083. $save_name= get_gmtime().$user_id.".jpg";
  1084. $image_file_domain = ".".$root['save_rec_Path'].$save_name;
  1085. $image_file =$root['savePath'].$save_name;
  1086. ini_set('default_socket_timeout', 1);
  1087. @file_put_contents ( $image_file, file_get_contents ( $wx_info['headimgurl']));
  1088. $data['head_image']= $image_file_domain;
  1089. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  1090. {
  1091. syn_to_remote_image_server($image_file_domain);
  1092. }
  1093. }else{
  1094. $data['head_image']= get_domain().'/theme/images/defaulthead.png';
  1095. }
  1096. $data['wx_openid']= $wx_info['openid'];
  1097. $data['wx_unionid']= $wx_info['unionid'];
  1098. $data['create_time']= NOW_TIME;
  1099. $data['user_pwd']= md5(rand(100000,999999));
  1100. $data['login_ip'] = CLIENT_IP;
  1101. $data['synchronize'] = 0;
  1102. $data['emotional_state'] ='保密';
  1103. $data['province'] = '火星';
  1104. $data['job'] = '主播';
  1105. $data['user_level'] = 1;
  1106. $data['login_type'] = 0;
  1107. $data['is_remind'] = 1;
  1108. if($wx_info['sex']==1){
  1109. $data['sex'] = 1;
  1110. }elseif($wx_info['sex']==2){
  1111. $data['sex'] = 2;
  1112. }else{
  1113. $data['sex'] = 1;
  1114. }
  1115. $GLOBALS['db']->autoExecute(DB_PREFIX."user",$data);
  1116. //同步微店,生成数据
  1117. fanwe_require(APP_ROOT_PATH.'Fanwewd.php');
  1118. $fanwewd=new Fanwewd();
  1119. $shop_user_id=$fanwewd->createUser($user_id, $data['nick_name']);
  1120. //$fanwewd->getUserLoginUrl($shop_user_id);
  1121. $data['shop_user_id'] = $shop_user_id;
  1122. $sql=" update ".DB_PREFIX."user set shop_user_id=".$shop_user_id." where id=".$user_id;
  1123. $GLOBALS['db']->query($sql);
  1124. $user_info = $data;
  1125. }else{
  1126. if($has_user['is_effect'] != 1){
  1127. $return['status'] = 0;
  1128. $return['error'] = "帐户已被禁用";
  1129. $return['data'] =$has_user['id'];
  1130. return $return;
  1131. }else{
  1132. $user_info = $has_user;
  1133. }
  1134. }
  1135. es_session::set("user_info", $user_info);
  1136. es_session::setGcMaxLifetime('2592000');
  1137. es_cookie::set("client_ip",CLIENT_IP,3600*24*30);
  1138. es_cookie::set("nick_name",$user_info['nick_name'],3600*24*30);
  1139. es_cookie::set("user_id",$user_info['id'],3600*24*30);
  1140. es_cookie::set("user_pwd",md5($user_info['user_pwd']."_EASE_COOKIE"),3600*24*30);
  1141. es_cookie::set("PHPSESSID2",es_session::id(),3600*24*30);
  1142. if($user_info['id']!=''){
  1143. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".CLIENT_IP."',login_time='".to_date($now_time,"Y-m-d H:i:s")."',wx_unionid = '".$wx_info['unionid']."' where id =".$user_info['id']);
  1144. //===========add start ===========
  1145. $data =array();
  1146. $data['login_ip'] = CLIENT_IP;
  1147. $data['login_time'] = to_date($now_time);
  1148. $data['wx_unionid'] = $wx_info['unionid'];
  1149. $m_config = load_auto_cache("m_config");//初始化手机端配置
  1150. //判断昵称是否包含敏感词汇
  1151. if($m_config['name_limit']==1) {
  1152. //登录过滤铭感词汇
  1153. $nick_name = $user_info['nick_name'];
  1154. $limit_sql = $GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name");
  1155. //判断用户名是否含有铭感词汇,如果包含,替换
  1156. if ($GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name WHERE '$nick_name' like concat('%',name,'%')")) {
  1157. $user_info['nick_name'] = str_replace($limit_sql, '*', $nick_name);
  1158. }
  1159. $name = $user_info['nick_name'];
  1160. $id = $user_info['id'];
  1161. //更新数据库
  1162. $sql = "update " . DB_PREFIX . "user set nick_name = '$name',sex={$data['sex']} where id=" . $id;
  1163. $GLOBALS['db']->query($sql);
  1164. }
  1165. $return['status'] = 1;
  1166. $return['error'] = "微信登录成功";
  1167. $return['data'] = $user_info['id'];
  1168. $return['user_id'] = $user_info['id'];
  1169. $return['nick_name'] = $user_info['nick_name'];
  1170. $return['is_agree'] = intval($user_info['is_agree']);//是否同意直播协议 0 表示不同意 1表示同意
  1171. $return['user_info']['user_id'] =$user_info['id'];
  1172. $return['user_info']['nick_name'] =$user_info['nick_name'];
  1173. $return['user_info']['mobile'] =$user_info['mobile'];
  1174. $return['user_info']['head_image'] =get_spec_image($user_info['head_image']);
  1175. }else{
  1176. $return['status'] = 0;
  1177. $return['error'] = "微信登录失败";
  1178. $return['data'] =$user_info['id'];
  1179. }
  1180. }else{
  1181. $return['status'] = 0;
  1182. $return['error'] = "未获取用户授权";
  1183. }
  1184. return $return;
  1185. }
  1186. //
  1187. function qqMakeUser($qq_info){
  1188. if($qq_info['openid']!=""){
  1189. $has_user = false;
  1190. if($qq_info['openid'])
  1191. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where qq_openid='".$qq_info['openid']."' ");
  1192. //性别
  1193. if($qq_info['gender']=='男'){
  1194. $sex =1;
  1195. }elseif($qq_info['gender']=='女'){
  1196. $sex =2;
  1197. }else{
  1198. $sex =1;
  1199. }
  1200. //===========add start ===========
  1201. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  1202. $user_redis = new UserRedisService();
  1203. //===========add end ===========
  1204. if(!$has_user){
  1205. //需要通过接口的方式,获得一个新用户id
  1206. $user_id = get_max_user_id(0);
  1207. $data=array();
  1208. $data['id'] = $user_id ;
  1209. $data['nick_name']= htmlspecialchars_decode($qq_info['nickname']);
  1210. $data['is_effect'] = 1;
  1211. if($qq_info['figureurl_qq_2']!=''){
  1212. $root = get_image_path();
  1213. $save_name= get_gmtime().$user_id.".jpg";
  1214. $image_file_domain = ".".$root['save_rec_Path'].$save_name;
  1215. $image_file =$root['savePath'].$save_name;
  1216. ini_set('default_socket_timeout', 1);
  1217. @file_put_contents ( $image_file, file_get_contents ($qq_info['figureurl_qq_2']));
  1218. $data['head_image']= $image_file_domain;
  1219. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  1220. {
  1221. syn_to_remote_image_server($image_file_domain);
  1222. }
  1223. }else{
  1224. $data['head_image']= get_domain().'/app/theme/demo/images/defaulthead.png';
  1225. }
  1226. if($qq_info['figureurl_qq_1']!=''){
  1227. $root = get_image_path();
  1228. $save_name= get_gmtime().$user_id.".jpg";
  1229. $image_file_domain = ".".$root['save_rec_Path'].$save_name;
  1230. $image_file =$root['savePath'].$save_name;
  1231. ini_set('default_socket_timeout', 1);
  1232. @file_put_contents ( $image_file, file_get_contents ($qq_info['figureurl_qq_1']));
  1233. $data['thumb_head_image']= $image_file_domain;
  1234. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  1235. {
  1236. syn_to_remote_image_server($image_file_domain);
  1237. }
  1238. }else{
  1239. $data['thumb_head_image']= get_domain().'/theme/images/defaulthead.png';
  1240. }
  1241. $data['sex']= $sex;
  1242. $data['province']= $qq_info['province'];
  1243. $data['city']= $qq_info['city'];
  1244. $data['qq_openid']= $qq_info['openid'];
  1245. $data['create_time']= NOW_TIME;
  1246. $data['user_pwd']= md5(rand(100000,999999));
  1247. $data['login_ip'] = CLIENT_IP;
  1248. $data['synchronize'] = 0;
  1249. $data['emotional_state'] ='保密';
  1250. if($data['city']==''&&$data['province']==''){
  1251. $data['province'] = '火星';
  1252. }
  1253. $data['job'] = '主播';
  1254. $data['user_level'] = 1;
  1255. $data['login_type'] = 1;
  1256. $data['is_remind'] = 1;//默认开通推送
  1257. //临时测试
  1258. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  1259. $data['diamonds'] = 1000000;
  1260. }
  1261. $has_user_info = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where qq_openid='".$qq_info['openid']."' ");
  1262. if(intval($has_user_info['id'])==0){
  1263. $GLOBALS['db']->autoExecute(DB_PREFIX."user",$data);
  1264. $user_info = $data;
  1265. }else{
  1266. $user_info = $has_user_info;
  1267. }
  1268. //===========add start ===========
  1269. $ridis_data = $user_redis->reg_data($data);
  1270. //redis临时测试
  1271. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  1272. $ridis_data['diamonds'] = 1000000;
  1273. }
  1274. $user_redis->insert_db($user_id,$ridis_data);
  1275. //===========add end ===========
  1276. }else{
  1277. if($has_user['is_effect'] != 1){
  1278. $return['status'] = 0;
  1279. $return['error'] = "帐户已被禁用";
  1280. $return['data'] =$has_user['id'];
  1281. return $return;
  1282. }else{
  1283. $user_info = $has_user;
  1284. //===========add end ===========
  1285. }
  1286. }
  1287. es_session::set("user_info", $user_info);
  1288. //设置session过期时间一个月
  1289. es_session::setGcMaxLifetime('2592000');
  1290. es_cookie::set("client_ip",CLIENT_IP,3600*24*30);
  1291. es_cookie::set("nick_name",$user_info['nick_name'],3600*24*30);
  1292. es_cookie::set("user_id",$user_info['id'],3600*24*30);
  1293. es_cookie::set("user_pwd",md5($user_info['user_pwd']."_EASE_COOKIE"),3600*24*30);
  1294. es_cookie::set("PHPSESSID2",es_session::id(),3600*24*30);
  1295. if($user_info['id']!=''){
  1296. //登录成功 同步信息
  1297. accountimport($user_info);
  1298. //修改登录时间之前,获取上一次登录时间,每日首次登录赠送积分
  1299. $login_root = login_prompt($user_info['id']);
  1300. $return['first_login'] = $login_root['first_login'];
  1301. $return['new_level'] = $login_root['new_level'];
  1302. $now_time = NOW_TIME;
  1303. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".CLIENT_IP."',login_time='".to_date($now_time,"Y-m-d H:i:s")."',qq_openid = '".$qq_info['openid']."' where id =".$user_info['id']);
  1304. //===========add start ===========
  1305. $data =array();
  1306. $data['login_ip'] = CLIENT_IP;
  1307. $data['login_time'] = to_date($now_time);
  1308. $data['qq_openid'] = $qq_info['openid'];
  1309. $user_redis->update_db($user_info['id'],$data);
  1310. $m_config = load_auto_cache("m_config");//初始化手机端配置
  1311. //判断昵称是否包含敏感词汇
  1312. if($m_config['name_limit']==1) {
  1313. //登录过滤铭感词汇
  1314. $nick_name = $user_info['nick_name'];
  1315. $limit_sql = $GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name");
  1316. //判断用户名是否含有铭感词汇,如果包含,替换
  1317. if ($GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name WHERE '$nick_name' like concat('%',name,'%')")) {
  1318. $user_info['nick_name'] = str_replace($limit_sql, '*', $nick_name);
  1319. }
  1320. $name = $user_info['nick_name'];
  1321. $id = $user_info['id'];
  1322. //更新数据库
  1323. $sql = "update " . DB_PREFIX . "user set nick_name = '$name',sex={$sex} where id=" . $id;
  1324. $GLOBALS['db']->query($sql);
  1325. //更新redis
  1326. user_deal_to_reids(array($id));
  1327. }
  1328. $return['status'] = 1;
  1329. $return['error'] = "QQ登录成功";
  1330. $return['data'] = $user_info['id'];
  1331. $return['user_id'] = $user_info['id'];
  1332. $return['nick_name'] = $user_info['nick_name'];
  1333. $return['is_agree'] = intval($user_info['is_agree']);//是否同意直播协议 0 表示不同意 1表示同意
  1334. $return['user_info']['user_id'] =$user_info['id'];
  1335. $return['user_info']['nick_name'] =$user_info['nick_name'];
  1336. $return['user_info']['mobile'] =$user_info['mobile'];
  1337. $return['user_info']['head_image'] =get_spec_image($user_info['head_image']);
  1338. }
  1339. else{
  1340. $return['status'] = 0;
  1341. $return['error'] = "QQ登录失败";
  1342. $return['data'] ='';
  1343. }
  1344. }else{
  1345. $return['status'] = 0;
  1346. $return['error'] = "未获取用户授权";
  1347. }
  1348. return $return;
  1349. }
  1350. //
  1351. function sinaMakeUser($sina_info){
  1352. if($sina_info['sina_id']!=""){
  1353. $has_user = false;
  1354. if($sina_info['sina_id'])
  1355. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where sina_id='".$sina_info['sina_id']."' ");
  1356. //性别
  1357. if($sina_info['gender']=='m'){
  1358. $sex =1;
  1359. }elseif($sina_info['gender']=='f'){
  1360. $sex =2;
  1361. }else{
  1362. $sex =1;
  1363. }
  1364. //===========add start ===========
  1365. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  1366. $user_redis = new UserRedisService();
  1367. //===========add end ===========
  1368. if(!$has_user){
  1369. //需要通过接口的方式,获得一个新用户id
  1370. $user_id = get_max_user_id(0);
  1371. $data=array();
  1372. $data['id'] = $user_id ;
  1373. $GLOBALS['db']->query("set names 'utf8mb4'");
  1374. $data['nick_name']= htmlspecialchars_decode($sina_info['screen_name']);
  1375. $data['is_effect'] = 1;
  1376. if($sina_info['avatar_hd']!=''){
  1377. $root = get_image_path();
  1378. $save_name= get_gmtime().$user_id.".jpg";
  1379. $image_file_domain = ".".$root['save_rec_Path'].$save_name;
  1380. $image_file =$root['savePath'].$save_name;
  1381. ini_set('default_socket_timeout', 1);
  1382. @file_put_contents ( $image_file, file_get_contents ($sina_info['avatar_hd']));
  1383. $data['head_image']= $image_file_domain;
  1384. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  1385. {
  1386. syn_to_remote_image_server($image_file_domain);
  1387. }
  1388. }else{
  1389. $data['head_image']= get_domain().'/theme/images/defaulthead.png';
  1390. }
  1391. if($sina_info['avatar_large']!=''){
  1392. $root = get_image_path();
  1393. $save_name= get_gmtime().$user_id.".jpg";
  1394. $image_file_domain = ".".$root['save_rec_Path'].$save_name;
  1395. $image_file =$root['savePath'].$save_name;
  1396. ini_set('default_socket_timeout', 1);
  1397. @file_put_contents ( $image_file, file_get_contents ($sina_info['avatar_large']));
  1398. $data['thumb_head_image']= $image_file_domain;
  1399. if($GLOBALS['distribution_cfg']['OSS_TYPE']&&$GLOBALS['distribution_cfg']['OSS_TYPE']!='NONE')
  1400. {
  1401. syn_to_remote_image_server($image_file_domain);
  1402. }
  1403. }else{
  1404. $data['thumb_head_image']= get_domain().'/theme/images/defaulthead.png';
  1405. }
  1406. $data['sex']=$sex;
  1407. $data['sina_id']= $sina_info['sina_id'];
  1408. $data['create_time']= NOW_TIME;
  1409. $data['user_pwd']= md5(rand(100000,999999));
  1410. $data['login_ip'] = CLIENT_IP;
  1411. $data['synchronize'] = 0;
  1412. $data['emotional_state'] ='保密';
  1413. $data['province'] = '火星';
  1414. $data['job'] = '主播';
  1415. $data['user_level'] = 1;
  1416. $data['login_type'] = 3;
  1417. $data['is_remind'] = 1;//默认开通推送
  1418. //临时测试
  1419. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  1420. $data['diamonds'] = 1000000;
  1421. }
  1422. $GLOBALS['db']->autoExecute(DB_PREFIX."user",$data);
  1423. $user_info = $data;
  1424. //===========add start ===========
  1425. $ridis_data = $user_redis->reg_data($data);
  1426. //redis临时测试
  1427. if(defined('OPEN_TEST')&&OPEN_TEST==1){
  1428. $ridis_data['diamonds'] = 1000000;
  1429. }
  1430. $user_redis->insert_db($user_id,$ridis_data);
  1431. //===========add end ===========
  1432. }else{
  1433. if($has_user['is_effect'] != 1){
  1434. $return['status'] = 0;
  1435. $return['error'] = "帐户已被禁用";
  1436. $return['data'] =$has_user['id'];
  1437. return $return;
  1438. }else{
  1439. $user_info = $has_user;
  1440. //===========add end ===========
  1441. }
  1442. }
  1443. es_session::set("user_info", $user_info);
  1444. //设置session过期时间一个月
  1445. es_session::setGcMaxLifetime('2592000');
  1446. es_cookie::set("client_ip",CLIENT_IP,3600*24*30);
  1447. es_cookie::set("nick_name",$user_info['nick_name'],3600*24*30);
  1448. es_cookie::set("user_id",$user_info['id'],3600*24*30);
  1449. es_cookie::set("user_pwd",md5($user_info['user_pwd']."_EASE_COOKIE"),3600*24*30);
  1450. es_cookie::set("PHPSESSID2",es_session::id(),3600*24*30);
  1451. if($user_info['id']!=''){
  1452. //登录成功 同步信息
  1453. accountimport($user_info);
  1454. //修改登录时间之前,获取上一次登录时间,每日首次登录赠送积分
  1455. $login_root = login_prompt($user_info['id']);
  1456. $return['first_login'] = $login_root['first_login'];
  1457. $return['new_level'] = $login_root['new_level'];
  1458. $now_time = NOW_TIME;
  1459. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".CLIENT_IP."',login_time='".to_date($now_time,"Y-m-d H:i:s")."',sina_id = '".$sina_info['sina_id']."' where id =".$user_info['id']);
  1460. //===========add start ===========
  1461. $data =array();
  1462. $data['login_ip'] = CLIENT_IP;
  1463. $data['login_time'] = to_date($now_time);
  1464. $data['sina_id'] = $sina_info['sina_id'];
  1465. $user_redis->update_db($user_info['id'],$data);
  1466. //登录过滤铭感词汇
  1467. $m_config = load_auto_cache("m_config");//初始化手机端配置
  1468. //判断昵称是否包含敏感词汇
  1469. if($m_config['name_limit']==1) {
  1470. $nick_name = $user_info['nick_name'];
  1471. $limit_sql = $GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name");
  1472. //判断用户名是否含有铭感词汇,如果包含,替换
  1473. if ($GLOBALS['db']->getCol("SELECT name FROM " . DB_PREFIX . "limit_name WHERE '$nick_name' like concat('%',name,'%')")) {
  1474. $user_info['nick_name'] = str_replace($limit_sql, '*', $nick_name);
  1475. }
  1476. $name = $user_info['nick_name'];
  1477. $id = $user_info['id'];
  1478. //更新数据库
  1479. $sql = "update " . DB_PREFIX . "user set nick_name = '$name',sex={$sex} where id=" . $id;
  1480. $GLOBALS['db']->query($sql);
  1481. //更新redis
  1482. user_deal_to_reids(array($id));
  1483. }
  1484. $return['status'] = 1;
  1485. $return['error'] = "登录成功";
  1486. $return['data'] = $user_info['id'];
  1487. $return['user_id'] = $user_info['id'];
  1488. $return['nick_name'] = $user_info['nick_name'];
  1489. $return['is_agree'] = intval($user_info['is_agree']);//是否同意直播协议 0 表示不同意 1表示同意
  1490. $return['user_info']['user_id'] =$user_info['id'];
  1491. $return['user_info']['nick_name'] =$user_info['nick_name'];
  1492. $return['user_info']['mobile'] =$user_info['mobile'];
  1493. $return['user_info']['head_image'] =get_spec_image($user_info['head_image']);
  1494. }
  1495. else{
  1496. $return['status'] = 0;
  1497. $return['error'] = "登录失败";
  1498. $return['data'] ='';
  1499. }
  1500. }else{
  1501. $return['status'] = 0;
  1502. $return['error'] = "未获取用户授权";
  1503. }
  1504. return $return;
  1505. }
  1506. // 购物直播SDK
  1507. function sdkMakeUser($sdk_user_info){
  1508. if($sdk_user_info['shop_user_id']!=""){
  1509. $has_user = false;
  1510. if($sdk_user_info['shop_user_id'])
  1511. $has_user = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where shop_user_id='".$sdk_user_info['shop_user_id']."' ");
  1512. //===========add start ===========
  1513. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  1514. $user_redis = new UserRedisService();
  1515. //===========add end ===========
  1516. $now_time = NOW_TIME;
  1517. if(!$has_user){
  1518. //需要通过接口的方式,获得一个新用户id
  1519. $user_id = get_max_user_id(0);
  1520. $data=array();
  1521. $data['id'] = $user_id ;
  1522. $GLOBALS['db']->query("set names 'utf8mb4'");
  1523. $data['nick_name']= htmlspecialchars_decode($sdk_user_info['nick_name']);
  1524. $data['is_effect'] = 1;
  1525. if($sdk_user_info['head_image']!=''){
  1526. $data['head_image']= $sdk_user_info['head_image'];
  1527. }else{
  1528. $data['head_image']= get_domain().'/theme/images/defaulthead.png';
  1529. }
  1530. if($sdk_user_info['thumb_head_image']!=''){
  1531. $data['thumb_head_image']= $sdk_user_info['thumb_head_image'];
  1532. }else{
  1533. $data['thumb_head_image']= get_domain().'/theme/images/defaulthead.png';
  1534. }
  1535. $data['sex']= $sdk_user_info['sex'];
  1536. $data['is_shop']= $sdk_user_info['is_shop'];
  1537. $data['shop_user_id']= $sdk_user_info['shop_user_id'];
  1538. $data['create_time']= NOW_TIME;
  1539. $data['user_pwd']= md5(rand(100000,999999));
  1540. $data['login_ip'] = CLIENT_IP;
  1541. $data['login_time'] = to_date($now_time);
  1542. $data['synchronize'] = 0;
  1543. $data['emotional_state'] ='保密';
  1544. $data['province'] = '火星';
  1545. $data['job'] = '主播';
  1546. $data['user_level'] = 1;
  1547. $data['login_type'] = 4;
  1548. $data['is_remind'] = 1;//默认开通推送
  1549. $GLOBALS['db']->autoExecute(DB_PREFIX."user",$data);
  1550. $user_info = $data;
  1551. //===========add start ===========
  1552. $ridis_data = $user_redis->reg_data($data);
  1553. $user_redis->insert_db($user_id,$ridis_data);
  1554. //===========add end ===========
  1555. }else{
  1556. if($has_user['is_effect'] != 1){
  1557. $return['status'] = 0;
  1558. $return['error'] = "帐户已被禁用";
  1559. $return['data'] =$has_user['id'];
  1560. return $return;
  1561. }else{
  1562. $user_id = $has_user['id'];
  1563. $user_info = $has_user;
  1564. $GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".CLIENT_IP."',login_time='".to_date(NOW_TIME,"Y-m-d H:i:s")."' where id =".$user_id);
  1565. //===========add start ===========
  1566. $data =array();
  1567. $data['login_ip'] = CLIENT_IP;
  1568. $data['login_time'] = to_date($now_time);
  1569. $user_redis->update_db($user_id,$data);
  1570. //===========add end ===========
  1571. }
  1572. }
  1573. //es_session::set_sessid($sdk_user_info['session_id']);
  1574. es_session::set("user_info", $user_info);
  1575. //设置session过期时间一个月
  1576. es_session::setGcMaxLifetime('2592000');
  1577. if($user_info['id']!=''){
  1578. //登录成功 同步信息
  1579. accountimport($user_info);
  1580. $return['status'] = 1;
  1581. $return['error'] = "登录成功";
  1582. $return['video_user_id'] = $user_info['id'];
  1583. $return['session_id'] = $sdk_user_info['session_id'];
  1584. //设置cookie
  1585. es_cookie::set("client_ip",CLIENT_IP,3600*24*30);
  1586. es_cookie::set("nick_name",$user_info['nick_name'],3600*24*30);
  1587. es_cookie::set("user_id",$user_info['id'],3600*24*30);
  1588. es_cookie::set("user_pwd",md5($user_info['user_pwd']."_EASE_COOKIE"),3600*24*30);
  1589. es_cookie::set("PHPSESSID2",$sdk_user_info['session_id'],3600*24*30);
  1590. es_session::set("user_id", $has_user['id']);
  1591. es_session::set("user_pwd", md5($has_user['user_pwd']."_EASE_COOKIE"));
  1592. }
  1593. else{
  1594. $return['status'] = 0;
  1595. $return['error'] = "登录失败";
  1596. $return['data'] ='';
  1597. }
  1598. }else{
  1599. $return['status'] = 0;
  1600. $return['error'] = "请填写购物系统用户ID";
  1601. }
  1602. return $return;
  1603. }
  1604. //同步登陆信息
  1605. function accountimport($user_info){
  1606. if($user_info['synchronize'] == 0){
  1607. require_once(APP_ROOT_PATH.'system/tim/TimApi.php');
  1608. $api = createTimAPI();
  1609. $ret = $api->account_import((string)$user_info['id'], (string)$user_info['nick_name'], get_spec_image($user_info['head_image']));
  1610. if($ret['ErrorCode']==0){
  1611. $GLOBALS['db']->query("update ".DB_PREFIX."user set synchronize = 1 where id =".intval($user_info['id']));
  1612. }
  1613. //更新redis
  1614. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  1615. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  1616. $user_redis = new UserRedisService();
  1617. $user_id = $user_info['id'];
  1618. $user = array();
  1619. $user['synchronize'] = 1;
  1620. $user_redis->update_db($user_id,$user);
  1621. }else{
  1622. }
  1623. }
  1624. //更新微信opendid
  1625. function wxUser_update($wx_info,$user_id){
  1626. $m_config = load_auto_cache("m_config");//初始化手机端配置
  1627. if($wx_info['unionid']!=""||$wx_info['openid']!=""){
  1628. $has_wx_info = false;
  1629. if($wx_info['unionid'])
  1630. $has_wx_info = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where wx_unionid = '".$wx_info['unionid']."' and id=".$user_id);
  1631. if(!$has_wx_info && $wx_info['openid'])
  1632. $has_wx_info = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where wx_openid='".$wx_info['openid']."' and id=".$user_id);
  1633. //===========add start ===========
  1634. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  1635. $user_redis = new UserRedisService();
  1636. //===========add end ===========
  1637. if(!$has_wx_info){
  1638. $status = $GLOBALS['db']->query("update ".DB_PREFIX."user set wx_openid = '".$wx_info['openid']."',wx_unionid = '".$wx_info['unionid']."' where id =".$user_id);
  1639. //===========add start ===========
  1640. $data =array();
  1641. $data['wx_openid'] = $wx_info['openid'];
  1642. $data['wx_unionid'] = $wx_info['unionid'];
  1643. $user_redis->update_db($user_id,$data);
  1644. }else{
  1645. /*$return['status'] = 0;
  1646. $return['error'] = "wx_openid已存在,无法写入!";
  1647. return $return;*/
  1648. $status = 1;
  1649. }
  1650. if($status){
  1651. //登录成功 同步信息
  1652. $return['status'] = 1;
  1653. $return['error'] = "您已成功绑定微信,请手动关注".$m_config['subscription'];
  1654. $user_info= $GLOBALS['db']->getRow("select subscribe,wx_openid,mobile from ".DB_PREFIX."user where id=".$user_id);
  1655. $return['subscribe'] =$user_info['subscribe'];
  1656. if($user_info['wx_openid']!='')
  1657. $return['binding_wx'] = 1;
  1658. else
  1659. $return['binding_wx'] = 0;
  1660. if($user_info['mobile']!='')
  1661. $return['mobile_exist'] = 1;
  1662. else
  1663. $return['mobile_exist'] = 0;
  1664. }else{
  1665. $return['status'] = 0;
  1666. $return['error'] = "账号绑定微信失败";
  1667. }
  1668. }else{
  1669. $return['status'] = 0;
  1670. $return['error'] = "未获取用户授权";
  1671. }
  1672. return $return;
  1673. }
  1674. /**
  1675. * 会员日志变化操作函数
  1676. * @param array $data 包括 diamonds
  1677. * @param integer $user_id
  1678. * @param string $log_msg 日志内容
  1679. * @param array $param 要插入的数组
  1680. */
  1681. function account_log($data,$user_id,$log_msg='',$param=array())
  1682. {
  1683. if($user_id>0&&$log_msg!=''){
  1684. //写入日志
  1685. $type = intval($param['type'])>0?$param['type']:0;
  1686. $diamonds = abs($data['diamonds'])?abs($data['diamonds']):0;
  1687. $ticket = intval($data['ticket'])?intval($data['ticket']):0;
  1688. $score = intval($data['score'])?intval($data['score']):0;
  1689. $video_id = intval($data['video_id'])?intval($data['video_id']):0;
  1690. if(intval($param['is_admin'])){
  1691. $adm_session = es_session::get(md5(conf("AUTH_KEY")));
  1692. $adm_id = intval($adm_session['adm_id']);
  1693. }else{
  1694. $adm_id = 0;
  1695. }
  1696. $money = floatval($data['money']);
  1697. $user_log = array();
  1698. $user_log['log_info'] =$log_msg;
  1699. $user_log['log_time'] =get_gmtime();
  1700. $user_log['log_admin_id'] =$adm_id;
  1701. $user_log['user_id'] =$user_id;
  1702. $user_log['type'] =$type;
  1703. $user_log['diamonds'] =$diamonds;
  1704. $user_log['ticket'] =$ticket;
  1705. $user_log['score'] =$score;
  1706. $user_log['video_id'] =$video_id;
  1707. $user_log['money'] = $money;
  1708. $where = " id =".$user_id;
  1709. $GLOBALS['db']->autoExecute(DB_PREFIX."user_log",$user_log,'INSERT',$where);
  1710. }
  1711. }
  1712. //获得用户头像存储路劲
  1713. function get_image_path(){
  1714. $dir_name = to_date(get_gmtime(),"Ym");
  1715. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  1716. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  1717. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  1718. }
  1719. $dir_name = $dir_name."/".to_date(get_gmtime(),"d");
  1720. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  1721. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  1722. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  1723. }
  1724. $dir_name = $dir_name."/".to_date(get_gmtime(),"H");
  1725. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name)) {
  1726. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name);
  1727. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name, 0777);
  1728. }
  1729. $save_rec_Path = "/public/attachment/".$dir_name."/origin/"; //上传时先存放原图
  1730. $savePath = APP_ROOT_PATH."public/attachment/".$dir_name."/origin/"; //绝对路径
  1731. if (!is_dir(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/")) {
  1732. @mkdir(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/");
  1733. @chmod(APP_ROOT_PATH."public/attachment/".$dir_name."/origin/", 0777);
  1734. }
  1735. $root['save_rec_Path'] = $save_rec_Path;
  1736. $root['savePath'] = $savePath;
  1737. return $root;
  1738. }
  1739. //支付宝认证更新user
  1740. function AuthentAlipayUser($user_data){
  1741. //开始数据验证
  1742. $res = array('status'=>1,'error'=>'','data'=>''); //用于返回的数据
  1743. if(trim($user_data['id'])=='')
  1744. {
  1745. $res['status'] = 0;
  1746. $res['error']='用户编号不能为空';
  1747. return $res;
  1748. }
  1749. if(isset($user_data['alipay_user_id']))
  1750. $user['alipay_user_id']= $user_data['alipay_user_id'];
  1751. if(isset($user_data['alipay_name']))
  1752. $user['alipay_name']= $user_data['alipay_name'];
  1753. if(isset($user_data['alipay_authent_token']))
  1754. $user['alipay_authent_token']= $user_data['alipay_authent_token'];
  1755. if(isset($user_data['v_type']))
  1756. $user['v_type']= $user_data['v_type'];
  1757. $user_id = intval($user_data['id']);
  1758. $where = "id=".$user_id;
  1759. if(intval($GLOBALS['db']->getOne("select id from fanwe_user where v_type=3 and id=".$user_id." and alipay_authent_token <>''")))
  1760. {
  1761. $res['status'] = 0;
  1762. $res['error']='用户支付宝已认证';
  1763. return $res;
  1764. }
  1765. if($GLOBALS['db']->autoExecute(DB_PREFIX."user",$user,'UPDATE',$where))
  1766. {
  1767. //更新redis
  1768. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  1769. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  1770. $user_redis = new UserRedisService();
  1771. $user_redis->update_db($user_id,$user);
  1772. $res['status'] = 1;
  1773. $res['error']='认证成功!';
  1774. }
  1775. return $res;
  1776. }
  1777. ?>