1.新增合作商相关接口;

This commit is contained in:
chenlin 2025-03-18 19:45:22 +08:00
parent d7b1220ff6
commit df7076fc11
11 changed files with 2304 additions and 5 deletions

View File

@ -0,0 +1,190 @@
package bus_apis
import (
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/go-admin-team/go-admin-core/sdk/api"
"go-admin/app/admin/models/bus_models"
"go-admin/app/admin/service/bus_service"
"go-admin/tools/app"
"net/http"
)
type CooperativeApi struct {
api.Api
}
// CooperativeList 查询合作商列表
// @Summary 查询合作商列表
// @Tags 合作商管理-V1.0.0
// @Produce json
// @Accept json
// @Param request body bus_models.CooperativeListReq true "查询合作商列表模型"
// @Success 200 {object} bus_models.CooperativeListResp
// @Router /api/v1/cooperative/list [post]
func (e CooperativeApi) CooperativeList(c *gin.Context) {
s := bus_service.CooperativeService{}
var req bus_models.CooperativeListReq
err := e.MakeContext(c).
MakeOrm().
Bind(&req, binding.JSON).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// 调用服务层的 GetCooperativeList 函数获取数据
resp, err := s.GetCooperativeList(c.Request.Context(), req)
if err != nil {
app.Error(c, http.StatusInternalServerError, err, err.Error())
return
}
// 返回查询结果
app.OK(c, resp, "查询成功")
return
}
// CreateCooperative 新建合作商
// @Summary 新建合作商
// @Tags 合作商管理-V1.0.0
// @Produce json
// @Accept json
// @Param request body bus_models.CreateCooperativeReq true "新建合作商模型"
// @Success 200 {object} bus_models.CreateCooperativeResp
// @Router /api/v1/cooperative/create [post]
func (e CooperativeApi) CreateCooperative(c *gin.Context) {
s := bus_service.CooperativeService{}
var req bus_models.CreateCooperativeReq
err := e.MakeContext(c).
MakeOrm().
Bind(&req, binding.JSON).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// 调用服务层的 CreateCooperative 函数来处理逻辑
resp, err := s.CreateCooperative(req)
if err != nil {
app.Error(c, http.StatusInternalServerError, err, err.Error())
return
}
// 返回创建结果
app.OK(c, resp, "新增成功")
return
}
// EditCooperative 编辑合作商
// @Summary 编辑合作商
// @Tags 合作商管理-V1.0.0
// @Produce json
// @Accept json
// @Param request body bus_models.EditCooperativeReq true "编辑合作商模型"
// @Success 200 {object} app.Response
// @Router /api/v1/cooperative/edit [post]
func (e CooperativeApi) EditCooperative(c *gin.Context) {
s := bus_service.CooperativeService{}
var req bus_models.EditCooperativeReq
err := e.MakeContext(c).
MakeOrm().
Bind(&req, binding.JSON).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// 调用服务层的 EditCooperative 函数来处理逻辑
err = s.EditCooperative(req)
if err != nil {
app.Error(c, http.StatusInternalServerError, err, err.Error())
return
}
// 返回创建结果
app.OK(c, nil, "编辑成功")
return
}
// DeleteCooperative 删除合作商
// @Summary 删除合作商
// @Tags 合作商管理-V1.0.0
// @Produce json
// @Accept json
// @Param request body bus_models.DeleteCooperativeReq true "删除合作商模型"
// @Success 200 {object} app.Response
// @Router /api/v1/cooperative/delete [post]
func (e CooperativeApi) DeleteCooperative(c *gin.Context) {
s := bus_service.CooperativeService{}
var req bus_models.DeleteCooperativeReq
err := e.MakeContext(c).
MakeOrm().
Bind(&req, binding.JSON).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// 调用服务层的 DeleteCooperative 函数来处理逻辑
err = s.DeleteCooperative(req)
if err != nil {
app.Error(c, http.StatusInternalServerError, err, err.Error())
return
}
// 返回创建结果
app.OK(c, nil, "删除成功")
return
}
// CooperativeDetail 查询合作商详情
// @Summary 查询合作商详情
// @Tags 合作商管理-V1.0.0
// @Produce json
// @Accept json
// @Param request body bus_models.CooperativeDetailReq true "查询合作商详情请求参数"
// @Success 200 {object} bus_models.CooperativeDetailResp
// @Router /api/v1/cooperative/detail [post]
func (e CooperativeApi) CooperativeDetail(c *gin.Context) {
s := bus_service.CooperativeService{}
var req bus_models.CooperativeDetailReq
err := e.MakeContext(c).
MakeOrm().
Bind(&req, binding.JSON).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
// 调用服务层的 GetCooperativeDetail 函数获取数据
resp, err := s.GetCooperativeDetail(c.Request.Context(), req)
if err != nil {
app.Error(c, http.StatusInternalServerError, err, err.Error())
return
}
// 返回查询结果
app.OK(c, resp, "查询成功")
return
}

View File

@ -0,0 +1,127 @@
package bus_models
import "go-admin/app/admin/models"
type BusCooperative struct {
models.Model
CooperativeNumber string `gorm:"type:varchar(32);not null" json:"cooperative_number"` // 合作商编号
CooperativeName string `gorm:"type:varchar(64);not null" json:"cooperative_name"` // 合作商名称
Contact string `gorm:"type:varchar(32);not null" json:"contact"` // 联系人
Tel string `gorm:"type:varchar(20);not null" json:"tel"` // 手机号
Status int8 `gorm:"type:tinyint(1);not null;default:1" json:"status"` // 账户状态1启用 0禁用
Account string `gorm:"type:varchar(32);not null;unique" json:"account"` // 账户
Password string `gorm:"type:varchar(64);not null" json:"password"` // 密码(建议存储加密哈希值)
Balance float64 `gorm:"type:decimal(10,3);not null;default:0.000" json:"balance"` // 账户余额
Free float64 `gorm:"type:decimal(10,2);not null;default:0.00" json:"free"` // 赠送余额
Bond float64 `gorm:"type:decimal(10,2);not null;default:0.00" json:"bond"` // 保证金
CardHolder string `gorm:"type:varchar(32)" json:"card_holder,omitempty"` // 开户人
Bank string `gorm:"type:varchar(64)" json:"bank,omitempty"` // 开户行
CardID string `gorm:"type:varchar(32)" json:"card_id,omitempty"` // 银行帐号
TaxID string `gorm:"type:varchar(32)" json:"tax_id,omitempty"` // 税号
Products []BusCooperativeProduct `json:"products" gorm:"-"` // 产品信息
}
// BusCooperativeProduct 合作商与产品关联表
type BusCooperativeProduct struct {
models.Model
CooperativeID uint64 `gorm:"not null" json:"cooperative_id"` // 合作商编号
ProductID uint64 `gorm:"not null" json:"product_id"` // 产品ID
Discount float64 `gorm:"type:decimal(5,2);not null;default:0.00" json:"discount"` // 折扣0-1
}
// CooperativeListReq 查询合作商列表请求
type CooperativeListReq struct {
CooperativeNumber string `form:"cooperative_number,omitempty"` // 合作商编号(可选)
CooperativeName string `form:"cooperative_name,omitempty"` // 合作商名称(支持模糊查询)
Status int8 `form:"status,omitempty"` // 账户状态1启用 0禁用
Page int `form:"page" binding:"required,min=1"` // 页码
PageSize int `form:"page_size" binding:"required,min=1,max=100"` // 每页条数
}
// CooperativeListResp 查询合作商列表响应
type CooperativeListResp struct {
List []BusCooperative `json:"list"` // 合作商列表
Total int `json:"total"` // 总记录数
Page int `json:"page"` // 页码
PageSize int `json:"page_size"` // 每页大小
}
// CreateCooperativeReq 创建合作商请求
type CreateCooperativeReq struct {
CooperativeName string `json:"cooperative_name" binding:"required"` // 合作商名称
Contact string `json:"contact" binding:"required"` // 联系人
Tel string `json:"tel" binding:"required"` // 手机号
Account string `json:"account" binding:"required"` // 账户
Password string `json:"password" binding:"required"` // 密码(前端传输时应加密)
Balance float64 `json:"balance,omitempty"` // 账户余额(可选)
Free float64 `json:"free,omitempty"` // 赠送余额(可选)
Bond float64 `json:"bond,omitempty"` // 保证金(可选)
CardHolder string `json:"card_holder,omitempty"` // 开户人(可选)
Bank string `json:"bank,omitempty"` // 开户行(可选)
CardID string `json:"card_id,omitempty"` // 银行帐号(可选)
TaxID string `json:"tax_id,omitempty"` // 税号(可选)
Products []ProductDiscount `json:"products"` // 关联产品及折扣信息
}
// ProductDiscount 结构体用于存储产品ID及对应折扣
type ProductDiscount struct {
ProductID uint64 `json:"product_id" binding:"required"` // 产品ID
Discount float64 `json:"discount" binding:"required"` // 折扣0-1之间
}
// CreateCooperativeResp 创建合作商响应
type CreateCooperativeResp struct {
CooperativeNumber string `form:"cooperative_number"` // 合作商编号
}
// EditCooperativeReq 编辑合作商请求
type EditCooperativeReq struct {
CooperativeNumber string `form:"cooperative_number,required"` // 合作商编号
CooperativeName string `json:"cooperative_name,omitempty"` // 合作商名称(可选)
Contact string `json:"contact,omitempty"` // 联系人(可选)
Tel string `json:"tel,omitempty"` // 手机号(可选)
Status int8 `json:"status,omitempty"` // 账户状态(可选)
Account string `json:"account,omitempty"` // 账户(可选)
Password string `json:"password,omitempty"` // 密码(可选,前端加密传输)
Balance float64 `json:"balance,omitempty"` // 账户余额(可选)
Free float64 `json:"free,omitempty"` // 赠送余额(可选)
Bond float64 `json:"bond,omitempty"` // 保证金(可选)
CardHolder string `json:"card_holder,omitempty"` // 开户人(可选)
Bank string `json:"bank,omitempty"` // 开户行(可选)
CardID string `json:"card_id,omitempty"` // 银行帐号(可选)
TaxID string `json:"tax_id,omitempty"` // 税号(可选)
Products []ProductDiscount `json:"products"` // 关联产品及折扣信息
}
// DeleteCooperativeReq 删除合作商请求
type DeleteCooperativeReq struct {
CooperativeNumber string `form:"cooperative_number,required"` // 合作商编号
}
// CooperativeDetailReq 查询合作商详情请求参数
type CooperativeDetailReq struct {
CooperativeID uint64 `json:"cooperative_id" binding:"required"` // 合作商ID
}
// CooperativeDetailResp 查询合作商详情响应参数
type CooperativeDetailResp struct {
CooperativeNumber string `json:"cooperative_number"` // 合作商编号
CooperativeName string `json:"cooperative_name"` // 合作商名称
Contact string `json:"contact"` // 联系人
Tel string `json:"tel"` // 手机号
Status int8 `json:"status"` // 账户状态1启用 0禁用
Account string `json:"account"` // 账户
Balance float64 `json:"balance"` // 账户余额
Free float64 `json:"free"` // 赠送余额
Bond float64 `json:"bond"` // 保证金
Products []ProductDetail `json:"products"` // 产品信息
}
// ProductDetail 产品信息
type ProductDetail struct {
ProductCode string `json:"product_code"` // 产品编码
ProductName string `json:"product_name"` // 产品名称
Discount float64 `json:"discount"` // 折扣0-1
}

View File

@ -31,14 +31,17 @@ type ProductListReq struct {
ProductType uint8 `json:"product_type,omitempty"` // 产品类型1-短信 2-话费 3-流量(可选)
Platform uint8 `json:"platform,omitempty"` // 运营商1-移动 2-联通 3-电信(可选)
Province string `json:"province,omitempty"` // 省份(可选)
City string `json:"city,omitempty"` // 城市(可选)
Page int `json:"page"` // 页码
PageSize int `json:"page_size"` // 每页大小
}
// ProductListResp 查询产品列表 - 出参
type ProductListResp struct {
Total int `json:"total"` // 总记录数
List []BusProduct `json:"list"` // 产品列表
List []BusProduct `json:"list"` // 产品列表
Total int `json:"total"` // 总记录数
Page int `json:"page"` // 页码
PageSize int `json:"page_size"` // 每页大小
}
// CreateProductReq 新建产品 - 入参

View File

@ -0,0 +1,22 @@
package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/admin/apis/bus_apis"
"go-admin/common/middleware"
)
// 需认证的路由代码
func registerCooperativeManageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
api := bus_apis.CooperativeApi{}
product := v1.Group("/cooperative").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
{
product.POST("/list", api.CooperativeList) // 合作商列表
product.POST("/detail", api.CooperativeDetail) // 合作商详情
product.POST("/create", api.CreateCooperative) // 创建合作商
product.POST("/edit", api.EditCooperative) // 编辑合作商
product.POST("/delete", api.DeleteCooperative) // 删除合作商
}
}

View File

@ -41,4 +41,7 @@ func businessCheckRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddle
// 产品管理
registerProductManageRouter(v1, authMiddleware)
// 合作商管理
registerCooperativeManageRouter(v1, authMiddleware)
}

View File

@ -0,0 +1,329 @@
package bus_service
import (
"context"
"errors"
"fmt"
"github.com/go-admin-team/go-admin-core/sdk/service"
"go-admin/app/admin/models/bus_models"
"go-admin/common/global"
"gorm.io/gorm"
"math/rand"
"time"
)
type CooperativeService struct {
service.Service
}
// GetCooperativeList 获取合作商列表
func (e *CooperativeService) GetCooperativeList(ctx context.Context, req bus_models.CooperativeListReq) (
bus_models.CooperativeListResp, error) {
var cooperativeList []bus_models.BusCooperative
var resp bus_models.CooperativeListResp
page := req.Page - 1
if page < 0 {
page = 0
}
if req.PageSize == 0 {
req.PageSize = 10
}
// 构建查询条件,假设我们支持根据 product_code 查询
db := e.Orm.WithContext(ctx)
// 如果需要支持分页,可以根据请求条件调整查询
if req.CooperativeNumber != "" {
db = db.Where("cooperative_number = ?", req.CooperativeNumber)
}
if req.CooperativeName != "" {
db = db.Where("cooperative_name LIKE ?", "%"+req.CooperativeName+"%")
}
if req.Status != 0 {
db = db.Where("status = ?", req.Status)
}
// 查询数据库
if err := db.Offset(page * req.Page).Limit(req.PageSize).Find(&cooperativeList).Error; err != nil {
return resp, errors.New("查询合作商列表失败")
}
resp.List = cooperativeList
resp.Total = len(cooperativeList)
resp.Page = page + 1
resp.PageSize = req.PageSize
return resp, nil
}
// CreateCooperative 新建合作商(使用事务)
func (e *CooperativeService) CreateCooperative(req bus_models.CreateCooperativeReq) (bus_models.CreateCooperativeResp, error) {
var resp bus_models.CreateCooperativeResp
// 开启事务
tx := e.Orm.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
}
}()
// 创建合作商
cooperative := bus_models.BusCooperative{
CooperativeName: req.CooperativeName,
Contact: req.Contact,
Tel: req.Tel,
Status: global.CooperativeStatusOnUse,
Account: req.Account,
Password: req.Password,
Balance: req.Balance,
Free: req.Free,
Bond: req.Bond,
CardHolder: req.CardHolder,
Bank: req.Bank,
CardID: req.CardID,
TaxID: req.TaxID,
}
var err error
cooperative.CooperativeNumber, err = GenerateCooperativeNumber(e.Orm)
if err != nil {
return resp, err
}
if err := tx.Create(&cooperative).Error; err != nil {
tx.Rollback()
return resp, errors.New("创建合作商失败")
}
// 插入合作商产品信息
var cooperativeProducts []bus_models.BusCooperativeProduct
for _, product := range req.Products {
cooperativeProducts = append(cooperativeProducts, bus_models.BusCooperativeProduct{
CooperativeID: cooperative.ID,
ProductID: product.ProductID,
Discount: product.Discount,
})
}
if len(cooperativeProducts) > 0 {
if err := tx.Create(&cooperativeProducts).Error; err != nil {
tx.Rollback()
return resp, errors.New("创建合作商产品失败")
}
}
// 提交事务
if err := tx.Commit().Error; err != nil {
return resp, errors.New("提交事务失败")
}
resp.CooperativeNumber = cooperative.CooperativeNumber
return resp, nil
}
func (e *CooperativeService) EditCooperative(req bus_models.EditCooperativeReq) error {
// 开启事务
tx := e.Orm.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
}
}()
// 查找合作商
var cooperative bus_models.BusCooperative
if err := tx.Where("cooperative_number = ?", req.CooperativeNumber).First(&cooperative).Error; err != nil {
tx.Rollback()
return errors.New("合作商不存在")
}
// 更新合作商信息
updateData := map[string]interface{}{
"cooperative_name": req.CooperativeName,
"contact": req.Contact,
"tel": req.Tel,
"status": req.Status,
"account": req.Account,
"balance": req.Balance,
"free": req.Free,
"bond": req.Bond,
"card_holder": req.CardHolder,
"bank": req.Bank,
"card_id": req.CardID,
"tax_id": req.TaxID,
}
if req.Password != "" {
updateData["password"] = req.Password
}
if err := tx.Model(&bus_models.BusCooperative{}).Where("cooperative_number = ?", req.CooperativeNumber).
Updates(updateData).Error; err != nil {
tx.Rollback()
return errors.New("更新合作商信息失败")
}
// 获取数据库中的旧产品数据
var existingProducts []bus_models.BusCooperativeProduct
tx.Where("cooperative_id = ?", cooperative.ID).Find(&existingProducts)
// 旧数据转换为 map (ProductID => Discount)
existingMap := make(map[uint64]float64)
for _, p := range existingProducts {
existingMap[p.ProductID] = p.Discount
}
// 计算需要更新、删除、插入的数据
newProductMap := make(map[uint64]float64) // (ProductID => Discount)
var newProducts []bus_models.BusCooperativeProduct
for _, product := range req.Products {
newProductMap[product.ProductID] = product.Discount
// 如果是新产品,或者折扣变化,则需要插入/更新
if discount, exists := existingMap[product.ProductID]; !exists || discount != product.Discount {
newProducts = append(newProducts, bus_models.BusCooperativeProduct{
CooperativeID: cooperative.ID,
ProductID: product.ProductID,
Discount: product.Discount,
})
}
}
// 删除不存在于新数据中的旧产品
var productIDsToDelete []uint64
for oldProductID := range existingMap {
if _, exists := newProductMap[oldProductID]; !exists {
productIDsToDelete = append(productIDsToDelete, oldProductID)
}
}
if len(productIDsToDelete) > 0 {
tx.Where("cooperative_id = ? AND product_id IN ?", cooperative.ID, productIDsToDelete).Delete(&bus_models.BusCooperativeProduct{})
}
// 插入新的或有折扣变化的产品
if len(newProducts) > 0 {
if err := tx.Create(&newProducts).Error; err != nil {
tx.Rollback()
return errors.New("添加/更新合作商产品信息失败")
}
}
// 提交事务
if err := tx.Commit().Error; err != nil {
return errors.New("提交事务失败")
}
return nil
}
// DeleteCooperative 删除合作商
func (e *CooperativeService) DeleteCooperative(req bus_models.DeleteCooperativeReq) error {
// 执行删除操作
if err := e.Orm.Where("cooperative_number = ?", req.CooperativeNumber).
Delete(&bus_models.BusCooperative{}).Error; err != nil {
return errors.New("删除产品失败")
}
return nil
}
// GetCooperativeDetail 获取合作商详细信息,包括产品信息
func (e *CooperativeService) GetCooperativeDetail(ctx context.Context, req bus_models.CooperativeDetailReq) (
bus_models.CooperativeDetailResp, error) {
var resp bus_models.CooperativeDetailResp
var cooperative bus_models.BusCooperative
// 查询合作商基本信息
db := e.Orm.WithContext(ctx).Where("id = ?", req.CooperativeID)
if err := db.First(&cooperative).Error; err != nil {
return resp, errors.New("查询合作商详情失败")
}
// 查询该合作商的产品信息
var cooperativeProducts []bus_models.BusCooperativeProduct
err := e.Orm.WithContext(ctx).
Where("cooperative_id = ?", req.CooperativeID).
Find(&cooperativeProducts).Error
if err != nil {
return resp, errors.New("查询合作商产品信息失败")
}
// 根据产品ID查询产品名称和编码
var productIDs []uint64
for _, cp := range cooperativeProducts {
productIDs = append(productIDs, cp.ProductID)
}
// 查询产品详细信息
var products []bus_models.BusProduct
if len(productIDs) > 0 {
err = e.Orm.WithContext(ctx).
Where("id IN (?)", productIDs).
Find(&products).Error
if err != nil {
return resp, errors.New("查询产品信息失败")
}
}
// 将产品信息填充到响应中
var productDetails []bus_models.ProductDetail
for _, cp := range cooperativeProducts {
// 查找对应产品
for _, p := range products {
if p.ID == cp.ProductID { // 确保ID匹配
productDetails = append(productDetails, bus_models.ProductDetail{
ProductCode: p.ProductCode,
ProductName: p.ProductName,
Discount: cp.Discount,
})
break
}
}
}
// 填充合作商信息
resp.CooperativeNumber = cooperative.CooperativeNumber
resp.CooperativeName = cooperative.CooperativeName
resp.Contact = cooperative.Contact
resp.Tel = cooperative.Tel
resp.Status = cooperative.Status
resp.Account = cooperative.Account
resp.Balance = cooperative.Balance
resp.Free = cooperative.Free
resp.Bond = cooperative.Bond
resp.Products = productDetails
return resp, nil
}
// GenerateCooperativeNumber 生成唯一的合作商编号,日期 + 10位随机数
func GenerateCooperativeNumber(db *gorm.DB) (string, error) {
// 获取当前日期(年月日)
dateStr := time.Now().Format("20060102") // 格式为YYYYMMDD
// 生成一个10位随机数
rand.Seed(time.Now().UnixNano()) // 设置随机数种子
randomNum := rand.Int63n(10000000000) // 生成一个0到9999999999之间的随机数
// 将随机数转为固定长度的字符串确保10位
randomNumStr := fmt.Sprintf("%010d", randomNum) // 确保为10位不足补零
// 拼接日期和随机数
cooperativeNumber := fmt.Sprintf("%s%s", dateStr, randomNumStr)
// 检查生成的合作商编号是否已存在
var count int64
err := db.Model(&bus_models.BusCooperative{}).Where("cooperative_number = ?", cooperativeNumber).Count(&count).Error
if err != nil {
return "", err
}
// 如果已存在,重新生成
if count > 0 {
return GenerateCooperativeNumber(db) // 递归重新生成
}
return cooperativeNumber, nil
}

View File

@ -15,6 +15,13 @@ type ProductService struct {
func (e *ProductService) GetProductList(ctx context.Context, req bus_models.ProductListReq) (bus_models.ProductListResp, error) {
var products []bus_models.BusProduct
var resp bus_models.ProductListResp
page := req.Page - 1
if page < 0 {
page = 0
}
if req.PageSize == 0 {
req.PageSize = 10
}
// 构建查询条件,假设我们支持根据 product_code 查询
db := e.Orm.WithContext(ctx)
@ -29,14 +36,25 @@ func (e *ProductService) GetProductList(ctx context.Context, req bus_models.Prod
if req.ProductType != 0 {
db = db.Where("product_type = ?", req.ProductType)
}
if req.Province != "" {
db = db.Where("province = ?", req.Province)
}
if req.City != "" {
db = db.Where("city = ?", req.City)
}
if req.Platform != 0 {
db = db.Where("platform = ?", req.Platform)
}
// 查询数据库
if err := db.Find(&products).Error; err != nil {
if err := db.Offset(page * req.Page).Limit(req.PageSize).Find(&products).Error; err != nil {
return resp, errors.New("查询产品列表失败")
}
resp.List = products
resp.Total = len(products)
resp.Page = page + 1
resp.PageSize = req.PageSize
return resp, nil
}
@ -46,14 +64,19 @@ func (e *ProductService) CreateProduct(req bus_models.CreateProductReq) (bus_mod
var resp bus_models.CreateProductResp
product := bus_models.BusProduct{
ProductCode: req.ProductCode,
ServiceCode: req.ServiceCode,
ProductName: req.ProductName,
ProductAttr: req.ProductAttr,
ProductType: req.ProductType,
Platform: req.Platform,
Type: req.Type,
Size: req.Size,
Price: req.Price,
Discount: req.Discount,
RetailPrice: req.RetailPrice,
Description: req.Description,
Province: req.Province,
City: req.City,
Platform: req.Platform,
}
// 将产品插入数据库
@ -71,14 +94,19 @@ func (e *ProductService) CreateProduct(req bus_models.CreateProductReq) (bus_mod
func (e *ProductService) EditProduct(req bus_models.EditProductReq) error {
product := bus_models.BusProduct{
ProductCode: req.ProductCode,
ServiceCode: req.ServiceCode,
ProductName: req.ProductName,
ProductAttr: req.ProductAttr,
ProductType: req.ProductType,
Platform: req.Platform,
Type: req.Type,
Size: req.Size,
Price: req.Price,
Discount: req.Discount,
RetailPrice: req.RetailPrice,
Description: req.Description,
Province: req.Province,
City: req.City,
Platform: req.Platform,
}
// 更新产品信息

View File

@ -0,0 +1,5 @@
package global
const (
CooperativeStatusOnUse = 1 // 合作商状态-启用
)

View File

@ -86,6 +86,171 @@ const docTemplateadmin = `{
}
}
},
"/api/v1/cooperative/create": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "新建合作商",
"parameters": [
{
"description": "新建合作商模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.CreateCooperativeReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bus_models.CreateCooperativeResp"
}
}
}
}
},
"/api/v1/cooperative/delete": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "删除合作商",
"parameters": [
{
"description": "删除合作商模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.DeleteCooperativeReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/cooperative/detail": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "查询合作商详情",
"parameters": [
{
"description": "查询合作商详情请求参数",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.CooperativeDetailReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bus_models.CooperativeDetailResp"
}
}
}
}
},
"/api/v1/cooperative/edit": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "编辑合作商",
"parameters": [
{
"description": "编辑合作商模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.EditCooperativeReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/cooperative/list": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "查询合作商列表",
"parameters": [
{
"description": "查询合作商列表模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.CooperativeListReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bus_models.CooperativeListResp"
}
}
}
}
},
"/api/v1/db/columns/page": {
"get": {
"description": "数据库表列分页列表 / database table column page list",
@ -2942,6 +3107,115 @@ const docTemplateadmin = `{
}
}
},
"bus_models.BusCooperative": {
"type": "object",
"properties": {
"account": {
"description": "账户",
"type": "string"
},
"balance": {
"description": "账户余额",
"type": "number"
},
"bank": {
"description": "开户行",
"type": "string"
},
"bond": {
"description": "保证金",
"type": "number"
},
"card_holder": {
"description": "开户人",
"type": "string"
},
"card_id": {
"description": "银行帐号",
"type": "string"
},
"contact": {
"description": "联系人",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号",
"type": "string"
},
"createdAt": {
"description": "创建时间",
"type": "string"
},
"free": {
"description": "赠送余额",
"type": "number"
},
"id": {
"description": "数据库记录编号",
"type": "integer"
},
"password": {
"description": "密码(建议存储加密哈希值)",
"type": "string"
},
"products": {
"description": "产品信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.BusCooperativeProduct"
}
},
"status": {
"description": "账户状态1启用 0禁用",
"type": "integer"
},
"tax_id": {
"description": "税号",
"type": "string"
},
"tel": {
"description": "手机号",
"type": "string"
},
"updatedAt": {
"description": "更新时间",
"type": "string"
}
}
},
"bus_models.BusCooperativeProduct": {
"type": "object",
"properties": {
"cooperative_id": {
"description": "合作商编号",
"type": "integer"
},
"createdAt": {
"description": "创建时间",
"type": "string"
},
"discount": {
"description": "折扣0-1",
"type": "number"
},
"id": {
"description": "数据库记录编号",
"type": "integer"
},
"product_id": {
"description": "产品ID",
"type": "integer"
},
"updatedAt": {
"description": "更新时间",
"type": "string"
}
}
},
"bus_models.BusProduct": {
"type": "object",
"properties": {
@ -3015,6 +3289,198 @@ const docTemplateadmin = `{
}
}
},
"bus_models.CooperativeDetailReq": {
"type": "object",
"required": [
"cooperative_id"
],
"properties": {
"cooperative_id": {
"description": "合作商ID",
"type": "integer"
}
}
},
"bus_models.CooperativeDetailResp": {
"type": "object",
"properties": {
"account": {
"description": "账户",
"type": "string"
},
"balance": {
"description": "账户余额",
"type": "number"
},
"bond": {
"description": "保证金",
"type": "number"
},
"contact": {
"description": "联系人",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号",
"type": "string"
},
"free": {
"description": "赠送余额",
"type": "number"
},
"products": {
"description": "产品信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.ProductDetail"
}
},
"status": {
"description": "账户状态1启用 0禁用",
"type": "integer"
},
"tel": {
"description": "手机号",
"type": "string"
}
}
},
"bus_models.CooperativeListReq": {
"type": "object",
"required": [
"page",
"page_size"
],
"properties": {
"cooperative_name": {
"description": "合作商名称(支持模糊查询)",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号(可选)",
"type": "string"
},
"page": {
"description": "页码",
"type": "integer",
"minimum": 1
},
"page_size": {
"description": "每页条数",
"type": "integer",
"maximum": 100,
"minimum": 1
},
"status": {
"description": "账户状态1启用 0禁用",
"type": "integer"
}
}
},
"bus_models.CooperativeListResp": {
"type": "object",
"properties": {
"list": {
"description": "合作商列表",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.BusCooperative"
}
},
"page": {
"description": "页码",
"type": "integer"
},
"page_size": {
"description": "每页大小",
"type": "integer"
},
"total": {
"description": "总记录数",
"type": "integer"
}
}
},
"bus_models.CreateCooperativeReq": {
"type": "object",
"required": [
"account",
"contact",
"cooperative_name",
"password",
"tel"
],
"properties": {
"account": {
"description": "账户",
"type": "string"
},
"balance": {
"description": "账户余额(可选)",
"type": "number"
},
"bank": {
"description": "开户行(可选)",
"type": "string"
},
"bond": {
"description": "保证金(可选)",
"type": "number"
},
"card_holder": {
"description": "开户人(可选)",
"type": "string"
},
"card_id": {
"description": "银行帐号(可选)",
"type": "string"
},
"contact": {
"description": "联系人",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称",
"type": "string"
},
"free": {
"description": "赠送余额(可选)",
"type": "number"
},
"password": {
"description": "密码(前端传输时应加密)",
"type": "string"
},
"products": {
"description": "关联产品及折扣信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.ProductDiscount"
}
},
"tax_id": {
"description": "税号(可选)",
"type": "string"
},
"tel": {
"description": "手机号",
"type": "string"
}
}
},
"bus_models.CreateCooperativeResp": {
"type": "object",
"properties": {
"cooperative_number": {
"description": "合作商编号",
"type": "string"
}
}
},
"bus_models.CreateProductReq": {
"type": "object",
"required": [
@ -3093,6 +3559,15 @@ const docTemplateadmin = `{
}
}
},
"bus_models.DeleteCooperativeReq": {
"type": "object",
"properties": {
"cooperative_number": {
"description": "合作商编号",
"type": "string"
}
}
},
"bus_models.DeleteProductReq": {
"type": "object",
"required": [
@ -3105,6 +3580,74 @@ const docTemplateadmin = `{
}
}
},
"bus_models.EditCooperativeReq": {
"type": "object",
"properties": {
"account": {
"description": "账户(可选)",
"type": "string"
},
"balance": {
"description": "账户余额(可选)",
"type": "number"
},
"bank": {
"description": "开户行(可选)",
"type": "string"
},
"bond": {
"description": "保证金(可选)",
"type": "number"
},
"card_holder": {
"description": "开户人(可选)",
"type": "string"
},
"card_id": {
"description": "银行帐号(可选)",
"type": "string"
},
"contact": {
"description": "联系人(可选)",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称(可选)",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号",
"type": "string"
},
"free": {
"description": "赠送余额(可选)",
"type": "number"
},
"password": {
"description": "密码(可选,前端加密传输)",
"type": "string"
},
"products": {
"description": "关联产品及折扣信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.ProductDiscount"
}
},
"status": {
"description": "账户状态(可选)",
"type": "integer"
},
"tax_id": {
"description": "税号(可选)",
"type": "string"
},
"tel": {
"description": "手机号(可选)",
"type": "string"
}
}
},
"bus_models.EditProductReq": {
"type": "object",
"required": [
@ -3175,9 +3718,47 @@ const docTemplateadmin = `{
}
}
},
"bus_models.ProductDetail": {
"type": "object",
"properties": {
"discount": {
"description": "折扣0-1",
"type": "number"
},
"product_code": {
"description": "产品编码",
"type": "string"
},
"product_name": {
"description": "产品名称",
"type": "string"
}
}
},
"bus_models.ProductDiscount": {
"type": "object",
"required": [
"discount",
"product_id"
],
"properties": {
"discount": {
"description": "折扣0-1之间",
"type": "number"
},
"product_id": {
"description": "产品ID",
"type": "integer"
}
}
},
"bus_models.ProductListReq": {
"type": "object",
"properties": {
"city": {
"description": "城市(可选)",
"type": "string"
},
"page": {
"description": "页码",
"type": "integer"
@ -3218,6 +3799,14 @@ const docTemplateadmin = `{
"$ref": "#/definitions/bus_models.BusProduct"
}
},
"page": {
"description": "页码",
"type": "integer"
},
"page_size": {
"description": "每页大小",
"type": "integer"
},
"total": {
"description": "总记录数",
"type": "integer"

View File

@ -78,6 +78,171 @@
}
}
},
"/api/v1/cooperative/create": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "新建合作商",
"parameters": [
{
"description": "新建合作商模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.CreateCooperativeReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bus_models.CreateCooperativeResp"
}
}
}
}
},
"/api/v1/cooperative/delete": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "删除合作商",
"parameters": [
{
"description": "删除合作商模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.DeleteCooperativeReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/cooperative/detail": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "查询合作商详情",
"parameters": [
{
"description": "查询合作商详情请求参数",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.CooperativeDetailReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bus_models.CooperativeDetailResp"
}
}
}
}
},
"/api/v1/cooperative/edit": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "编辑合作商",
"parameters": [
{
"description": "编辑合作商模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.EditCooperativeReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/app.Response"
}
}
}
}
},
"/api/v1/cooperative/list": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"合作商管理-V1.0.0"
],
"summary": "查询合作商列表",
"parameters": [
{
"description": "查询合作商列表模型",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/bus_models.CooperativeListReq"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/bus_models.CooperativeListResp"
}
}
}
}
},
"/api/v1/db/columns/page": {
"get": {
"description": "数据库表列分页列表 / database table column page list",
@ -2934,6 +3099,115 @@
}
}
},
"bus_models.BusCooperative": {
"type": "object",
"properties": {
"account": {
"description": "账户",
"type": "string"
},
"balance": {
"description": "账户余额",
"type": "number"
},
"bank": {
"description": "开户行",
"type": "string"
},
"bond": {
"description": "保证金",
"type": "number"
},
"card_holder": {
"description": "开户人",
"type": "string"
},
"card_id": {
"description": "银行帐号",
"type": "string"
},
"contact": {
"description": "联系人",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号",
"type": "string"
},
"createdAt": {
"description": "创建时间",
"type": "string"
},
"free": {
"description": "赠送余额",
"type": "number"
},
"id": {
"description": "数据库记录编号",
"type": "integer"
},
"password": {
"description": "密码(建议存储加密哈希值)",
"type": "string"
},
"products": {
"description": "产品信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.BusCooperativeProduct"
}
},
"status": {
"description": "账户状态1启用 0禁用",
"type": "integer"
},
"tax_id": {
"description": "税号",
"type": "string"
},
"tel": {
"description": "手机号",
"type": "string"
},
"updatedAt": {
"description": "更新时间",
"type": "string"
}
}
},
"bus_models.BusCooperativeProduct": {
"type": "object",
"properties": {
"cooperative_id": {
"description": "合作商编号",
"type": "integer"
},
"createdAt": {
"description": "创建时间",
"type": "string"
},
"discount": {
"description": "折扣0-1",
"type": "number"
},
"id": {
"description": "数据库记录编号",
"type": "integer"
},
"product_id": {
"description": "产品ID",
"type": "integer"
},
"updatedAt": {
"description": "更新时间",
"type": "string"
}
}
},
"bus_models.BusProduct": {
"type": "object",
"properties": {
@ -3007,6 +3281,198 @@
}
}
},
"bus_models.CooperativeDetailReq": {
"type": "object",
"required": [
"cooperative_id"
],
"properties": {
"cooperative_id": {
"description": "合作商ID",
"type": "integer"
}
}
},
"bus_models.CooperativeDetailResp": {
"type": "object",
"properties": {
"account": {
"description": "账户",
"type": "string"
},
"balance": {
"description": "账户余额",
"type": "number"
},
"bond": {
"description": "保证金",
"type": "number"
},
"contact": {
"description": "联系人",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号",
"type": "string"
},
"free": {
"description": "赠送余额",
"type": "number"
},
"products": {
"description": "产品信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.ProductDetail"
}
},
"status": {
"description": "账户状态1启用 0禁用",
"type": "integer"
},
"tel": {
"description": "手机号",
"type": "string"
}
}
},
"bus_models.CooperativeListReq": {
"type": "object",
"required": [
"page",
"page_size"
],
"properties": {
"cooperative_name": {
"description": "合作商名称(支持模糊查询)",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号(可选)",
"type": "string"
},
"page": {
"description": "页码",
"type": "integer",
"minimum": 1
},
"page_size": {
"description": "每页条数",
"type": "integer",
"maximum": 100,
"minimum": 1
},
"status": {
"description": "账户状态1启用 0禁用",
"type": "integer"
}
}
},
"bus_models.CooperativeListResp": {
"type": "object",
"properties": {
"list": {
"description": "合作商列表",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.BusCooperative"
}
},
"page": {
"description": "页码",
"type": "integer"
},
"page_size": {
"description": "每页大小",
"type": "integer"
},
"total": {
"description": "总记录数",
"type": "integer"
}
}
},
"bus_models.CreateCooperativeReq": {
"type": "object",
"required": [
"account",
"contact",
"cooperative_name",
"password",
"tel"
],
"properties": {
"account": {
"description": "账户",
"type": "string"
},
"balance": {
"description": "账户余额(可选)",
"type": "number"
},
"bank": {
"description": "开户行(可选)",
"type": "string"
},
"bond": {
"description": "保证金(可选)",
"type": "number"
},
"card_holder": {
"description": "开户人(可选)",
"type": "string"
},
"card_id": {
"description": "银行帐号(可选)",
"type": "string"
},
"contact": {
"description": "联系人",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称",
"type": "string"
},
"free": {
"description": "赠送余额(可选)",
"type": "number"
},
"password": {
"description": "密码(前端传输时应加密)",
"type": "string"
},
"products": {
"description": "关联产品及折扣信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.ProductDiscount"
}
},
"tax_id": {
"description": "税号(可选)",
"type": "string"
},
"tel": {
"description": "手机号",
"type": "string"
}
}
},
"bus_models.CreateCooperativeResp": {
"type": "object",
"properties": {
"cooperative_number": {
"description": "合作商编号",
"type": "string"
}
}
},
"bus_models.CreateProductReq": {
"type": "object",
"required": [
@ -3085,6 +3551,15 @@
}
}
},
"bus_models.DeleteCooperativeReq": {
"type": "object",
"properties": {
"cooperative_number": {
"description": "合作商编号",
"type": "string"
}
}
},
"bus_models.DeleteProductReq": {
"type": "object",
"required": [
@ -3097,6 +3572,74 @@
}
}
},
"bus_models.EditCooperativeReq": {
"type": "object",
"properties": {
"account": {
"description": "账户(可选)",
"type": "string"
},
"balance": {
"description": "账户余额(可选)",
"type": "number"
},
"bank": {
"description": "开户行(可选)",
"type": "string"
},
"bond": {
"description": "保证金(可选)",
"type": "number"
},
"card_holder": {
"description": "开户人(可选)",
"type": "string"
},
"card_id": {
"description": "银行帐号(可选)",
"type": "string"
},
"contact": {
"description": "联系人(可选)",
"type": "string"
},
"cooperative_name": {
"description": "合作商名称(可选)",
"type": "string"
},
"cooperative_number": {
"description": "合作商编号",
"type": "string"
},
"free": {
"description": "赠送余额(可选)",
"type": "number"
},
"password": {
"description": "密码(可选,前端加密传输)",
"type": "string"
},
"products": {
"description": "关联产品及折扣信息",
"type": "array",
"items": {
"$ref": "#/definitions/bus_models.ProductDiscount"
}
},
"status": {
"description": "账户状态(可选)",
"type": "integer"
},
"tax_id": {
"description": "税号(可选)",
"type": "string"
},
"tel": {
"description": "手机号(可选)",
"type": "string"
}
}
},
"bus_models.EditProductReq": {
"type": "object",
"required": [
@ -3167,9 +3710,47 @@
}
}
},
"bus_models.ProductDetail": {
"type": "object",
"properties": {
"discount": {
"description": "折扣0-1",
"type": "number"
},
"product_code": {
"description": "产品编码",
"type": "string"
},
"product_name": {
"description": "产品名称",
"type": "string"
}
}
},
"bus_models.ProductDiscount": {
"type": "object",
"required": [
"discount",
"product_id"
],
"properties": {
"discount": {
"description": "折扣0-1之间",
"type": "number"
},
"product_id": {
"description": "产品ID",
"type": "integer"
}
}
},
"bus_models.ProductListReq": {
"type": "object",
"properties": {
"city": {
"description": "城市(可选)",
"type": "string"
},
"page": {
"description": "页码",
"type": "integer"
@ -3210,6 +3791,14 @@
"$ref": "#/definitions/bus_models.BusProduct"
}
},
"page": {
"description": "页码",
"type": "integer"
},
"page_size": {
"description": "每页大小",
"type": "integer"
},
"total": {
"description": "总记录数",
"type": "integer"

View File

@ -14,6 +14,86 @@ definitions:
description: 请求id
type: string
type: object
bus_models.BusCooperative:
properties:
account:
description: 账户
type: string
balance:
description: 账户余额
type: number
bank:
description: 开户行
type: string
bond:
description: 保证金
type: number
card_holder:
description: 开户人
type: string
card_id:
description: 银行帐号
type: string
contact:
description: 联系人
type: string
cooperative_name:
description: 合作商名称
type: string
cooperative_number:
description: 合作商编号
type: string
createdAt:
description: 创建时间
type: string
free:
description: 赠送余额
type: number
id:
description: 数据库记录编号
type: integer
password:
description: 密码(建议存储加密哈希值)
type: string
products:
description: 产品信息
items:
$ref: '#/definitions/bus_models.BusCooperativeProduct'
type: array
status:
description: 账户状态1启用 0禁用
type: integer
tax_id:
description: 税号
type: string
tel:
description: 手机号
type: string
updatedAt:
description: 更新时间
type: string
type: object
bus_models.BusCooperativeProduct:
properties:
cooperative_id:
description: 合作商编号
type: integer
createdAt:
description: 创建时间
type: string
discount:
description: 折扣0-1
type: number
id:
description: 数据库记录编号
type: integer
product_id:
description: 产品ID
type: integer
updatedAt:
description: 更新时间
type: string
type: object
bus_models.BusProduct:
properties:
city:
@ -68,6 +148,146 @@ definitions:
description: 更新时间
type: string
type: object
bus_models.CooperativeDetailReq:
properties:
cooperative_id:
description: 合作商ID
type: integer
required:
- cooperative_id
type: object
bus_models.CooperativeDetailResp:
properties:
account:
description: 账户
type: string
balance:
description: 账户余额
type: number
bond:
description: 保证金
type: number
contact:
description: 联系人
type: string
cooperative_name:
description: 合作商名称
type: string
cooperative_number:
description: 合作商编号
type: string
free:
description: 赠送余额
type: number
products:
description: 产品信息
items:
$ref: '#/definitions/bus_models.ProductDetail'
type: array
status:
description: 账户状态1启用 0禁用
type: integer
tel:
description: 手机号
type: string
type: object
bus_models.CooperativeListReq:
properties:
cooperative_name:
description: 合作商名称(支持模糊查询)
type: string
cooperative_number:
description: 合作商编号(可选)
type: string
page:
description: 页码
minimum: 1
type: integer
page_size:
description: 每页条数
maximum: 100
minimum: 1
type: integer
status:
description: 账户状态1启用 0禁用
type: integer
required:
- page
- page_size
type: object
bus_models.CooperativeListResp:
properties:
list:
description: 合作商列表
items:
$ref: '#/definitions/bus_models.BusCooperative'
type: array
page:
description: 页码
type: integer
page_size:
description: 每页大小
type: integer
total:
description: 总记录数
type: integer
type: object
bus_models.CreateCooperativeReq:
properties:
account:
description: 账户
type: string
balance:
description: 账户余额(可选)
type: number
bank:
description: 开户行(可选)
type: string
bond:
description: 保证金(可选)
type: number
card_holder:
description: 开户人(可选)
type: string
card_id:
description: 银行帐号(可选)
type: string
contact:
description: 联系人
type: string
cooperative_name:
description: 合作商名称
type: string
free:
description: 赠送余额(可选)
type: number
password:
description: 密码(前端传输时应加密)
type: string
products:
description: 关联产品及折扣信息
items:
$ref: '#/definitions/bus_models.ProductDiscount'
type: array
tax_id:
description: 税号(可选)
type: string
tel:
description: 手机号
type: string
required:
- account
- contact
- cooperative_name
- password
- tel
type: object
bus_models.CreateCooperativeResp:
properties:
cooperative_number:
description: 合作商编号
type: string
type: object
bus_models.CreateProductReq:
properties:
city:
@ -126,6 +346,12 @@ definitions:
description: 新创建的产品ID
type: integer
type: object
bus_models.DeleteCooperativeReq:
properties:
cooperative_number:
description: 合作商编号
type: string
type: object
bus_models.DeleteProductReq:
properties:
id:
@ -134,6 +360,56 @@ definitions:
required:
- id
type: object
bus_models.EditCooperativeReq:
properties:
account:
description: 账户(可选)
type: string
balance:
description: 账户余额(可选)
type: number
bank:
description: 开户行(可选)
type: string
bond:
description: 保证金(可选)
type: number
card_holder:
description: 开户人(可选)
type: string
card_id:
description: 银行帐号(可选)
type: string
contact:
description: 联系人(可选)
type: string
cooperative_name:
description: 合作商名称(可选)
type: string
cooperative_number:
description: 合作商编号
type: string
free:
description: 赠送余额(可选)
type: number
password:
description: 密码(可选,前端加密传输)
type: string
products:
description: 关联产品及折扣信息
items:
$ref: '#/definitions/bus_models.ProductDiscount'
type: array
status:
description: 账户状态(可选)
type: integer
tax_id:
description: 税号(可选)
type: string
tel:
description: 手机号(可选)
type: string
type: object
bus_models.EditProductReq:
properties:
city:
@ -186,8 +462,35 @@ definitions:
- product_code
- product_name
type: object
bus_models.ProductDetail:
properties:
discount:
description: 折扣0-1
type: number
product_code:
description: 产品编码
type: string
product_name:
description: 产品名称
type: string
type: object
bus_models.ProductDiscount:
properties:
discount:
description: 折扣0-1之间
type: number
product_id:
description: 产品ID
type: integer
required:
- discount
- product_id
type: object
bus_models.ProductListReq:
properties:
city:
description: 城市(可选)
type: string
page:
description: 页码
type: integer
@ -217,6 +520,12 @@ definitions:
items:
$ref: '#/definitions/bus_models.BusProduct'
type: array
page:
description: 页码
type: integer
page_size:
description: 每页大小
type: integer
total:
description: 总记录数
type: integer
@ -1317,6 +1626,111 @@ paths:
summary: 获取验证码
tags:
- 登陆
/api/v1/cooperative/create:
post:
consumes:
- application/json
parameters:
- description: 新建合作商模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/bus_models.CreateCooperativeReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/bus_models.CreateCooperativeResp'
summary: 新建合作商
tags:
- 合作商管理-V1.0.0
/api/v1/cooperative/delete:
post:
consumes:
- application/json
parameters:
- description: 删除合作商模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/bus_models.DeleteCooperativeReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/app.Response'
summary: 删除合作商
tags:
- 合作商管理-V1.0.0
/api/v1/cooperative/detail:
post:
consumes:
- application/json
parameters:
- description: 查询合作商详情请求参数
in: body
name: request
required: true
schema:
$ref: '#/definitions/bus_models.CooperativeDetailReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/bus_models.CooperativeDetailResp'
summary: 查询合作商详情
tags:
- 合作商管理-V1.0.0
/api/v1/cooperative/edit:
post:
consumes:
- application/json
parameters:
- description: 编辑合作商模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/bus_models.EditCooperativeReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/app.Response'
summary: 编辑合作商
tags:
- 合作商管理-V1.0.0
/api/v1/cooperative/list:
post:
consumes:
- application/json
parameters:
- description: 查询合作商列表模型
in: body
name: request
required: true
schema:
$ref: '#/definitions/bus_models.CooperativeListReq'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/bus_models.CooperativeListResp'
summary: 查询合作商列表
tags:
- 合作商管理-V1.0.0
/api/v1/db/columns/page:
get:
description: 数据库表列分页列表 / database table column page list