go-common/app/admin/main/manager/dao/reason.go

144 lines
4.2 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package dao
import (
"context"
"go-common/app/admin/main/manager/model"
)
// AddCateSecExt .
func (d *Dao) AddCateSecExt(c context.Context, e *model.CateSecExt) (err error) {
str := "INSERT INTO manager_reason_catesecext (bid,name,type) VALUES (?,?,?) ON DUPLICATE KEY UPDATE bid=values(bid),name=values(name),type=values(type)"
return d.db.Exec(str, e.BusinessID, e.Name, e.Type).Error
}
// UpdateCateSecExt .
func (d *Dao) UpdateCateSecExt(c context.Context, e *model.CateSecExt) (err error) {
return d.db.Table("manager_reason_catesecext").Where("id = ?", e.ID).Update("name", e.Name).Error
}
// BanCateSecExt .
func (d *Dao) BanCateSecExt(c context.Context, e *model.CateSecExt) (err error) {
return d.db.Table("manager_reason_catesecext").Where("id = ?", e.ID).Update("state", e.State).Error
}
// AddAssociation .
func (d *Dao) AddAssociation(c context.Context, e *model.Association) (err error) {
return d.db.Table("manager_reason_association").Create(&e).Error
}
// UpdateAssociation .
func (d *Dao) UpdateAssociation(c context.Context, e *model.Association) (err error) {
return d.db.Table("manager_reason_association").Where("id = ?", e.ID).Updates(
map[string]interface{}{
"rid": e.RoleID,
"cid": e.CategoryID,
"sids": e.SecondIDs,
}).Error
}
// BanAssociation .
func (d *Dao) BanAssociation(c context.Context, e *model.Association) (err error) {
return d.db.Table("manager_reason_association").Where("id = ?", e.ID).Update("state", e.State).Error
}
// AddReason .
func (d *Dao) AddReason(c context.Context, e *model.Reason) (err error) {
return d.db.Table("manager_reason").Create(e).Error
}
// UpdateReason .
func (d *Dao) UpdateReason(c context.Context, e *model.Reason) (err error) {
return d.db.Table("manager_reason").Where("id = ?", e.ID).
Updates(map[string]interface{}{
"rid": e.RoleID,
"cid": e.CategoryID,
"sid": e.SecondID,
"state": e.State,
"common": e.Common,
"uid": e.UID,
"description": e.Description,
"weight": e.Weight,
"flag": e.Flag,
"lid": e.LinkID,
"type_id": e.TypeID,
"tid": e.TagID,
}).Error
}
// ReasonList .
func (d *Dao) ReasonList(c context.Context, e *model.SearchReasonParams) (res []*model.Reason, err error) {
db := d.db.Table("manager_reason")
if e.BusinessID != -1 {
db = db.Where("bid = ?", e.BusinessID)
}
if e.KeyWord != "" {
db = db.Where("description LIKE ?", "%"+e.KeyWord+"%")
}
if e.RoleID != 0 {
db = db.Where("rid = ?", e.RoleID)
}
if e.CategoryID != 0 {
db = db.Where("cid = ?", e.CategoryID)
}
if e.SecondID != 0 {
db = db.Where("sid = ?", e.SecondID)
}
if e.State != -1 {
db = db.Where("state = ?", e.State)
}
if e.UName != "" {
db = db.Where("uid = ?", e.UID)
}
if e.Order != "" {
db = db.Order(e.Order+" "+e.Sort, true)
}
err = db.Find(&res).Error
return
}
// CateSecByIDs .
func (d *Dao) CateSecByIDs(c context.Context, ids []int64) (res map[int64]string, err error) {
r := []*model.CateSecExt{}
res = make(map[int64]string)
if err = d.db.Table("manager_reason_catesecext").Where("id IN (?)", ids).Find(&r).Error; err != nil {
return
}
for _, cn := range r {
res[cn.ID] = cn.Name
}
return
}
// BatchUpdateReasonState .
func (d *Dao) BatchUpdateReasonState(c context.Context, b *model.BatchUpdateReasonState) (err error) {
return d.db.Table("manager_reason").Where("id IN (?)", b.IDs).Update("state", b.State).Error
}
// CateSecExtList .
func (d *Dao) CateSecExtList(c context.Context, e *model.CateSecExt) (res []*model.CateSecExt, err error) {
// Display all record
db := d.db.Table("manager_reason_catesecext").Where("bid = ? and type = ?", e.BusinessID, e.Type)
if e.State != -1 {
db = db.Where("state = ?", e.State)
}
err = db.Find(&res).Error
return
}
// CateSecList .
func (d *Dao) CateSecList(c context.Context, bid int64) (res []*model.CateSecExt, err error) {
err = d.db.Table("manager_reason_catesecext").Where("bid = ?", bid).Find(&res).Error
return
}
// AssociationList .
func (d *Dao) AssociationList(c context.Context, state int64, bid int64) (res []*model.Association, err error) {
db := d.db.Table("manager_reason_association").Where("bid = ?", bid)
if state != -1 {
db = db.Where("state = ?", state)
}
err = db.Find(&res).Error
return
}