From 34c99ef40f26f8812610e7ca14c56825f9bf2c3c Mon Sep 17 00:00:00 2001
From: wangpengfei <274878379@qq.com>
Date: 星期五, 21 七月 2023 11:46:56 +0800
Subject: [PATCH] add

---
 api/v1/index.go            |    2 
 service/dataServer.go      |    5 
 model/request/accountId.go |   15 +
 api/v1/accountId.go        |  113 ++++++++
 pkg/ecode/code.go          |    9 
 docs/swagger.yaml          |  118 ++++++++
 model/accountId.go         |   85 ++++++
 docs/docs.go               |  188 +++++++++++++
 docs/swagger.json          |  188 +++++++++++++
 model/response/response.go |    8 
 service/index.go           |    1 
 service/accountId.go       |   69 ++++
 model/index.go             |    1 
 router/index.go            |    2 
 router/accountId.go        |   20 +
 15 files changed, 823 insertions(+), 1 deletions(-)

diff --git a/api/v1/accountId.go b/api/v1/accountId.go
new file mode 100644
index 0000000..493633b
--- /dev/null
+++ b/api/v1/accountId.go
@@ -0,0 +1,113 @@
+
+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 AccountIdApi struct{}
+
+// Add
+//
+//	@Tags		AccountId
+//	@Summary	娣诲姞璐︽埛
+//	@Produce	application/json
+//	@Param		object	body		request.AddAccountId	true	"鏌ヨ鍙傛暟"
+//	@Success	200		{object}	contextx.Response{}
+//	@Router		/api/accountId/add [post]
+func (s *AccountIdApi) Add(c *gin.Context) {
+	var params request.AddAccountId
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	accountId := new(model.AccountId)
+	accountId.Name = params.Name
+
+	errCode := accountIdService.AddAccountId(accountId)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// Delete
+//
+//	@Tags		AccountId
+//	@Summary	鍒犻櫎璐︽埛
+//	@Produce	application/json
+//	@Param		id	path		int	true	"鏌ヨ鍙傛暟"
+//	@Success	200	{object}	contextx.Response{}
+//	@Router		/api/accountId/delete/{id} [delete]
+func (s *AccountIdApi) Delete(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	id, _ := strconv.Atoi(c.Param("id"))
+	errCode := accountIdService.DeleteAccountId(id)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// Update
+//
+//	@Tags		AccountId
+//	@Summary	鏇存柊璐︽埛
+//	@Produce	application/json
+//	@Param		object	body		request.UpdateAccountIds	true	"鏌ヨ鍙傛暟"
+//	@Success	200		{object}	contextx.Response{}
+//	@Router		/api/accountId/update [put]
+func (s *AccountIdApi) Update(c *gin.Context) {
+	var params request.UpdateAccountIds
+	ctx, ok := contextx.NewContext(c, &params)
+	if !ok {
+		return
+	}
+
+	errCode := accountIdService.UpdateAccountId(params.AccountIds)
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.Ok()
+}
+
+// List
+//
+//	@Tags		AccountId
+//	@Summary	鑾峰彇璐︽埛鍒楄〃
+//	@Produce	application/json
+//	@Success	200	{object}	contextx.Response{data=response.AccountIdResponse}
+//	@Router		/api/accountId/list [get]
+func (s *AccountIdApi) List(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+
+	accountIds, errCode := accountIdService.GetAccountIdList()
+	if errCode != ecode.OK {
+		ctx.Fail(errCode)
+		return
+	}
+
+	ctx.OkWithDetailed(response.AccountIdResponse{
+		List: accountIds,
+	})
+}
diff --git a/api/v1/index.go b/api/v1/index.go
index 6b430b3..bc2a808 100644
--- a/api/v1/index.go
+++ b/api/v1/index.go
@@ -5,6 +5,7 @@
 )
 
 type Group struct {
+    AccountIdApi
     IsInvoiceApi
     RefundMethodApi
     ServiceContractTypeApi
@@ -118,4 +119,5 @@
    serviceContractTypeService    = service.ServiceGroup.ServiceContractTypeService
    refundMethodService    = service.ServiceGroup.RefundMethodService
    isInvoiceService    = service.ServiceGroup.IsInvoiceService
+   accountIdService    = service.ServiceGroup.AccountIdService
 )
\ No newline at end of file
diff --git a/docs/docs.go b/docs/docs.go
index c6d453c..e97a5e1 100644
--- a/docs/docs.go
+++ b/docs/docs.go
@@ -16,6 +16,125 @@
     "host": "{{.Host}}",
     "basePath": "{{.BasePath}}",
     "paths": {
+        "/api/accountId/add": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "娣诲姞璐︽埛",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.AddAccountId"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/accountId/delete/{id}": {
+            "delete": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "鍒犻櫎璐︽埛",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "id",
+                        "in": "path",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/accountId/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "鑾峰彇璐︽埛鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.AccountIdResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/api/accountId/update": {
+            "put": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "鏇存柊璐︽埛",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.UpdateAccountIds"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api/authority/add": {
             "post": {
                 "security": [
@@ -6297,6 +6416,17 @@
                 }
             }
         },
+        "model.AccountId": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
         "model.Authority": {
             "type": "object",
             "properties": {
@@ -7722,6 +7852,17 @@
                     "type": "string"
                 },
                 "uuid": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.AddAccountId": {
+            "type": "object",
+            "required": [
+                "name"
+            ],
+            "properties": {
+                "name": {
                     "type": "string"
                 }
             }
@@ -9260,6 +9401,35 @@
                     "type": "array",
                     "items": {
                         "type": "integer"
+                    }
+                }
+            }
+        },
+        "request.UpdateAccountId": {
+            "type": "object",
+            "required": [
+                "id",
+                "name"
+            ],
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.UpdateAccountIds": {
+            "type": "object",
+            "required": [
+                "account_id"
+            ],
+            "properties": {
+                "account_id": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/request.UpdateAccountId"
                     }
                 }
             }
@@ -10830,6 +11000,17 @@
                 }
             }
         },
+        "response.AccountIdResponse": {
+            "type": "object",
+            "properties": {
+                "list": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.AccountId"
+                    }
+                }
+            }
+        },
         "response.CityResponse": {
             "type": "object",
             "properties": {
@@ -10932,6 +11113,13 @@
         "response.DataResponse": {
             "type": "object",
             "properties": {
+                "accountId": {
+                    "description": "璐︽埛",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.AccountId"
+                    }
+                },
                 "city": {
                     "description": "鍩庡競鏁版嵁",
                     "type": "array",
diff --git a/docs/swagger.json b/docs/swagger.json
index 148c7e1..1025e7b 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -4,6 +4,125 @@
         "contact": {}
     },
     "paths": {
+        "/api/accountId/add": {
+            "post": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "娣诲姞璐︽埛",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.AddAccountId"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/accountId/delete/{id}": {
+            "delete": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "鍒犻櫎璐︽埛",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "id",
+                        "in": "path",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
+        "/api/accountId/list": {
+            "get": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "鑾峰彇璐︽埛鍒楄〃",
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "allOf": [
+                                {
+                                    "$ref": "#/definitions/contextx.Response"
+                                },
+                                {
+                                    "type": "object",
+                                    "properties": {
+                                        "data": {
+                                            "$ref": "#/definitions/response.AccountIdResponse"
+                                        }
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                }
+            }
+        },
+        "/api/accountId/update": {
+            "put": {
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "AccountId"
+                ],
+                "summary": "鏇存柊璐︽埛",
+                "parameters": [
+                    {
+                        "description": "鏌ヨ鍙傛暟",
+                        "name": "object",
+                        "in": "body",
+                        "required": true,
+                        "schema": {
+                            "$ref": "#/definitions/request.UpdateAccountIds"
+                        }
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/contextx.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/api/authority/add": {
             "post": {
                 "security": [
@@ -6285,6 +6404,17 @@
                 }
             }
         },
+        "model.AccountId": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
         "model.Authority": {
             "type": "object",
             "properties": {
@@ -7710,6 +7840,17 @@
                     "type": "string"
                 },
                 "uuid": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.AddAccountId": {
+            "type": "object",
+            "required": [
+                "name"
+            ],
+            "properties": {
+                "name": {
                     "type": "string"
                 }
             }
@@ -9248,6 +9389,35 @@
                     "type": "array",
                     "items": {
                         "type": "integer"
+                    }
+                }
+            }
+        },
+        "request.UpdateAccountId": {
+            "type": "object",
+            "required": [
+                "id",
+                "name"
+            ],
+            "properties": {
+                "id": {
+                    "type": "integer"
+                },
+                "name": {
+                    "type": "string"
+                }
+            }
+        },
+        "request.UpdateAccountIds": {
+            "type": "object",
+            "required": [
+                "account_id"
+            ],
+            "properties": {
+                "account_id": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/request.UpdateAccountId"
                     }
                 }
             }
@@ -10818,6 +10988,17 @@
                 }
             }
         },
+        "response.AccountIdResponse": {
+            "type": "object",
+            "properties": {
+                "list": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.AccountId"
+                    }
+                }
+            }
+        },
         "response.CityResponse": {
             "type": "object",
             "properties": {
@@ -10920,6 +11101,13 @@
         "response.DataResponse": {
             "type": "object",
             "properties": {
+                "accountId": {
+                    "description": "璐︽埛",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/model.AccountId"
+                    }
+                },
                 "city": {
                     "description": "鍩庡競鏁版嵁",
                     "type": "array",
diff --git a/docs/swagger.yaml b/docs/swagger.yaml
index b55b2b0..b69ef06 100644
--- a/docs/swagger.yaml
+++ b/docs/swagger.yaml
@@ -60,6 +60,13 @@
       msg:
         type: string
     type: object
+  model.AccountId:
+    properties:
+      id:
+        type: integer
+      name:
+        type: string
+    type: object
   model.Authority:
     properties:
       authorityName:
@@ -997,6 +1004,13 @@
         type: string
       uuid:
         type: string
+    type: object
+  request.AddAccountId:
+    properties:
+      name:
+        type: string
+    required:
+    - name
     type: object
   request.AddAuthority:
     properties:
@@ -2038,6 +2052,25 @@
         items:
           type: integer
         type: array
+    type: object
+  request.UpdateAccountId:
+    properties:
+      id:
+        type: integer
+      name:
+        type: string
+    required:
+    - id
+    - name
+    type: object
+  request.UpdateAccountIds:
+    properties:
+      account_id:
+        items:
+          $ref: '#/definitions/request.UpdateAccountId'
+        type: array
+    required:
+    - account_id
     type: object
   request.UpdateCities:
     properties:
@@ -3090,6 +3123,13 @@
     required:
     - timely_rate
     type: object
+  response.AccountIdResponse:
+    properties:
+      list:
+        items:
+          $ref: '#/definitions/model.AccountId'
+        type: array
+    type: object
   response.CityResponse:
     properties:
       list:
@@ -3155,6 +3195,11 @@
     type: object
   response.DataResponse:
     properties:
+      accountId:
+        description: 璐︽埛
+        items:
+          $ref: '#/definitions/model.AccountId'
+        type: array
       city:
         description: 鍩庡競鏁版嵁
         items:
@@ -3568,6 +3613,79 @@
 info:
   contact: {}
 paths:
+  /api/accountId/add:
+    post:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.AddAccountId'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 娣诲姞璐︽埛
+      tags:
+      - AccountId
+  /api/accountId/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:
+      - AccountId
+  /api/accountId/list:
+    get:
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            allOf:
+            - $ref: '#/definitions/contextx.Response'
+            - properties:
+                data:
+                  $ref: '#/definitions/response.AccountIdResponse'
+              type: object
+      summary: 鑾峰彇璐︽埛鍒楄〃
+      tags:
+      - AccountId
+  /api/accountId/update:
+    put:
+      parameters:
+      - description: 鏌ヨ鍙傛暟
+        in: body
+        name: object
+        required: true
+        schema:
+          $ref: '#/definitions/request.UpdateAccountIds'
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/contextx.Response'
+      summary: 鏇存柊璐︽埛
+      tags:
+      - AccountId
   /api/authority/add:
     post:
       consumes:
diff --git a/model/accountId.go b/model/accountId.go
new file mode 100644
index 0000000..6365041
--- /dev/null
+++ b/model/accountId.go
@@ -0,0 +1,85 @@
+package model
+
+import (
+	"aps_crm/pkg/mysqlx"
+	"gorm.io/gorm"
+)
+
+type (
+	// AccountId 鍟嗘満闃舵
+	AccountId struct {
+		Id   int    `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
+		Name string `json:"name" gorm:"column:name;type:varchar(255);comment:鍟嗘満闃舵鍚嶇О"`
+	}
+   
+	AccountIdSearch struct {
+		AccountId
+		Orm *gorm.DB
+	}
+)
+
+func (AccountId) TableName() string {
+	return "account_id"
+}
+
+func NewAccountIdSearch() *AccountIdSearch {
+	return &AccountIdSearch{
+		Orm: mysqlx.GetDB(),
+	}
+}
+
+func (slf *AccountIdSearch) build() *gorm.DB {
+	var db = slf.Orm.Model(&AccountId{})
+	if slf.Id != 0 {
+		db = db.Where("id = ?", slf.Id)
+	}
+	if slf.Name != "" {
+		db = db.Where("name = ?", slf.Name)
+	}
+
+	return db
+}
+
+func (slf *AccountIdSearch) Create(record *AccountId) error {
+	var db = slf.build()
+	return db.Create(record).Error
+}
+
+func (slf *AccountIdSearch) Delete() error {
+	var db = slf.build()
+	return db.Delete(&AccountId{}).Error
+}
+
+func (slf *AccountIdSearch) Update(record *AccountId) error {
+	var db = slf.build()
+	return db.Updates(record).Error
+}
+
+func (slf *AccountIdSearch) Find() (*AccountId, error) {
+	var db = slf.build()
+	var record = new(AccountId)
+	err := db.First(record).Error
+	return record, err
+}
+
+func (slf *AccountIdSearch) FindAll() ([]*AccountId, error) {
+	var db = slf.build()
+	var records = make([]*AccountId, 0)
+	err := db.Find(&records).Error
+	return records, err
+}
+
+func (slf *AccountIdSearch) SetId(id int) *AccountIdSearch {
+	slf.Id = id
+	return slf
+}
+
+func (slf *AccountIdSearch) SetName(name string) *AccountIdSearch {
+	slf.Name = name
+	return slf
+}
+
+func (slf *AccountIdSearch) Updates(data map[string]interface{}) error {
+	var db = slf.build()
+	return db.Updates(data).Error
+}
diff --git a/model/index.go b/model/index.go
index 9a4e4b7..73726d6 100644
--- a/model/index.go
+++ b/model/index.go
@@ -74,6 +74,7 @@
         ServiceContractType{},
         RefundMethod{},
         IsInvoice{},
+        AccountId{},
 	)
 	return err
 }
\ No newline at end of file
diff --git a/model/request/accountId.go b/model/request/accountId.go
new file mode 100644
index 0000000..c0e2efd
--- /dev/null
+++ b/model/request/accountId.go
@@ -0,0 +1,15 @@
+
+package request
+
+type AddAccountId struct {
+	Name string `  json:"name" binding:"required"`
+}
+
+type UpdateAccountId struct {
+	Id   int    `json:"id" binding:"required"`
+	Name string `json:"name" binding:"required"`
+}
+
+type UpdateAccountIds struct {
+	AccountIds []*UpdateAccountId `json:"account_id" binding:"required"`
+}
diff --git a/model/response/response.go b/model/response/response.go
index 8fff1d9..7975cd3 100644
--- a/model/response/response.go
+++ b/model/response/response.go
@@ -180,6 +180,10 @@
 
 	DataResponse struct {
 
+		// 璐︽埛
+		AccountId []*model.AccountId `json:"accountId"`
+
+
 		// 鏄惁寮�绁�
 		IsInvoice []*model.IsInvoice `json:"isInvoice"`
 
@@ -294,4 +298,8 @@
 	IsInvoiceResponse struct {
 		List []*model.IsInvoice `json:"list"`
 	}
+
+	AccountIdResponse struct {
+		List []*model.AccountId `json:"list"`
+	}
 )
\ No newline at end of file
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index c2efed0..9549f13 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -352,4 +352,11 @@
 	IsInvoiceSetErr    = 5100004 // 璁剧疆鏄惁寮�绁ㄥけ璐�
 	IsInvoiceUpdateErr = 5100005 // 鏇存柊鏄惁寮�绁ㄥけ璐�
 
-)
+
+	AccountIdExist     = 5000001 // 璐︽埛宸插瓨鍦�
+	AccountIdNotExist  = 5000002 // 璐︽埛涓嶅瓨鍦�
+	AccountIdListErr   = 5000003 // 鑾峰彇璐︽埛鍒楄〃澶辫触
+	AccountIdSetErr    = 5000004 // 璁剧疆璐︽埛澶辫触
+	AccountIdUpdateErr = 5000005 // 鏇存柊璐︽埛澶辫触
+
+)
\ No newline at end of file
diff --git a/router/accountId.go b/router/accountId.go
new file mode 100644
index 0000000..4c0e173
--- /dev/null
+++ b/router/accountId.go
@@ -0,0 +1,20 @@
+
+package router
+
+import (
+	v1 "aps_crm/api/v1"
+	"github.com/gin-gonic/gin"
+)
+
+type AccountIdRouter struct{}
+
+func (s *AccountIdRouter) InitAccountIdRouter(router *gin.RouterGroup) {
+	accountIdRouter := router.Group("accountId")
+	accountIdApi := v1.ApiGroup.AccountIdApi
+	{
+		accountIdRouter.POST("add", accountIdApi.Add)             // 娣诲姞$CName$
+		accountIdRouter.DELETE("delete/:id", accountIdApi.Delete) // 鍒犻櫎$CName$
+		accountIdRouter.PUT("update", accountIdApi.Update)        // 鏇存柊$CName$
+		accountIdRouter.GET("list", accountIdApi.List)            // 鑾峰彇$CName$鍒楄〃
+	}
+}
\ No newline at end of file
diff --git a/router/index.go b/router/index.go
index 8adce2d..b03939e 100644
--- a/router/index.go
+++ b/router/index.go
@@ -11,6 +11,7 @@
 )
 
 type Group struct {
+    AccountIdRouter
     IsInvoiceRouter
     RefundMethodRouter
     ServiceContractTypeRouter
@@ -147,6 +148,7 @@
         routerGroup.InitServiceContractTypeRouter(PrivateGroup)
         routerGroup.InitRefundMethodRouter(PrivateGroup)
         routerGroup.InitIsInvoiceRouter(PrivateGroup)
+        routerGroup.InitAccountIdRouter(PrivateGroup)
 	}
 	return Router
 }
\ No newline at end of file
diff --git a/service/accountId.go b/service/accountId.go
new file mode 100644
index 0000000..a53d7eb
--- /dev/null
+++ b/service/accountId.go
@@ -0,0 +1,69 @@
+
+package service
+
+import (
+	"aps_crm/model"
+	"aps_crm/model/request"
+	"aps_crm/pkg/ecode"
+)
+
+type AccountIdService struct{}
+
+func (AccountIdService) AddAccountId(accountId *model.AccountId) int {
+	err := model.NewAccountIdSearch().Create(accountId)
+	if err != nil {
+		return ecode.AccountIdExist
+	}
+
+	return ecode.OK
+}
+
+func (AccountIdService) DeleteAccountId(id int) int {
+	_, err := model.NewAccountIdSearch().SetId(id).Find()
+	if err != nil {
+		return ecode.AccountIdNotExist
+	}
+
+	err = model.NewAccountIdSearch().SetId(id).Delete()
+	if err != nil {
+		return ecode.AccountIdNotExist
+	}
+	return ecode.OK
+}
+
+func (AccountIdService) GetAccountIdList() ([]*model.AccountId, int) {
+	list, err := model.NewAccountIdSearch().FindAll()
+	if err != nil {
+		return nil, ecode.AccountIdListErr
+	}
+
+	return list, ecode.OK
+}
+
+func (AccountIdService) UpdateAccountId(accountIds []*request.UpdateAccountId) int {
+	for _, v := range accountIds {
+		// check accountId exist
+		_, err := model.NewAccountIdSearch().SetId(v.Id).Find()
+		if err != nil {
+			return ecode.AccountIdNotExist
+		}
+
+		err = model.NewAccountIdSearch().SetId(v.Id).Updates(map[string]interface{}{
+			"name": v.Name,
+		})
+		if err != nil {
+			return ecode.AccountIdSetErr
+		}
+	}
+
+	return ecode.OK
+}
+
+func (AccountIdService) GetAccountIdDetail(id int) (*model.AccountId, int) {
+	accountId, err := model.NewAccountIdSearch().SetId(id).Find()
+	if err != nil {
+		return nil, ecode.AccountIdNotExist
+	}
+
+	return accountId, ecode.OK
+}
diff --git a/service/dataServer.go b/service/dataServer.go
index cc1595f..71f3fb5 100644
--- a/service/dataServer.go
+++ b/service/dataServer.go
@@ -126,6 +126,11 @@
 	data.IsInvoice = isInvoiceList
 
 
+	// get AccountId list
+	accountIdList, _ := ServiceGroup.GetAccountIdList()
+	data.AccountId = accountIdList
+
+
 	errCode = ecode.OK
 
 	return
diff --git a/service/index.go b/service/index.go
index 84214db..261049d 100644
--- a/service/index.go
+++ b/service/index.go
@@ -55,6 +55,7 @@
     ServiceContractTypeService
     RefundMethodService
     IsInvoiceService
+    AccountIdService
 }
 
 var ServiceGroup = new(Group)
\ No newline at end of file

--
Gitblit v1.8.0