package v1
|
|
import (
|
"aps_crm/model"
|
"aps_crm/model/request"
|
"aps_crm/model/response"
|
"aps_crm/pkg/contextx"
|
"aps_crm/pkg/ecode"
|
"github.com/gin-gonic/gin"
|
"strconv"
|
)
|
|
type QuotationApi struct{}
|
|
// Add
|
//
|
// @Tags Quotation
|
// @Summary 添加报价单
|
// @Produce application/json
|
// @Param object body request.AddQuotation true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/quotation/add [post]
|
func (s *QuotationApi) Add(c *gin.Context) {
|
var params request.AddQuotation
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
errCode, quotation := checkQuotationParams(params.Quotation)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
errCode = quotationService.AddQuotation("ation)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
// Delete
|
//
|
// @Tags Quotation
|
// @Summary 删除报价单
|
// @Produce application/json
|
// @Param id path int true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/quotation/delete/{id} [delete]
|
func (s *QuotationApi) Delete(c *gin.Context) {
|
ctx, ok := contextx.NewContext(c, nil)
|
if !ok {
|
return
|
}
|
|
id, _ := strconv.Atoi(c.Param("id"))
|
errCode := quotationService.DeleteQuotation(id)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
// Update
|
//
|
// @Tags Quotation
|
// @Summary 更新报价单
|
// @Produce application/json
|
// @Param object body request.UpdateQuotation true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/quotation/update [put]
|
func (s *QuotationApi) Update(c *gin.Context) {
|
var params request.UpdateQuotation
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
errCode, quotation := checkQuotationParams(params.Quotation)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
quotation.Id = params.Id
|
|
errCode = quotationService.UpdateQuotation("ation)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
|
// checkQuotationParams
|
func checkQuotationParams(quotation request.Quotation) (int, model.Quotation) {
|
var errCode int
|
var quotationModel model.Quotation
|
|
//if quotation.ClientId == 0 {
|
// errCode = ecode.InvalidParams
|
// return errCode, quotationModel
|
//}
|
//
|
//if quotation.QuotationStatusId == 0 {
|
// errCode = ecode.InvalidParams
|
// return errCode, quotationModel
|
//}
|
//
|
//if quotation.Number == "" {
|
// errCode = ecode.InvalidParams
|
// return errCode, quotationModel
|
//}
|
//
|
//if quotation.MemberId == 0 {
|
// errCode = ecode.InvalidParams
|
// return errCode, quotationModel
|
//}
|
|
t, err := checkTimeFormat(quotation.ValidityDate)
|
if err != nil {
|
errCode = ecode.InvalidParams
|
return errCode, quotationModel
|
}
|
|
quotationModel.ValidityDate = t
|
quotationModel.ClientId = quotation.ClientId
|
quotationModel.QuotationStatusId = quotation.QuotationStatusId
|
quotationModel.Number = quotation.Number
|
quotationModel.MemberId = quotation.MemberId
|
quotationModel.SaleChanceId = quotation.SaleChanceId
|
quotationModel.ContactId = quotation.ContactId
|
quotationModel.Conditions = quotation.Conditions
|
quotationModel.File = quotation.File
|
|
return ecode.OK, quotationModel
|
|
}
|
|
// List
|
//
|
// @Tags Quotation
|
// @Summary 报价单列表
|
// @Produce application/json
|
// @Param object body request.GetQuotationList true "参数"
|
// @Success 200 {object} contextx.Response{data=response.QuotationResponse}
|
// @Router /api/quotation/list [post]
|
func (con *QuotationApi) List(c *gin.Context) {
|
var params request.GetQuotationList
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
quotations, errCode := quotationService.GetQuotationList(params.Page, params.PageSize, params.Keyword)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.OkWithDetailed(response.QuotationResponse{
|
List: quotations,
|
Count: len(quotations),
|
})
|
}
|