服务单管理故障类别增删改查,服务单管理花费时间增删改查,增加服务方式、花费时间、严重程度、优先级别初始化数据
New file |
| | |
| | | package v1 |
| | | |
| | | import ( |
| | | "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 FaultTypeApi struct{} |
| | | |
| | | // Add |
| | | // @Tags 故障类别管理 |
| | | // @Summary 添加故障类别 |
| | | // @Produce application/json |
| | | // @Param object body request.AddFaultType true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/faultType/add [post] |
| | | func (s *FaultTypeApi) Add(c *gin.Context) { |
| | | var params request.AddFaultType |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewFaultTypeService().AddFaultType(¶ms.FaultType) |
| | | 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/faultType/delete/{id} [delete] |
| | | func (s *FaultTypeApi) Delete(c *gin.Context) { |
| | | ctx, ok := contextx.NewContext(c, nil) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | id, _ := strconv.Atoi(c.Param("id")) |
| | | errCode := service.NewFaultTypeService().DeleteFaultType(id) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // Update |
| | | // @Tags 故障类别管理 |
| | | // @Summary 更新故障类别 |
| | | // @Produce application/json |
| | | // @Param object body request.UpdateFaultType true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/faultType/update [put] |
| | | func (s *FaultTypeApi) Update(c *gin.Context) { |
| | | var params request.UpdateFaultType |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewFaultTypeService().UpdateFaultType(¶ms.FaultType) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // List |
| | | // @Tags 故障类别管理 |
| | | // @Summary 获取故障类别列表 |
| | | // @Produce application/json |
| | | // @Success 200 {object} response.ListResponse{data=[]model.FaultType} |
| | | // @Router /api/faultType/list [get] |
| | | func (s *FaultTypeApi) List(c *gin.Context) { |
| | | ctx, ok := contextx.NewContext(c, nil) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | faultType, total, errCode := service.NewFaultTypeService().GetFaultTypeList() |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.OkWithDetailed(response.ListResponse{ |
| | | Data: faultType, |
| | | Count: total, |
| | | }) |
| | | } |
| | |
| | | "aps_crm/model/response" |
| | | "aps_crm/pkg/contextx" |
| | | "aps_crm/pkg/ecode" |
| | | "aps_crm/pkg/structx" |
| | | "aps_crm/service" |
| | | "github.com/gin-gonic/gin" |
| | | "strconv" |
| | |
| | | } |
| | | |
| | | serviceOrder := new(model.ServiceOrder) |
| | | if err := structx.AssignTo(params, serviceOrder); err != nil { |
| | | ctx.Fail(ecode.ParamsErr) |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewServiceOrderService().AddServiceOrder(serviceOrder) |
| | | if errCode != ecode.OK { |
| | |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewServiceOrderService().UpdateServiceOrder(¶ms.ServiceOrder) |
| | | serviceOrder := new(model.ServiceOrder) |
| | | if err := structx.AssignTo(params, serviceOrder); err != nil { |
| | | ctx.Fail(ecode.ParamsErr) |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewServiceOrderService().UpdateServiceOrder(serviceOrder) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | |
| | | } |
| | | |
| | | ctx.OkWithDetailed(response.ListResponse{ |
| | | Data: serviceOrder, |
| | | Data: serviceOrder, |
| | | Count: total, |
| | | }) |
| | | } |
| | |
| | | package v1 |
| | | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/model/request" |
| | | "aps_crm/model/response" |
| | | "aps_crm/pkg/contextx" |
| | |
| | | return |
| | | } |
| | | |
| | | serviceType := new(model.ServiceType) |
| | | |
| | | errCode := service.NewServiceTypeService().AddServiceType(serviceType) |
| | | errCode := service.NewServiceTypeService().AddServiceType(¶ms.ServiceType) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | |
| | | package v1 |
| | | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/model/request" |
| | | "aps_crm/model/response" |
| | | "aps_crm/pkg/contextx" |
| | |
| | | return |
| | | } |
| | | |
| | | severity := new(model.Severity) |
| | | |
| | | errCode := service.NewSeverityService().AddSeverity(severity) |
| | | errCode := service.NewSeverityService().AddSeverity(¶ms.Severity) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
New file |
| | |
| | | package v1 |
| | | |
| | | import ( |
| | | "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 TimeSpentApi struct{} |
| | | |
| | | // Add |
| | | // @Tags 花费时间管理 |
| | | // @Summary 添加花费时间 |
| | | // @Produce application/json |
| | | // @Param object body request.AddTimeSpent true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/timeSpent/add [post] |
| | | func (s *TimeSpentApi) Add(c *gin.Context) { |
| | | var params request.AddTimeSpent |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewTimeSpentService().AddTimeSpent(¶ms.TimeSpent) |
| | | 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/timeSpent/delete/{id} [delete] |
| | | func (s *TimeSpentApi) Delete(c *gin.Context) { |
| | | ctx, ok := contextx.NewContext(c, nil) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | id, _ := strconv.Atoi(c.Param("id")) |
| | | errCode := service.NewTimeSpentService().DeleteTimeSpent(id) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // Update |
| | | // @Tags 花费时间管理 |
| | | // @Summary 更新花费时间 |
| | | // @Produce application/json |
| | | // @Param object body request.UpdateTimeSpent true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/timeSpent/update [put] |
| | | func (s *TimeSpentApi) Update(c *gin.Context) { |
| | | var params request.UpdateTimeSpent |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | errCode := service.NewTimeSpentService().UpdateTimeSpent(¶ms.TimeSpent) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // List |
| | | // @Tags 花费时间管理 |
| | | // @Summary 获取花费时间列表 |
| | | // @Produce application/json |
| | | // @Success 200 {object} response.ListResponse{data=[]model.TimeSpent} |
| | | // @Router /api/timeSpent/list [get] |
| | | func (s *TimeSpentApi) List(c *gin.Context) { |
| | | ctx, ok := contextx.NewContext(c, nil) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | timeSpent, total, errCode := service.NewTimeSpentService().GetTimeSpentList() |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.OkWithDetailed(response.ListResponse{ |
| | | Data: timeSpent, |
| | | Count: total, |
| | | }) |
| | | } |
New file |
| | |
| | | package constvar |
| | | type FaultTypeQueryClass string |
| | | |
| | | const ( |
| | | FaultTypeQueryClassExpireLessThen60Days FaultTypeQueryClass = "" |
| | | ) |
| | | |
| | | type FaultTypeKeywordType string |
| | | |
| | | const ( |
| | | FaultTypeKeywordCustomerName FaultTypeKeywordType = "" |
| | | ) |
New file |
| | |
| | | package constvar |
| | | type TimeSpentQueryClass string |
| | | |
| | | const ( |
| | | TimeSpentQueryClassExpireLessThen60Days TimeSpentQueryClass = "" |
| | | ) |
| | | |
| | | type TimeSpentKeywordType string |
| | | |
| | | const ( |
| | | TimeSpentKeywordCustomerName TimeSpentKeywordType = "" |
| | | ) |
| | |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/add": { |
| | | "post": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "添加故障类别", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.AddFaultType" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/delete/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "删除故障类别", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "查询参数", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/list": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "获取故障类别列表", |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/response.ListResponse" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/model.FaultType" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/update": { |
| | | "put": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "更新故障类别", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.UpdateFaultType" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/followRecord/add": { |
| | | "post": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/add": { |
| | | "post": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "添加花费时间", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.AddTimeSpent" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/delete/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "删除花费时间", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "查询参数", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/list": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "获取花费时间列表", |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/response.ListResponse" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/model.TimeSpent" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/update": { |
| | | "put": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "更新花费时间", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.UpdateTimeSpent" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timelyRate/add": { |
| | | "post": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "model.FaultType": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "model.FollowRecord": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "clientId": { |
| | | "description": "客户id", |
| | | "type": "integer" |
| | | }, |
| | | "contact": { |
| | | "$ref": "#/definitions/model.Contact" |
| | | }, |
| | | "contact_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "contract": { |
| | | "$ref": "#/definitions/model.Contract" |
| | | }, |
| | | "contract_id": { |
| | | "contractId": { |
| | | "description": "合同id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "linkman_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "order": { |
| | | "$ref": "#/definitions/model.OrderManage" |
| | | }, |
| | | "order_id": { |
| | | "orderId": { |
| | | "description": "销售订单id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "product": { |
| | | "$ref": "#/definitions/model.Product" |
| | | }, |
| | | "product_id": { |
| | | "productId": { |
| | | "description": "产品id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "备注", |
| | | "type": "string" |
| | | }, |
| | | "sale_leads": { |
| | | "saleChance": { |
| | | "$ref": "#/definitions/model.SaleChance" |
| | | }, |
| | | "saleChanceId": { |
| | | "description": "销售机会id", |
| | | "type": "integer" |
| | | }, |
| | | "serviceManId": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "serviceNumber": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "serviceType": { |
| | | "$ref": "#/definitions/model.ServiceType" |
| | | }, |
| | | "service_man_id": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "service_number": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "service_type_id": { |
| | | "serviceTypeId": { |
| | | "description": "服务方式", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "items": { |
| | | "$ref": "#/definitions/model.Product" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "model.TimeSpent": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | }, |
| | | "request.AddFaq": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.AddFaultType": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | |
| | | "description": "收费金额", |
| | | "type": "number" |
| | | }, |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "clientId": { |
| | | "description": "客户id", |
| | | "type": "integer" |
| | | }, |
| | | "contract": { |
| | | "$ref": "#/definitions/model.Contract" |
| | | "contact_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "contract_id": { |
| | | "contractId": { |
| | | "description": "合同id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "希望处理时间", |
| | | "type": "string" |
| | | }, |
| | | "faq": { |
| | | "$ref": "#/definitions/model.Faq" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "linkman_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "order": { |
| | | "$ref": "#/definitions/model.OrderManage" |
| | | }, |
| | | "order_id": { |
| | | "orderId": { |
| | | "description": "销售订单id", |
| | | "type": "integer" |
| | | }, |
| | | "priorityLevel": { |
| | | "$ref": "#/definitions/model.PriorityLevel" |
| | | }, |
| | | "priority_level_id": { |
| | | "description": "优先级别", |
| | |
| | | "description": "常见问题id", |
| | | "type": "integer" |
| | | }, |
| | | "product": { |
| | | "$ref": "#/definitions/model.Product" |
| | | }, |
| | | "product_id": { |
| | | "productId": { |
| | | "description": "产品id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "备注", |
| | | "type": "string" |
| | | }, |
| | | "sale_leads": { |
| | | "saleChanceId": { |
| | | "description": "销售机会id", |
| | | "type": "integer" |
| | | }, |
| | | "serviceType": { |
| | | "$ref": "#/definitions/model.ServiceType" |
| | | }, |
| | | "service_man_id": { |
| | | "serviceManId": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "service_number": { |
| | | "serviceNumber": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "service_type_id": { |
| | | "serviceTypeId": { |
| | | "description": "服务方式", |
| | | "type": "integer" |
| | | }, |
| | | "severity": { |
| | | "$ref": "#/definitions/model.Severity" |
| | | "description": "严重程度", |
| | | "type": "integer" |
| | | }, |
| | | "solution": { |
| | | "description": "解决方法", |
| | |
| | | "items": { |
| | | "$ref": "#/definitions/model.Product" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "request.AddTimeSpent": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateFaultType": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateFollowRecord": { |
| | | "type": "object", |
| | | "required": [ |
| | |
| | | "description": "收费金额", |
| | | "type": "number" |
| | | }, |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "clientId": { |
| | | "description": "客户id", |
| | | "type": "integer" |
| | | }, |
| | | "contract": { |
| | | "$ref": "#/definitions/model.Contract" |
| | | "contact_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "contract_id": { |
| | | "contractId": { |
| | | "description": "合同id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "希望处理时间", |
| | | "type": "string" |
| | | }, |
| | | "faq": { |
| | | "$ref": "#/definitions/model.Faq" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "linkman_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "order": { |
| | | "$ref": "#/definitions/model.OrderManage" |
| | | }, |
| | | "order_id": { |
| | | "orderId": { |
| | | "description": "销售订单id", |
| | | "type": "integer" |
| | | }, |
| | | "priorityLevel": { |
| | | "$ref": "#/definitions/model.PriorityLevel" |
| | | }, |
| | | "priority_level_id": { |
| | | "description": "优先级别", |
| | |
| | | "description": "常见问题id", |
| | | "type": "integer" |
| | | }, |
| | | "product": { |
| | | "$ref": "#/definitions/model.Product" |
| | | }, |
| | | "product_id": { |
| | | "productId": { |
| | | "description": "产品id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "备注", |
| | | "type": "string" |
| | | }, |
| | | "sale_leads": { |
| | | "saleChanceId": { |
| | | "description": "销售机会id", |
| | | "type": "integer" |
| | | }, |
| | | "serviceType": { |
| | | "$ref": "#/definitions/model.ServiceType" |
| | | }, |
| | | "service_man_id": { |
| | | "serviceManId": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "service_number": { |
| | | "serviceNumber": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "service_type_id": { |
| | | "serviceTypeId": { |
| | | "description": "服务方式", |
| | | "type": "integer" |
| | | }, |
| | | "severity": { |
| | | "$ref": "#/definitions/model.Severity" |
| | | "description": "严重程度", |
| | | "type": "integer" |
| | | }, |
| | | "solution": { |
| | | "description": "解决方法", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateTimeSpent": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateTimelyRate": { |
| | | "type": "object", |
| | | "required": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/add": { |
| | | "post": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "添加故障类别", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.AddFaultType" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/delete/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "删除故障类别", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "查询参数", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/list": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "获取故障类别列表", |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/response.ListResponse" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/model.FaultType" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/faultType/update": { |
| | | "put": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "故障类别管理" |
| | | ], |
| | | "summary": "更新故障类别", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.UpdateFaultType" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/followRecord/add": { |
| | | "post": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/add": { |
| | | "post": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "添加花费时间", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.AddTimeSpent" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/delete/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "删除花费时间", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "查询参数", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/list": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "获取花费时间列表", |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/response.ListResponse" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/model.TimeSpent" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timeSpent/update": { |
| | | "put": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "花费时间管理" |
| | | ], |
| | | "summary": "更新花费时间", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.UpdateTimeSpent" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/timelyRate/add": { |
| | | "post": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "model.FaultType": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "model.FollowRecord": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "clientId": { |
| | | "description": "客户id", |
| | | "type": "integer" |
| | | }, |
| | | "contact": { |
| | | "$ref": "#/definitions/model.Contact" |
| | | }, |
| | | "contact_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "contract": { |
| | | "$ref": "#/definitions/model.Contract" |
| | | }, |
| | | "contract_id": { |
| | | "contractId": { |
| | | "description": "合同id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "linkman_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "order": { |
| | | "$ref": "#/definitions/model.OrderManage" |
| | | }, |
| | | "order_id": { |
| | | "orderId": { |
| | | "description": "销售订单id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "product": { |
| | | "$ref": "#/definitions/model.Product" |
| | | }, |
| | | "product_id": { |
| | | "productId": { |
| | | "description": "产品id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "备注", |
| | | "type": "string" |
| | | }, |
| | | "sale_leads": { |
| | | "saleChance": { |
| | | "$ref": "#/definitions/model.SaleChance" |
| | | }, |
| | | "saleChanceId": { |
| | | "description": "销售机会id", |
| | | "type": "integer" |
| | | }, |
| | | "serviceManId": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "serviceNumber": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "serviceType": { |
| | | "$ref": "#/definitions/model.ServiceType" |
| | | }, |
| | | "service_man_id": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "service_number": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "service_type_id": { |
| | | "serviceTypeId": { |
| | | "description": "服务方式", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "items": { |
| | | "$ref": "#/definitions/model.Product" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "model.TimeSpent": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | }, |
| | | "request.AddFaq": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.AddFaultType": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | |
| | | "description": "收费金额", |
| | | "type": "number" |
| | | }, |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "clientId": { |
| | | "description": "客户id", |
| | | "type": "integer" |
| | | }, |
| | | "contract": { |
| | | "$ref": "#/definitions/model.Contract" |
| | | "contact_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "contract_id": { |
| | | "contractId": { |
| | | "description": "合同id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "希望处理时间", |
| | | "type": "string" |
| | | }, |
| | | "faq": { |
| | | "$ref": "#/definitions/model.Faq" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "linkman_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "order": { |
| | | "$ref": "#/definitions/model.OrderManage" |
| | | }, |
| | | "order_id": { |
| | | "orderId": { |
| | | "description": "销售订单id", |
| | | "type": "integer" |
| | | }, |
| | | "priorityLevel": { |
| | | "$ref": "#/definitions/model.PriorityLevel" |
| | | }, |
| | | "priority_level_id": { |
| | | "description": "优先级别", |
| | |
| | | "description": "常见问题id", |
| | | "type": "integer" |
| | | }, |
| | | "product": { |
| | | "$ref": "#/definitions/model.Product" |
| | | }, |
| | | "product_id": { |
| | | "productId": { |
| | | "description": "产品id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "备注", |
| | | "type": "string" |
| | | }, |
| | | "sale_leads": { |
| | | "saleChanceId": { |
| | | "description": "销售机会id", |
| | | "type": "integer" |
| | | }, |
| | | "serviceType": { |
| | | "$ref": "#/definitions/model.ServiceType" |
| | | }, |
| | | "service_man_id": { |
| | | "serviceManId": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "service_number": { |
| | | "serviceNumber": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "service_type_id": { |
| | | "serviceTypeId": { |
| | | "description": "服务方式", |
| | | "type": "integer" |
| | | }, |
| | | "severity": { |
| | | "$ref": "#/definitions/model.Severity" |
| | | "description": "严重程度", |
| | | "type": "integer" |
| | | }, |
| | | "solution": { |
| | | "description": "解决方法", |
| | |
| | | "items": { |
| | | "$ref": "#/definitions/model.Product" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "request.AddTimeSpent": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateFaultType": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateFollowRecord": { |
| | | "type": "object", |
| | | "required": [ |
| | |
| | | "description": "收费金额", |
| | | "type": "number" |
| | | }, |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "clientId": { |
| | | "description": "客户id", |
| | | "type": "integer" |
| | | }, |
| | | "contract": { |
| | | "$ref": "#/definitions/model.Contract" |
| | | "contact_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "contract_id": { |
| | | "contractId": { |
| | | "description": "合同id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "希望处理时间", |
| | | "type": "string" |
| | | }, |
| | | "faq": { |
| | | "$ref": "#/definitions/model.Faq" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "linkman_id": { |
| | | "description": "联系人id", |
| | | "type": "integer" |
| | | }, |
| | | "order": { |
| | | "$ref": "#/definitions/model.OrderManage" |
| | | }, |
| | | "order_id": { |
| | | "orderId": { |
| | | "description": "销售订单id", |
| | | "type": "integer" |
| | | }, |
| | | "priorityLevel": { |
| | | "$ref": "#/definitions/model.PriorityLevel" |
| | | }, |
| | | "priority_level_id": { |
| | | "description": "优先级别", |
| | |
| | | "description": "常见问题id", |
| | | "type": "integer" |
| | | }, |
| | | "product": { |
| | | "$ref": "#/definitions/model.Product" |
| | | }, |
| | | "product_id": { |
| | | "productId": { |
| | | "description": "产品id", |
| | | "type": "integer" |
| | | }, |
| | |
| | | "description": "备注", |
| | | "type": "string" |
| | | }, |
| | | "sale_leads": { |
| | | "saleChanceId": { |
| | | "description": "销售机会id", |
| | | "type": "integer" |
| | | }, |
| | | "serviceType": { |
| | | "$ref": "#/definitions/model.ServiceType" |
| | | }, |
| | | "service_man_id": { |
| | | "serviceManId": { |
| | | "description": "服务人员", |
| | | "type": "integer" |
| | | }, |
| | | "service_number": { |
| | | "serviceNumber": { |
| | | "description": "服务单编号", |
| | | "type": "string" |
| | | }, |
| | | "service_type_id": { |
| | | "serviceTypeId": { |
| | | "description": "服务方式", |
| | | "type": "integer" |
| | | }, |
| | | "severity": { |
| | | "$ref": "#/definitions/model.Severity" |
| | | "description": "严重程度", |
| | | "type": "integer" |
| | | }, |
| | | "solution": { |
| | | "description": "解决方法", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateTimeSpent": { |
| | | "type": "object", |
| | | "properties": { |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateTimelyRate": { |
| | | "type": "object", |
| | | "required": [ |
| | |
| | | name: |
| | | type: string |
| | | type: object |
| | | model.FaultType: |
| | | properties: |
| | | id: |
| | | type: integer |
| | | name: |
| | | type: string |
| | | type: object |
| | | model.FollowRecord: |
| | | properties: |
| | | client: |
| | |
| | | type: number |
| | | client: |
| | | $ref: '#/definitions/model.Client' |
| | | client_id: |
| | | clientId: |
| | | description: 客户id |
| | | type: integer |
| | | contact: |
| | | $ref: '#/definitions/model.Contact' |
| | | contact_id: |
| | | description: 联系人id |
| | | type: integer |
| | | contract: |
| | | $ref: '#/definitions/model.Contract' |
| | | contract_id: |
| | | contractId: |
| | | description: 合同id |
| | | type: integer |
| | | expect_time: |
| | |
| | | $ref: '#/definitions/model.Faq' |
| | | id: |
| | | type: integer |
| | | linkman_id: |
| | | description: 联系人id |
| | | type: integer |
| | | order: |
| | | $ref: '#/definitions/model.OrderManage' |
| | | order_id: |
| | | orderId: |
| | | description: 销售订单id |
| | | type: integer |
| | | priority_level_id: |
| | |
| | | type: integer |
| | | product: |
| | | $ref: '#/definitions/model.Product' |
| | | product_id: |
| | | productId: |
| | | description: 产品id |
| | | type: integer |
| | | real_time: |
| | |
| | | remark: |
| | | description: 备注 |
| | | type: string |
| | | sale_leads: |
| | | saleChance: |
| | | $ref: '#/definitions/model.SaleChance' |
| | | saleChanceId: |
| | | description: 销售机会id |
| | | type: integer |
| | | service_man_id: |
| | | serviceManId: |
| | | description: 服务人员 |
| | | type: integer |
| | | service_number: |
| | | serviceNumber: |
| | | description: 服务单编号 |
| | | type: string |
| | | service_type_id: |
| | | description: 服务方式 |
| | | type: integer |
| | | serviceType: |
| | | $ref: '#/definitions/model.ServiceType' |
| | | serviceTypeId: |
| | | description: 服务方式 |
| | | type: integer |
| | | severity: |
| | | $ref: '#/definitions/model.Severity' |
| | | solution: |
| | |
| | | items: |
| | | $ref: '#/definitions/model.Product' |
| | | type: array |
| | | type: object |
| | | model.TimeSpent: |
| | | properties: |
| | | id: |
| | | type: integer |
| | | name: |
| | | type: string |
| | | type: object |
| | | model.TimelyRate: |
| | | properties: |
| | |
| | | - name |
| | | type: object |
| | | request.AddFaq: |
| | | properties: |
| | | id: |
| | | type: integer |
| | | name: |
| | | type: string |
| | | type: object |
| | | request.AddFaultType: |
| | | properties: |
| | | id: |
| | | type: integer |
| | |
| | | charge_amount: |
| | | description: 收费金额 |
| | | type: number |
| | | client: |
| | | $ref: '#/definitions/model.Client' |
| | | client_id: |
| | | clientId: |
| | | description: 客户id |
| | | type: integer |
| | | contract: |
| | | $ref: '#/definitions/model.Contract' |
| | | contract_id: |
| | | contact_id: |
| | | description: 联系人id |
| | | type: integer |
| | | contractId: |
| | | description: 合同id |
| | | type: integer |
| | | expect_time: |
| | | description: 希望处理时间 |
| | | type: string |
| | | faq: |
| | | $ref: '#/definitions/model.Faq' |
| | | id: |
| | | type: integer |
| | | linkman_id: |
| | | description: 联系人id |
| | | type: integer |
| | | order: |
| | | $ref: '#/definitions/model.OrderManage' |
| | | order_id: |
| | | orderId: |
| | | description: 销售订单id |
| | | type: integer |
| | | priority_level_id: |
| | | description: 优先级别 |
| | | type: integer |
| | | priorityLevel: |
| | | $ref: '#/definitions/model.PriorityLevel' |
| | | problem_desc: |
| | | description: 问题描述 |
| | | type: string |
| | | problem_id: |
| | | description: 常见问题id |
| | | type: integer |
| | | product: |
| | | $ref: '#/definitions/model.Product' |
| | | product_id: |
| | | productId: |
| | | description: 产品id |
| | | type: integer |
| | | real_time: |
| | |
| | | remark: |
| | | description: 备注 |
| | | type: string |
| | | sale_leads: |
| | | saleChanceId: |
| | | description: 销售机会id |
| | | type: integer |
| | | service_man_id: |
| | | serviceManId: |
| | | description: 服务人员 |
| | | type: integer |
| | | service_number: |
| | | serviceNumber: |
| | | description: 服务单编号 |
| | | type: string |
| | | service_type_id: |
| | | serviceTypeId: |
| | | description: 服务方式 |
| | | type: integer |
| | | serviceType: |
| | | $ref: '#/definitions/model.ServiceType' |
| | | severity: |
| | | $ref: '#/definitions/model.Severity' |
| | | description: 严重程度 |
| | | type: integer |
| | | solution: |
| | | description: 解决方法 |
| | | type: string |
| | |
| | | items: |
| | | $ref: '#/definitions/model.Product' |
| | | type: array |
| | | type: object |
| | | request.AddTimeSpent: |
| | | properties: |
| | | id: |
| | | type: integer |
| | | name: |
| | | type: string |
| | | type: object |
| | | request.AddTimelyRate: |
| | | properties: |
| | |
| | | name: |
| | | type: string |
| | | type: object |
| | | request.UpdateFaultType: |
| | | properties: |
| | | id: |
| | | type: integer |
| | | name: |
| | | type: string |
| | | type: object |
| | | request.UpdateFollowRecord: |
| | | properties: |
| | | follow_record: |
| | |
| | | charge_amount: |
| | | description: 收费金额 |
| | | type: number |
| | | client: |
| | | $ref: '#/definitions/model.Client' |
| | | client_id: |
| | | clientId: |
| | | description: 客户id |
| | | type: integer |
| | | contract: |
| | | $ref: '#/definitions/model.Contract' |
| | | contract_id: |
| | | contact_id: |
| | | description: 联系人id |
| | | type: integer |
| | | contractId: |
| | | description: 合同id |
| | | type: integer |
| | | expect_time: |
| | | description: 希望处理时间 |
| | | type: string |
| | | faq: |
| | | $ref: '#/definitions/model.Faq' |
| | | id: |
| | | type: integer |
| | | linkman_id: |
| | | description: 联系人id |
| | | type: integer |
| | | order: |
| | | $ref: '#/definitions/model.OrderManage' |
| | | order_id: |
| | | orderId: |
| | | description: 销售订单id |
| | | type: integer |
| | | priority_level_id: |
| | | description: 优先级别 |
| | | type: integer |
| | | priorityLevel: |
| | | $ref: '#/definitions/model.PriorityLevel' |
| | | problem_desc: |
| | | description: 问题描述 |
| | | type: string |
| | | problem_id: |
| | | description: 常见问题id |
| | | type: integer |
| | | product: |
| | | $ref: '#/definitions/model.Product' |
| | | product_id: |
| | | productId: |
| | | description: 产品id |
| | | type: integer |
| | | real_time: |
| | |
| | | remark: |
| | | description: 备注 |
| | | type: string |
| | | sale_leads: |
| | | saleChanceId: |
| | | description: 销售机会id |
| | | type: integer |
| | | service_man_id: |
| | | serviceManId: |
| | | description: 服务人员 |
| | | type: integer |
| | | service_number: |
| | | serviceNumber: |
| | | description: 服务单编号 |
| | | type: string |
| | | service_type_id: |
| | | serviceTypeId: |
| | | description: 服务方式 |
| | | type: integer |
| | | serviceType: |
| | | $ref: '#/definitions/model.ServiceType' |
| | | severity: |
| | | $ref: '#/definitions/model.Severity' |
| | | description: 严重程度 |
| | | type: integer |
| | | solution: |
| | | description: 解决方法 |
| | | type: string |
| | |
| | | items: |
| | | $ref: '#/definitions/model.Product' |
| | | type: array |
| | | type: object |
| | | request.UpdateTimeSpent: |
| | | properties: |
| | | id: |
| | | type: integer |
| | | name: |
| | | type: string |
| | | type: object |
| | | request.UpdateTimelyRate: |
| | | properties: |
| | |
| | | summary: 更新常见问题 |
| | | tags: |
| | | - 常见问题管理 |
| | | /api/faultType/add: |
| | | post: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: body |
| | | name: object |
| | | required: true |
| | | schema: |
| | | $ref: '#/definitions/request.AddFaultType' |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 添加故障类别 |
| | | tags: |
| | | - 故障类别管理 |
| | | /api/faultType/delete/{id}: |
| | | delete: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: path |
| | | name: id |
| | | required: true |
| | | type: integer |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 删除故障类别 |
| | | tags: |
| | | - 故障类别管理 |
| | | /api/faultType/list: |
| | | get: |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | allOf: |
| | | - $ref: '#/definitions/response.ListResponse' |
| | | - properties: |
| | | data: |
| | | items: |
| | | $ref: '#/definitions/model.FaultType' |
| | | type: array |
| | | type: object |
| | | summary: 获取故障类别列表 |
| | | tags: |
| | | - 故障类别管理 |
| | | /api/faultType/update: |
| | | put: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: body |
| | | name: object |
| | | required: true |
| | | schema: |
| | | $ref: '#/definitions/request.UpdateFaultType' |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 更新故障类别 |
| | | tags: |
| | | - 故障类别管理 |
| | | /api/followRecord/add: |
| | | post: |
| | | parameters: |
| | |
| | | summary: 更新子订单 |
| | | tags: |
| | | - SubOrder |
| | | /api/timeSpent/add: |
| | | post: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: body |
| | | name: object |
| | | required: true |
| | | schema: |
| | | $ref: '#/definitions/request.AddTimeSpent' |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 添加花费时间 |
| | | tags: |
| | | - 花费时间管理 |
| | | /api/timeSpent/delete/{id}: |
| | | delete: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: path |
| | | name: id |
| | | required: true |
| | | type: integer |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 删除花费时间 |
| | | tags: |
| | | - 花费时间管理 |
| | | /api/timeSpent/list: |
| | | get: |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | allOf: |
| | | - $ref: '#/definitions/response.ListResponse' |
| | | - properties: |
| | | data: |
| | | items: |
| | | $ref: '#/definitions/model.TimeSpent' |
| | | type: array |
| | | type: object |
| | | summary: 获取花费时间列表 |
| | | tags: |
| | | - 花费时间管理 |
| | | /api/timeSpent/update: |
| | | put: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: body |
| | | name: object |
| | | required: true |
| | | schema: |
| | | $ref: '#/definitions/request.UpdateTimeSpent' |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 更新花费时间 |
| | | tags: |
| | | - 花费时间管理 |
| | | /api/timelyRate/add: |
| | | post: |
| | | parameters: |
| | |
| | | // Faq 常见问题 |
| | | Faq struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | } |
| | | |
| | | // FaqSearch 常见问题搜索条件 |
| | | FaqSearch struct { |
| | | Faq |
| | | Orm *gorm.DB |
| | | QueryClass constvar.FaqQueryClass |
| | | KeywordType constvar.FaqKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | QueryClass constvar.FaqQueryClass |
| | | KeywordType constvar.FaqKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | |
| | | func (slf *FaqSearch) Create(record *Faq) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *FaqSearch) CreateBatch(records []*Faq) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *FaqSearch) Delete() error { |
| | |
| | | |
| | | err := db.Find(&records).Error |
| | | return records, total, err |
| | | } |
| | | } |
New file |
| | |
| | | package model |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/pkg/mysqlx" |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | ) |
| | | |
| | | type ( |
| | | // FaultType 故障类别 |
| | | FaultType struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | } |
| | | |
| | | // FaultTypeSearch 故障类别搜索条件 |
| | | FaultTypeSearch struct { |
| | | FaultType |
| | | Orm *gorm.DB |
| | | QueryClass constvar.FaultTypeQueryClass |
| | | KeywordType constvar.FaultTypeKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | | func (FaultType) TableName() string { |
| | | return "fault_type" |
| | | } |
| | | |
| | | func NewFaultTypeSearch() *FaultTypeSearch { |
| | | return &FaultTypeSearch{ |
| | | Orm: mysqlx.GetDB(), |
| | | } |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&FaultType{}) |
| | | if slf.Id != 0 { |
| | | db = db.Where("id = ?", slf.Id) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) Create(record *FaultType) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) CreateBatch(records []*FaultType) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) Delete() error { |
| | | var db = slf.build() |
| | | return db.Delete(&FaultType{}).Error |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) Update(record *FaultType) error { |
| | | var db = slf.build() |
| | | return db.Updates(record).Error |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) FindAll() ([]*FaultType, error) { |
| | | var db = slf.build() |
| | | var record = make([]*FaultType, 0) |
| | | err := db.Find(&record).Error |
| | | return record, err |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) SetId(id int) *FaultTypeSearch { |
| | | slf.Id = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) First() (*FaultType, error) { |
| | | var db = slf.build() |
| | | var record = new(FaultType) |
| | | err := db.First(record).Error |
| | | return record, err |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) Updates(values interface{}) error { |
| | | var db = slf.build() |
| | | return db.Updates(values).Error |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) Save(record *FaultType) error { |
| | | if record.Id == 0 { |
| | | return errors.New("id为空") |
| | | } |
| | | var db = slf.build() |
| | | |
| | | if err := db.Save(record).Error; err != nil { |
| | | return fmt.Errorf("save err: %v, record: %+v", err, record) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *FaultTypeSearch) Find() ([]*FaultType, int64, error) { |
| | | var db = slf.build() |
| | | var records = make([]*FaultType, 0) |
| | | var total int64 |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return records, total, err |
| | | } |
| | | if slf.PageNum > 0 && slf.PageSize > 0 { |
| | | db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) |
| | | } |
| | | |
| | | err := db.Find(&records).Error |
| | | return records, total, err |
| | | } |
| | |
| | | "aps_crm/conf" |
| | | "aps_crm/pkg/logx" |
| | | "aps_crm/pkg/mysqlx" |
| | | "aps_crm/pkg/safe" |
| | | "gorm.io/gorm/schema" |
| | | ) |
| | | |
| | | func Init() error { |
| | |
| | | if err := RegisterTables(); err != nil { |
| | | return err |
| | | } |
| | | |
| | | safe.Go(func() { |
| | | InsertDefaultData() |
| | | }) |
| | | return nil |
| | | } |
| | | |
| | |
| | | Satisfaction{}, |
| | | TimelyRate{}, |
| | | SolveRate{}, |
| | | IsVisit{}, |
| | | IsVisit{}, |
| | | ReportSource{}, |
| | | OrderType{}, |
| | | ServiceContractStatus{}, |
| | | ServiceContractType{}, |
| | | RefundMethod{}, |
| | | IsInvoice{}, |
| | | AccountId{}, |
| | | SalesReturnStatus{}, |
| | | Repository{}, |
| | | QuotationStatus{}, |
| | | Currency{}, |
| | | IsVisit{}, |
| | | IsVisit{}, |
| | | ReportSource{}, |
| | | OrderType{}, |
| | | ServiceContractStatus{}, |
| | | ServiceContractType{}, |
| | | RefundMethod{}, |
| | | IsInvoice{}, |
| | | AccountId{}, |
| | | SalesReturnStatus{}, |
| | | Repository{}, |
| | | QuotationStatus{}, |
| | | Currency{}, |
| | | ) |
| | | return err |
| | | } |
| | | } |
| | | |
| | | type InitDefaultData interface { |
| | | InitDefaultData() error |
| | | } |
| | | |
| | | func InsertDefaultData() { |
| | | models := []interface{}{ |
| | | NewServiceTypeSearch(), |
| | | NewPriorityLevelSearch(), |
| | | NewSeveritySearch(), |
| | | NewTimeSpentSearch(), |
| | | } |
| | | for _, model := range models { |
| | | if id, ok := model.(InitDefaultData); ok { |
| | | if err := id.InitDefaultData(); err != nil { |
| | | logx.Errorf("InitDefaultData for table: %v, err :%v", model.(schema.Tabler).TableName(), err.Error()) |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | // PriorityLevel 优先级别 |
| | | PriorityLevel struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | } |
| | | |
| | | // PriorityLevelSearch 优先级别搜索条件 |
| | | PriorityLevelSearch struct { |
| | | PriorityLevel |
| | | Orm *gorm.DB |
| | | QueryClass constvar.PriorityLevelQueryClass |
| | | KeywordType constvar.PriorityLevelKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | QueryClass constvar.PriorityLevelQueryClass |
| | | KeywordType constvar.PriorityLevelKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | |
| | | func (slf *PriorityLevelSearch) Create(record *PriorityLevel) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *PriorityLevelSearch) CreateBatch(records []*PriorityLevel) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *PriorityLevelSearch) Delete() error { |
| | |
| | | |
| | | err := db.Find(&records).Error |
| | | return records, total, err |
| | | } |
| | | } |
| | | |
| | | // InitDefaultData 初始化数据 |
| | | func (slf *PriorityLevelSearch) InitDefaultData() error { |
| | | var ( |
| | | db = slf.Orm.Table(slf.TableName()) |
| | | total int64 = 0 |
| | | ) |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return err |
| | | } |
| | | if total != 0 { |
| | | return nil |
| | | } |
| | | records := []*PriorityLevel{ |
| | | {Name: "低"}, |
| | | {Name: "一般"}, |
| | | {Name: "高"}, |
| | | {Name: "紧急"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | } |
New file |
| | |
| | | package request |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/model" |
| | | ) |
| | | |
| | | type AddFaultType struct { |
| | | model.FaultType |
| | | } |
| | | |
| | | type UpdateFaultType struct { |
| | | Id int `json:"id"` |
| | | model.FaultType |
| | | } |
| | | |
| | | type GetFaultTypeList struct { |
| | | PageInfo |
| | | QueryClass constvar.FaultTypeQueryClass `json:"queryClass"` |
| | | KeywordType constvar.FaultTypeKeywordType `json:"keywordType"` |
| | | Keyword string `json:"keyword"` |
| | | } |
| | |
| | | package request |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/model" |
| | | "aps_crm/constvar" |
| | | ) |
| | | |
| | | type AddServiceOrder struct { |
| | | model.ServiceOrder |
| | | ServiceNumber string `gorm:"service_number" json:"serviceNumber"` // 服务单编号 |
| | | ClientId int `gorm:"client_id" json:"clientId"` // 客户id |
| | | ContractId int `gorm:"contract_id" json:"contractId"` // 合同id |
| | | OrderId int `gorm:"order_id" json:"orderId"` // 销售订单id |
| | | Subject string `gorm:"subject" json:"subject"` // 主题 |
| | | ProductId int `gorm:"product_id" json:"productId"` // 产品id |
| | | ServiceTypeId int `gorm:"service_type_id" json:"serviceTypeId"` // 服务方式 |
| | | ServiceManId int `gorm:"service_man_id" json:"serviceManId"` // 服务人员 |
| | | ContactId int `gorm:"linkman_id" json:"contact_id"` // 联系人id |
| | | Address string `gorm:"address" json:"address"` // 上门地址 |
| | | PriorityLevelId int `gorm:"priority_level_id" json:"priority_level_id"` // 优先级别 |
| | | AppointmentTime string `gorm:"appointment_time" json:"appointment_time"` // 预约上门时间 |
| | | SaleChanceId int `gorm:"sale_leads" json:"saleChanceId"` // 销售机会id |
| | | SeverityId int `gorm:"severity_id" json:"severity"` // 严重程度 |
| | | Status int `gorm:"status" json:"status"` // 处理状态 |
| | | ExpectTime string `gorm:"expect_time" json:"expect_time"` // 希望处理时间 |
| | | RealTime string `gorm:"real_time" json:"real_time"` // 实际处理时间 |
| | | CarFare float64 `gorm:"car_fare" json:"car_fare"` // 交通费 |
| | | ChargeAmount float64 `gorm:"charge_amount" json:"charge_amount"` // 收费金额 |
| | | TimeSpentId int `gorm:"time_spent_id" json:"time_spent_id"` // 花费时间 |
| | | FaqId int `gorm:"problem_id" json:"problem_id"` // 常见问题id |
| | | ProblemDesc string `gorm:"problem_desc" json:"problem_desc"` // 问题描述 |
| | | Solution string `gorm:"solution" json:"solution"` // 解决方法 |
| | | SolutionRemark string `gorm:"solution_remark" json:"solution_remark"` // 内部备注 |
| | | Remark string `gorm:"remark" json:"remark"` // 备注 |
| | | } |
| | | |
| | | type UpdateServiceOrder struct { |
| | | Id int `json:"id"` |
| | | model.ServiceOrder |
| | | AddServiceOrder |
| | | } |
| | | |
| | | type GetServiceOrderList struct { |
New file |
| | |
| | | package request |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/model" |
| | | ) |
| | | |
| | | type AddTimeSpent struct { |
| | | model.TimeSpent |
| | | } |
| | | |
| | | type UpdateTimeSpent struct { |
| | | Id int `json:"id"` |
| | | model.TimeSpent |
| | | } |
| | | |
| | | type GetTimeSpentList struct { |
| | | PageInfo |
| | | QueryClass constvar.TimeSpentQueryClass `json:"queryClass"` |
| | | KeywordType constvar.TimeSpentKeywordType `json:"keywordType"` |
| | | Keyword string `json:"keyword"` |
| | | } |
| | |
| | | // ServiceOrder 服务单 |
| | | ServiceOrder struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | ServiceNumber string `gorm:"service_number" json:"service_number"` // 服务单编号 |
| | | ClientId int `gorm:"client_id" json:"client_id"` // 客户id |
| | | ServiceNumber string `gorm:"service_number" json:"serviceNumber"` // 服务单编号 |
| | | ClientId int `gorm:"client_id" json:"clientId"` // 客户id |
| | | Client Client `gorm:"foreignKey:ClientId"` |
| | | ContractId int `gorm:"contract_id" json:"contract_id"` // 合同id |
| | | ContractId int `gorm:"contract_id" json:"contractId"` // 合同id |
| | | Contract Contract `gorm:"foreignKey:ContractId"` |
| | | OrderId int `gorm:"order_id" json:"order_id"` // 销售订单id |
| | | Order OrderManage `gorm:"foreignKey:OrderId"` |
| | | Subject string `gorm:"subject" json:"subject"` // 主题 |
| | | ProductId int `gorm:"product_id" json:"product_id"` // 产品id |
| | | OrderId int `gorm:"order_id" json:"orderId"` // 销售订单id |
| | | OrderManage OrderManage `gorm:"foreignKey:OrderId"` |
| | | Subject string `gorm:"subject" json:"subject"` // 主题 |
| | | ProductId int `gorm:"product_id" json:"productId"` // 产品id |
| | | Product Product `gorm:"foreignKey:ProductId"` |
| | | ServiceTypeId int `gorm:"service_type_id" json:"service_type_id"` // 服务方式 |
| | | ServiceTypeId int `gorm:"service_type_id" json:"serviceTypeId"` // 服务方式 |
| | | ServiceType ServiceType `gorm:"foreignKey:ServiceTypeId"` |
| | | ServiceManId int `gorm:"service_man_id" json:"service_man_id"` // 服务人员 |
| | | LinkmanId int `gorm:"linkman_id" json:"linkman_id"` // 联系人id |
| | | ServiceManId int `gorm:"service_man_id" json:"serviceManId"` // 服务人员 |
| | | ContactId int `gorm:"linkman_id" json:"contact_id"` // 联系人id |
| | | Contact Contact `gorm:"foreignKey:ContactId"` |
| | | Address string `gorm:"address" json:"address"` // 上门地址 |
| | | PriorityLevelId int `gorm:"priority_level_id" json:"priority_level_id"` // 优先级别 |
| | | PriorityLevel PriorityLevel `gorm:"foreignKey:PriorityLevelId"` |
| | | AppointmentTime string `gorm:"appointment_time" json:"appointment_time"` // 预约上门时间 |
| | | SaleLeads int `gorm:"sale_leads" json:"sale_leads"` // 销售机会id |
| | | SeverityId int `gorm:"severity_id" json:"severity"` // 严重程度 |
| | | SaleChanceId int `gorm:"sale_leads" json:"saleChanceId"` // 销售机会id |
| | | SaleChance SaleChance `gorm:"foreignKey:SaleChanceId"` |
| | | SeverityId int `gorm:"severity_id" json:"severity"` // 严重程度 |
| | | Severity Severity `gorm:"foreignKey:SeverityId"` |
| | | Status int `gorm:"status" json:"status"` // 处理状态 |
| | | ExpectTime string `gorm:"expect_time" json:"expect_time"` // 希望处理时间 |
| | |
| | | db = db.Where("id = ?", slf.Id) |
| | | } |
| | | if slf.Preload { |
| | | db = db.Model(&ServiceOrder{}). |
| | | db = db. |
| | | Preload("Client"). |
| | | Preload("Contract"). |
| | | Preload("OrderManage"). |
| | | Preload("Product"). |
| | | Preload("ServiceType"). |
| | | Preload("Contact"). |
| | | Preload("SaleChance"). |
| | | Preload("PriorityLevel"). |
| | | Preload("Severity"). |
| | | Preload("Faq") |
| | |
| | | // ServiceType 服务类型 |
| | | ServiceType struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | } |
| | | |
| | | // ServiceTypeSearch 服务类型搜索条件 |
| | | ServiceTypeSearch struct { |
| | | ServiceType |
| | | Orm *gorm.DB |
| | | QueryClass constvar.ServiceTypeQueryClass |
| | | KeywordType constvar.ServiceTypeKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | QueryClass constvar.ServiceTypeQueryClass |
| | | KeywordType constvar.ServiceTypeKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | |
| | | func (slf *ServiceTypeSearch) Create(record *ServiceType) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *ServiceTypeSearch) CreateBatch(records []*ServiceType) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *ServiceTypeSearch) Delete() error { |
| | |
| | | |
| | | err := db.Find(&records).Error |
| | | return records, total, err |
| | | } |
| | | } |
| | | |
| | | // InitDefaultData 初始化数据 |
| | | func (slf *ServiceTypeSearch) InitDefaultData() error { |
| | | var ( |
| | | db = slf.Orm.Table(slf.TableName()) |
| | | total int64 = 0 |
| | | ) |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return err |
| | | } |
| | | if total != 0 { |
| | | return nil |
| | | } |
| | | records := []*ServiceType{ |
| | | {Name: "电话"}, |
| | | {Name: "远程"}, |
| | | {Name: "送修"}, |
| | | {Name: "上门"}, |
| | | {Name: "其他"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | } |
| | |
| | | // Severity 严重程度 |
| | | Severity struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | } |
| | | |
| | | // SeveritySearch 严重程度搜索条件 |
| | | SeveritySearch struct { |
| | | Severity |
| | | Orm *gorm.DB |
| | | QueryClass constvar.SeverityQueryClass |
| | | KeywordType constvar.SeverityKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | Orm *gorm.DB |
| | | QueryClass constvar.SeverityQueryClass |
| | | KeywordType constvar.SeverityKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | |
| | | func (slf *SeveritySearch) Create(record *Severity) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *SeveritySearch) CreateBatch(records []*Severity) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *SeveritySearch) Delete() error { |
| | |
| | | |
| | | err := db.Find(&records).Error |
| | | return records, total, err |
| | | } |
| | | } |
| | | |
| | | // InitDefaultData 初始化数据 |
| | | func (slf *SeveritySearch) InitDefaultData() error { |
| | | var ( |
| | | db = slf.Orm.Table(slf.TableName()) |
| | | total int64 = 0 |
| | | ) |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return err |
| | | } |
| | | if total != 0 { |
| | | return nil |
| | | } |
| | | records := []*Severity{ |
| | | {Name: "轻"}, |
| | | {Name: "严重"}, |
| | | {Name: "较严重"}, |
| | | {Name: "特严重"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | } |
New file |
| | |
| | | package model |
| | | |
| | | import ( |
| | | "aps_crm/constvar" |
| | | "aps_crm/pkg/mysqlx" |
| | | "errors" |
| | | "fmt" |
| | | "gorm.io/gorm" |
| | | ) |
| | | |
| | | type ( |
| | | // TimeSpent 花费时间 |
| | | TimeSpent struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name"` |
| | | } |
| | | |
| | | // TimeSpentSearch 花费时间搜索条件 |
| | | TimeSpentSearch struct { |
| | | TimeSpent |
| | | Orm *gorm.DB |
| | | QueryClass constvar.TimeSpentQueryClass |
| | | KeywordType constvar.TimeSpentKeywordType |
| | | Keyword string |
| | | PageNum int |
| | | PageSize int |
| | | } |
| | | ) |
| | | |
| | | func (TimeSpent) TableName() string { |
| | | return "time_spent" |
| | | } |
| | | |
| | | func NewTimeSpentSearch() *TimeSpentSearch { |
| | | return &TimeSpentSearch{ |
| | | Orm: mysqlx.GetDB(), |
| | | } |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&TimeSpent{}) |
| | | if slf.Id != 0 { |
| | | db = db.Where("id = ?", slf.Id) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) Create(record *TimeSpent) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) CreateBatch(records []*TimeSpent) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) Delete() error { |
| | | var db = slf.build() |
| | | return db.Delete(&TimeSpent{}).Error |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) Update(record *TimeSpent) error { |
| | | var db = slf.build() |
| | | return db.Updates(record).Error |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) FindAll() ([]*TimeSpent, error) { |
| | | var db = slf.build() |
| | | var record = make([]*TimeSpent, 0) |
| | | err := db.Find(&record).Error |
| | | return record, err |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) SetId(id int) *TimeSpentSearch { |
| | | slf.Id = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) First() (*TimeSpent, error) { |
| | | var db = slf.build() |
| | | var record = new(TimeSpent) |
| | | err := db.First(record).Error |
| | | return record, err |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) Updates(values interface{}) error { |
| | | var db = slf.build() |
| | | return db.Updates(values).Error |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) Save(record *TimeSpent) error { |
| | | if record.Id == 0 { |
| | | return errors.New("id为空") |
| | | } |
| | | var db = slf.build() |
| | | |
| | | if err := db.Save(record).Error; err != nil { |
| | | return fmt.Errorf("save err: %v, record: %+v", err, record) |
| | | } |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *TimeSpentSearch) Find() ([]*TimeSpent, int64, error) { |
| | | var db = slf.build() |
| | | var records = make([]*TimeSpent, 0) |
| | | var total int64 |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return records, total, err |
| | | } |
| | | if slf.PageNum > 0 && slf.PageSize > 0 { |
| | | db = db.Limit(slf.PageSize).Offset((slf.PageNum - 1) * slf.PageSize) |
| | | } |
| | | |
| | | err := db.Find(&records).Error |
| | | return records, total, err |
| | | } |
| | | |
| | | // InitDefaultData 初始化数据 |
| | | func (slf *TimeSpentSearch) InitDefaultData() error { |
| | | var ( |
| | | db = slf.Orm.Table(slf.TableName()) |
| | | total int64 = 0 |
| | | ) |
| | | if err := db.Count(&total).Error; err != nil { |
| | | return err |
| | | } |
| | | if total != 0 { |
| | | return nil |
| | | } |
| | | records := []*TimeSpent{ |
| | | {Name: "1小时"}, |
| | | {Name: "2小时"}, |
| | | {Name: "0.5个工作日"}, |
| | | {Name: "1个工作日"}, |
| | | {Name: "2个工作日"}, |
| | | {Name: "2个工作日以上"}, |
| | | } |
| | | return slf.CreateBatch(records) |
| | | } |
| | |
| | | package safe |
| | | |
| | | import ( |
| | | "aps_admin/pkg/logx" |
| | | "aps_crm/pkg/logx" |
| | | "runtime/debug" |
| | | ) |
| | | |
New file |
| | |
| | | package structx |
| | | |
| | | import "encoding/json" |
| | | |
| | | func AssignTo(from interface{}, to interface{}) error { |
| | | data, err := json.Marshal(from) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | |
| | | err = json.Unmarshal(data, to) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | return nil |
| | | } |
New file |
| | |
| | | package router |
| | | |
| | | import ( |
| | | v1 "aps_crm/api/v1" |
| | | "github.com/gin-gonic/gin" |
| | | ) |
| | | |
| | | func InitFaultTypeRouter(router *gin.RouterGroup) { |
| | | FaultTypeRouter := router.Group("faultType") |
| | | FaultTypeApi := v1.FaultTypeApi{} |
| | | { |
| | | FaultTypeRouter.POST("add", FaultTypeApi.Add) // 添加故障类别 |
| | | FaultTypeRouter.DELETE("delete/:id", FaultTypeApi.Delete) // 删除故障类别 |
| | | FaultTypeRouter.PUT("update", FaultTypeApi.Update) // 更新故障类别 |
| | | FaultTypeRouter.GET("list", FaultTypeApi.List) // 获取故障类别列表 |
| | | } |
| | | } |
New file |
| | |
| | | package router |
| | | |
| | | import ( |
| | | v1 "aps_crm/api/v1" |
| | | "github.com/gin-gonic/gin" |
| | | ) |
| | | |
| | | func InitTimeSpentRouter(router *gin.RouterGroup) { |
| | | TimeSpentRouter := router.Group("timeSpent") |
| | | TimeSpentApi := v1.TimeSpentApi{} |
| | | { |
| | | TimeSpentRouter.POST("add", TimeSpentApi.Add) // 添加花费时间 |
| | | TimeSpentRouter.DELETE("delete/:id", TimeSpentApi.Delete) // 删除花费时间 |
| | | TimeSpentRouter.PUT("update", TimeSpentApi.Update) // 更新花费时间 |
| | | TimeSpentRouter.GET("list", TimeSpentApi.List) // 获取花费时间列表 |
| | | } |
| | | } |
New file |
| | |
| | | package service |
| | | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/model/request" |
| | | "aps_crm/pkg/ecode" |
| | | ) |
| | | |
| | | type FaultTypeService struct{} |
| | | |
| | | func NewFaultTypeService() FaultTypeService { |
| | | return FaultTypeService{} |
| | | } |
| | | |
| | | func (FaultTypeService) AddFaultType(FaultType *model.FaultType) int { |
| | | err := model.NewFaultTypeSearch().Create(FaultType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (FaultTypeService) DeleteFaultType(id int) int { |
| | | err := model.NewFaultTypeSearch().SetId(id).Delete() |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (FaultTypeService) GetFaultTypeList() ([]*model.FaultType, int64, int) { |
| | | list, total, err := model.NewFaultTypeSearch().Find() |
| | | if err != nil { |
| | | return nil, 0, ecode.DBErr |
| | | } |
| | | |
| | | return list, total, ecode.OK |
| | | } |
| | | |
| | | func (FaultTypeService) UpdateFaultTypes(FaultTypes []*request.UpdateFaultType) int { |
| | | for _, v := range FaultTypes { |
| | | // check FaultType exist |
| | | _, err := model.NewFaultTypeSearch().SetId(v.Id).First() |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewFaultTypeSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (FaultTypeService) UpdateFaultType(faultType *model.FaultType) int { |
| | | err := model.NewFaultTypeSearch().Save(faultType) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceOrderService) GetServiceOrderList() ([]*model.ServiceOrder, int64, int) { |
| | | list, total, err := model.NewServiceOrderSearch().Find() |
| | | list, total, err := model.NewServiceOrderSearch().SetPreload(true).Find() |
| | | if err != nil { |
| | | return nil, 0, ecode.DBErr |
| | | } |
| | |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewServiceOrderSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | err = model.NewServiceOrderSearch().SetId(v.Id).Updates(map[string]interface{}{}) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | |
| | | } |
| | | |
| | | func (ServiceOrderService) UpdateServiceOrder(serviceOrder *model.ServiceOrder) int { |
| | | err := model.NewServiceOrderSearch().Save(serviceOrder) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | err := model.NewServiceOrderSearch().Save(serviceOrder) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
New file |
| | |
| | | package service |
| | | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/model/request" |
| | | "aps_crm/pkg/ecode" |
| | | ) |
| | | |
| | | type TimeSpentService struct{} |
| | | |
| | | func NewTimeSpentService() TimeSpentService { |
| | | return TimeSpentService{} |
| | | } |
| | | |
| | | func (TimeSpentService) AddTimeSpent(TimeSpent *model.TimeSpent) int { |
| | | err := model.NewTimeSpentSearch().Create(TimeSpent) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (TimeSpentService) DeleteTimeSpent(id int) int { |
| | | err := model.NewTimeSpentSearch().SetId(id).Delete() |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (TimeSpentService) GetTimeSpentList() ([]*model.TimeSpent, int64, int) { |
| | | list, total, err := model.NewTimeSpentSearch().Find() |
| | | if err != nil { |
| | | return nil, 0, ecode.DBErr |
| | | } |
| | | |
| | | return list, total, ecode.OK |
| | | } |
| | | |
| | | func (TimeSpentService) UpdateTimeSpents(TimeSpents []*request.UpdateTimeSpent) int { |
| | | for _, v := range TimeSpents { |
| | | // check TimeSpent exist |
| | | _, err := model.NewTimeSpentSearch().SetId(v.Id).First() |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | |
| | | err = model.NewTimeSpentSearch().SetId(v.Id).Updates(map[string]interface{}{ |
| | | |
| | | }) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (TimeSpentService) UpdateTimeSpent(timeSpent *model.TimeSpent) int { |
| | | err := model.NewTimeSpentSearch().Save(timeSpent) |
| | | if err != nil { |
| | | return ecode.DBErr |
| | | } |
| | | return ecode.OK |
| | | } |