From d87579b14c86a603b0067f0ce477d70e10aca2d9 Mon Sep 17 00:00:00 2001 From: "xiao.ming" <1210919685@qq.com> Date: Wed, 10 Nov 2021 18:51:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=91=A8=E6=8A=A5=E5=8F=AA?= =?UTF-8?q?=E8=83=BD=E6=9F=A5=E7=9C=8B=E8=87=AA=E5=B7=B1=E5=8F=8A=E5=8F=91?= =?UTF-8?q?=E9=80=81=E7=BB=99=E8=87=AA=E5=B7=B1=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- log/2021-11-10.log | 20 ++++++++++++++++++++ service/wt/wt_output.go | 12 +++++------- service/wt/wt_report.go | 23 +++++++++++++++++++++-- service/wt/wt_rules.go | 8 ++++++++ 4 files changed, 54 insertions(+), 9 deletions(-) diff --git a/log/2021-11-10.log b/log/2021-11-10.log index 064eec0..dbf816a 100644 --- a/log/2021-11-10.log +++ b/log/2021-11-10.log @@ -21,3 +21,23 @@ main.main /Users/zero/work/mygithub/goweb-gin-demo/main.go:15 runtime.main /Users/zero/go/sdk/go1.16.9/src/runtime/proc.go:225 +[goweb-demo]2021/11/10 - 16:57:19.765 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 16:57:19.767 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 17:26:39.999 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 17:26:40.001 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 17:27:01.783 error /Users/zero/work/mygithub/run_goweb-gin-demo/api/wt/wt_reports.go:112 获取失败! {"err": "Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[ 1, 2, 5, 1 ] LIMIT ? OFFSET ?' at line 1; Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[ 1, 2, 5, 1 ] LIMIT ? OFFSET ?' at line 1"} +[goweb-demo]2021/11/10 - 17:29:35.409 error /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection +[goweb-demo]2021/11/10 - 17:29:47.850 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 17:29:47.852 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 17:33:16.947 error /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection +[goweb-demo]2021/11/10 - 17:33:28.565 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 17:33:28.566 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 18:07:58.172 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 18:07:58.174 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 18:08:45.860 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 18:08:45.861 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 18:45:34.852 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 18:45:34.853 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"} +[goweb-demo]2021/11/10 - 18:47:31.305 error /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection +[goweb-demo]2021/11/10 - 18:47:42.710 info /Users/zero/work/mygithub/run_goweb-gin-demo/initialize/router.go:49 router register success +[goweb-demo]2021/11/10 - 18:47:42.711 info /Users/zero/work/mygithub/run_goweb-gin-demo/core/server.go:31 server run success on {"address": ":8889"} diff --git a/service/wt/wt_output.go b/service/wt/wt_output.go index ccd482c..3082fd3 100644 --- a/service/wt/wt_output.go +++ b/service/wt/wt_output.go @@ -19,23 +19,21 @@ type WtOutputService struct { // GetWtRule 根据id获取WtRule记录 func (wtOutputService *WtOutputService) GetStatResult(idInfo request.GetByUserID) (err error, wtRule wtRes.StatResult) { //首先查询要统计的人 - ruleInfo := wtReq.WtRuleSearch{} - ruleInfo.UserId = int(idInfo.UserId) + var WtServiceGroup WtServiceGroup - err, wtRuleResultList, _ := WtServiceGroup.WtRuleService.GetWtRuleInfoList(ruleInfo) + err, ruleResult := WtServiceGroup.WtRuleService.GetWtRuleByUserId(idInfo.UserId) if err != nil { return err, wtRes.StatResult{} } - wtRuleResult := wtRuleResultList[0] //计算起始时间 起始时间是 5-0900 7-1000 - startTime := utils.GetTimeFromWeek(wtRuleResult.StartWeek, wtRuleResult.StartHour) - endTime := utils.GetTimeFromWeek(wtRuleResult.EndWeek, wtRuleResult.EndHour) + startTime := utils.GetTimeFromWeek(ruleResult.StartWeek, ruleResult.StartHour) + endTime := utils.GetTimeFromWeek(ruleResult.EndWeek, ruleResult.EndHour) //在周报表中进行统计 - reports := wtRuleResult.Reporters + reports := ruleResult.Reporters var reportSearch wtReq.WtReportsSearch reportSearch.StartTime = startTime reportSearch.EndTime = endTime diff --git a/service/wt/wt_report.go b/service/wt/wt_report.go index 51e3de2..9890b11 100644 --- a/service/wt/wt_report.go +++ b/service/wt/wt_report.go @@ -62,14 +62,33 @@ func (wtReportsService *WtReportsService) GetWtReportsInfoList(info wtReq.WtRepo //首选获取周报的ids var reportIds []uint - reportTable.Select("`id`", offset, limit).Offset(offset).Limit(limit).Scan(&reportIds) + reportTable.Select("id").Offset(offset).Limit(limit).Scan(&reportIds) - querySql := "SELECT id, user_name, send_to, header, contents, pictures, attachments, created_at, updated_at, cmc.comment_count " + + querySql := "SELECT id, user_name, user_id, send_to, header, contents, pictures, attachments, created_at, updated_at, cmc.comment_count " + "FROM wt_reports " + "left join (SELECT report_id, count(report_id) as comment_count FROM wt_comments WHERE report_id in ? GROUP BY report_id) as cmc " + "on cmc.report_id = wt_reports.id " + "WHERE 1=1 " + if info.CurrUserId > 0 { + //查询当前user的统计规则 + var WtServiceGroup WtServiceGroup + err, ruleRes := WtServiceGroup.WtRuleService.GetWtRuleByUserId(info.CurrUserId) + + reportUserIds := " ( " + if err == nil { + reportUserList := ruleRes.Reporters + + for _, report := range reportUserList { + reportUserIds += strconv.Itoa(int(report.ID)) + ", " + } + } + + reportUserIds += strconv.Itoa(int(info.CurrUserId)) + " ) " + + querySql += " and user_id in " + reportUserIds + } + // 条件高级查询 if info.UserId > 0 { querySql += " and id = " + strconv.Itoa(int(info.UserId)) diff --git a/service/wt/wt_rules.go b/service/wt/wt_rules.go index b69df2e..578f1a7 100755 --- a/service/wt/wt_rules.go +++ b/service/wt/wt_rules.go @@ -38,6 +38,14 @@ func (wtRuleService *WtRuleService) GetWtRule(id uint) (err error, wtRule wt.WtR return } +// GetWtRule 根据user_id获取WtRule记录 +func (wtRuleService *WtRuleService) GetWtRuleByUserId(userId uint) (err error, result wtRes.WtRuleResult) { + var wtRule wt.WtRule + err = global.GLOBAL_DB.Where("user_id = ?", userId).First(&wtRule).Error + result = ruleToResult(wtRule) + return +} + // GetWtRuleInfoList 分页获取WtRule记录 func (wtRuleService *WtRuleService) GetWtRuleInfoList(info wtReq.WtRuleSearch) (err error, list []wtRes.WtRuleResult, total int64) { limit := info.PageSize