package cygx

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

type CygxYanxuanSpecialAuthor struct {
	Id           int       `orm:"column(id);pk"`
	UserId       int       // 用户ID
	SpecialName  string    // 专栏名称
	Introduction string    // 介绍
	Label        string    // 标签
	NickName     string    // 昵称
	RealName     string    // 姓名
	Mobile       string    // 手机号
	MobileInit   string    // 初始化手机号(没有脱敏的)
	CreateTime   time.Time // 创建时间
	ModifyTime   time.Time // 修改时间
	HeadImg      string    // 头像
	BgImg        string    // 背景图上部分
	BgImgDown    string    // 背景图下部分
	BgImgPc      string    // pc背景图
	Status       int       // 1启用2禁用
	CompanyId    int       `description:"公司id"`
	CompanyName  string    `description:"公司名称"`
	InviteName   string    //引荐人
	Remark       string    //备注
}

type CygxYanxuanSpecialAuthorItem struct {
	Id                 int    `orm:"column(id);pk"`
	UserId             int    // 用户ID
	CompanyName        string // 公司名
	CompanyId          int    // 公Id
	SpecialName        string // 专栏名称
	Introduction       string // 介绍
	Label              string // 标签
	NickName           string // 昵称
	RealName           string // 姓名
	Mobile             string // 手机号
	MobileInit         string // 初始化手机号(没有脱敏的)
	CreateTime         string // 创建时间
	ModifyTime         string // 修改时间
	HeadImg            string // 头像
	BgImg              string // 背景图
	Status             int    // 1启用2禁用
	Pv                 int    // Pv
	Uv                 int    // Uv
	ArticleNum         int    // 已发布的文章数量
	ArticlePublishTime string // 最近发布文章的时间
	FansNum            int    // 粉丝数量
	ArticleCollectNum  int    // 文章收藏数量
	SpecialAuthorId    int    //cygx_yanxuan_special_author 表主键ID 作者专栏ID
	InviteName         string //引荐人
	Remark             string //备注
}

type CygxYanxuanSpecialKeyWordReesp struct {
	KeyWord string //引荐人
}
type CygxYanxuanSpecialKeyWordListReesp struct {
	List []*CygxYanxuanSpecialKeyWordReesp //引荐人
}

func AddCygxYanxuanSpecialAuthor(item *CygxYanxuanSpecialAuthor) (lastId int64, err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	lastId, err = o.Insert(item)
	return
}

type AddCygxYanxuanSpecialAuthorReq struct {
	UserId     int    // 用户ID
	RealName   string // 姓名
	Mobile     string // 手机号
	InviteName string //引荐人
	Remark     string //备注
}

type EnableCygxYanxuanSpecialAuthorReq struct {
	UserId int // 用户ID
	Status int // 1启用2禁用
}

// 启用禁用作者
func EnableYanxuanSpecialAuthor(userId, status int) (err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := ``
	sql = `UPDATE cygx_yanxuan_special_author SET status=? WHERE user_id = ? `
	_, err = o.Raw(sql, status, userId).Exec()
	return
}

// 获取数量
func GetYanxuanSpecialAuthorCount(condition string, pars []interface{}) (count int, err error) {
	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_yanxuan_special_author as art WHERE 1= 1  `
	if condition != "" {
		sqlCount += condition
	}
	o := orm.NewOrmUsingDB("hz_cygx")
	err = o.Raw(sqlCount, pars).QueryRow(&count)
	return
}

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

// 列表
func GetYanxuanSpecialAuthorList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxYanxuanSpecialAuthorItem, err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := `SELECT * FROM cygx_yanxuan_special_author as art WHERE 1= 1 `
	if condition != "" {
		sql += condition
	}
	sql += ` LIMIT ?,?  `
	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
	return
}

// 启用禁用作者
func UpdateSpecialAuthorComapony(userId, CompanyId int, CompanyName string) (err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := ``
	sql = `UPDATE cygx_yanxuan_special_author SET company_id=?,company_name = ?  WHERE user_id = ? `
	_, err = o.Raw(sql, CompanyId, CompanyName, userId).Exec()
	return
}

// 通过ID获取详情
func GetCygxYanxuanSpecialAuthorItemById(id int) (item *CygxYanxuanSpecialAuthorItem, err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := `SELECT * FROM cygx_yanxuan_special_author  WHERE id=? `
	err = o.Raw(sql, id).QueryRow(&item)
	return
}

// 根据用户ID获取专栏详情
func GetCygxYanxuanSpecialAuthorByUserId(userId int) (item *CygxYanxuanSpecialAuthorItem, err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := `SELECT * FROM cygx_yanxuan_special_author  WHERE user_id = ? `
	err = o.Raw(sql, userId).QueryRow(&item)
	return
}

type CygxYanxuanSpecialCenterAuthorResp struct {
	Id          int    //研选专栏ID
	UserId      int    // 用户ID
	PublishTime string // 提审过审或驳回时间
	Title       string // 标题
}

// 启用禁用作者
func UpdateSpecialAuthormobile_init(mobile_init string, userId int) (err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := ``
	sql = `UPDATE cygx_yanxuan_special_author SET mobile_init = ?  WHERE user_id = ? `
	_, err = o.Raw(sql, mobile_init, userId).Exec()
	return
}

// 更新作者引荐人相关信息
func UpdateYanxuanSpecialAuthorInviteName(inviteName, remark string, userId int) (err error) {
	o := orm.NewOrmUsingDB("hz_cygx")
	sql := ``
	sql = `UPDATE cygx_yanxuan_special_author SET invite_name=? , remark = ?  WHERE user_id = ? `
	_, err = o.Raw(sql, inviteName, remark, userId).Exec()
	return
}