| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 | 
							- <?php
 
- namespace app\common\model;
 
- use think\Db;
 
- use think\Exception;
 
- class HouseLock extends Base
 
- {
 
-     protected $createTime = 'create_time';
 
-     protected $updateTime = 'update_time';
 
-     public $table = 'house_lock';
 
-     protected $validateName = 'HouseLock';
 
-     public function getStartTime($userId){
 
-         $info = $this
 
-             ->where('user_id',$userId)
 
-             ->order('end','desc')
 
-             ->find();
 
-         if(!$info){
 
-             $info = Db::name('house_pay')
 
-                 ->where('create_user_id',$userId)
 
-                 ->where('status','in',[1,2])
 
-                 ->order('pay_time','asc')
 
-                 ->find();
 
-             if($info){
 
-                 return $info['pay_time'];
 
-             }
 
-         }else{
 
-             return $info['end'];
 
-         }
 
-         return '';
 
-     }
 
-     public function getDataInfo($start,$end,$userId,$orgId){
 
-         // 检查是否有返销的数据
 
-         $ret = Db::name('house_pay')
 
-             ->where('create_user_id',$userId)
 
-             ->where('org_id',$orgId)
 
-             ->where('status',2)
 
-             ->where('del',0)
 
-             ->where('pay_time','between',[$start,$end])
 
-             ->find();
 
-         if($ret){
 
-             $this->error = '存在返销中的数据';
 
-             return false;
 
-         }
 
-         $lists = Db::name('house_pay')
 
-             ->alias('hp')
 
-             ->join('owner o','o.id = hp.owner_id')
 
-             ->join('user u','u.id = hp.create_user_id')
 
-             ->where('hp.create_user_id',$userId)
 
-             ->where('hp.status',1)
 
-             ->where('hp.del',0)
 
-             ->where('hp.pay_time','between',[$start,$end])
 
-             ->field('hp.*,o.name,u.real_name')
 
-             ->select();
 
-         if(!$lists){
 
-             $this->error = '该时间段内没有收费记录';
 
-             return false;
 
-         }
 
-         $mData = [
 
-             'money' => 0,
 
-             'pre_money' => 0,
 
-             'true_money' => 0,
 
-             'pay_money1' => 0,
 
-             'pay_money3' => 0,
 
-             'pay_money4' => 0,
 
-             'pay_money5' => 0,
 
-         ];
 
-         $payIds = [];
 
-         foreach ($lists as $k=>$v){
 
-             $payIds[] = $v['id'];
 
-             $mData['money'] += $v['money'];
 
-             $mData['pre_money'] += $v['pre_money'];
 
-             $mData['true_money'] += $v['true_money'];
 
-             if($v['pay_type'] == 1){ //1=现金  3=支付宝 4=银行托收 5=微信 6=组合付款
 
-                 $mData['pay_money1'] += $v['true_money'];
 
-             }else if($v['pay_type'] == 3){
 
-                 $mData['pay_money3'] += $v['true_money'];
 
-             }else if($v['pay_type'] == 4){
 
-                 $mData['pay_money4'] += $v['true_money'];
 
-             }else if($v['pay_type'] == 5){
 
-                 $mData['pay_money5'] += $v['true_money'];
 
-             }else{
 
-                 $payData = json_decode($v['pay_data'],true);
 
-                 foreach ($payData as $kk=>$vv){
 
-                     if($kk == 1){
 
-                         $mData['pay_money1'] += $vv;
 
-                     }else if($kk == 3){
 
-                         $mData['pay_money3'] += $vv;
 
-                     }else if($kk == 4){
 
-                         $mData['pay_money4'] += $vv;
 
-                     }else if($kk == 5){
 
-                         $mData['pay_money5'] += $vv;
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         $logs = Db::name('house_pay_log_view')
 
-             ->where('pay_id','in',$payIds)
 
-             ->select();
 
-         $feeIds = [];
 
-         $fees = [];
 
-         foreach ($logs as $k=>$v){
 
-             if(!in_array($v['fee_id'],$feeIds)){
 
-                 $feeIds[] = $v['fee_id'];
 
-                 $fees[] = [
 
-                     'fee_id' => $v['fee_id'],
 
-                     'fee_title' => $v['fee_title'],
 
-                     'money' => 0
 
-                 ];
 
-             }
 
-         }
 
-         foreach ($fees as $k=>$v){
 
-             foreach ($logs as $kk=>$vv){
 
-                 if($v['fee_id'] == $vv['fee_id']){
 
-                     $fees[$k]['money'] += $vv['money'];
 
-                 }
 
-             }
 
-         }
 
-         $data = [
 
-             'list' => $lists,
 
-             'data' => $mData,
 
-             'logs' => $logs,
 
-             'fees' => $fees
 
-         ];
 
-         return $data;
 
-     }
 
-     public function addSave($start,$end,$remark,$userId,$orgId){
 
-         $gStart = $this->getstarttime($userId);
 
-         if($start != $gStart){
 
-             $this->error = '开始时间不正确';
 
-             return false;
 
-         }
 
-         $data = $this->getDataInfo($start,$end,$userId,$orgId);
 
-         if(!$data){
 
-             return false;
 
-         }
 
-         $post = $data['data'];
 
-         $this->startTrans();
 
-         try{
 
-             $sData = [
 
-                 'org_id' => $orgId,
 
-                 'user_id' => $userId,
 
-                 'status' => 0,
 
-                 'start' => $start?$start:null,
 
-                 'end' => $end?$end:null,
 
-                 'money' => $post['money'],
 
-                 'pre_money' => $post['pre_money'],
 
-                 'true_money' => $post['true_money'],
 
-                 'pay_money1' => $post['pay_money1'],
 
-                 'pay_money3' => $post['pay_money3'],
 
-                 'pay_money4' => $post['pay_money4'],
 
-                 'pay_money5' => $post['pay_money5'],
 
-                 'create_time' => getTime(),
 
-                 'remark' => $remark
 
-             ];
 
-             $lid = $this->insertGetId($sData);
 
-             if (!$lid) {
 
-                exception('操作失败');
 
-             }
 
-             foreach ($data['list'] as $k=>$v){
 
-                 $res = Db::name('house_lock_pay')
 
-                     ->insert([
 
-                     'house_lock_id' => $lid,
 
-                     'pay_id' => $v['id']
 
-                 ]);
 
-                 if (!$res) {
 
-                      exception('操作失败');
 
-                 }
 
-             }
 
-             foreach ($data['fees'] as $k=>$v){
 
-                 $res = Db::name('house_lock_fee')
 
-                     ->insert([
 
-                     'house_lock_id' => $lid,
 
-                     'fee_id' => $v['fee_id'],
 
-                     'money' => $v['money']
 
-                 ]);
 
-                 if (!$res) {
 
-                    exception('操作失败');
 
-                 }
 
-             }
 
-             $this->commit();
 
-             return true;
 
-         }catch (Exception $e){
 
-             $this->error = $e->getmessage();
 
-             $this->rollback();
 
-             return false;
 
-         }
 
-     }
 
-     public function deal($id,$status,$userId){
 
-         $info = $this->where('id',$id)->find();
 
-         if(!$info){
 
-             $this->error = '记录不存在';
 
-             return false;
 
-         }
 
-         $info = json_decode(json_encode($info),true);
 
-         if($info['status'] != 0){
 
-             $this->error = '无权限操作';
 
-             return false;
 
-         }
 
-         $res = $this->where('id',$id)->update([
 
-             'status' => $status,
 
-             'deal_user_id' => $userId,
 
-             'update_time' => getTime()
 
-         ]);
 
-         if (!$res) {
 
-             $this->error = '操作失败';
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     public function getDataById($id){
 
-         $info = $this->where('id',$id)->find();
 
-         if(!$info){
 
-             $this->error = '记录不存在';
 
-             return false;
 
-         }
 
-         $lists = Db::name('house_lock_pay')
 
-             ->alias('hlp')
 
-             ->join('house_pay hp','hp.id = hlp.pay_id')
 
-             ->join('owner o','o.id = hp.owner_id')
 
-             ->join('user u','u.id = hp.create_user_id')
 
-             ->where('hlp.house_lock_id',$id)
 
-             ->field('hp.*,o.name,u.real_name')
 
-             ->select();
 
-         $lists = $lists?$lists:[];
 
-         $payIds = [];
 
-         foreach ($lists as $k=>$v){
 
-             $payIds[] = $v['id'];
 
-         }
 
-         $logs = Db::name('house_pay_log_view')
 
-             ->where('pay_id','in',$payIds)
 
-             ->select();
 
-         $fees =Db::name('house_lock_fee')
 
-             ->alias('hlf')
 
-             ->join('house_fee hf','hf.id = hlf.fee_id')
 
-             ->where('hlf.house_lock_id',$id)
 
-             ->field('hlf.*,hf.title as fee_title')
 
-             ->select();
 
-         $data = [
 
-             'list' => $lists,
 
-             'data' => json_decode(json_encode($info),true),
 
-             'logs' => $logs?$logs:[],
 
-             'fees' => $fees?$fees:[]
 
-         ];
 
-         return $data;
 
-     }
 
- }
 
 
  |