add
MasterOrder 销售总单
add, Delete, update, list
| | |
| | | PossibilityApi |
| | | StatusApi |
| | | QuotationApi |
| | | MasterOrderApi |
| | | } |
| | | |
| | | var ApiGroup = new(Group) |
| | |
| | | possibilityService = service.ServiceGroup.PossibilityService |
| | | statusService = service.ServiceGroup.StatusService |
| | | quotationService = service.ServiceGroup.QuotationService |
| | | masterOrderService = service.ServiceGroup.MasterOrderService |
| | | ) |
New file |
| | |
| | | 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 MasterOrderApi struct{} |
| | | |
| | | // Add |
| | | // |
| | | // @Tags MasterOrder |
| | | // @Summary 添加主订单 |
| | | // @Produce application/json |
| | | // @Param object body request.AddMasterOrder true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/masterOrder/add [post] |
| | | func (s *MasterOrderApi) Add(c *gin.Context) { |
| | | var params request.AddMasterOrder |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | errCode, masterOrder := checkMasterOrderParams(params.MasterOrder) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | errCode = masterOrderService.AddMasterOrder(&masterOrder) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // Delete |
| | | // |
| | | // @Tags MasterOrder |
| | | // @Summary 删除主订单 |
| | | // @Produce application/json |
| | | // @Param id path int true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/masterOrder/delete/{id} [delete] |
| | | func (s *MasterOrderApi) Delete(c *gin.Context) { |
| | | ctx, ok := contextx.NewContext(c, nil) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | id, _ := strconv.Atoi(c.Param("id")) |
| | | errCode := masterOrderService.DeleteMasterOrder(id) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // Update |
| | | // |
| | | // @Tags MasterOrder |
| | | // @Summary 更新主订单 |
| | | // @Produce application/json |
| | | // @Param object body request.UpdateMasterOrder true "查询参数" |
| | | // @Success 200 {object} contextx.Response{} |
| | | // @Router /api/masterOrder/update [put] |
| | | func (s *MasterOrderApi) Update(c *gin.Context) { |
| | | var params request.UpdateMasterOrder |
| | | ctx, ok := contextx.NewContext(c, ¶ms) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | errCode, masterOrder := checkMasterOrderParams(params.MasterOrder) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | masterOrder.Id = params.Id |
| | | |
| | | errCode = masterOrderService.UpdateMasterOrder(&masterOrder) |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.Ok() |
| | | } |
| | | |
| | | // List |
| | | // |
| | | // @Tags MasterOrder |
| | | // @Summary 主订单列表 |
| | | // @Produce application/json |
| | | // @Success 200 {object} contextx.Response{data=response.MasterOrderResponse} |
| | | // @Router /api/masterOrder/list [get] |
| | | func (s *MasterOrderApi) List(c *gin.Context) { |
| | | ctx, ok := contextx.NewContext(c, nil) |
| | | if !ok { |
| | | return |
| | | } |
| | | |
| | | list, errCode := masterOrderService.GetMasterOrderList() |
| | | if errCode != ecode.OK { |
| | | ctx.Fail(errCode) |
| | | return |
| | | } |
| | | |
| | | ctx.OkWithDetailed(response.MasterOrderResponse{ |
| | | List: list, |
| | | }) |
| | | } |
| | | |
| | | // checkMasterOrderParams |
| | | // 检查主订单参数 |
| | | func checkMasterOrderParams(masterOrder request.MasterOrder) (errCode int, masterOrderModel model.MasterOrder) { |
| | | if masterOrder.Number == "" { |
| | | return ecode.InvalidParams, masterOrderModel |
| | | } |
| | | |
| | | if masterOrder.MemberId == 0 { |
| | | return ecode.InvalidParams, masterOrderModel |
| | | } |
| | | |
| | | t, err := checkTimeFormat(masterOrder.StartTime) |
| | | if err != nil { |
| | | return ecode.InvalidParams, masterOrderModel |
| | | } |
| | | masterOrderModel.StartTime = t |
| | | |
| | | t, err = checkTimeFormat(masterOrder.EndTime) |
| | | if err != nil { |
| | | return ecode.InvalidParams, masterOrderModel |
| | | } |
| | | masterOrderModel.EndTime = t |
| | | |
| | | masterOrderModel.Number = masterOrder.Number |
| | | masterOrderModel.MemberId = masterOrder.MemberId |
| | | masterOrderModel.ClientId = masterOrder.ClientId |
| | | f, err := strconv.ParseFloat(masterOrder.Money, 64) |
| | | if err != nil { |
| | | return ecode.InvalidParams, masterOrderModel |
| | | } |
| | | masterOrderModel.Money = f |
| | | |
| | | return ecode.OK, masterOrderModel |
| | | } |
| | |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/add": { |
| | | "post": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "添加主订单", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.AddMasterOrder" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/delete/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "删除主订单", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "查询参数", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/list": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "主订单列表", |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "$ref": "#/definitions/response.MasterOrderResponse" |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/update": { |
| | | "put": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "更新主订单", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.UpdateMasterOrder" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/possibility/add": { |
| | | "post": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "model.MasterOrder": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "end_time": { |
| | | "type": "string" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "member_id": { |
| | | "type": "integer" |
| | | }, |
| | | "money": { |
| | | "type": "number" |
| | | }, |
| | | "number": { |
| | | "type": "string" |
| | | }, |
| | | "start_time": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "model.Possibility": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | "model.Quotation": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "conditions": { |
| | | "type": "string" |
| | | }, |
| | | "contact": { |
| | | "$ref": "#/definitions/model.Contact" |
| | | }, |
| | | "contact_id": { |
| | | "type": "integer" |
| | |
| | | }, |
| | | "quotation_status_id": { |
| | | "type": "integer" |
| | | }, |
| | | "sale_chance": { |
| | | "$ref": "#/definitions/model.SaleChance" |
| | | }, |
| | | "sale_chance_id": { |
| | | "type": "integer" |
| | |
| | | ], |
| | | "properties": { |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.AddMasterOrder": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "end_time": { |
| | | "type": "string" |
| | | }, |
| | | "member_id": { |
| | | "type": "integer" |
| | | }, |
| | | "money": { |
| | | "type": "string" |
| | | }, |
| | | "number": { |
| | | "type": "string" |
| | | }, |
| | | "start_time": { |
| | | "type": "string" |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateMasterOrder": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "end_time": { |
| | | "type": "string" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "member_id": { |
| | | "type": "integer" |
| | | }, |
| | | "money": { |
| | | "type": "string" |
| | | }, |
| | | "number": { |
| | | "type": "string" |
| | | }, |
| | | "start_time": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdatePossibilities": { |
| | | "type": "object", |
| | | "required": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "response.MasterOrderResponse": { |
| | | "type": "object", |
| | | "properties": { |
| | | "list": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/model.MasterOrder" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "response.PageResult": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/add": { |
| | | "post": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "添加主订单", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.AddMasterOrder" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/delete/{id}": { |
| | | "delete": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "删除主订单", |
| | | "parameters": [ |
| | | { |
| | | "type": "integer", |
| | | "description": "查询参数", |
| | | "name": "id", |
| | | "in": "path", |
| | | "required": true |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/list": { |
| | | "get": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "主订单列表", |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "allOf": [ |
| | | { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | }, |
| | | { |
| | | "type": "object", |
| | | "properties": { |
| | | "data": { |
| | | "$ref": "#/definitions/response.MasterOrderResponse" |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/masterOrder/update": { |
| | | "put": { |
| | | "produces": [ |
| | | "application/json" |
| | | ], |
| | | "tags": [ |
| | | "MasterOrder" |
| | | ], |
| | | "summary": "更新主订单", |
| | | "parameters": [ |
| | | { |
| | | "description": "查询参数", |
| | | "name": "object", |
| | | "in": "body", |
| | | "required": true, |
| | | "schema": { |
| | | "$ref": "#/definitions/request.UpdateMasterOrder" |
| | | } |
| | | } |
| | | ], |
| | | "responses": { |
| | | "200": { |
| | | "description": "OK", |
| | | "schema": { |
| | | "$ref": "#/definitions/contextx.Response" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "/api/possibility/add": { |
| | | "post": { |
| | | "produces": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "model.MasterOrder": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "end_time": { |
| | | "type": "string" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "member_id": { |
| | | "type": "integer" |
| | | }, |
| | | "money": { |
| | | "type": "number" |
| | | }, |
| | | "number": { |
| | | "type": "string" |
| | | }, |
| | | "start_time": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "model.Possibility": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | "model.Quotation": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client": { |
| | | "$ref": "#/definitions/model.Client" |
| | | }, |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "conditions": { |
| | | "type": "string" |
| | | }, |
| | | "contact": { |
| | | "$ref": "#/definitions/model.Contact" |
| | | }, |
| | | "contact_id": { |
| | | "type": "integer" |
| | |
| | | }, |
| | | "quotation_status_id": { |
| | | "type": "integer" |
| | | }, |
| | | "sale_chance": { |
| | | "$ref": "#/definitions/model.SaleChance" |
| | | }, |
| | | "sale_chance_id": { |
| | | "type": "integer" |
| | |
| | | ], |
| | | "properties": { |
| | | "name": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.AddMasterOrder": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "end_time": { |
| | | "type": "string" |
| | | }, |
| | | "member_id": { |
| | | "type": "integer" |
| | | }, |
| | | "money": { |
| | | "type": "string" |
| | | }, |
| | | "number": { |
| | | "type": "string" |
| | | }, |
| | | "start_time": { |
| | | "type": "string" |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdateMasterOrder": { |
| | | "type": "object", |
| | | "properties": { |
| | | "client_id": { |
| | | "type": "integer" |
| | | }, |
| | | "end_time": { |
| | | "type": "string" |
| | | }, |
| | | "id": { |
| | | "type": "integer" |
| | | }, |
| | | "member_id": { |
| | | "type": "integer" |
| | | }, |
| | | "money": { |
| | | "type": "string" |
| | | }, |
| | | "number": { |
| | | "type": "string" |
| | | }, |
| | | "start_time": { |
| | | "type": "string" |
| | | } |
| | | } |
| | | }, |
| | | "request.UpdatePossibilities": { |
| | | "type": "object", |
| | | "required": [ |
| | |
| | | } |
| | | } |
| | | }, |
| | | "response.MasterOrderResponse": { |
| | | "type": "object", |
| | | "properties": { |
| | | "list": { |
| | | "type": "array", |
| | | "items": { |
| | | "$ref": "#/definitions/model.MasterOrder" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "response.PageResult": { |
| | | "type": "object", |
| | | "properties": { |
| | |
| | | name: |
| | | type: string |
| | | type: object |
| | | model.MasterOrder: |
| | | properties: |
| | | client_id: |
| | | type: integer |
| | | end_time: |
| | | type: string |
| | | id: |
| | | type: integer |
| | | member_id: |
| | | type: integer |
| | | money: |
| | | type: number |
| | | number: |
| | | type: string |
| | | start_time: |
| | | type: string |
| | | type: object |
| | | model.Possibility: |
| | | properties: |
| | | id: |
| | |
| | | type: object |
| | | model.Quotation: |
| | | properties: |
| | | client: |
| | | $ref: '#/definitions/model.Client' |
| | | client_id: |
| | | type: integer |
| | | conditions: |
| | | type: string |
| | | contact: |
| | | $ref: '#/definitions/model.Contact' |
| | | contact_id: |
| | | type: integer |
| | | file: |
| | |
| | | type: string |
| | | quotation_status_id: |
| | | type: integer |
| | | sale_chance: |
| | | $ref: '#/definitions/model.SaleChance' |
| | | sale_chance_id: |
| | | type: integer |
| | | validity_date: |
| | |
| | | type: string |
| | | required: |
| | | - name |
| | | type: object |
| | | request.AddMasterOrder: |
| | | properties: |
| | | client_id: |
| | | type: integer |
| | | end_time: |
| | | type: string |
| | | member_id: |
| | | type: integer |
| | | money: |
| | | type: string |
| | | number: |
| | | type: string |
| | | start_time: |
| | | type: string |
| | | type: object |
| | | request.AddPossibility: |
| | | properties: |
| | |
| | | - id |
| | | - name |
| | | type: object |
| | | request.UpdateMasterOrder: |
| | | properties: |
| | | client_id: |
| | | type: integer |
| | | end_time: |
| | | type: string |
| | | id: |
| | | type: integer |
| | | member_id: |
| | | type: integer |
| | | money: |
| | | type: string |
| | | number: |
| | | type: string |
| | | start_time: |
| | | type: string |
| | | type: object |
| | | request.UpdatePossibilities: |
| | | properties: |
| | | possibilities: |
| | |
| | | type: string |
| | | user: |
| | | $ref: '#/definitions/model.User' |
| | | type: object |
| | | response.MasterOrderResponse: |
| | | properties: |
| | | list: |
| | | items: |
| | | $ref: '#/definitions/model.MasterOrder' |
| | | type: array |
| | | type: object |
| | | response.PageResult: |
| | | properties: |
| | |
| | | summary: 更新行业 |
| | | tags: |
| | | - Industry |
| | | /api/masterOrder/add: |
| | | post: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: body |
| | | name: object |
| | | required: true |
| | | schema: |
| | | $ref: '#/definitions/request.AddMasterOrder' |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 添加主订单 |
| | | tags: |
| | | - MasterOrder |
| | | /api/masterOrder/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: |
| | | - MasterOrder |
| | | /api/masterOrder/list: |
| | | get: |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | allOf: |
| | | - $ref: '#/definitions/contextx.Response' |
| | | - properties: |
| | | data: |
| | | $ref: '#/definitions/response.MasterOrderResponse' |
| | | type: object |
| | | summary: 主订单列表 |
| | | tags: |
| | | - MasterOrder |
| | | /api/masterOrder/update: |
| | | put: |
| | | parameters: |
| | | - description: 查询参数 |
| | | in: body |
| | | name: object |
| | | required: true |
| | | schema: |
| | | $ref: '#/definitions/request.UpdateMasterOrder' |
| | | produces: |
| | | - application/json |
| | | responses: |
| | | "200": |
| | | description: OK |
| | | schema: |
| | | $ref: '#/definitions/contextx.Response' |
| | | summary: 更新主订单 |
| | | tags: |
| | | - MasterOrder |
| | | /api/possibility/add: |
| | | post: |
| | | parameters: |
| | |
| | | Possibility{}, |
| | | Status{}, |
| | | Quotation{}, |
| | | MasterOrder{}, |
| | | ) |
| | | return err |
| | | } |
New file |
| | |
| | | package model |
| | | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "gorm.io/gorm" |
| | | "time" |
| | | ) |
| | | |
| | | type ( |
| | | // MasterOrder 销售总单 |
| | | MasterOrder struct { |
| | | Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Number string `json:"number" gorm:"column:number;type:varchar(255);comment:销售总单号"` |
| | | ClientId int `json:"client_id" gorm:"column:client_id;type:int;comment:客户id"` |
| | | MemberId int `json:"member_id" gorm:"column:member_id;type:int;comment:负责人id"` |
| | | StartTime time.Time `json:"start_time" gorm:"column:start_time;type:datetime;comment:开始时间"` |
| | | EndTime time.Time `json:"end_time" gorm:"column:end_time;type:datetime;comment:结束时间"` |
| | | Money float64 `json:"money" gorm:"column:money;type:decimal(10,2);comment:总金额"` |
| | | gorm.Model `json:"-"` |
| | | } |
| | | |
| | | // MasterOrderSearch 销售总单搜索条件 |
| | | MasterOrderSearch struct { |
| | | MasterOrder |
| | | Orm *gorm.DB |
| | | } |
| | | ) |
| | | |
| | | func (MasterOrder) TableName() string { |
| | | return "master_order" |
| | | } |
| | | |
| | | func NewMasterOrderSearch() *MasterOrderSearch { |
| | | return &MasterOrderSearch{ |
| | | Orm: mysqlx.GetDB(), |
| | | } |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&MasterOrder{}) |
| | | if slf.Id != 0 { |
| | | db = db.Where("id = ?", slf.Id) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) Create(record *MasterOrder) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) Delete() error { |
| | | var db = slf.build() |
| | | return db.Delete(&MasterOrder{}).Error |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) Update(record *MasterOrder) error { |
| | | var db = slf.build() |
| | | return db.Updates(record).Error |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) Find() (*MasterOrder, error) { |
| | | var db = slf.build() |
| | | var record = new(MasterOrder) |
| | | err := db.First(record).Error |
| | | return record, err |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) FindAll() ([]*MasterOrder, error) { |
| | | var db = slf.build() |
| | | var records = make([]*MasterOrder, 0) |
| | | err := db.Find(&records).Error |
| | | return records, err |
| | | } |
| | | |
| | | func (slf *MasterOrderSearch) SetId(id int) *MasterOrderSearch { |
| | | slf.Id = id |
| | | return slf |
| | | } |
| | |
| | | Client Client `json:"client" gorm:"foreignKey:ClientId"` |
| | | Contact Contact `json:"contact" gorm:"foreignKey:ContactId"` |
| | | SaleChance SaleChance `json:"sale_chance" gorm:"foreignKey:SaleChanceId"` |
| | | gorm.Model `json:"-"` |
| | | } |
| | | |
| | | // QuotationSearch 报价单搜索条件 |
New file |
| | |
| | | package request |
| | | |
| | | type AddMasterOrder struct { |
| | | MasterOrder |
| | | } |
| | | |
| | | type MasterOrder struct { |
| | | Number string `json:"number"` |
| | | ClientId int `json:"client_id"` |
| | | MemberId int `json:"member_id"` |
| | | StartTime string `json:"start_time"` |
| | | EndTime string `json:"end_time"` |
| | | Money string `json:"money"` |
| | | } |
| | | |
| | | type UpdateMasterOrder struct { |
| | | Id int `json:"id"` |
| | | MasterOrder |
| | | } |
| | |
| | | QuotationResponse struct { |
| | | List []*model.Quotation `json:"list"` |
| | | } |
| | | |
| | | MasterOrderResponse struct { |
| | | List []*model.MasterOrder `json:"list"` |
| | | } |
| | | ) |
| | |
| | | QuotationSetErr = 2500004 // 设置报价单失败 |
| | | QuotationUpdateErr = 2500005 // 更新报价单失败 |
| | | QuotationDeleteErr = 2500006 // 删除报价单失败 |
| | | |
| | | MasterOrderExist = 2600001 // 主订单已存在 |
| | | MasterOrderNotExist = 2600002 // 主订单不存在 |
| | | MasterOrderListErr = 2600003 // 获取主订单列表失败 |
| | | MasterOrderSetErr = 2600004 // 设置主订单失败 |
| | | MasterOrderUpdateErr = 2600005 // 更新主订单失败 |
| | | MasterOrderDeleteErr = 2600006 // 删除主订单失败 |
| | | |
| | | ) |
| | |
| | | PossibilityRouter |
| | | StatusRouter |
| | | QuotationRouter |
| | | MasterOrderRouter |
| | | } |
| | | |
| | | func InitRouter() *gin.Engine { |
| | |
| | | routerGroup.InitPossibilityRouter(PrivateGroup) // 注册possibility路由 |
| | | routerGroup.InitStatusRouter(PrivateGroup) // 注册status路由 |
| | | routerGroup.InitQuotationRouter(PrivateGroup) // 注册quotation路由 |
| | | routerGroup.InitMasterOrderRouter(PrivateGroup) // 注册masterOrder路由 |
| | | } |
| | | return Router |
| | | } |
New file |
| | |
| | | package router |
| | | |
| | | import ( |
| | | v1 "aps_crm/api/v1" |
| | | "github.com/gin-gonic/gin" |
| | | ) |
| | | |
| | | type MasterOrderRouter struct{} |
| | | |
| | | func (s *MasterOrderRouter) InitMasterOrderRouter(router *gin.RouterGroup) { |
| | | masterOrderRouter := router.Group("masterOrder") |
| | | masterOrderApi := v1.ApiGroup.MasterOrderApi |
| | | { |
| | | masterOrderRouter.POST("add", masterOrderApi.Add) // 添加主订单 |
| | | masterOrderRouter.DELETE("delete/:id", masterOrderApi.Delete) // 删除主订单 |
| | | masterOrderRouter.PUT("update", masterOrderApi.Update) // 更新主订单 |
| | | masterOrderRouter.GET("list", masterOrderApi.List) // 获取主订单列表 |
| | | } |
| | | } |
| | |
| | | PossibilityService |
| | | StatusService |
| | | QuotationService |
| | | MasterOrderService |
| | | } |
| | | |
| | | var ServiceGroup = new(Group) |
New file |
| | |
| | | package service |
| | | |
| | | import ( |
| | | "aps_crm/model" |
| | | "aps_crm/pkg/ecode" |
| | | ) |
| | | |
| | | type MasterOrderService struct{} |
| | | |
| | | func (MasterOrderService) AddMasterOrder(masterOrder *model.MasterOrder) int { |
| | | err := model.NewMasterOrderSearch().Create(masterOrder) |
| | | if err != nil { |
| | | return ecode.MasterOrderExist |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (MasterOrderService) DeleteMasterOrder(id int) int { |
| | | _, err := model.NewMasterOrderSearch().SetId(id).Find() |
| | | if err != nil { |
| | | return ecode.MasterOrderNotExist |
| | | } |
| | | |
| | | err = model.NewMasterOrderSearch().SetId(id).Delete() |
| | | if err != nil { |
| | | return ecode.MasterOrderNotExist |
| | | } |
| | | return ecode.OK |
| | | } |
| | | |
| | | func (MasterOrderService) GetMasterOrderList() ([]*model.MasterOrder, int) { |
| | | list, err := model.NewMasterOrderSearch().FindAll() |
| | | if err != nil { |
| | | return nil, ecode.MasterOrderListErr |
| | | } |
| | | |
| | | return list, ecode.OK |
| | | } |
| | | |
| | | func (MasterOrderService) UpdateMasterOrder(masterOrder *model.MasterOrder) int { |
| | | // check masterOrder exist |
| | | _, err := model.NewMasterOrderSearch().SetId(masterOrder.Id).Find() |
| | | if err != nil { |
| | | return ecode.MasterOrderNotExist |
| | | } |
| | | |
| | | err = model.NewMasterOrderSearch().SetId(masterOrder.Id).Update(masterOrder) |
| | | if err != nil { |
| | | return ecode.MasterOrderSetErr |
| | | } |
| | | |
| | | return ecode.OK |
| | | } |