|
...
|
...
|
@@ -139,51 +139,17 @@ func buildSqlForAuditList(usercompanyid int64, companyid int64, userid int64) st |
|
|
|
return fmt.Sprintf(allsql, strings.Join(sqlslice, " UNION "))
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64) (protocol.ResponseAuditList, error) {
|
|
|
|
type SqlData struct {
|
|
|
|
Id int64 `orm:"column(id)"`
|
|
|
|
UserId int64 `orm:"column(user_id)"`
|
|
|
|
NickName string `orm:"column(nick_name)"`
|
|
|
|
DepartmentId int64 `orm:"column(department_id)"`
|
|
|
|
AuditTemplateId int64 `orm:"column(audit_template_id)"`
|
|
|
|
ChanceTypeId int `orm:"column(chance_type_id)"`
|
|
|
|
PublishStatus int `orm:"column(publish_status)"`
|
|
|
|
CreateAt string `orm:"column(create_at)"`
|
|
|
|
ReviewStatus int8 `orm:"column(review_status)"`
|
|
|
|
Status int8 `orm:"column(status)"`
|
|
|
|
DiscoveryScore string `orm:"column(discovery_score)"`
|
|
|
|
CommentTotal string `orm:"column(comment_total)"`
|
|
|
|
Code string `orm:"column(code)"`
|
|
|
|
StoreType int8 `orm:"column(type)"`
|
|
|
|
ReserveTypeId int `orm:"column(reserve_type_id)"`
|
|
|
|
}
|
|
|
|
func GetAuditListSql(param protocol.RequestAuditList, companyid int64, userid int64, ucompanyid int64) (coutsql string,
|
|
|
|
datasql string, cond []interface{}) {
|
|
|
|
var (
|
|
|
|
datasql = strings.Builder{}
|
|
|
|
countsql = strings.Builder{}
|
|
|
|
data []SqlData
|
|
|
|
cnt int
|
|
|
|
err error
|
|
|
|
cond []interface{}
|
|
|
|
datasqlBuild = strings.Builder{}
|
|
|
|
countsqlBuild = strings.Builder{}
|
|
|
|
sqlFromPermission string
|
|
|
|
)
|
|
|
|
|
|
|
|
returnData := protocol.ResponseAuditList{
|
|
|
|
ResponsePageInfo: protocol.ResponsePageInfo{
|
|
|
|
TotalPage: 0,
|
|
|
|
CurrentPage: param.PageIndex,
|
|
|
|
},
|
|
|
|
List: make([]protocol.RspAuditList, 0),
|
|
|
|
}
|
|
|
|
usercompany, err := models.GetUserCompanyBy(userid, companyid)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("GetUserCompanyBy(userid, companyid) err:%s", err)
|
|
|
|
return returnData, protocol.NewErrWithMessage("1")
|
|
|
|
}
|
|
|
|
|
|
|
|
s1 := `SELECT a.id,a.department_id,a.audit_template_id,a.chance_type_id
|
|
|
|
,a.publish_status,a.create_at,a.review_status,a.status
|
|
|
|
,a.discovery_score,a.comment_total ,a.code,d.nick_name,d.id as user_id
|
|
|
|
,a.type,a.reserve_type_id
|
|
|
|
,a.type,a.reserve_type_id,a.source_content
|
|
|
|
FROM chance AS a
|
|
|
|
JOIN user_company AS c ON c.id = a.user_id
|
|
|
|
JOIN user AS d ON c.user_id = d.id
|
|
...
|
...
|
@@ -197,7 +163,7 @@ func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64 |
|
|
|
if companyinfo, err := models.GetCompanyById(companyid); err == nil {
|
|
|
|
//非主管进行权限过滤
|
|
|
|
if companyinfo.AdminId != userid {
|
|
|
|
sqlFromPermission = buildSqlForAuditList(usercompany.Id, usercompany.CompanyId, usercompany.UserId)
|
|
|
|
sqlFromPermission = buildSqlForAuditList(ucompanyid, companyid, userid)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if len(sqlFromPermission) > 0 {
|
|
...
|
...
|
@@ -208,90 +174,134 @@ func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64 |
|
|
|
s1 = fmt.Sprintf(s1, "")
|
|
|
|
s2 = fmt.Sprintf(s2, "")
|
|
|
|
}
|
|
|
|
datasql.WriteString(s1)
|
|
|
|
countsql.WriteString(s2)
|
|
|
|
datasqlBuild.WriteString(s1)
|
|
|
|
countsqlBuild.WriteString(s2)
|
|
|
|
cond = append(cond, companyid)
|
|
|
|
if param.ChanceTypeId > 0 {
|
|
|
|
//一级分类过滤
|
|
|
|
cond = append(cond, param.ChanceTypeId)
|
|
|
|
s := ` And a.chance_type_id=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.TempalteId > 0 {
|
|
|
|
cond = append(cond, param.TempalteId)
|
|
|
|
s := ` AND a.audit_template_id=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.PublishStatus >= 0 {
|
|
|
|
cond = append(cond, param.PublishStatus)
|
|
|
|
s := ` And a.publish_status=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.Status >= 0 {
|
|
|
|
cond = append(cond, param.Status)
|
|
|
|
s := ` AND a.status=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.ReviewStatus >= 0 {
|
|
|
|
cond = append(cond, param.ReviewStatus)
|
|
|
|
s := ` AND a.review_status=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.CreateTimeBegin > 0 {
|
|
|
|
cond = append(cond, param.CreateTimeBegin)
|
|
|
|
s := ` AND UNIX_TIMESTAMP(a.create_at)>=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.CreateTimeEnd > 0 {
|
|
|
|
cond = append(cond, param.CreateTimeEnd)
|
|
|
|
s := ` AND UNIX_TIMESTAMP(a.create_at)<=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if len(param.Code) > 0 {
|
|
|
|
cond = append(cond, "%"+param.Code+"%")
|
|
|
|
s := ` And a.code like ? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if len(param.UserName) > 0 {
|
|
|
|
cond = append(cond, "%"+param.UserName+"%")
|
|
|
|
s := ` And d.nick_name like ? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.DepartmentID > 0 {
|
|
|
|
//提交的部门
|
|
|
|
cond = append(cond, param.DepartmentID)
|
|
|
|
s := ` And a.department_id=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if param.ReserveType > 0 {
|
|
|
|
cond = append(cond, param.ReserveType)
|
|
|
|
s := ` And a.reserve_type_id=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
if len(param.StoreType) > 0 {
|
|
|
|
storeType, _ := strconv.Atoi(param.StoreType)
|
|
|
|
if storeType >= 0 {
|
|
|
|
cond = append(cond, storeType)
|
|
|
|
s := ` And a.type=? `
|
|
|
|
datasql.WriteString(s)
|
|
|
|
countsql.WriteString(s)
|
|
|
|
datasqlBuild.WriteString(s)
|
|
|
|
countsqlBuild.WriteString(s)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dataStart := (param.PageIndex - 1) * param.PageSize
|
|
|
|
datasql.WriteString(fmt.Sprintf(` ORDER BY a.create_at DESC limit %d,%d `, dataStart, param.PageSize))
|
|
|
|
err = utils.ExecuteQueryOne(&cnt, countsql.String(), cond...)
|
|
|
|
datasqlBuild.WriteString(fmt.Sprintf(` ORDER BY a.create_at DESC limit %d,%d `, dataStart, param.PageSize))
|
|
|
|
return countsqlBuild.String(), datasqlBuild.String(), cond
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64) (protocol.ResponseAuditList, error) {
|
|
|
|
type SqlData struct {
|
|
|
|
Id int64 `orm:"column(id)"`
|
|
|
|
UserId int64 `orm:"column(user_id)"`
|
|
|
|
NickName string `orm:"column(nick_name)"`
|
|
|
|
DepartmentId int64 `orm:"column(department_id)"`
|
|
|
|
AuditTemplateId int64 `orm:"column(audit_template_id)"`
|
|
|
|
ChanceTypeId int `orm:"column(chance_type_id)"`
|
|
|
|
PublishStatus int `orm:"column(publish_status)"`
|
|
|
|
CreateAt string `orm:"column(create_at)"`
|
|
|
|
ReviewStatus int8 `orm:"column(review_status)"`
|
|
|
|
Status int8 `orm:"column(status)"`
|
|
|
|
DiscoveryScore string `orm:"column(discovery_score)"`
|
|
|
|
CommentTotal string `orm:"column(comment_total)"`
|
|
|
|
Code string `orm:"column(code)"`
|
|
|
|
StoreType int8 `orm:"column(type)"`
|
|
|
|
ReserveTypeId int `orm:"column(reserve_type_id)"`
|
|
|
|
}
|
|
|
|
var (
|
|
|
|
datasql string
|
|
|
|
countsql string
|
|
|
|
data []SqlData
|
|
|
|
cnt int
|
|
|
|
err error
|
|
|
|
cond []interface{}
|
|
|
|
)
|
|
|
|
|
|
|
|
returnData := protocol.ResponseAuditList{
|
|
|
|
ResponsePageInfo: protocol.ResponsePageInfo{
|
|
|
|
TotalPage: 0,
|
|
|
|
CurrentPage: param.PageIndex,
|
|
|
|
},
|
|
|
|
List: make([]protocol.RspAuditList, 0),
|
|
|
|
}
|
|
|
|
usercompany, err := models.GetUserCompanyBy(userid, companyid)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("GetUserCompanyBy(userid, companyid) err:%s", err)
|
|
|
|
return returnData, protocol.NewErrWithMessage("1")
|
|
|
|
}
|
|
|
|
|
|
|
|
countsql, datasql, cond = GetAuditListSql(param, companyid, userid, usercompany.Id)
|
|
|
|
err = utils.ExecuteQueryOne(&cnt, countsql, cond...)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("EXCUTE SQL ERR:%s", err)
|
|
|
|
return returnData, nil
|
|
...
|
...
|
@@ -299,7 +309,7 @@ func GetAuditList(param protocol.RequestAuditList, companyid int64, userid int64 |
|
|
|
if cnt <= 0 {
|
|
|
|
return returnData, nil
|
|
|
|
}
|
|
|
|
err = utils.ExecuteQueryAll(&data, datasql.String(), cond...)
|
|
|
|
err = utils.ExecuteQueryAll(&data, datasql, cond...)
|
|
|
|
if err != nil {
|
|
|
|
log.Error("EXCUTE SQL ERR:%s", err)
|
|
|
|
return returnData, nil
|
...
|
...
|
|