package company import ( "fmt" "github.com/beego/beego/v2/client/orm" "time" ) type CompanyApprovalMessage struct { Id int `orm:"column(id);pk"` CreateUserId int `description:"申请者id"` ReceiveUserId int `description:"审批者id"` MessageStatus int `description:"消息状态:0未读,1:已读"` SourceType int `description:"消息来源类型,1:客户,2:合同,3:用印"` Remark string `description:"备注信息"` Content string `description:"消息内容"` CompanyId int `description:"客户id"` CompanyName string `description:"客户名称"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"修改时间"` CompanyApprovalId int `description:"审批单id"` ApprovalStatus int `description:"审批状态:1:待审批,2:已审批,3:已驳回"` OperationStatus int `description:"消息状态:1:待审批,2:已审批"` MessageType int `description:"1:申请消息,2:审批结果,3:文字消息"` MessageInfo string `description:"消息主要内容,json数据"` } // 添加审批消息 func AddCompanyApprovalMessage(item *CompanyApprovalMessage) (err error) { o := orm.NewOrm() _, err = o.Insert(item) return } // GetCompanyApprovalMessageById 主键获取消息 func GetCompanyApprovalMessageById(id int) (item *CompanyApprovalMessage, err error) { o := orm.NewOrm() sql := `SELECT * FROM company_approval_message WHERE id = ? LIMIT 1` err = o.Raw(sql, id).QueryRow(&item) return } type CompanyApprovalMessageList struct { Id int `orm:"column(id);pk"` MessageStatus int `description:"消息状态:0未读,1:已读,2:作废"` SourceType int `description:"消息来源类型,1:客户,2:合同 3:用印"` Remark string `description:"备注信息"` Content string `description:"消息内容"` CompanyName string `description:"客户名称"` CreateTime string `description:"创建时间"` RealName string `description:"销售名称"` CompanyApprovalId int `description:"审批单id"` ApprovalStatus int `description:"审批状态:1:待审批,2:已审批,3:已驳回"` } type CompanyApprovalMessageListResp struct { List []*CompanyApprovalMessageList Total int `description:"总数据条数"` } // 待办消息列表 type CompanyApprovalMessageListV2Resp struct { Company CompanyApprovalMessageListResp `description:"客户"` Contract CompanyApprovalMessageListResp `description:"合同"` Seal CompanyApprovalMessageListResp `description:"用印"` EdbReplace CompanyApprovalMessageListResp `description:"指标替换"` ETATrial ETATrialApprovalMessageListResp `description:"ETA试用"` BusinessTrip CompanyApprovalMessageListResp `description:"出差"` } type ETATrialApprovalMessageListResp struct { List []*ETATrialApprovalMessageList Total int `description:"总数据条数"` } type ETATrialApprovalMessageList struct { Id int `orm:"column(id);pk"` MessageStatus int `description:"消息状态:0未读,1:已读,2:作废"` SourceType int `description:"消息来源类型,1:客户,2:合同 3:用印 4:指标替换 5:ETA试用"` Remark string `description:"备注信息"` Content string `description:"消息内容"` CompanyName string `description:"客户名称"` CreateTime string `description:"创建时间"` RealName string `description:"销售名称"` Redirect int `description:"跳转路径 1用户列表 2审批列表"` } func GetCompanyApprovalMessageList(sysUserId int, startTime string) (items []*CompanyApprovalMessageList, err error) { sql := `SELECT a.*,b.real_name FROM company_approval_message AS a INNER JOIN admin AS b ON a.create_user_id=b.admin_id WHERE receive_user_id=? AND a.operation_status=1 AND message_status !=2 ` if startTime != "" { sql += ` AND create_time>='` + startTime + `'` } sql += ` ORDER BY create_time DESC ` o := orm.NewOrm() _, err = o.Raw(sql, sysUserId).QueryRows(&items) return } func GetCompanyApprovalMessageCount(sysUserId int, startTime string) (count int, err error) { sql := `SELECT COUNT(1) AS count FROM company_approval_message AS a INNER JOIN admin AS b ON a.create_user_id=b.admin_id WHERE receive_user_id=? AND a.operation_status=1 AND message_status !=2 ` if startTime != "" { sql += ` AND create_time>='` + startTime + `'` } o := orm.NewOrm() err = o.Raw(sql, sysUserId).QueryRow(&count) return } // 修改消息信息 func ModifyCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) { o := orm.NewOrm() sql := `UPDATE company_approval_message SET operation_status=2,modify_time=NOW() WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 ` _, err = o.Raw(sql, companyApprovalId, sourceType).Exec() return } // 申请服务更新请求参数 type CompanyApprovalMessageReadReq struct { Id int `description:"消息id"` } func ModifyCompanyApprovalMessageStatus(companyApprovalMessageId int) (err error) { o := orm.NewOrm() sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE id=?` _, err = o.Raw(sql, companyApprovalMessageId).Exec() return } // 消息作废 func CancelCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) { o := orm.NewOrm() sql := `UPDATE company_approval_message SET message_status=2,modify_time=NOW() WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 ` //sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE id=?` _, err = o.Raw(sql, companyApprovalId, sourceType).Exec() return } func GetAdminCompanyApprovalMessageList(startTime string) (items []*CompanyApprovalMessageList, err error) { sql := `SELECT a.*,b.real_name FROM company_approval_message AS a INNER JOIN admin AS b ON a.create_user_id=b.admin_id WHERE receive_user_id = -1 AND a.operation_status=1 AND message_status !=2 ` if startTime != "" { sql += ` AND create_time>='` + startTime + `'` } sql += ` ORDER BY create_time DESC ` o := orm.NewOrm() _, err = o.Raw(sql).QueryRows(&items) return } // 消息删除 func DeleteCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) { o := orm.NewOrm() sql := `DELETE FROM company_approval_message WHERE company_approval_id=? AND source_type=? ` _, err = o.Raw(sql, companyApprovalId, sourceType).Exec() return } // CancelCompanyApprovalMessage 消息作废 func IsReadCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) { o := orm.NewOrm() sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 ` _, err = o.Raw(sql, companyApprovalId, sourceType).Exec() return } // ModifyCompanyApprovalMessageStatusByCond 条件修改已读状态 func ModifyCompanyApprovalMessageStatusByCond(cond string, pars []interface{}) (err error) { o := orm.NewOrm() sql := `UPDATE company_approval_message SET message_status = 1, modify_time = NOW() WHERE 1 = 1 %s` sql = fmt.Sprintf(sql, cond) _, err = o.Raw(sql, pars).Exec() return }