|
@@ -1,6 +1,8 @@
|
|
|
package models
|
|
|
|
|
|
import (
|
|
|
+ "eta/eta_mini_crm/utils"
|
|
|
+ "fmt"
|
|
|
"time"
|
|
|
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
@@ -38,7 +40,7 @@ type PermissionCntStaitc struct {
|
|
|
Percent float64
|
|
|
}
|
|
|
|
|
|
-func GetUserReadRecordByUserId(userId int, condition string, pars []interface{}, startSize, pageSize int) (items []*UserReadRecord, err error) {
|
|
|
+func GetUserReadRecordByUserId(firstClassifyIds, secondClassifyIds, thirdClassifyIds []int, userId int, condition string, pars []interface{}, startSize, pageSize int) (items []*UserReadRecord, err error) {
|
|
|
o := orm.NewOrm()
|
|
|
sql := `SELECT DISTINCT ur.user_read_record_id, ur.report_id, ur.report_title, ur.chart_permission_name, ur.classify_name2,
|
|
|
ur.create_time, ur.stay_time, ur.classify_id2
|
|
@@ -49,12 +51,25 @@ func GetUserReadRecordByUserId(userId int, condition string, pars []interface{},
|
|
|
if condition != "" {
|
|
|
sql += condition
|
|
|
}
|
|
|
+ if len(firstClassifyIds) != 0 || len(secondClassifyIds) != 0 || len(thirdClassifyIds) != 0 {
|
|
|
+ sql += ` AND (1=2 `
|
|
|
+ if len(firstClassifyIds) > 0 {
|
|
|
+ sql += fmt.Sprintf(" OR ur.classify_id1 IN (%s) ", utils.GetOrmReplaceHolder(len(firstClassifyIds)))
|
|
|
+ }
|
|
|
+ if len(secondClassifyIds) > 0 {
|
|
|
+ sql += fmt.Sprintf(" OR ur.classify_id2 IN (%s) ", utils.GetOrmReplaceHolder(len(secondClassifyIds)))
|
|
|
+ }
|
|
|
+ if len(thirdClassifyIds) > 0 {
|
|
|
+ sql += fmt.Sprintf(" OR ur.classify_id3 IN (%s) ", utils.GetOrmReplaceHolder(len(thirdClassifyIds)))
|
|
|
+ }
|
|
|
+ sql += ` ) `
|
|
|
+ }
|
|
|
sql += ` ORDER BY create_time DESC LIMIT ?, ?`
|
|
|
_, err = o.Raw(sql, userId, pars, startSize, pageSize).QueryRows(&items)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func GetUserReadRecordCountByUserId(userId int, condition string, pars []interface{}) (count int, err error) {
|
|
|
+func GetUserReadRecordCountByUserId(firstClassifyIds, secondClassifyIds, thirdClassifyIds []int, userId int, condition string, pars []interface{}) (count int, err error) {
|
|
|
o := orm.NewOrm()
|
|
|
sql := `SELECT COUNT(DISTINCT ur.user_read_record_id) AS count
|
|
|
FROM user_read_record AS ur
|
|
@@ -64,6 +79,19 @@ func GetUserReadRecordCountByUserId(userId int, condition string, pars []interfa
|
|
|
if condition != "" {
|
|
|
sql += condition
|
|
|
}
|
|
|
+ if len(firstClassifyIds) != 0 || len(secondClassifyIds) != 0 || len(thirdClassifyIds) != 0 {
|
|
|
+ sql += ` AND (1=2 `
|
|
|
+ if len(firstClassifyIds) > 0 {
|
|
|
+ sql += fmt.Sprintf(" OR ur.classify_id1 IN (%s) ", utils.GetOrmReplaceHolder(len(firstClassifyIds)))
|
|
|
+ }
|
|
|
+ if len(secondClassifyIds) > 0 {
|
|
|
+ sql += fmt.Sprintf(" OR ur.classify_id2 IN (%s) ", utils.GetOrmReplaceHolder(len(secondClassifyIds)))
|
|
|
+ }
|
|
|
+ if len(thirdClassifyIds) > 0 {
|
|
|
+ sql += fmt.Sprintf(" OR ur.classify_id3 IN (%s) ", utils.GetOrmReplaceHolder(len(thirdClassifyIds)))
|
|
|
+ }
|
|
|
+ sql += ` ) `
|
|
|
+ }
|
|
|
err = o.Raw(sql, userId, pars).QueryRow(&count)
|
|
|
return
|
|
|
}
|