comein.go 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771
  1. package yb
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "github.com/tealeg/xlsx"
  7. "hongze/hz_crm_api/models"
  8. "hongze/hz_crm_api/models/yb"
  9. "hongze/hz_crm_api/models/yb/request"
  10. ybResp "hongze/hz_crm_api/models/yb/response"
  11. "hongze/hz_crm_api/utils"
  12. "os"
  13. "path/filepath"
  14. "time"
  15. )
  16. // ComeInList
  17. // @Title 获取进门获到会列表
  18. // @Description 取到进门获会列表
  19. // @Param Keyword query string false "搜索关键字"
  20. // @Param StartDate query string false "活动开始日期,格式:2021-11-09"
  21. // @Param EndDate query string false "活动结束日期,格式:2021-11-10"
  22. // @Success 200 {object} []yb.QsUserListResp
  23. // @router /activity/comein/list [get]
  24. func (this *ActivityController) ComeInList() {
  25. br := new(models.BaseResponse).Init()
  26. defer func() {
  27. this.Data["json"] = br
  28. this.ServeJSON()
  29. }()
  30. sysUser := this.SysUser
  31. if sysUser == nil {
  32. br.Msg = "请登录"
  33. br.ErrMsg = "请登录,SysUser Is Empty"
  34. br.Ret = 408
  35. return
  36. }
  37. keyword := this.GetString("Keyword")
  38. startDate := this.GetString("StartDate")
  39. endDate := this.GetString("EndDate")
  40. pageSize, _ := this.GetInt("PageSize")
  41. currentIndex, _ := this.GetInt("CurrentIndex")
  42. var startSize int
  43. if pageSize <= 0 {
  44. pageSize = utils.PageSize20
  45. }
  46. if currentIndex <= 0 {
  47. currentIndex = 1
  48. }
  49. startSize = paging.StartIndex(currentIndex, pageSize)
  50. condition := ""
  51. pars := make([]interface{}, 0)
  52. //关键字
  53. if keyword != "" {
  54. condition += ` AND a.title LIKE '%` + keyword + `%' `
  55. }
  56. //活动是否发布
  57. //if publishStatus >= 0 {
  58. // condition += ` AND a.publish_status = ? `
  59. // pars = append(pars, publishStatus)
  60. //}
  61. //活动时间
  62. if startDate != "" && endDate != "" {
  63. condition += ` AND a.start_time >= ? and a.start_time <= ?`
  64. pars = append(pars, startDate+" 00:00:00", endDate+" 23:59:59")
  65. }
  66. // 获取所有的分类
  67. total, list, err := yb.GetComeinList(condition, pars, startSize, pageSize)
  68. if err != nil {
  69. br.Msg = "获取活动列表失败!"
  70. br.ErrMsg = "获取活动列表失败,Err:" + err.Error()
  71. return
  72. }
  73. //if len(list) > 0 {
  74. // for _, activityQs := range list {
  75. // if activityQs.QsStatus == 2 {
  76. // activityQs.RealTime = activityQs.EventEndTime.Unix() - activityQs.EventStartTime.Unix()
  77. // }
  78. // }
  79. //}
  80. page := paging.GetPaging(currentIndex, pageSize, total)
  81. resp := ybResp.ComeinListResp{
  82. List: list,
  83. Paging: page,
  84. }
  85. br.Ret = 200
  86. br.Success = true
  87. br.Msg = "获取成功"
  88. br.Data = resp
  89. }
  90. // ComeInUserList
  91. // @Title 获取进门用户列表
  92. // @Description 获取进门用户列表
  93. // @Param ComeinEventId query int false "进门会议在我们系统内部id"
  94. // @Param DataType query int8 false "活动进行状态,枚举值:1:ficc联系人;2:权益联系人;3:未知联系人"
  95. // @Success 200 {object} []yb.QsUserListResp
  96. // @router /activity/comein/user_list [get]
  97. func (this *ActivityController) ComeInUserList() {
  98. br := new(models.BaseResponse).Init()
  99. defer func() {
  100. this.Data["json"] = br
  101. this.ServeJSON()
  102. }()
  103. sysUser := this.SysUser
  104. if sysUser == nil {
  105. br.Msg = "请登录"
  106. br.ErrMsg = "请登录,SysUser Is Empty"
  107. br.Ret = 408
  108. return
  109. }
  110. dataType, _ := this.GetInt("DataType", 0)
  111. comeinEventId, _ := this.GetInt("ComeinEventId", 0)
  112. if comeinEventId <= 0 {
  113. br.Msg = "请选择活动"
  114. br.ErrMsg = "请选择活动"
  115. return
  116. }
  117. if dataType <= 0 {
  118. br.Msg = "请选择类型"
  119. br.ErrMsg = "请选择类型"
  120. return
  121. }
  122. pageSize, _ := this.GetInt("PageSize")
  123. currentIndex, _ := this.GetInt("CurrentIndex")
  124. var startSize int
  125. if pageSize <= 0 {
  126. pageSize = utils.PageSize20
  127. }
  128. if currentIndex <= 0 {
  129. currentIndex = 1
  130. }
  131. startSize = paging.StartIndex(currentIndex, pageSize)
  132. condition := ""
  133. pars := make([]interface{}, 0)
  134. condition += ` AND a.comein_event_id = ? `
  135. pars = append(pars, comeinEventId)
  136. switch dataType {
  137. case 1:
  138. condition += ` AND a.product_id = ? `
  139. pars = append(pars, 1)
  140. case 2:
  141. condition += ` AND a.product_id = ? `
  142. pars = append(pars, 2)
  143. case 3:
  144. condition += ` AND a.product_id = ? `
  145. pars = append(pars, 0)
  146. }
  147. // 获取所有的用户
  148. total, list, err := yb.GetComeinUserList(condition, pars, startSize, pageSize)
  149. if err != nil {
  150. br.Msg = "获取活动列表失败!"
  151. br.ErrMsg = "获取活动列表失败,Err:" + err.Error()
  152. return
  153. }
  154. page := paging.GetPaging(currentIndex, pageSize, total)
  155. resp := ybResp.ComeinUserListResp{
  156. List: list,
  157. Paging: page,
  158. }
  159. br.Ret = 200
  160. br.Success = true
  161. br.Msg = "获取成功"
  162. br.Data = resp
  163. }
  164. //func init() {
  165. //
  166. // data, err := comein.GetEventList(time.Now().AddDate(0, 0, -7), time.Now())
  167. // if err != nil {
  168. // fmt.Println("err:", err)
  169. // return
  170. // }
  171. // for _, v := range data.Data {
  172. // err = SyncUser(v)
  173. // if err != nil {
  174. // fmt.Println("err3:", err)
  175. // }
  176. // //return
  177. // }
  178. // //for index, v := range data.Data {
  179. // //
  180. // // v.Status = "已结束"
  181. // // err := SyncUser(v)
  182. // // if index == 0 {
  183. // // v.Members[0].PhoneNumber = `18170239278`
  184. // // }
  185. // // if err != nil {
  186. // // fmt.Println("err:", err)
  187. // // }
  188. // // //return
  189. // //}
  190. //}
  191. // SyncUser 用户同步
  192. //func SyncUser(comeinDataInfo comein.EventListDataResp) (err error) {
  193. // if comeinDataInfo.IsDel != 0 { //已删除,那么就过滤掉
  194. // return
  195. // }
  196. // if !utils.InArrayByStr([]string{"已结束", "空白"}, comeinDataInfo.Status) { //只同步已结束的数据(网络+电话/网络 :预告,直播中,空白,回放 电话:预告,直播中,已过期,已结束)
  197. // return
  198. // }
  199. // roadshowData, err := comein.GetRoadshowDataList(comeinDataInfo.Stime-(1000*60*30), comeinDataInfo.Etime)
  200. // if err != nil {
  201. // fmt.Println("err2:", err)
  202. // return
  203. // }
  204. // roadshowDataList := roadshowData.Data
  205. // _, err = yb.GetComeinEventByComeinId(int(comeinDataInfo.ID))
  206. // if err == nil || err.Error() != utils.ErrNoRow() {
  207. // return
  208. // }
  209. //
  210. // // 开始同步
  211. // err = nil
  212. // //会议信息
  213. // comeinEventInfo := &yb.ComeinEvent{
  214. // //ComeinEventId: 0,
  215. // ComeinId: int(comeinDataInfo.ID),
  216. // RoadshowId: int(comeinDataInfo.RoadshowID),
  217. // //ConferenceId: comeinDataInfo.ConferenceType,
  218. // Title: comeinDataInfo.Title,
  219. // StartTime: time.UnixMilli(comeinDataInfo.Stime),
  220. // EndTime: time.UnixMilli(comeinDataInfo.Etime),
  221. // People: len(comeinDataInfo.Members),
  222. // CreateTime: time.Now(),
  223. // }
  224. //
  225. // userList := make([]*yb.ComeinEventUser, 0) //参会用户集合
  226. //
  227. // companyProductMap := make(map[string]*company.CompanyProduct)
  228. // companyMap := make(map[string]*company.Company)
  229. // companyIdProductIdMap := make(map[int]int)
  230. // // 参会人
  231. // people := 0 //参与人数
  232. // for _, v := range roadshowDataList {
  233. // if v.UserPhone == "" { //如果手机号为空,那么就不处理了,进入下一个循环
  234. // continue
  235. // }
  236. // //if v.Identity != 0 { //只记录普通成员(也就是参会人)
  237. // // continue
  238. // //}
  239. // people++
  240. // mobile := v.UserPhone
  241. // countryCode := strings.Replace(v.AreaCode, "+", "", -1)
  242. //
  243. // var companyProductInfo *company.CompanyProduct
  244. // var companyInfo *company.Company
  245. // var wxUserInfo *models.WxUser
  246. //
  247. // productIdList := []int{1, 2}
  248. // if mobile != "" {
  249. // wxUserInfo, _ = models.GetWxUserByMobileCountryCode(mobile, countryCode)
  250. // if wxUserInfo != nil && wxUserInfo.CompanyId != 1 {
  251. // //获取客户产品信息
  252. // productId, ok := companyIdProductIdMap[wxUserInfo.CompanyId]
  253. // if ok { //已经查询过
  254. // if productId > 0 {
  255. // // 获取客户产品信息
  256. // key := fmt.Sprint(wxUserInfo.CompanyId, "_", productId)
  257. //
  258. // if tmpCompanyProductInfo, ok := companyProductMap[key]; ok {
  259. // companyProductInfo = tmpCompanyProductInfo
  260. // }
  261. //
  262. // }
  263. // } else {
  264. // for _, productId := range productIdList {
  265. // key := fmt.Sprint(wxUserInfo.CompanyId, "_", productId)
  266. // companyProductInfo, _ = company.GetCompanyProductByCompanyIdAndProductId(wxUserInfo.CompanyId, productId)
  267. // if companyProductInfo != nil {
  268. // companyProductMap[key] = companyProductInfo
  269. // companyIdProductIdMap[wxUserInfo.CompanyId] = productId
  270. // //退出产品查询
  271. // break
  272. // }
  273. // }
  274. // if companyProductInfo == nil {
  275. // companyIdProductIdMap[wxUserInfo.CompanyId] = 0
  276. // }
  277. //
  278. // }
  279. //
  280. // // 获取客户信息
  281. // key := fmt.Sprint(wxUserInfo.CompanyId)
  282. // if tmpCompanyInfo, ok := companyMap[key]; ok {
  283. // companyInfo = tmpCompanyInfo
  284. // } else {
  285. // companyInfo, _ = company.GetCompanyById(wxUserInfo.CompanyId)
  286. // if companyInfo != nil {
  287. // companyMap[key] = companyInfo
  288. // }
  289. // }
  290. // }
  291. // }
  292. //
  293. // name := v.UserName
  294. // comeinEventUserInfo := &yb.ComeinEventUser{
  295. // //ComeinUserId int `orm:"column(comein_user_id);pk" description:"自增id"`
  296. // //ComeinEventId : comeinEventInfo.ComeinEventId,
  297. // ComeinDataId: int(v.ID),
  298. // UserId: 0,
  299. // Mobile: mobile,
  300. // Email: v.Email,
  301. // Name: name,
  302. // FirstWatchTime: time.UnixMilli(v.FirstWatchTime),
  303. // LastWatchTime: time.UnixMilli(v.LastWatchTime),
  304. // JoinTime: int(v.JoinTime),
  305. // AuthInfo: v.AuthInfo,
  306. // JoinType: int(v.JoinType),
  307. // DataType: int(v.DataType),
  308. // //RegisterTime: time.Time{},
  309. // ViewTotal: 0,
  310. // //LastViewTime: time.Time{},
  311. // CompanyId: 0,
  312. // ProductId: 0,
  313. // CompanyName: "",
  314. // Status: "",
  315. // SellerId: 0,
  316. // SellerName: "",
  317. // CompanyViewTotal: 0,
  318. // CompanyRoadTotal: 0,
  319. // CreateTime: time.Now(),
  320. // }
  321. // //这个时候是系统用户了,美滋滋
  322. // if companyProductInfo != nil {
  323. // comeinEventUserInfo.RegisterTime = wxUserInfo.RegisterTime
  324. // //models.
  325. // userViewStatisticsInfo, _ := models.GetUserViewStatisticsByMobile(mobile) //用户阅读信息
  326. // if userViewStatisticsInfo != nil {
  327. // comeinEventUserInfo.ViewTotal = userViewStatisticsInfo.Total
  328. // comeinEventUserInfo.LastViewTime = userViewStatisticsInfo.LastViewTime
  329. // }
  330. //
  331. // comeinEventUserInfo.UserId = int(wxUserInfo.UserId)
  332. // comeinEventUserInfo.Name = wxUserInfo.RealName
  333. // comeinEventUserInfo.CompanyId = companyProductInfo.CompanyId
  334. // comeinEventUserInfo.ProductId = companyProductInfo.ProductId
  335. // comeinEventUserInfo.CompanyName = companyInfo.CompanyName
  336. // comeinEventUserInfo.Status = companyProductInfo.Status
  337. // comeinEventUserInfo.SellerId = companyProductInfo.SellerId
  338. // comeinEventUserInfo.SellerName = companyProductInfo.SellerName
  339. // comeinEventUserInfo.CompanyViewTotal = companyProductInfo.ViewTotal
  340. // comeinEventUserInfo.CompanyRoadTotal = companyProductInfo.RoadShowTotal
  341. // }
  342. // userList = append(userList, comeinEventUserInfo)
  343. // }
  344. //
  345. // comeinEventInfo.People = people
  346. // //for _, v := range userList {
  347. // // fmt.Println(v)
  348. // //}
  349. // yb.AddComeinEventAndUser(comeinEventInfo, userList)
  350. // return
  351. //}
  352. //func init() {
  353. // errMsgList := make([]string, 0)
  354. // defer func() {
  355. // if len(errMsgList) > 0 {
  356. // for _, v := range errMsgList {
  357. // fmt.Println(v)
  358. // }
  359. // }
  360. // }()
  361. // roadshowData, err := comein.GetRoadshowDataList(time.Now().AddDate(0, 0, -1).Unix()*1000, time.Now().Unix()*1000)
  362. // if err != nil {
  363. // fmt.Println("err2:", err)
  364. // return
  365. // }
  366. // roadshowDataList := roadshowData.Data
  367. //
  368. // comeinEventMap := make(map[int]*yb.ComeinEvent)
  369. //
  370. // // 开始同步
  371. // companyProductMap := make(map[string]*company.CompanyProduct)
  372. // companyMap := make(map[string]*company.Company)
  373. // companyIdProductIdMap := make(map[int]int)
  374. // // 参会人
  375. // for _, v := range roadshowDataList {
  376. // //只记录普通成员(也就是参会人)
  377. // if v.UserIdentity != 4 { //参会者身份,1:主讲人 2:主持人 3:嘉宾 4:普通参会者 5:联席主讲人 6:会议助理
  378. // continue
  379. // }
  380. // if v.UserPhone == "" { //如果手机号为空,那么就不处理了,进入下一个循环
  381. // continue
  382. // }
  383. // // 检测会议是否存在,不存在则创建会议
  384. // tmpComeinEvent, tmpErr := yb.GetComeinEventByRoadshowId(int(v.RoadshowID))
  385. // if tmpErr != nil {
  386. // if tmpErr.Error() == utils.ErrNoRow() {
  387. // //会议信息
  388. // tmpComeinEventInfo := &yb.ComeinEvent{
  389. // //ComeinEventId: 0,
  390. // RoadshowId: int(v.RoadshowID),
  391. // //ConferenceId: comeinDataInfo.ConferenceType,
  392. // Title: v.RoadshowTitle,
  393. // StartTime: time.UnixMilli(v.RoadshowBeginTime),
  394. // EndTime: time.UnixMilli(v.RoadshowEndTime),
  395. // People: 0,
  396. // CreateTime: time.Now(),
  397. // }
  398. // tmpErr2 := yb.AddComeinEvent(tmpComeinEventInfo)
  399. // if tmpErr2 != nil {
  400. // //入库失败
  401. // errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,会议入库失败,err:%s", v.RoadshowID, v.RoadshowTitle, err.Error()))
  402. // continue
  403. // }
  404. // comeinEventMap[int(v.RoadshowID)] = tmpComeinEventInfo
  405. // } else {
  406. // //数据异常,sql异常
  407. // errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,查找会议失败,err:%s", v.RoadshowID, v.RoadshowTitle, err.Error()))
  408. // continue
  409. // }
  410. // } else {
  411. // comeinEventMap[tmpComeinEvent.RoadshowId] = tmpComeinEvent
  412. // }
  413. //
  414. // //校验该记录是否已经入库,如果已经入库,那么就不处理了,进入下一个循环
  415. // tmpComeinEventUser, tmpErr := yb.GetComeinEventUserByComeinDataId(int(v.ID))
  416. // if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
  417. // errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,路演标题:%s,用户手机号:%s,会议用户入库失败,err:%s", v.RoadshowID, v.RoadshowTitle, v.UserPhone, err.Error()))
  418. // continue
  419. // }
  420. // if tmpComeinEventUser == nil {
  421. // mobile := v.UserPhone
  422. // countryCode := strings.Replace(v.AreaCode, "+", "", -1)
  423. //
  424. // var companyProductInfo *company.CompanyProduct
  425. // var companyInfo *company.Company
  426. // var wxUserInfo *models.WxUser
  427. //
  428. // productIdList := []int{1, 2}
  429. // if mobile != "" {
  430. // wxUserInfo, _ = models.GetWxUserByMobileCountryCode(mobile, countryCode)
  431. // if wxUserInfo != nil && wxUserInfo.CompanyId != 1 {
  432. // //获取客户产品信息
  433. // productId, ok := companyIdProductIdMap[wxUserInfo.CompanyId]
  434. // if ok { //已经查询过
  435. // if productId > 0 {
  436. // // 获取客户产品信息
  437. // key := fmt.Sprint(wxUserInfo.CompanyId, "_", productId)
  438. //
  439. // if tmpCompanyProductInfo, ok := companyProductMap[key]; ok {
  440. // companyProductInfo = tmpCompanyProductInfo
  441. // }
  442. //
  443. // }
  444. // } else {
  445. // for _, productId := range productIdList {
  446. // key := fmt.Sprint(wxUserInfo.CompanyId, "_", productId)
  447. // companyProductInfo, _ = company.GetCompanyProductByCompanyIdAndProductId(wxUserInfo.CompanyId, productId)
  448. // if companyProductInfo != nil {
  449. // companyProductMap[key] = companyProductInfo
  450. // companyIdProductIdMap[wxUserInfo.CompanyId] = productId
  451. // //退出产品查询
  452. // break
  453. // }
  454. // }
  455. // if companyProductInfo == nil {
  456. // companyIdProductIdMap[wxUserInfo.CompanyId] = 0
  457. // }
  458. //
  459. // }
  460. //
  461. // // 获取客户信息
  462. // key := fmt.Sprint(wxUserInfo.CompanyId)
  463. // if tmpCompanyInfo, ok := companyMap[key]; ok {
  464. // companyInfo = tmpCompanyInfo
  465. // } else {
  466. // companyInfo, _ = company.GetCompanyById(wxUserInfo.CompanyId)
  467. // if companyInfo != nil {
  468. // companyMap[key] = companyInfo
  469. // }
  470. // }
  471. // }
  472. // }
  473. //
  474. // name := v.UserName
  475. // comeinEventUserInfo := &yb.ComeinEventUser{
  476. // //ComeinUserId int `orm:"column(comein_user_id);pk" description:"自增id"`
  477. // ComeinEventId: tmpComeinEvent.ComeinEventId,
  478. // ComeinDataId: int(v.ID),
  479. // UserId: 0,
  480. // Mobile: mobile,
  481. // Email: v.Email,
  482. // Name: name,
  483. // FirstWatchTime: time.UnixMilli(v.FirstWatchTime),
  484. // LastWatchTime: time.UnixMilli(v.LastWatchTime),
  485. // JoinTime: int(v.JoinTime),
  486. // AuthInfo: v.AuthInfo,
  487. // JoinType: int(v.JoinType),
  488. // DataType: int(v.DataType),
  489. // //RegisterTime: time.Time{},
  490. // ViewTotal: 0,
  491. // //LastViewTime: time.Time{},
  492. // CompanyId: 0,
  493. // ProductId: 0,
  494. // CompanyName: v.Company,
  495. // Occupation: v.Occupation,
  496. // Status: "",
  497. // SellerId: 0,
  498. // SellerName: "",
  499. // CompanyViewTotal: 0,
  500. // CompanyRoadTotal: 0,
  501. // CreateTime: time.Now(),
  502. // }
  503. // //这个时候是系统用户了,美滋滋
  504. // if companyProductInfo != nil {
  505. // comeinEventUserInfo.RegisterTime = wxUserInfo.RegisterTime
  506. // //models.
  507. // userViewStatisticsInfo, _ := models.GetUserViewStatisticsByMobile(mobile) //用户阅读信息
  508. // if userViewStatisticsInfo != nil {
  509. // comeinEventUserInfo.ViewTotal = userViewStatisticsInfo.Total
  510. // comeinEventUserInfo.LastViewTime = userViewStatisticsInfo.LastViewTime
  511. // }
  512. //
  513. // comeinEventUserInfo.UserId = int(wxUserInfo.UserId)
  514. // comeinEventUserInfo.Name = wxUserInfo.RealName
  515. // comeinEventUserInfo.CompanyId = companyProductInfo.CompanyId
  516. // comeinEventUserInfo.ProductId = companyProductInfo.ProductId
  517. // comeinEventUserInfo.CompanyName = companyInfo.CompanyName
  518. // comeinEventUserInfo.Status = companyProductInfo.Status
  519. // comeinEventUserInfo.SellerId = companyProductInfo.SellerId
  520. // comeinEventUserInfo.SellerName = companyProductInfo.SellerName
  521. // comeinEventUserInfo.CompanyViewTotal = companyProductInfo.ViewTotal
  522. // comeinEventUserInfo.CompanyRoadTotal = companyProductInfo.RoadShowTotal
  523. // }
  524. // yb.AddComeinEventUser(comeinEventUserInfo)
  525. //
  526. // tmpComeinEvent.People = tmpComeinEvent.People + 1
  527. // }
  528. // }
  529. //
  530. // for _, v := range comeinEventMap {
  531. // v.Update([]string{"People"})
  532. // }
  533. // return
  534. //}
  535. // ExportComeInUserList
  536. // @Title 导出进门用户列表
  537. // @Description 导出进门用户列表
  538. // @Param ComeinEventId query int false "进门会议在我们系统内部id"
  539. // @Success 200 导出成功
  540. // @router /activity/comein/user_list/export [get]
  541. func (this *ActivityController) ExportComeInUserList() {
  542. br := new(models.BaseResponse).Init()
  543. defer func() {
  544. this.Data["json"] = br
  545. this.ServeJSON()
  546. }()
  547. sysUser := this.SysUser
  548. if sysUser == nil {
  549. br.Msg = "请登录"
  550. br.ErrMsg = "请登录,SysUser Is Empty"
  551. br.Ret = 408
  552. return
  553. }
  554. comeinEventId, _ := this.GetInt("ComeinEventId", 0)
  555. if comeinEventId <= 0 {
  556. br.Msg = "请选择活动"
  557. br.ErrMsg = "请选择活动"
  558. return
  559. }
  560. dir, _ := os.Executable()
  561. exPath := filepath.Dir(dir)
  562. downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
  563. xlsxFile := xlsx.NewFile()
  564. for i := 1; i <= 3; i++ {
  565. var sheetName string
  566. switch i {
  567. case 1:
  568. sheetName = "ficc联系人"
  569. case 2:
  570. sheetName = "权益联系人"
  571. case 3:
  572. sheetName = "未知联系人"
  573. }
  574. sheet, err := xlsxFile.AddSheet(sheetName)
  575. if err != nil {
  576. fmt.Println("新增Sheet失败", err.Error())
  577. br.Msg = "新增Sheet失败"
  578. br.ErrMsg = "新增Sheet失败," + err.Error()
  579. br.Ret = 408
  580. return
  581. }
  582. row := sheet.AddRow()
  583. row.AddCell().SetValue("手机号")
  584. row.AddCell().SetValue("姓名")
  585. row.AddCell().SetValue("公司名称")
  586. if i < 3 {
  587. row.AddCell().SetValue("客户类型")
  588. row.AddCell().SetValue("状态")
  589. row.AddCell().SetValue("销售")
  590. } else if i == 3 {
  591. row.AddCell().SetValue("职位")
  592. }
  593. row.AddCell().SetValue("首次入会时间")
  594. row.AddCell().SetValue("最后退出时间")
  595. row.AddCell().SetValue("参与总时长")
  596. row.AddCell().SetValue("参会方式")
  597. row.AddCell().SetValue("参会鉴权")
  598. row.AddCell().SetValue("参会状态")
  599. // 获取所有的用户
  600. condition := ""
  601. pars := make([]interface{}, 0)
  602. condition += ` AND a.comein_event_id = ? `
  603. pars = append(pars, comeinEventId)
  604. switch i {
  605. case 1:
  606. condition += ` AND a.product_id = ? `
  607. pars = append(pars, 1)
  608. case 2:
  609. condition += ` AND a.product_id = ? `
  610. pars = append(pars, 2)
  611. case 3:
  612. condition += ` AND a.product_id = ? `
  613. pars = append(pars, 0)
  614. }
  615. total, list, err := yb.GetComeinUserListForExport(condition, pars)
  616. if err != nil {
  617. br.Msg = "获取活动列表失败!"
  618. br.ErrMsg = "获取活动列表失败,Err:" + err.Error()
  619. return
  620. }
  621. if len(list) <= 0 {
  622. for n := 0; n < total; n++ {
  623. rowIndex := n + 1
  624. row := sheet.Row(rowIndex)
  625. row.AddCell()
  626. row.AddCell()
  627. row.AddCell()
  628. }
  629. } else {
  630. for j, item := range list {
  631. row := sheet.Row(j + 1)
  632. row.AddCell().SetValue(item.Mobile)
  633. row.AddCell().SetValue(item.Name)
  634. row.AddCell().SetValue(item.CompanyName)
  635. if i < 3 {
  636. productName := ""
  637. switch item.ProductId {
  638. case 1:
  639. productName = "FICC"
  640. case 2:
  641. productName = "权益"
  642. }
  643. row.AddCell().SetValue(productName)
  644. row.AddCell().SetValue(item.Status)
  645. row.AddCell().SetValue(item.SellerName)
  646. } else if i == 3 {
  647. row.AddCell().SetValue(item.Occupation)
  648. }
  649. row.AddCell().SetValue(item.FirstWatchTime)
  650. row.AddCell().SetValue(item.LastWatchTime)
  651. min := item.JoinTime / 60
  652. sec := item.JoinTime % 60
  653. stringTime := fmt.Sprintf("%v分%v秒", min, sec)
  654. row.AddCell().SetValue(stringTime)
  655. joinType := ""
  656. switch item.JoinType {
  657. case 1:
  658. joinType = "网络"
  659. case 2:
  660. joinType = "电话"
  661. }
  662. row.AddCell().SetValue(joinType)
  663. row.AddCell().SetValue(item.AuthInfo)
  664. dataType := ""
  665. switch item.DataType {
  666. case 1:
  667. dataType = "直播"
  668. case 2:
  669. dataType = "回放"
  670. }
  671. row.AddCell().SetValue(dataType)
  672. }
  673. }
  674. }
  675. err := xlsxFile.Save(downLoadnFilePath)
  676. if err != nil {
  677. br.Msg = "保存文件失败"
  678. br.ErrMsg = "保存文件失败"
  679. return
  680. }
  681. fileName := `进门到会详情`
  682. fileName += time.Now().Format("06.01.02") + `.xlsx` //文件名称
  683. this.Ctx.Output.Download(downLoadnFilePath, fileName)
  684. defer func() {
  685. os.Remove(downLoadnFilePath)
  686. }()
  687. br.Ret = 200
  688. br.Success = true
  689. br.Msg = "success"
  690. }
  691. // ComeInShare2Seller
  692. // @Title 进门到会-分享给销售
  693. // @Description 进门到会-分享给销售
  694. // @Param request body request.QsShare2SellerReq true "type json string"
  695. // @router /activity/comein/share2seller [post]
  696. func (this *ActivityController) ComeInShare2Seller() {
  697. br := new(models.BaseResponse).Init()
  698. defer func() {
  699. this.Data["json"] = br
  700. this.ServeJSON()
  701. }()
  702. sysUser := this.SysUser
  703. if sysUser == nil {
  704. br.Msg = "请登录"
  705. br.ErrMsg = "请登录,SysUser Is Empty"
  706. br.Ret = 408
  707. return
  708. }
  709. var req request.ComeInShare2SellerReq
  710. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  711. if err != nil {
  712. br.Msg = "参数解析异常!"
  713. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  714. return
  715. }
  716. if req.ComeinEventId <= 0 {
  717. br.Msg = "参数异常!"
  718. return
  719. }
  720. if req.SellerId <= 0 {
  721. br.Msg = "请选择销售"
  722. return
  723. }
  724. item, e := yb.GetComeInEventById(req.ComeinEventId)
  725. if e != nil {
  726. br.Msg = "操作失败"
  727. br.ErrMsg = "获取进门到会信息失败, Err: " + e.Error()
  728. return
  729. }
  730. item.ShareSellerId = req.SellerId
  731. if e = item.Update([]string{"ShareSellerId"}); e != nil {
  732. br.Msg = "操作失败"
  733. br.ErrMsg = "更新进门到会销售失败, Err: " + e.Error()
  734. return
  735. }
  736. br.Ret = 200
  737. br.Success = true
  738. br.Msg = "操作成功"
  739. }