rai_serve.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. package cygx
  2. import (
  3. "fmt"
  4. "github.com/rdlucklib/rdluck_tools/paging"
  5. "hongze/hz_crm_api/controllers"
  6. "hongze/hz_crm_api/models"
  7. "hongze/hz_crm_api/models/cygx"
  8. "hongze/hz_crm_api/utils"
  9. "strings"
  10. )
  11. // 权益服务类型
  12. type RaiServeCoAntroller struct {
  13. controllers.BaseAuthController
  14. }
  15. // @Title 服务类型列表
  16. // @Description 服务类型列表接口
  17. // @Success 200 {object} cygx.RaiServeTypeListResp
  18. // @router /rai_serve/type_list [get]
  19. func (this *RaiServeCoAntroller) TypeList() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. this.Data["json"] = br
  23. this.ServeJSON()
  24. }()
  25. sysUser := this.SysUser
  26. if sysUser == nil {
  27. br.Msg = "请登录"
  28. br.ErrMsg = "请登录,SysUser Is Empty"
  29. br.Ret = 408
  30. return
  31. }
  32. resp := new(cygx.RaiServeTypeListResp)
  33. var condition string
  34. list, err := cygx.GetRaiServeTypeRespList(condition)
  35. if err != nil {
  36. br.Msg = "获取失败"
  37. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  38. return
  39. }
  40. resp.List = list
  41. br.Ret = 200
  42. br.Success = true
  43. br.Msg = "获取成功"
  44. br.Data = resp
  45. }
  46. // @Title 标签搜索
  47. // @Description 标签搜索接口
  48. // @Param KeyWord query string false "搜索关键词"
  49. // @Success 200 {object} cygx.RaiServeTagListResp
  50. // @router /rai_serve/search_tag [get]
  51. func (this *RaiServeCoAntroller) SearchTag() {
  52. br := new(models.BaseResponse).Init()
  53. defer func() {
  54. this.Data["json"] = br
  55. this.ServeJSON()
  56. }()
  57. sysUser := this.SysUser
  58. if sysUser == nil {
  59. br.Msg = "请登录"
  60. br.ErrMsg = "请登录,SysUser Is Empty"
  61. br.Ret = 408
  62. return
  63. }
  64. keyWord := this.GetString("KeyWord")
  65. if keyWord == "" {
  66. br.Msg = "请输入搜索关键词"
  67. return
  68. }
  69. resp := new(cygx.RaiServeTagListResp)
  70. list, err := cygx.GetRaiServeSearchTagRespList(keyWord)
  71. if err != nil {
  72. br.Msg = "获取失败"
  73. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  74. return
  75. }
  76. //如果有固收或者策略就去查询行业表
  77. if strings.Contains("固收", keyWord) || strings.Contains("策略", keyWord) {
  78. var condition string
  79. var pars []interface{}
  80. keyWord = "%" + keyWord + "%"
  81. condition = ` AND product_id = 2 AND permission_name IN ('策略','固收') AND permission_name LIKE ? `
  82. pars = append(pars, keyWord)
  83. listChartPermission, err := models.GetChartPermissionListByCondition(condition, pars)
  84. if err != nil {
  85. br.Msg = "获取失败"
  86. br.ErrMsg = "获取数据失败,GetChartPermissionListByCondition Err:" + err.Error()
  87. return
  88. }
  89. for _, v := range listChartPermission {
  90. item := new(cygx.RaiServeTagResp)
  91. item.TagType = 3
  92. item.TagId = v.ChartPermissionId
  93. item.TagName = v.PermissionName
  94. list = append(list, item)
  95. }
  96. }
  97. if len(list) == 0 {
  98. list = make([]*cygx.RaiServeTagResp, 0)
  99. } else {
  100. for _, v := range list {
  101. v.Md5Key = utils.MD5(fmt.Sprintf("K_", v.TagType, "V_", v.TagId))
  102. }
  103. }
  104. resp.List = list
  105. br.Ret = 200
  106. br.Success = true
  107. br.Msg = "获取成功"
  108. br.Data = resp
  109. }
  110. // @Title 权益服务统计列表
  111. // @Description 权益服务统计列表接口
  112. // @Param PageSize query int true "每页数据条数"
  113. // @Param CurrentIndex query int true "当前页页码,从1开始"
  114. // @Param SellerId query string false "销售id"
  115. // @Param ShareSellerId query string false "共享销售ID"
  116. // @Param ServeTypeId int int false "服务类型ID"
  117. // @Param TagType int string false "标签类型"
  118. // @Param TagId int string false "标签ID"
  119. // @Param Status query string false "客户状态,正式、未续约(除了正式之外的所有)"
  120. // @Param SortType query string true "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`"
  121. // @Param IsExport query bool false "是否导出excel,默认是false"
  122. // @Success 200 {object} cygx.RaiServeTagListResp
  123. // @router /rai_serve/list [get]
  124. func (this *RaiServeCoAntroller) List() {
  125. br := new(models.BaseResponse).Init()
  126. defer func() {
  127. this.Data["json"] = br
  128. this.ServeJSON()
  129. }()
  130. sysUser := this.SysUser
  131. if sysUser == nil {
  132. br.Msg = "请登录"
  133. br.ErrMsg = "请登录,SysUser Is Empty"
  134. br.Ret = 408
  135. return
  136. }
  137. pageSize, _ := this.GetInt("PageSize")
  138. currentIndex, _ := this.GetInt("CurrentIndex")
  139. status := this.GetString("Status")
  140. sellerId := this.GetString("SellerId")
  141. shareSellerId := this.GetString("ShareSellerId")
  142. sortType := this.GetString("SortType")
  143. tagType, _ := this.GetInt("TagType")
  144. tagId, _ := this.GetInt("TagId")
  145. serveTypeId, _ := this.GetInt("ServeTypeId")
  146. isExport, _ := this.GetBool("IsExport")
  147. resp := new(cygx.CygxRaiServeCompanyListResp)
  148. var startSize int
  149. if pageSize <= 0 {
  150. pageSize = utils.PageSize20
  151. }
  152. if currentIndex <= 0 {
  153. currentIndex = 1
  154. }
  155. startSize = utils.StartIndex(currentIndex, pageSize)
  156. var condition string
  157. var sortStr string
  158. var pars []interface{}
  159. if status != "" {
  160. if status == "正式" {
  161. condition = " AND status = '正式' "
  162. } else {
  163. condition = " AND status != '正式' "
  164. }
  165. }
  166. if sellerId != "" {
  167. condition = " AND seller_id IN (?) "
  168. pars = append(pars, sellerId)
  169. }
  170. if shareSellerId != "" {
  171. condition = " AND share_seller_id IN (?) "
  172. pars = append(pars, shareSellerId)
  173. }
  174. if sortType != "" {
  175. if sortType == "asc" {
  176. sortStr = " ORDER BY money ASC "
  177. } else if sortType == "desc" {
  178. sortStr = " ORDER BY money DESC "
  179. }
  180. } else {
  181. sortStr = " ORDER BY end_date DESC "
  182. }
  183. total, err := cygx.GetCygxRaiServeCompanyCount(condition, pars)
  184. if err != nil {
  185. br.Msg = "获取失败"
  186. br.ErrMsg = "获取失败,GetCygxRaiServeCompanyCountErr:" + err.Error()
  187. return
  188. }
  189. listRaiServeCompany, err := cygx.GetCygxRaiServeCompanyList(condition+sortStr, pars, startSize, pageSize)
  190. if err != nil {
  191. br.Msg = "获取失败"
  192. br.ErrMsg = "获取失败,Err:" + err.Error()
  193. return
  194. }
  195. switch tagType {
  196. case 1:
  197. fmt.Println(tagId)
  198. case 2:
  199. case 3:
  200. }
  201. if serveTypeId > 0 {
  202. }
  203. if isExport {
  204. }
  205. for _, v := range listRaiServeCompany {
  206. item := new(cygx.CygxRaiServeCompanyResp)
  207. item.CompanyId = v.CompanyId
  208. item.CompanyName = v.CompanyName
  209. item.Money = v.Money
  210. item.ServeCoverageRate = v.ServeCoverageRate + "%"
  211. item.SellerId = v.SellerId
  212. item.SellerName = v.SellerName
  213. item.StartDate = v.StartDate
  214. item.StartDate = v.StartDate
  215. item.EndDate = v.EndDate
  216. item.ShareSeller = v.ShareSeller
  217. item.ShareSellerId = v.ShareSellerId
  218. item.Status = v.Status
  219. item.PermissionName = v.PermissionName
  220. item.ThisWeekAmount = 99
  221. item.LastWeekAmount = 99
  222. item.TwoWeekAmount = 99
  223. item.ThreeWeekAmount = 99
  224. resp.List = append(resp.List, item)
  225. }
  226. page := paging.GetPaging(currentIndex, pageSize, total)
  227. resp.Paging = page
  228. br.Ret = 200
  229. br.Success = true
  230. br.Msg = "获取成功"
  231. br.Data = resp
  232. }
  233. // @Title 近四周覆盖率
  234. // @Description 近四周覆盖率接口
  235. // @Param CompanyId query int false "公司ID"
  236. // @Success 200 {object} cygx.RaiServeTagListResp
  237. // @router /rai_serve/coverage_rate [get]
  238. func (this *RaiServeCoAntroller) CoverageRate() {
  239. br := new(models.BaseResponse).Init()
  240. defer func() {
  241. this.Data["json"] = br
  242. this.ServeJSON()
  243. }()
  244. sysUser := this.SysUser
  245. if sysUser == nil {
  246. br.Msg = "请登录"
  247. br.ErrMsg = "请登录,SysUser Is Empty"
  248. br.Ret = 408
  249. return
  250. }
  251. companyId := this.GetString("CompanyId")
  252. fmt.Println(companyId)
  253. resp := new(cygx.RaiServeCoverageRateResp)
  254. //ThisWeekAmount string `comment:"本周互动量"`
  255. //LastWeekAmount string `comment:"上周互动量"`
  256. //TwoWeekAmount string `comment:"上上周互动量"`
  257. //ThreeWeekAmount string `comment:"上三周互动量"`
  258. resp.ThisWeekAmount = "22%"
  259. resp.LastWeekAmount = "33%"
  260. resp.TwoWeekAmount = "44%"
  261. resp.ThreeWeekAmount = "55%"
  262. //resp.List = []string{"22%", "33%", "44%", "55%"}
  263. br.Ret = 200
  264. br.Success = true
  265. br.Msg = "获取成功"
  266. br.Data = resp
  267. }
  268. // @Title 明细列表
  269. // @Description 明细列表接口
  270. // @Param PageSize query int true "每页数据条数"
  271. // @Param CurrentIndex query int true "当前页页码,从1开始"
  272. // @Param CompanyId query int false "公司ID"
  273. // @Param TagType query int false "标签类型"
  274. // @Param TagId query int false "标签ID"
  275. // @Param ServeTypeId int int false "服务类型ID"
  276. // @Param WhatWeek query int false "哪一周 ,1:本周、2:上周、3:上上周、4上三周"
  277. // @Success 200 {object} cygx.RaiServeTagListResp
  278. // @router /rai_serve/bill_list [get]
  279. func (this *RaiServeCoAntroller) BillList() {
  280. br := new(models.BaseResponse).Init()
  281. defer func() {
  282. this.Data["json"] = br
  283. this.ServeJSON()
  284. }()
  285. sysUser := this.SysUser
  286. if sysUser == nil {
  287. br.Msg = "请登录"
  288. br.ErrMsg = "请登录,SysUser Is Empty"
  289. br.Ret = 408
  290. return
  291. }
  292. pageSize, _ := this.GetInt("PageSize")
  293. currentIndex, _ := this.GetInt("CurrentIndex")
  294. companyId, _ := this.GetInt("CompanyId")
  295. tagType, _ := this.GetInt("TagType")
  296. tagId, _ := this.GetInt("TagId")
  297. serveTypeId, _ := this.GetInt("ServeTypeId")
  298. var startSize int
  299. if pageSize <= 0 {
  300. pageSize = utils.PageSize20
  301. }
  302. if currentIndex <= 0 {
  303. currentIndex = 1
  304. }
  305. startSize = utils.StartIndex(currentIndex, pageSize)
  306. if companyId == 0 {
  307. br.Msg = "请选择对应公司ID"
  308. return
  309. }
  310. var condition string
  311. var pars []interface{}
  312. condition = " AND company_id = ? "
  313. pars = append(pars, companyId)
  314. if serveTypeId > 0 {
  315. condition += " AND serve_type_id = ? "
  316. pars = append(pars, serveTypeId)
  317. }
  318. switch tagType {
  319. case 1:
  320. fmt.Println(tagId)
  321. case 2:
  322. case 3:
  323. }
  324. total, err := cygx.GetCygxRaiServeBillCount(condition, pars)
  325. if err != nil {
  326. br.Msg = "获取失败"
  327. br.ErrMsg = "获取失败,GetCygxRaiServeBillCount:" + err.Error()
  328. return
  329. }
  330. list, err := cygx.GetCygxRaiServeBillRespList(condition, pars, startSize, pageSize)
  331. if err != nil {
  332. br.Msg = "获取失败"
  333. br.ErrMsg = "获取失败,GetCygxRaiServeBillRespList:" + err.Error()
  334. return
  335. }
  336. page := paging.GetPaging(currentIndex, pageSize, total)
  337. resp := new(cygx.CygxRaiServeBillListResp)
  338. resp.Paging = page
  339. if len(list) == 0 {
  340. resp.List = make([]*cygx.CygxRaiServeBillResp, 0)
  341. } else {
  342. for _, v := range list {
  343. v.Tag = "云计算,阿里云,华为云,移动&联通"
  344. }
  345. resp.List = list
  346. }
  347. br.Ret = 200
  348. br.Success = true
  349. br.Msg = "获取成功"
  350. br.Data = resp
  351. }