business_bonus_controller.go 2.9 KB
package controllers

import (
	"errors"

	"github.com/astaxie/beego/logs"
	businessCommand "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/businessBonus/command"
	businessQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/businessBonus/query"
	businessService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/businessBonus/service"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
)

type BusinessBonusController struct {
	BaseController
}

func (c *BusinessBonusController) Prepare() {
	c.BaseController.Prepare()
	if ok := c.ValidJWTToken(); !ok {
		return
	}
	if ok := c.ValidAdminPermission(domain.PERMISSION_DIVIDEND); !ok {
		return
	}
}

func (c *BusinessBonusController) ListBusinessBonus() {
	type Parameter struct {
		PageNumber int    `json:"pageNumber"`
		Partner    int64  `json:"partner"`
		PageSize   int    `json:"pageSize"`
		SearchText string `json:"searchText"`
	}
	var (
		param Parameter
		err   error
	)
	if err = c.BindJsonData(&param); err != nil {
		logs.Error(err)
		c.ResponseError(errors.New("json数据解析失败"))
		return
	}
	if param.PageSize == 0 {
		param.PageSize = 20
	}
	if param.PageNumber == 0 {
		param.PageNumber = 1
	}
	companyId := c.GetUserCompany()
	srv := businessService.NewBusinessBonusService(nil)
	cnt, result, err := srv.ListBusinessBonus(businessQuery.ListBusinessBonusQuery{
		CompanyId: companyId,
		Limit:     param.PageSize,
		Offset:    param.PageSize * (param.PageNumber - 1),
	})
	if err != nil {
		c.ResponseError(err)
		return
	}
	c.ResponsePageList(result, cnt, param.PageNumber)
}

func (c *BusinessBonusController) UpdateBusinessBonus() {
	type Parameter struct {
		Id                  int64   `json:"id"`
		DividendsReceivable float64 `json:"dividendsReceivable"`
		StateOfPayment      int8    `json:"stateOfPayment"`
	}
	var (
		param Parameter
		err   error
	)
	if err = c.BindJsonData(&param); err != nil {
		logs.Error(err)
		c.ResponseError(errors.New("json数据解析失败"))
		return
	}
	companyId := c.GetUserCompany()
	srv := businessService.NewBusinessBonusService(nil)
	err = srv.UpdateBusinessBonus(businessCommand.UpdateBusinessBonusCommand{
		CompanyId:   companyId,
		Id:          param.Id,
		Bonus:       param.DividendsReceivable,
		BonusStatus: param.StateOfPayment,
	})
	if err != nil {
		c.ResponseError(err)
		return
	}
	c.ResponseData(nil)
}

func (c *BusinessBonusController) GetBusinessBonus() {
	type Parameter struct {
		Id int64 `json:"id"`
	}
	var (
		param Parameter
		err   error
	)
	if err = c.BindJsonData(&param); err != nil {
		logs.Error(err)
		c.ResponseError(errors.New("json数据解析失败"))
		return
	}
	companyId := c.GetUserCompany()
	srv := businessService.NewBusinessBonusService(nil)
	data, err := srv.GetBusinessBonus(businessQuery.GetBusinessBonusQuery{
		Id:        param.Id,
		CompanyId: companyId,
	})
	if err != nil {
		c.ResponseError(err)
		return
	}
	c.ResponseData(data)
}