From 80fa90e29844947b26d41c16fb1a48516ec018f8 Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期一, 10 七月 2023 20:28:46 +0800
Subject: [PATCH] add
---
api/v1/index.go | 2
model/request/masterOrder.go | 19 +
api/v1/masterOrder.go | 158 +++++++++
service/masterOrder.go | 54 +++
pkg/ecode/code.go | 8
model/quotation.go | 1
docs/swagger.yaml | 135 ++++++++
docs/docs.go | 214 +++++++++++++
docs/swagger.json | 214 +++++++++++++
model/masterOrder.go | 80 +++++
model/response/response.go | 4
service/index.go | 1
router/masterOrder.go | 19 +
model/index.go | 1
router/index.go | 2
15 files changed, 912 insertions(+), 0 deletions(-)
diff --git a/api/v1/index.go b/api/v1/index.go
index ccc3d5e..a226025 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -32,6 +32,7 @@
PossibilityApi
StatusApi
QuotationApi
+ MasterOrderApi
}
var ApiGroup = new(Group)
@@ -63,4 +64,5 @@
possibilityService = service.ServiceGroup.PossibilityService
statusService = service.ServiceGroup.StatusService
quotationService = service.ServiceGroup.QuotationService
+ masterOrderService = service.ServiceGroup.MasterOrderService
)
diff --git a/api/v1/masterOrder.go b/api/v1/masterOrder.go
new file mode 100644
index 0000000..0cb3a5d
--- /dev/null
+++ b/api/v1/masterOrder.go
@@ -0,0 +1,158 @@
+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
+}
diff --git a/docs/docs.go b/docs/docs.go
index 9a8241c..d9ffe10 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -1580,6 +1580,125 @@
}
}
},
+ "/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": [
@@ -3789,6 +3908,32 @@
}
}
},
+ "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": {
@@ -3820,11 +3965,17 @@
"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"
@@ -3843,6 +3994,9 @@
},
"quotation_status_id": {
"type": "integer"
+ },
+ "sale_chance": {
+ "$ref": "#/definitions/model.SaleChance"
},
"sale_chance_id": {
"type": "integer"
@@ -4426,6 +4580,29 @@
],
"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"
}
}
@@ -5406,6 +5583,32 @@
}
}
},
+ "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": [
@@ -5990,6 +6193,17 @@
}
}
},
+ "response.MasterOrderResponse": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.MasterOrder"
+ }
+ }
+ }
+ },
"response.PageResult": {
"type": "object",
"properties": {
diff --git a/docs/swagger.json b/docs/swagger.json
index f5a60ea..c0e0598 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1568,6 +1568,125 @@
}
}
},
+ "/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": [
@@ -3777,6 +3896,32 @@
}
}
},
+ "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": {
@@ -3808,11 +3953,17 @@
"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"
@@ -3831,6 +3982,9 @@
},
"quotation_status_id": {
"type": "integer"
+ },
+ "sale_chance": {
+ "$ref": "#/definitions/model.SaleChance"
},
"sale_chance_id": {
"type": "integer"
@@ -4414,6 +4568,29 @@
],
"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"
}
}
@@ -5394,6 +5571,32 @@
}
}
},
+ "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": [
@@ -5978,6 +6181,17 @@
}
}
},
+ "response.MasterOrderResponse": {
+ "type": "object",
+ "properties": {
+ "list": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/model.MasterOrder"
+ }
+ }
+ }
+ },
"response.PageResult": {
"type": "object",
"properties": {
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index d6bb274..176ac93 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -331,6 +331,23 @@
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:
@@ -351,10 +368,14 @@
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:
@@ -367,6 +388,8 @@
type: string
quotation_status_id:
type: integer
+ sale_chance:
+ $ref: '#/definitions/model.SaleChance'
sale_chance_id:
type: integer
validity_date:
@@ -763,6 +786,21 @@
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:
@@ -1434,6 +1472,23 @@
- 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:
@@ -1818,6 +1873,13 @@
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:
@@ -2861,6 +2923,79 @@
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:
diff --git a/model/index.go b/model/index.go
index 584e114..cda1221 100644
--- a/model/index.go
+++ b/model/index.go
@@ -47,6 +47,7 @@
Possibility{},
Status{},
Quotation{},
+ MasterOrder{},
)
return err
}
diff --git a/model/masterOrder.go b/model/masterOrder.go
new file mode 100644
index 0000000..bd0a02c
--- /dev/null
+++ b/model/masterOrder.go
@@ -0,0 +1,80 @@
+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:璐熻矗浜篿d"`
+ 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
+}
diff --git a/model/quotation.go b/model/quotation.go
index d5fdec8..878f211 100644
--- a/model/quotation.go
+++ b/model/quotation.go
@@ -22,6 +22,7 @@
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 鎶ヤ环鍗曟悳绱㈡潯浠�
diff --git a/model/request/masterOrder.go b/model/request/masterOrder.go
new file mode 100644
index 0000000..f024b3c
--- /dev/null
+++ b/model/request/masterOrder.go
@@ -0,0 +1,19 @@
+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
+}
diff --git a/model/response/response.go b/model/response/response.go
index 51423c7..2142098 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -125,4 +125,8 @@
QuotationResponse struct {
List []*model.Quotation `json:"list"`
}
+
+ MasterOrderResponse struct {
+ List []*model.MasterOrder `json:"list"`
+ }
)
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index d0f5a81..e16bafd 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -183,4 +183,12 @@
QuotationSetErr = 2500004 // 璁剧疆鎶ヤ环鍗曞け璐�
QuotationUpdateErr = 2500005 // 鏇存柊鎶ヤ环鍗曞け璐�
QuotationDeleteErr = 2500006 // 鍒犻櫎鎶ヤ环鍗曞け璐�
+
+ MasterOrderExist = 2600001 // 涓昏鍗曞凡瀛樺湪
+ MasterOrderNotExist = 2600002 // 涓昏鍗曚笉瀛樺湪
+ MasterOrderListErr = 2600003 // 鑾峰彇涓昏鍗曞垪琛ㄥけ璐�
+ MasterOrderSetErr = 2600004 // 璁剧疆涓昏鍗曞け璐�
+ MasterOrderUpdateErr = 2600005 // 鏇存柊涓昏鍗曞け璐�
+ MasterOrderDeleteErr = 2600006 // 鍒犻櫎涓昏鍗曞け璐�
+
)
diff --git a/router/index.go b/router/index.go
index be18007..9346158 100644
--- a/router/index.go
+++ b/router/index.go
@@ -38,6 +38,7 @@
PossibilityRouter
StatusRouter
QuotationRouter
+ MasterOrderRouter
}
func InitRouter() *gin.Engine {
@@ -93,6 +94,7 @@
routerGroup.InitPossibilityRouter(PrivateGroup) // 娉ㄥ唽possibility璺敱
routerGroup.InitStatusRouter(PrivateGroup) // 娉ㄥ唽status璺敱
routerGroup.InitQuotationRouter(PrivateGroup) // 娉ㄥ唽quotation璺敱
+ routerGroup.InitMasterOrderRouter(PrivateGroup) // 娉ㄥ唽masterOrder璺敱
}
return Router
}
diff --git a/router/masterOrder.go b/router/masterOrder.go
new file mode 100644
index 0000000..d3d4cf6
--- /dev/null
+++ b/router/masterOrder.go
@@ -0,0 +1,19 @@
+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) // 鑾峰彇涓昏鍗曞垪琛�
+ }
+}
diff --git a/service/index.go b/service/index.go
index c055e22..26577e4 100644
--- a/service/index.go
+++ b/service/index.go
@@ -27,6 +27,7 @@
PossibilityService
StatusService
QuotationService
+ MasterOrderService
}
var ServiceGroup = new(Group)
diff --git a/service/masterOrder.go b/service/masterOrder.go
new file mode 100644
index 0000000..c1255a1
--- /dev/null
+++ b/service/masterOrder.go
@@ -0,0 +1,54 @@
+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
+}
--
Gitblit v1.8.0