common.go 2.5 KB
package controllers

import (
	"encoding/json"
	"oppmg/common/log"
	"oppmg/protocol"
	servecommon "oppmg/services/common"
)

//公共接口
type CommonController struct {
	BaseController
}

func (c *CommonController) URLMapping() {

}

//SelectorDepartment 下拉列表 -部门
//@router /department [post]
func (c *CommonController) SelectorDepartment() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	companyid := c.GetCompanyId()
	departs := servecommon.SelectorDepartment(companyid)

	msg = protocol.NewReturnResponse(departs, nil)
	return
}

//SelectorRole 下拉列表 -角色
//@router /role  [post]
func (c *CommonController) SelectorRole() {

	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	type Parameter struct {
		For string `json:"for"`
	}
	var param Parameter
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil {
		log.Error("json 解析失败 err:%s", err)
		msg = protocol.BadRequestParam("1")
		return
	}
	companyid := c.GetCompanyId()
	userid := c.GetUserId()
	if companyid <= 0 || userid <= 0 {
		msg = protocol.BadRequestParam("1")
		return
	}
	var roles []protocol.RoleBase
	switch param.For {
	case "user":
		//编辑用户时
		list := servecommon.SelectorRoleAll(companyid)
		roles = servecommon.FilterRoleAll(userid, companyid, list)
	case "role":
		//编辑角色时
		list := servecommon.SelectorRoleAll(companyid)
		roles = servecommon.FilterRoleGroup(userid, companyid, list)
	case "all":
		//无特殊规则时
		roles = servecommon.SelectorRoleAll(companyid)
	default:
		roles = servecommon.SelectorRoleAll(companyid)
	}
	msg = protocol.NewReturnResponse(roles, nil)
	return

}

//SelectorPosition 下拉列表 -职位
//@router /position [post]
func (c *CommonController) SelectorPosition() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	companyid := c.GetCompanyId()
	departs := servecommon.SelectorPosition(companyid)

	msg = protocol.NewReturnResponse(departs, nil)
	return
}

func (c *CommonController) SelectorUserAndDepart() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	type Parameter struct {
		DepartmentId int64 `json:"department_id"`
	}
	var param Parameter
	if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil {
		log.Error("json 解析失败 err:%s", err)
		msg = protocol.BadRequestParam("1")
		return
	}
	companyid := c.GetCompanyId()
	departs, err := servecommon.SelectorUserAndDepartment(param.DepartmentId, companyid)
	msg = protocol.NewReturnResponse(departs, err)
	return
}