123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341 |
- package chart_collect
- import (
- "eta/eta_forum_hub/utils"
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "github.com/rdlucklib/rdluck_tools/paging"
- "time"
- )
- type ChartCollect struct {
- ChartCollectId int `orm:"column(chart_collect_id);pk"`
- UserId int `orm:"column(user_id)" description:"用户ID"`
- BusinessCode string `orm:"column(business_code)" description:"客户编码"`
- RealName string `orm:"column(real_name)" description:"用户姓名"`
- CollectTime time.Time `orm:"column(collect_time)" description:"收藏时间"`
- ChartInfoId int `orm:"column(chart_info_id)" description:"图表ID"`
- CollectClassifyId int `orm:"column(collect_classify_id)" description:"收藏的分类ID"`
- ChartSource int `orm:"column(chart_source)" description:"图表来源"`
- CreateTime time.Time `orm:"column(create_time)" description:"创建时间"`
- ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
- }
- type ChartCollectAddReq struct {
- ChartInfoId int `description:"图表id"`
- CollectClassifyId int `description:"收藏分类id"`
- }
- type ChartCollectView struct {
- ChartCollectId int `orm:"column(chart_collect_id);pk"`
- ChartInfoId int `description:"图表id"`
- UserId int `description:"用户id"`
- CreateTime time.Time `description:"创建时间"`
- CollectTime time.Time `description:"收藏时间"`
- CollectClassifyId int
- ChartName string `description:"来源名称"`
- ChartNameEn string `description:"英文图表名称"`
- ChartImage string `description:"图表图片"`
- UniqueCode string `description:"图表唯一编码"`
- }
- func AddChartCollect(item *ChartCollect) (lastId int64, err error) {
- o := orm.NewOrm()
- lastId, err = o.Insert(item)
- return
- }
- type ChartCollectDeleteReq struct {
- ChartInfoId int `description:"我的图表id"`
- //CollectClassifyId int `description:"我的图表分类id"`
- }
- func DeleteChartCollect(chartInfoId, classifyId, userId int) (err error) {
- o := orm.NewOrm()
- if classifyId > 0 {
- sql := `DELETE FROM chart_collect WHERE chart_info_id=? AND user_id=? AND classify_id=? `
- _, err = o.Raw(sql, chartInfoId, userId, classifyId).Exec()
- if err != nil {
- return
- }
- } else {
- sql := `DELETE FROM chart_collect WHERE chart_info_id=? AND user_id=? `
- _, err = o.Raw(sql, chartInfoId, userId).Exec()
- if err != nil {
- return
- }
- }
- return
- }
- type ChartCollectListResp struct {
- Paging *paging.PagingItem
- List []*ChartCollectView
- }
- func GetChartCollectListByAdminId(adminId int) (item []*ChartCollectView, err error) {
- o := orm.NewOrm()
- //sql := ` SELECT * FROM chart_collect WHERE 1=1 AND user_id=? `
- sql := ` SELECT a.*,GROUP_CONCAT(c.classify_id SEPARATOR ',') AS classify_id FROM chart_collect AS a
- LEFT JOIN chart_collect_classify AS c ON b.classify_id=c.classify_id
- WHERE 1=1 AND a.user_id=?
- GROUP BY a.chart_info_id `
- _, err = o.Raw(sql, adminId).QueryRows(&item)
- return
- }
- func GetChartCollectListByChartInfoId(chartInfoId int) (item []*ChartCollectView, err error) {
- o := orm.NewOrm()
- //sql := ` SELECT * FROM chart_collect WHERE 1=1 AND user_id=? `
- sql := ` SELECT a.*,GROUP_CONCAT(c.collect_classify_id SEPARATOR ',') AS classify_id FROM chart_collect AS a
- LEFT JOIN chart_collect_classify AS c ON a.collect_classify_id=c.collect_classify_id
- WHERE 1=1 AND a.chart_info_id=?
- GROUP BY a.chart_info_id, a.user_id `
- _, err = o.Raw(sql, chartInfoId).QueryRows(&item)
- return
- }
- type ChartCollectEditReq struct {
- ChartCollectId int `description:"我的图表主键"`
- CurrentClassifyId int `description:"当前分类ID"`
- ClassifyId []int `description:"分类id,数组形式"`
- }
- func GetChartCollectPageByCondition(condition string, pars []interface{}, currentIndex, pageSize int) (item []*ChartCollectView, err error) {
- o := orm.NewOrm()
- //sql := ` SELECT * FROM chart_collect WHERE 1=1 `
- sql := `SELECT a.chart_collect_id, a.user_id, a.business_code, a.real_name, a.chart_info_id, a.collect_classify_id, a.chart_source, a.create_time, a.modify_time, max(a.collect_time) as collect_time,
- b.chart_name_en,b.chart_name, b.unique_code, b.chart_image, b.sys_user_id, b.sys_user_real_name FROM chart_collect AS a
- INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
- WHERE 1=1
- `
- if condition != "" {
- sql += condition
- }
- sql += ` GROUP BY a.chart_info_id ORDER BY a.collect_time desc limit ?,?`
- _, err = o.Raw(sql, pars, currentIndex, pageSize).QueryRows(&item)
- return
- }
- func GetChartCollectDetailByCondition(condition string, pars []interface{}) (item []*ChartCollectView, err error) {
- o := orm.NewOrm()
- //sql := ` SELECT * FROM chart_collect WHERE 1=1 `
- sql := `SELECT a.*,b.chart_name_en,b.chart_name, b.unique_code, b.chart_image FROM chart_collect AS a
- INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
- WHERE 1=1
- `
- if condition != "" {
- sql += condition
- }
- sql += ` GROUP BY a.chart_info_id`
- _, err = o.Raw(sql, pars).QueryRows(&item)
- return
- }
- func GetChartCollectCountByCondition(condition string, pars []interface{}) (total int64, err error) {
- o := orm.NewOrm()
- sql := `SELECT a.chart_info_id FROM chart_collect AS a INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
- WHERE 1=1
- `
- if condition != "" {
- sql += condition
- }
- sql += ` GROUP BY a.chart_info_id`
- totalSql := `select count(1) as total from (` + sql + `) as t`
- err = o.Raw(totalSql, pars).QueryRow(&total)
- return
- }
- // Update 更新分类基础信息
- func (ChartCollectClassify *ChartCollectClassify) Update(cols []string) (err error) {
- o := orm.NewOrm()
- _, err = o.Update(ChartCollectClassify, cols...)
- return
- }
- // GetFirstChartCollectClassifyByAdminId 获取当前账号下,排序第一条的分类数据
- func GetFirstChartCollectClassifyByAdminId(adminId int) (item *ChartCollectClassify, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_collect_classify WHERE user_id=? order by sort asc,classify_id asc limit 1`
- err = o.Raw(sql, adminId).QueryRow(&item)
- return
- }
- // UpdateChartCollectClassifySortByClassifyId 根据分类id更新排序
- func UpdateChartCollectClassifySortByClassifyId(adminId, classifyId, nowSort int, updateSort string) (err error) {
- o := orm.NewOrm()
- sql := ` update chart_collect_classify set sort = ` + updateSort + ` WHERE user_id = ? and sort > ? `
- if classifyId > 0 {
- sql += ` or ( classify_id > ` + fmt.Sprint(classifyId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
- }
- _, err = o.Raw(sql, adminId, nowSort).Exec()
- return
- }
- // ModifyChartClassifyPublicReq 修改我的图库分类是否可见
- type ModifyChartClassifyPublicReq struct {
- ClassifyId int `description:"分类id"`
- IsPublic int `description:"是否所有人可见,0:仅自己可见,1:所有人可见"`
- }
- // CopyChartClassifyReq 复制我的图库分类
- type CopyChartClassifyReq struct {
- ClassifyId int `description:"分类id"`
- }
- func GetRelationChartListCountByCondition(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrm()
- sql := ` SELECT COUNT(1) AS count FROM chart_info AS a
- WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- // GetChartCollectClassifyByClassifyId 主键获取分类
- func GetChartCollectClassifyByClassifyId(classifyId int) (item *ChartCollectClassify, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_collect_classify WHERE classify_id = ? `
- err = o.Raw(sql, classifyId).QueryRow(&item)
- return
- }
- // ChartCollectClassifyItem 我的图表分类信息
- type ChartCollectClassifyItem struct {
- CollectClassifyId int `description:"分类ID"`
- ClassifyName string `description:"分类名称"`
- UserId int `description:"创建人id"`
- /*IsPublic int `description:"是否公共分类"`
- IsCompanyPublic int `description:"是否为用户公共分类"`*/
- ChartNum int `description:"分类下的图表数量"`
- }
- // ClassifyIdAndNum 我的图表-分类ID及图表数
- type ClassifyIdAndNum struct {
- ClassifyId int `description:"分类ID"`
- ChartNum int `description:"分类下的图表数量"`
- }
- // GetClassifyIdAndNum 我的图表-获取分类ID及图表数
- func GetClassifyIdAndNum(cond string, pars []interface{}) (items []*ClassifyIdAndNum, err error) {
- o := orm.NewOrm()
- sql := fmt.Sprintf(`SELECT
- a.classify_id,
- COUNT(1) AS chart_num
- FROM
- chart_collect_classify AS a
- INNER JOIN chart_collect_classify_mapping AS b ON a.classify_id = b.classify_id
- INNER JOIN chart_collect AS c ON b.chart_collect_id = c.chart_collect_id
- INNER JOIN chart_info AS d ON c.chart_info_id = d.chart_info_id
- WHERE
- 1 = 1 %s
- GROUP BY
- a.classify_id`, cond)
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- func GetChartClassifyByIds(chartClassifyIds []string) (chart_classify_ids string, err error) {
- o := orm.NewOrm()
- sql := `SELECT GROUP_CONCAT(DISTINCT t.chart_classify_id) AS chart_classify_ids
- FROM (
- SELECT chart_classify_id
- FROM chart_classify
- WHERE chart_classify_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
- OR parent_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
- OR parent_id IN (
- SELECT chart_classify_id
- FROM chart_classify
- WHERE parent_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
- )
- ) AS t;`
- err = o.Raw(sql, chartClassifyIds, chartClassifyIds, chartClassifyIds).QueryRow(&chart_classify_ids)
- return
- }
- func GetChartClassifyByIdsNoSubClassify(chartClassifyIds []string) (chart_classify_ids string, err error) {
- o := orm.NewOrm()
- sql := `SELECT GROUP_CONCAT(DISTINCT t.chart_classify_id) AS chart_classify_ids
- FROM (
- SELECT chart_classify_id
- FROM chart_classify
- WHERE chart_classify_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
- ) AS t;`
- err = o.Raw(sql, chartClassifyIds).QueryRow(&chart_classify_ids)
- return
- }
- func GetChartCollectListByCondition(condition string, pars []interface{}) (items []*ChartCollect, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_collect WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- func GetChartCollectByCondition(condition string, pars []interface{}) (item *ChartCollect, err error) {
- o := orm.NewOrm()
- sql := ` SELECT * FROM chart_collect WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += " order by chart_collect_id desc"
- err = o.Raw(sql, pars).QueryRow(&item)
- return
- }
- type ChartCollectAddResp struct {
- CollectMsg string `description:"提示信息"`
- }
- // UpdateCollectClassifyIdByChartInfoId 根据图表分类ID
- func UpdateCollectClassifyIdByChartInfoId(chartInfoIds []int, classifyId int, userId int) (err error) {
- o := orm.NewOrm()
- sql := ` update chart_collect set collect_classify_id = ? WHERE chart_info_id in (` + utils.GetOrmInReplace(len(chartInfoIds)) + `) and user_id=? `
- _, err = o.Raw(sql, classifyId, chartInfoIds, userId).Exec()
- return
- }
- type ChartCollectEsItem struct {
- UserChartInfoId string
- ChartInfoId int `description:"图表id"`
- UserId int `description:"用户id"`
- CollectTime time.Time `description:"收藏时间"`
- ChartName string `description:"来源名称"`
- ChartNameEn string `description:"英文图表名称"`
- ChartImage string `description:"图表图片"`
- UniqueCode string `description:"图表唯一编码"`
- ChartClassifyId int `description:"图表分类id"`
- SysUserId int
- SysUserRealName string
- CreateTime time.Time
- ModifyTime time.Time
- ChartSource int
- CollectClassifyIds string
- ChartCollectClassifyNames string
- }
- // GetChartCollectByChartInfoIdAndUserIdByCondition 获图表收藏数据
- func GetChartCollectByChartInfoIdAndUserIdByCondition(condition string, pars []interface{}) (item []*ChartCollectEsItem, err error) {
- o := orm.NewOrm()
- sql := ` SELECT a.user_id, CONCAT(a.user_id,"_", a.chart_info_id) as user_chart_info_id, max(a.collect_time) as collect_time,
- b.chart_info_id,b.chart_name,b.chart_name_en,b.chart_image,b.unique_code,b.chart_classify_id,b.sys_user_id,b.sys_user_real_name,b.create_time,b.modify_time,b.source as chart_source,
- GROUP_CONCAT(DISTINCT d.classify_name) AS chart_collect_classify_names,GROUP_CONCAT(DISTINCT d.collect_classify_id) AS collect_classify_ids
- FROM chart_collect AS a
- INNER JOIN chart_info AS b ON a.chart_info_id=b.chart_info_id
- INNER JOIN chart_collect_classify AS d ON a.collect_classify_id=d.collect_classify_id
- WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += " GROUP BY a.chart_info_id,a.user_id ORDER BY a.collect_time Desc, a.chart_collect_id DESC "
- _, err = o.Raw(sql, pars).QueryRows(&item)
- return
- }
|