From b782321e7992ba8929f74727e03864ed0d5a1017 Mon Sep 17 00:00:00 2001 From: pixel <303176530@qq.com> Date: Tue, 25 Feb 2020 18:15:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=9D=83=E9=99=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QMPlusServer/controller/api/exa_customer.go | 119 ++++++++++++++++++ QMPlusServer/init/initRouter/init_router.go | 1 + QMPlusServer/init/registTable/regist_table.go | 1 + QMPlusServer/model/dbModel/exa_customer.go | 67 ++++++++++ QMPlusServer/model/sysModel/sys_api.go | 7 +- QMPlusServer/model/sysModel/sys_authority.go | 5 + QMPlusServer/router/exp_customer.go | 17 +++ QMPlusVuePage/src/view/superAdmin/api/api.vue | 1 - 8 files changed, 216 insertions(+), 2 deletions(-) diff --git a/QMPlusServer/controller/api/exa_customer.go b/QMPlusServer/controller/api/exa_customer.go index 778f64ec..03c09c9a 100644 --- a/QMPlusServer/controller/api/exa_customer.go +++ b/QMPlusServer/controller/api/exa_customer.go @@ -1 +1,120 @@ package api + +import ( + "fmt" + "gin-vue-admin/controller/servers" + "gin-vue-admin/middleware" + "gin-vue-admin/model/dbModel" + "gin-vue-admin/model/modelInterface" + "github.com/gin-gonic/gin" +) + +// @Tags SysApi +// @Summary 创建客户 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body dbModel.ExaCustomer true "创建客户" +// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" +// @Router /customer/createExaCustomer [post] +func CreateExaCustomer(c *gin.Context) { + var cu dbModel.ExaCustomer + _ = c.BindJSON(&cu) + claims, _ := c.Get("claims") + waitUse := claims.(*middleware.CustomClaims) + cu.SysUserID = waitUse.ID + cu.SysUserAuthorityID = waitUse.AuthorityId + err := cu.CreateExaCustomer() + if err != nil { + servers.ReportFormat(c, false, fmt.Sprintf("创建失败:%v", err), gin.H{}) + } else { + servers.ReportFormat(c, true, "创建成功", gin.H{}) + } +} + +// @Tags SysApi +// @Summary 删除客户 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body dbModel.ExaCustomer true "删除客户" +// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" +// @Router /customer/deleteExaCustomer [post] +func DeleteExaCustomer(c *gin.Context) { + var cu dbModel.ExaCustomer + _ = c.BindJSON(&cu) + err := cu.DeleteExaCustomer() + if err != nil { + servers.ReportFormat(c, false, fmt.Sprintf("创建失败:%v", err), gin.H{}) + } else { + servers.ReportFormat(c, true, "创建成功", gin.H{}) + } +} + +// @Tags SysApi +// @Summary 更新客户信息 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body dbModel.ExaCustomer true "创建客户" +// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" +// @Router /customer/updataExaCustomer [post] +func UpdataExaCustomer(c *gin.Context) { + var cu dbModel.ExaCustomer + _ = c.BindJSON(&cu) + err := cu.UpdataExaCustomer() + if err != nil { + servers.ReportFormat(c, false, fmt.Sprintf("创建失败:%v", err), gin.H{}) + } else { + servers.ReportFormat(c, true, "创建成功", gin.H{}) + } +} + +// @Tags SysApi +// @Summary 获取单一客户信息 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body dbModel.ExaCustomer true "获取单一客户信息" +// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" +// @Router /customer/getExaCustomer [post] +func GetExaCustomer(c *gin.Context) { + var cu dbModel.ExaCustomer + _ = c.BindJSON(&cu) + err,customer := cu.GetExaCustomer() + if err != nil { + servers.ReportFormat(c, false, fmt.Sprintf("创建失败:%v", err), gin.H{}) + } else { + servers.ReportFormat(c, true, "创建成功", gin.H{ + "customer":customer, + }) + } +} + +// @Tags SysApi +// @Summary 获取权限客户列表 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body modelInterface.PageInfo true "获取权限客户列表" +// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}" +// @Router /customer/getExaCustomerList [post] +func GetExaCustomerList(c *gin.Context) { + claims, _ := c.Get("claims") + waitUse := claims.(*middleware.CustomClaims) + var cu dbModel.ExaCustomer + cu.SysUserAuthorityID = waitUse.AuthorityId + var pageInfo modelInterface.PageInfo + _ = c.BindJSON(&pageInfo) + err, customerList, total := cu.GetInfoList(pageInfo) + if err != nil { + servers.ReportFormat(c, false, fmt.Sprintf("创建失败:%v", err), gin.H{}) + } else { + servers.ReportFormat(c, true, "创建成功", gin.H{ + "customer":customerList, + "total": total, + "page": pageInfo.Page, + "pageSize": pageInfo.PageSize, + }) + } +} \ No newline at end of file diff --git a/QMPlusServer/init/initRouter/init_router.go b/QMPlusServer/init/initRouter/init_router.go index f9d8597e..f181706d 100644 --- a/QMPlusServer/init/initRouter/init_router.go +++ b/QMPlusServer/init/initRouter/init_router.go @@ -28,5 +28,6 @@ func InitRouter() *gin.Engine { router.InitCasbinRouter(ApiGroup) // 权限相关路由 router.InitJwtRouter(ApiGroup) // jwt相关路由 router.InitSystemRouter(ApiGroup) // system相关路由 + router.InitCustomerRouter(ApiGroup) // 客户路由 return Router } diff --git a/QMPlusServer/init/registTable/regist_table.go b/QMPlusServer/init/registTable/regist_table.go index 27176a52..e402fa23 100644 --- a/QMPlusServer/init/registTable/regist_table.go +++ b/QMPlusServer/init/registTable/regist_table.go @@ -19,5 +19,6 @@ func RegistTable(db *gorm.DB) { dbModel.ExaFileUploadAndDownload{}, dbModel.ExaFile{}, dbModel.ExaFileChunk{}, + dbModel.ExaCustomer{}, ) } diff --git a/QMPlusServer/model/dbModel/exa_customer.go b/QMPlusServer/model/dbModel/exa_customer.go index 9a3a2dc2..2c2e93a6 100644 --- a/QMPlusServer/model/dbModel/exa_customer.go +++ b/QMPlusServer/model/dbModel/exa_customer.go @@ -1 +1,68 @@ package dbModel + +import ( + "gin-vue-admin/controller/servers" + "gin-vue-admin/init/qmsql" + "gin-vue-admin/model/modelInterface" + "gin-vue-admin/model/sysModel" + "github.com/jinzhu/gorm" +) + +type ExaCustomer struct { + gorm.Model + CustomerName string `json:"customerName"` + CustomerPhoneData string `json:"customerPhoneData"` + SysUserID uint `json:"sysUserId"` + SysUserAuthorityID string `json:"sysUserAuthorityID"` + SysUser sysModel.SysUser `json:"sysUser"` +} + +//创建用户 +func (e *ExaCustomer)CreateExaCustomer()(err error){ + err = qmsql.DEFAULTDB.Create(e).Error + return err +} + +//删除用户 +func (e *ExaCustomer)DeleteExaCustomer()(err error){ + err = qmsql.DEFAULTDB.Delete(e).Error + return err +} + +//更新用户 +func (e *ExaCustomer)UpdataExaCustomer()(err error){ + err = qmsql.DEFAULTDB.Save(e).Error + return err +} + +//获取用户信息 +func (e *ExaCustomer)GetExaCustomer()(err error,customer ExaCustomer){ + err= qmsql.DEFAULTDB.Where("id = ?",e.ID).First(&customer).Error + return +} + +//获取用户列表 +// 分页获取数据 需要分页实现这个接口即可 +func (e *ExaCustomer) GetInfoList(info modelInterface.PageInfo) (err error, list interface{}, total int) { + // 封装分页方法 调用即可 传入 当前的结构体和分页信息 + err, db, total := servers.PagingServer(e, info) + if err != nil { + return + } else { + var a sysModel.SysAuthority + a.AuthorityId = e.SysUserAuthorityID + err,auth := a.GetAuthorityInfo() + var dataId []string + for _,v := range auth.DataAuthorityId{ + dataId = append(dataId, v.AuthorityId) + } + var CustomerList []ExaCustomer + err = db.Where("sys_user_authority_id in (?)",dataId).Find(&CustomerList).Count(&total).Error + if err!=nil{ + return err, CustomerList, total + }else{ + err = db.Preload("SysUser").Where("sys_user_authority_id in (?)",dataId).Find(&CustomerList).Error + } + return err, CustomerList, total + } +} \ No newline at end of file diff --git a/QMPlusServer/model/sysModel/sys_api.go b/QMPlusServer/model/sysModel/sys_api.go index aa3bba4a..f9cf0ea8 100644 --- a/QMPlusServer/model/sysModel/sys_api.go +++ b/QMPlusServer/model/sysModel/sys_api.go @@ -71,7 +71,12 @@ func (a *SysApi) GetInfoList(info modelInterface.PageInfo) (err error, list inte return } else { var apiList []SysApi - err = db.Order("group", true).Where("path LIKE ?", "%"+a.Path+"%").Find(&apiList).Count(&total).Error + err = qmsql.DEFAULTDB.Where("path LIKE ?", "%"+a.Path+"%").Find(&apiList).Count(&total).Error + if err!=nil{ + return err, apiList, total + }else{ + err = db.Order("group", true).Where("path LIKE ?", "%"+a.Path+"%").Find(&apiList).Error + } return err, apiList, total } } diff --git a/QMPlusServer/model/sysModel/sys_authority.go b/QMPlusServer/model/sysModel/sys_authority.go index fc6c90b7..50a165e3 100644 --- a/QMPlusServer/model/sysModel/sys_authority.go +++ b/QMPlusServer/model/sysModel/sys_authority.go @@ -74,3 +74,8 @@ func (a *SysAuthority) SetDataAuthority() error { err := qmsql.DEFAULTDB.Model(&s).Association("DataAuthorityId").Replace(&a.DataAuthorityId).Error return err } + +func (a *SysAuthority) GetAuthorityInfo() (err error,sa SysAuthority) { + err = qmsql.DEFAULTDB.Preload("DataAuthorityId").Where("authority_id = ?",a.AuthorityId).First(&sa).Error + return err,sa +} \ No newline at end of file diff --git a/QMPlusServer/router/exp_customer.go b/QMPlusServer/router/exp_customer.go index 7ef135b3..6bf149db 100644 --- a/QMPlusServer/router/exp_customer.go +++ b/QMPlusServer/router/exp_customer.go @@ -1 +1,18 @@ package router + +import ( + "gin-vue-admin/controller/api" + "gin-vue-admin/middleware" + "github.com/gin-gonic/gin" +) + +func InitCustomerRouter(Router *gin.RouterGroup) { + ApiRouter := Router.Group("customer").Use(middleware.JWTAuth()).Use(middleware.CasbinHandler()) + { + ApiRouter.POST("createExaCustomer", api.CreateExaCustomer) // 创建客户 + ApiRouter.POST("updataExaCustomer", api.UpdataExaCustomer) // 更新客户 + ApiRouter.POST("deleteExaCustomer", api.DeleteExaCustomer) // 删除客户 + ApiRouter.POST("getExaCustomer", api.GetExaCustomer) // 获取单一客户信息 + ApiRouter.POST("getExaCustomerList", api.GetExaCustomerList) // 获取客户列表 + } +} diff --git a/QMPlusVuePage/src/view/superAdmin/api/api.vue b/QMPlusVuePage/src/view/superAdmin/api/api.vue index 3a729954..4a86e0b8 100644 --- a/QMPlusVuePage/src/view/superAdmin/api/api.vue +++ b/QMPlusVuePage/src/view/superAdmin/api/api.vue @@ -1,6 +1,5 @@