|
@@ -0,0 +1,279 @@
|
|
|
+package models
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "github.com/beego/beego/v2/client/orm"
|
|
|
+ "hongze/hongze_cygx/utils"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+type Company struct {
|
|
|
+ CompanyId int `orm:"column(company_id);pk"`
|
|
|
+ CompanyName string `description:"客户名称"`
|
|
|
+ CompanyType int `orm:"column(type)"`
|
|
|
+ CreditCode string `description:"社会统一信用码"`
|
|
|
+ CompanyCode string `description:"客户编码"`
|
|
|
+ Sort int `description:"优先级"`
|
|
|
+ IsFeeCustomer int `description:"是否付费用户"`
|
|
|
+ Country string `description:"国家编码"`
|
|
|
+ Province string `description:"省"`
|
|
|
+ City string `description:"市"`
|
|
|
+ Address string `description:"详细地址"`
|
|
|
+ Enabled int `description:"用户状态"`
|
|
|
+ CreatedTime time.Time `description:"创建时间"`
|
|
|
+ LastUpdatedTime time.Time `description:"最后一次阅读时间"`
|
|
|
+ Seller string `description:"销售员"`
|
|
|
+ SellsId int `description:"销售员id"`
|
|
|
+ CompanyBelong string `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
|
|
|
+ StartDate string `description:"合同开始日期"`
|
|
|
+ EndDate string `description:"合同结束日期"`
|
|
|
+ LastType int `description:"原客户标签"`
|
|
|
+ IsVip int `description:"0:普通用户,1:大客户"`
|
|
|
+ FirstStartDate string `description:"首次设置为试用客户开始时间"`
|
|
|
+ FirstEndDate string `description:"首次设置为试用客户结束时间"`
|
|
|
+ DateType int `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
|
|
|
+ Remark string `description:"备注信息"`
|
|
|
+ RegionType string `description:"地区类型,国内,国外"`
|
|
|
+ OpenCompanyCode string `description:"开放给第三方的客户编码,不让第三方定位我们的客户信息"`
|
|
|
+}
|
|
|
+
|
|
|
+type CompanyLog struct {
|
|
|
+ Id int `orm:"column(id);pk"`
|
|
|
+ CompanyId int `description:"客户id"`
|
|
|
+ CompanyName string `description:"客户名称"`
|
|
|
+ CreditCode string `description:"统一社会信用码"`
|
|
|
+ CompanyCode string `description:"客户编码"`
|
|
|
+ Sort int `description:"优先级"`
|
|
|
+ IsFeeCustomer int `description:"是否付费用户"`
|
|
|
+ Country string `description:"国家编码"`
|
|
|
+ ProvinceId int `description:"省id"`
|
|
|
+ CityId int `description:"市id"`
|
|
|
+ Address string `description:"详细地址"`
|
|
|
+ Ctype int `orm:"column(type)" description:"客户标签,1:付费客户,2:试用客户,3:流失客户,4:潜在客户" `
|
|
|
+ Enabled int `description:"用户状态"`
|
|
|
+ CreatedTime time.Time `description:"创建时间"`
|
|
|
+ LastUpdatedTime time.Time `description:"最后修改时间"`
|
|
|
+ Seller string `description:"销售员"`
|
|
|
+ SellsId int `description:"销售员ID"`
|
|
|
+ CompanyBelong string `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
|
|
|
+ StartDate string `description:"合同开始日期"`
|
|
|
+ EndDate string `description:"合同结束日期"`
|
|
|
+ LoseReason string `description:"流失原因"`
|
|
|
+ LastType int `description:"原客户标签"`
|
|
|
+ FirstStartDate string `description:"首次设置为试用客户开始时间"`
|
|
|
+ FirstEndDate string `description:"首次设置为试用客户结束时间"`
|
|
|
+ DateType int `description:"日期类型"`
|
|
|
+ AdminId int `description:"操作人id"`
|
|
|
+ LogType string `description:"日志类型"`
|
|
|
+ LogCreateTime time.Time `description:"日志创建时间"`
|
|
|
+ Province string `description:"省"`
|
|
|
+ City string `description:"市"`
|
|
|
+}
|
|
|
+
|
|
|
+type CompanyOperationRecord struct {
|
|
|
+ Id int `orm:"column(id);pk"`
|
|
|
+ CompanyId int `description:"客户id"`
|
|
|
+ CompanyName string `description:"客户名称"`
|
|
|
+ SellerId int `description:"销售员id"`
|
|
|
+ SysUserId int `description:"操作者id"`
|
|
|
+ SysRealName string `description:"操作者名称"`
|
|
|
+ Remark string `description:"备注"`
|
|
|
+ Operation string `description:"操作"`
|
|
|
+ CreateTime time.Time `description:"操作时间"`
|
|
|
+ ProductId int `description:"产品id"`
|
|
|
+ ProductName string `description:"产品名称"`
|
|
|
+ ApproveUserId int `description:"审批人id"`
|
|
|
+ ApproveRealName string `description:"审批人姓名"`
|
|
|
+ ApproveContent string `description:"审批人内容"`
|
|
|
+ ApproveRemark string `description:"审批人内容"`
|
|
|
+ Status string `description:"状态"`
|
|
|
+}
|
|
|
+
|
|
|
+type CompanyPermissionLog struct {
|
|
|
+ Id int `orm:"column(id);pk"`
|
|
|
+ CompanyId int
|
|
|
+ ChartPermissionId int
|
|
|
+ CreateTime time.Time
|
|
|
+ SysUserId int
|
|
|
+ SysUserName string
|
|
|
+ StartDate string
|
|
|
+ EndDate string
|
|
|
+ ProductId int
|
|
|
+ ProductName string
|
|
|
+}
|
|
|
+
|
|
|
+type CompanyProduct struct {
|
|
|
+ CompanyProductId int `orm:"column(company_product_id);pk" description:"客户产品id"`
|
|
|
+ CompanyId int `description:"客户id"`
|
|
|
+ ProductId int `description:"产品id"`
|
|
|
+ ProductName string `description:"产品名称"`
|
|
|
+ CompanyName string `description:"客户名称"`
|
|
|
+ Source string `description:"来源"`
|
|
|
+ Reasons string `description:"新增理由"`
|
|
|
+ Status string `description:"客户状态"`
|
|
|
+ IndustryId int `description:"行业id"`
|
|
|
+ IndustryName string `description:"行业名称"`
|
|
|
+ SellerId int `description:"销售id"`
|
|
|
+ SellerName string `description:"销售名称"`
|
|
|
+ GroupId int `description:"销售分组id"`
|
|
|
+ DepartmentId int `description:"销售部门id"`
|
|
|
+ IsSuspend int `description:"1:暂停,0:启用"`
|
|
|
+ SuspendTime time.Time `description:"暂停启用时间"`
|
|
|
+ TryOutTime time.Time `description:"正式转试用时间"`
|
|
|
+ RenewalReason string `description:"正式转试用后的续约情况说明"`
|
|
|
+ LastDescriptionTime time.Time `description:"上次添加说明时间"`
|
|
|
+ RenewalIntention int `description:"是否勾选无续约意向,1:确认,0:未确认"`
|
|
|
+ ApproveStatus string `description:"审批状态:'审批中','通过','驳回'"`
|
|
|
+ FreezeTime time.Time `description:"冻结时间"`
|
|
|
+ FreezeReason time.Time `description:"冻结理由"`
|
|
|
+ Remark string `description:"备注信息"`
|
|
|
+ CreateTime time.Time `description:"创建时间"`
|
|
|
+ ModifyTime time.Time `description:"修改时间"`
|
|
|
+ StartDate string `description:"开始日期"`
|
|
|
+ EndDate string `description:"结束日期"`
|
|
|
+ ContractEndDate time.Time `description:"合同结束日期"`
|
|
|
+ LoseReason string `description:"流失原因"`
|
|
|
+ LossTime time.Time `description:"流失时间"`
|
|
|
+ CompanyType string `description:"客户类型"`
|
|
|
+ OpenCode string `description:"开放给第三方的编码,不让第三方定位我们的客户信息"`
|
|
|
+}
|
|
|
+
|
|
|
+type CompanyProductLog struct {
|
|
|
+ Id int `orm:"column(id);pk"`
|
|
|
+ CompanyProductId int `description:"产品id"`
|
|
|
+ CompanyId int `description:"客户id"`
|
|
|
+ ProductId int `description:"产品id"`
|
|
|
+ ProductName string `description:"产品名称"`
|
|
|
+ CompanyName string `description:"客户名称"`
|
|
|
+ Source string `description:"来源"`
|
|
|
+ Reasons string `description:"新增理由"`
|
|
|
+ Status string `description:"客户状态"`
|
|
|
+ IndustryId int `description:"行业id"`
|
|
|
+ IndustryName string `description:"行业名称"`
|
|
|
+ SellerId int `description:"所属销售id"`
|
|
|
+ SellerName string `description:"所属销售名称"`
|
|
|
+ GroupId int `description:"所属销售分组id"`
|
|
|
+ DepartmentId int `description:"所属销售部门id"`
|
|
|
+ IsSuspend int `description:"1:暂停,0:启用"`
|
|
|
+ SuspendTime time.Time `description:"暂停时间"`
|
|
|
+ FreezeTime time.Time `description:"冻结时间"`
|
|
|
+ Remark string `description:"备注信息"`
|
|
|
+ StartDate string `description:"开始日期"`
|
|
|
+ EndDate string `description:"结束日期"`
|
|
|
+ CreateTime time.Time `description:"创建时间"`
|
|
|
+ ModifyTime time.Time `description:"修改时间"`
|
|
|
+ LoseReason string `description:"流失原因"`
|
|
|
+ LossTime time.Time `description:"流失时间"`
|
|
|
+ LogType string `description:"日志类型"`
|
|
|
+ LogCreateTime time.Time `description:"日志创建时间"`
|
|
|
+ AdminId int `description:"操作人id"`
|
|
|
+ ApproveStatus string `description:"审批状态:'审批中','通过','驳回'"`
|
|
|
+ FreezeStartDate string `description:"冻结开始日期"`
|
|
|
+ FreezeEndDate string `description:"冻结结束日期"`
|
|
|
+}
|
|
|
+
|
|
|
+//type CompanyReportPermission struct {
|
|
|
+//之前的结构体已存在
|
|
|
+//}
|
|
|
+
|
|
|
+type CompanySource struct {
|
|
|
+ SourceId int `orm:"column(source_id);pk"`
|
|
|
+ SourceName string `description:"来源名称"`
|
|
|
+}
|
|
|
+
|
|
|
+//判断公司名称是否存在
|
|
|
+func GetCompanyCountByName(companyName string) (count int, err error) {
|
|
|
+ sql := `SELECT COUNT(1) AS count FROM company WHERE company_name = ?`
|
|
|
+ err = orm.NewOrm().Raw(sql, companyName).QueryRow(&count)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//获取来源详情
|
|
|
+func GetCompanySourceByName(companyName string) (item *CompanySource, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := `SELECT * FROM company_source WHERE source_name = ?`
|
|
|
+ err = o.Raw(sql, companyName).QueryRow(&item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetCompanyCode() (companyCode string, err error) {
|
|
|
+ var num int
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := `SELECT COUNT(1) AS num FROM company WHERE created_time >=? `
|
|
|
+ err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRow(&num)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ companyCode = "KH" + time.Now().Format("20060102") + fmt.Sprintf("%03d", num)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户
|
|
|
+func AddCompany(item *Company) (lastId int64, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ lastId, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//更新客户基础信息
|
|
|
+func (company *Company) Update(cols []string) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ _, err = o.Update(company, cols...)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户产品
|
|
|
+func AddCompanyProduct(item *CompanyProduct) (newId int64, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ newId, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户产品
|
|
|
+func AddCompanyProductLog(item *CompanyProductLog) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ _, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetCompanyReportPermissionCount(companyId, productId int) (count int, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := `SELECT COUNT(1) AS count FROM company_report_permission WHERE company_id=? AND product_id=? `
|
|
|
+ err = o.Raw(sql, companyId, productId).QueryRow(&count)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func DeleteCompanyReportPermission(companyId, productId int) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := ` DELETE FROM company_report_permission WHERE company_id=? AND product_id=? `
|
|
|
+ _, err = o.Raw(sql, companyId, productId).Exec()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户权限
|
|
|
+func AddCompanyReportPermission(item *CompanyReportPermission) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ _, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户权限日志
|
|
|
+func AddCompanyPermissionLog(item *CompanyPermissionLog) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ _, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户操作记录
|
|
|
+func AddCompanyOperationRecord(item *CompanyOperationRecord) (lastId int64, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ lastId, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+//新增客户产品
|
|
|
+func AddCompanyLog(item *CompanyLog) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ _, err = o.Insert(item)
|
|
|
+ return
|
|
|
+}
|