input('id/d',0), 'intro' => input('intro','','trim'), 'contract_id' => input('contractId/d',0), 'pay_date' => input('payDate','','trim'), 'remind_date' => input('remindDate','','trim'), 'remark' => input('remark','','trim'), 'files' => input('files','','trim'), 'sn' => input('sn','','trim'), 'org_id' => input('orgId/d',0), 'remind' => input('remind/d',0), 'status' => input('status/d',0), 'company' => input('company','','trim'), 'skcompany' => input('skcompany','','trim'), 'money' => input('money/f',0), 'pay_type' => input('payType','','trim'), 'user_id' => input('userId/d',0) ]; $result = validate('HouseContractPay')->check($data,[],''); if(true !== $result){ HelpHander::error(validate('HouseContractPay')->getError()); } if(!$data['remind_date']){ unset($data['remind_date']); } if(!$data['pay_date']){ unset($data['pay_date']); } $id = $data['id']; unset($data['id']); if($id > 0){ $ret = $this->allowField(true)->save($data,['id'=>$id]); }else{ $ret = $this->allowField(true)->save($data); } if(!$ret){ HelpHander::error('操作失败'); } return true; } // 缴费通知单信息 public function jfee($id){ $info = Db::name('house_contract_pay') ->alias('hcp') ->join('house_contract hc','hc.id = hcp.contract_id') ->where('hcp.id',$id) ->where('hcp.del',0) ->field('hcp.*,hc.amount,hc.sn as contract_sn,hc.lessee_id') ->find(); if($info){ $info['lessee_name'] = Db::name('house_lessee')->where('id',$info['lessee_id'])->value('title'); $houses = Db::name('house_contract_relation') ->alias('hcr') ->join('house h','h.id = hcr.house_id') ->join('house_floor hf','hf.id = h.floor_id') ->join('house_building hb','hb.id = hf.building_id') ->join('house_community hc','hc.id = hb.community_id') ->join('house_district hd','hd.id = hc.district_id') ->where('hcr.contract_id',$info['contract_id']) ->field('h.tenant_area,h.number,h.floor_id,hf.title as floorName,hb.title as buildingName,hc.title as communityName,hd.title as districtName') ->select(); $totalarea = 0; $housenames = []; foreach ($houses as $k=>$v){ $ta = $v['tenant_area']?$v['tenant_area']:0; $totalarea += $ta; $housenames[] = $v['districtName'].$v['communityName'].$v['buildingName'].$v['floorName'].$v['number']; } $info['totalarea'] = $totalarea; $info['housenames'] = implode(',',$housenames); } return $info; } public function jfees($ids){ $lists = Db::name('house_contract_pay') ->alias('hcp') ->join('house_contract hc','hc.id = hcp.contract_id') ->where('hcp.id','in',explode(',',$ids)) ->where('hcp.del',0) ->field('hcp.*,hc.amount,hc.sn as contract_sn,hc.lessee_id') ->select(); $lists = $lists?$lists:[]; foreach ($lists as $k=>$info){ $lists[$k]['lessee_name'] = Db::name('house_lessee')->where('id',$info['lessee_id'])->value('title'); $houses = Db::name('house_contract_relation') ->alias('hcr') ->join('house h','h.id = hcr.house_id') ->join('house_floor hf','hf.id = h.floor_id') ->join('house_building hb','hb.id = hf.building_id') ->join('house_community hc','hc.id = hb.community_id') ->join('house_district hd','hd.id = hc.district_id') ->where('hcr.contract_id',$info['contract_id']) ->field('h.tenant_area,h.number,h.floor_id,hf.title as floorName,hb.title as buildingName,hc.title as communityName,hd.title as districtName') ->select(); $totalarea = 0; $housenames = []; foreach ($houses as $k=>$v){ $ta = $v['tenant_area']?$v['tenant_area']:0; $totalarea += $ta; $housenames[] = $v['districtName'].$v['communityName'].$v['buildingName'].$v['floorName'].$v['number']; } $lists[$k]['totalarea'] = $totalarea; $lists[$k]['housenames'] = implode(',',$housenames); } return $lists; } public function del($id){ $ret = $this->where('id',$id)->setField('del',1); if(!$ret){ HelpHander::error('删除失败'); } return true; } public function changeInvoice($id,$invoice=1,$userId){ $ret = $this->where('id',$id)->update([ 'invoice'=>$invoice, 'invoice_user_id'=>$userId, 'invoice_time'=>date('Y-m-d H:i:s') ]); if(!$ret){ HelpHander::error('删除失败'); } return true; } public function lists($page,$size,$intro,$contractId,$sn,$orgId){ $map[] = ['del','=',0]; $map[] = ['org_id','=',$orgId]; if($intro != ''){ $map[] = ['intro','like','%'.$intro.'%']; } if($sn != ''){ $map[] = ['sn','like','%'.$sn.'%']; } if($contractId > 0){ $map[] = ['contract_id','=',$contractId]; } $lists = $this ->where($map) ->page($page,$size) ->order('id desc') ->select(); $lists = $lists?$lists->toArray():[]; foreach ($lists as $k=>$v){ $files = $v['files']?json_decode($v['files'],true):[]; $lists[$k]['filesUrl'] = empty($files)?'':$files[0]['url']; $lists[$k]['filesName'] = empty($files)?'':$files[0]['name']; $lists[$k]['userName'] = Db::name('user_info')->where('user_id',$v['user_id'])->value('name'); $lists[$k]['invoiceUserName'] = Db::name('user_info')->where('user_id',$v['invoice_user_id'])->value('name'); } $total = $this->where($map)->count(); $data = [ 'total' => $total, 'list' => $lists?$lists:[] ]; return $data; } /** * 根据月份获取缴费金额 * @param $month * @return mixed */ public function getPayMoneyByMonth($month){ $map[] = ['status','=',1]; $map[] = ['del','=',0]; $nextmonth = date('Y-m',strtotime(" +1 month",strtotime($month.'-01'))).'-01'; $map[] = ['pay_date','>=',$month.'-01']; $map[] = ['pay_date','<',$nextmonth]; $money = Db::name('house_contract_pay') ->where($map) ->sum('money'); return $money; } }