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 {post} /api/v1/manage/equipment/detail 装备详细信息 * @apiVersion 1.0.0 * @apiName ManageEquipmentDetail * @apiGroup Manage * * @apiHeader {string} x-token token * * @apiParam {String} [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) } 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) }