123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- <?php
- namespace app\common\model;
- use app\hander\HelpHander;
- use think\Db;
- use think\Model;
- class HouseContractPay extends Model
- {
- public function add(){
- $data = [
- 'id' => 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;
- }
- }
|