package api import ( "ArmedPolice/app/controller/manage" "ArmedPolice/app/service" "github.com/gin-gonic/gin" ) type Manage struct{} type ( // manageEquipmentForm 装备参数信息 manageEquipmentForm struct { Code string `json:"code" form:"code" binding:"required"` Title string `json:"title" form:"title" binding:"required"` ImageForm Config string `json:"config" form:"config"` Remark string `json:"remark" form:"remark"` } // manageMaterialForm 装备参数信息 manageMaterialForm struct { ManufacturerID uint64 `json:"manufacturer_id" form:"manufacturer_id"` Code string `json:"code" form:"code" binding:"required"` Title string `json:"title" form:"title" binding:"required"` ImageForm Position string `json:"position" form:"position"` Remark string `json:"remark" form:"remark"` Unit int `json:"unit" form:"Unit" binding:"required"` } ) /** * @apiDefine Manage 数据管理 */ /** * @api {post} /api/v1/manage/equipment 装备信息 * @apiVersion 1.0.0 * @apiName ManageEquipment * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiParam {String} [parent_id="''"] 父集ID * @apiParam {String} [title="''"] 名称 * @apiParam {Number} current 当前页 * @apiParam {Number} page_size 页展示数 * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {Object} data.data 具体信息 * @apiSuccess (200) {String} data.data.id ID * @apiSuccess (200) {String} data.data.code 装备编码 * @apiSuccess (200) {String} data.data.title 装备名称 * @apiSuccess (200) {String} data.data.image 装备图片 * @apiSuccess (200) {String} data.data.created_at 创建时间 * @apiSuccess (200) {Object} data.data.childrens 子集 * @apiSuccess (200) {Number} data.count 总数 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": { * "data": [ * { * "id": "EgmJ4Ga7LQ", * "code": "S110", * "title": "装甲车-11", * "image": "http://192.168.31.195:8030/", * "created_at": "2021-11-09T13:39:19+08:00", * "children": [] * } * ], * "count": 1 * } * } */ func (*Manage) Equipment(c *gin.Context) { form := &struct { ParentID uint64 `json:"parent_id" form:"parent_id"` Title string `json:"title" form:"title"` PageForm }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } data, err := manage.NewEquipment()(getSession()(c).(*service.Session)).List(form.ParentID, form.Title, form.Page, form.PageSize) APIResponse(err, data)(c) } /** * @api {get} /api/v1/manage/equipment/select 装备Select信息 * @apiVersion 1.0.0 * @apiName ManageEquipmentSelect * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {String} data.id ID * @apiSuccess (200) {String} data.code 装备编码 * @apiSuccess (200) {String} data.title 装备名称 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": [ * { * "id": "EgmJ4Ga7LQ", * "code": "S110", * "title": "装甲车-11", * } * ] * } */ func (*Manage) EquipmentSelect(c *gin.Context) { data, err := manage.NewEquipment()(getSession()(c).(*service.Session)).Select() APIResponse(err, data)(c) } /** * @api {post} /api/v1/manage/equipment/detail 装备详细信息 * @apiVersion 1.0.0 * @apiName ManageEquipmentDetail * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiParam {String} id ID * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {String} data.id ID * @apiSuccess (200) {String} data.code 装备编码 * @apiSuccess (200) {String} data.title 装备名称 * @apiSuccess (200) {String} data.image 装备图片 * @apiSuccess (200) {String} data.created_at 创建时间 * @apiSuccess (200) {Object} data.materials 器材信息 * @apiSuccess (200) {String} data.materials.id 器材ID * @apiSuccess (200) {String} data.materials.code 器材编码 * @apiSuccess (200) {String} data.materials.title 器材名称 * @apiSuccess (200) {Number} data.materials.unit 器材单位 * @apiSuccess (200) {String} data.materials.manufacturer_name 器材制造商 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": [ * { * "id": "EgmJ4Ga7LQ", * "code": "S110", * "title": "装甲车-11", * "image": "http://192.168.31.195:8030/", * "config": "", * "remark": "", * "created_at": "2021-11-09T13:39:19+08:00", * "materials": [ * { * "id": "EgmJ4Ga7LQ", * "code": "S110", * "title": "装甲车-11", * "unit": 1, * "manufacturer_name": "测试的" * } * ] * } * ] * } */ func (*Manage) EquipmentDetail(c *gin.Context) { form := new(IDStringForm) if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } data, err := manage.NewEquipment()(getSession()(c).(*service.Session)).Detail(form.Convert()) APIResponse(err, data)(c) } func (*Manage) EquipmentAdd(c *gin.Context) { form := new(manageEquipmentForm) if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewEquipment()(getSession()(c).(*service.Session)).Form(&manage.EquipmentParams{ Code: form.Code, Title: form.Title, Image: form.FilterImageURL(), Config: form.Config, Remark: form.Remark, }) APIResponse(err)(c) } func (*Manage) EquipmentEdit(c *gin.Context) { form := &struct { IDStringForm manageEquipmentForm }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewEquipment()(getSession()(c).(*service.Session)).Form(&manage.EquipmentParams{ ID: form.Convert(), Code: form.Code, Title: form.Title, Image: form.FilterImageURL(), Config: form.Config, Remark: form.Remark, }) APIResponse(err)(c) } func (*Manage) EquipmentDelete(c *gin.Context) { form := new(IDStringForm) if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewEquipment()(getSession()(c).(*service.Session)).Delete(form.Convert()) APIResponse(err)(c) } func (*Manage) Material(c *gin.Context) { form := &struct { ManufacturerID uint64 `json:"manufacturer_id" form:"manufacturer_id"` SupplierID uint64 `json:"supplier_id" form:"supplier_id"` Code string `json:"code" form:"code"` Title string `json:"title" form:"title"` PageForm }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } data, err := manage.NewMaterial()(getSession()(c).(*service.Session)). List(form.ManufacturerID, form.SupplierID, form.Code, form.Title, form.Page, form.PageSize) APIResponse(err, data)(c) } /** * @api {get} /api/v1/manage/material/select 器材Select信息 * @apiVersion 1.0.0 * @apiName ManageMaterialSelect * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {String} data.id ID * @apiSuccess (200) {String} data.code 装备编码 * @apiSuccess (200) {String} data.title 装备名称 * @apiSuccess (200) {Float} data.price 单价 * @apiSuccess (200) {String} data.manufacturer_name 制造商 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": [ * { * "id": "EgmJ4Ga7LQ", * "code": "S110", * "title": "装甲车-11", * "price": 8.88, * "manufacturer_name": "供应商", * } * ] * } */ func (*Manage) MaterialSelect(c *gin.Context) { data, err := manage.NewMaterial()(getSession()(c).(*service.Session)).Select() APIResponse(err, data)(c) } func (*Manage) MaterialAdd(c *gin.Context) { form := new(manageMaterialForm) if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewMaterial()(getSession()(c).(*service.Session)).Form(&manage.MaterialParams{ ManufacturerID: form.ManufacturerID, Code: form.Code, Title: form.Title, Image: form.FilterImageURL(), Position: form.Position, Remark: form.Remark, Unit: form.Unit, }) APIResponse(err)(c) } func (*Manage) MaterialEdit(c *gin.Context) { form := &struct { IDStringForm manageMaterialForm }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewMaterial()(getSession()(c).(*service.Session)).Form(&manage.MaterialParams{ ID: form.Convert(), ManufacturerID: form.ManufacturerID, Code: form.Code, Title: form.Title, Image: form.FilterImageURL(), Position: form.Position, Remark: form.Remark, Unit: form.Unit, }) APIResponse(err)(c) } func (*Manage) MaterialDelete(c *gin.Context) { form := new(IDStringForm) if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewMaterial()(getSession()(c).(*service.Session)).Delete(form.Convert()) APIResponse(err)(c) } /** * @api {post} /api/v1/manage/material/supplier/select 器材供应商信息 * @apiVersion 1.0.0 * @apiName ManageMaterialSupplierSelect * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiParam {String} material_id 器材ID * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {String} data.id ID * @apiSuccess (200) {String} data.supplier_name 供应商名称 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": [ * { * "id": "EgmJ4Ga7LQ", * "supplier_name": "供应商名称", * } * ] * } */ func (*Manage) MaterialSupplierSelect(c *gin.Context) { form := &struct { MaterialID string `json:"material_id" form:"material_id" binding:"required"` }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } obj := &IDStringForm{ID: form.MaterialID} data, err := manage.NewMaterialSuppler()(getSession()(c).(*service.Session)).Select(obj.Convert()) APIResponse(err, data)(c) } /** * @api {post} /api/v1/manage/material/supplier/bind 器材供应商绑定 * @apiVersion 1.0.0 * @apiName ManageMaterialSupplierBind * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiParam {String} material_id 器材ID * @apiParam {String} supplier_id 供应商ID * @apiParam {Float} stock 库存数 * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": null * } */ func (*Manage) MaterialSupplierBind(c *gin.Context) { form := &struct { MaterialID string `json:"material_id" form:"material_id" binding:"required"` SupplierID string `json:"supplier_id" form:"supplier_id" binding:"required"` Stock float64 `json:"stock" form:"stock"` }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } obj := &IDStringForm{ID: form.MaterialID} materialID := obj.Convert() obj.ID = form.SupplierID supplierID := obj.Convert() err := manage.NewMaterialSuppler()(getSession()(c).(*service.Session)).Form(materialID, supplierID, form.Stock) APIResponse(err)(c) } /** * @api {post} /api/v1/manage/material/supplier/delete 器材供应商删除 * @apiVersion 1.0.0 * @apiName ManageMaterialSupplierDelete * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiParam {String} id ID * * @apiSuccess (200) {Object} data 数据信息 * @apiSuccess (200) {Number} code 成功响应状态码! * @apiSuccess (200) {String} msg 成功提示 * * @apiSuccessExample {json} Success response: * HTTPS 200 OK * { * "code": 200 * "msg": "ok" * "data": null * } */ func (*Manage) MaterialSupplierDelete(c *gin.Context) { form := new(IDStringForm) if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } err := manage.NewMaterialSuppler()(getSession()(c).(*service.Session)).Delete(form.Convert()) APIResponse(err)(c) }