source: pro-violet-viettel/sourcecode/application/modules/frontend/models/user_model.php

Last change on this file was 906, checked in by namnd, 10 years ago
File size: 21.6 KB
Line 
1<?php
2
3if (! defined ( 'BASEPATH' ))
4        exit ( 'No direct script access allowed' );
5
6if ( ! defined('_SBG_PAIDTYPE_SMS')) define('_SBG_PAIDTYPE_SMS', 1);
7if ( ! defined('_SBG_PAIDTYPE_CARD')) define('_SBG_PAIDTYPE_CARD', 2);
8
9class User_model extends CI_Model {
10        const TOKENPW = 'violet';
11       
12        public function __construct() {
13                parent::__construct ();
14                $this->vservices->setApiUrl ( $this->config->item ( 'api_url' ) );
15                $this->vservices->setConnection ( $this->curl );
16                $this->load->helper('language');
17                $this->lang->load('messages', 'message');
18        }
19       
20        public function checkLogin($src, $token, $username, $password) {
21                $data = $this->vservices->actionExecute ( 'login', array (
22                                'src' => $src,
23                                'token' => $token,
24                                'username' => $username,
25                                'password' => $password
26                ), 'user' );
27                if(!($data) || is_null($data)) return array('success'=>-1, 'data'=>$data);
28                parse_str ( $data );
29                if ($status == 0 || $status == 4) {
30                        $us_id = ( int ) $id;
31                        $query = "SELECT * FROM tbluser WHERE us_id = ?";
32                        $result = $this->db->query ( $query, array (
33                                        $us_id
34                        ) );
35                        if ($result->num_rows () == 1) {
36                                return array('success'=>1, 'data'=>$data);
37                        } else {
38                                return array('success'=>0, 'data'=>$data);
39                        }
40                } else {
41                        return array('success'=>0, 'data'=>$data);
42                }
43        }
44       
45        public function register($username, $collaborator, &$collaboratorMsg = '') {
46               
47                $user = array ();
48                $password = $this->create_random_password ();
49                $src = 'SBG';
50                $sms = '';
51                $id = 0;
52                $errMsg = '';
53                $token = md5 ( $username . self::TOKENPW );
54                $phone = $username;
55                $status = 0;
56               
57                if (! is_null ( $collaborator ) || $collaborator != '') {
58                        if (! $this->isExistcollaborator ( $collaborator )) {
59                                $aryPatterns = array('/:collaborator:/');
60                                $sms = preg_replace($aryPatterns, array($collaborator), lang('_SBG_MO_COLLABORATOR_NOT_FOUND_MSG'));
61                                $collaboratorMsg = $status . '|'.$sms;
62                                return $status . '|' . $sms;
63                        }
64                }
65               
66                $data = $this->vservices->actionExecute ( 'update', array (
67                                'src' => $src,
68                                'username' => $username,
69                                'password' => $password,
70                                'fullname' => null,
71                                'phone' => $username,
72                                'token' => $token
73                ), 'user' );
74               
75                if(!($data) || is_null($data))
76                {
77                        $sms = lang('_SBG_MO_REGISTER_DISCONTINUE_MSG');
78                        $collaboratorMsg = $status . '|'.$sms;
79                        return $status . '|' . $sms;
80                }
81               
82                parse_str ( $data );
83
84                switch (( int ) $status) {
85                        case 0 :
86                $this->load->model('frontend/Servicepackage_model');
87                                $trialpackage=$this->Servicepackage_model->getTrialPackage();
88                                $us_id = $id;
89                                $user ['created_time'] = date ( 'Y-m-d H:i:s' );
90                                $user ['updated_time'] = date ( 'Y-m-d H:i:s' );
91                                $user ['us_id'] = $us_id;
92                                $user ['p_id'] = $trialpackage['p_id'];
93                                $user ['expire_date'] = date('Y-m-d', strtotime("+" . $this->config->item("trial_period") . " days", time()));
94                                $user ['cellphone'] = $username;
95                                $user['province'] = $province;
96                                if (! is_null ( $collaborator ) || $collaborator != '') {
97                                        $user ['collaborator'] = $collaborator;
98                                }
99                                $this->db->query ( 'UNLOCK TABLES' );
100                                $this->db->insert ( 'tbluser', $user );
101                                //write_file('./log/test.log', date("H:i:s m-d-Y").": ". var_export($user, TRUE)."\n" , FOPEN_WRITE_CREATE);
102                                //$aryPatterns = array ('/:trialdays:/', '/:username:/', '/:password:/');
103                                $aryPatterns = array ('/:username:/', '/:password:/');
104                                $trialdays = $this->config->item('trial_period');
105                                $trialdays = strlen($trialdays) < 2 ? '0'. $trialdays : $trialdays;
106                                if ($this->isViettel($username)){
107                                        $sms = preg_replace($aryPatterns, array($username, $password), lang('_SBG_MO_USER_VIETTEL_REGISTER_SUCCESS_MSG'));
108                                }else{
109                                        //$aryPatterns = array ('/:username:/', '/:password:/');
110                                        $sms = preg_replace($aryPatterns, array($username, $password), lang('_SBG_MO_USER_NOT_VIETTEL_REGISTER_SUCCESS_MSG'));
111                                }
112                                $status = 1;
113                                $aryPatterns = array('/:username:/');
114                                $collaboratorMsg = $status . '|'. preg_replace($aryPatterns, array($username), lang('_SBG_MO_COLLABOLATOR_REGISTER_SUCCESS_MSG'));
115                                break;
116                        case 2 :
117                        case 4 :
118                                $sms = lang('_SBG_MO_USER_REGISTER_DUPLICATE_MSG');
119                                $status = 0;
120                                $aryPatterns = array('/:username:/');
121                                $collaboratorMsg = $status . '|'. preg_replace($aryPatterns, array($username), lang('_SBG_MO_COLLABOLATOR_REGISTER_DUPLICATE_MSG'));
122                                break;
123                        default :
124                                $status = 0;
125                                $sms = $errMsg;
126                                $collaboratorMsg = $status . '|'. $sms;
127                                break;
128                }
129               
130                return $status . '|' . $sms;
131        }
132       
133        public function create_random_password() {
134                // $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
135                $alphabet = "0123456789";
136                $pass = array ();
137                $alphaLength = strlen ( $alphabet ) - 1;
138                for($i = 0; $i < 6; $i ++) {
139                        $n = rand ( 0, $alphaLength );
140                        $pass [] = $alphabet [$n];
141                }
142                return implode ( $pass );
143        }
144       
145        public function get_user_by_id($us_id) {
146                $this->db->query ( 'UNLOCK TABLES' );
147                $this->db->select ( '*' )->from ( 'tbluser' )->join('tblservicepackage','tbluser.p_id=tblservicepackage.p_id','left')->where ( 'tbluser.us_id', $us_id );
148                $query = $this->db->get ();
149                if ($query->num_rows () > 0) {
150                        $row = $query->row_array ();
151                        return $row;
152                }
153        }
154       
155        public function get_user_info($src, $token, $us_id) {
156                $data = $this->vservices->actionExecute ( 'getinfo', array (
157                                'src' => $src,
158                                'us_id' => $us_id,
159                                'token' => $token
160                ), 'user' );
161                return $data;
162        }
163       
164        public function update_user($src, $token, $user, $us_id) {
165                $data = $this->vservices->actionExecute ( 'update', array (
166                                'src' => $src,
167                                'token' => $token,
168                                'us_id' => $us_id,
169                                'password' => $user ['password'],
170                                'fullname' => $user ['fullname'],
171                                'school' => $user ['school'],
172                                'province' => $user ['province'],
173                                'oldpass' => $user ['oldpass']
174                ), 'user' );
175                $u = array('province'=>$user['province'],
176                                'district' => $user['district'],
177                                'updated_time'=>date('Y-m-d H:i:s')
178                                );
179                $this->db->where('us_id', $us_id);
180                $this->db->update('tbluser', $u);
181                return $data;
182        }
183        public function update_local_user($input,$us_id)
184        {
185            $this->db->where('us_id', $us_id);
186            $this->db->update('tbluser', $input);
187        }
188       
189        public function changeProfile($sentNumber, $username, $password, &$status = '') {
190                $user = array ();
191                $src = 'SBG';
192                $errMsg = '';
193                $sms = '';
194                $checkSentNumber = $this->get_user_by_cellphone ( $sentNumber );
195               
196                if ($checkSentNumber) {
197                        $aryPatterns = array('/:sentNumber:/');
198                        $sms =  preg_replace($aryPatterns, array($sentNumber), lang('_SBG_MO_USER_PHONENUM_CHANGE_DUPLICATE_MSG'));
199                        $status = 0;
200                        return $status . '|' . $sms;
201                }
202               
203                $result = $this->get_user_by_cellphone ( $username );
204               
205                if ($result) {
206                       
207                        $us_id = $result ['us_id'];
208                        $token = md5 ( $us_id . self::TOKENPW );
209                        $isCorrectPassword = $this->checkPassword($src, $us_id, $token, $password);
210                        if(!$isCorrectPassword) return '0|'.lang('_SBG_MO_USER_PHONENUM_CHANGE_INCORRECT_PASSWORD_MSG');
211
212                        $data = $this->vservices->actionExecute ( 'update', array (
213                                        'src' => $src,
214                                        'token' => $token,
215                                        'us_id' => $us_id,
216                                        'username' => $sentNumber,
217                                        "password" => $password,
218                                        'oldpass' => $password,
219                                        'phone' => $sentNumber
220                        ), 'user' );
221
222                        if(!($data) || is_null($data))
223                        {
224                                $sms = lang('_SBG_MO_PHONENUM_CHANGE_DISCONTINUE_MSG');
225                                $status = 0;
226                                return $status . '|' . $sms;
227                        }
228                        parse_str ( $data );
229                        switch (( int ) $status) {
230                                case 0 :
231                                        $us_id = $id;
232                                        $user ['updated_time'] = date ( 'Y-m-d H:i:s' );
233                                        $user ['us_id'] = $us_id;
234                                        $user ['cellphone'] = $sentNumber;
235                                        $this->updateUser ( $us_id, $user );
236                                        $aryPatterns = array('/:username:/', '/:sentNumber:/');
237                                        $sms =  preg_replace($aryPatterns, array($username, $sentNumber), lang('_SBG_MO_USER_NEW_PHONENUM_CHANGE_SUCCESS_MSG'));
238                                        $status = 1;
239                                        break;
240                                case 2:
241                                        $aryPatterns = array('/:sentNumber:/');
242                                        $sms = preg_replace($aryPatterns, array($sentNumber), lang('_SBG_MO_USER_PHONENUM_CHANGE_DUPLICATE_MSG'));
243                                        $status = 0;
244                                        break;
245                                case 5 :
246                                        $aryPatterns = array('/:username:/');
247                                        $sms = preg_replace($aryPatterns, array($username), lang('_SBG_MO_USER_PHONENUM_NOT_REGISTER_MSG'));
248                                        $status = 0;
249                                        break;
250                                default :
251                                        $status = 0;
252                                        $sms = $errMsg;
253                                        break;
254                        }
255                } else {
256                        $aryPatterns = array('/:username:/');
257                        $sms = preg_replace($aryPatterns, array($username), lang('_SBG_MO_USER_PHONENUM_NOT_REGISTER_MSG'));
258                        $status = 0;
259                }
260                return $status . '|' . $sms;
261        }
262       
263        public function changePassword($username, $password, &$status = '') {
264                $user = array ();
265                $src = 'SBG';
266                $errMsg = '';
267                $sms = '';
268                $isForgotPassword = false;
269                $pass = $password;
270               
271                if (is_null ( $password ) || $password == '') {
272                        $pass = $this->create_random_password ();
273                        $isForgotPassword = true;
274                }
275               
276                $result = $this->get_user_by_cellphone ( $username );
277               
278                if ($result) {
279                        $us_id = $result ['us_id'];
280                        $token = md5 ( $us_id . self::TOKENPW );
281                        $data = $this->vservices->actionExecute ( 'update', array (
282                                        'src' => $src,
283                                        'token' => $token,
284                                        'us_id' => $us_id,
285                                        "password" => $pass
286                        ), 'user' );
287                       
288                        if(!($data) || is_null($data))
289                        {
290                                $sms = lang('_SBG_MO_PASSWORD_CHANGE_DISCONTINUE_MSG');
291                                $status = 0;
292                                return $status . '|' . $sms;
293                        }
294                        parse_str ( $data );
295                        switch (( int ) $status) {
296                                case 0 :
297                                        $us_id = $id;
298                                        $user ['updated_time'] = date ( 'Y-m-d H:i:s' );
299                                        $this->updateUser ( $us_id, $user );
300                                        if ($isForgotPassword) {
301                                                $aryPatterns = array('/:pass:/');
302                                                $sms = preg_replace($aryPatterns, array($pass), lang('_SBG_MO_USER_PASSWORD_RECOVERY_MSG'));
303                                        } else {
304                                                $aryPatterns = array('/:password:/');
305                                                $sms = preg_replace($aryPatterns, array($pass), lang('_SBG_MO_USER_PASSWORD_CHANGE_SUCCESS_MSG'));
306                                        }
307                                        $status = 1;
308                                        break;
309                                case 5 :
310                                        $aryPatterns = array('/:username:/');
311                                        $sms = preg_replace($aryPatterns, array($username), lang('_SBG_MO_USER_PHONENUM_NOT_REGISTER_MSG'));
312                                        $status = 0;
313                                        break;
314                                default :
315                                        $status = 0;
316                                        $sms = $errMsg;
317                                        break;
318                        }
319                } else {
320                        $aryPatterns = array('/:username:/');
321                        $sms = preg_replace($aryPatterns, array($username), lang('_SBG_MO_USER_PHONENUM_NOT_REGISTER_MSG'));
322                        $status = 0;
323                }
324                return $status . '|' . $sms;
325        }
326       
327        public function checkLicense($userId) {
328                $isNotExpired = false;
329                $userInfo = array ();
330                $userInfo = $this->get_user_by_id ( $userId );
331               
332                $expireDate = $userInfo ['expire_date'];
333               
334                if ((trim ( $expireDate ) == ''))
335                        return $isNotExpired;
336               
337                $today = mktime ();
338                $expireTime = strtotime ( $expireDate . ' 23:59:59' );
339                $isNotExpired = ($today < $expireTime);
340        return $isNotExpired;
341        }
342       
343        public function registerVip($username, $p_code, &$packageData = null) {
344                $user = array ();
345                $sms = '';
346               
347                $result = $this->get_user_by_cellphone ( $username );
348                $package = $this->get_package ( ( int ) $p_code );
349               
350                if (!$package)
351                {
352                        $sms = lang('_SBG_MO_USER_REGISTER_VIP_NOT_FOUND_MSG');
353                        $status = 0;
354                        return $status . '|' . $sms;
355                }
356                       
357                $packageData = $package;
358
359                if ($result) {
360                        if ($result ['acc_balanced'] >= $package ['p_price']) {
361                                $us_id = $result ['us_id'];
362                                $user ['acc_balanced'] = $result ['acc_balanced'] - $package ['p_price'];
363                                if ($this->checkLicense ( $us_id )) {
364                                        $user ['expire_date'] = date ( 'Y-m-d', strtotime ( $result ['expire_date'] . ' + ' . $package ['p_period'] . ' month' ) );
365                                } else {
366                                        $user ['expire_date'] = date ( 'Y-m-d', strtotime ( 'now + ' . $package ['p_period'] . ' month' ) );
367                                }
368                               
369                                $user ['p_id'] = $package ['p_id'];
370                                $user ['updated_time'] = date ( 'Y-m-d H:i:s' );
371                               
372                                $this->updateUser ( $us_id, $user );
373                                $aryPatterns = array('/:period:/');
374                                $sms = preg_replace($aryPatterns, array(date ( 'd/m/Y', strtotime ( $user ['expire_date'] ) )), lang('_SBG_MO_USER_REGISTER_VIP_SUCCESS_MSG'));
375                                $status = 1;
376                        } else {
377                                $sms = lang('_SBG_MO_USER_REGISTER_VIP_FAIL_NOT_ENOUGH_MSG');
378                                $status = 0;
379                        }
380                } else {
381                        $aryPatterns = array('/:username:/');
382                        $sms = preg_replace($aryPatterns, array($username), lang('_SBG_MO_ACCOUNT_NOT_FOUND_MSG'));
383                        $status = 0;
384                }
385                return $status . '|' . $sms;
386        }
387       
388        public function rechargeAccount($username, $amount) {
389                $user = array ();
390                $sms = '';
391                $result = $this->get_user_by_cellphone ( $username );
392                if ($result) {
393                        $us_id = $result ['us_id'];
394                        $user ['acc_balanced'] = $result ['acc_balanced'] + $amount;
395                        $user ['updated_time'] = date ( 'Y-m-d H:i:s' );
396                        $this->updateUser ( $us_id, $user );
397                        $aryPatterns = array('/:amount:/', '/:username:/');
398                        $sms = preg_replace($aryPatterns, array($amount, $username), lang('_SBG_MO_PAY_TO_ACCOUNT_SUCCESS_MSG'));
399                        $status = 1;
400                } else {
401                        $aryPatterns = array('/:username:/');
402                        $sms = preg_replace($aryPatterns, array($username), lang('_SBG_MO_ACCOUNT_NOT_FOUND_MSG'));
403                        $status = 0;
404                }
405                return $status . '|' . $sms;
406        }
407       
408        public function get_user_by_cellphone($cellphone) {
409                $this->db->query ( 'UNLOCK TABLES' );
410                $sql = 'SELECT * FROM tbluser where cellphone = ? LIMIT 0,1';
411                $query = $this->db->query ( $sql, array (
412                                $cellphone
413                ) );
414                $row = $query->row_array ();
415                return $row;
416        }
417       
418        public function isExistcollaborator($collaborator) {
419                $this->db->query ( 'UNLOCK TABLES' );
420                //$this->db->select ( '*' )->from ( 'tblcollaborator' )->where ( 'login_name', $collaborator )->limit ( 1 );
421                $this->db->select ( '*' )->from ( 'tblcollaborator' )->where ( 'cellphone', $collaborator )->limit ( 1 );
422                $result = $this->db->get ()->row_array ();
423                if ($result)
424                        return true;
425                else
426                        return false;
427        }
428       
429        public function updateUser($us_id, $data) {
430                //$this->db->query ( 'UNLOCK TABLES' );
431                $this->db->where ( 'us_id', $us_id );
432                return $this->db->update ( 'tbluser', $data );
433                //write_file('./log/test.log', $this->db->update('tbluser', $data), FOPEN_WRITE_CREATE);
434        }
435       
436        public function get_package($p_code) {
437                $this->db->query ( 'UNLOCK TABLES' );
438                $sql = 'SELECT * FROM tblservicepackage where p_code = ? LIMIT 0,1';
439                $query = $this->db->query ( $sql, array (
440                                $p_code
441                ) );
442                $row = $query->row_array ();
443                return $row;
444        }
445       
446        public function insertSmslog($sentNumber, $serviceID, $commandcode, $info, $receiveTime, $mtbody = null, $responseTime = null) {
447                if (preg_match ( '/^(84)([0-9]{9,10})$/', $sentNumber, $aryMatch ) == 1) {
448                        $sentNumber = '0' . $aryMatch [2];
449                }
450               
451                try {
452                        $user = $this->get_user_by_cellphone ( $sentNumber );
453                } catch ( Exception $e ) {
454                }
455               
456                $smslog = array ();
457                $smslog ['sender'] = $sentNumber;
458                $smslog ['us_id'] = isset ( $user ['us_id'] ) ? $user ['us_id'] : NULL;
459                $smslog ['service_id'] = $serviceID;
460                $smslog ['commandcode'] = $commandcode;
461                $smslog ['info'] = $info;
462                $smslog ['created_time'] = $receiveTime;
463                $smslog ['mtbody'] = $mtbody;
464                $smslog ['response_time'] = $responseTime;
465               
466                $this->db->query ( 'UNLOCK TABLES' );
467                $sql = 'INSERT INTO tblsmslog(sender, us_id, service_id, commandcode, info, created_time, mtbody, response_time) VALUES(?,?,?,?,?,?,?,?)';
468                $query = $this->db->query($sql, $smslog);
469        }
470       
471        public function insertPaidlog($sentNumber, $receiveID, $paidType, $amount, $paidTime) {
472                if (preg_match ( '/^(84)([0-9]{9,10})$/', $sentNumber, $aryMatch ) == 1) {
473                        $sentNumber = '0' . $aryMatch [2];
474                }
475               
476                try {
477                        $user = $this->get_user_by_cellphone ( $receiveID );
478                } catch ( Exception $e ) {
479                }
480                $paidlog = array ();
481                $paidlog ['us_id'] = isset ( $user ['us_id'] ) ? $user ['us_id'] : NULL;
482                $paidlog ['paid_type'] = $paidType;
483                $paidlog ['amount'] = $amount;
484                $paidlog['source'] = "";
485                if ($paidType == 1)
486                {
487                        $paidlog['source'] = $sentNumber;
488                }
489                elseif ($paidType == 2)
490                {
491                        $paidlog['source'] = 'Thẻ cào';
492                }
493                else
494                {
495                        $paidlog['source'] = '';
496                }
497                $paidlog ['paid_time'] = $paidTime;
498                $sql = 'INSERT INTO tblpaidlog(us_id, paid_type, amount, source, paid_time) VALUES (?,?,?,?,?)';
499
500                return $this->db->query ( $sql, $paidlog );
501        }
502       
503        public function insertCardlog($username, $us_id, $status, $pinCode, $serialNum, $cardValue, $receiveTime)
504        {
505                try {
506                        $user = $this->get_user_by_cellphone ( $username );
507                } catch ( Exception $e ) {
508                }
509               
510                $cardlog = array();
511                $cardlog['sender'] = $username;
512                $cardlog['us_id'] = $us_id;
513                $cardlog['status'] = $status;
514                $cardlog['pin_code'] = $pinCode;
515                $cardlog['serial_num'] = $serialNum;
516                $cardlog['card_value'] = $cardValue;
517                $cardlog['created_time'] = $receiveTime;
518                $this->db->query ( 'UNLOCK TABLES' );
519                $sql = 'INSERT INTO tblcardlog(sender, us_id, status, pin_code, serial_num, card_value, created_time) VALUES(?,?,?,?,?,?,?)';
520                return $this->db->query ($sql, $cardlog);
521        }
522       
523        public function getPaidlog($data)
524        {
525                $us_id = $data['us_id'];
526                $this->db->query ( 'UNLOCK TABLES' );
527                $sql = "SELECT * FROM tblpaidlog where us_id = ? ORDER BY paid_time DESC LIMIT ".$data['start'].", ".$data['perpage']." ";
528                $query = $this->db->query ( $sql, array (
529                                $us_id
530                ) );
531                $row = $query->result_array();
532                return $row;
533        }
534       
535        public function countPaiglogs($us_id)
536        {
537                $this->db->query ( 'UNLOCK TABLES' );
538                $sql="SELECT COUNT(paid_id) AS total FROM tblpaidlog WHERE us_id = ?";
539                $query = $this->db->query ( $sql, array (
540                                $us_id
541                ) );
542                $result = $query->row_array();
543                return $result['total'];
544        }
545       
546        public function checkPassword($src, $us_id, $token, $password)
547        {
548                $data = $this->vservices->actionExecute ( 'getinfo', array (
549                                'src' => $src,
550                                'us_id' => $us_id,
551                                'token' => $token,
552                                'ponly'=>1
553                ), 'user' );
554               
555                parse_str($data);
556                if(md5($password) == $pencrypted) return true; else return false;
557        }
558       
559        public function insertRegisterVipLog($username, $p_code, $isSms=true)
560        {
561                if ($isSms) $source = 'SMS'; else $source = 'Web';
562                $createdTime = date('Y-m-d H:i:s');
563                $this->db->query ( 'UNLOCK TABLES' );
564                $sql = 'INSERT INTO tblregisterpackagelog (username, source, p_code, created_time) VALUES (?,?,?,?)';
565                $query = $this->db->query ( $sql,  array (
566                                'username'=>$username,
567                                'source'=>$source,
568                                'p_code'=>$p_code,
569                                'created_time'=>$createdTime
570                ) );
571        }
572       
573        public function getPackagelog($data)
574        {
575                $username = $data['username'];
576                $us_id = $data['us_id'];
577                $this->db->query ( 'UNLOCK TABLES' );
578                //$sql="SELECT tblregisterpackagelog.source,tblservicepackage.p_name,tblregisterpackagelog.created_time FROM tblregisterpackagelog INNER JOIN tblservicepackage ON tblservicepackage.p_code = tblregisterpackagelog.p_code where username = ? UNION SELECT tblpaidlog.source,tblpaidlog.amount,tblpaidlog.paid_time FROM tblpaidlog where us_id = ? ORDER BY created_time DESC LIMIT ".$data['start'].", ".$data['perpage']."";
579                $sql="SELECT tblregisterpackagelog.source,0 as amount,tblservicepackage.p_name,tblregisterpackagelog.created_time, tblregisterpackagelog.p_code FROM tblregisterpackagelog INNER JOIN tblservicepackage ON tblservicepackage.p_code = tblregisterpackagelog.p_code where username = ? UNION SELECT tblpaidlog.source,tblpaidlog.amount,'Nạp tiền' as name,tblpaidlog.paid_time, 0 as p_code FROM tblpaidlog where us_id = ? ORDER BY created_time DESC LIMIT ".$data['start'].", ".$data['perpage']."";
580                $query = $this->db->query ( $sql, array ("$username", $us_id) );
581                $row = $query->result_array();
582                return $row;
583        }
584       
585        public function countPackagelogs($username, $us_id)
586        {
587                $this->db->query ( 'UNLOCK TABLES' );
588                $sql="SELECT COUNT(id) AS total FROM tblregisterpackagelog WHERE username = ?";
589               
590                $query = $this->db->query ( $sql, array (
591                                $username
592                ) );
593                $result = $query->row_array();
594                $total = $result['total'];
595                $sql="SELECT COUNT(paid_id) AS total FROM tblpaidlog WHERE us_id = ?";
596                $query = $this->db->query ( $sql, array (
597                                $us_id
598                ) );
599                $result = $query->row_array();
600                $total = $total + $result['total'];
601                $result['total'] = $total;
602               
603                return $result['total'];
604        }
605       
606        public function getUserById($us_id) {
607                $this->db->query ( 'UNLOCK TABLES' );
608                $this->db->select ( '*' )->from ( 'tbluser' )->where ( 'tbluser.us_id', $us_id );
609                $query = $this->db->get ();
610                if ($query->num_rows () > 0) {
611                        $row = $query->row_array ();
612                        return $row;
613                }
614        }
615       
616        public function isViettel($number) {
617                $prefixViettel = array (
618                                        '96', '97', '98',
619                                        '096', '097', '098', '162', '163', '164', '165', '166', '167', '168', '169',
620                                        '8496', '8497', '8498', '0162', '0163', '0164', '0165', '0166', '0167', '0168', '0169',
621                                        '84162', '84163', '84164', '84165', '84166', '84167', '84168', '84169'
622                );
623                foreach ( $prefixViettel as $value ) {
624                        if (strpos ( $number, $value ) === 0) {
625                                return 1;
626                        }
627                }
628                return 0;
629        }
630       
631        public function getDistrictByProvince($provinceId){
632                $sql = "SELECT * FROM tbldistrict WHERE province_id = ?";
633                $query = $this->db->query ( $sql, array (
634                                $provinceId
635                ) );
636                $results = $query->result_array();
637                return $results;
638        }
639       
640        public function insertDistrict($data){
641                $this->db->insert_batch('tbldistrict', $data);
642                return $this->db->affected_rows();
643        }
644       
645        public function getDistrictByIdAndProvince($districtId, $provinceId){
646                $sql = "SELECT * FROM tbldistrict WHERE district_id = ? AND province_id = ?";
647                $query = $this->db->query ( $sql,array ($districtId, $provinceId) );
648                if ($query->num_rows () > 0) {
649                        $row = $query->row_array ();
650                        return $row;
651                }
652        }
653       
654}
Note: See TracBrowser for help on using the repository browser.