219 lines
5.5 KiB
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
|
|
}
|