editModel.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. 修改记录
  4. */
  5. class editClassModel extends Model{
  6. public function initModel()
  7. {
  8. $this->settable('editrecord');
  9. }
  10. public $editarr = array();
  11. /**
  12. * 获取修改记录
  13. * $num 对应模块编号
  14. * $id id值
  15. * $oners 旧数组
  16. * $newrs 新数组
  17. * return string
  18. */
  19. public function recordstr($farr,$table, $id, $oners, $newrs, $glx=1)
  20. {
  21. $str = '';
  22. if(!$farr || !$oners)return $str;
  23. $this->editarr = array();
  24. $farr = $this->getfield($farr);
  25. $str = $this->editcont($farr, $oners, $newrs);
  26. if($glx == 1 && $str != ''){
  27. $str = '['.$this->adminname.']('.$this->rock->now.')修改:'.$str.'';
  28. }
  29. if($glx == 2){
  30. $this->addrecord($table, $id);
  31. }
  32. return $str;
  33. }
  34. public function recordsave($farr,$table, $id, $oners, $newrs)
  35. {
  36. $str = $this->editcont($farr, $oners, $newrs);
  37. $this->addrecord($table, $id);
  38. return $str;
  39. }
  40. public function editcont($farr, $oners, $narr)
  41. {
  42. $str = '';
  43. $this->editarr = array();
  44. if($oners){
  45. foreach($narr as $k=>$v){
  46. if(!isset($farr[$k]))continue;
  47. $fa = $farr[$k];
  48. $nv = $v;
  49. $ov = '';
  50. if(isset($oners[$k]))$ov = $oners[$k];
  51. if($nv != $ov){
  52. $sel = array();
  53. if(isset($fa['selarr']))$sel = $fa['selarr'];
  54. if(isset($sel[$ov]))$ov = $sel[$ov];
  55. if(isset($sel[$nv]))$nv = $sel[$nv];
  56. $str .= ''.$fa['name'].':'.$ov.'→'.$nv.';';
  57. $this->editarr[] = array(
  58. 'fieldsname' => $fa['name'],
  59. 'oldval' => $ov,
  60. 'newval' => $nv
  61. );
  62. }
  63. }
  64. }
  65. return $str;
  66. }
  67. public function addrecord($table, $id)
  68. {
  69. $editci = (int)$this->getmou('editci', "`table`='$table' and `mid`='$id'")+1;
  70. foreach($this->editarr as $k=>$rs){
  71. $rs['optid'] = $this->adminid;
  72. $rs['optname'] = $this->adminname;
  73. $rs['optdt'] = $this->rock->now;
  74. $rs['table'] = $table;
  75. $rs['mid'] = $id;
  76. $rs['editci'] = $editci;
  77. $this->insert($rs);
  78. }
  79. }
  80. /**
  81. 获取对应表上字段信息
  82. $glx 0基本字段,1流程上
  83. return {字段名:对应信息}
  84. */
  85. public function getfield($fieldsarr)
  86. {
  87. $farrs = array();
  88. foreach($fieldsarr as $k=>$rs){
  89. $fid = $rs['fields'];
  90. if(substr($fid, 0, 5)=='temp_')continue;
  91. $farrs[$fid] = array('name' => $rs['name']);
  92. if(substr($rs['fieldstype'],0,6)=='change'){
  93. if(!$this->isempt($rs['data'])){
  94. $fid = $rs['data'];
  95. if(isset($farrs[$fid]))continue;
  96. $farrs[$fid] = array('name' => $rs['name'].'id');
  97. }
  98. }
  99. }
  100. return $farrs;
  101. }
  102. }
粤ICP备19079148号