diff --git a/api/mobile/survey.go b/api/mobile/survey.go index 2cf503120f1a7d81f3dcb936eed02f679abf4bfa..f82918fb27ad0511db47d6ef31070c6f6d18eab8 100755 --- a/api/mobile/survey.go +++ b/api/mobile/survey.go @@ -116,34 +116,87 @@ func ExportSurveyUserExcel(c *gin.Context) { _ = c.ShouldBindQuery(&req) req.PageSize = 99999 + req.Status = 1 _, list, _ := service.GetSurveyUserList(req) - fileName := "用户列表" + time.Now().Format("20060102") + fileName := "留资信æ¯åˆ—表" + time.Now().Format("20060102") f := excelize.NewFile() // Create a new sheet. index := f.NewSheet(fileName) - f.SetCellValue(fileName, "A1", "链接所属人") - f.SetCellValue(fileName, "B1", "链接所属人电è¯") - f.SetCellValue(fileName, "C1", "䏋啿—¶é—´") - f.SetCellValue(fileName, "D1", "开通天数") - f.SetCellValue(fileName, "E1", "订å•金é¢") - f.SetCellValue(fileName, "F1", "支付金é¢") - f.SetCellValue(fileName, "G1", "订å•类型") - f.SetCellValue(fileName, "H1", "备注") + f.MergeCell(fileName, "A1", "E1") + f.SetCellValue(fileName, "A1", "留资信æ¯") + f.MergeCell(fileName, "F1", "P1") + f.SetCellValue(fileName, "F1", "电销沟通结果") + f.MergeCell(fileName, "Q1", "U1") + f.SetCellValue(fileName, "Q1", "æ¸ é“ä¿¡æ¯") + + f.SetCellValue(fileName, "A2", "è”系人") + f.SetCellValue(fileName, "B2", "è”系电è¯") + f.SetCellValue(fileName, "C2", "留资时间") + f.SetCellValue(fileName, "D2", "留资选é…产å“") + f.SetCellValue(fileName, "E2", "备注") + f.SetCellValue(fileName, "F2", "ç”µè¯æ²Ÿé€š") + f.SetCellValue(fileName, "G2", "沟通日期") + f.SetCellValue(fileName, "H2", "医院åç§°") + f.SetCellValue(fileName, "I2", "医院状æ€") + f.SetCellValue(fileName, "J2", "开业时间") + f.SetCellValue(fileName, "K2", "所属çœä»½") + f.SetCellValue(fileName, "L2", "ç¾å•状æ€") + f.SetCellValue(fileName, "M2", "è½¬ä»‹ç»æ¸ é“状æ€") + f.SetCellValue(fileName, "N2", "ç¾çº¦é‡‘é¢") + f.SetCellValue(fileName, "O2", "ç¾çº¦é€‰é…产å“") + f.SetCellValue(fileName, "P2", "电销人员") + f.SetCellValue(fileName, "Q2", "转介ç»äºº") + f.SetCellValue(fileName, "R2", "转介ç»äººç”µè¯") + f.SetCellValue(fileName, "S2", "æ¸ é“类型") + f.SetCellValue(fileName, "T2", "æ¸ é“") + f.SetCellValue(fileName, "U2", "æ¸ é“链接") for k, v := range list { - a := strconv.Itoa(k + 2) - f.SetCellValue(fileName, "A"+a, v.WorkerName) - f.SetCellValue(fileName, "B"+a, v.WorkerMobile) - f.SetCellValue(fileName, "C"+a, v.WorkerMobile) - f.SetCellValue(fileName, "D"+a, v.WorkerMobile) - f.SetCellValue(fileName, "E"+a, v.WorkerMobile) - f.SetCellValue(fileName, "F"+a, v.WorkerMobile) - f.SetCellValue(fileName, "G"+a, v.WorkerMobile) - f.SetCellValue(fileName, "H"+a, v.WorkerMobile) + surveyData := service.GetSurveyUserDataList(v.Id) + + optionData := "" + for _, v2 := range surveyData { + optionData += v2.OptionValue + " * " + strconv.Itoa(v2.OptionNum) + "; " + } + + isReference := "转介ç»ç•™èµ„" + if v.Contacts == v.WorkerMobile { + isReference = "直接留资" + } + + moc := "" + if v.MocId == 1 { + moc = "çŸä¿¡" + } + + url := global.GVA_CONFIG.Common.Url + "?" + v.Vcode + + a := strconv.Itoa(k + 3) + f.SetCellValue(fileName, "A"+a, v.Contacts) + f.SetCellValue(fileName, "B"+a, v.ContactsMobile) + f.SetCellValue(fileName, "C"+a, v.CreateTime) + f.SetCellValue(fileName, "D"+a, optionData) + f.SetCellValue(fileName, "E"+a, "") + f.SetCellValue(fileName, "F"+a, "") + f.SetCellValue(fileName, "G"+a, "") + f.SetCellValue(fileName, "H"+a, "") + f.SetCellValue(fileName, "I"+a, "") + f.SetCellValue(fileName, "J"+a, "") + f.SetCellValue(fileName, "K"+a, "") + f.SetCellValue(fileName, "L"+a, "") + f.SetCellValue(fileName, "M"+a, "") + f.SetCellValue(fileName, "N"+a, "") + f.SetCellValue(fileName, "O"+a, "") + f.SetCellValue(fileName, "P"+a, "") + f.SetCellValue(fileName, "Q"+a, v.Reference) + f.SetCellValue(fileName, "R"+a, v.ReferenceMobile) + f.SetCellValue(fileName, "S"+a, isReference) + f.SetCellValue(fileName, "T"+a, moc) + f.SetCellValue(fileName, "U"+a, url) } // Set active sheet of the workbook. diff --git a/config.yaml b/config.yaml index 6f666537f9c6f997b6752a030fa25c565a12d62c..8d9c70eaed4d16629227ac974d9c014212156bd9 100755 --- a/config.yaml +++ b/config.yaml @@ -116,7 +116,7 @@ encrypt: key: "75SIQyfvwHDU0GbO" common: type: "2" - url: "https://tdt.pet-dbc.cn/" + url: "https://tdt.pet-dbc.cn" sms: smsname: "dbc" diff --git a/model/request/survey.go b/model/request/survey.go index f6627367fe5f71f0078831e598679041d574bd96..f8ba989676e2ba5442bddd5e88e24f7e99caf508 100755 --- a/model/request/survey.go +++ b/model/request/survey.go @@ -27,6 +27,7 @@ type GetSurveyUserListReq struct { ReferenceMobile string `gorm:"type:string(255)" json:"reference_mobile"` StartCreateTime string `json:"start_create_time" form:"start_create_time"` EndCreateTime string `json:"end_create_time" form:"end_create_time"` + Status int `gorm:"type:int(255)" json:"status"` } type GetSurveyUserListReply struct { @@ -36,15 +37,21 @@ type GetSurveyUserListReply struct { type GetSurveyUserList struct { Data []model.SurveyUserData `gorm:"-" json:"data"` + Id int `gorm:"type:int(255)" json:"id"` SurveyId int `gorm:"type:int(255)" json:"survey_id"` UserId int `gorm:"type:int(255)" json:"user_id"` MocId int `gorm:"type:int(255)" json:"moc_id"` + CodeMobile string `gorm:"type:string(255)" json:"code_mobile"` + Code string `gorm:"type:string(255)" json:"code"` Contacts string `gorm:"type:string(255)" json:"contacts"` ContactsMobile string `gorm:"type:string(255)" json:"contacts_mobile"` Reference string `gorm:"type:string(255)" json:"reference"` ReferenceMobile string `gorm:"type:string(255)" json:"reference_mobile"` WorkerName string `gorm:"type:string(255)" json:"worker_name"` WorkerMobile string `gorm:"type:string(255)" json:"worker_mobile"` + CreateTime string `gorm:"type:string(255)" json:"create_time"` + Vcode string `gorm:"type:string(255)" json:"vcode"` + Status int `gorm:"type:int(255)" json:"status"` } type GetSurveyLogListReq struct { diff --git a/service/survey.go b/service/survey.go index 214b0dc551f879dd2efb024e95360c88a4dfcb04..1c51f3a570d70f5ff33655eb6834de66fd79a8bd 100755 --- a/service/survey.go +++ b/service/survey.go @@ -41,43 +41,49 @@ func GetSurveyUserList(req request.GetSurveyUserListReq) (error, []request.GetSu list := make([]request.GetSurveyUserList, 0) table := " survey_user as sur " + - " left join customer_user as cu on sur.user_id=cu.id " + " left join customer_user as cu on sur.user_id=cu.id " + + " left join vcode as vc on sur.user_id=vc.user_id and sur.moc_id = vc.moc_id " - field := " sur.id, sur.user_id, sur.moc_id, sur.contacts, sur.contacts_mobile" + + field := " sur.id, sur.user_id, sur.moc_id, sur.code_mobile, sur.code, sur.contacts, sur.contacts_mobile" + ", sur.reference, sur.reference_mobile, sur.create_time" + ", sur.country, sur.area, sur.region, sur.city" + - ", cu.worker_name, cu.worker_mobile " + ", cu.worker_name, cu.worker_mobile " + + ", vc.code as vcode " conditions := "" orderby := " sur.create_time desc " if req.MocId != 0 { - conditions += " AND sur.moc_id = " + strconv.Itoa(currentpage) + conditions += " AND sur.moc_id = " + strconv.Itoa(req.MocId) + } + + if req.Status != 0 { + conditions += " AND sur.status = " + strconv.Itoa(req.Status) } if req.Region != "" { - conditions += " AND region like '%" + req.Region + "%'" + conditions += " AND sur.region like '%" + req.Region + "%'" } if req.City != "" { - conditions += " AND city like '%" + req.City + "%'" + conditions += " AND sur.city like '%" + req.City + "%'" } if req.Contacts != "" { - conditions += " AND contacts like '%" + req.Contacts + "%'" + conditions += " AND sur.contacts like '%" + req.Contacts + "%'" } if req.ContactsMobile != "" { - conditions += " AND contacts_mobile like '%" + req.ContactsMobile + "%'" + conditions += " AND sur.contacts_mobile like '%" + req.ContactsMobile + "%'" } if req.Reference != "" { - conditions += " AND reference like '%" + req.Reference + "%'" + conditions += " AND sur.reference like '%" + req.Reference + "%'" } if req.ReferenceMobile != "" { - conditions += " AND reference_mobile like '%" + req.ReferenceMobile + "%'" + conditions += " AND sur.reference_mobile like '%" + req.ReferenceMobile + "%'" } if req.StartCreateTime != "" { @@ -91,7 +97,7 @@ func GetSurveyUserList(req request.GetSurveyUserListReq) (error, []request.GetSu //@@æ€»æ¡æ•°ï¼Œæ€»é¡µæ•° var totalItem int64 = 0 - sqlStr := "SELECT count(vo.id) as totalItem FROM " + table + " where 1=1 " + conditions + sqlStr := "SELECT count(sur.id) as totalItem FROM " + table + " where 1=1 " + conditions global.GVA_DB.Raw(sqlStr).Count(&totalItem) //èŽ·å–æ€»æ¡æ•° sqlStr2 := "SELECT " + field + @@ -107,6 +113,27 @@ func GetSurveyUserList(req request.GetSurveyUserListReq) (error, []request.GetSu return nil, list, totalItem } +func GetSurveyUserDataList(id int) []model.SurveyUserData { + + list := make([]model.SurveyUserData, 0) + + table := " survey_user_data " + + field := " survey_user_id, `option`, option_value, option_num, price " + + conditions := " AND survey_user_id = " + strconv.Itoa(id) + + sqlStr2 := "SELECT " + field + + " FROM " + table + + " WHERE 1>0 " + conditions + + global.GVA_DB.Raw(sqlStr2).Scan(&list) + if global.GVA_DB.Error != nil { + return []model.SurveyUserData{} + } + return list +} + func GetSurveyLogList(req request.GetSurveyLogListReq) (error, []request.GetSurveyLogList, int64) { pagesize := 10 page := 1