common.go 6.6 KB
package controllers

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

//公共接口
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)
	}()
	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 := servecommon.SelectorDepartment(companyid, param.DepartmentId)
	data := protocol.ResponseListData{List: departs}
	msg = protocol.NewReturnResponse(data, 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
}

//SelectorUserAndDepart 下拉列表 -用户部门混合
//@router /user_and_department [post]
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
}

//DefaultImage  获取默认图片
//@router /default_image
func (c *CommonController) DefaultImage() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	type Parameter struct {
		CmdType int64 `json:"cmd_type"`
	}
	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
	}
	imgehost := config.MConfig.FileHost + "/static/chance_template"
	imageNames := []string{}
	switch param.CmdType {
	case 1:
		//返回机会分类的图标
		imageNames = []string{
			imgehost + "/sort/chance_one_channel@2x.png",
			imgehost + "/sort/chance_one_area@2x.png",
			imgehost + "/sort/chance_one_client@2x.png",
			imgehost + "/sort/chance_one_product@2x.png",
			imgehost + "/template/chance_two_bangsu.png",
		}
	case 2:
		//返回机会模板的图标
		imageNames = []string{
			imgehost + "/template/chance_two_application@2x.png",
			imgehost + "/template/chance_two_follow@2x.png",
			imgehost + "/template/chance_two_improve@2x.png",
			imgehost + "/template/chance_two_original@2x.png",
		}
	}
	data := map[string][]string{
		"urls": imageNames,
	}
	msg = protocol.NewReturnResponse(data, nil)
	return
}

func (c *CommonController) SelectorRoleUser() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	type Parameter struct {
		RoleId int64 `json:"role_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()
	list, err := serverbac.GetRoleHasRole(param.RoleId, companyid)
	msg = protocol.NewReturnResponse(list, err)
	return
}

//SelectorChanceType 获取机会类型列表
func (c *CommonController) SelectorChanceType() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()

	companyid := c.GetCompanyId()
	templatelist := servecommon.SelectGetTemplateList(companyid)
	chanceTypeList := servecommon.SeleteGetChanceTypeList(companyid)
	data := map[string]interface{}{
		"template":    templatelist,
		"chance_type": chanceTypeList,
	}
	msg = protocol.NewReturnResponse(data, nil)
	return
}

//SelectCompanyUserList 下拉选择框 获取公司成员列表
func (c *CommonController) SelectCompanyUserList() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	type Parameter struct {
		protocol.RequestPageInfo
		UserName string `json:"user_name"`
	}
	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()
	listData := servecommon.SelectCompanyUserList(param.PageIndex, param.PageSize, companyid, param.UserName)
	msg = protocol.NewPageDataResponse(listData, nil)
	return
}

//SelectChanceList 下拉选择框 获取机会列表
func (c *CommonController) SelectChanceList() {
	var msg *protocol.ResponseMessage
	defer func() {
		c.ResposeJson(msg)
	}()
	type Parameter struct {
		protocol.RequestPageInfo
		SearchType int    `json:"search_type"` //1:根据机会编码搜索 2:根据提交人搜索
		ChanceCode string `json:"chance_code"`
	}
	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()
	listData := servecommon.SelectChanceList(param.PageIndex, param.PageSize, companyid, param.SearchType, param.ChanceCode)
	msg = protocol.NewPageDataResponse(listData, nil)
	return
}