column_setting_controller.go 6.9 KB
package controllers

import (
	"encoding/json"
	"errors"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"

	"github.com/astaxie/beego/logs"

	"github.com/linmadan/egglib-go/web/beego/utils"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/command"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/query"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/columnSetting/service"
)

type ColumnSettingController struct {
	BaseController
}

////Prepare 重写 BaseController 的Prepare方法
func (controller *ColumnSettingController) Prepare() {
	controller.BaseController.Prepare()
	if ok := controller.ValidJWTToken(); !ok {
		return
	}
	if ok := controller.ValidAdminPermission(domain.PERMISSION_ORDER); !ok {
		return
	}
}

func (controller *ColumnSettingController) CreateColumnSetting() {
	columnSettingService := service.NewColumnSettingService(nil)
	createColumnSettingCommand := &command.CreateColumnSettingCommand{}
	//_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), createColumnSettingCommand)
	if err := controller.BindJsonData(&createColumnSettingCommand); err != nil {
		logs.Error(err)
		controller.ResponseError(errors.New("json数据解析失败"))
		return
	}
	companyId := controller.GetUserCompany()
	uid := controller.GetUserId()
	createColumnSettingCommand.CompanyId = int(companyId)
	createColumnSettingCommand.Uid = uid
	data, err := columnSettingService.CreateColumnSetting(createColumnSettingCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

/**
 * @Author SteveChan
 * @Description 更新栏目设置
 * @Date 22:52 2021/1/26
 * @Param
 * @return
 **/
func (controller *ColumnSettingController) UpdateColumnSetting() {
	columnSettingService := service.NewColumnSettingService(nil)
	updateColumnSettingCommand := &command.UpdateColumnSettingCommand{}
	//_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), updateColumnSettingCommand)
	if err := controller.BindJsonData(&updateColumnSettingCommand); err != nil {
		logs.Error(err)
		controller.ResponseError(errors.New("json数据解析失败"))
		return
	}
	//columnSettingId, _ := controller.GetInt64(":columnSettingId")
	companyId := controller.GetUserCompany()
	uid := controller.GetUserId()
	//updateColumnSettingCommand.ColumnSettingId = columnSettingId
	updateColumnSettingCommand.CompanyId = int(companyId)
	updateColumnSettingCommand.Uid = uid
	updateColumnSettingCommand.Selected = updateColumnSettingCommand.OrderBaseColumns.Selected
	updateColumnSettingCommand.UnSelected = updateColumnSettingCommand.OrderBaseColumns.UnSelected
	data, err := columnSettingService.UpdateColumnSetting(updateColumnSettingCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

/**
 * @Author SteveChan
 * @Description // 获取栏目设置
 * @Date 22:53 2021/1/26
 * @Param
 * @return
 **/
func (controller *ColumnSettingController) GetColumnSetting() {
	columnSettingService := service.NewColumnSettingService(nil)
	getColumnSettingQuery := &query.GetColumnSettingQuery{}
	//columnSettingId, _ := controller.GetInt64(":columnSettingId")
	companyId := controller.GetUserCompany() // 公司id
	uid := controller.GetUserId()            // 用户id
	//getColumnSettingQuery.ColumnSettingId = columnSettingId
	getColumnSettingQuery.CompanyId = int(companyId)
	getColumnSettingQuery.Uid = uid
	data, err := columnSettingService.GetColumnSetting(getColumnSettingQuery)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

func (controller *ColumnSettingController) RemoveColumnSetting() {
	columnSettingService := service.NewColumnSettingService(nil)
	removeColumnSettingCommand := &command.RemoveColumnSettingCommand{}
	_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), removeColumnSettingCommand)
	columnSettingId, _ := controller.GetInt64(":columnSettingId")
	removeColumnSettingCommand.ColumnSettingId = columnSettingId
	data, err := columnSettingService.RemoveColumnSetting(removeColumnSettingCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

/**
 * @Author SteveChan
 * @Description // 重置栏目设置
 * @Date 22:52 2021/1/26
 * @Param
 * @return
 **/
func (controller *ColumnSettingController) ResetColumn() {
	columnSettingService := service.NewColumnSettingService(nil)
	resetColumnCommand := &command.ResetColumnCommand{}
	companyId := controller.GetUserCompany()
	uid := controller.GetUserId()
	//_ = json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), resetColumnCommand)
	resetColumnCommand.CompanyId = int(companyId)
	resetColumnCommand.Uid = uid
	resetColumnCommand.Value = domain.DefaultColumns               // 还原默认栏目设置
	resetColumnCommand.InvalidValue = domain.DefaultInvalidColumns // 还原默认无效栏目
	data, err := columnSettingService.ResetColumn(resetColumnCommand)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

/**
 * @Author SteveChan
 * @Description // 获取栏目列表
 * @Date 14:03 2021/2/1
 * @Param
 * @return
 **/
func (controller *ColumnSettingController) ListColumnSetting() {
	columnSettingService := service.NewColumnSettingService(nil)
	listColumnSettingQuery := &query.ListColumnSettingQuery{}
	offset, _ := controller.GetInt("offset")
	listColumnSettingQuery.Offset = offset
	limit, _ := controller.GetInt("limit")
	listColumnSettingQuery.Limit = limit
	data, err := columnSettingService.ListColumnSetting(listColumnSettingQuery)
	var response utils.JsonResponse
	if err != nil {
		response = utils.ResponseError(controller.Ctx, err)
	} else {
		response = utils.ResponseData(controller.Ctx, data)
	}
	controller.Data["json"] = response
	controller.ServeJSON()
}

/**
 * @Author SteveChan
 * @Description //返回默认栏目设置
 * @Date 14:06 2021/2/1
 * @Param
 * @return
 **/
func (controller *ColumnSettingController) ListDefaultColumnSetting() {
	data := map[string]interface{}{
		"orderBaseColumns": map[string]interface{}{
			"selected":   domain.DefaultColumns,
			"unselected": domain.DefaultInvalidColumns,
		},
	}
	var response utils.JsonResponse
	response = utils.ResponseData(controller.Ctx, data)
	controller.Data["json"] = response
	controller.ServeJSON()
}