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 PlanApi struct{}
|
|
// Add
|
//
|
// @Tags Plan
|
// @Summary 添加计划
|
// @Produce application/json
|
// @Param object body request.AddPlan true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/plan/add [post]
|
func (s *PlanApi) Add(c *gin.Context) {
|
var params request.AddPlan
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
errCode, plan := checkPlanParams(params.Plan)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
errCode = planService.AddPlan(&plan)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
// Delete
|
//
|
// @Tags Plan
|
// @Summary 删除计划
|
// @Produce application/json
|
// @Param id path int true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/plan/delete/{id} [delete]
|
func (s *PlanApi) Delete(c *gin.Context) {
|
ctx, ok := contextx.NewContext(c, nil)
|
if !ok {
|
return
|
}
|
|
id, _ := strconv.Atoi(c.Param("id"))
|
errCode := planService.DeletePlan(id)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
// Update
|
//
|
// @Tags Plan
|
// @Summary 更新计划
|
// @Produce application/json
|
// @Param object body request.UpdatePlan true "查询参数"
|
// @Success 200 {object} contextx.Response{}
|
// @Router /api/plan/update [put]
|
func (s *PlanApi) Update(c *gin.Context) {
|
var params request.UpdatePlan
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
errCode, plan := checkPlanParams(params.Plan)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
plan.Id = params.Id
|
|
errCode = planService.UpdatePlan(&plan)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.Ok()
|
}
|
|
|
func checkPlanParams(plan request.Plan) (errCode int, p model.Plan) {
|
//if plan.Number == "" {
|
// return ecode.InvalidParams, p
|
//}
|
//
|
//if plan.MemberId == 0 {
|
// return ecode.InvalidParams, p
|
//}
|
|
t, err := checkTimeFormat(plan.StartTime)
|
if err != nil {
|
return ecode.InvalidParams, p
|
}
|
|
p.StartTime = t
|
|
t, err = checkTimeFormat(plan.EndTime)
|
if err != nil {
|
return ecode.InvalidParams, p
|
}
|
|
p.EndTime = t
|
|
p.ClientId = plan.ClientId
|
p.Number = plan.Number
|
p.MemberId = plan.MemberId
|
p.SubOrderId = plan.SubOrderId
|
p.SalesDetailsId = plan.SalesDetailsId
|
p.Content = plan.Content
|
p.File = plan.File
|
|
return ecode.OK, p
|
}
|
|
// List
|
//
|
// @Tags Plan
|
// @Summary 生成计划列表
|
// @Produce application/json
|
// @Param object body request.GetPlanList true "参数"
|
// @Success 200 {object} contextx.Response{data=response.PlanResponse}
|
// @Router /api/plan/list [post]
|
func (con *PlanApi) List(c *gin.Context) {
|
var params request.GetPlanList
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
|
plans, total, errCode := planService.GetPlanList(params.Page, params.PageSize, params.Keyword)
|
if errCode != ecode.OK {
|
ctx.Fail(errCode)
|
return
|
}
|
|
ctx.OkWithDetailed(response.PlanResponse{
|
List: plans,
|
Count: int(total),
|
})
|
}
|