diff --git a/cmd_super_implement.bat b/cmd_super_implement.bat index 83457cf..06db61c 100644 --- a/cmd_super_implement.bat +++ b/cmd_super_implement.bat @@ -13,7 +13,7 @@ REM 将文件名转换成大驼峰格式并设置成最终实现类名 for /f "delims=" %%i in ('powershell -File "%BasePath%etc\ps\ConvertToUpperCase.ps1" -inputString "%FileName%"') do set "ImplementName=%%i" REM 使用 PowerShell 替换接口名称,并指定 UTF-8 编码 -powershell -Command "(Get-Content '%BasePath%etc\template\template_implement.tpl') -replace 'DemoImplement', '%ImplementName%' | Out-File -FilePath '%BasePath%temp_implement.go' -Encoding UTF8" +powershell -Command "(Get-Content '%BasePath%etc\template\template_super_implement.tpl') -replace 'DemoImplement', '%ImplementName%' | Out-File -FilePath '%BasePath%temp_implement.go' -Encoding UTF8" REM 如果需要,将临时文件重命名为最终文件(取决于move Y?N) move /Y "%BasePath%temp_implement.go" "%FinalFile%" diff --git a/etc/template/template_implement.tpl b/etc/template/template_implement.tpl index ecc280f..c3dcaf2 100644 --- a/etc/template/template_implement.tpl +++ b/etc/template/template_implement.tpl @@ -1,7 +1,7 @@ package implement import ( - "applet/app/db/dao" + "code.fnuoos.com/zhimeng/model.git/src/dao" "xorm.io/xorm" ) diff --git a/etc/template/template_super_implement.tpl b/etc/template/template_super_implement.tpl new file mode 100644 index 0000000..85d5bb6 --- /dev/null +++ b/etc/template/template_super_implement.tpl @@ -0,0 +1,14 @@ +package implement + +import ( + "code.fnuoos.com/zhimeng/model.git/src/super/dao" + "xorm.io/xorm" +) + +func NewDemoImplementDb(engine *xorm.Engine) dao.DemoImplementDao { + return &DemoImplementDb{Db: engine} +} + +type DemoImplementDb struct { + Db *xorm.Engine +} \ No newline at end of file diff --git a/src/dao/agent_dao.go b/src/dao/agent_dao.go index ae3b6aa..27866b6 100644 --- a/src/dao/agent_dao.go +++ b/src/dao/agent_dao.go @@ -1,4 +1,4 @@ -package dao +package dao import ( "code.fnuoos.com/zhimeng/model.git/src/model" @@ -14,6 +14,8 @@ type AgentDao interface { FindAdmin(username string, state, page, limit int) (list []model.Agent, total int64, err error) GetAgent(id int) (m *model.Agent, err error) FindAgentRolePermissionGroup(id int) (list []*AgentWithRolePermissionGroup, total int64, err error) + GetSuperAdmin(agentId int) (list *model.Agent) + GetSuperAgentByUsername(username string) (agent *model.Agent, err error) } type AgentWithRolePermissionGroup struct { diff --git a/src/dao/medium_dao.go b/src/dao/medium_dao.go index e6bd389..d497dc6 100644 --- a/src/dao/medium_dao.go +++ b/src/dao/medium_dao.go @@ -15,6 +15,7 @@ type MediumDao interface { GetMedium(id int) (m *model.Medium, err error) FindMediumRolePermissionGroup(id int) (list []*MediumWithRolePermissionGroup, total int64, err error) FindSuperAdmin(username, memo string, page, limit int) (list []model.Medium, total int64, err error) + GetSuperAdmin(mediumId int) (list *model.Medium) } type MediumWithRolePermissionGroup struct { diff --git a/src/implement/agent_implement.go b/src/implement/agent_implement.go index 7fbb2ad..8d9ec6a 100644 --- a/src/implement/agent_implement.go +++ b/src/implement/agent_implement.go @@ -1,4 +1,4 @@ -package implement +package implement import ( "code.fnuoos.com/zhimeng/model.git/src/dao" @@ -98,3 +98,23 @@ func (a AgentDb) FindAgentRolePermissionGroup(id int) (list []*dao.AgentWithRole FindAndCount(&list) return } +func (a AgentDb) GetSuperAdmin(agentId int) (list *model.Agent) { + list = new(model.Agent) + sess := a.Db.Where("is_super_administrator=1 and agent_id=?", agentId) + get, err := sess.Get(list) + if err != nil || get == false { + return nil + } + return list +} +func (a AgentDb) GetSuperAgentByUsername(username string) (agent *model.Agent, err error) { + agent = new(model.Agent) + has, err := a.Db.Where("is_super_administrator=1 and username =?", username).Get(agent) + if err != nil { + return nil, zhios_order_relate_logx.Error(err) + } + if has == false { + return nil, nil + } + return agent, nil +} diff --git a/src/implement/medium_implement.go b/src/implement/medium_implement.go index cefff0c..1d31a5c 100644 --- a/src/implement/medium_implement.go +++ b/src/implement/medium_implement.go @@ -112,3 +112,12 @@ func (m MediumDb) FindSuperAdmin(username, memo string, page, limit int) (list [ } return } +func (m MediumDb) GetSuperAdmin(mediumId int) (list *model.Medium) { + list = new(model.Medium) + sess := m.Db.Where("is_super_administrator=1 and medium_id=?", mediumId) + get, err := sess.Get(list) + if err != nil || get == false { + return nil + } + return list +} diff --git a/src/super/dao/agent_bank_info_dao.go b/src/super/dao/agent_bank_info_dao.go index fe01d16..f10118b 100644 --- a/src/super/dao/agent_bank_info_dao.go +++ b/src/super/dao/agent_bank_info_dao.go @@ -4,7 +4,7 @@ import "code.fnuoos.com/zhimeng/model.git/src/super/model" type AgentBankInfoDao interface { GetAgentBankInfoList(agentId int) (medium *model.AgentBankInfo, err error) - FindAgentBankInfoList(name, state string, page, limit int) (list []AgentBankInfoGroup, total int64, err error) + FindAgentBankInfoList(uuid, name, state string, page, limit int) (list []AgentBankInfoGroup, total int64, err error) } type AgentBankInfoGroup struct { model.AgentList `xorm:"extends"` diff --git a/src/super/dao/agent_contact_info_dao.go b/src/super/dao/agent_contact_info_dao.go index 171a380..d665f40 100644 --- a/src/super/dao/agent_contact_info_dao.go +++ b/src/super/dao/agent_contact_info_dao.go @@ -4,7 +4,7 @@ import "code.fnuoos.com/zhimeng/model.git/src/super/model" type AgentContactInfoDao interface { GetAgentContactInfoList(agentId int) (medium *model.AgentContactInfo, err error) - FindAgentContactInfoList(name, state string, page, limit int) (list []AgentContactInfoGroup, total int64, err error) + FindAgentContactInfoList(uuid, name, state string, page, limit int) (list []AgentContactInfoGroup, total int64, err error) } type AgentContactInfoGroup struct { model.AgentList `xorm:"extends"` diff --git a/src/super/dao/agent_list_dao.go b/src/super/dao/agent_list_dao.go index adccf75..3c83a91 100644 --- a/src/super/dao/agent_list_dao.go +++ b/src/super/dao/agent_list_dao.go @@ -6,5 +6,5 @@ type AgentListDao interface { GetAgentList(agentId int) (medium *model.AgentList, err error) AgentListInsert(m *model.AgentList) (int64, error) UpdateAgentList(m *model.AgentList, columns ...string) (int64, error) - FindAgentList(name, state string, page, limit int) (list []model.AgentList, total int64, err error) + FindAgentList(uuid, name, state string, minState, page, limit int) (list []model.AgentList, total int64, err error) } diff --git a/src/super/dao/agent_with_medium_dao.go b/src/super/dao/agent_with_medium_dao.go new file mode 100644 index 0000000..4dbde6c --- /dev/null +++ b/src/super/dao/agent_with_medium_dao.go @@ -0,0 +1,17 @@ +package dao + +import "code.fnuoos.com/zhimeng/model.git/src/super/model" + +type AgentWithMediumDao interface { + FindAgentWithMediumList(name, state string, agentId, mediumId, page, limit int) (list []AgentWithMediumGroup, total int64, err error) + GetAgentWithMediumByMediumIdAndAgentId(mediumId, agentId int) (medium *model.AgentWithMedium) +} +type AgentWithMediumGroup struct { + model.AgentWithMedium `xorm:"extends"` + model.MediumList `xorm:"extends"` + model.AgentList `xorm:"extends"` +} + +func (AgentWithMediumGroup) TableName() string { + return "agent_with_medium" +} diff --git a/src/super/dao/medium_list_dao.go b/src/super/dao/medium_list_dao.go index 04b77e1..376a32c 100644 --- a/src/super/dao/medium_list_dao.go +++ b/src/super/dao/medium_list_dao.go @@ -6,5 +6,5 @@ type MediumListDao interface { GetMediumList(mediumId int) (medium *model.MediumList, err error) MediumListInsert(m *model.MediumList) (int64, error) UpdateMediumList(m *model.MediumList, columns ...string) (int64, error) - FindMediumList(uuid, name, state string, page, limit int) (list []model.MediumList, total int64, err error) + FindMediumList(uuid, name, state string, minState, page, limit int) (list []model.MediumList, total int64, err error) } diff --git a/src/super/implement/agent_bank_info_db.go b/src/super/implement/agent_bank_info_db.go index 3b49a94..3c7fd98 100644 --- a/src/super/implement/agent_bank_info_db.go +++ b/src/super/implement/agent_bank_info_db.go @@ -26,7 +26,7 @@ func (a AgentBankInfoDb) GetAgentBankInfoList(agentId int) (medium *model.AgentB } return medium, nil } -func (a AgentBankInfoDb) FindAgentBankInfoList(name, state string, page, limit int) (list []dao.AgentBankInfoGroup, total int64, err error) { +func (a AgentBankInfoDb) FindAgentBankInfoList(uuid, name, state string, page, limit int) (list []dao.AgentBankInfoGroup, total int64, err error) { sess := a.Db.Where("agent_bank_info.state>0").Desc("agent_bank_info.id").Limit(limit, (page-1)*limit) if name != "" { sess.And("agent_list.company_name like ?", "%"+name+"%") @@ -34,6 +34,9 @@ func (a AgentBankInfoDb) FindAgentBankInfoList(name, state string, page, limit i if state != "" { sess.And("agent_bank_info.state = ?", state) } + if uuid != "" { + sess.And("agent_bank_info.uuid = ?", uuid) + } sess.Join("LEFT", "agent_list", "agent_list.agent_id = agent_bank_info.agent_id") total, err = sess.FindAndCount(&list) if err != nil { diff --git a/src/super/implement/agent_contact_info_db.go b/src/super/implement/agent_contact_info_db.go index 0ec85b5..caba0b3 100644 --- a/src/super/implement/agent_contact_info_db.go +++ b/src/super/implement/agent_contact_info_db.go @@ -26,7 +26,7 @@ func (a AgentContactInfoDb) GetAgentContactInfoList(agentId int) (medium *model. } return medium, nil } -func (a AgentContactInfoDb) FindAgentContactInfoList(name, state string, page, limit int) (list []dao.AgentContactInfoGroup, total int64, err error) { +func (a AgentContactInfoDb) FindAgentContactInfoList(uuid, name, state string, page, limit int) (list []dao.AgentContactInfoGroup, total int64, err error) { sess := a.Db.Where("agent_contact_info.state>0").Desc("agent_contact_info.id").Limit(limit, (page-1)*limit) if name != "" { sess.And("agent_list.company_name like ?", "%"+name+"%") @@ -34,6 +34,9 @@ func (a AgentContactInfoDb) FindAgentContactInfoList(name, state string, page, l if state != "" { sess.And("agent_contact_info.state = ?", state) } + if uuid != "" { + sess.And("agent_contact_info.uuid = ?", uuid) + } sess.Join("LEFT", "agent_list", "agent_list.agent_id = agent_contact_info.agent_id") total, err = sess.FindAndCount(&list) if err != nil { diff --git a/src/super/implement/agent_list_implement.go b/src/super/implement/agent_list_implement.go index 3cacb55..7cdbf43 100644 --- a/src/super/implement/agent_list_implement.go +++ b/src/super/implement/agent_list_implement.go @@ -42,14 +42,20 @@ func (a AgentListDb) UpdateAgentList(m *model.AgentList, columns ...string) (int } return affected, nil } -func (a AgentListDb) FindAgentList(name, state string, page, limit int) (list []model.AgentList, total int64, err error) { - sess := a.Db.Where("state>0").Desc("id").Limit(limit, (page-1)*limit) +func (a AgentListDb) FindAgentList(uuid, name, state string, minState, page, limit int) (list []model.AgentList, total int64, err error) { + sess := a.Db.Desc("id").Limit(limit, (page-1)*limit) if name != "" { sess.And("company_name like ?", "%"+name+"%") } if state != "" { sess.And("state = ?", state) } + if uuid != "" { + sess.And("uuid = ?", uuid) + } + if minState > 0 { + sess.And("state >= ?", minState) + } total, err = sess.FindAndCount(&list) if err != nil { return nil, 0, err diff --git a/src/super/implement/agent_with_medium_db.go b/src/super/implement/agent_with_medium_db.go new file mode 100644 index 0000000..f753708 --- /dev/null +++ b/src/super/implement/agent_with_medium_db.go @@ -0,0 +1,46 @@ +package implement + +import ( + "code.fnuoos.com/zhimeng/model.git/src/super/dao" + "code.fnuoos.com/zhimeng/model.git/src/super/model" + "xorm.io/xorm" +) + +func NewAgentWithMediumDb(engine *xorm.Engine) dao.AgentWithMediumDao { + return &AgentWithMediumDb{Db: engine} +} + +type AgentWithMediumDb struct { + Db *xorm.Engine +} + +func (a AgentWithMediumDb) GetAgentWithMediumByMediumIdAndAgentId(mediumId, agentId int) (medium *model.AgentWithMedium) { + medium = new(model.AgentWithMedium) + get, err := a.Db.Where("medium_id=? and agent_id=?", mediumId, agentId).Get(medium) + if get == false || err != nil { + return nil + } + return medium +} +func (a AgentWithMediumDb) FindAgentWithMediumList(name, state string, agentId, mediumId, page, limit int) (list []dao.AgentWithMediumGroup, total int64, err error) { + sess := a.Db.Desc("agent_with_medium.id").Limit(limit, (page-1)*limit) + if name != "" { + sess.And("medium_list.company_name like ?", "%"+name+"%") + } + if state != "" { + sess.And("medium_list.state = ?", state) + } + if agentId > 0 { + sess.And("agent_with_medium.agent_id = ?", agentId) + } + if mediumId > 0 { + sess.And("agent_with_medium.medium_id = ?", mediumId) + } + sess.Join("LEFT", "medium_list", "medium_list.medium_id = agent_with_medium.medium_id") + sess.Join("LEFT", "agent_list", "agent_list.agent_id = agent_with_medium.agent_id") + total, err = sess.FindAndCount(&list) + if err != nil { + return nil, 0, err + } + return +} diff --git a/src/super/implement/medium_list_implement.go b/src/super/implement/medium_list_implement.go index 716824e..b3059b2 100644 --- a/src/super/implement/medium_list_implement.go +++ b/src/super/implement/medium_list_implement.go @@ -42,8 +42,8 @@ func (m MediumListDb) UpdateMediumList(medium *model.MediumList, columns ...stri } return affected, nil } -func (m MediumListDb) FindMediumList(uuid, name, state string, page, limit int) (list []model.MediumList, total int64, err error) { - sess := m.Db.Where("state>0").Desc("id").Limit(limit, (page-1)*limit) +func (m MediumListDb) FindMediumList(uuid, name, state string, minState, page, limit int) (list []model.MediumList, total int64, err error) { + sess := m.Db.Desc("id").Limit(limit, (page-1)*limit) if name != "" { sess.And("company_name like ?", "%"+name+"%") } @@ -53,6 +53,9 @@ func (m MediumListDb) FindMediumList(uuid, name, state string, page, limit int) if uuid != "" { sess.And("uuid = ?", uuid) } + if minState > 0 { + sess.And("state >= ?", minState) + } total, err = sess.FindAndCount(&list) if err != nil { return nil, 0, err diff --git a/src/super/model/agent_with_medium.go b/src/super/model/agent_with_medium.go new file mode 100644 index 0000000..f8fb75a --- /dev/null +++ b/src/super/model/agent_with_medium.go @@ -0,0 +1,13 @@ +package model + +import ( + "time" +) + +type AgentWithMedium struct { + Id int `json:"id" xorm:"not null pk autoincr INT(11)"` + AgentId int `json:"agent_id" xorm:"not null default 0 comment('代理id') INT(11)"` + MediumId int `json:"medium_id" xorm:"not null default 0 comment('媒体id') INT(11)"` + CreateAt time.Time `json:"create_at" xorm:"not null default CURRENT_TIMESTAMP DATETIME"` + UpdateAt time.Time `json:"update_at" xorm:"not null default CURRENT_TIMESTAMP DATETIME"` +}