baseModel.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. //基础使用
  3. class baseClassModel extends Model
  4. {
  5. private $usrr = array();
  6. /**
  7. * 获取异步地址
  8. */
  9. public function getasynurl($m, $a,$can=array(), $lx=0)
  10. {
  11. if($lx==0)$runurl = getconfig('localurl', URL);
  12. if($lx==1)$runurl = getconfig('anayurl', URL); //使用异步通信地址
  13. if($lx==2)$runurl = getconfig('waiurl', URL); //使用外网地址
  14. if($lx==3)$runurl = '';
  15. $key = getconfig('asynkey');
  16. if($key!='')$key = md5(md5($key));
  17. $uid = $this->adminid;
  18. if($uid==0)$uid = (int)arrvalue($GLOBALS,'adminid','0');
  19. if($uid==0)$uid = 1;//必须要有个值
  20. $runurl .= 'api.php?m='.$m.'&a='.$a.'&adminid='.$uid.'&asynkey='.$key.'';
  21. if(COMPANYNUM)$runurl.='&dwnum='.COMPANYNUM.'';
  22. if(is_array($can))foreach($can as $k=>$v)$runurl.='&'.$k.'='.$v.'';
  23. return $runurl;
  24. }
  25. /**
  26. * 系统上变量替换
  27. * $lx = 0 加'',$lx=1不加
  28. */
  29. public function strreplace($str, $uid=0, $lx=0)
  30. {
  31. if(isempt($str))return '';
  32. $date = $this->rock->date;
  33. $month = date('Y-m');
  34. $str = str_replace('[date]', $date, $str);
  35. $str = str_replace('[month]', $month, $str);
  36. if(!contain($str,'{') || !contain($str,'}'))return $str; //没有{}变量
  37. if($uid==0)$uid = $this->adminid;
  38. $ckey = 'u'.$uid.'';
  39. if(isset($this->usrr[$ckey])){
  40. $urs = $this->usrr[$ckey];
  41. }else{
  42. $urs = $this->db->getone('`[Q]admin`','`id`='.$uid.'');
  43. $companyid = arrvalue($urs,'companyid','1');
  44. if(ISMORECOM){
  45. $comid = arrvalue($urs, 'comid','0');
  46. if($comid>'0')$companyid = $comid;
  47. }
  48. $comrs = $this->db->getone('`[Q]company`','`id`='.$companyid.'');
  49. $urs['companyid'] = $companyid;
  50. $urs['companyname'] = arrvalue($comrs,'name');
  51. $urs['companynum'] = arrvalue($comrs,'num');
  52. $this->usrr[$ckey] = $urs;
  53. }
  54. if(!$urs)$urs= array();
  55. $urs['uid'] = $uid;
  56. $urs['date'] = $date;
  57. $urs['year'] = date('Y');
  58. $urs['month'] = $month;
  59. $urs['time'] = date('H:i:s');
  60. $urs['now'] = $this->rock->now;
  61. $urs['admin'] = arrvalue($urs,'name', $this->adminname);
  62. $urs['adminname'] = $urs['admin'];
  63. $urs['adminid'] = $uid;
  64. $urs['deptname'] = arrvalue($urs,'deptname');
  65. $urs['workdate'] = arrvalue($urs,'workdate');
  66. $urs['ranking'] = arrvalue($urs,'ranking');
  67. $urs['ismobile'] = $this->rock->ismobile() ? '1' : '0';
  68. $barr = $this->rock->matcharr($str);
  69. foreach($barr as $match){
  70. $key = $match;
  71. if(substr($key,0,4)=='urs.')$key = substr($key,4);
  72. if(isset($urs[$key])){
  73. $val = $urs[$key];
  74. if($lx==0)$val = "'$val'";
  75. $str = str_replace('{'.$match.'}', $val, $str);
  76. }
  77. //是否日期加减{date+1},{second-20}
  78. if(contain($match,'+') || contain($match,'-')){
  79. $add = 1;
  80. if(contain($match,'-'))$add=-1;
  81. $strss1 = explode('-', str_replace('+','-', $match));
  82. $dats = $strss1[0];
  83. $jg = (int)$strss1[1] * $add;;
  84. $cval = 'Y-m-d H:i:s';
  85. $lxs = 'd';
  86. if($dats=='date')$cval = 'Y-m-d';
  87. if($dats=='month'){
  88. $cval = 'Y-m';
  89. $lxs = 'm';
  90. }
  91. if($dats=='hour')$lxs = 'H';
  92. if($dats=='minute')$lxs = 'i';
  93. if($dats=='second')$lxs = 's';
  94. $val = c('date')->adddate($urs['now'], $lxs, $jg, $cval);
  95. if($lx==0)$val = "'$val'";
  96. $str = str_replace('{'.$match.'}', $val, $str);
  97. }
  98. }
  99. return $str;
  100. }
  101. /**
  102. * 合计处理
  103. */
  104. public function hjfieldsRows($rows, $hjfields)
  105. {
  106. $farr = explode('@', $hjfields);
  107. $barr = array('id'=>0, 'colums_type'=>'hj');
  108. foreach($farr as $fid){
  109. if($fid){
  110. $sbar = $this->hjfieldsRowss($rows, $fid);
  111. foreach($sbar as $k=>$v)$barr[$k]=$v;
  112. }
  113. }
  114. return $barr;
  115. }
  116. private function hjfieldsRowss($rows, $hjfields)
  117. {
  118. $tjval = 0;
  119. $hjfid = $hjfields;
  120. $slaox = false;
  121. $xshu = 0;
  122. if(contain($hjfields,':')){
  123. $arr = explode(':', $hjfields);
  124. $hjfid = $arr[0];
  125. $hjfields = $arr[1];
  126. $slaox = true;
  127. if(isset($arr[2]))$xshu = floatval($arr[2]);
  128. }
  129. $strv = '';
  130. foreach($rows as $k1=>$rs1){
  131. if($slaox){
  132. if($k1 > 0)$strv .= ' + ';
  133. $strv .= '('.$this->rock->reparr($hjfields, $rs1).')';
  134. }else{
  135. $val = arrvalue($rs1, $hjfid);
  136. if(isempt($val))$val='0';
  137. $tjval += floatval($val);
  138. if($xshu == 0){
  139. $vals = ''.$val.'';
  140. if(contain($vals, '.')){
  141. $avla = explode('.', $vals);
  142. if(isset($avla[1]))$xshu = strlen($avla[1]);
  143. }
  144. }
  145. }
  146. }
  147. if($strv){
  148. $tjval = eval('return '.$strv.';');
  149. }
  150. if($xshu > 0)$tjval = $this->rock->number($tjval, $xshu);
  151. return array(
  152. $hjfid => $tjval
  153. );
  154. }
  155. }
粤ICP备19079148号