Browse Source

no message

xingzai 1 year ago
parent
commit
847ef18dec
5 changed files with 293 additions and 181 deletions
  1. 29 18
      controllers/company.go
  2. 179 163
      models/company/company.go
  3. 8 0
      models/company/company_product.go
  4. 59 0
      services/company.go
  5. 18 0
      services/company_product.go

+ 29 - 18
controllers/company.go

@@ -378,6 +378,11 @@ func (this *CompanyController) SearchList() {
 			btnItem.IsResearchShow = true
 		}
 		list[i].BtnItem = btnItem
+
+		// 签约未签约按钮回显展示
+		btnCompanyStatusItem := new(company.CompanyStatusButton)
+		btnCompanyStatusItem = services.GetLsitCompanyStatusButton(list[i].CompanyType, list[i].Status, list[i].SigningStatus)
+		list[i].CompanyStatusButton = btnCompanyStatusItem
 	}
 	if list == nil {
 		list = make([]*company.CompanySearchItem, 0)
@@ -1331,6 +1336,11 @@ func (this *CompanyController) List() {
 		}
 		btnItem.BtnServiceRecord = btnServiceRecordMap[list[i].CompanyId]
 
+		// 签约未签约按钮回显展示
+		btnCompanyStatusItem := new(company.CompanyStatusButton)
+		btnCompanyStatusItem = services.GetLsitCompanyStatusButton(list[i].CompanyType, list[i].Status, list[i].SigningStatus)
+		list[i].CompanyStatusButton = btnCompanyStatusItem
+
 		//productIdArr := strings.Split(item.ProductIds, "/")
 		//// 套餐类型
 		//packageTypeArr := strings.Split(item.PackageTypes, "/")
@@ -1711,24 +1721,25 @@ func (this *CompanyController) List() {
 				//RaiView:          viewTotal[1],
 				//FiccView: ficcViewTotal,
 				//RaiView:  raiViewTotal,
-				FiccView:        v.FiccView,
-				RaiView:         v.RaiView,
-				FiccTryOutDay:   v.FiccTryOutDay,
-				RaiTryOutDay:    v.RaiTryOutDay,
-				AllViewTotal:    v.AllViewTotal,
-				RoadShowTotal:   v.RoadShowTotal,
-				TodoStatus:      todoStatus,
-				CanConfirm:      canConfirm,
-				HiddenConfirm:   hiddenConfirm,
-				HiddenCreate:    hiddenCreate,
-				TodoButtonColor: todoButtonColor,
-				TryStageSlice:   v.TryStageSlice,
-				Deadline:        v.Deadline,
-				WeekViewActive:  v.WeekViewActive,
-				IsShare:         v.IsShare,
-				CloseTime:       v.CloseTime,
-				CloseReason:     v.CloseReason,
-				IsSigning:       v.IsSigning,
+				FiccView:            v.FiccView,
+				RaiView:             v.RaiView,
+				FiccTryOutDay:       v.FiccTryOutDay,
+				RaiTryOutDay:        v.RaiTryOutDay,
+				AllViewTotal:        v.AllViewTotal,
+				RoadShowTotal:       v.RoadShowTotal,
+				TodoStatus:          todoStatus,
+				CanConfirm:          canConfirm,
+				HiddenConfirm:       hiddenConfirm,
+				HiddenCreate:        hiddenCreate,
+				TodoButtonColor:     todoButtonColor,
+				TryStageSlice:       v.TryStageSlice,
+				Deadline:            v.Deadline,
+				WeekViewActive:      v.WeekViewActive,
+				IsShare:             v.IsShare,
+				CloseTime:           v.CloseTime,
+				CloseReason:         v.CloseReason,
+				IsSigning:           v.IsSigning,
+				CompanyStatusButton: v.CompanyStatusButton,
 			}
 			companyLists = append(companyLists, companyList)
 		}

+ 179 - 163
models/company/company.go

@@ -59,39 +59,41 @@ func GetCompanyById(companyId int) (items *Company, err error) {
 }
 
 type CompanySearchItem struct {
-	CompanyId       int    `orm:"column(company_id);pk"`
-	CompanyName     string `description:"客户名称"`
-	CreditCode      string `description:"社会统一信用码"`
-	CompanyCode     string `description:"客户编码"`
-	StartDate       string `description:"合同开始日期"`
-	EndDate         string `description:"合同结束日期"`
-	LoseReason      string `description:"流失原因"`
-	LossTime        string `description:"流失时间"`
-	Status          string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
-	CompanyType     string `description:"客户类型:ficc/权益"`
-	ApproveStatus   string `description:"审批状态:'审批中','通过','驳回' 审批状态为空时,表示没有审批申请"`
-	SellerName      string `description:"销售:吉根龙/颖丹"`
-	SellerIds       string `description:"销售ID集合,包含ficc和权益的销售id" json:"-"`
-	Duration        string `description:"时长"`
-	FreezeTime      string `description:"冻结时间"`
-	GroupId         int    `description:"分组id"`
-	GroupIds        string `json:"-" description:"分组id集合,包含ficc和权益的小组id"`
-	DepartmentId    int    `description:"部门id"`
-	IsSuspend       int    `description:"是否暂停:1:暂停,0:启用 "`
-	ProductId       int    `description:"产品id"`
-	ProductIds      string `json:"-";description:"分组id集合,包含ficc和权益的小组id"`
-	IsMoveShow      int    `description:"按钮显示控制:1:显示,移动按钮,0:不显示移动按钮"`
-	SellerId        int    `description:"销售id"`
-	BtnItem         *ButtonPermission
-	FormalTime      string `description:"转正时间"`
-	FreezeStartDate string `description:"冻结开始日期"`
-	FreezeEndDate   string `description:"冻结结束日期"`
-	RegionType      string `description:"地区类型,国内,国外"`
-	ShareSeller     string `description:"共享销售员"`
-	ShareSellerId   int    `description:"共享销售员id"`
-	IsShare         int    `description:"0:非共享用户,1:共享客户"`
-	IsScrounge      int    `description:"是否白嫖 0不是 1是"`
-	IsSigning       int    `description:"是否签约过,1是,0否"`
+	CompanyId           int    `orm:"column(company_id);pk"`
+	CompanyName         string `description:"客户名称"`
+	CreditCode          string `description:"社会统一信用码"`
+	CompanyCode         string `description:"客户编码"`
+	StartDate           string `description:"合同开始日期"`
+	EndDate             string `description:"合同结束日期"`
+	LoseReason          string `description:"流失原因"`
+	LossTime            string `description:"流失时间"`
+	Status              string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
+	CompanyType         string `description:"客户类型:ficc/权益"`
+	ApproveStatus       string `description:"审批状态:'审批中','通过','驳回' 审批状态为空时,表示没有审批申请"`
+	SellerName          string `description:"销售:吉根龙/颖丹"`
+	SellerIds           string `description:"销售ID集合,包含ficc和权益的销售id" json:"-"`
+	Duration            string `description:"时长"`
+	FreezeTime          string `description:"冻结时间"`
+	GroupId             int    `description:"分组id"`
+	GroupIds            string `json:"-" description:"分组id集合,包含ficc和权益的小组id"`
+	DepartmentId        int    `description:"部门id"`
+	IsSuspend           int    `description:"是否暂停:1:暂停,0:启用 "`
+	ProductId           int    `description:"产品id"`
+	ProductIds          string `json:"-";description:"分组id集合,包含ficc和权益的小组id"`
+	IsMoveShow          int    `description:"按钮显示控制:1:显示,移动按钮,0:不显示移动按钮"`
+	SellerId            int    `description:"销售id"`
+	BtnItem             *ButtonPermission
+	FormalTime          string `description:"转正时间"`
+	FreezeStartDate     string `description:"冻结开始日期"`
+	FreezeEndDate       string `description:"冻结结束日期"`
+	RegionType          string `description:"地区类型,国内,国外"`
+	ShareSeller         string `description:"共享销售员"`
+	ShareSellerId       int    `description:"共享销售员id"`
+	IsShare             int    `description:"0:非共享用户,1:共享客户"`
+	IsScrounge          int    `description:"是否白嫖 0不是 1是"`
+	IsSigning           int    `description:"是否签约过,1是,0否"`
+	SigningStatus       string `description:"签约状态,已签约过/未签约过"`
+	CompanyStatusButton *CompanyStatusButton
 }
 
 type CompanySearchListResp struct {
@@ -113,7 +115,8 @@ func GetCompanySearchList(condition string, pars []interface{}, limitParam ...in
 			GROUP_CONCAT(DISTINCT b.product_name ORDER BY b.product_id ASC SEPARATOR '/') AS company_type,
             GROUP_CONCAT(DISTINCT b.approve_status ORDER BY b.product_id ASC SEPARATOR '/') AS approve_status,
             GROUP_CONCAT(DISTINCT b.freeze_start_date ORDER BY b.product_id ASC SEPARATOR '/') AS freeze_start_date,
-            GROUP_CONCAT(DISTINCT b.freeze_end_date ORDER BY b.product_id ASC SEPARATOR '/') AS freeze_end_date
+            GROUP_CONCAT(DISTINCT b.freeze_end_date ORDER BY b.product_id ASC SEPARATOR '/') AS freeze_end_date,
+			GROUP_CONCAT( DISTINCT b.is_signing ORDER BY b.product_id ASC SEPARATOR '/' ) AS signing_status
 			FROM company AS a
 			INNER JOIN company_product AS b ON a.company_id=b.company_id
 			WHERE a.enabled=1 `
@@ -142,138 +145,150 @@ func GetCompanySearchCount(condition string, pars []interface{}) (count int, err
 }
 
 type CompanyItem struct {
-	CompanyId        int    `orm:"column(company_id);pk"`
-	CompanyName      string `description:"客户名称"`
-	CreditCode       string `description:"社会统一信用码"`
-	CompanyCode      string `description:"客户编码"`
-	StartDate        string `description:"合同开始日期"`
-	EndDate          string `description:"合同结束日期"`
-	LoseReason       string `description:"流失原因"`
-	RenewalReason    string `description:"续约说明"`
-	FreezeReason     string `description:"冻结理由"`
-	LossTime         string `description:"流失时间"`
-	Status           string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
-	CompanyType      string `description:"客户类型:ficc/权益"`
-	ApproveStatus    string `description:"审批状态:'待审批','已审批','驳回' 审批状态为空时,表示没有审批申请"`
-	SellerName       string `description:"销售:吉根龙/颖丹"`
-	SellerId         int    `description:"销售ID"`
-	SellerIds        string `description:"销售ID集合,包含ficc和权益的销售id"`
-	ShareSeller      string `description:"共享销售员"`
-	ShareSellerId    int    `description:"共享销售员id"`
-	PackageTypes     string `description:"套餐类型集合,包含ficc和权益的套餐类型" json:"-"`
-	FiccPackageType  int    `description:"ficc的套餐类型"`
-	ExpireDay        string `description:"到期天数"`
-	FreezeTime       string `description:"冻结时间"`
-	GroupId          int    `description:"分组id"`
-	GroupIds         string `description:"分组id集合,包含ficc和权益的小组id" json:"-"`
-	DepartmentId     int    `description:"部门id"`
-	IndustryName     string `description:"所属行业"`
-	IsSuspend        int    `description:"是否暂停:1:暂停,0:启用 "`
-	CreatedTime      string `description:"创建时间"`
-	Source           string `description:"客户来源"`
-	Province         string `description:"省"`
-	City             string `description:"市"`
-	Address          string `description:"详细地址"`
-	Reasons          string `description:"新增理由"`
-	FreezeStartDate  string `description:"冻结开始日期"`
-	FreezeEndDate    string `description:"冻结结束日期"`
-	FreezeExpireDays int    `description:"冻结到期天数"`
-	BtnItem          *ButtonPermission
-	ProductId        int                  `json:"-"`
-	ProductIds       string               `description:"产品id集合,包含ficc和权益的产品id" json:"-"`
-	FormalTime       string               `description:"转正时间"`
-	IsShared         bool                 `description:"是否共享客户"`
-	RegionType       string               `description:"区域:国内,海外"`
-	FiccLastViewTime string               `description:"ficc最近一次阅读时间"`
-	RaiLastViewTime  string               `description:"权益最近一次阅读时间"`
-	ViewTotals       string               `description:"阅读次数集合,包含ficc和权益的阅读次数" json:"-"`
-	LastViewTimes    string               `description:"最近一次阅读时间集合,包含ficc和权益的最近一次阅读时间" json:"-"`
-	FiccView         int                  `description:"Ficc报告阅读次数" json:"-"`
-	RaiView          int                  `description:"权益报告阅读次数" json:"-"`
-	RoadShowTotal    int                  `description:"累计路演次数"`
-	TodoStatuss      string               `description:"任务状态"`
-	TryStageStr      string               `description:"试用客户子标签"`
-	TryStageSlice    []*TryStageSliceItem `description:"试用状态相关"`
-	AllViewTotal     int                  `description:"总阅读数"`
-	Deadline         string               `description:"未完成的todo任务的截止日期,截止目前还剩余的天数"`
-	TodoEndTimeStr   string               `description:"未完成的todo任务的截止日期拼接格式"`
-	TodoEndTime      time.Time            `description:"未完成的todo任务的截止日期"`
-	TryOutDayTotals  string               `description:"试用天数集合,包含ficc和权益的试用天数" json:"-"`
-	FiccTryOutDay    int                  `description:"Ficc试用天数" json:"-"`
-	RaiTryOutDay     int                  `description:"权益试用天数" json:"-"`
-	WeekViewActive   int                  `description:"周阅读活跃: 0-七日内无阅读; 1-活跃"`
-	IsShare          int                  `description:"0:非共享用户,1:共享客户"`
-	LastServiceTime  string               `description:"最后服务时间"`
-	ServiceTimes     int                  `description:"服务次数"`
-	CloseReason      string               `description:"关闭原因"`
-	CloseTime        string               `description:"关闭时间"`
-	IsSigning        int                  `description:"是否签约过,1是,0否"`
+	CompanyId           int    `orm:"column(company_id);pk"`
+	CompanyName         string `description:"客户名称"`
+	CreditCode          string `description:"社会统一信用码"`
+	CompanyCode         string `description:"客户编码"`
+	StartDate           string `description:"合同开始日期"`
+	EndDate             string `description:"合同结束日期"`
+	LoseReason          string `description:"流失原因"`
+	RenewalReason       string `description:"续约说明"`
+	FreezeReason        string `description:"冻结理由"`
+	LossTime            string `description:"流失时间"`
+	Status              string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
+	CompanyType         string `description:"客户类型:ficc/权益"`
+	ApproveStatus       string `description:"审批状态:'待审批','已审批','驳回' 审批状态为空时,表示没有审批申请"`
+	SellerName          string `description:"销售:吉根龙/颖丹"`
+	SellerId            int    `description:"销售ID"`
+	SellerIds           string `description:"销售ID集合,包含ficc和权益的销售id"`
+	ShareSeller         string `description:"共享销售员"`
+	ShareSellerId       int    `description:"共享销售员id"`
+	PackageTypes        string `description:"套餐类型集合,包含ficc和权益的套餐类型" json:"-"`
+	FiccPackageType     int    `description:"ficc的套餐类型"`
+	ExpireDay           string `description:"到期天数"`
+	FreezeTime          string `description:"冻结时间"`
+	GroupId             int    `description:"分组id"`
+	GroupIds            string `description:"分组id集合,包含ficc和权益的小组id" json:"-"`
+	DepartmentId        int    `description:"部门id"`
+	IndustryName        string `description:"所属行业"`
+	IsSuspend           int    `description:"是否暂停:1:暂停,0:启用 "`
+	CreatedTime         string `description:"创建时间"`
+	Source              string `description:"客户来源"`
+	Province            string `description:"省"`
+	City                string `description:"市"`
+	Address             string `description:"详细地址"`
+	Reasons             string `description:"新增理由"`
+	FreezeStartDate     string `description:"冻结开始日期"`
+	FreezeEndDate       string `description:"冻结结束日期"`
+	FreezeExpireDays    int    `description:"冻结到期天数"`
+	BtnItem             *ButtonPermission
+	ProductId           int                  `json:"-"`
+	ProductIds          string               `description:"产品id集合,包含ficc和权益的产品id" json:"-"`
+	FormalTime          string               `description:"转正时间"`
+	IsShared            bool                 `description:"是否共享客户"`
+	RegionType          string               `description:"区域:国内,海外"`
+	FiccLastViewTime    string               `description:"ficc最近一次阅读时间"`
+	RaiLastViewTime     string               `description:"权益最近一次阅读时间"`
+	ViewTotals          string               `description:"阅读次数集合,包含ficc和权益的阅读次数" json:"-"`
+	LastViewTimes       string               `description:"最近一次阅读时间集合,包含ficc和权益的最近一次阅读时间" json:"-"`
+	FiccView            int                  `description:"Ficc报告阅读次数" json:"-"`
+	RaiView             int                  `description:"权益报告阅读次数" json:"-"`
+	RoadShowTotal       int                  `description:"累计路演次数"`
+	TodoStatuss         string               `description:"任务状态"`
+	TryStageStr         string               `description:"试用客户子标签"`
+	TryStageSlice       []*TryStageSliceItem `description:"试用状态相关"`
+	AllViewTotal        int                  `description:"总阅读数"`
+	Deadline            string               `description:"未完成的todo任务的截止日期,截止目前还剩余的天数"`
+	TodoEndTimeStr      string               `description:"未完成的todo任务的截止日期拼接格式"`
+	TodoEndTime         time.Time            `description:"未完成的todo任务的截止日期"`
+	TryOutDayTotals     string               `description:"试用天数集合,包含ficc和权益的试用天数" json:"-"`
+	FiccTryOutDay       int                  `description:"Ficc试用天数" json:"-"`
+	RaiTryOutDay        int                  `description:"权益试用天数" json:"-"`
+	WeekViewActive      int                  `description:"周阅读活跃: 0-七日内无阅读; 1-活跃"`
+	IsShare             int                  `description:"0:非共享用户,1:共享客户"`
+	LastServiceTime     string               `description:"最后服务时间"`
+	ServiceTimes        int                  `description:"服务次数"`
+	CloseReason         string               `description:"关闭原因"`
+	CloseTime           string               `description:"关闭时间"`
+	IsSigning           int                  `description:"是否签约过,1是,0否"`
+	SigningStatus       string               `description:"签约状态,已签约过/未签约过"`
+	CompanyStatusButton *CompanyStatusButton
 }
 
 type CompanyListItem struct {
-	CompanyId        int    `orm:"column(company_id);pk"`
-	CompanyName      string `description:"客户名称"`
-	CreditCode       string `description:"社会统一信用码"`
-	CompanyCode      string `description:"客户编码"`
-	StartDate        string `description:"合同开始日期"`
-	EndDate          string `description:"合同结束日期"`
-	LoseReason       string `description:"流失原因"`
-	RenewalReason    string `description:"续约说明"`
-	FreezeReason     string `description:"冻结理由"`
-	LossTime         string `description:"流失时间"`
-	Status           string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
-	CompanyType      string `description:"客户类型:ficc/权益"`
-	ApproveStatus    string `description:"审批状态:'待审批','已审批','驳回' 审批状态为空时,表示没有审批申请"`
-	SellerName       string `description:"销售:吉根龙/颖丹"`
-	SellerId         int    `description:"销售ID"`
-	SellerIds        string `description:"销售ID集合,包含ficc和权益的销售id"`
-	FiccPackageType  int    `description:"ficc的套餐类型"`
-	ExpireDay        string `description:"到期天数"`
-	FreezeTime       string `description:"冻结时间"`
-	GroupId          int    `description:"分组id"`
-	GroupIds         string `description:"分组id集合,包含ficc和权益的小组id" json:"-"`
-	DepartmentId     int    `description:"部门id"`
-	IndustryName     string `description:"所属行业"`
-	IsSuspend        int    `description:"是否暂停:1:暂停,0:启用 "`
-	CreatedTime      string `description:"创建时间"`
-	Source           string `description:"客户来源"`
-	Province         string `description:"省"`
-	City             string `description:"市"`
-	Address          string `description:"详细地址"`
-	Reasons          string `description:"新增理由"`
-	FreezeStartDate  string `description:"冻结开始日期"`
-	FreezeEndDate    string `description:"冻结结束日期"`
-	FreezeExpireDays int    `description:"冻结到期天数"`
-	BtnItem          *ButtonPermission
-	ProductId        int                  `json:"-"`
-	FormalTime       string               `description:"转正时间"`
-	IsShared         bool                 `description:"是否共享客户"`
-	RegionType       string               `description:"区域:国内,海外"`
-	FiccView         int                  `description:"Ficc报告阅读次数"`
-	RaiView          int                  `description:"权益报告阅读次数"`
-	FiccLastViewTime string               `description:"ficc最近一次阅读时间"`
-	RaiLastViewTime  string               `description:"权益最近一次阅读时间"`
-	RoadShowTotal    int                  `description:"累计路演次数"`
-	TodoStatus       bool                 `description:"是否存在进行中任务,true:存在待处理的任务"`
-	CanConfirm       bool                 `description:"是否允许完成任务,true:允许完成任务"`
-	HiddenConfirm    bool                 `description:"是否隐藏完成任务按钮,true:隐藏完成任务按钮"`
-	HiddenCreate     bool                 `description:"是否隐藏新增/编辑按钮,true:隐藏新增/编辑按钮"`
-	TodoButtonColor  string               `description:"任务按钮颜色:red,green,gray"`
-	TryStageSlice    []*TryStageSliceItem `description:"试用状态相关"`
-	AllViewTotal     int                  `description:"总阅读数"`
-	Deadline         string               `description:"未完成的todo任务的截止日期,截止目前还剩余的天数"`
-	FiccTryOutDay    int                  `description:"Ficc总试用天数"`
-	RaiTryOutDay     int                  `description:"权益总试用天数"`
-	WeekViewActive   int                  `description:"周阅读活跃: 0-七日内无阅读; 1-活跃"`
-	IsShare          int                  `description:"0:非共享用户,1:共享客户"`
-	ShareSeller      string               `description:"共享销售员"`
-	ShareSellerId    int                  `description:"共享销售员id"`
-	LastServiceTime  string               `description:"最后服务时间"`
-	ServiceTimes     int                  `description:"服务次数"`
-	CloseReason      string               `description:"关闭客户原因"`
-	CloseTime        string               `description:"关闭客户时间"`
-	IsScrounge       int                  `description:"是否白嫖 0不是 1是"`
-	IsSigning        int                  `description:"是否签约过 0不是 1是"`
+	CompanyId           int    `orm:"column(company_id);pk"`
+	CompanyName         string `description:"客户名称"`
+	CreditCode          string `description:"社会统一信用码"`
+	CompanyCode         string `description:"客户编码"`
+	StartDate           string `description:"合同开始日期"`
+	EndDate             string `description:"合同结束日期"`
+	LoseReason          string `description:"流失原因"`
+	RenewalReason       string `description:"续约说明"`
+	FreezeReason        string `description:"冻结理由"`
+	LossTime            string `description:"流失时间"`
+	Status              string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
+	CompanyType         string `description:"客户类型:ficc/权益"`
+	ApproveStatus       string `description:"审批状态:'待审批','已审批','驳回' 审批状态为空时,表示没有审批申请"`
+	SellerName          string `description:"销售:吉根龙/颖丹"`
+	SellerId            int    `description:"销售ID"`
+	SellerIds           string `description:"销售ID集合,包含ficc和权益的销售id"`
+	FiccPackageType     int    `description:"ficc的套餐类型"`
+	ExpireDay           string `description:"到期天数"`
+	FreezeTime          string `description:"冻结时间"`
+	GroupId             int    `description:"分组id"`
+	GroupIds            string `description:"分组id集合,包含ficc和权益的小组id" json:"-"`
+	DepartmentId        int    `description:"部门id"`
+	IndustryName        string `description:"所属行业"`
+	IsSuspend           int    `description:"是否暂停:1:暂停,0:启用 "`
+	CreatedTime         string `description:"创建时间"`
+	Source              string `description:"客户来源"`
+	Province            string `description:"省"`
+	City                string `description:"市"`
+	Address             string `description:"详细地址"`
+	Reasons             string `description:"新增理由"`
+	FreezeStartDate     string `description:"冻结开始日期"`
+	FreezeEndDate       string `description:"冻结结束日期"`
+	FreezeExpireDays    int    `description:"冻结到期天数"`
+	BtnItem             *ButtonPermission
+	ProductId           int                  `json:"-"`
+	FormalTime          string               `description:"转正时间"`
+	IsShared            bool                 `description:"是否共享客户"`
+	RegionType          string               `description:"区域:国内,海外"`
+	FiccView            int                  `description:"Ficc报告阅读次数"`
+	RaiView             int                  `description:"权益报告阅读次数"`
+	FiccLastViewTime    string               `description:"ficc最近一次阅读时间"`
+	RaiLastViewTime     string               `description:"权益最近一次阅读时间"`
+	RoadShowTotal       int                  `description:"累计路演次数"`
+	TodoStatus          bool                 `description:"是否存在进行中任务,true:存在待处理的任务"`
+	CanConfirm          bool                 `description:"是否允许完成任务,true:允许完成任务"`
+	HiddenConfirm       bool                 `description:"是否隐藏完成任务按钮,true:隐藏完成任务按钮"`
+	HiddenCreate        bool                 `description:"是否隐藏新增/编辑按钮,true:隐藏新增/编辑按钮"`
+	TodoButtonColor     string               `description:"任务按钮颜色:red,green,gray"`
+	TryStageSlice       []*TryStageSliceItem `description:"试用状态相关"`
+	AllViewTotal        int                  `description:"总阅读数"`
+	Deadline            string               `description:"未完成的todo任务的截止日期,截止目前还剩余的天数"`
+	FiccTryOutDay       int                  `description:"Ficc总试用天数"`
+	RaiTryOutDay        int                  `description:"权益总试用天数"`
+	WeekViewActive      int                  `description:"周阅读活跃: 0-七日内无阅读; 1-活跃"`
+	IsShare             int                  `description:"0:非共享用户,1:共享客户"`
+	ShareSeller         string               `description:"共享销售员"`
+	ShareSellerId       int                  `description:"共享销售员id"`
+	LastServiceTime     string               `description:"最后服务时间"`
+	ServiceTimes        int                  `description:"服务次数"`
+	CloseReason         string               `description:"关闭客户原因"`
+	CloseTime           string               `description:"关闭客户时间"`
+	IsScrounge          int                  `description:"是否白嫖 0不是 1是"`
+	IsSigning           int                  `description:"是否签约过 0不是 1是"`
+	SigningStatus       string               `description:"签约状态,已签约过/未签约过"`
+	CompanyStatusButton *CompanyStatusButton
+}
+
+// 已签约未签约客户回显按钮
+type CompanyStatusButton struct {
+	FiccStatus        string `description:"Ficc客户状态"`
+	RaiStatus         string `description:"权益客户状态"`
+	FiccSigningStatus string `description:"Ficc客户签约状态,已签约过/未签约过"`
+	RaiSigningStatus  string `description:"权益客户签约状态,已签约过/未签约过"`
 }
 
 type TryStageSliceItem struct {
@@ -354,6 +369,7 @@ as sort_todo_end_time,
 			GROUP_CONCAT(DISTINCT b.todo_status ORDER BY b.product_id ASC SEPARATOR '/') AS todo_statuss,
             GROUP_CONCAT(DISTINCT b.todo_end_time ORDER BY b.product_id ASC SEPARATOR '/') AS todo_end_time_str,
 			GROUP_CONCAT(DISTINCT b.try_out_day_total ORDER BY b.product_id ASC SEPARATOR '/') AS try_out_day_totals,
+			GROUP_CONCAT( DISTINCT b.is_signing ORDER BY b.product_id ASC SEPARATOR '/' ) AS signing_status,
 			b.is_suspend,
 			b.freeze_start_date,
 			b.freeze_end_date,

+ 8 - 0
models/company/company_product.go

@@ -581,3 +581,11 @@ func GetCompanyProductListBycondition(condition string, pars []interface{}) (ite
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+// 更新用户是否签约过
+func UpdateCompanyProductIsSigningById(companyId, productId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company_product SET is_signing=1 WHERE company_id=? AND product_id=? `
+	_, err = o.Raw(sql, companyId, productId).Exec()
+	return
+}

+ 59 - 0
services/company.go

@@ -2396,3 +2396,62 @@ func GetShareCompanyPermissionButton(roleTypeCode, statuses string, productId in
 	}
 	return
 }
+
+// 处理客户列表签约未签约状态回显
+func GetLsitCompanyStatusButton(companyType, status, signingStatus string) (button *company.CompanyStatusButton) {
+	var ficcStatus string
+	var raiStatus string
+	var ficcSigningStatus string
+	var raiSigningStatus string
+	if strings.Contains(status, "/") {
+		//signingStatus 1;已签约,0:未签约 ,如果是 0的时候,表示两个都是未签约,手动改为 0/0 ,如果两个都是1 的时候展示 1 手动改为 1/1
+		tmpStatusArr := strings.Split(status, "/")
+		ficcStatus = tmpStatusArr[0]
+		raiStatus = tmpStatusArr[1]
+		if signingStatus == "0" {
+			signingStatus = "0/0"
+		} else if signingStatus == "1" {
+			signingStatus = "1/1"
+		}
+		if strings.Contains(status, "/") {
+			tmpSigningStatusArr := strings.Split(signingStatus, "/")
+			ficcSigningStatus = tmpSigningStatusArr[0]
+			raiSigningStatus = tmpSigningStatusArr[1]
+		}
+	} else {
+		if strings.Contains(companyType, "ficc") {
+			ficcStatus = status
+			ficcSigningStatus = signingStatus
+		} else {
+			raiStatus = status
+			raiSigningStatus = signingStatus
+		}
+	}
+
+	if ficcStatus == utils.COMPANY_STATUS_LOSE {
+		if ficcSigningStatus == "0" {
+			ficcSigningStatus = "未签约过"
+		} else if ficcSigningStatus == "1" {
+			ficcSigningStatus = "已签约过"
+		}
+	} else {
+		ficcSigningStatus = ""
+	}
+
+	if raiStatus == utils.COMPANY_STATUS_LOSE {
+		if raiSigningStatus == "0" {
+			raiSigningStatus = "未签约过"
+		} else if raiSigningStatus == "1" {
+			raiSigningStatus = "已签约过"
+		}
+	} else {
+		raiSigningStatus = ""
+	}
+
+	button = new(company.CompanyStatusButton)
+	button.FiccStatus = ficcStatus
+	button.RaiStatus = raiStatus
+	button.FiccSigningStatus = ficcSigningStatus
+	button.RaiSigningStatus = raiSigningStatus
+	return
+}

+ 18 - 0
services/company_product.go

@@ -34,3 +34,21 @@ func GetSellNameMapByCompanyIds(companyIds []int) (respMap map[int]string) {
 	}
 	return
 }
+
+// 更新客户是否签约状态
+func init12323() {
+	list, err := company.GetTryOutCompanyOperationRecordList()
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	for _, v := range list {
+		fmt.Println(v.CompanyId)
+		err = company.UpdateCompanyProductIsSigningById(v.CompanyId, v.ProductId)
+		if err != nil {
+			fmt.Println(err)
+			return
+		}
+	}
+}