package svc import ( "applet/app/md" "applet/app/utils" db "code.fnuoos.com/zhimeng/model.git/src" implement2 "code.fnuoos.com/zhimeng/model.git/src/implement" model2 "code.fnuoos.com/zhimeng/model.git/src/model" "code.fnuoos.com/zhimeng/model.git/src/super/implement" "github.com/gin-gonic/gin" "strings" ) func DataCenterOriginalDataList(c *gin.Context, req md.DataCenterOriginalDataReq) md.DataCenterOriginalDataRes { engine := db.Db NewOriginalWxAdDataDb := implement.NewOriginalWxAdDataDb(engine) appId := GetAppletId(c, req.Name, req.Platform) slotId := GetSlotId(c, req.State) MediumList, total, _ := NewOriginalWxAdDataDb.FindOriginalWxAdDataList("", appId, slotId, req.StartTime, req.EndTime, utils.StrToInt(req.Page), utils.StrToInt(req.Limit)) data := make([]md.DataCenterOriginalDataData, 0) if len(MediumList) > 0 { for _, v := range MediumList { var tmp = md.DataCenterOriginalDataData{ Id: utils.IntToStr(v.Id), ReqSuccCount: utils.IntToStr(v.ReqSuccCount), ExposureCount: utils.IntToStr(v.ExposureCount), ExposureRate: v.ExposureRate, ClickCount: utils.IntToStr(v.ClickCount), ClickRate: v.ClickRate, Date: v.Date, PublisherIncome: utils.Float64ToStr(float64(v.PublisherIncome) / 100), Ecpm: utils.Float64ToStr(utils.StrToFloat64(v.Ecpm) / 100), IsApply: utils.IntToStr(v.IsApply), } tmpApplet := GetAppletInfo(c, v.AppId) if tmpApplet["platform"] != "" { tmp.Platform = tmpApplet["platform"] } if tmpApplet["name"] != "" { tmp.Name = tmpApplet["name"] } tmpSlot := GetSlotInfo(c, v.SlotId) if tmpSlot["state"] != "" { tmp.State = tmpSlot["state"] } if tmpSlot["name"] != "" { tmp.AdvName = tmpSlot["name"] } data = append(data, tmp) } } res := md.DataCenterOriginalDataRes{ List: data, Total: total, State: md.AdState, Platform: md.AdPlatform, } return res } // 应用 func GetAppletId(c *gin.Context, name, platform string) string { mediumId := "" sess := MasterDb(c).Where("1=1") if name != "" || platform != "" { ids := []string{"-1"} var tmp []model2.AppletApplication if name != "" { sess.And("name like ? ", "%"+name+"%") } if platform != "" { sess.And("platform = ? ", platform) } sess.Find(&tmp) for _, v := range tmp { ids = append(ids, utils.IntToStr(v.MediumId)) } mediumId = strings.Join(ids, ",") } return mediumId } // 广告位 func GetSlotId(c *gin.Context, state string) string { mediumId := "" if state != "" { ids := []string{"-1"} var tmp []model2.AppletApplicationAdSpaceList MasterDb(c).Where("state=?", state).Find(&tmp) for _, v := range tmp { ids = append(ids, utils.IntToStr(v.MediumId)) } mediumId = strings.Join(ids, ",") } return mediumId } // 应用 func GetAppletInfo(c *gin.Context, id string) map[string]string { var res = map[string]string{ "platform": "", "name": "", } NewAppletApplicationDb := implement2.NewAppletApplicationDb(MasterDb(c)) data, _ := NewAppletApplicationDb.GetAppletApplicationListByAppid(id) if data != nil { res["platform"] = data.Platform res["name"] = data.Name } return res } // 广告位 func GetSlotInfo(c *gin.Context, id string) map[string]string { var res = map[string]string{ "state": "", "name": "", } NewAppletApplicationAdSpaceListDb := implement2.NewAppletApplicationAdSpaceListDb(MasterDb(c)) data, _ := NewAppletApplicationAdSpaceListDb.GetAppletApplicationAdSpaceListByAdId(id) if data != nil { res["name"] = data.Name res["state"] = utils.IntToStr(data.State) } return res }