From fbe5a3686b53295bbe99f4e4390fe8b32abebba2 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Tue, 6 Apr 2021 17:15:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9F=A5=E8=AF=A2=E8=BD=A6?= =?UTF-8?q?=E4=BD=8D=E8=B4=B9=E8=BF=94=E5=9B=9E=E8=AF=A5=E4=B8=9A=E4=B8=BB?= =?UTF-8?q?=E6=89=80=E6=9C=89=E8=BD=A6=E4=BD=8Did=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/controllers/carporttab_controller.go | 3 + web/controllers/contracttab_controller.go | 16 +++ web/models/accesscardtab.go | 1 + web/models/carporttab.go | 118 +++++++++++++++------- 4 files changed, 104 insertions(+), 34 deletions(-) diff --git a/web/controllers/carporttab_controller.go b/web/controllers/carporttab_controller.go index 963a970..2ab9ef5 100644 --- a/web/controllers/carporttab_controller.go +++ b/web/controllers/carporttab_controller.go @@ -194,6 +194,9 @@ func SearchCarporttab(ctx iris.Context) { buildingid := ctx.URLParam("buildingid") unit := ctx.URLParam("unit") room := ctx.URLParam("room") + if me.Propertyid == "" { + me.Propertyid = buildingid + "-" + unit + "-" + room + } data, err := me.Search(buildingid, unit, room) if err != nil { glog.InfoExt("缴费","查询车位费:%v",err) diff --git a/web/controllers/contracttab_controller.go b/web/controllers/contracttab_controller.go index bc17e65..c0c0011 100644 --- a/web/controllers/contracttab_controller.go +++ b/web/controllers/contracttab_controller.go @@ -62,6 +62,7 @@ func InsertContracttab(ctx iris.Context) { access.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") access.Lastmodifytime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") access.Descr = "电梯卡费" + access.Lastmodifyby = user.Userid err := access.Add() if err != nil { supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) @@ -69,6 +70,21 @@ func InsertContracttab(ctx iris.Context) { } case 3: lengthdate = data.Contracttab.Chargedexpense / data.Unitprice + carport := new(models.Carporttab) + carport.Cid = user.Pid + carport.Carportid = data.Carportid + carport.Descr = "车位费" + carport.Status = 1 + carport.Propertyid = data.Propertyid + carport.Propertytypeid = "车位费" + carport.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + carport.Lastmodifytime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + carport.Lastmodifyby = user.Userid + err := carport.Add() + if err != nil { + supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) + return + } default: lengthdate = data.Contracttab.Chargedexpense / data.Unitprice } diff --git a/web/models/accesscardtab.go b/web/models/accesscardtab.go index 239881d..801d88c 100644 --- a/web/models/accesscardtab.go +++ b/web/models/accesscardtab.go @@ -130,6 +130,7 @@ type ContractInfo struct { Unitprice float64 `json:"unitprice"` Chargetime string `json:"chargetime"` AccesscardidList []string `json:"accesscardlist"` + CarportidList []string `json:"carportidlist"` Contracttab Contracttab `json:"contracttab"` } diff --git a/web/models/carporttab.go b/web/models/carporttab.go index 30488d6..bcc9719 100644 --- a/web/models/carporttab.go +++ b/web/models/carporttab.go @@ -92,7 +92,7 @@ func (t *Carporttab) GetPage(pageSize int, pageIndex int) ([]Carporttab, int, er table = table.And("descr like ?", descr) } Offset := (pageIndex - 1) * pageSize - err := query.Limit(pageSize,Offset).Desc("createtime").Find(&data) + err := query.Limit(pageSize, Offset).Desc("createtime").Find(&data) pcount := new(Carporttab) count, err := table.Count(pcount) @@ -108,44 +108,94 @@ type CarporttabContract struct { Propertytypetab `xorm:"extends"` Contracttab `xorm:"extends"` } - +type CarporttabInfo struct { + Propertytab `xorm:"extends"` + Propertytypetab `xorm:"extends"` +} //车位费查询 -func (t *Carporttab) Search(buildingid string, unit string, room string) (ContractInfo, error) { +func (t *Carporttab) Search(buildingid string, unit string, room string) (data ContractInfo, err error) { //联查 - data := ContractInfo{} - var info CarporttabContract + e := db.MasterEngine() - query := e.Table("carporttab").Join("LEFT", "propertytab", "carporttab.propertyid=propertytab.propertyid and carporttab.cid=propertytab.cid").Join("LEFT", "propertytypetab", "carporttab.propertytypeid=propertytypetab.propertytypeid and carporttab.cid=propertytypetab.cid").Join("LEFT", "contracttab", "carporttab.contractid=contracttab.contractid and carporttab.cid=contracttab.cid").Where("carporttab.cid = ?", t.Cid) - if !utils.ValueIsEmpty(buildingid){ - query = query.And("propertytab.buildingid = ?",buildingid) + if !utils.ValueIsEmpty(t.Carportid) { + var info CarporttabContract + query := e.Table("carporttab").Join("RIGHT", "propertytab", "carporttab.propertyid=propertytab.propertyid and carporttab.cid=propertytab.cid").Join("LEFT", "propertytypetab", "carporttab.propertytypeid=propertytypetab.propertytypeid and carporttab.cid=propertytypetab.cid").Join("LEFT", "contracttab", "carporttab.contractid=contracttab.contractid and carporttab.cid=contracttab.cid").Where("carporttab.cid = ?", t.Cid) + if !utils.ValueIsEmpty(buildingid) { + query = query.And("propertytab.buildingid = ?", buildingid) + } + if !utils.ValueIsEmpty(unit) { + query = query.And("propertytab.unit = ?", unit) + } + if !utils.ValueIsEmpty(room) { + query = query.And("propertytab.room = ?", room) + } + if !utils.ValueIsEmpty(t.Carportid) { + query = query.And("carporttab.carportid = ?", t.Carportid) + } + if utils.ValueIsEmpty(info.Propertytab.Propertyid) { + data.Propertyid = buildingid + "-" + unit + "-" + room + } else { + data.Propertyid = info.Propertytab.Propertyid + } + _, err = query.Get(&info) + if err != nil { + return data, err + } + data.Propertyid = info.Propertytab.Propertyid + data.Carportid = info.Carporttab.Carportid + data.Cid = info.Propertytab.Cid + data.Room = info.Propertytab.Room + data.Unit = info.Unit + data.Buildingid = info.Propertytab.Buildingid + data.Contractid = info.Propertytab.Contractid + data.Descr = info.Propertytab.Descr + data.Contact = info.Propertytab.Contact + data.Phone1 = info.Propertytab.Phone1 + data.Phone2 = info.Propertytab.Phone2 + data.Constructionarea = info.Propertytab.Constructionarea + data.Unitprice = info.Propertytypetab.Unitprice + data.Contracttab = info.Contracttab + data.Chargetype = 3 + } else { + var info CarporttabInfo + query := e.Table("propertytab").Join("LEFT", "propertytypetab", "propertytab.cid=propertytypetab.cid").Where("propertytab.cid = ? and propertytypetab.propertytypeid = ?", t.Cid, "车位费") + if !utils.ValueIsEmpty(buildingid) { + query = query.And("propertytab.buildingid = ?", buildingid) + } + if !utils.ValueIsEmpty(unit) { + query = query.And("propertytab.unit = ?", unit) + } + if !utils.ValueIsEmpty(room) { + query = query.And("propertytab.room = ?", room) + } + if utils.ValueIsEmpty(info.Propertytab.Propertyid) { + data.Propertyid = buildingid + "-" + unit + "-" + room + } else { + data.Propertyid = info.Propertytab.Propertyid + } + _, err = query.Get(&info) + if err != nil { + return data, err + } + data.Propertyid = info.Propertytab.Propertyid + data.Cid = info.Propertytab.Cid + data.Room = info.Propertytab.Room + data.Unit = info.Unit + data.Buildingid = info.Propertytab.Buildingid + data.Contractid = info.Propertytab.Contractid + data.Descr = info.Propertytab.Descr + data.Contact = info.Propertytab.Contact + data.Phone1 = info.Propertytab.Phone1 + data.Phone2 = info.Propertytab.Phone2 + data.Constructionarea = info.Propertytab.Constructionarea + data.Unitprice = info.Propertytypetab.Unitprice + data.Chargetype = 3 } - if !utils.ValueIsEmpty(unit){ - query = query.And("propertytab.unit = ?",unit) - } - if !utils.ValueIsEmpty(room){ - query = query.And("propertytab.room = ?",room) - } - if !utils.ValueIsEmpty(t.Carportid){ - query = query.And("carporttab.carportid = ?",t.Carportid) - } - _, err := query.Get(&info) + carPortIdList := make([]string, 0) + err = e.Table(t.TableName()).Where("cid = ? and propertyid = ?", t.Cid, t.Propertyid).Cols("carportid").Find(&carPortIdList) if err != nil { return data, err } - data.Propertyid = info.Propertytab.Propertyid - data.Carportid = info.Carporttab.Carportid - data.Cid = info.Propertytab.Cid - data.Room = info.Propertytab.Room - data.Unit = info.Unit - data.Buildingid = info.Propertytab.Buildingid - data.Contractid = info.Propertytab.Contractid - data.Descr = info.Propertytab.Descr - data.Contact = info.Propertytab.Contact - data.Phone1 = info.Propertytab.Phone1 - data.Phone2 = info.Propertytab.Phone2 - data.Constructionarea = info.Propertytab.Constructionarea - data.Unitprice = info.Propertytypetab.Unitprice - data.Contracttab = info.Contracttab - data.Chargetype = 3 - return data, err + data.CarportidList = carPortIdList + return data, nil }