feat:实现团队功能

This commit is contained in:
lifei6671
2018-11-05 18:50:01 +08:00
parent 1d8d74afb1
commit b897c87476
20 changed files with 1411 additions and 208 deletions

View File

@@ -59,7 +59,7 @@ func (c *ManagerController) Users() {
pager := pagination.NewPagination(c.Ctx.Request, totalCount, conf.PageSize, c.BaseUrl())
c.Data["PageHtml"] = pager.HtmlPages()
for _,item := range members {
for _, item := range members {
item.Avatar = conf.URLForWithCdnImage(item.Avatar)
}
} else {
@@ -114,7 +114,7 @@ func (c *ManagerController) CreateMember() {
member.Account = account
member.Password = password1
member.Role = role
member.Role = conf.SystemRole(role)
member.Avatar = conf.GetDefaultAvatar()
member.CreateAt = c.Member.MemberId
member.Email = email
@@ -167,17 +167,17 @@ func (c *ManagerController) UpdateMemberStatus() {
func (c *ManagerController) ChangeMemberRole() {
c.Prepare()
member_id, _ := c.GetInt("member_id", 0)
memberId, _ := c.GetInt("member_id", 0)
role, _ := c.GetInt("role", 0)
if member_id <= 0 {
if memberId <= 0 {
c.JsonResult(6001, "参数错误")
}
if role != conf.MemberAdminRole && role != conf.MemberGeneralRole {
if role != int(conf.MemberAdminRole) && role != int(conf.MemberGeneralRole) {
c.JsonResult(6001, "用户权限不正确")
}
member := models.NewMember()
if _, err := member.Find(member_id); err != nil {
if _, err := member.Find(memberId); err != nil {
c.JsonResult(6002, "用户不存在")
}
if member.MemberId == c.Member.MemberId {
@@ -186,7 +186,7 @@ func (c *ManagerController) ChangeMemberRole() {
if member.Role == conf.MemberSuperRole {
c.JsonResult(6005, "不能变更超级管理员的权限")
}
member.Role = role
member.Role = conf.SystemRole(role)
if err := member.Update(); err != nil {
c.JsonResult(6003, "用户权限设置失败")
@@ -670,7 +670,7 @@ func (c *ManagerController) AttachDelete() {
beego.Error("AttachDelete => ", err)
c.JsonResult(6001, err.Error())
}
attach.FilePath = filepath.Join(conf.WorkingDirectory,attach.FilePath)
attach.FilePath = filepath.Join(conf.WorkingDirectory, attach.FilePath)
if err := attach.Delete(); err != nil {
beego.Error("AttachDelete => ", err)
@@ -732,33 +732,265 @@ func (c *ManagerController) Config() {
if c.Ctx.Input.IsPost() {
content := strings.TrimSpace(c.GetString("configFileTextArea"))
if content == "" {
c.JsonResult(500,"配置文件不能为空")
c.JsonResult(500, "配置文件不能为空")
}
tf,err := ioutil.TempFile(os.TempDir(),"mindoc")
tf, err := ioutil.TempFile(os.TempDir(), "mindoc")
if err != nil {
beego.Error("创建临时文件失败 ->",err)
c.JsonResult(5001,"创建临时文件失败")
beego.Error("创建临时文件失败 ->", err)
c.JsonResult(5001, "创建临时文件失败")
}
defer tf.Close()
tf.WriteString(content)
err = beego.LoadAppConfig("ini",tf.Name())
err = beego.LoadAppConfig("ini", tf.Name())
if err != nil {
beego.Error("加载配置文件失败 ->",err)
c.JsonResult(5002,"加载配置文件失败")
beego.Error("加载配置文件失败 ->", err)
c.JsonResult(5002, "加载配置文件失败")
}
err = filetil.CopyFile(tf.Name(), conf.ConfigurationFile)
if err != nil {
beego.Error("保存配置文件失败 ->",err)
c.JsonResult(5003,"保存配置文件失败")
beego.Error("保存配置文件失败 ->", err)
c.JsonResult(5003, "保存配置文件失败")
}
c.JsonResult(0,"保存成功")
c.JsonResult(0, "保存成功")
}
c.Data["ConfigContent"] = ""
if b,err := ioutil.ReadFile(conf.ConfigurationFile); err == nil {
if b, err := ioutil.ReadFile(conf.ConfigurationFile); err == nil {
c.Data["ConfigContent"] = string(b)
}
}
func (c *ManagerController) Team() {
c.Prepare()
c.TplName = "manager/team.tpl"
pageIndex, _ := c.GetInt("page", 0)
teams, totalCount, err := models.NewTeam().FindToPager(pageIndex, conf.PageSize)
if err != nil && err != orm.ErrNoRows {
c.ShowErrorPage(500, err.Error())
}
if err == orm.ErrNoRows || len(teams) <= 0 {
c.Data["Result"] = template.JS("[]")
c.Data["PageHtml"] = ""
return
}
if totalCount > 0 {
pager := pagination.NewPagination(c.Ctx.Request, totalCount, conf.PageSize, c.BaseUrl())
c.Data["PageHtml"] = pager.HtmlPages()
} else {
c.Data["PageHtml"] = ""
}
b, err := json.Marshal(teams)
if err != nil {
c.Data["Result"] = template.JS("[]")
} else {
c.Data["Result"] = template.JS(string(b))
}
}
func (c *ManagerController) TeamCreate() {
c.Prepare()
teamName := c.GetString("teamName")
if teamName == "" {
c.JsonResult(5001, "团队名称不能为空")
}
team := models.NewTeam()
team.MemberId = c.Member.MemberId
team.TeamName = teamName
if err := team.Save(); err == nil {
c.JsonResult(0, "OK", team)
} else {
c.JsonResult(5002, err.Error())
}
}
func (c *ManagerController) TeamEdit() {
c.Prepare()
teamName := c.GetString("teamName")
teamId, _ := c.GetInt("teamId")
if teamName == "" {
c.JsonResult(5001, "团队名称不能为空")
}
if teamId <= 0 {
c.JsonResult(5002, "团队标识不能为空")
}
team, err := models.NewTeam().First(teamId)
c.CheckJsonError(5003, err)
team.TeamName = teamName
err = team.Save()
c.CheckJsonError(5004, err)
c.JsonResult(0, "OK", team)
}
func (c *ManagerController) TeamDelete() {
c.Prepare()
teamId, _ := c.GetInt("teamId")
if teamId <= 0 {
c.JsonResult(5002, "团队标识不能为空")
}
err := models.NewTeam().Delete(teamId)
c.CheckJsonError(5001, err)
c.JsonResult(0, "")
}
func (c *ManagerController) TeamMemberList() {
c.Prepare()
c.TplName = "manager/team_member_list.tpl"
teamId, _ := strconv.Atoi(c.Ctx.Input.Param(":id"))
pageIndex, _ := c.GetInt("page", 0)
if teamId <= 0 {
c.ShowErrorPage(500, "参数错误")
}
team, err := models.NewTeam().First(teamId)
if err == orm.ErrNoRows {
c.ShowErrorPage(404, "团队不存在")
}
c.CheckErrorResult(500, err)
c.Data["Model"] = team
teams, totalCount, err := models.NewTeamMember().FindToPager(teamId, pageIndex, conf.PageSize)
if err != nil && err != orm.ErrNoRows {
c.ShowErrorPage(500, err.Error())
}
if err == orm.ErrNoRows || len(teams) <= 0 {
c.Data["Result"] = template.JS("[]")
c.Data["PageHtml"] = ""
return
}
if totalCount > 0 {
pager := pagination.NewPagination(c.Ctx.Request, totalCount, conf.PageSize, c.BaseUrl())
c.Data["PageHtml"] = pager.HtmlPages()
} else {
c.Data["PageHtml"] = ""
}
b, err := json.Marshal(teams)
if err != nil {
beego.Error("编码 JSON 结果失败 ->", err)
c.Data["Result"] = template.JS("[]")
} else {
c.Data["Result"] = template.JS(string(b))
}
}
//搜索团队用户.
func (c *ManagerController) TeamSearchMember() {
c.Prepare()
teamId, _ := c.GetInt("teamId")
keyword := strings.TrimSpace(c.GetString("q"))
if teamId <= 0 {
c.JsonResult(500, "参数错误")
}
searchResult, err := models.NewTeamMember().FindNotJoinMemberByAccount(teamId, keyword, 10)
if err != nil {
c.JsonResult(500, err.Error())
}
c.JsonResult(0, "OK", searchResult)
}
func (c *ManagerController) TeamMemberAdd() {
c.Prepare()
teamId, _ := c.GetInt("teamId")
memberId, _ := c.GetInt("memberId")
roleId, _ := c.GetInt("roleId")
if teamId <= 0 || memberId <= 0 || roleId <= 0 || roleId > int(conf.BookObserver) {
c.JsonResult(5001, "参数不正确")
}
teamMember := models.NewTeamMember()
teamMember.MemberId = memberId
teamMember.TeamId = teamId
teamMember.RoleId = conf.BookRole(roleId)
if err := teamMember.Save(); err != nil {
c.CheckJsonError(5001, err)
}
teamMember.Include()
c.JsonResult(0, "OK", teamMember)
}
func (c *ManagerController) TeamMemberDelete() {
c.Prepare()
memberId, _ := c.GetInt("memberId")
teamId, _ := c.GetInt("teamId")
teamMember, err := models.NewTeamMember().FindFirst(teamId, memberId)
if err != nil {
c.JsonResult(5001, "用户不存在或已禁用")
}
err = teamMember.Delete(teamMember.TeamMemberId)
if err != nil {
c.JsonResult(5002, "删除失败")
}
c.JsonResult(0, "ok")
}
func (c *ManagerController) TeamChangeMemberRole() {
c.Prepare()
memberId, _ := c.GetInt("memberId")
roleId, _ := c.GetInt("roleId")
teamId, _ := c.GetInt("teamId")
if memberId <= 0 || roleId <= 0 || teamId <= 0 || roleId > int(conf.BookObserver) {
c.JsonResult(5001, "参数错误")
}
teamMember, err := models.NewTeamMember().ChangeRoleId(teamId, memberId, conf.BookRole(roleId))
if err != nil {
c.JsonResult(5002, err.Error())
} else {
c.JsonResult(0, "OK", teamMember)
}
}
func (c *ManagerController) TeamBookList() {
c.Prepare()
c.TplName = "manager/team_book_list.tpl"
}
func (c *ManagerController) TeamBookAdd() {
c.Prepare()
}
func (c *ManagerController) TeamBookDelete() {
c.Prepare()
}