package cygx import ( "fmt" "github.com/rdlucklib/rdluck_tools/paging" "hongze/hz_crm_api/controllers" "hongze/hz_crm_api/models" "hongze/hz_crm_api/models/cygx" "hongze/hz_crm_api/utils" "strconv" "strings" ) // 权益服务类型 type RaiServeCoAntroller struct { controllers.BaseAuthController } // @Title 服务类型列表 // @Description 服务类型列表接口 // @Success 200 {object} cygx.RaiServeTypeListResp // @router /rai_serve/type_list [get] func (this *RaiServeCoAntroller) TypeList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } resp := new(cygx.RaiServeTypeListResp) var condition string list, err := cygx.GetRaiServeTypeRespList(condition) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } resp.List = list br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 标签搜索 // @Description 标签搜索接口 // @Param KeyWord query string false "搜索关键词" // @Success 200 {object} cygx.RaiServeTagListResp // @router /rai_serve/search_tag [get] func (this *RaiServeCoAntroller) SearchTag() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } keyWord := this.GetString("KeyWord") if keyWord == "" { br.Msg = "请输入搜索关键词" return } //keyWordSlice := strings.Split(keyWord, ",") //var conditionindustrial string //var conditionsubject string //for _, v := range keyWordSlice { // conditionindustrial += ` OR i.industry_name LIKE '%` + v + `%' ` // conditionsubject += ` OR s.subject_name LIKE '%` + v + `%' ` //} resp := new(cygx.RaiServeTagListResp) list, err := cygx.GetRaiServeSearchTagRespList(keyWord) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } //如果有固收或者策略就去查询行业表 if strings.Contains("固收", keyWord) || strings.Contains("策略", keyWord) { var condition string var pars []interface{} keyWord = "%" + keyWord + "%" condition = ` AND product_id = 2 AND permission_name IN ('策略','固收') AND permission_name LIKE ? ` pars = append(pars, keyWord) listChartPermission, err := models.GetChartPermissionListByCondition(condition, pars) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,GetChartPermissionListByCondition Err:" + err.Error() return } for _, v := range listChartPermission { item := new(cygx.RaiServeTagResp) item.TagType = 3 item.TagId = v.ChartPermissionId item.TagName = v.PermissionName list = append(list, item) } } if len(list) == 0 { list = make([]*cygx.RaiServeTagResp, 0) } else { for _, v := range list { v.Md5Key = utils.MD5(fmt.Sprintf("K_", v.TagType, "V_", v.TagId)) } } resp.List = list br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 标签搜索(研究员日历添加到会信息) // @Description 标签搜索接口 // @Param KeyWord query string false "搜索关键词" // @Param ResearcherId query int false "研究员ID" // @Success 200 {object} cygx.RaiServeTagListResp // @router /rai_serve/search_tag_by_calendar [get] func (this *RaiServeCoAntroller) SearchTagCalendar() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } keyWord := this.GetString("KeyWord") researcherId := this.GetString("ResearcherId") askEmailList, err := cygx.GetAskEmailListByAdminIds(researcherId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "GetAskEmailCountByCelue,Err:" + err.Error() return } var hasCelue bool var permissionName []string for _, v := range askEmailList { permissionName = append(permissionName, v.ChartPermissionName) if v.ChartPermissionName == "策略" || v.ChartPermissionName == "固收" { hasCelue = true } } var permissionNameSql []string for _, v := range permissionName { permissionNameSql = append(permissionNameSql, "'"+v+"'") } chartList, err := models.GetChartPermissionByNamesByRai(permissionNameSql) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,GetChartPermissionByNames Err:" + err.Error() return } var list []*cygx.RaiServeTagResp resp := new(cygx.RaiServeTagListResp) if hasCelue { for _, v := range chartList { item := new(cygx.RaiServeTagResp) item.TagType = 3 item.TagId = v.ChartPermissionId item.TagName = v.PermissionName list = append(list, item) } } else { if keyWord == "" { br.Msg = "请输入搜索关键词" return } keyWordSlice := strings.Split(keyWord, ",") var conditionindustrial string var conditionsubject string for _, v := range keyWordSlice { conditionindustrial += ` OR i.industry_name LIKE '%` + v + `%' ` conditionsubject += ` OR s.subject_name LIKE '%` + v + `%' ` } var permissionId []string for _, v := range chartList { permissionId = append(permissionId, strconv.Itoa(v.ChartPermissionId)) } list, err = cygx.GetRaiServeSearchTagRespListBycharId(keyWord, strings.Join(permissionId, ","), conditionindustrial, conditionsubject) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,GetRaiServeSearchTagRespListBycharId Err:" + err.Error() return } } if len(list) == 0 { list = make([]*cygx.RaiServeTagResp, 0) } else { for _, v := range list { v.Md5Key = utils.MD5(fmt.Sprintf("K_", v.TagType, "V_", v.TagId)) } } resp.List = list br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 校验是否属于策略固收 // @Description 校验是否属于策略固收接口 // @Param ResearcherId query int false "研究员ID" // @Success 200 {object} cygx.RaiServeTagListResp // @router /rai_serve/chcck_PermissionName [get] func (this *RaiServeCoAntroller) ChcckPermissionName() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } researcherId := this.GetString("ResearcherId") askEmailList, err := cygx.GetAskEmailListByAdminIds(researcherId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "GetAskEmailCountByCelue,Err:" + err.Error() return } var belong bool var permissionNameResp []string var permissionNames []string for _, v := range askEmailList { permissionNames = append(permissionNames, v.ChartPermissionName) if v.ChartPermissionName == "策略" || v.ChartPermissionName == "固收" { belong = true permissionNameResp = append(permissionNameResp, v.ChartPermissionName) } } resp := new(cygx.ChekChartPermissionNameResp) resp.Belong = belong resp.ChartPermissionName = strings.Join(permissionNameResp, ",") br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 权益服务统计列表 // @Description 权益服务统计列表接口 // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Param SellerId query string false "销售id" // @Param ShareSellerId query string false "共享销售ID" // @Param ServeTypeId int int false "服务类型ID" // @Param TagType int string false "标签类型" // @Param TagId int string false "标签ID" // @Param Status query string false "客户状态,正式、未续约(除了正式之外的所有)" // @Param SortType query string true "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`" // @Param IsExport query bool false "是否导出excel,默认是false" // @Success 200 {object} cygx.RaiServeTagListResp // @router /rai_serve/list [get] func (this *RaiServeCoAntroller) List() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") status := this.GetString("Status") sellerId := this.GetString("SellerId") shareSellerId := this.GetString("ShareSellerId") sortType := this.GetString("SortType") tagType, _ := this.GetInt("TagType") tagId, _ := this.GetInt("TagId") serveTypeId, _ := this.GetInt("ServeTypeId") isExport, _ := this.GetBool("IsExport") resp := new(cygx.CygxRaiServeCompanyListResp) var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = utils.StartIndex(currentIndex, pageSize) var condition string var sortStr string var pars []interface{} if status != "" { if status == "正式" { condition = " AND status = '正式' " } else { condition = " AND status != '正式' " } } if sellerId != "" { condition = " AND seller_id IN (?) " pars = append(pars, sellerId) } if shareSellerId != "" { condition = " AND share_seller_id IN (?) " pars = append(pars, shareSellerId) } if sortType != "" { if sortType == "asc" { sortStr = " ORDER BY money ASC " } else if sortType == "desc" { sortStr = " ORDER BY money DESC " } } else { sortStr = " ORDER BY end_date DESC " } total, err := cygx.GetCygxRaiServeCompanyCount(condition, pars) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,GetCygxRaiServeCompanyCountErr:" + err.Error() return } listRaiServeCompany, err := cygx.GetCygxRaiServeCompanyList(condition+sortStr, pars, startSize, pageSize) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,Err:" + err.Error() return } switch tagType { case 1: fmt.Println(tagId) case 2: case 3: } if serveTypeId > 0 { } if isExport { } for _, v := range listRaiServeCompany { item := new(cygx.CygxRaiServeCompanyResp) item.CompanyId = v.CompanyId item.CompanyName = v.CompanyName item.Money = v.Money item.ServeCoverageRate = v.ServeCoverageRate + "%" item.SellerId = v.SellerId item.SellerName = v.SellerName item.StartDate = v.StartDate item.StartDate = v.StartDate item.EndDate = v.EndDate item.ShareSeller = v.ShareSeller item.ShareSellerId = v.ShareSellerId item.Status = v.Status item.PermissionName = v.PermissionName item.ThisWeekAmount = 99 item.LastWeekAmount = 99 item.TwoWeekAmount = 99 item.ThreeWeekAmount = 99 resp.List = append(resp.List, item) } page := paging.GetPaging(currentIndex, pageSize, total) resp.Paging = page br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 近四周覆盖率 // @Description 近四周覆盖率接口 // @Param CompanyId query int false "公司ID" // @Success 200 {object} cygx.RaiServeTagListResp // @router /rai_serve/coverage_rate [get] func (this *RaiServeCoAntroller) CoverageRate() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } companyId := this.GetString("CompanyId") fmt.Println(companyId) resp := new(cygx.RaiServeCoverageRateResp) //ThisWeekAmount string `comment:"本周互动量"` //LastWeekAmount string `comment:"上周互动量"` //TwoWeekAmount string `comment:"上上周互动量"` //ThreeWeekAmount string `comment:"上三周互动量"` resp.ThisWeekAmount = "22%" resp.LastWeekAmount = "33%" resp.TwoWeekAmount = "44%" resp.ThreeWeekAmount = "55%" //resp.List = []string{"22%", "33%", "44%", "55%"} br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // @Title 明细列表 // @Description 明细列表接口 // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Param CompanyId query int false "公司ID" // @Param TagType query int false "标签类型" // @Param TagId query int false "标签ID" // @Param ServeTypeId int int false "服务类型ID" // @Param WhatWeek query int false "哪一周 ,1:本周、2:上周、3:上上周、4上三周" // @Success 200 {object} cygx.RaiServeTagListResp // @router /rai_serve/bill_list [get] func (this *RaiServeCoAntroller) BillList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") companyId, _ := this.GetInt("CompanyId") tagType, _ := this.GetInt("TagType") tagId, _ := this.GetInt("TagId") serveTypeId, _ := this.GetInt("ServeTypeId") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = utils.StartIndex(currentIndex, pageSize) if companyId == 0 { br.Msg = "请选择对应公司ID" return } var condition string var pars []interface{} condition = " AND company_id = ? " pars = append(pars, companyId) if serveTypeId > 0 { condition += " AND serve_type_id = ? " pars = append(pars, serveTypeId) } switch tagType { case 1: fmt.Println(tagId) case 2: case 3: } total, err := cygx.GetCygxRaiServeBillCount(condition, pars) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,GetCygxRaiServeBillCount:" + err.Error() return } list, err := cygx.GetCygxRaiServeBillRespList(condition, pars, startSize, pageSize) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取失败,GetCygxRaiServeBillRespList:" + err.Error() return } page := paging.GetPaging(currentIndex, pageSize, total) resp := new(cygx.CygxRaiServeBillListResp) resp.Paging = page if len(list) == 0 { resp.List = make([]*cygx.CygxRaiServeBillResp, 0) } else { for _, v := range list { v.Tag = "云计算,阿里云,华为云,移动&联通" } resp.List = list } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }