Commit 3e8a66eb authored by haoyanbin's avatar haoyanbin

1

parent fbe19fe5
......@@ -15,6 +15,11 @@ import (
"time"
)
var Moc = map[int]string{
1: "直接留资",
2: "转介绍留资",
}
func GetSurveyUserList(c *gin.Context) {
var req request.GetSurveyUserListReq
_ = c.ShouldBindJSON(&req)
......@@ -92,8 +97,8 @@ func CreateSurveyLog(c *gin.Context) {
var req model.SurveyLog
_ = c.ShouldBindJSON(&req)
//ipData, _ := service.GetIpaddr(c.ClientIP())
ipData, _ := service.GetIpaddr("125.34.219.138")
ipData, _ := service.GetIpaddr(c.ClientIP())
//ipData, _ := service.GetIpaddr("125.34.219.138")
//fmt.Println(ipData)
req.Country = ipData.Country
......@@ -102,6 +107,7 @@ func CreateSurveyLog(c *gin.Context) {
req.City = ipData.City
req.CreateTime = utils.NowTime()
req.Ip = c.ClientIP()
if err := service.CreateSurveyLog(req); err != nil {
global.GVA_LOG.Error("创建失败!", zap.Any("err", err))
response.FailWithMessage("创建失败", c)
......@@ -163,10 +169,7 @@ func ExportSurveyUserExcel(c *gin.Context) {
optionData += v2.OptionValue + " * " + strconv.Itoa(v2.OptionNum) + "; "
}
isReference := "转介绍留资"
if v.Contacts == v.WorkerMobile {
isReference = "直接留资"
}
isReference := "直接留资"
moc := ""
if v.MocId == 1 {
......@@ -217,19 +220,6 @@ func ExportMocDataExcel(c *gin.Context) {
var req request.GetSurveyUserListReq
_ = c.ShouldBindQuery(&req)
req.Status = 1
//req.IsReference = 1
req.MocId = 1
surveyCount := service.GetSurveyUserCount(req) //留资数量
logCountReq := request.GetSurveyLogListReq{
SlPage: 10,
MocId: req.MocId,
}
logCount := service.GetSurveyLogCount(logCountReq) //点击量
fmt.Println(logCount)
fileName := "数据统计" + time.Now().Format("20060102")
f := excelize.NewFile()
// Create a new sheet.
......@@ -247,18 +237,31 @@ func ExportMocDataExcel(c *gin.Context) {
f.SetCellValue(fileName, "J1", "留资率")
f.SetCellValue(fileName, "K1", "获客单价")
f.SetCellValue(fileName, "A2", time.Now().Format("2006/01/02"))
f.SetCellValue(fileName, "B2", "直接留资")
f.SetCellValue(fileName, "C2", "短信")
f.SetCellValue(fileName, "D2", "")
f.SetCellValue(fileName, "E2", "")
f.SetCellValue(fileName, "F2", "")
f.SetCellValue(fileName, "G2", logCount[0].Cid)
f.SetCellValue(fileName, "H2", "")
f.SetCellValue(fileName, "I2", surveyCount)
f.SetCellValue(fileName, "J2", "")
f.SetCellValue(fileName, "K2", "")
for k, v := range Moc {
req.MocId = k
req.Status = 1
surveyCount := service.GetSurveyUserCount(req) //留资数量
logCountReq := request.GetSurveyLogListReq{
SlPage: 10,
MocId: k,
Groupby: " user_id ",
}
logCount := service.GetSurveyLogCount(logCountReq) //点击量
a := strconv.Itoa(k + 1)
f.SetCellValue(fileName, "A"+a, time.Now().Format("2006/01/02"))
f.SetCellValue(fileName, "B"+a, v)
f.SetCellValue(fileName, "C"+a, "短信")
f.SetCellValue(fileName, "D"+a, "")
f.SetCellValue(fileName, "E"+a, "")
f.SetCellValue(fileName, "F"+a, "")
f.SetCellValue(fileName, "G"+a, logCount[k])
f.SetCellValue(fileName, "H"+a, "")
f.SetCellValue(fileName, "I"+a, surveyCount)
f.SetCellValue(fileName, "J"+a, "")
f.SetCellValue(fileName, "K"+a, "")
}
// Set active sheet of the workbook.
f.SetActiveSheet(index)
// Save xlsx file by the given path.
......
......@@ -83,6 +83,6 @@ type GetSurveyLogList struct {
}
type SlData struct {
Cid int `json:"cid"`
Page int `json:"page"`
Cid int `json:"cid"`
MocId int `json:"moc_id"`
}
......@@ -35,6 +35,7 @@ type SurveyLog struct {
MocId int `gorm:"type:int(255)" json:"moc_id"`
Page int `gorm:"type:int(255)" json:"page"`
CreateTime string `gorm:"type:string(255)" json:"create_time"`
Ip string `gorm:"type:string(255)" json:"ip"`
Country string `gorm:"type:string(255)" json:"country"`
Area string `gorm:"type:string(255)" json:"area"`
Region string `gorm:"type:string(255)" json:"region"`
......
......@@ -265,14 +265,14 @@ func GetSurveyUserCount(req request.GetSurveyUserListReq) int64 {
}
// 点击量
func GetSurveyLogCount(req request.GetSurveyLogListReq) []request.SlData {
func GetSurveyLogCount(req request.GetSurveyLogListReq) map[int]int {
list := make([]request.SlData, 0)
table := " survey_log as sl " +
" left join customer_user as cu on sl.user_id=cu.id "
table := " (select moc_id, user_id, page from survey_log group by ip)sl "
//table := " survey_log as sl left join customer_user as cu on sl.user_id=cu.id "
field := " count(sl.id) as cid, sl.page "
field := " count(sl.page) as cid, sl.moc_id "
conditions := ""
......@@ -305,12 +305,16 @@ func GetSurveyLogCount(req request.GetSurveyLogListReq) []request.SlData {
" WHERE 1>0 " + conditions
if req.Groupby != "" {
sqlStr2 += " GROUP BY " + req.Groupby
sqlStr2 += " GROUP BY sl.moc_id"
}
global.GVA_DB.Raw(sqlStr2).Scan(&list)
if global.GVA_DB.Error != nil {
return nil
}
return list
reply := make(map[int]int, 0)
for _, v := range list {
reply[v.MocId] = v.Cid
}
return reply
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment