company.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575
  1. package statistic_report
  2. import (
  3. "errors"
  4. "fmt"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "hongze/hz_crm_api/models/company"
  7. statisticModels "hongze/hz_crm_api/models/statistic_report"
  8. "hongze/hz_crm_api/models/system"
  9. "hongze/hz_crm_api/services"
  10. "hongze/hz_crm_api/utils"
  11. "strconv"
  12. "strings"
  13. "time"
  14. )
  15. func CompanyList(sysUser *system.Admin, req statisticModels.IncrementalCompanyListReq) (resp CompanyListResp, err error, errMsg string) {
  16. pageSize := req.PageSize
  17. currentIndex := req.CurrentIndex
  18. CompanyIds := req.CompanyIds
  19. //排序参数
  20. sortParam := req.SortParam
  21. sortType := req.SortType
  22. roleTypeCode := sysUser.RoleTypeCode
  23. var total int
  24. page := paging.GetPaging(currentIndex, pageSize, total)
  25. //resp := new(CompanyListResp)
  26. var startSize int
  27. if pageSize <= 0 {
  28. pageSize = utils.PageSize20
  29. }
  30. if currentIndex <= 0 {
  31. currentIndex = 1
  32. }
  33. startSize = paging.StartIndex(currentIndex, pageSize)
  34. var condition string
  35. var pars []interface{}
  36. if CompanyIds != "" {
  37. fmt.Println("CompanyIds:", CompanyIds)
  38. condition += ` AND b.company_id IN (` + strings.Replace(CompanyIds, "\"", "", -1) + `) `
  39. }
  40. productId := services.GetProductId(roleTypeCode)
  41. {
  42. //权限控制
  43. //如果不是超级管理员或者财务
  44. if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
  45. //如果是部门管理员
  46. condition += ` AND b.product_id=? `
  47. pars = append(pars, productId)
  48. }
  49. }
  50. total, err = company.GetCompanyListCount(condition, pars)
  51. if err != nil {
  52. errMsg = "获取数据总数失败,Err:" + err.Error()
  53. err = errors.New("获取失败")
  54. return
  55. }
  56. status := `全部`
  57. sortStr := ``
  58. if sortParam != "" && sortType != "" {
  59. if sortParam == "expireDay" {
  60. if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  61. if sortType == "asc" {
  62. sortStr = " ORDER BY min_end_date"
  63. } else {
  64. sortStr = " ORDER BY max_end_date"
  65. }
  66. } else {
  67. sortStr = " ORDER BY b.end_date "
  68. }
  69. } else if sortParam == "createTime" {
  70. sortStr = " ORDER BY a.created_time "
  71. } else if sortParam == "viewTotal" {
  72. if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  73. sortStr = " ORDER BY all_view_total"
  74. } else {
  75. sortStr = " ORDER BY b.view_total"
  76. }
  77. } else if sortParam == "viewTime" {
  78. if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  79. if sortType == "asc" {
  80. sortStr = " ORDER BY min_last_view_time"
  81. } else {
  82. sortStr = " ORDER BY max_last_view_time"
  83. }
  84. } else {
  85. sortStr = " ORDER BY b.last_view_time "
  86. }
  87. } else if sortParam == "roadShowTotal" {
  88. sortStr = " ORDER BY b.road_show_total "
  89. } else if sortParam == "formalTime" {
  90. sortStr = " ORDER BY b.formal_time "
  91. } else if sortParam == "freezeTime" {
  92. sortStr = " ORDER BY b.freeze_time "
  93. } else if sortParam == "lossTime" {
  94. sortStr = " ORDER BY b.loss_time "
  95. } else if sortParam == "deadline" {
  96. if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  97. sortStr = " ORDER BY sort_todo_end_time asc, all_view_total desc, a.created_time desc"
  98. } else {
  99. sortStr = " ORDER BY sort_todo_end_time asc, b.view_total desc, a.created_time desc"
  100. }
  101. } else {
  102. errMsg = "排序字段传入数据异常:" + sortParam
  103. err = errors.New("获取失败")
  104. return
  105. }
  106. if sortParam != "deadline" {
  107. if sortType == "asc" {
  108. sortStr += " ASC "
  109. } else if sortType == "desc" {
  110. sortStr += " DESC "
  111. } else {
  112. errMsg = "排序类型传入数据异常:" + sortType
  113. err = errors.New("获取失败")
  114. return
  115. }
  116. }
  117. } else {
  118. //2、客户列表选择“全部”时,支持按照“创建时间”对“全部”分类下所有客户列表进行升降序排列;选择“正式”时按照“转正时间”、选择“冻结”时按照“冻结时间”、选择“流失”时按照“流失时间”、选择“永续”时按照“创建时间”;
  119. if status == "全部" || status == "永续" {
  120. sortStr = " ORDER BY a.created_time "
  121. } else if status == "正式" {
  122. sortStr = " ORDER BY b.formal_time "
  123. } else if status == "冻结" {
  124. sortStr = " ORDER BY b.freeze_time "
  125. } else if status == "流失" {
  126. sortStr = " ORDER BY b.loss_time "
  127. } else if status == "试用" {
  128. if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  129. sortStr = " ORDER BY all_view_total "
  130. } else {
  131. sortStr = " ORDER BY b.view_total "
  132. }
  133. }
  134. sortStr += " DESC "
  135. }
  136. list, err := company.GetCompanyList(condition, status, sortStr, pars, startSize, pageSize)
  137. if err != nil {
  138. errMsg = "获取数据失败,Err:" + err.Error()
  139. err = errors.New("获取失败")
  140. return
  141. }
  142. //企业用户数组切片
  143. companyIdSlice := make([]string, 0)
  144. for _, v := range list {
  145. companyIdSlice = append(companyIdSlice, strconv.Itoa(v.CompanyId))
  146. }
  147. //企业用户产品开通数
  148. companyIdStr := strings.Join(companyIdSlice, ",")
  149. companyProductTotalList, _ := company.GetCountProductByCompanyIds(companyIdStr)
  150. companyProductTotalMap := make(map[int]*company.CompanyProductTotalSlice)
  151. for _, companyProductTotal := range companyProductTotalList {
  152. companyProductTotalMap[companyProductTotal.CompanyId] = companyProductTotal
  153. }
  154. lenList := len(list)
  155. // 客户产品详细信息
  156. companyProductMap := make(map[string]*company.CompanyProduct)
  157. var companyProductCondition string
  158. var companyProductPars []interface{}
  159. if productId != 0 {
  160. companyProductCondition += ` AND product_id=? `
  161. companyProductPars = append(companyProductPars, productId)
  162. }
  163. companyProductList, err := company.GetCompanyProductsByCompanyIds(companyIdStr, companyProductCondition, companyProductPars)
  164. if err != nil {
  165. errMsg = "获取客户产品数据失败,Err:" + err.Error()
  166. err = errors.New("获取失败")
  167. return
  168. }
  169. for _, companyProduct := range companyProductList {
  170. key := fmt.Sprint(companyProduct.CompanyId, "_", companyProduct.ProductId)
  171. companyProductMap[key] = companyProduct
  172. }
  173. sysUserProductId := 0
  174. //获取名下所有的分组
  175. myChildSysGroupMap := make(map[int]*system.SysGroup)
  176. switch sysUser.RoleTypeCode {
  177. case utils.ROLE_TYPE_CODE_FICC_GROUP: //ficc主管
  178. myChildSysGroupMap, err = services.GetBigGroupByFiccGroupId(sysUser.GroupId)
  179. sysUserProductId = 1
  180. case utils.ROLE_TYPE_CODE_FICC_TEAM: //ficc组长
  181. myChildSysGroupMap, err = services.GetBigGroupAllGroupInfo(sysUser.GroupId)
  182. sysUserProductId = 1
  183. case utils.ROLE_TYPE_CODE_RAI_GROUP: //权益组长
  184. myChildSysGroupMap, err = services.GetBigGroupAllGroupInfo(sysUser.GroupId)
  185. sysUserProductId = 2
  186. case utils.ROLE_TYPE_CODE_RAI_SELLER: //权益销售
  187. myChildSysGroupMap, err = services.GetBigGroupAllGroupInfo(sysUser.GroupId)
  188. sysUserProductId = 2
  189. case utils.ROLE_TYPE_CODE_FICC_SELLER: //ficc销售
  190. myChildSysGroupMap, err = services.GetBigGroupAllGroupInfo(sysUser.GroupId)
  191. sysUserProductId = 1
  192. }
  193. for i := 0; i < lenList; i++ {
  194. item := list[i]
  195. //校验该客户是否存在多个产品,如果是,那么代表是共享客户
  196. if companyProductTotal, ok := companyProductTotalMap[int(item.CompanyId)]; ok {
  197. if companyProductTotal.Total > 1 {
  198. list[i].IsShared = true
  199. }
  200. }
  201. var expireDay string
  202. itemStatus := item.Status
  203. if itemStatus != "" {
  204. if !strings.Contains(item.Status, "/") {
  205. if itemStatus == utils.COMPANY_STATUS_FOREVER { //永续
  206. expireDay = "-"
  207. } else if itemStatus == utils.COMPANY_STATUS_TRY_OUT || itemStatus == utils.COMPANY_STATUS_FORMAL { //试用/正式
  208. if item.StartDate != "" && item.EndDate != "" {
  209. endDateTime, _ := time.Parse(utils.FormatDate, item.EndDate)
  210. endDateTime = endDateTime.AddDate(0, 0, 1)
  211. sub := endDateTime.Sub(time.Now())
  212. if sub < 0 {
  213. sub = 0
  214. }
  215. expireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
  216. } else {
  217. expireDay = "-"
  218. }
  219. } else if itemStatus == utils.COMPANY_STATUS_LOSE {
  220. expireDay = "-"
  221. } else if itemStatus == utils.COMPANY_STATUS_FREEZE {
  222. if item.StartDate != "" && item.EndDate != "" {
  223. endDateTime, _ := time.Parse(utils.FormatDate, item.EndDate)
  224. endDateTime = endDateTime.AddDate(0, 0, 0)
  225. sub := endDateTime.Sub(time.Now())
  226. if sub < 0 {
  227. sub = 0
  228. }
  229. expireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
  230. } else {
  231. expireDay = "-"
  232. }
  233. } else {
  234. expireDay = "-"
  235. }
  236. } else {
  237. statusArr := strings.Split(item.Status, "/")
  238. ficcStatus := statusArr[0]
  239. raiStatus := statusArr[1]
  240. var ficcEndDate, tryEndDate string
  241. var ficcExpireDay, tryExpireDay string
  242. if item.EndDate != "" {
  243. endDateArr := strings.Split(item.EndDate, "/")
  244. if len(endDateArr) == 1 {
  245. ficcEndDate = endDateArr[0]
  246. } else if len(endDateArr) > 1 {
  247. ficcEndDate = endDateArr[0]
  248. tryEndDate = endDateArr[1]
  249. }
  250. if ficcStatus == utils.COMPANY_STATUS_FOREVER { //永续
  251. ficcExpireDay = "-"
  252. } else if ficcStatus == utils.COMPANY_STATUS_TRY_OUT || ficcStatus == utils.COMPANY_STATUS_FORMAL { //试用/正式
  253. if ficcEndDate != "" {
  254. endDateTime, _ := time.Parse(utils.FormatDate, ficcEndDate)
  255. endDateTime = endDateTime.AddDate(0, 0, 1)
  256. sub := endDateTime.Sub(time.Now())
  257. if sub < 0 {
  258. sub = 0
  259. }
  260. ficcExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
  261. } else {
  262. ficcExpireDay = "-"
  263. }
  264. } else if ficcStatus == utils.COMPANY_STATUS_LOSE { //流失
  265. ficcExpireDay = "-"
  266. } else if ficcStatus == utils.COMPANY_STATUS_FREEZE { //冻结
  267. if item.StartDate != "" && item.EndDate != "" {
  268. endDateTime, _ := time.Parse(utils.FormatDate, ficcEndDate)
  269. endDateTime = endDateTime.AddDate(0, 0, 0)
  270. sub := endDateTime.Sub(time.Now())
  271. if sub < 0 {
  272. sub = 0
  273. }
  274. ficcExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
  275. } else {
  276. ficcExpireDay = "-"
  277. }
  278. } else {
  279. ficcExpireDay = "-"
  280. }
  281. if raiStatus == utils.COMPANY_STATUS_FOREVER { //永续
  282. tryExpireDay = "-"
  283. } else if raiStatus == utils.COMPANY_STATUS_TRY_OUT || raiStatus == utils.COMPANY_STATUS_FORMAL { //试用/正式
  284. if tryEndDate != "" {
  285. endDateTime, _ := time.Parse(utils.FormatDate, tryEndDate)
  286. endDateTime = endDateTime.AddDate(0, 0, 1)
  287. sub := endDateTime.Sub(time.Now())
  288. if sub < 0 {
  289. sub = 0
  290. }
  291. tryExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
  292. } else {
  293. tryExpireDay = "-"
  294. }
  295. } else if raiStatus == utils.COMPANY_STATUS_LOSE { //流失
  296. tryExpireDay = "-"
  297. } else if raiStatus == utils.COMPANY_STATUS_FREEZE { //冻结
  298. if item.StartDate != "" && item.EndDate != "" {
  299. endDateTime, _ := time.Parse(utils.FormatDate, tryEndDate)
  300. endDateTime = endDateTime.AddDate(0, 0, 0)
  301. sub := endDateTime.Sub(time.Now())
  302. if sub < 0 {
  303. sub = 0
  304. }
  305. tryExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
  306. } else {
  307. tryExpireDay = "-"
  308. }
  309. } else {
  310. tryExpireDay = "-"
  311. }
  312. }
  313. expireDay = ficcExpireDay + "/" + tryExpireDay
  314. }
  315. }
  316. list[i].ExpireDay = expireDay
  317. ficcKey := fmt.Sprint(item.CompanyId, "_", 1)
  318. //ficc
  319. if tmpCompanyProduct, ok := companyProductMap[ficcKey]; ok && (productId == 0 || productId == 1) {
  320. //套餐类型
  321. item.FiccPackageType = tmpCompanyProduct.PackageType
  322. //总阅读次数
  323. item.FiccView = tmpCompanyProduct.ViewTotal
  324. if !tmpCompanyProduct.LastViewTime.IsZero() {
  325. //最近一次阅读时间
  326. item.FiccLastViewTime = tmpCompanyProduct.LastViewTime.Format(utils.FormatDateTime)
  327. }
  328. item.FiccTryOutDay = tmpCompanyProduct.TryOutDayTotal
  329. }
  330. //权益
  331. raiKey := fmt.Sprint(item.CompanyId, "_", 2)
  332. if tmpCompanyProduct, ok := companyProductMap[raiKey]; ok && (productId == 0 || productId == 2) {
  333. //总阅读次数
  334. item.RaiView = tmpCompanyProduct.ViewTotal
  335. if !tmpCompanyProduct.LastViewTime.IsZero() {
  336. //最近一次阅读时间
  337. item.RaiLastViewTime = tmpCompanyProduct.LastViewTime.Format(utils.FormatDateTime)
  338. }
  339. item.RaiTryOutDay = tmpCompanyProduct.TryOutDayTotal
  340. }
  341. }
  342. companyLists := make([]*CompanyListItem, 0)
  343. //查询阅读次数
  344. if list == nil {
  345. companyLists = make([]*CompanyListItem, 0)
  346. } else {
  347. for _, v := range list {
  348. //viewTotal:=GetviewTotal(v.CompanyId)
  349. //活跃(客户状态)
  350. tmpStatus := v.Status
  351. //productIdSlice := strings.Split(v.ProductIds, "/")
  352. //statusSlice := strings.Split(v.Status, "/")
  353. // 试用客户子标签
  354. tryStageSlice := make([]company.TryStageSliceItem, 0)
  355. for _, vProductId := range []int{1, 2} {
  356. ficcKey := fmt.Sprint(v.CompanyId, "_", vProductId)
  357. //ficc
  358. if tmpCompanyProduct, ok := companyProductMap[ficcKey]; ok {
  359. if tmpCompanyProduct.Status == utils.COMPANY_STATUS_TRY_OUT {
  360. key := fmt.Sprint(v.CompanyId, "_", vProductId)
  361. if pro, ok := companyProductMap[key]; ok {
  362. tryItem := company.TryStageSliceItem{
  363. ProductId: vProductId,
  364. TryStage: pro.TryStage,
  365. }
  366. if pro.SellerId == sysUser.AdminId { //产品销售ID和登录ID相等
  367. tryItem.HasPermission = true
  368. }
  369. tryStageSlice = append(tryStageSlice, tryItem)
  370. }
  371. }
  372. }
  373. }
  374. // 是否存在进行中的任务
  375. var todoStatus bool
  376. //是否支持确认完成待办任务
  377. var canConfirm bool
  378. var hiddenConfirm bool //是否隐藏确定完成按钮
  379. var hiddenCreate bool //是否隐藏新增/编辑按钮
  380. hiddenConfirm = true
  381. hiddenCreate = true
  382. todoButtonColor := `green`
  383. //'无任务','未完成','已完成'
  384. if strings.Contains(v.TodoStatuss, "未完成") {
  385. todoButtonColor = "red"
  386. todoStatus = true
  387. } else if strings.Contains(v.TodoStatuss, "已完成") {
  388. todoButtonColor = "green"
  389. } else if strings.Contains(v.TodoStatuss, "无任务") {
  390. todoButtonColor = "gray"
  391. }
  392. for _, vProductId := range []int{1, 2} {
  393. ficcKey := fmt.Sprint(v.CompanyId, "_", vProductId)
  394. //ficc
  395. if tmpCompanyProduct, ok := companyProductMap[ficcKey]; ok {
  396. if tmpCompanyProduct.Status != utils.COMPANY_STATUS_LOSE && tmpCompanyProduct.Status != utils.COMPANY_STATUS_CLOSE { //非流失
  397. hiddenCreate = false
  398. switch sysUser.RoleTypeCode {
  399. case utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_RAI_ADMIN, utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_RAI_GROUP:
  400. //部门管理员、ficc主管、权益组长
  401. hiddenConfirm = false //不展示
  402. if todoStatus { //有任务,需要展示
  403. canConfirm = true
  404. }
  405. case utils.ROLE_TYPE_CODE_FICC_TEAM: //ficc组长
  406. if todoStatus { //有任务,需要展示
  407. canConfirm = true
  408. }
  409. if v.SellerId != sysUser.AdminId { //不是自己的客户
  410. hiddenConfirm = false //展示
  411. }
  412. case utils.ROLE_TYPE_CODE_RAI_SELLER: //权益销售
  413. if v.SellerId == sysUser.AdminId { //是自己的客户
  414. has := services.CheckRaiApprovePermission(sysUser.AdminId) //这些个权益销售是有权限的
  415. if has {
  416. if todoStatus { //有任务,需要展示
  417. canConfirm = true
  418. }
  419. hiddenConfirm = false //展示
  420. }
  421. }
  422. }
  423. }
  424. }
  425. }
  426. // To-Do任务状态为未完成的对应任务的截止日期-当前日期;
  427. tmpDeadline := v.Deadline
  428. if strings.Contains(v.TodoStatuss, "未完成") {
  429. if strings.Contains(v.TodoEndTimeStr, "/") {
  430. edtSlice := strings.Split(v.TodoEndTimeStr, "/")
  431. v.TodoEndTime, _ = time.ParseInLocation(utils.FormatDateTime, edtSlice[0], time.Local)
  432. } else {
  433. v.TodoEndTime, _ = time.ParseInLocation(utils.FormatDateTime, v.TodoEndTimeStr, time.Local)
  434. }
  435. tmpEndTime := v.TodoEndTime.Format(utils.FormatDate)
  436. if tmpEndTime == "0001-01-01" {
  437. tmpEndTime = ""
  438. }
  439. if tmpEndTime != "" {
  440. dlTime1 := time.Date(time.Now().Year(), time.Now().Month(), time.Now().Day(), 0, 0, 0, 0, time.Local)
  441. dlTime2 := time.Date(v.TodoEndTime.Year(), v.TodoEndTime.Month(), v.TodoEndTime.Day(), 0, 0, 0, 0, time.Local)
  442. dldays := int(dlTime2.Sub(dlTime1).Hours() / 24)
  443. tmpDeadline = strconv.Itoa(dldays)
  444. }
  445. }
  446. var isShow bool //是否可见
  447. {
  448. switch sysUser.RoleTypeCode {
  449. case utils.ROLE_TYPE_CODE_ADMIN, utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_RAI_ADMIN:
  450. //超管、部门管理员
  451. isShow = true
  452. case utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_RAI_GROUP, utils.ROLE_TYPE_CODE_FICC_TEAM: //ficc主管、权益主管、ficc组长
  453. ficcKey := fmt.Sprint(v.CompanyId, "_", sysUserProductId)
  454. if _, ok := companyProductMap[ficcKey]; ok {
  455. if _, ok2 := myChildSysGroupMap[v.GroupId]; ok2 {
  456. isShow = true
  457. }
  458. }
  459. case utils.ROLE_TYPE_CODE_RAI_SELLER, utils.ROLE_TYPE_CODE_FICC_SELLER: //权益销售、ficc销售
  460. ficcKey := fmt.Sprint(v.CompanyId, "_", sysUserProductId)
  461. if tmpCompanyProduct, ok := companyProductMap[ficcKey]; ok {
  462. if tmpCompanyProduct.SellerId == sysUser.AdminId { //是自己的客户
  463. isShow = true
  464. }
  465. }
  466. }
  467. }
  468. companyList := &CompanyListItem{
  469. CompanyId: v.CompanyId,
  470. CompanyName: v.CompanyName,
  471. CreditCode: v.CreditCode,
  472. CompanyCode: v.CompanyCode,
  473. StartDate: v.StartDate,
  474. EndDate: v.EndDate,
  475. LoseReason: v.LoseReason,
  476. RenewalReason: v.RenewalReason,
  477. FreezeReason: v.FreezeReason,
  478. LossTime: v.LossTime,
  479. Status: tmpStatus,
  480. CompanyType: v.CompanyType,
  481. ApproveStatus: v.ApproveStatus,
  482. SellerName: v.SellerName,
  483. SellerId: v.SellerId,
  484. SellerIds: v.SellerIds,
  485. ExpireDay: v.ExpireDay,
  486. FreezeTime: v.FreezeTime,
  487. GroupId: v.GroupId,
  488. GroupIds: v.GroupIds,
  489. DepartmentId: v.DepartmentId,
  490. IndustryName: v.IndustryName,
  491. IsSuspend: v.IsSuspend,
  492. CreatedTime: v.CreatedTime,
  493. Source: v.Source,
  494. Province: v.Province,
  495. City: v.City,
  496. Address: v.Address,
  497. Reasons: v.Reasons,
  498. FreezeStartDate: v.FreezeStartDate,
  499. FreezeEndDate: v.FreezeEndDate,
  500. FreezeExpireDays: v.FreezeExpireDays,
  501. ProductId: v.ProductId,
  502. FormalTime: v.FormalTime,
  503. IsShared: v.IsShared,
  504. RegionType: v.RegionType,
  505. FiccPackageType: v.FiccPackageType,
  506. FiccLastViewTime: v.FiccLastViewTime,
  507. RaiLastViewTime: v.RaiLastViewTime,
  508. FiccView: v.FiccView,
  509. RaiView: v.RaiView,
  510. RoadShowTotal: v.RoadShowTotal,
  511. FiccTryOutDay: v.FiccTryOutDay,
  512. RaiTryOutDay: v.RaiTryOutDay,
  513. TodoStatus: todoStatus,
  514. CanConfirm: canConfirm,
  515. HiddenConfirm: hiddenConfirm,
  516. HiddenCreate: hiddenCreate,
  517. TodoButtonColor: todoButtonColor,
  518. AllViewTotal: v.AllViewTotal,
  519. Deadline: tmpDeadline,
  520. IsShow: isShow,
  521. TryStageSlice: tryStageSlice,
  522. ShareSeller: v.ShareSeller,
  523. ShareSellerId: v.ShareSellerId,
  524. }
  525. if strings.Contains(companyList.ApproveStatus, "已审批") {
  526. companyList.ApproveStatus = ""
  527. }
  528. companyLists = append(companyLists, companyList)
  529. }
  530. }
  531. if companyLists == nil {
  532. companyLists = make([]*CompanyListItem, 0)
  533. }
  534. page = paging.GetPaging(currentIndex, pageSize, total)
  535. resp.List = companyLists
  536. resp.Paging = page
  537. return
  538. }