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

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