From e5bd88c503077438c1d5c0594c4e48a44ba401c4 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Fri, 12 Mar 2021 17:29:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=BC=E5=87=BA=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/controllers/chargetab_controller.go | 205 +++++++++++++++++++++++- 1 file changed, 197 insertions(+), 8 deletions(-) diff --git a/web/controllers/chargetab_controller.go b/web/controllers/chargetab_controller.go index 36d1c11..102e830 100644 --- a/web/controllers/chargetab_controller.go +++ b/web/controllers/chargetab_controller.go @@ -401,13 +401,26 @@ func GetChargeStatisticData(ctx iris.Context) { supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) return } - var chargeTab models.Chargeallocationtab - //chargeTab.Cid = user.Pid - year := time.Now().Year() - start := fmt.Sprintf("%d0101", year) - end := fmt.Sprintf("%d1231", year) + var chargeTab models.Chargetab + currentYear := time.Now().Year() + var year int + yearStr := ctx.URLParam("year") + if yearStr == "" { + year = currentYear + } else { + year = utils.ValueToInt(yearStr, 0) + } selectType := ctx.URLParam("type") - result, err := chargeTab.GetChargeStatisticData(cid, year, start, end, selectType) + date := ctx.URLParam("date") + if date != "" { + tDate, err1 := utils.TimeParseyyyyMMdd(date) + if err1 != nil { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + date = utils.TimeFormat(tDate, "yyyy-MM-dd") + } + result, err := chargeTab.GetChargeStatisticData(cid, year, selectType, date, currentYear) if err != nil { supports.Error(ctx, iris.StatusInternalServerError, "抱歉未找到相关信息", nil) return @@ -522,11 +535,31 @@ func GetChargeArrearageData(ctx iris.Context) { } buildingId := ctx.URLParam("buildingid") propertyId := ctx.URLParam("propertyid") - year := time.Now().Year() + + start := ctx.URLParam("start") + end := ctx.URLParam("end") + if start != "" || end != "" { + startT, err1 := utils.TimeParseyyyyMMdd(start) + endT, err2 := utils.TimeParseyyyyMMdd(end) + if err1 != nil || err2 != nil { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + start = utils.TimeFormat(startT, "yyyy-MM-dd") + end = utils.TimeFormat(endT, "yyyy-MM-dd") + } + currentYear := time.Now().Year() + var year int + yearStr := ctx.URLParam("year") + if yearStr != "" { + year = utils.ValueToInt(yearStr, 0) + } else { + year = currentYear + } selectType := ctx.URLParam("type") arrearageDate := fmt.Sprintf("%d-12-31", year-1) var charge models.Chargetab - result, err := charge.GetChargeArrearageData(cid, pageIndex, pageSize, year, arrearageDate, selectType, chargeType, buildingId, propertyId) + result, err := charge.GetChargeArrearageData(cid, pageIndex, pageSize, year, arrearageDate, selectType, chargeType, buildingId, propertyId, start, end, currentYear) if err != nil { fmt.Println("outer error:", err) supports.Error(ctx, iris.StatusInternalServerError, "抱歉未找到相关信息", nil) @@ -534,3 +567,159 @@ func GetChargeArrearageData(ctx iris.Context) { } supports.Ok(ctx, supports.OptionSuccess, result) } + +func ExportChargeArrearageExcel(ctx iris.Context) { + user, ok := jwts.ParseToken(ctx) + utils.TrimStruct(user, *user) + if !ok { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + logs := new(models.LeitServerLog) + logs.File = "/controllers/Chargetab_controller.go" + logs.Level = "info" + logs.Function = "GetChargeArrearageData" + logs.Message = "按日期查看缴费陈欠数据" + logs.Operator = user.Userid + logs.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + logs.InsertRecord() + + var pageSize = 10 + var pageIndex = 1 + if size := ctx.URLParam("size"); size != "" { + pageSize = utils.ValueToInt(size, 0) + } + + if index := ctx.URLParam("index"); index != "" { + pageIndex = utils.ValueToInt(index, 0) + } + + var cid int + // 如果公司机关部门可以搜索cid + if user.Pid == 110 { + cidStr := ctx.URLParam("cid") + cid = utils.ValueToInt(cidStr, 0) + } else { + cid = user.Pid + } + if cid == 0 { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + chargeType, err := ctx.URLParamInt("chargetype") + if err != nil { + chargeType = 0 + } + buildingId := ctx.URLParam("buildingid") + propertyId := ctx.URLParam("propertyid") + + start := ctx.URLParam("start") + end := ctx.URLParam("end") + if start != "" || end != "" { + startT, err1 := utils.TimeParseyyyyMMdd(start) + endT, err2 := utils.TimeParseyyyyMMdd(end) + if err1 != nil || err2 != nil { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + start = utils.TimeFormat(startT, "yyyy-MM-dd") + end = utils.TimeFormat(endT, "yyyy-MM-dd") + } + currentYear := time.Now().Year() + var year int + yearStr := ctx.URLParam("year") + if yearStr != "" { + year = utils.ValueToInt(yearStr, 0) + } else { + year = currentYear + } + selectType := ctx.URLParam("type") + arrearageDate := fmt.Sprintf("%d-12-31", year-1) + var charge models.Chargetab + fmt.Println("before get result") + result, err := charge.GetChargeArrearageExcelData(cid, pageIndex, pageSize, year, arrearageDate, selectType, chargeType, buildingId, propertyId, start, end, currentYear) + if err != nil { + fmt.Println("outer error:", err) + supports.Error(ctx, iris.StatusInternalServerError, "抱歉未找到相关信息", nil) + return + } + + _, filename, err := charge.ExportChargeArrearageExcel(result) + if err != nil { + fmt.Printf("错误err : %v", err) + supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil) + return + } + strUrl := "public/uploadxlsx/" + filename + supports.Ok(ctx, supports.OptionSuccess, strUrl) +} + + +// 按日期和缴费类型获取缴费数据 +func ExportChargeTypeExcel(ctx iris.Context) { + user, ok := jwts.ParseToken(ctx) + utils.TrimStruct(user, *user) + if !ok { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + logs := new(models.LeitServerLog) + logs.File = "/controllers/Chargetab_controller.go" + logs.Level = "info" + logs.Function = "ExportChargeTypeExcel" + logs.Message = "导出按日期和收款类型查看缴费数据" + logs.Operator = user.Userid + logs.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + logs.InsertRecord() + + var pageSize = 10 + var pageIndex = 1 + if size := ctx.URLParam("size"); size != "" { + pageSize = utils.ValueToInt(size, 0) + } + + if index := ctx.URLParam("index"); index != "" { + pageIndex = utils.ValueToInt(index, 0) + } + + var cid int + // 如果公司机关部门可以搜索cid + if user.Pid == 110 { + cidStr := ctx.URLParam("cid") + cid = utils.ValueToInt(cidStr, 0) + } else { + cid = user.Pid + } + if cid == 0 { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + date := ctx.URLParam("date") + tDate, err1 := utils.TimeParseyyyyMMdd(date) + if err1 != nil { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + // 如为传入或传入的chargeType 不合规则使用-1 进行所有chargeType的分类统计 + date = utils.TimeFormat(tDate, "yyyy-MM-dd") + chargeWay := ctx.URLParam("charge_way") + if chargeWay == "" { + supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil) + return + } + var charge models.Chargetab + result, err := charge.GetChargeTypeData(cid, chargeWay, date, pageIndex, pageSize) + if err != nil { + supports.Error(ctx, iris.StatusInternalServerError, "抱歉未找到相关信息", nil) + return + } + _, filename, err := charge.ExportChargeWayExcel(result.Items) + if err != nil { + fmt.Printf("错误err : %v", err) + supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil) + return + } + strUrl := "public/uploadxlsx/" + filename + supports.Ok(ctx, supports.OptionSuccess, strUrl) + +} \ No newline at end of file