liujiandao
2024-03-15 e1c0fe2768d32f79920ceda92383981d4ff12058
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package v1
 
import (
    "aps_crm/constvar"
    "aps_crm/model/request"
    "aps_crm/model/response"
    "aps_crm/pkg/contextx"
    "aps_crm/pkg/ecode"
    "aps_crm/service"
    "github.com/gin-gonic/gin"
    "strconv"
)
 
type ServiceCollectionPlanApi struct{}
 
// Add
// @Tags        收款计划管理
// @Summary    添加收款计划
// @Produce    application/json
// @Param        object    body        request.AddServiceCollectionPlan    true    "查询参数"
// @Success    200        {object}    contextx.Response{}
// @Router        /api/serviceCollectionPlan/add [post]
func (s *ServiceCollectionPlanApi) Add(c *gin.Context) {
    var params request.AddServiceCollectionPlan
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
 
    for _, plan := range params.List {
        if plan.SourceType == 0 ||
            plan.SourceId == 0 ||
            plan.CollectionType == 0 ||
            plan.CollectionDate == "" ||
            plan.Amount.IsZero() ||
            plan.Percent.IsZero() ||
            plan.PrincipalId == 0 {
            ctx.Fail(ecode.ParamsErr)
            return
        }
        plan.AmountTotal = plan.AmountReceivable
        plan.Status = constvar.CollectionStatusUnCollected
    }
 
    errCode := service.NewServiceCollectionPlanService().AddServiceCollectionPlan(params.List)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
 
    ctx.Ok()
}
 
// Delete
// @Tags        收款计划管理
// @Summary    删除收款计划
// @Produce    application/json
// @Param        id    path        int    true    "查询参数"
// @Success    200    {object}    contextx.Response{}
// @Router        /api/serviceCollectionPlan/delete/{id} [delete]
func (s *ServiceCollectionPlanApi) Delete(c *gin.Context) {
    ctx, ok := contextx.NewContext(c, nil)
    if !ok {
        return
    }
 
    id, _ := strconv.Atoi(c.Param("id"))
    errCode := service.NewServiceCollectionPlanService().DeleteServiceCollectionPlan(id)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
 
    ctx.Ok()
}
 
// Update
// @Tags        收款计划管理
// @Summary    更新收款计划
// @Produce    application/json
// @Param        object    body        request.UpdateServiceCollectionPlan    true    "查询参数"
// @Success    200        {object}    contextx.Response{}
// @Router        /api/serviceCollectionPlan/update [put]
func (s *ServiceCollectionPlanApi) Update(c *gin.Context) {
    var params request.UpdateServiceCollectionPlan
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
    if params.Id == 0 {
        ctx.Fail(ecode.ParamsErr)
    }
    params.ServiceCollectionPlan.Id = params.Id
 
    errCode := service.NewServiceCollectionPlanService().UpdateServiceCollectionPlan(&params.ServiceCollectionPlan)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
 
    ctx.Ok()
}
 
// List
// @Tags        收款计划管理
// @Summary    获取收款计划列表
// @Produce    application/json
// @Param        object    body        request.GetServiceCollectionPlanList    true    "参数"
// @Success    200    {object}    response.ListResponse{data=[]model.ServiceCollectionPlan}
// @Router        /api/serviceCollectionPlan/list [post]
func (s *ServiceCollectionPlanApi) List(c *gin.Context) {
    var params request.GetServiceCollectionPlanList
    ctx, ok := contextx.NewContext(c, &params)
    if !ok {
        return
    }
 
    serviceCollectionPlan, total, errCode := service.NewServiceCollectionPlanService().GetServiceCollectionPlanList(params.SourceType, params.SourceId)
    if errCode != ecode.OK {
        ctx.Fail(errCode)
        return
    }
 
    ctx.OkWithDetailed(response.ListResponse{
        Data:  serviceCollectionPlan,
        Count: total,
    })
}