mh_goadmin_server/app/admin/apis/basic/cashier.go

219 lines
5.5 KiB
Go

package basic
import (
"errors"
"github.com/gin-gonic/gin"
"go-admin/app/admin/models"
"go-admin/logger"
"go-admin/tools"
"go-admin/tools/app"
"net/http"
)
type CashierCreateRequest struct {
Name string `json:"name" binding:"required"` // 账号名称
BankName string `json:"bank_name" binding:"required"` // 银行全称
BankAccount string `json:"bank_account" binding:"required"` // 银行账号
StoreNums []uint32 `json:"store_num" binding:"required"` // 门店编号
}
// CashierCreate 新增收付款账号
// @Summary 新增收付款账号
// @Tags 收付款账号设置
// @Produce json
// @Accept json
// @Param request body CashierCreateRequest true "新增收付款账号模型"
// @Success 200 {object} app.Response
// @Router /api/v1/cashier/create [post]
func CashierCreate(c *gin.Context) {
var req = new(CashierCreateRequest)
if err := c.ShouldBindJSON(&req); err != nil {
logger.Errorf("CashierCreate ShouldBindJSON err:", err.Error())
app.Error(c, http.StatusBadRequest, errors.New("param err"), "参数错误")
return
}
err := tools.Validate(req)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
if len(req.StoreNums) <= 0 {
app.Error(c, http.StatusBadRequest, errors.New("param err"), "有效店铺为空")
return
}
cashier := &models.ErpCashier{
Name: req.Name,
BankName: req.BankName,
BankAccount: req.BankAccount,
State: 1,
Remark: "",
}
err = models.CreateAccount(cashier, req.StoreNums)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
app.OK(c, nil, "OK")
return
}
type CashierEditRequest struct {
CashierId uint32 `json:"cashier_id" binding:"required"` // 账号id
CashierCreateRequest
}
// CashierEdit 编辑收付款账号
// @Summary 编辑收付款账号
// @Tags 收付款账号设置
// @Produce json
// @Accept json
// @Param request body CashierEditRequest true "编辑收付款账号模型"
// @Success 200 {object} app.Response
// @Router /api/v1/cashier/edit [post]
func CashierEdit(c *gin.Context) {
var req = new(CashierEditRequest)
if err := c.ShouldBindJSON(&req); err != nil {
logger.Errorf("CashierEdit ShouldBindJSON err:", err.Error())
app.Error(c, http.StatusBadRequest, errors.New("param err"), "参数错误")
return
}
err := tools.Validate(req)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
if len(req.StoreNums) <= 0 {
app.Error(c, http.StatusBadRequest, errors.New("param err"), "有效店铺为空")
return
}
cashier := &models.ErpCashier{
Name: req.Name,
BankName: req.BankName,
BankAccount: req.BankAccount,
State: 1,
Remark: "",
}
cashier.ID = req.CashierId
err = models.UpdateAccount(cashier, req.StoreNums)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
app.OK(c, nil, "OK")
return
}
// CashierDelete 删除收付款账号
// @Summary 删除收付款账号
// @Tags 收付款账号设置
// @Produce json
// @Accept json
// @Param request body CashierDetailRequest true "删除收付款账号模型"
// @Success 200 {object} app.Response
// @Router /api/v1/cashier/delete [post]
func CashierDelete(c *gin.Context) {
var req = new(CashierDetailRequest)
if err := c.ShouldBindJSON(&req); err != nil {
//logger.Error(err)
app.Error(c, http.StatusBadRequest, errors.New("param err"), "参数错误")
return
}
err := tools.Validate(req)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
err = models.DeleteAccount(req.CashierId)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
app.OK(c, nil, "OK")
return
}
type CashierListRequest struct {
StoreId uint32 `json:"store_id"` // 门店编号
PageNum int `json:"page_num"` // 页码
PageSize int `json:"page_size"` // 页条数
}
// CashierList 查询收付款账号列表
// @Summary 查询收付款账号列表
// @Tags 收付款账号设置
// @Produce json
// @Accept json
// @Param request body CashierListRequest true "查询收付款账号列表模型"
// @Success 200 {object} models.ErpCashierListResp
// @Router /api/v1/cashier/list [post]
func CashierList(c *gin.Context) {
var req = new(CashierListRequest)
if err := c.ShouldBindJSON(&req); err != nil {
//logger.Error(err)
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
list, err := models.GetAccountList(int(req.StoreId), req.PageSize, req.PageNum)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
app.OK(c, list, "OK")
return
}
type CashierDetailRequest struct {
CashierId uint32 `json:"cashier_id" binding:"required"` // 账号id
}
// CashierDetail 查询收付款账号详情
// @Summary 查询收付款账号详情
// @Tags 收付款账号设置
// @Produce json
// @Accept json
// @Param request body CashierDetailRequest true "查询收付款账号详情模型"
// @Success 200 {object} models.ErpCashierDetail
// @Router /api/v1/cashier/detail [post]
func CashierDetail(c *gin.Context) {
var req = new(CashierDetailRequest)
if err := c.ShouldBindJSON(&req); err != nil {
//logger.Error(err)
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return
}
err := tools.Validate(req)
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
list, err := models.GetAccountDetail(int(req.CashierId))
if err != nil {
app.Error(c, http.StatusBadRequest, err, err.Error())
return
}
app.OK(c, list, "OK")
return
}