package cygx

import (
	"github.com/beego/beego/v2/client/orm"
	"github.com/rdlucklib/rdluck_tools/paging"
)

type CygxApplyRecord struct {
	ApplyRecordId            int    `orm:"column(apply_record_id);pk" description:"申请试用id"`
	BusinessCardUrl          string `description:"名片地址"`
	RealName                 string `description:"姓名"`
	CompanyName              string `description:"公司名称"`
	Mobile                   string `description:"手机号"`
	CreateTime               string `description:"创建时间"`
	ApplyMethod              int    `description:"1:已付费客户申请试用，2:非客户申请试用"`
	Status                   int    `description:"0:未处理,1:已处理"`
	DealTime                 string `description:"处理时间"`
	Email                    string `description:"邮箱"`
	SellerName               string `description:"销售"`
	CompanyIdPay             int    `description:"1：为潜在客户，大于1现有客户"`
	InviteeMobile            string `description:"邀请人手机号"`
	InviteeCompany           string `description:"邀请人公司名称"`
	InviteeCompanyId         string `description:"邀请人公司ID"`
	ApplySource              string `description:"申请来源"`
	InviteeEmail             string `description:"邀请人邮箱"`
	IsInviteeComanyExistence bool   `description:"邀请公司是否还存在"`
	InviteeCompanyNum        int    `description:"邀请公司是否还存在（辅助字段）"`
	CompanyIdType            int    `description:"用户状态，1：潜在客户 、2：现有客户 、3：FICC客户 、4：现有客户（正式，无对应权限） 、5：现有客户（试用，无对应权限）  、6：现有客户（试用暂停） 、7：现有客户（冻结） 、8：现有客户（流失） "`
	CompanyIdTypeName        string `description:"用户状态，1：潜在客户 、2：现有客户 、3：FICC客户 、4：现有客户（正式，无对应权限） 、5：现有客户（试用，无对应权限）  、6：现有客户（试用暂停） 、7：现有客户（冻结） 、8：现有客户（流失） "`
	RegisterPlatform         int    `description:"来源 1小程序，2：网页"`
	InviteCompanySource      int    `description:"三方来源 ，1：弘则本身，2:络町"`
	ApplicationSource        string `description:"申请来源"`
	SourceId                 int    `description:"资源ID"`
	Source                   string `description:"资源类型 报告 ：article 、图表 ：newchart、微路演 ：roadshow、活动 ：activity、活动视频：activityvideo、活动音频：activityvoice、专项调研活动：activityspecial"`
	Title                    string `description:"标题"`
}

type CygxApplyRecordResp struct {
	ApplyRecordId            int    `orm:"column(apply_record_id);pk" description:"申请试用id"`
	UserId                   int    `description:"用户ID"`
	BusinessCardUrl          string `description:"名片地址"`
	RealName                 string `description:"姓名"`
	CompanyName              string `description:"公司名称"`
	Mobile                   string `description:"手机号"`
	CreateTime               string `description:"创建时间"`
	ApplyMethod              int    `description:"1:已付费客户申请试用，2:非客户申请试用"`
	Status                   int    `description:"0:未处理,1:已处理"`
	DealTime                 string `description:"处理时间"`
	Email                    string `description:"邮箱"`
	SellerName               string `description:"销售"`
	CompanyIdPay             int    `description:"1：为潜在客户，大于1现有客户"`
	InviteeMobile            string `description:"邀请人手机号"`
	InviteeCompany           string `description:"邀请人公司名称"`
	InviteeCompanyId         string `description:"邀请人公司ID"`
	ApplySource              string `description:"申请来源"`
	InviteeEmail             string `description:"邀请人邮箱"`
	IsInviteeComanyExistence bool   `description:"邀请公司是否还存在"`
	InviteeCompanyNum        int    `description:"邀请公司是否还存在（辅助字段）"`
	CompanyIdType            int    `description:"用户状态，1：潜在客户 、2：现有客户 、3：FICC客户 、4：现有客户（正式，无对应权限） 、5：现有客户（试用，无对应权限）  、6：现有客户（试用暂停） 、7：现有客户（冻结） 、8：现有客户（流失） "`
	CompanyIdTypeName        string `description:"用户状态，1：潜在客户 、2：现有客户 、3：FICC客户 、4：现有客户（正式，无对应权限） 、5：现有客户（试用，无对应权限）  、6：现有客户（试用暂停） 、7：现有客户（冻结） 、8：现有客户（流失） "`
	RegisterPlatform         int    `description:"来源 1小程序，2：网页"`
	InviteCompanySource      int    `description:"三方来源 ，1：弘则本身，2:络町"`
	ApplicationSource        string `description:"申请来源"`
	SourceId                 int    `description:"资源ID"`
	Source                   string `description:"资源类型 报告 ：article 、图表 ：newchart、微路演 ：roadshow、活动 ：activity、活动视频：activityvideo、活动音频：activityvoice、专项调研活动：activityspecial"`
	Title                    string `description:"标题"`
	HttpUrl                  string `description:"跳转地址"`
}

func GetCygxApplyRecord(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxApplyRecordResp, err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := ` SELECT DISTINCT a.*
        FROM cygx_apply_record AS a  WHERE  1 = 1  `
	if condition != "" {
		sql += condition
	}
	sql += ` GROUP BY a.apply_record_id  ORDER BY a.create_time DESC  LIMIT ?,? `
	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
	return
}

func GetCygxApplyRecordCount(condition string, pars []interface{}) (count int, err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := `SELECT COUNT( 1 ) AS count FROM cygx_apply_record AS a WHERE  1 = 1  `
	if condition != "" {
		sql += condition
	}
	err = o.Raw(sql, pars).QueryRow(&count)
	return
}

type CygxApplyRecordListResp struct {
	List   []*CygxApplyRecordResp
	Paging *paging.PagingItem `description:"分页数据"`
}

type CygxDealReq struct {
	ApplyRecordId int `description:"申请试用id"`
}

func DealCygxApplyRecord(applyRecordId, sysUserId int) (err error) {
	sql := `UPDATE cygx_apply_record SET status=1,deal_time=NOW(),sys_user_id=? WHERE apply_record_id=? `
	o := orm.NewOrmUsingDB("hz_cygx")
	_, err = o.Raw(sql, sysUserId, applyRecordId).Exec()
	return
}
