LuckNumAction.class.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. <?php
  2. class LuckNumAction extends CommonAction{
  3. //检查模块开关是否开启
  4. public function check_Module(){
  5. if(OPEN_LUCK_NUM == 0){
  6. $this->error("模块开关关闭");
  7. }
  8. }
  9. public function index()
  10. {
  11. $data = $_REQUEST;
  12. $this->check_Module();
  13. //查询昵称
  14. if (trim($data['nick_name'] != '')){
  15. $parameter = "nick_name like " . urlencode ( '%'.trim($data['nick_name']).'%' ) . "&";
  16. $sql_w = "nick_name like '%".trim($data['nick_name'])."%' and ";
  17. }
  18. //查询靓号
  19. if (intval($data['luck_num'] > 0)){
  20. $parameter.= "luck_num=" . intval($data['luck_num']). "&";
  21. $sql_w .= "l.luck_num=".intval($data['luck_num'])." and ";
  22. }
  23. //是否卖出
  24. if ($data['is_sale'] != ''){
  25. if (intval($data['is_sale']) == 1){
  26. $parameter.= "is_sale=" . intval($data['is_sale']). "&";
  27. $sql_w .= "is_sale=".intval($data['is_sale'])." and ";
  28. }elseif(intval($data['is_sale']) == 0){
  29. $parameter.= "is_sale=" . intval($data['is_sale']). "&";
  30. $sql_w .= "is_sale=".intval($data['is_sale'])." and ";
  31. }
  32. }
  33. $model = D();
  34. $sql_str = "SELECT l.*,u.nick_name,u.id as user_id FROM ".DB_PREFIX
  35. ."luck_num AS l LEFT OUTER JOIN ".DB_PREFIX."user AS u ON l.luck_num = u.luck_num"
  36. ." WHERE 1=1" . " AND " .$sql_w . " 1=1 ORDER BY l.luck_num ASC";//取出靓号表中的数据,到user表中取靓号昵称
  37. $count_sql = "SELECT count(*) as tpcount FROM ".DB_PREFIX
  38. ."luck_num AS l LEFT OUTER JOIN ".DB_PREFIX."user AS u ON l.luck_num = u.luck_num"
  39. ." WHERE 1=1" . " AND " .$sql_w . " 1=1 ORDER BY l.luck_num ASC";
  40. $volist = $this->_Sql_list($model,$sql_str,'&'.$parameter,'',0,$count_sql);
  41. foreach ($volist as $k => $v) {
  42. $volist[$k]['nick_name'] = emoji_decode($v['nick_name']);
  43. }
  44. $this->assign("list", $volist);
  45. $this->display();
  46. }
  47. public function del_luck_num(){
  48. $this->check_Module();
  49. $ajax = intval($_REQUEST['ajax']);
  50. $id =$_REQUEST['id'];
  51. if (isset($id)){
  52. $condition = array ('id' => array ('in', explode ( ',', $id ) ) );
  53. $rel_data = M(MODULE_NAME)->where($condition)->findAll();
  54. foreach($rel_data as $data)
  55. {
  56. $info[] = $data['lucknum'];
  57. //验证所选靓号是否存在已售出
  58. if(M(MODULE_NAME)->where("is_sale = 1 and id=".$data['id'])->count()>0)
  59. {
  60. $this->error ($data['luck_num'].'该号码正在被使用',$ajax);
  61. }
  62. }
  63. if($info) $info = implode(",",$info);
  64. $result = M(MODULE_NAME)->where($condition)->delete();
  65. if ($result!==false){
  66. //成功
  67. save_log($info.l("FOREVER_DELETE_SUCCESS"),1);
  68. $this->success(l("FOREVER_DELETE_SUCCESS"),$ajax);
  69. }else {
  70. //失败
  71. save_log($info.l("FOREVER_DELETE_FAILED"),0);
  72. $this->error (l("FOREVER_DELETE_FAILED"),$ajax);
  73. }
  74. } else {
  75. $this->error (l("INVALID_OPERATION"),$ajax);
  76. }
  77. }
  78. //进入编辑页
  79. public function edit(){
  80. $this->check_Module();
  81. $id = intval($_REQUEST['id']);
  82. $num_data = M(MODULE_NAME)->where('id='.$id)->find();//根据ID获取靓号相关数据
  83. if (intval($num_data['is_sale']) == 1){
  84. $condition['id'] = $num_data['luck_num'];
  85. $vo = M('user')->where($condition)->find();
  86. }
  87. $vo['luck_num'] = $num_data['luck_num'];
  88. $vo['is_sale'] = $num_data['is_sale'];
  89. $vo['price'] = $num_data['price'];
  90. $vo['id'] = $id;
  91. $this->assign('vo',$vo);
  92. $region_lv2 = $GLOBALS['db']->getAll("select * from ".DB_PREFIX."region_conf where region_level = 2 order by py asc"); //二级地址
  93. $this->assign("region_lv2",$region_lv2);
  94. //会员等级信息
  95. $user_level = $GLOBALS['db']->getAll("select * from ".DB_PREFIX."user_level order by level ASC");
  96. $this->assign("user_level",$user_level);
  97. //认证类型
  98. $authent_list = M("AuthentList")->findAll();
  99. $this->assign("authent_list",$authent_list);
  100. $this->display();
  101. }
  102. public function add(){
  103. $this->check_Module();
  104. $this->display();
  105. }
  106. //编辑价格
  107. public function set_price(){
  108. $this->check_Module();
  109. $model = M(MODULE_NAME);
  110. $data['id'] = intval($_REQUEST['id']);
  111. $data['price'] = intval($_REQUEST['price']);
  112. $res = $model->save($data);
  113. if ($res === false){
  114. $this->ajaxReturn(array("status"=>0,"error"=>"更新价格失败"));
  115. }else{
  116. $this->ajaxReturn(array("status"=>1,"error"=>"更新价格成功"));
  117. }
  118. }
  119. //卖出靓号
  120. public function update(){
  121. B('FilterString');
  122. filter_request($_REQUEST);
  123. $this->check_Module();
  124. $num_data = M(MODULE_NAME)->create();//取得要更新的靓号数据
  125. if(!check_empty($num_data['luck_num'])){
  126. $this->error("靓号不能为空");
  127. }
  128. if(intval($_REQUEST['is_new_user']) === 0){
  129. //是老用户,将靓号号码写入即可
  130. $user['id'] = $_REQUEST['user_id'];
  131. $id_user = M('user')->where("id=".$user['id'])->getField('id');//购买用户的id
  132. if($id_user == 0){
  133. $this->error("用户ID不存在");
  134. }
  135. //检查用户是否已有靓号
  136. $user_luck_num = M('user')->where('id='.$user['id'])->getField('luck_num');
  137. if ($user_luck_num > 0){
  138. M(MODULE_NAME)->where('luck_num='.$user_luck_num)->setField('is_sale',0);
  139. }
  140. $user['luck_num'] = $_REQUEST['luck_num'];
  141. $where = "id=".$user['id'];
  142. if(!$GLOBALS['db']->autoExecute(DB_PREFIX."user",$user,"UPDATE",$where)){
  143. //写入失败
  144. $log_info = $user['luck_num'];
  145. save_log($log_info.L("UPDATE_FAILED"),0);
  146. $this->error(L("UPDATE_FAILED"),0);
  147. }
  148. $this->assign("jumpUrl",u(MODULE_NAME."/index"));//成功后跳转到首页
  149. //同步到redis
  150. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  151. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  152. $user_redis = new UserRedisService();
  153. $user_redis->update_db($user['id'],$user);
  154. }else{
  155. if(!check_empty($_REQUEST['mobile'])){
  156. $this->error("手机号不能为空");
  157. }
  158. //是新用户的情况下
  159. $_REQUEST['id'] = get_max_user_id();
  160. $_REQUEST['nick_name'] = trim($_REQUEST['nick_name']);
  161. $_REQUEST['mobile'] = trim($_REQUEST['mobile']);
  162. $is_mobile = $GLOBALS['db']->getOne("select mobile from ".DB_PREFIX."user where mobile ='".$_REQUEST['mobile']."'",true,true);
  163. //手机号重复
  164. if($is_mobile)
  165. {
  166. $this->error('该手机号已注册');
  167. }
  168. $is_reg = $GLOBALS['db']->getOne("select nick_name from ".DB_PREFIX."user where nick_name ='".$_REQUEST['nick_name']."'",true,true);
  169. //昵称重复
  170. if($is_reg)
  171. {
  172. $this->error('该昵称已存在');
  173. }
  174. //更新用户表
  175. if($_REQUEST['v_explain']==''){
  176. $_REQUEST['v_explain'] = $_REQUEST['authentication_type'];
  177. }
  178. $_REQUEST['v_icon'] = get_spec_image(M('AuthentList')->where("name='".trim($_REQUEST['authentication_type']."'"))->getField("icon"));
  179. $_REQUEST['score'] = $GLOBALS['db']->getOne("select score from ".DB_PREFIX."user_level where `level`=".$_REQUEST['user_level'],true,true);
  180. $_REQUEST['login_type'] = 2;
  181. $res = $this->save_user($_REQUEST,'INSERT',$update_status=1);
  182. //写入失败
  183. if($res['status']==0)
  184. {
  185. $this->error($res['info']);
  186. }
  187. }
  188. //写入成功,更新靓号表
  189. $num_data['is_sale'] = 1;//标记为卖出
  190. $result_num = M(MODULE_NAME)->save($num_data);
  191. if ($result_num === false){
  192. //错误
  193. save_log(L("UPDATE_FAILED"),0);
  194. $this->error(L("UPDATE_FAILED"),0);
  195. }
  196. $log_info = $_REQUEST['nick_name'];
  197. $this->assign("jumpUrl",u(MODULE_NAME."/index"));//成功后跳转到首页
  198. save_log($log_info.L("INSERT_SUCCESS"),1);
  199. $this->success(L("INSERT_SUCCESS"));
  200. }
  201. public function insert(){
  202. B('FilterString');
  203. $this->check_Module();
  204. $data = M(MODULE_NAME)->create();
  205. $data['luck_num'] = intval($data['luck_num']);
  206. $data['price'] = intval($data['price']);
  207. if(!check_empty($data['luck_num'])){
  208. $this->error("靓号不能为空");
  209. }
  210. if ($data['luck_num'] <= 0 || $data['price'] <= 0){
  211. $this->error("请输入大于0的数字");
  212. }
  213. //查看需要添加的靓号是否已存在
  214. $condition['luck_num'] = $data['luck_num'];
  215. $count = M(MODULE_NAME)->where($condition)->count();
  216. $count_user = M('User')->where('id='.$data['luck_num'])->count();
  217. if ($count > 0){
  218. $this->error("该靓号已存在");
  219. }
  220. if ($count_user > 0){
  221. $this->error("该账号已经被注册为主播ID");
  222. }
  223. //计算靓号位数
  224. $data['figure'] = strlen($data['luck_num']);
  225. $list = M(MODULE_NAME)->add($data);
  226. if ($list!==false){
  227. //成功
  228. $this->assign("jumpUrl",u(MODULE_NAME."/index"));
  229. save_log(L("INSERT_SUCCESS"),1);
  230. $this->success(L("INSERT_SUCCESS"));
  231. }else{
  232. //错误
  233. save_log(L("INSERT_FAILED"),0);
  234. $this->error(L("INSERT_FAILED"),0);
  235. }
  236. }
  237. //传靓号
  238. public function get_luck_num(){
  239. $this->check_Module();
  240. $id= intval($_REQUEST['id']);
  241. $condition['id'] = $id;
  242. $model = M(MODULE_NAME);
  243. $root= $model->where($condition)->select();
  244. admin_ajax_return($root);
  245. }
  246. //出售状态切换
  247. // public function change_sale(){
  248. // $this->check_Module();
  249. // $id= intval($_REQUEST['id']);
  250. //
  251. // $condition['id'] = $id;
  252. // $model = M(MODULE_NAME);
  253. // $info = $model->where($condition)->getField("luck_num");//取靓号号码
  254. // $old_sale_status = $model->where($condition)->getField('is_sale');
  255. // $new_sale_status = $old_sale_status==0? 1 : 0;//切换状态
  256. //
  257. // $result = $model->where($condition)->setField('is_sale',$new_sale_status);
  258. //
  259. // save_log("靓号".$info.l("CHANGE_SALE_".$new_sale_status),1);
  260. // $this->ajaxReturn($new_sale_status,l("CHANGE_SALE_".$new_sale_status),1);
  261. // }
  262. /**
  263. * 生成会员数据
  264. * @param $user_data 提交[post或get]的会员数据
  265. * @param $mode 处理的方式,注册或保存
  266. * 返回:data中返回出错的字段信息,包括field_name, 可能存在的field_show_name 以及 error 错误常量
  267. * $update_status后台更新标示字段
  268. */
  269. function save_user($user_data,$mode='INSERT',$update_status)
  270. {
  271. //验证结束开始插入数据
  272. $user_data['nick_name'] = htmlspecialchars_decode($user_data['nick_name']);
  273. if(trim($user_data['nick_name'])!=''){
  274. $user['nick_name'] = trim($user_data['nick_name']);
  275. //检查昵称
  276. if(strlen($user['nick_name'])>60){
  277. $res['info'] = "昵称太长";
  278. $res['status'] =0;
  279. return $res;
  280. }
  281. }else{
  282. $res['info'] = "昵称不能为空";
  283. $res['status'] =0;
  284. return $res;
  285. }
  286. $head_image = strim($user_data['head_image']);
  287. if($head_image){
  288. $user['head_image'] = del_domain_url($head_image);
  289. }else{
  290. // $user['head_image'] = "./public/attachment/201608/29/11/57c3ae5abe47d.JPG";
  291. $res['info'] = "请上传头像";
  292. $res['status'] =0;
  293. return $res;
  294. }
  295. //开始数据验证1
  296. $res = array('status'=>1,'info'=>'','data'=>''); //用于返回的数据
  297. if($user_data['mobile']!='' && !check_mobile(trim($user_data['mobile'])))
  298. {
  299. $res['info'] = '手机格式错误:'.$user_data['mobile'];
  300. $res['status'] = 0;
  301. return $res;
  302. }
  303. if($user_data['identify_number']!=''&& !isCreditNo($user_data['identify_number']) &&$update_status!=1)
  304. {
  305. $res['info'] = '请填写正确的身份证号码';
  306. $res['status'] = 0;
  307. return $res;
  308. }
  309. if(isset($user_data['luck_num'])){
  310. $user['luck_num'] = intval($user_data['luck_num']);
  311. }else{
  312. $res['info'] = "缺少靓号";
  313. $res['status'] =0;
  314. return $res;
  315. }
  316. $user['create_time'] = get_gmtime();
  317. //禁播
  318. if(isset($user_data['is_ban']))
  319. $user['is_ban'] = intval($user_data['is_ban']);
  320. if(intval($user_data['is_ban'])){
  321. $user['ban_time'] = 0;
  322. }else{
  323. if(isset($user_data['ban_time'])){
  324. $ban_time = strim($user_data['ban_time']);
  325. $user['ban_time'] = $ban_time!=''?to_timespan($ban_time):0;
  326. }
  327. }
  328. //机器人
  329. if(isset($user_data['is_robot'])){
  330. $user['is_robot'] = intval($user_data['is_robot']);
  331. }
  332. if(isset($user_data['user_level']))
  333. $user['user_level'] = intval($user_data['user_level']);
  334. if(isset($user_data['is_authentication']))
  335. $user['is_authentication'] = intval($user_data['is_authentication']);
  336. if(isset($user_data['authentication_type']))
  337. $user['authentication_type'] = strim($user_data['authentication_type']);
  338. if(isset($user_data['identify_number']))
  339. $user['identify_number'] = strim($user_data['identify_number']);
  340. if(isset($user_data['authentication_name']))
  341. $user['authentication_name'] = strim($user_data['authentication_name']);
  342. if(isset($user_data['contact']))
  343. $user['contact'] = strim($user_data['contact']);
  344. if(isset($user_data['from_platform']))
  345. $user['from_platform'] = strim($user_data['from_platform']);
  346. if(isset($user_data['wiki']))
  347. $user['wiki'] = strim($user_data['wiki']);
  348. if(isset($user_data['province']))
  349. $user['province'] = $user_data['province'];
  350. if(isset($user_data['city']))
  351. $user['city'] = $user_data['city'];
  352. if(isset($user_data['sex']))
  353. $user['sex'] = intval($user_data['sex']);
  354. if(isset($user_data['is_edit_sex']))
  355. $user['is_edit_sex'] = intval($user_data['is_edit_sex']);
  356. if(isset($user_data['intro']))
  357. $user['intro'] = strim($user_data['intro']);
  358. $thumb_head_image = strim($user_data['thumb_head_image']);
  359. if($thumb_head_image){
  360. $user['thumb_head_image'] = del_domain_url($thumb_head_image);
  361. }
  362. if(isset($user_data['signature']))
  363. $user['signature'] = htmlspecialchars_decode(trim($user_data['signature']));
  364. if(isset($user_data['job']))
  365. $user['job'] = htmlspecialchars_decode(trim($user_data['job']));
  366. if($user_data['birthday']!=''){
  367. $user['birthday'] = $user_data['birthday'];
  368. }
  369. if(isset($user_data['emotional_state']))
  370. $user['emotional_state']=strim($user_data['emotional_state']);
  371. if(isset($user_data['identify_hold_image']))
  372. $user['identify_hold_image']=strim($user_data['identify_hold_image']);
  373. if(isset($user_data['identify_positive_image']))
  374. $user['identify_positive_image']=strim($user_data['identify_positive_image']);
  375. if(isset($user_data['identify_nagative_image']))
  376. $user['identify_nagative_image']=strim($user_data['identify_nagative_image']);
  377. if(isset($user_data['v_explain']))
  378. $user['v_explain']=strim($user_data['v_explain']);
  379. if(isset($user_data['user_type']))
  380. $user['user_type'] = intval($user_data['user_type']);
  381. if(isset($user_data['score']))
  382. $user['score'] = intval($user_data['score']);
  383. //验证结束开始插入数据(这里没写user模块写不进去)
  384. //会员状态
  385. if(intval($user_data['is_effect'])!=0)
  386. {
  387. $user['is_effect'] = $user_data['is_effect'];
  388. }else{
  389. $user['is_effect'] =1;
  390. }
  391. if(isset($user_data['mobile']) && strim($user_data['mobile'])){
  392. $user['mobile'] = strim($user_data['mobile']);
  393. }
  394. if(isset($user_data['v_explain']) && strim($user_data['v_explain'])){
  395. $user['v_explain'] = strim($user_data['v_explain']);
  396. }
  397. if(isset($user_data['v_icon']) && strim($user_data['v_icon'])){
  398. $user['v_icon'] = strim($user_data['v_icon']);
  399. }
  400. if(isset($user_data['authent_list_id']) && strim($user_data['authent_list_id'])){
  401. $user['authent_list_id'] = strim($user_data['authent_list_id']);
  402. }
  403. if(isset($user_data['is_authentication'])){
  404. if(intval($user_data['is_authentication'])==3 || intval($user_data['is_authentication'])==1 || intval($user_data['is_authentication'])==0){
  405. $user['v_icon'] = '';
  406. $user['v_explain'] = '';
  407. }
  408. }
  409. if(isset($user_data['is_admin']))
  410. $user['is_admin'] = intval($user_data['is_admin']);
  411. if(isset($user_data['login_type']))
  412. $user['login_type'] = intval($user_data['login_type']);
  413. if($mode == 'INSERT')
  414. {
  415. $user['code'] = ''; //默认不使用code, 该值用于其他系统导入时的初次认证
  416. }
  417. else
  418. {
  419. $user['code'] = $GLOBALS['db']->getOne("select code from ".DB_PREFIX."user where id =".$user_data['id']);
  420. }
  421. if($mode == 'INSERT')
  422. {
  423. $user['id'] = $user_data['id'];
  424. $where = '';
  425. }
  426. else
  427. {
  428. $where = "id=".intval($user_data['id']);
  429. }
  430. if($GLOBALS['db']->autoExecute(DB_PREFIX."user",$user,$mode,$where))
  431. {
  432. if($mode == 'INSERT')
  433. {
  434. //添加成功,同步信息
  435. require_once(APP_ROOT_PATH.'system/tim/TimApi.php');
  436. $api = createTimAPI();
  437. $ret = $api->account_import((string)$user['id'], $user['nick_name'], $user['head_image']);
  438. if($ret['ErrorCode']==0){
  439. $GLOBALS['db']->query("update ".DB_PREFIX."user set synchronize = 1 where id =".$user['id']);
  440. }
  441. //redis化
  442. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  443. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  444. $user_redis = new UserRedisService();
  445. $ridis_data = $user_redis->reg_data($user);
  446. $user_redis->insert_db($user['id'],$ridis_data);
  447. //$GLOBALS['msg']->manage_msg('MSG_MEMBER_REMIDE',$user_id,array('type'=>'会员注册','content'=>'您于 '.get_client_ip() ."注册成功!"));
  448. }
  449. else
  450. {
  451. $user_id = $user_data['id'];
  452. user_deal_to_reids(array($user_id));
  453. }
  454. }
  455. $res['data'] = $user_id;
  456. return $res;
  457. }
  458. public function cancel_sale(){
  459. $sql = "UPDATE ".DB_PREFIX."user u,fanwe_luck_num lu set u.luck_num = '',lu.is_sale=0 where lu.luck_num = u.luck_num and u.id = ".$_REQUEST['user_id'];
  460. $result = M('luck_num')->execute($sql);
  461. if($result>0){
  462. //同步到redis
  463. $user['id'] = $_REQUEST['user_id'];
  464. $user['luck_num'] = '';
  465. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/BaseRedisService.php');
  466. fanwe_require(APP_ROOT_PATH.'mapi/lib/redis/UserRedisService.php');
  467. $user_redis = new UserRedisService();
  468. $user_redis->update_db($user['id'],$user);
  469. $this->success("操作成功!");
  470. }else {
  471. $this->error("操作失败");
  472. }
  473. }
  474. }
  475. ?>