├── .babelrc ├── .gitattributes ├── .gitignore ├── .gopmfile ├── .travis.yml ├── BUG.md ├── ERRORS.md ├── PLUGS.md ├── README.md ├── Single_cache └── .gitignore ├── UPDATE.MD ├── conf ├── example │ └── app.conf.example └── rbac_model.conf ├── controllers ├── AnnotationController.go ├── AnnotationFileController.go ├── AnnotationItemController.go ├── AnnotationRecordController.go ├── AnnotationReturnController.go ├── ArticleController.go ├── BackendUserController.go ├── BaseAnnotationController.go ├── BaseController.go ├── BaseOrderController.go ├── CiqController.go ├── ClearanceController.go ├── CompanyContactController.go ├── CompanyController.go ├── CompanyForeignController.go ├── CompanySealController.go ├── FileController.go ├── HandBookController.go ├── HomeController.go ├── HsCodeController.go ├── MainController.go ├── OrderContainerController.go ├── OrderController.go ├── OrderDocumentController.go ├── OrderFileController.go ├── OrderItemController.go ├── OrderItemLimitController.go ├── OrderItemLimitVinController.go ├── OrderRecordController.go ├── OrderReturnController.go ├── PdfController.go ├── ResourceController.go ├── RoleController.go ├── SettingController.go ├── SingeController.go ├── SoapController.go ├── WebHookController.go └── WebSocketController.go ├── database ├── migrations │ └── .gitignore └── sql │ └── bee_custom.sql ├── enums ├── Common.go └── Pdf.go ├── excel ├── 01.关区代码.xlsx ├── 02.运输方式代码表.xlsx ├── 03.监管方式代码表.xlsx ├── 04.征免性质代码表.xlsx ├── 05.国别(地区)代码表.xlsx ├── 06.港口代码表.xlsx ├── 07.国内地区(境内目的地)代码表.xlsx ├── 08.成交方式代码表.xlsx ├── 09.货币代码表.xlsx ├── 10.集装箱规格代码表.xlsx ├── 11.计量单位代码表.xlsx ├── 12.征减免税方式代码表.xlsx ├── 13.包装种类代码表.xlsx ├── 14.国内(入离境)口岸代码表.xlsx ├── 15.检验检疫机关代码表.xlsx ├── 16.关联理由代码表.xlsx ├── 17.监管证件(随附单证)代码表.xlsx ├── 18.企业资质代码表.xlsx ├── 19.用途代码表.xlsx ├── 20.原产地区代码表.xlsx ├── 201900000000034151-二期手册.xlsx ├── 201900000000036663-二期账册.xlsx ├── 21.危包规格代码表.xlsx ├── 22.货物属性代码表.xlsx ├── 23.国内行政区划(目的地)代码.xlsx ├── 24.随附单证类别代码.xlsx ├── 25.检验检疫名称参数.xls ├── 25.检验检疫名称参数.xlsx ├── 26.许可证类别代码表.xlsx ├── 27.实施检验的进出口商品目录调整表.xls ├── orc │ ├── cmake-3.16.2-win64-x64.msi │ ├── leptonica.rar │ ├── plat_cas_verifycode_gen.jpg │ ├── plat_cas_verifycode_gen1.jpg │ ├── plat_cas_verifycode_gen2.jpg │ └── tesseract.rar ├── xml │ └── return │ │ ├── annotation │ │ ├── 2019112211221683_E_E52072019112210380541.xml │ │ ├── Receipt_DXPEDCINVT000001DXPESW00002070902019112616043400055373223_20191126160427492076130.xml │ │ └── Successed_2019112615594477_E_QDE52072019112615572999_20191126160012015914121.xml │ │ └── order │ │ ├── Failed_2019122320100504_E_E52072019122319204282_20191223201050538111142.xml │ │ ├── Failed_2019122320124106_E_E52072019122319204282_20191223201320936713521.xml │ │ ├── Receipt_DECCUS004_E20190000357086783_201900002231409341_20191223213658415696832.xml │ │ ├── Receipt_DECCUS004_E20190000357086783_201900002231409431_20191223213713435555923.xml │ │ ├── Receipt_DECCUS004_E20190000357086783_201900002231412887_20191223214444126334049.xml │ │ ├── Successed_2019122320053105_E_E52072019122319225343_20191223200620123644335.xml │ │ └── Successed_2019122320061062_E_E52072019122319215218_20191223200850526246957.xml └── 商品信息.xlsx ├── file └── file.go ├── go.mod ├── go.sum ├── gowatch.yml ├── gulpfile.js ├── logs └── .gitignore ├── main.go ├── middleware └── beego-orm-adapter │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── adapter.go │ ├── adapter_test.go │ └── examples │ ├── rbac_model.conf │ └── rbac_policy.csv ├── models ├── Annotation.go ├── AnnotationFile.go ├── AnnotationItem.go ├── AnnotationRecord.go ├── AnnotationReturn.go ├── AnnotationUserRel.go ├── Article.go ├── BackendUser.go ├── BaseModel.go ├── Ciq.go ├── Clearance.go ├── ClearanceUpdateTime.go ├── Company.go ├── CompanyContact.go ├── CompanyForeign.go ├── CompanySeal.go ├── DataBase.go ├── HandBook.go ├── HandBookGood.go ├── HandBookUllage.go ├── HsCode.go ├── Order.go ├── OrderContainer.go ├── OrderDocument.go ├── OrderFile.go ├── OrderItem.go ├── OrderItemLimit.go ├── OrderItemLimitVin.go ├── OrderRecord.go ├── OrderReturn.go ├── OrderUserRel.go ├── Resource.go ├── Role.go ├── Setting.go └── init.go ├── mysoap ├── ACKMsg.go ├── OutBounds.go ├── onYard.go ├── sea.go ├── wsdl │ ├── ACKMsg.wsdl │ ├── OutBounds.wsdl │ └── onYard.wsdl ├── xml │ ├── CN_MFT_MT2101A_201909271807563265.xml │ └── CN_MT2101A_20191120083451025_019.xml └── 海运舱单.java ├── package-lock.json ├── package.json ├── routers └── router.go ├── static ├── customAdmin │ ├── BigDecimal.js │ ├── config.js │ ├── layui │ │ ├── css │ │ │ ├── layui.css │ │ │ ├── layui.mobile.css │ │ │ └── modules │ │ │ │ ├── code.css │ │ │ │ ├── laydate │ │ │ │ └── default │ │ │ │ │ └── laydate.css │ │ │ │ └── layer │ │ │ │ └── default │ │ │ │ ├── icon-ext.png │ │ │ │ ├── icon.png │ │ │ │ ├── layer.css │ │ │ │ ├── loading-0.gif │ │ │ │ ├── loading-1.gif │ │ │ │ └── loading-2.gif │ │ ├── font │ │ │ ├── iconfont.eot │ │ │ ├── iconfont.svg │ │ │ ├── iconfont.ttf │ │ │ ├── iconfont.woff │ │ │ └── iconfont.woff2 │ │ ├── images │ │ │ └── face │ │ │ │ ├── 0.gif │ │ │ │ ├── 1.gif │ │ │ │ ├── 10.gif │ │ │ │ ├── 11.gif │ │ │ │ ├── 12.gif │ │ │ │ ├── 13.gif │ │ │ │ ├── 14.gif │ │ │ │ ├── 15.gif │ │ │ │ ├── 16.gif │ │ │ │ ├── 17.gif │ │ │ │ ├── 18.gif │ │ │ │ ├── 19.gif │ │ │ │ ├── 2.gif │ │ │ │ ├── 20.gif │ │ │ │ ├── 21.gif │ │ │ │ ├── 22.gif │ │ │ │ ├── 23.gif │ │ │ │ ├── 24.gif │ │ │ │ ├── 25.gif │ │ │ │ ├── 26.gif │ │ │ │ ├── 27.gif │ │ │ │ ├── 28.gif │ │ │ │ ├── 29.gif │ │ │ │ ├── 3.gif │ │ │ │ ├── 30.gif │ │ │ │ ├── 31.gif │ │ │ │ ├── 32.gif │ │ │ │ ├── 33.gif │ │ │ │ ├── 34.gif │ │ │ │ ├── 35.gif │ │ │ │ ├── 36.gif │ │ │ │ ├── 37.gif │ │ │ │ ├── 38.gif │ │ │ │ ├── 39.gif │ │ │ │ ├── 4.gif │ │ │ │ ├── 40.gif │ │ │ │ ├── 41.gif │ │ │ │ ├── 42.gif │ │ │ │ ├── 43.gif │ │ │ │ ├── 44.gif │ │ │ │ ├── 45.gif │ │ │ │ ├── 46.gif │ │ │ │ ├── 47.gif │ │ │ │ ├── 48.gif │ │ │ │ ├── 49.gif │ │ │ │ ├── 5.gif │ │ │ │ ├── 50.gif │ │ │ │ ├── 51.gif │ │ │ │ ├── 52.gif │ │ │ │ ├── 53.gif │ │ │ │ ├── 54.gif │ │ │ │ ├── 55.gif │ │ │ │ ├── 56.gif │ │ │ │ ├── 57.gif │ │ │ │ ├── 58.gif │ │ │ │ ├── 59.gif │ │ │ │ ├── 6.gif │ │ │ │ ├── 60.gif │ │ │ │ ├── 61.gif │ │ │ │ ├── 62.gif │ │ │ │ ├── 63.gif │ │ │ │ ├── 64.gif │ │ │ │ ├── 65.gif │ │ │ │ ├── 66.gif │ │ │ │ ├── 67.gif │ │ │ │ ├── 68.gif │ │ │ │ ├── 69.gif │ │ │ │ ├── 7.gif │ │ │ │ ├── 70.gif │ │ │ │ ├── 71.gif │ │ │ │ ├── 8.gif │ │ │ │ └── 9.gif │ │ ├── lay │ │ │ └── modules │ │ │ │ ├── carousel.js │ │ │ │ ├── code.js │ │ │ │ ├── colorpicker.js │ │ │ │ ├── element.js │ │ │ │ ├── flow.js │ │ │ │ ├── form.js │ │ │ │ ├── jquery.js │ │ │ │ ├── laydate.js │ │ │ │ ├── layedit.js │ │ │ │ ├── layer.js │ │ │ │ ├── laypage.js │ │ │ │ ├── laytpl.js │ │ │ │ ├── mobile.js │ │ │ │ ├── rate.js │ │ │ │ ├── slider.js │ │ │ │ ├── table.js │ │ │ │ ├── transfer.js │ │ │ │ ├── tree.js │ │ │ │ ├── upload.js │ │ │ │ └── util.js │ │ └── layui.js │ ├── lib │ │ ├── AutoComplete.js │ │ ├── admin.js │ │ ├── extend │ │ │ ├── Swiper.js │ │ │ ├── echarts.js │ │ │ ├── echartsTheme.js │ │ │ └── layuiXtree.js │ │ ├── index.js │ │ ├── tablePlug │ │ │ ├── icon │ │ │ │ ├── iconfont.css │ │ │ │ ├── iconfont.eot │ │ │ │ ├── iconfont.js │ │ │ │ ├── iconfont.svg │ │ │ │ ├── iconfont.ttf │ │ │ │ └── iconfont.woff │ │ │ ├── optimizeSelectOption │ │ │ │ ├── optimizeSelectOption.css │ │ │ │ └── optimizeSelectOption.js │ │ │ ├── tablePlug.css │ │ │ └── tablePlug.js │ │ └── view.js │ ├── modules │ │ ├── AutoComplete.js │ │ ├── common.js │ │ ├── formSelects.js │ │ ├── login.js │ │ ├── reset.js │ │ └── treetable-lay │ │ │ ├── treetable.css │ │ │ └── treetable.js │ ├── style │ │ ├── admin.less │ │ ├── card.css │ │ ├── editor.css │ │ ├── formSelects-v4.css │ │ ├── iconfont.css │ │ ├── index.css │ │ ├── jquery.autocomplete.css │ │ ├── login.less │ │ ├── res │ │ │ ├── bg-none.jpg │ │ │ ├── layui-logo.jpg │ │ │ ├── logo-black.png │ │ │ ├── logo.png │ │ │ └── template │ │ │ │ ├── character.jpg │ │ │ │ ├── huge.jpg │ │ │ │ └── portrait.png │ │ ├── swiper.min.css │ │ ├── tablePlug.css │ │ ├── tableTool.css │ │ └── template.css │ └── tpl │ │ ├── layim │ │ └── demo.html │ │ ├── system │ │ ├── about.html │ │ ├── get.html │ │ ├── more.html │ │ ├── theme.html │ │ └── 说明.txt │ │ └── 说明.txt ├── favicon.ico ├── generate │ ├── annotation │ │ └── .gitignore │ └── order │ │ └── .gitignore ├── images │ ├── 01.png │ ├── 02.png │ ├── 03.png │ ├── about_red_bg.png │ ├── annotation_import_e.png │ ├── annotation_import_i.png │ ├── banner1.png │ ├── banner2.png │ ├── banner3.png │ ├── banner4.jpg │ ├── bg1.png │ ├── bg2.jpg │ ├── bg3.jpg │ ├── bg4.jpg │ ├── blockchain.svg │ ├── card1.png │ ├── card2.png │ ├── card3.png │ ├── card4.png │ ├── card5.png │ ├── card6.png │ ├── company_logo.png │ ├── declaration_logo.png │ ├── dotted_xian.png │ ├── email.svg │ ├── encrypted.svg │ ├── erweima.png │ ├── icon1.png │ ├── icon2.png │ ├── icon3.png │ ├── index_bg.png │ ├── index_logo.png │ ├── info1.png │ ├── info2.png │ ├── info3.png │ ├── info4.png │ ├── layui-advantage.png │ ├── ledger.svg │ ├── left.png │ ├── logo.png │ ├── logo_top.png │ ├── manage.svg │ ├── map.png │ ├── news.png │ ├── order_import.png │ ├── order_import_e.png │ ├── ordered-record.svg │ ├── par.jfif │ ├── partner │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 13.png │ │ ├── 14.png │ │ ├── 15.png │ │ ├── 16.png │ │ ├── 17.png │ │ ├── 18.png │ │ ├── 19.png │ │ ├── 2.png │ │ ├── 20.png │ │ ├── 21.png │ │ ├── 22.png │ │ ├── 23.png │ │ ├── 24.png │ │ ├── 25.png │ │ ├── 26.png │ │ ├── 27.png │ │ ├── 28.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ ├── 9.png │ │ ├── p1.svg │ │ ├── p2.svg │ │ ├── p3.svg │ │ ├── p4.svg │ │ ├── p5.svg │ │ ├── p6.svg │ │ └── p7.svg │ ├── people.png │ ├── right.png │ ├── search.png │ ├── six.png │ ├── smart-contracts.svg │ ├── text.svg │ ├── uugai.com-1574165928778.png │ ├── uugai.com_1574165878157.png │ └── white-paper.svg ├── js │ ├── iview.min.js │ ├── less.min.js │ └── vue.min.js ├── pdf │ ├── pdf_contract_e │ │ └── target001.png │ ├── pdf_contract_i │ │ └── target001.png │ ├── pdf_declaration_e │ │ ├── target001.png │ │ └── target002.png │ ├── pdf_declaration_i │ │ ├── target001.png │ │ └── target002.png │ ├── pdf_driver_i │ │ └── target001.png │ ├── pdf_invoice │ │ └── target001.png │ ├── pdf_packing_e │ │ └── target001.png │ └── pdf_packing_i │ │ └── target001.png └── upload │ ├── .gitignore │ ├── clearance │ └── .gitignore │ └── handBook │ └── .gitignore ├── sysinit ├── initDatabase.go └── sysinit.go ├── tasks ├── annotationReturnXmlParse.go ├── annotationUpdateStatus.go ├── base.go ├── getSingleArticles.go ├── initTask.go ├── orderReturnXmlParse.go └── orderUpdateStatus.go ├── tests └── default_test.go ├── transforms ├── Article.go ├── annotationReturn.go ├── backenduser.go ├── ciq.go ├── company.go ├── handBook.go ├── handBookGood.go ├── handBookUllage.go ├── homeOrder.go ├── hsCode.go ├── orderFile.go ├── resource.go ├── role.go └── setting.go ├── utils ├── cache.go ├── global.go ├── logs.go ├── rabc.go ├── selffunc.go ├── stringtool.go ├── utils_test.go └── ws.go ├── validations ├── auth.go ├── base.go └── role.go ├── views ├── annotation │ ├── change_create_edit_show.html │ ├── create │ │ ├── annotation_search.html │ │ ├── body.html │ │ ├── gauge.html │ │ ├── remark_note.html │ │ └── trsp_modecd_template.html │ ├── create_footerjs.html │ ├── index.html │ ├── index_footerjs.html │ ├── pdf │ │ ├── index.html │ │ └── recheck.html │ ├── recheck.html │ ├── recheck │ │ └── declaration.html │ └── recheck_footerjs.html ├── auth │ ├── layout_base.html │ └── login.html ├── backenduser │ ├── create.html │ ├── create_footerjs.html │ ├── edit.html │ ├── edit_footerjs.html │ ├── index.html │ ├── index_footerjs.html │ ├── profile.html │ └── profile_footerjs.html ├── ciq │ ├── index.html │ └── index_footerjs.html ├── clearance │ ├── create.html │ ├── create_footerjs.html │ ├── edit.html │ ├── edit_footerjs.html │ ├── index.html │ └── index_footerjs.html ├── common │ └── order_annotation │ │ ├── application_change.html │ │ ├── distribute.html │ │ ├── enclosure_check.html │ │ ├── error_logging.html │ │ ├── reject.html │ │ ├── status_count.html │ │ └── take.html ├── company │ ├── contact │ │ ├── create.html │ │ ├── create_footerjs.html │ │ └── edit_footerjs.html │ ├── create.html │ ├── create_footerjs.html │ ├── foreign │ │ ├── create.html │ │ ├── create_footerjs.html │ │ └── edit_footerjs.html │ ├── index.html │ ├── index_footerjs.html │ └── seal │ │ ├── create.html │ │ ├── create_footerjs.html │ │ └── edit_footerjs.html ├── handbook │ ├── account │ │ ├── show.html │ │ ├── show │ │ │ ├── gauge.html │ │ │ ├── goods.html │ │ │ ├── piece.html │ │ │ └── ullage.html │ │ └── show_footerjs.html │ ├── index.html │ ├── index_footerjs.html │ └── manual │ │ ├── show.html │ │ ├── show │ │ ├── gauge.html │ │ ├── goods.html │ │ ├── piece.html │ │ └── ullage.html │ │ └── show_footerjs.html ├── home │ ├── control.html │ ├── control_footerjs.html │ ├── error.html │ ├── index.html │ ├── index_footerjs.html │ └── page404.html ├── hscode │ ├── index.html │ └── index_footerjs.html ├── index.tpl ├── order │ ├── change_create_edit_show.html │ ├── create │ │ ├── batch_edit.html │ │ ├── bill_no.html │ │ ├── ciq_name.html │ │ ├── code_t_s.html │ │ ├── commodity_storehouse.html │ │ ├── dang.html │ │ ├── dec_goods.html │ │ ├── dec_goods_vin.html │ │ ├── dec_request_certs.html │ │ ├── dec_users.html │ │ ├── declaration.html │ │ ├── elements_his.html │ │ ├── ent_qualif.html │ │ ├── gauge.html │ │ ├── goods_attr_batch_data.html │ │ ├── goods_attr_data.html │ │ ├── goods_no.html │ │ ├── goods_spec.html │ │ ├── manual_no.html │ │ ├── mark_no.html │ │ ├── note_s.html │ │ ├── order_application_change.html │ │ ├── order_containers.html │ │ ├── order_document_eco_relations.html │ │ ├── order_documents.html │ │ ├── order_enclosure.html │ │ ├── order_i_declaration.html │ │ ├── order_init.html │ │ ├── order_pros.html │ │ ├── order_tip.html │ │ ├── other_packs.html │ │ ├── print.html │ │ ├── print_edit_contract.html │ │ ├── print_edit_driver.html │ │ ├── print_edit_invoice.html │ │ ├── print_save_contract.html │ │ ├── print_save_driver.html │ │ ├── print_save_invoice.html │ │ ├── remark_note.html │ │ ├── spec_decl_flag.html │ │ └── traf_mode_template.html │ ├── create_footerjs.html │ ├── index.html │ ├── index_footerjs.html │ ├── pdf │ │ ├── common │ │ │ ├── recheck_delaration_body.html │ │ │ └── recheck_delaration_header.html │ │ ├── compalte │ │ │ ├── footer.html │ │ │ └── index.html │ │ ├── declaration │ │ │ └── index.html │ │ ├── file │ │ │ ├── contract.html │ │ │ ├── driver_paper.html │ │ │ ├── invoice_type.html │ │ │ ├── packing.html │ │ │ └── packing_false.html │ │ ├── header │ │ │ └── header.html │ │ ├── pass │ │ │ ├── footer.html │ │ │ └── index.html │ │ └── recheck │ │ │ └── index.html │ ├── recheck.html │ └── recheck_footerjs.html ├── resource │ ├── create.html │ ├── create_footerjs.html │ ├── edit.html │ ├── edit_footerjs.html │ ├── index.html │ └── index_footerjs.html ├── role │ ├── create.html │ ├── create_footerjs.html │ ├── edit.html │ ├── edit_footerjs.html │ ├── index.html │ └── index_footerjs.html ├── setting │ ├── edit.html │ ├── edit_footerjs.html │ ├── index.html │ └── index_footerjs.html └── shared │ ├── app │ ├── globalcss.html │ └── globaljs.html │ ├── layout_app.html │ └── layout_pdf.html ├── xlsx └── xlsx.go └── xmlTemplate ├── Failed.go ├── Order.go ├── annotation.go ├── annotationReturn.go ├── cdata.go └── orderReturn.go /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ "env", 4 | { "modules": false } 5 | ] 6 | ], 7 | "plugins": ["transform-remove-strict-mode"] 8 | } -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.css linguist-language=go 2 | *.less linguist-language=go 3 | *.js linguist-language=go 4 | *.html linguist-language=go 5 | *.sql linguist-language=go 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | *.gz 6 | 7 | # Folders 8 | _obj 9 | _test 10 | 11 | # Architecture specific extensions/prefixes 12 | *.[568vq] 13 | [568vq].out 14 | 15 | *.cgo1.go 16 | *.cgo2.c 17 | _cgo_defun.c 18 | _cgo_gotypes.go 19 | _cgo_export.* 20 | 21 | _testmain.go 22 | 23 | *.exe 24 | *.test 25 | .log 26 | /.idea 27 | 28 | /logs/*.log 29 | /debug 30 | /sdrms 31 | 32 | BeeCustom 33 | BeeCustom.exe 34 | /.vendor 35 | app.conf 36 | /node_modules 37 | 38 | 39 | -------------------------------------------------------------------------------- /.gopmfile: -------------------------------------------------------------------------------- 1 | [target] 2 | path = BeeCustom -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | install: 4 | - go get -d -t -v ./... && go build -v ./... 5 | 6 | go: 7 | - 1.13.x 8 | 9 | os: 10 | - linux 11 | - osx 12 | 13 | env: 14 | matrix: 15 | - GOARCH=amd64 16 | - GOARCH=386 17 | 18 | script: 19 | - go vet ./... 20 | - go test ./... -v -coverprofile=coverage.txt -covermode=atomic 21 | 22 | after_success: 23 | - bash <(curl -s https://codecov.io/bash) 24 | -------------------------------------------------------------------------------- /BUG.md: -------------------------------------------------------------------------------- 1 | ## 待处理 BUG 2 | 3 | ##### 2019.12.22 4 | 5 | 1.货物申报表体处理 ~~复制(已经完成),批量修改~~ ,重新归类,归类查看,申报要素 等等 6 | ~~2.货物申报报文生成,以及回执报文解析 已经完成~~ 7 | ~~3.货物申报复核 pdf 生成,没有显示驳回标记内容~~ 8 | 9 | 10 | `snowlyg/gotransformer` 包 11 | 12 | ##### 2019.12.23 13 | ~~1.根据 struct 数据自动生成 xml 文件功能完善 (开发一个数据格式包) 14 | 2.根据 struct 数据自动格式化数据 功能开发(开发一个数据格式包)~~ 15 | 16 | 17 | ##### 2019.12.25 18 | 19 | ~~1.导入 excel time 时间格式数据格式问题解决 (开发一个数据格式包)~~ 20 | 21 | 22 | ##### 2019.12.27 23 | 24 | ~~1.手账册删除,增加判断是否有关联清单,或者货物订单~~ 25 | 26 | ##### 2019.12.29 27 | 28 | 1.货物申报复核 pdf ,第三行的表体样式有问题 29 | 2.货物申报 pdf 复核,打印进出口区别样式 30 | 31 | ##### 2019.12.31 32 | 1.手账册从单一直接同步到系统,利用爬虫,访问单一窗口 33 | 2.工作台剩余接口完成 34 | 35 | -------------------------------------------------------------------------------- /ERRORS.md: -------------------------------------------------------------------------------- 1 | ## 问题汇总 ERRORS 2 | 3 | 1.`beego` 升级到v1.10.1后,启动本项目时报错 4 | ``` 5 | cannot find package "github.com/gomodule/redigo/redis" 6 | ``` 7 | 解决方法很简单,只需要在终端运行下面命令,下载需要的包即可 8 | 9 | ``` 10 | go get github.com/gomodule/redigo/redis 11 | ``` 12 | 13 | 2.启动报错 `beego runtime error: invalid memory address or nil pointer dereference` 14 | 没有开启 session 15 | ``` 16 | beego.BConfig.WebConfig.Session.SessionOn = true 17 | ``` 18 | 或者在 `app.conf` 添加 19 | ``` 20 | sessionon = true 21 | ``` 22 | 23 | 3. webhook 自动部署代码 24 | 25 | `webhook` 自动部署代码,修改 `*.conf` 文件会失败, 需要到服务器手动部署。 26 | 27 | 28 | 4. wkhtmltopdf 增加 js 支持 29 | - 不能引入其他js 30 | - 不能使用jq 31 | - 不能使用es5 相关功能 let const 关键词 32 | - --enable-javascript 开启js 33 | - ----debug-javascript 调试js 34 | 35 | ``` 36 | wkhtmltopdf --no-stop-slow-scripts --dpi 300 --margin-top 30 --orientation Landscape page 127.0.0.1:80/pdf/order_recheck_pd 37 | f/1 --enable-javascript --debug-javascript --minimum-font-size 12 --javascript-delay 2000 test.pdf 38 | ``` 39 | 40 | 5.gowatch 41 | 42 | ``` 43 | ListenAndServe: listen tcp 127.0.0.1:8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 44 | ``` 45 | 46 | 47 | -------------------------------------------------------------------------------- /PLUGS.md: -------------------------------------------------------------------------------- 1 | ## 组件列表 PLUGS 2 | 3 | 1.pdf 生成pdf 4 | [go-wkhtmltopdf](https://github.com/SebastiaanKlippert/go-wkhtmltopdf) 5 | ``` 6 | go get github.com/SebastiaanKlippert/go-wkhtmltopdf 7 | 8 | WKHTMLTOPDF_PATH 系统变量 9 | 10 | ``` 11 | 12 | 2.excel 13 | [360EntSecGroup-Skylar/excelize](https://github.com/360EntSecGroup-Skylar/excelize) 14 | ``` 15 | go get github.com/360EntSecGroup-Skylar/excelize 16 | 17 | ``` 18 | 19 | 3.encoding/xml 20 | [encoding/xml](https://studygolang.com/static/pkgdoc/pkg/encoding_xml.htm) 21 | 22 | 23 | 5.otiai10/gosseract 24 | [otiai10/gosseract](https://github.com/otiai10/gosseract) 25 | 26 | 1.[tesseract-ocr](https://github.com/tesseract-ocr/tesseract/wiki), including library and headers 27 | 28 | 2.go get -t github.com/otiai10/gosseract 29 | 30 | [编译 tesseract-ocr](https://github.com/tesseract-ocr/tesseract/wiki/Compiling#windows) 31 | 32 | 33 | 5.hooklift/gowsdl 34 | [hooklift/gowsdl](https://github.com/hooklift/gowsdl) 35 | 36 | [548c91d69953aea2e32c8f793e9cbdec8ccf7e71](https://github.com/hooklift/gowsdl/tree/548c91d69953aea2e32c8f793e9cbdec8ccf7e71) 37 | 38 | [Go与SOAP](https://tonybai.com/2019/01/08/go-and-soap/) 39 | 40 | ``` 41 | gowsdl mysoap/***.wsdl 42 | ``` 43 | 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## BeeCustom 2 | 3 | #### 更新日志 4 | [更新日志](UPDATE.MD) 5 | 6 | ###### Require 7 | - go 1.13.x 8 | 9 | ### 简介 10 | BeeCustom 是基于 `Beego` 开发的关务管理系统。前端框架基于 `Layui` 进行开发,功能参考海关的单一窗口。 11 | 12 | ### 后端框架 13 | 1. 基于 `Beego` ,使用官方的 orm、cache、session、logs 等模块,感谢原作者提供了如此简单易用的框架; 14 | 15 | ### 前端框架 16 | 1. 基于 Layui 17 | 18 | ### 安装方法 19 | 本系统基于 `beego` 开发,默认使用 `mysql` 数据库,缓存 `redis` 20 | 21 | 1. 安装 `golang` 环境 22 | 23 | 2. 安装 `BeeCustom` 24 | 25 | ```shell script 26 | git clone https://e.coding.net/snowlyg/BeeCustom.git 27 | 28 | #或者 29 | git clone https://github.com/snowlyg/BeeCustom.git 30 | 31 | ``` 32 | 33 | 4. 修改配置文件 conf/app.conf 34 | 35 | 需要配置 `mysql` 和 `redis` 的参数 36 | 37 | 5. session 使用 redis 管理,新建 session 表 38 | ``` 39 | CREATE TABLE `session` ( 40 | `session_key` char(64) NOT NULL, 41 | `session_data` blob, 42 | `session_expiry` int(11) unsigned NOT NULL, 43 | PRIMARY KEY (`session_key`) 44 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 45 | ``` 46 | 47 | - 运行 48 | 在 BeeCustom 目录使用 `beego` 官方提供的命令运行 49 | 改用 [gowatch](https://gitee.com/silenceper/gowatch) 解决修改前端文件不热加载问题, gowatch 打包效率更快 50 | 51 | ```shell script 52 | bee run 53 | 54 | #or 55 | 56 | gowatch 57 | 58 | ``` 59 | 60 | ### 增加了 gulp 打包前端资源 61 | ```shell script 62 | npm install 63 | gulp 64 | 65 | ``` 66 | 67 | ### 使用组件 68 | [组件列表](PLUGS.md) 69 | 70 | ### 问题 71 | [问题汇总](ERRORS.md) 72 | 73 | ### 问题记录 74 | [待处理BUG](BUG.md) 75 | 76 | ### 演示地址 77 | [BeeCustom](https:bee.snowlyg.com) 78 | 79 | > 账号/密码: admin/123456 80 | > 81 | 82 | ### 打包 83 | bee pack -be GOOS=linux 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /Single_cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /UPDATE.MD: -------------------------------------------------------------------------------- 1 | ## 更新日志 2 | 3 | ###### 2020.1.7 4 | 1.更新 soap 对接方式 (多途海运舱单系统对接) 5 | 2.修复生成 zip 文件不会按路径自动生成文件夹问题 6 | 7 | ###### 2020.1.16 8 | 1.增加单一新闻爬取和显示 9 | -------------------------------------------------------------------------------- /conf/example/app.conf.example: -------------------------------------------------------------------------------- 1 | appname = BeeCustom 2 | httpaddr = "127.0.0.1" 3 | httpport = 8080 4 | runmode = local 5 | 6 | #Session参数 7 | sessionon =true 8 | sessionname = rmsbackusersessionid 9 | sessionprovider = redis 10 | sessionproviderconfig = "127.0.0.1:6379" 11 | sessioncookielifetime = 100 #cookie的有效期(秒),默认是session,即会话结束则过期 12 | 13 | #开启监控 14 | EnableAdmin = true 15 | #开启JSON请求 16 | copyrequestbody = true 17 | #防止跨站请求伪造 未启用 18 | enablexsrf = true 19 | xsrfkey = asdfioerjlasdfmFADFOEJF2323SDFF 20 | xsrfexpire = 3600 21 | 22 | #数据库类型:postgres/mysql/sqlite3 23 | db_type = "mysql" 24 | #数据库表名前辍 25 | db_dt_prefix = "bee_custom_" 26 | 27 | #postgreSQL配置copyrequestbody 28 | [postgres] 29 | db_alias = "default" 30 | db_name = "sdrms" 31 | db_user = "root" 32 | db_pwd = "sdsdsd" 33 | db_host = "127.0.0.1" 34 | db_port = 5432 35 | db_sslmode = "disable" 36 | 37 | #mysql配置 38 | [mysql] 39 | db_alias = "default" 40 | db_name = "bee_custom" 41 | db_user = "root" 42 | db_pwd = "nvWQ8qE6kUtSURHhSQvWa2BZ3ct0eDOo" 43 | db_host = "127.0.0.1" 44 | db_port = 3306 45 | db_charset = "utf8" 46 | 47 | #sqlite3 48 | [sqlite3] 49 | db_alias = "default" 50 | db_name = "sdrms.sqlite3" 51 | 52 | [lang] 53 | types=en-US|zh-CN 54 | names=English|简体中文 55 | 56 | #日志配置 57 | [logs] 58 | #"emergency", "alert", "critical", "error", "warning", "notice", "info", "debug" 59 | # 0 ~ 7 60 | level = 7 61 | 62 | #cache配置 63 | [cache] 64 | #redis 65 | redis_host = "127.0.0.1:6379" 66 | redis_password = "" 67 | #过期时间 68 | cache_expire = 10 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /conf/rbac_model.conf: -------------------------------------------------------------------------------- 1 | [request_definition] 2 | r = sub, obj, act 3 | 4 | [policy_definition] 5 | p = sub, obj, act 6 | 7 | [role_definition] 8 | g = _, _ 9 | 10 | [policy_effect] 11 | e = some(where (p.eft == allow)) 12 | 13 | [matchers] 14 | m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act -------------------------------------------------------------------------------- /controllers/AnnotationFileController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "encoding/json" 5 | "strconv" 6 | 7 | "BeeCustom/enums" 8 | "BeeCustom/models" 9 | ) 10 | 11 | type AnnotationFileController struct { 12 | BaseController 13 | } 14 | 15 | func (c *AnnotationFileController) Prepare() { 16 | // 先执行 17 | c.BaseController.Prepare() 18 | // 如果一个Controller的多数Action都需要权限控制,则将验证放到Prepare 19 | // 默认认证 "Index", "Create", "Edit", "Delete" 20 | var perms []string 21 | c.checkAuthor(perms) 22 | 23 | // 如果一个Controller的所有Action都需要登录验证,则将验证放到Prepare 24 | // 权限控制里会进行登录验证,因此这里不用再作登录验证 25 | // c.checkLogin() 26 | 27 | } 28 | 29 | // 列表数据 30 | func (c *AnnotationFileController) DataGrid() { 31 | // 直接获取参数 getDataGridData() 32 | params := models.NewAnnotationFileQueryParam() 33 | _ = json.Unmarshal(c.Ctx.Input.RequestBody, ¶ms) 34 | 35 | // 获取数据列表和总数 36 | data, total := models.AnnotationFilePageList(¶ms) 37 | c.ResponseList(c.transformAnnotationFileList(data), total) 38 | c.ServeJSON() 39 | } 40 | 41 | // 格式化列表数据 42 | func (c *AnnotationFileController) transformAnnotationFileList(ms []*models.AnnotationFile) []*map[string]interface{} { 43 | var annotationFileList []*map[string]interface{} 44 | for _, v := range ms { 45 | AnnotationFile := make(map[string]interface{}) 46 | AnnotationFile["Id"] = strconv.FormatInt(v.Id, 10) 47 | AnnotationFile["Type"] = v.Type 48 | AnnotationFile["Name"] = v.Name 49 | AnnotationFile["Url"] = v.Url 50 | AnnotationFile["Creator"] = v.Creator 51 | AnnotationFile["Version"] = v.Version 52 | AnnotationFile["CreatedAt"] = v.CreatedAt.Format(enums.BaseDateTimeFormat) 53 | 54 | annotationFileList = append(annotationFileList, &AnnotationFile) 55 | } 56 | 57 | return annotationFileList 58 | } 59 | -------------------------------------------------------------------------------- /controllers/AnnotationReturnController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "BeeCustom/enums" 7 | "BeeCustom/models" 8 | "BeeCustom/transforms" 9 | gtf "github.com/snowlyg/gotransformer" 10 | ) 11 | 12 | type AnnotationReturnController struct { 13 | BaseController 14 | } 15 | 16 | func (c *AnnotationReturnController) Prepare() { 17 | // 先执行 18 | c.BaseController.Prepare() 19 | // 如果一个Controller的多数Action都需要权限控制,则将验证放到Prepare 20 | // 默认认证 "Index", "Create", "Edit", "Delete" 21 | var perms []string 22 | c.checkAuthor(perms) 23 | 24 | // 如果一个Controller的所有Action都需要登录验证,则将验证放到Prepare 25 | // 权限控制里会进行登录验证,因此这里不用再作登录验证 26 | // c.checkLogin() 27 | } 28 | 29 | // 列表数据 30 | func (c *AnnotationReturnController) DataGrid() { 31 | // 直接获取参数 getDataGridData() 32 | params := models.NewAnnotationReturnQueryParam() 33 | _ = json.Unmarshal(c.Ctx.Input.RequestBody, ¶ms) 34 | // 获取数据列表和总数 35 | data, total := models.AnnotationReturnPageList(¶ms) 36 | c.ResponseList(c.transformAnnotationReturnList(data), total) 37 | c.ServeJSON() 38 | } 39 | 40 | // 格式化列表数据 41 | func (c *AnnotationReturnController) transformAnnotationReturnList(ms []*models.AnnotationReturn) []*transforms.AnnotationReturn { 42 | var annotationReturnList []*transforms.AnnotationReturn 43 | for _, v := range ms { 44 | annotationReturnT := transforms.AnnotationReturn{} 45 | g := gtf.NewTransform(&annotationReturnT, v, enums.BaseDateTimeFormat) 46 | _ = g.Transformer() 47 | annotationReturnList = append(annotationReturnList, &annotationReturnT) 48 | } 49 | 50 | return annotationReturnList 51 | } 52 | -------------------------------------------------------------------------------- /controllers/ArticleController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "BeeCustom/enums" 7 | "BeeCustom/transforms" 8 | gtf "github.com/snowlyg/gotransformer" 9 | 10 | "BeeCustom/models" 11 | ) 12 | 13 | type ArticleController struct { 14 | BaseController 15 | } 16 | 17 | func (c *ArticleController) Prepare() { 18 | //先执行 19 | c.BaseController.Prepare() 20 | 21 | //如果一个Controller的所有Action都需要登录验证,则将验证放到Prepare 22 | //权限控制里会进行登录验证,因此这里不用再作登录验证 23 | //c.checkLogin() 24 | 25 | } 26 | 27 | //列表数据 28 | func (c *ArticleController) DataGrid() { 29 | //直接获取参数 getDataGridData() 30 | params := models.NewArticleQueryParam() 31 | _ = json.Unmarshal(c.Ctx.Input.RequestBody, ¶ms) 32 | 33 | //获取数据列表和总数 34 | data, total := models.ArticlePageList(¶ms) 35 | c.ResponseList(c.transformArticleList(data), total) 36 | c.ServeJSON() 37 | } 38 | 39 | // 格式化列表数据 40 | func (c *ArticleController) transformArticleList(ms []*models.Article) []*transforms.Article { 41 | var uts []*transforms.Article 42 | for _, v := range ms { 43 | ut := transforms.Article{} 44 | g := gtf.NewTransform(&ut, v, enums.BaseDateTimeFormat) 45 | _ = g.Transformer() 46 | 47 | uts = append(uts, &ut) 48 | } 49 | 50 | return uts 51 | } 52 | -------------------------------------------------------------------------------- /controllers/FileController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "strconv" 5 | 6 | "BeeCustom/enums" 7 | ) 8 | 9 | //FileController 文件上传 10 | type FileController struct { 11 | BaseController 12 | } 13 | 14 | //Prepare 参考beego官方文档说明 15 | func (c *FileController) Prepare() { 16 | //先执行 17 | c.BaseController.Prepare() 18 | 19 | //如果一个Controller的所有Action都需要登录验证,则将验证放到Prepare 20 | c.checkLogin() //权限控制里会进行登录验证,因此这里不用再作登录验证 21 | } 22 | 23 | //image 文件上传 24 | func (c *FileController) Upload() { 25 | fileType := "img/" + strconv.FormatInt(c.curUser.Id, 10) + "/" 26 | if fileNamePath, err := c.BaseUpload(fileType); err != nil { 27 | c.jsonResult(enums.JRCodeFailed, "上传失败", nil) 28 | } else { 29 | c.jsonResult(enums.JRCodeFailed, "上传成功", "/"+fileNamePath) 30 | } 31 | } 32 | 33 | //pdf 文件上传 34 | func (c *FileController) OrderDataUpload() { 35 | orderId := c.GetString(":id", "0") 36 | if orderId == "0" { 37 | c.jsonResult(enums.JRCodeFailed, "参数错误", nil) 38 | } 39 | 40 | fileType := "order/" + orderId + "/" + strconv.FormatInt(c.curUser.Id, 10) + "/" 41 | if fileNamePath, err := c.BaseUpload(fileType); err != nil { 42 | c.jsonResult(enums.JRCodeFailed, "上传失败", nil) 43 | } else { 44 | c.jsonResult(enums.JRCodeFailed, "上传成功", fileNamePath) 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /controllers/MainController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | ) 6 | 7 | type MainController struct { 8 | beego.Controller 9 | } 10 | 11 | func (c *MainController) Get() { 12 | c.Data["Website"] = "BeeCustom" 13 | c.Data["Email"] = "569616226@qq.com" 14 | c.TplName = "index.tpl" 15 | } 16 | -------------------------------------------------------------------------------- /controllers/OrderFileController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "BeeCustom/enums" 7 | "BeeCustom/models" 8 | "BeeCustom/transforms" 9 | gtf "github.com/snowlyg/gotransformer" 10 | ) 11 | 12 | type OrderFileController struct { 13 | BaseController 14 | } 15 | 16 | func (c *OrderFileController) Prepare() { 17 | // 先执行 18 | c.BaseController.Prepare() 19 | // 如果一个Controller的多数Action都需要权限控制,则将验证放到Prepare 20 | // 默认认证 "Index", "Create", "Edit", "Delete" 21 | var perms []string 22 | c.checkAuthor(perms) 23 | 24 | // 如果一个Controller的所有Action都需要登录验证,则将验证放到Prepare 25 | // 权限控制里会进行登录验证,因此这里不用再作登录验证 26 | // c.checkLogin() 27 | 28 | } 29 | 30 | // 列表数据 31 | func (c *OrderFileController) DataGrid() { 32 | // 直接获取参数 getDataGridData() 33 | params := models.NewOrderFileQueryParam() 34 | _ = json.Unmarshal(c.Ctx.Input.RequestBody, ¶ms) 35 | 36 | // 获取数据列表和总数 37 | data, total := models.OrderFilePageList(¶ms) 38 | c.ResponseList(c.TransformOrderFileList(data), total) 39 | c.ServeJSON() 40 | } 41 | 42 | // TransformOrderFile 格式化列表数据 43 | func (c *OrderFileController) TransformOrderFileList(ms []*models.OrderFile) []*transforms.OrderFile { 44 | 45 | var uts []*transforms.OrderFile 46 | for _, v := range ms { 47 | ut := &transforms.OrderFile{} 48 | g := gtf.NewTransform(ut, v, enums.BaseDateTimeFormat) 49 | _ = g.Transformer() 50 | 51 | uts = append(uts, ut) 52 | } 53 | return uts 54 | 55 | } 56 | -------------------------------------------------------------------------------- /controllers/OrderRecordController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "encoding/json" 5 | "strconv" 6 | 7 | "BeeCustom/enums" 8 | "BeeCustom/models" 9 | ) 10 | 11 | type OrderRecordController struct { 12 | BaseController 13 | } 14 | 15 | func (c *OrderRecordController) Prepare() { 16 | // 先执行 17 | c.BaseController.Prepare() 18 | // 如果一个Controller的多数Action都需要权限控制,则将验证放到Prepare 19 | // 默认认证 "Index", "Create", "Edit", "Delete" 20 | var perms []string 21 | c.checkAuthor(perms) 22 | 23 | // 如果一个Controller的所有Action都需要登录验证,则将验证放到Prepare 24 | // 权限控制里会进行登录验证,因此这里不用再作登录验证 25 | // c.checkLogin() 26 | 27 | } 28 | 29 | // 列表数据 30 | func (c *OrderRecordController) DataGrid() { 31 | // 直接获取参数 getDataGridData() 32 | params := models.NewOrderRecordQueryParam() 33 | _ = json.Unmarshal(c.Ctx.Input.RequestBody, ¶ms) 34 | 35 | // 获取数据列表和总数 36 | data, total := models.OrderRecordPageList(¶ms) 37 | c.ResponseList(c.transformOrderRecordList(data), total) 38 | c.ServeJSON() 39 | } 40 | 41 | // TransformOrderList 格式化列表数据 42 | func (c *OrderRecordController) transformOrderRecordList(ms []*models.OrderRecord) []*map[string]interface{} { 43 | var orderRecordList []*map[string]interface{} 44 | for _, v := range ms { 45 | OrderRecord := make(map[string]interface{}) 46 | OrderRecord["Id"] = strconv.FormatInt(v.Id, 10) 47 | OrderRecord["Content"] = v.Content 48 | OrderRecord["Remark"] = v.Remark 49 | OrderRecord["CreatedAt"] = v.CreatedAt.Format(enums.BaseDateTimeFormat) 50 | if v.BackendUser != nil { 51 | OrderRecord["BackendUserMobile"] = v.BackendUser.Mobile 52 | OrderRecord["BackendUserName"] = v.BackendUser.RealName 53 | } else { 54 | OrderRecord["BackendUserMobile"] = "系统自动操作" 55 | OrderRecord["BackendUserName"] = "系统自动操作" 56 | } 57 | 58 | orderRecordList = append(orderRecordList, &OrderRecord) 59 | } 60 | 61 | return orderRecordList 62 | } 63 | -------------------------------------------------------------------------------- /controllers/WebHookController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "io/ioutil" 5 | 6 | "BeeCustom/enums" 7 | ) 8 | 9 | const SECRETTOKEN = "bee_custom_auto_pull" 10 | 11 | // WebHookController handles WebSocket requests. 12 | type WebHookController struct { 13 | BaseController 14 | } 15 | 16 | func (c *WebHookController) Prepare() { 17 | c.EnableXSRF = false 18 | } 19 | 20 | func (c *WebHookController) Get() { 21 | signature := c.Ctx.Request.Header.Get("X-Coding-Signature") //获取加密签名 22 | contentType := c.Ctx.Request.Header.Get("Content-Type") //获取加密签名 23 | 24 | var res []byte 25 | if contentType == "application/json; charset=UTF-8" { 26 | res, _ = ioutil.ReadAll(c.Ctx.Request.Body) // for application/json 27 | } else if contentType == "application/x-www-form-urlencoded; charset=UTF-8" { // for application/x-www-form-urlencoded 28 | res = []byte(c.GetString(":payload")) 29 | } 30 | 31 | sha1 := enums.Hmac(SECRETTOKEN, res) // for application/x-www-form-urlencoded 32 | calculateSignature := "sha1=" + sha1 // 重新加密内容 33 | if calculateSignature == signature { 34 | enums.Cmd("cd", "", []string{"/root/go/src/BeeCustom"}) 35 | enums.Cmd("git", "", []string{"pull"}) 36 | enums.Cmd("go", "", []string{"build"}) 37 | enums.Cmd("supervisorctl", "", []string{"restart", "beepkg"}) 38 | } 39 | data := struct { 40 | Status bool 41 | Payload string 42 | ContentType string 43 | }{ 44 | Status: calculateSignature == signature, 45 | Payload: string(res), 46 | ContentType: contentType, 47 | } 48 | c.Data["json"] = data 49 | c.ServeJSON() 50 | } 51 | -------------------------------------------------------------------------------- /controllers/WebSocketController.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "fmt" 5 | "net/http" 6 | 7 | "BeeCustom/utils" 8 | "github.com/gorilla/websocket" 9 | ) 10 | 11 | var ( 12 | upgrader = websocket.Upgrader{ 13 | ReadBufferSize: 1024, 14 | WriteBufferSize: 1024, 15 | } 16 | ) 17 | 18 | // WebSocketController handles WebSocket requests. 19 | type WebSocketController struct { 20 | BaseController 21 | } 22 | 23 | func (c *WebSocketController) Get() { 24 | 25 | ws, err := upgrader.Upgrade(c.Ctx.ResponseWriter, c.Ctx.Request, nil) 26 | if _, ok := err.(websocket.HandshakeError); ok { 27 | http.Error(c.Ctx.ResponseWriter, "Not a websocket handshake", 400) 28 | return 29 | } else if err != nil { 30 | utils.LogDebug(fmt.Sprintf("Cannot setup WebSocket connection:%v", err)) 31 | return 32 | } 33 | 34 | //defer ws.Close() 35 | 36 | utils.Clients[ws] = true 37 | 38 | msg := utils.Message{"连接成功", false} 39 | utils.Broadcast <- msg 40 | 41 | c.ServeJSON() 42 | } 43 | -------------------------------------------------------------------------------- /database/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /excel/01.关区代码.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/01.关区代码.xlsx -------------------------------------------------------------------------------- /excel/02.运输方式代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/02.运输方式代码表.xlsx -------------------------------------------------------------------------------- /excel/03.监管方式代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/03.监管方式代码表.xlsx -------------------------------------------------------------------------------- /excel/04.征免性质代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/04.征免性质代码表.xlsx -------------------------------------------------------------------------------- /excel/05.国别(地区)代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/05.国别(地区)代码表.xlsx -------------------------------------------------------------------------------- /excel/06.港口代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/06.港口代码表.xlsx -------------------------------------------------------------------------------- /excel/07.国内地区(境内目的地)代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/07.国内地区(境内目的地)代码表.xlsx -------------------------------------------------------------------------------- /excel/08.成交方式代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/08.成交方式代码表.xlsx -------------------------------------------------------------------------------- /excel/09.货币代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/09.货币代码表.xlsx -------------------------------------------------------------------------------- /excel/10.集装箱规格代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/10.集装箱规格代码表.xlsx -------------------------------------------------------------------------------- /excel/11.计量单位代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/11.计量单位代码表.xlsx -------------------------------------------------------------------------------- /excel/12.征减免税方式代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/12.征减免税方式代码表.xlsx -------------------------------------------------------------------------------- /excel/13.包装种类代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/13.包装种类代码表.xlsx -------------------------------------------------------------------------------- /excel/14.国内(入离境)口岸代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/14.国内(入离境)口岸代码表.xlsx -------------------------------------------------------------------------------- /excel/15.检验检疫机关代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/15.检验检疫机关代码表.xlsx -------------------------------------------------------------------------------- /excel/16.关联理由代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/16.关联理由代码表.xlsx -------------------------------------------------------------------------------- /excel/17.监管证件(随附单证)代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/17.监管证件(随附单证)代码表.xlsx -------------------------------------------------------------------------------- /excel/18.企业资质代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/18.企业资质代码表.xlsx -------------------------------------------------------------------------------- /excel/19.用途代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/19.用途代码表.xlsx -------------------------------------------------------------------------------- /excel/20.原产地区代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/20.原产地区代码表.xlsx -------------------------------------------------------------------------------- /excel/201900000000034151-二期手册.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/201900000000034151-二期手册.xlsx -------------------------------------------------------------------------------- /excel/201900000000036663-二期账册.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/201900000000036663-二期账册.xlsx -------------------------------------------------------------------------------- /excel/21.危包规格代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/21.危包规格代码表.xlsx -------------------------------------------------------------------------------- /excel/22.货物属性代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/22.货物属性代码表.xlsx -------------------------------------------------------------------------------- /excel/23.国内行政区划(目的地)代码.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/23.国内行政区划(目的地)代码.xlsx -------------------------------------------------------------------------------- /excel/24.随附单证类别代码.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/24.随附单证类别代码.xlsx -------------------------------------------------------------------------------- /excel/25.检验检疫名称参数.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/25.检验检疫名称参数.xls -------------------------------------------------------------------------------- /excel/25.检验检疫名称参数.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/25.检验检疫名称参数.xlsx -------------------------------------------------------------------------------- /excel/26.许可证类别代码表.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/26.许可证类别代码表.xlsx -------------------------------------------------------------------------------- /excel/27.实施检验的进出口商品目录调整表.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/27.实施检验的进出口商品目录调整表.xls -------------------------------------------------------------------------------- /excel/orc/cmake-3.16.2-win64-x64.msi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/orc/cmake-3.16.2-win64-x64.msi -------------------------------------------------------------------------------- /excel/orc/leptonica.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/orc/leptonica.rar -------------------------------------------------------------------------------- /excel/orc/plat_cas_verifycode_gen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/orc/plat_cas_verifycode_gen.jpg -------------------------------------------------------------------------------- /excel/orc/plat_cas_verifycode_gen1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/orc/plat_cas_verifycode_gen1.jpg -------------------------------------------------------------------------------- /excel/orc/plat_cas_verifycode_gen2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/orc/plat_cas_verifycode_gen2.jpg -------------------------------------------------------------------------------- /excel/orc/tesseract.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/orc/tesseract.rar -------------------------------------------------------------------------------- /excel/xml/return/annotation/Receipt_DXPEDCINVT000001DXPESW00002070902019112616043400055373223_20191126160427492076130.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1.0 5 | QD520719E000023456 6 | DXPEDCINVT000001DXPESW00002070902019112616043400055373223 7 | DXPEDCINVT000001DXPESW00002070902019112616043400055373223.INVT 8 | INV202 9 | DXPEDCINVT000001 10 | DXPESW0000207090 11 | 2019-11-26T16:04:34 12 | 13 | 14 | 15 | 16 | 17 | 201900000014419208 18 | QD520719E000023456 19 | E20190000341106667 20 | 1 21 | 2019-11-26 16:04:34 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /excel/xml/return/annotation/Successed_2019112615594477_E_QDE52072019112615572999_20191126160012015914121.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 201900000014419208 4 | QDE52072019112615572999 5 | 处理成功 6 | 0 7 | -------------------------------------------------------------------------------- /excel/xml/return/order/Failed_2019122320100504_E_E52072019122319204282_20191223201050538111142.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 暂存失败:商品序号1:,出口享惠情况填制不规范(尚未与最终目的国签署并实施优惠贸易安排) 5 | E52072019122319204282 6 | -------------------------------------------------------------------------------- /excel/xml/return/order/Failed_2019122320124106_E_E52072019122319204282_20191223201320936713521.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 暂存失败:商品序号1:,出口享惠情况填制不规范(尚未与最终目的国签署并实施优惠贸易安排) 5 | E52072019122319204282 6 | -------------------------------------------------------------------------------- /excel/xml/return/order/Receipt_DECCUS004_E20190000357086783_201900002231409341_20191223213658415696832.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | E20190000357086783 4 | 5 | 2019-12-23T21:36:38 6 | 7 7 | E20190000357086783,E20190000357086783直接申报成功 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /excel/xml/return/order/Receipt_DECCUS004_E20190000357086783_201900002231409431_20191223213713435555923.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | E20190000357086783 4 | 520720190579438584 5 | 2019-12-23T21:36:48 6 | L 7 | 成功入海关预录入库; 8 | 5207 9 | 10 | 2019-12-23T21:36:33 11 | -------------------------------------------------------------------------------- /excel/xml/return/order/Receipt_DECCUS004_E20190000357086783_201900002231412887_20191223214444126334049.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | E20190000357086783 4 | 520720190579438584 5 | 2019-12-23T21:44:20 6 | P 7 | ;报关单放行 8 | 5207 9 | 10 | 2019-12-23T21:36:33 11 | -------------------------------------------------------------------------------- /excel/xml/return/order/Successed_2019122320053105_E_E52072019122319225343_20191223200620123644335.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0 4 | 暂存成功 5 | E52072019122319225343 6 | E20190000357524667 7 | -------------------------------------------------------------------------------- /excel/xml/return/order/Successed_2019122320061062_E_E52072019122319215218_20191223200850526246957.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0 4 | 暂存成功 5 | E52072019122319215218 6 | E20190000357525131 7 | -------------------------------------------------------------------------------- /excel/商品信息.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/excel/商品信息.xlsx -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module BeeCustom 2 | 3 | go 1.13 4 | 5 | require ( 6 | github.com/360EntSecGroup-Skylar/excelize v1.4.1 7 | github.com/SebastiaanKlippert/go-wkhtmltopdf v1.5.0 8 | github.com/andybalholm/cascadia v1.1.0 // indirect 9 | github.com/antchfx/htmlquery v1.2.2 // indirect 10 | github.com/antchfx/xmlquery v1.2.3 // indirect 11 | github.com/antchfx/xpath v1.1.4 // indirect 12 | github.com/astaxie/beego v1.12.0 13 | github.com/casbin/casbin v1.9.1 14 | github.com/go-sql-driver/mysql v1.4.1 15 | github.com/gocolly/colly/v2 v2.0.1 16 | github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 // indirect 17 | github.com/golang/protobuf v1.3.2 // indirect 18 | github.com/gorilla/websocket v1.4.1 19 | github.com/hooklift/gowsdl v0.3.1 20 | github.com/lib/pq v1.3.0 21 | github.com/satori/go.uuid v1.2.0 22 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect 23 | github.com/smartystreets/goconvey v1.6.4 24 | github.com/snowlyg/gotransformer v0.0.0-20200107031743-38a7dfd0c373 25 | golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa // indirect 26 | google.golang.org/appengine v1.6.5 // indirect 27 | ) 28 | -------------------------------------------------------------------------------- /gowatch.yml: -------------------------------------------------------------------------------- 1 | # gowatch.yml 配置示例 2 | # 3 | # 程序名称 4 | appname: "BeeCustom" 5 | 6 | # Output 7 | #output: ./ 8 | 9 | watch_exts: 10 | - .go 11 | - .js 12 | - .css 13 | - .html 14 | 15 | #cmd_args: 16 | # - arg1=val1 17 | 18 | #build_args: 19 | # - -race 20 | 21 | #envs: 22 | # - a=b 23 | 24 | #vendor_watch: false 25 | 26 | #excluded_paths: 27 | # - path 28 | 29 | #build_tags: "" 30 | 31 | disable_run: false 32 | -------------------------------------------------------------------------------- /logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | 4 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | _ "BeeCustom/routers" 5 | _ "BeeCustom/sysinit" 6 | "github.com/astaxie/beego" 7 | ) 8 | 9 | func main() { 10 | 11 | beego.BConfig.WebConfig.TemplateLeft = "@{{" 12 | beego.BConfig.WebConfig.TemplateRight = "}}" 13 | 14 | beego.Run() 15 | } 16 | -------------------------------------------------------------------------------- /middleware/beego-orm-adapter/.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.dll 4 | *.so 5 | *.dylib 6 | 7 | # Test binary, build with `go test -c` 8 | *.test 9 | 10 | # Output of the go coverage tool, specifically when used with LiteIDE 11 | *.out 12 | 13 | # Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 14 | .glide/ 15 | 16 | .idea/ 17 | *.iml -------------------------------------------------------------------------------- /middleware/beego-orm-adapter/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | sudo: false 4 | 5 | go: 6 | - tip 7 | 8 | before_install: 9 | - go get github.com/mattn/goveralls 10 | 11 | script: 12 | - $HOME/gopath/bin/goveralls -service=travis-ci 13 | 14 | services: 15 | - mysql -------------------------------------------------------------------------------- /middleware/beego-orm-adapter/examples/rbac_model.conf: -------------------------------------------------------------------------------- 1 | [request_definition] 2 | r = sub, obj, act 3 | 4 | [policy_definition] 5 | p = sub, obj, act 6 | 7 | [role_definition] 8 | g = _, _ 9 | 10 | [policy_effect] 11 | e = some(where (p.eft == allow)) 12 | 13 | [matchers] 14 | m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act -------------------------------------------------------------------------------- /middleware/beego-orm-adapter/examples/rbac_policy.csv: -------------------------------------------------------------------------------- 1 | p, alice, data1, read 2 | p, bob, data2, write 3 | p, data2_admin, data2, read 4 | p, data2_admin, data2, write 5 | g, alice, data2_admin -------------------------------------------------------------------------------- /models/DataBase.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "bytes" 5 | "fmt" 6 | "os/exec" 7 | 8 | "github.com/astaxie/beego" 9 | ) 10 | 11 | func DataReset() (bool, error) { 12 | 13 | dbType := beego.AppConfig.String("db_type") 14 | //数据库名称 15 | //dbName := beego.AppConfig.String(dbType+"::db_name") 16 | //数据库连接用户名 17 | dbUser := beego.AppConfig.String(dbType + "::db_user") 18 | //数据库连接用户名 19 | dbPwd := beego.AppConfig.String(dbType + "::db_pwd") 20 | //数据库IP(域名) 21 | dbHost := beego.AppConfig.String(dbType + "::db_host") 22 | //数据库端口 23 | dbPort := beego.AppConfig.String(dbType + "::db_port") 24 | 25 | arv := []string{fmt.Sprintf("--host=%s", dbHost), fmt.Sprintf("--port=%d", dbPort), fmt.Sprintf("-u%s", dbUser), fmt.Sprintf("-p%s", dbPwd), ">", "bee_custom_clearances.sql"} 26 | 27 | cmd := exec.Command("mysql", arv...) 28 | 29 | var out bytes.Buffer 30 | 31 | cmd.Stdout = &out 32 | 33 | err := cmd.Run() 34 | 35 | if err != nil { 36 | 37 | return false, err 38 | } 39 | 40 | fmt.Printf(out.String()) 41 | 42 | //f, err := os.Open("bee_custom.sql") 43 | //if err != nil { 44 | // return false, err 45 | //} 46 | // 47 | //defer f.Close() 48 | // 49 | //o := orm.NewOrm() 50 | //buf := bufio.NewReader(f) 51 | //for { 52 | // line, err := buf.ReadString(';') 53 | // if err != nil { 54 | // if err == io.EOF { 55 | // return true, nil 56 | // } 57 | // return false, err 58 | // } 59 | // _, err = o.Raw(line).Exec() 60 | // if err != nil { 61 | // return false, err 62 | // } 63 | //} 64 | return true, nil 65 | } 66 | -------------------------------------------------------------------------------- /models/OrderDocument.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "fmt" 5 | "time" 6 | 7 | "BeeCustom/utils" 8 | "github.com/astaxie/beego/orm" 9 | ) 10 | 11 | // TableName 设置OrderDocument表名 12 | func (u *OrderDocument) TableName() string { 13 | return OrderDocumentTBName() 14 | } 15 | 16 | // OrderDocumentQueryParam 用于查询的类 17 | type OrderDocumentQueryParam struct { 18 | BaseQueryParam 19 | 20 | OrderId int64 21 | } 22 | 23 | // OrderDocument 实体类 24 | type OrderDocument struct { 25 | BaseModel 26 | DocuCode string `orm:"column(docu_code);size(3);null" description:"随附单证代码"` 27 | DocuCodeName string `orm:"column(docu_code_name);size(100);null" description:"随附单证代码名称"` 28 | CertCode string `orm:"column(cert_code);size(32);null" description:"随附单证编码"` 29 | DeletedAt time.Time `orm:"column(deleted_at);type(timestamp);null"` 30 | Order *Order `orm:"column(order_id);rel(fk)"` 31 | OrderId int64 `orm:"-" form:"OrderId"` // 关联管理会自动生成 CompanyId 字段,此处不生成字段 32 | } 33 | 34 | func NewOrderDocument(id int64) OrderDocument { 35 | return OrderDocument{BaseModel: BaseModel{id, time.Now(), time.Now()}} 36 | } 37 | 38 | // Save 添加、编辑页面 保存 39 | func OrderDocumentSave(m *OrderDocument) error { 40 | o := orm.NewOrm() 41 | if m.Id == 0 { 42 | if _, err := o.Insert(m); err != nil { 43 | utils.LogDebug(fmt.Sprintf("OrderDocumentSave:%v", err)) 44 | return err 45 | } 46 | } else { 47 | if _, err := o.Update(m); err != nil { 48 | utils.LogDebug(fmt.Sprintf("OrderDocumentSave:%v", err)) 49 | return err 50 | } 51 | } 52 | 53 | return nil 54 | } 55 | 56 | // 删除 57 | func OrderDocumentDelete(id int64) (num int64, err error) { 58 | m := NewOrderDocument(id) 59 | if num, err := BaseDelete(&m); err != nil { 60 | return num, err 61 | } else { 62 | return num, nil 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /mysoap/OutBounds.go: -------------------------------------------------------------------------------- 1 | package mysoap 2 | 3 | import ( 4 | "encoding/xml" 5 | "github.com/hooklift/gowsdl/soap" 6 | "time" 7 | ) 8 | 9 | // against "unused imports" 10 | var _ time.Time 11 | var _ xml.Name 12 | 13 | type Out_bounds struct { 14 | XMLName xml.Name `xml:"http://webservice.bgcd.hwt.com out_bounds"` 15 | 16 | XmlStr string `xml:"xmlStr,omitempty"` 17 | } 18 | 19 | type Out_boundsResponse struct { 20 | XMLName xml.Name `xml:"http://webservice.bgcd.hwt.com out_boundsResponse"` 21 | 22 | Return_ string `xml:"return,omitempty"` 23 | } 24 | 25 | type OutBoundsServicePortType interface { 26 | Out_bounds(request *Out_bounds) (*Out_boundsResponse, error) 27 | } 28 | 29 | type outBoundsServicePortType struct { 30 | client *soap.Client 31 | } 32 | 33 | func NewOutBoundsServicePortType(client *soap.Client) OutBoundsServicePortType { 34 | return &outBoundsServicePortType{ 35 | client: client, 36 | } 37 | } 38 | 39 | func (service *outBoundsServicePortType) Out_bounds(request *Out_bounds) (*Out_boundsResponse, error) { 40 | response := new(Out_boundsResponse) 41 | err := service.client.Call("urn:out_bounds", request, response) 42 | if err != nil { 43 | return nil, err 44 | } 45 | 46 | return response, nil 47 | } 48 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BeeCustom", 3 | "version": "1.0.0", 4 | "description": "BeeCustom 是基于 `Beego` 开发的关务管理系统。前端框架基于 `Layui` 进行开发,功能已经贴近海关的单一窗口。", 5 | "main": "gulpfile.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "scripts": { 10 | "test": "echo \"Error: no test specified\" && exit 1" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://git.dev.tencent.com/Dreamfish/BeeCustom.git" 15 | }, 16 | "author": "Dreamfish", 17 | "license": "ISC", 18 | "devDependencies": { 19 | "babel-core": "^6.26.3", 20 | "babel-plugin-transform-remove-strict-mode": "0.0.2", 21 | "babel-preset-env": "^1.7.0", 22 | "del": "^5.1.0", 23 | "gulp": "^4.0.2", 24 | "gulp-autoprefixer": "^7.0.1", 25 | "gulp-babel": "^7.0.1", 26 | "gulp-cache": "^1.1.3", 27 | "gulp-concat": "^2.6.1", 28 | "gulp-imagemin": "^6.2.0", 29 | "gulp-jshint": "^2.1.0", 30 | "gulp-livereload": "^4.0.2", 31 | "gulp-minify-css": "^1.2.4", 32 | "gulp-notify": "^3.2.0", 33 | "gulp-rename": "^1.4.0", 34 | "gulp-ruby-sass": "^4.0.0", 35 | "gulp-uglify": "^3.0.2", 36 | "jshint": "^2.10.3" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /static/customAdmin/config.js: -------------------------------------------------------------------------------- 1 | layui.define(["laytpl","layer","element","util"],function(e){e("setter",{container:"LAY_app",base:layui.cache.base,views:layui.cache.base+"tpl/",entry:"index",engine:".html",pageTabs:!0,name:"customAdmin",tableName:"customAdmin",MOD_NAME:"admin",debug:!1,request:{tokenName:!1},response:{statusName:"status",statusCode:{ok:!0,logout:1001},msgName:"message",dataName:"data"},extend:["echarts","echartsTheme","Swiper","layuiXtree"],theme:{color:[{main:"rgb(40, 55, 77)",header:"rgb(27, 135, 255)",selected:"rgb(27, 135, 255)",logo:"rgb(53, 61, 83)",alias:"default"},{main:"#03152A",selected:"#3B91FF",alias:"dark-blue"},{main:"#2E241B",selected:"#A48566",alias:"coffee"},{main:"#50314F",selected:"#7A4D7B",alias:"purple-red"},{main:"#344058",logo:"#1E9FFF",selected:"#1E9FFF",alias:"ocean"},{main:"#3A3D49",logo:"#2F9688",selected:"#5FB878",alias:"green"},{main:"#20222A",logo:"#F78400",selected:"#F78400",alias:"red"},{main:"#28333E",logo:"#AA3130",selected:"#AA3130",alias:"fashion-red"},{main:"#24262F",logo:"#3A3D49",selected:"#009688",alias:"classic-black"},{logo:"#226A62",header:"#2F9688",alias:"green-header"},{main:"#344058",logo:"#0085E8",selected:"#1E9FFF",header:"#1E9FFF",alias:"ocean-header"},{header:"#393D49",alias:"classic-black-header"},{main:"#50314F",logo:"#50314F",selected:"#7A4D7B",header:"#50314F",alias:"purple-red-header"},{main:"#28333E",logo:"#28333E",selected:"#AA3130",header:"#AA3130",alias:"fashion-red-header"},{main:"#28333E",logo:"#009688",selected:"#009688",header:"#009688",alias:"green-header"}],initColorIndex:0}})}); -------------------------------------------------------------------------------- /static/customAdmin/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.5 MIT License By https://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /static/customAdmin/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /static/customAdmin/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /static/customAdmin/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/font/iconfont.eot -------------------------------------------------------------------------------- /static/customAdmin/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /static/customAdmin/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/font/iconfont.woff -------------------------------------------------------------------------------- /static/customAdmin/layui/font/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/font/iconfont.woff2 -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/0.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/1.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/10.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/11.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/12.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/13.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/14.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/15.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/16.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/17.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/18.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/19.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/2.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/20.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/21.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/22.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/23.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/24.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/25.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/26.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/27.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/28.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/29.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/3.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/30.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/31.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/32.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/33.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/34.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/35.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/36.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/37.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/38.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/39.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/4.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/40.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/41.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/42.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/43.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/44.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/45.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/46.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/47.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/48.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/49.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/5.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/50.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/51.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/52.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/53.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/54.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/55.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/56.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/57.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/58.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/59.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/6.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/60.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/61.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/62.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/63.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/64.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/65.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/66.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/67.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/68.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/69.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/7.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/70.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/71.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/8.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/layui/images/face/9.gif -------------------------------------------------------------------------------- /static/customAdmin/layui/lay/modules/code.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.5 MIT License By https://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /static/customAdmin/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v2.5.5 MIT License By https://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /static/customAdmin/lib/tablePlug/icon/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/lib/tablePlug/icon/iconfont.eot -------------------------------------------------------------------------------- /static/customAdmin/lib/tablePlug/icon/iconfont.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | Created by iconfont 9 | 10 | 11 | 12 | 13 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /static/customAdmin/lib/tablePlug/icon/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/lib/tablePlug/icon/iconfont.ttf -------------------------------------------------------------------------------- /static/customAdmin/lib/tablePlug/icon/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/lib/tablePlug/icon/iconfont.woff -------------------------------------------------------------------------------- /static/customAdmin/lib/tablePlug/optimizeSelectOption/optimizeSelectOption.css: -------------------------------------------------------------------------------- 1 | .layui-layer-content div.layui-form-select>div.layui-select-title+dl,.select_option_to_layer div.layui-form-select>div.layui-select-title+dl{visibility:hidden}.layui-layer.layui-option-layer{mso-border-shadow:no;box-shadow:none} -------------------------------------------------------------------------------- /static/customAdmin/modules/common.js: -------------------------------------------------------------------------------- 1 | layui.define(function(exports){ 2 | let {$ ,layer ,laytpl ,setter ,view ,admin}=layui; 3 | 4 | //公共业务的逻辑处理可以写在此处,切换任何页面都会执行 5 | //…… 6 | 7 | 8 | 9 | //退出 10 | admin.events.logout = function(){ 11 | //执行退出接口 12 | admin.req({ 13 | url: layui.setter.base + 'json/user/logout.js' 14 | ,type: 'get' 15 | ,data: {} 16 | ,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行 17 | //清空本地记录的 token,并跳转到登入页 18 | admin.exit(function(){ 19 | location.href = 'user/login.html'; 20 | }); 21 | } 22 | }); 23 | }; 24 | 25 | 26 | //对外暴露的接口 27 | exports('common', {}); 28 | }); -------------------------------------------------------------------------------- /static/customAdmin/modules/reset.js: -------------------------------------------------------------------------------- 1 | layui.define(function(e){layui.use(["form"],function(){layui.$;var e=layui.form,t=layui.admin;e.verify({account:function(e){if(!/^1\d{10}$/.test(e)&&!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e))return"输入格式不正确"},password:[/^[\S]{6,16}$/,"密码必须6到16位,且不能出现空格"]}),t.sendAuthCode({elem:"#auth_reset_getsmscode",elemPhone:"#auth_reset_phone",elemVercode:"#auth_reset_smscode",ajax:{url:get_sms_code}})}),e("reset",{})}); -------------------------------------------------------------------------------- /static/customAdmin/modules/treetable-lay/treetable.css: -------------------------------------------------------------------------------- 1 | .treeTable-empty{width:20px;display:inline-block}.treeTable-icon{cursor:pointer}.treeTable-icon .layui-icon-triangle-d:before{content:"\e623"}.treeTable-icon.open .layui-icon-triangle-d:before{content:"\e625";background-color:transparent} -------------------------------------------------------------------------------- /static/customAdmin/style/editor.css: -------------------------------------------------------------------------------- 1 | .editor{ 2 | width: 100%; 3 | /*min-height: 600px;*/ 4 | margin-bottom: 40px; 5 | } 6 | 7 | .edui-notadd .edui-editor-toolbarboxouter{ 8 | border-bottom: none!important; 9 | background: none!important; 10 | } 11 | .edui-notadd .edui-editor{ 12 | border: none!important; 13 | } 14 | #edui1_elementpath{ 15 | display: none; 16 | } 17 | #edui1_wordcount{ 18 | text-align: left; 19 | } 20 | .layui-card-body .article_create_submit{ 21 | position: relative; 22 | box-shadow: none; 23 | width: auto; 24 | } 25 | /*.article_upload_description{*/ 26 | /*border-width: 0px;*/ 27 | /*position: relative;*/ 28 | /*top: 15px;*/ 29 | /*width: 400px;*/ 30 | /*height: 44px;*/ 31 | /*font-family: 'PingFangSC-Regular', 'PingFang SC';*/ 32 | /*font-weight: 400;*/ 33 | /*font-style: normal;*/ 34 | /*font-size: 13px;*/ 35 | /*color: #999999;*/ 36 | /*line-height: 22px;*/ 37 | /*}*/ 38 | /*.layui-upload-drag{*/ 39 | /*padding: 0px!important;*/ 40 | /*border-color: rgb(114,158,208);;*/ 41 | /*border-radius: 10px;*/ 42 | /*}*/ 43 | /*.custom-company-foreign_upload{*/ 44 | /*padding: 5px 0!important;*/ 45 | /*color: #666666;*/ 46 | /*}*/ 47 | /*.layui-upload-drag .layui-icon{*/ 48 | /*display: block;*/ 49 | /*margin: 5px 0;*/ 50 | /*font-size: 40px;*/ 51 | /*color: rgb(114,158,208);*/ 52 | /*}*/ -------------------------------------------------------------------------------- /static/customAdmin/style/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; /* project id 1467689 */ 3 | src: url('//at.alicdn.com/t/font_1467689_vjti8f5dhv.eot'); 4 | src: url('//at.alicdn.com/t/font_1467689_vjti8f5dhv.eot?#iefix') format('embedded-opentype'), 5 | url('//at.alicdn.com/t/font_1467689_vjti8f5dhv.woff2') format('woff2'), 6 | url('//at.alicdn.com/t/font_1467689_vjti8f5dhv.woff') format('woff'), 7 | url('//at.alicdn.com/t/font_1467689_vjti8f5dhv.ttf') format('truetype'), 8 | url('//at.alicdn.com/t/font_1467689_vjti8f5dhv.svg#iconfont') format('svg'); 9 | } -------------------------------------------------------------------------------- /static/customAdmin/style/res/bg-none.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/bg-none.jpg -------------------------------------------------------------------------------- /static/customAdmin/style/res/layui-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/layui-logo.jpg -------------------------------------------------------------------------------- /static/customAdmin/style/res/logo-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/logo-black.png -------------------------------------------------------------------------------- /static/customAdmin/style/res/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/logo.png -------------------------------------------------------------------------------- /static/customAdmin/style/res/template/character.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/template/character.jpg -------------------------------------------------------------------------------- /static/customAdmin/style/res/template/huge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/template/huge.jpg -------------------------------------------------------------------------------- /static/customAdmin/style/res/template/portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/customAdmin/style/res/template/portrait.png -------------------------------------------------------------------------------- /static/customAdmin/tpl/layim/demo.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
-------------------------------------------------------------------------------- /static/customAdmin/tpl/system/about.html: -------------------------------------------------------------------------------- 1 | 2 |
版本信息
3 |
4 | 8 |
9 | 获取授权 10 | 下载新版 11 |
12 |
13 | 14 |
关于版权
15 |
16 | 17 |
18 | layuiAdmin 受国家计算机软件著作权保护(登记号:2018SR410669),必须经官网授权才可获得源文件使用权。不得恶意分享产品源代码、二次转售等,违者将承担相应的法律责任。 19 |

详见:《layui 付费产品服务条款》 20 |
21 |

© 2018 layui.com 版权所有

22 |
-------------------------------------------------------------------------------- /static/customAdmin/tpl/system/more.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 | 7 | 获得产品 8 | 9 |
10 |
11 | 12 | 13 | 设置主题 14 | 15 |
16 |
17 | 18 | 19 | 本地便签 20 | 21 |
22 |
23 | -------------------------------------------------------------------------------- /static/customAdmin/tpl/system/theme.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 28 | 29 | 44 | -------------------------------------------------------------------------------- /static/customAdmin/tpl/system/说明.txt: -------------------------------------------------------------------------------- 1 | 2 | 注意: 3 | 该目录存放的是 layuiAdmin 的系统模板碎片,很多界面需要依赖到它,切勿随意剔除。 -------------------------------------------------------------------------------- /static/customAdmin/tpl/说明.txt: -------------------------------------------------------------------------------- 1 | 2 | 注意: 3 | 该目录存放的是 layuiAdmin 的动态模板碎片 -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/favicon.ico -------------------------------------------------------------------------------- /static/generate/annotation/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /static/generate/order/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /static/images/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/01.png -------------------------------------------------------------------------------- /static/images/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/02.png -------------------------------------------------------------------------------- /static/images/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/03.png -------------------------------------------------------------------------------- /static/images/about_red_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/about_red_bg.png -------------------------------------------------------------------------------- /static/images/annotation_import_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/annotation_import_e.png -------------------------------------------------------------------------------- /static/images/annotation_import_i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/annotation_import_i.png -------------------------------------------------------------------------------- /static/images/banner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/banner1.png -------------------------------------------------------------------------------- /static/images/banner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/banner2.png -------------------------------------------------------------------------------- /static/images/banner3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/banner3.png -------------------------------------------------------------------------------- /static/images/banner4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/banner4.jpg -------------------------------------------------------------------------------- /static/images/bg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/bg1.png -------------------------------------------------------------------------------- /static/images/bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/bg2.jpg -------------------------------------------------------------------------------- /static/images/bg3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/bg3.jpg -------------------------------------------------------------------------------- /static/images/bg4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/bg4.jpg -------------------------------------------------------------------------------- /static/images/card1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/card1.png -------------------------------------------------------------------------------- /static/images/card2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/card2.png -------------------------------------------------------------------------------- /static/images/card3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/card3.png -------------------------------------------------------------------------------- /static/images/card4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/card4.png -------------------------------------------------------------------------------- /static/images/card5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/card5.png -------------------------------------------------------------------------------- /static/images/card6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/card6.png -------------------------------------------------------------------------------- /static/images/company_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/company_logo.png -------------------------------------------------------------------------------- /static/images/declaration_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/declaration_logo.png -------------------------------------------------------------------------------- /static/images/dotted_xian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/dotted_xian.png -------------------------------------------------------------------------------- /static/images/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/erweima.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/erweima.png -------------------------------------------------------------------------------- /static/images/icon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/icon1.png -------------------------------------------------------------------------------- /static/images/icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/icon2.png -------------------------------------------------------------------------------- /static/images/icon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/icon3.png -------------------------------------------------------------------------------- /static/images/index_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/index_bg.png -------------------------------------------------------------------------------- /static/images/index_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/index_logo.png -------------------------------------------------------------------------------- /static/images/info1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/info1.png -------------------------------------------------------------------------------- /static/images/info2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/info2.png -------------------------------------------------------------------------------- /static/images/info3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/info3.png -------------------------------------------------------------------------------- /static/images/info4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/info4.png -------------------------------------------------------------------------------- /static/images/layui-advantage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/layui-advantage.png -------------------------------------------------------------------------------- /static/images/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/left.png -------------------------------------------------------------------------------- /static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/logo.png -------------------------------------------------------------------------------- /static/images/logo_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/logo_top.png -------------------------------------------------------------------------------- /static/images/manage.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/map.png -------------------------------------------------------------------------------- /static/images/news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/news.png -------------------------------------------------------------------------------- /static/images/order_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/order_import.png -------------------------------------------------------------------------------- /static/images/order_import_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/order_import_e.png -------------------------------------------------------------------------------- /static/images/par.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/par.jfif -------------------------------------------------------------------------------- /static/images/partner/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/1.png -------------------------------------------------------------------------------- /static/images/partner/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/10.png -------------------------------------------------------------------------------- /static/images/partner/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/11.png -------------------------------------------------------------------------------- /static/images/partner/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/12.png -------------------------------------------------------------------------------- /static/images/partner/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/13.png -------------------------------------------------------------------------------- /static/images/partner/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/14.png -------------------------------------------------------------------------------- /static/images/partner/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/15.png -------------------------------------------------------------------------------- /static/images/partner/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/16.png -------------------------------------------------------------------------------- /static/images/partner/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/17.png -------------------------------------------------------------------------------- /static/images/partner/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/18.png -------------------------------------------------------------------------------- /static/images/partner/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/19.png -------------------------------------------------------------------------------- /static/images/partner/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/2.png -------------------------------------------------------------------------------- /static/images/partner/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/20.png -------------------------------------------------------------------------------- /static/images/partner/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/21.png -------------------------------------------------------------------------------- /static/images/partner/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/22.png -------------------------------------------------------------------------------- /static/images/partner/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/23.png -------------------------------------------------------------------------------- /static/images/partner/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/24.png -------------------------------------------------------------------------------- /static/images/partner/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/25.png -------------------------------------------------------------------------------- /static/images/partner/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/26.png -------------------------------------------------------------------------------- /static/images/partner/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/27.png -------------------------------------------------------------------------------- /static/images/partner/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/28.png -------------------------------------------------------------------------------- /static/images/partner/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/3.png -------------------------------------------------------------------------------- /static/images/partner/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/4.png -------------------------------------------------------------------------------- /static/images/partner/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/5.png -------------------------------------------------------------------------------- /static/images/partner/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/6.png -------------------------------------------------------------------------------- /static/images/partner/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/7.png -------------------------------------------------------------------------------- /static/images/partner/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/8.png -------------------------------------------------------------------------------- /static/images/partner/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/partner/9.png -------------------------------------------------------------------------------- /static/images/partner/p1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/partner/p2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/partner/p4.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/partner/p5.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/partner/p6.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/people.png -------------------------------------------------------------------------------- /static/images/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/right.png -------------------------------------------------------------------------------- /static/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/search.png -------------------------------------------------------------------------------- /static/images/six.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/six.png -------------------------------------------------------------------------------- /static/images/text.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/images/uugai.com-1574165928778.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/uugai.com-1574165928778.png -------------------------------------------------------------------------------- /static/images/uugai.com_1574165878157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/images/uugai.com_1574165878157.png -------------------------------------------------------------------------------- /static/pdf/pdf_contract_e/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_contract_e/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_contract_i/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_contract_i/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_declaration_e/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_declaration_e/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_declaration_e/target002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_declaration_e/target002.png -------------------------------------------------------------------------------- /static/pdf/pdf_declaration_i/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_declaration_i/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_declaration_i/target002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_declaration_i/target002.png -------------------------------------------------------------------------------- /static/pdf/pdf_driver_i/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_driver_i/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_invoice/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_invoice/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_packing_e/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_packing_e/target001.png -------------------------------------------------------------------------------- /static/pdf/pdf_packing_i/target001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/snowlyg/BeeCustom/4ce47d171e3d071642871c03d2dc247eaa82a88e/static/pdf/pdf_packing_i/target001.png -------------------------------------------------------------------------------- /static/upload/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /static/upload/clearance/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /static/upload/handBook/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /sysinit/initDatabase.go: -------------------------------------------------------------------------------- 1 | package sysinit 2 | 3 | import ( 4 | "fmt" 5 | 6 | "BeeCustom/models" 7 | "BeeCustom/utils" 8 | "github.com/astaxie/beego" 9 | "github.com/astaxie/beego/orm" 10 | "github.com/astaxie/beego/plugins/auth" 11 | 12 | //_ "github.com/mattn/go-sqlite3" 13 | _ "github.com/go-sql-driver/mysql" 14 | ) 15 | 16 | // 初始化数据连接 17 | func InitDatabase() { 18 | 19 | var dns string 20 | 21 | // 数据库类别 22 | dbType := beego.AppConfig.String("db_type") 23 | // 连接名称 24 | dbAlias := beego.AppConfig.String(dbType + "::db_alias") 25 | // 数据库名称 26 | dbName := beego.AppConfig.String(dbType + "::db_name") 27 | // 数据库连接用户名 28 | dbUser := beego.AppConfig.String(dbType + "::db_user") 29 | // 数据库连接用户名 30 | dbPwd := beego.AppConfig.String(dbType + "::db_pwd") 31 | // 数据库IP(域名) 32 | dbHost := beego.AppConfig.String(dbType + "::db_host") 33 | // 数据库端口 34 | dbPort := beego.AppConfig.String(dbType + "::db_port") 35 | switch dbType { 36 | case "sqlite3": 37 | _ = orm.RegisterDataBase(dbAlias, dbType, dbName) 38 | break 39 | case "mysql": 40 | dbCharset := beego.AppConfig.String(dbType + "::db_charset") 41 | dns = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", dbUser, dbPwd, dbHost, dbPort, dbName) 42 | _ = orm.RegisterDataBase(dbAlias, dbType, dns+"?charset="+dbCharset, 30) 43 | 44 | default: 45 | utils.LogCritical(fmt.Sprintf("Database driver is not allowed:%v", dbType)) 46 | } 47 | 48 | // 如果是开发模式,则显示命令信息 49 | isDev := beego.AppConfig.String("runmode") == "dev" 50 | // 自动建表 51 | _ = orm.RunSyncdb("default", false, isDev) 52 | if isDev { 53 | orm.Debug = isDev 54 | } 55 | 56 | // basicAuth 认证 57 | pdfAuth, _ := models.GetSettingRValueByKey("pdfAuth", false) 58 | username := pdfAuth["pdf_username"] 59 | password := pdfAuth["pdf_password"] 60 | 61 | beego.InsertFilter("/pdf/*", beego.BeforeRouter, auth.Basic(username, password)) 62 | } 63 | -------------------------------------------------------------------------------- /sysinit/sysinit.go: -------------------------------------------------------------------------------- 1 | package sysinit 2 | 3 | import ( 4 | "encoding/gob" 5 | 6 | "BeeCustom/models" 7 | "BeeCustom/tasks" 8 | "BeeCustom/utils" 9 | 10 | _ "github.com/astaxie/beego/session/redis" 11 | ) 12 | 13 | func init() { 14 | 15 | // 16 | gob.Register(models.BackendUser{}) 17 | 18 | //初始化日志 19 | utils.InitLogs() 20 | //初始化缓存 21 | utils.InitCache() 22 | //初始化权限 23 | utils.InitRabc() 24 | //自定义末模板方法 25 | utils.InitFunc() 26 | //定时任务 27 | tasks.InitTask() 28 | //ws 29 | utils.InitWs() 30 | //初始化数据库 31 | InitDatabase() 32 | 33 | } 34 | -------------------------------------------------------------------------------- /tasks/orderUpdateStatus.go: -------------------------------------------------------------------------------- 1 | package tasks 2 | 3 | import ( 4 | "fmt" 5 | 6 | "BeeCustom/enums" 7 | "BeeCustom/models" 8 | "BeeCustom/utils" 9 | "github.com/astaxie/beego/orm" 10 | "github.com/astaxie/beego/toolbox" 11 | ) 12 | 13 | //检测报文是否发送成功,并更新货物状态 14 | func orderUpdateStatus() *toolbox.Task { 15 | 16 | task := toolbox.NewTask("task", "* * * * * *", func() error { 17 | o := orm.NewOrm() 18 | aStatusS, err := models.GetSettingRValueByKey("orderStatus", false) 19 | status9, err := enums.TransformCnToInt(aStatusS, "复核通过") 20 | if err != nil { 21 | utils.LogError(fmt.Sprintf("获取数据列表和总数 error:%v", err)) 22 | } 23 | 24 | status11, err := enums.TransformCnToInt(aStatusS, "已提交单一") 25 | if err != nil { 26 | utils.LogError(fmt.Sprintf("获取数据列表和总数 error:%v", err)) 27 | } 28 | 29 | var sendPathNames []string 30 | sendPathNames = getXmlNames("order_send_xml_path", sendPathNames) 31 | qs := o.QueryTable(models.OrderTBName()).Filter("Status", status9) 32 | if len(sendPathNames) > 0 && len(sendPathNames[0]) > 0 { 33 | if len(sendPathNames[0]) > 0 { 34 | qs = qs.Filter("client_seq_no__in", sendPathNames) 35 | } 36 | 37 | mun, err := qs.Update(orm.Params{ 38 | "status": status11, 39 | }) 40 | 41 | if err != nil { 42 | utils.LogError(fmt.Sprintf("orderXmlPasre Update error:%v", err)) 43 | } 44 | 45 | //ws 自动更新 46 | if mun > 0 { 47 | msg := utils.Message{Message: "货物状态更新", IsUpdated: true} 48 | utils.Broadcast <- msg 49 | } 50 | } 51 | 52 | return nil 53 | }) 54 | 55 | err := task.Run() 56 | if err != nil { 57 | utils.LogError(fmt.Sprintf("tk.Run error :%v", err)) 58 | return nil 59 | } 60 | 61 | return task 62 | } 63 | -------------------------------------------------------------------------------- /tests/default_test.go: -------------------------------------------------------------------------------- 1 | package test 2 | 3 | import ( 4 | "net/http" 5 | "net/http/httptest" 6 | "path/filepath" 7 | "runtime" 8 | "testing" 9 | 10 | _ "BeeCustom/routers" 11 | 12 | "github.com/astaxie/beego" 13 | . "github.com/smartystreets/goconvey/convey" 14 | ) 15 | 16 | func init() { 17 | _, file, _, _ := runtime.Caller(1) 18 | apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".."+string(filepath.Separator)))) 19 | beego.TestBeegoInit(apppath) 20 | } 21 | 22 | // TestBeego is a sample to run an endpoint test 23 | func TestBeego(t *testing.T) { 24 | r, _ := http.NewRequest("GET", "/", nil) 25 | w := httptest.NewRecorder() 26 | beego.BeeApp.Handlers.ServeHTTP(w, r) 27 | 28 | beego.Trace("testing", "TestBeego", "Code[%d]\n%s", w.Code, w.Body.String()) 29 | 30 | Convey("Subject: Test Station Endpoint\n", t, func() { 31 | Convey("Status Code Should Be 200", func() { 32 | So(w.Code, ShouldEqual, 200) 33 | }) 34 | Convey("The Result Should Not Be Empty", func() { 35 | So(w.Body.Len(), ShouldBeGreaterThan, 0) 36 | }) 37 | }) 38 | } 39 | -------------------------------------------------------------------------------- /transforms/Article.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | import "html" 4 | 5 | type Article struct { 6 | Id int64 7 | Type string `gtf:"Func.GetTypeName()"` 8 | Title string `gtf:"Func.GetValueEnd()"` 9 | Content string 10 | Overview string 11 | Origin string 12 | NewTime string 13 | CreatedAt string 14 | UpdatedAt string 15 | } 16 | 17 | func (s *Article) GetTypeName(v string) string { 18 | if v == "1" { 19 | return "新闻动态" 20 | } else if v == "2" { 21 | return "通知公告" 22 | } 23 | 24 | return "新闻动态" 25 | } 26 | 27 | func (s *Article) GetValueEnd(v string) string { 28 | value := []rune(html.UnescapeString(v)) 29 | 30 | valueEnd := string(value[:len(value)-1]) 31 | if len(value) > 40 { 32 | valueEnd = string(value[:40]) + `...` 33 | } 34 | 35 | return valueEnd 36 | } 37 | -------------------------------------------------------------------------------- /transforms/annotationReturn.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type AnnotationReturn struct { 4 | Id int64 5 | SeqNo string 6 | CheckInfo string 7 | DealFlag string 8 | EtpsPreentNo string 9 | BusinessId string 10 | ManageResult string 11 | Reason string 12 | CreateDate string 13 | Rmk string 14 | DeletedAt string 15 | CreatedAt string 16 | UpdatedAt string 17 | } 18 | -------------------------------------------------------------------------------- /transforms/backenduser.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type BackendUser struct { 4 | Id int64 5 | RealName string 6 | UserName string 7 | UserPwd string 8 | Mobile string 9 | Email string 10 | Avatar string 11 | ICCode string 12 | Chapter string 13 | IsSuper bool 14 | Status bool 15 | RoleNames string 16 | CreatedAt string 17 | UpdatedAt string 18 | } 19 | -------------------------------------------------------------------------------- /transforms/ciq.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type Ciq struct { 4 | Id int64 5 | Hs string 6 | Name string 7 | CiqCode string 8 | CiqName string 9 | Version string 10 | VersionDate string 11 | Mark int8 12 | Status string 13 | CreatedAt string 14 | UpdatedAt string 15 | } 16 | -------------------------------------------------------------------------------- /transforms/company.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | import ( 4 | "BeeCustom/models" 5 | ) 6 | 7 | type Company struct { 8 | Id int64 9 | Number string 10 | AdminName string `gtf:"Func.GetAdminName(CompanyContacts)"` 11 | Name string 12 | Short string 13 | Registration string 14 | Address string 15 | DeclareType int8 16 | RegistrationCode string 17 | Phone string 18 | Fax string 19 | CreditCode string 20 | BusinessName string 21 | BusinessCode string 22 | Bank string 23 | CustomCertification int8 24 | CompanyType int8 25 | CompanyKind int8 26 | ControlRating int8 27 | Remark string 28 | IsOpenSubEmail int8 29 | IsOpenSubPhone int8 30 | SubPhone string 31 | SubEmail string 32 | SubContentCheck int8 33 | SubContentSubmit int8 34 | SubContentReject int8 35 | SubContentPass int8 36 | StatementDate int8 37 | IsTrade int8 38 | IsOwner int8 39 | Business string 40 | BusinessAuditStatus int8 41 | BusinessAuditAt string 42 | Tax int8 43 | CreatedAt string 44 | UpdatedAt string 45 | } 46 | 47 | func (c *Company) GetAdminName(vs []*models.CompanyContact) string { 48 | for _, v := range vs { 49 | if v.IsAdmin == 1 { 50 | return v.Name 51 | } 52 | } 53 | 54 | return "" 55 | } 56 | -------------------------------------------------------------------------------- /transforms/handBookUllage.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type HandBookUllage struct { 4 | Id int64 5 | OriginalityProNo int8 6 | OriginalityProName string 7 | OriginalityProSpecial string 8 | OriginalityProU string 9 | OnlyUllage string 10 | Ullage string 11 | Gedition string 12 | Serial string 13 | FinishProNo string 14 | FinishRecordNo string 15 | FinishHsCode string 16 | FinishName string 17 | FinishSpecial string 18 | FinishSpecialU string 19 | OriginalityRecordNo string 20 | OriginalityHsCode string 21 | OnlyUllageVersion string 22 | OneUllage string 23 | NoUllage string 24 | OnlyUllageStatus string 25 | ChangeMark string 26 | BondedRate string 27 | CompanyExecuteFlag string 28 | OnlyUllageAt string 29 | UllageFlag string 30 | TalkFlag string 31 | Remark string 32 | CreatedAt string 33 | UpdatedAt string 34 | } 35 | -------------------------------------------------------------------------------- /transforms/homeOrder.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type HomeOrder struct { 4 | Country string `gtf:"Func.GetCountry()"` 5 | Value int 6 | Year string 7 | } 8 | 9 | func (s *HomeOrder) GetCountry(v string) string { 10 | if v == "I" { 11 | return "进口" 12 | } else if v == "E" { 13 | return "出口" 14 | } 15 | return "" 16 | } 17 | -------------------------------------------------------------------------------- /transforms/hsCode.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | import "BeeCustom/models" 4 | 5 | type HsCode struct { 6 | Id int64 7 | Code string 8 | Name string 9 | License string 10 | GeneralRate float64 11 | OfferRate float64 12 | ExportRate float64 13 | TaxRate float64 14 | ConsumeRate float64 15 | Unit1 string 16 | Unit2 string 17 | Declaration string 18 | Remark string 19 | Unit1Name string `gtf:"Func.GetUnitCode(Unit1,计量单位代码)"` 20 | Unit2Name string `gtf:"Func.GetUnitCode(Unit2,计量单位代码)"` 21 | CreatedAt string 22 | UpdatedAt string 23 | } 24 | 25 | func (h *HsCode) GetUnitCode(v, t string) interface{} { 26 | cs := models.GetClearancesByTypes(t, false) 27 | for _, c := range cs { 28 | if c[0] == v { 29 | return c[1] 30 | } 31 | } 32 | return nil 33 | } 34 | -------------------------------------------------------------------------------- /transforms/orderFile.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type OrderFile struct { 4 | Id int64 5 | EdocID string 6 | EdocCode string 7 | EdocCodeName string 8 | EdocFomatType string 9 | OpNote string 10 | EdocCopId string 11 | EdocOwnerCode string 12 | SignUnit string 13 | SignTime string 14 | EdocOwnerName string 15 | EdocSize string 16 | EdocCopUrl string 17 | Creator string 18 | Version float64 19 | CreatedAt string 20 | UpdatedAt string 21 | } 22 | -------------------------------------------------------------------------------- /transforms/resource.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type Resource struct { 4 | Id int64 5 | Rtype int 6 | Name string 7 | Icon string 8 | UrlFor string 9 | ParentName string `gtf:"Parent.Name"` 10 | Sons []*Resource 11 | CreatedAt string 12 | UpdatedAt string 13 | } 14 | -------------------------------------------------------------------------------- /transforms/role.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | type Role struct { 4 | Id int64 5 | Name string 6 | CreatedAt string 7 | UpdatedAt string 8 | } 9 | -------------------------------------------------------------------------------- /transforms/setting.go: -------------------------------------------------------------------------------- 1 | package transforms 2 | 3 | import "html" 4 | 5 | type Setting struct { 6 | Id int64 7 | Key string 8 | RValue string `gtf:"Func.GetValueEnd()"` 9 | Rmk string 10 | CreatedAt string 11 | UpdatedAt string 12 | } 13 | 14 | func (s *Setting) GetValueEnd(v string) string { 15 | value := []rune(html.UnescapeString(v)) 16 | 17 | valueEnd := string(value[:len(value)-1]) 18 | if len(value) > 30 { 19 | valueEnd = string(value[:30]) + `...` 20 | } 21 | 22 | return valueEnd 23 | } 24 | -------------------------------------------------------------------------------- /utils/global.go: -------------------------------------------------------------------------------- 1 | package utils 2 | -------------------------------------------------------------------------------- /utils/rabc.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "fmt" 5 | 6 | "BeeCustom/middleware/beego-orm-adapter" 7 | "github.com/astaxie/beego" 8 | "github.com/casbin/casbin" 9 | ) 10 | 11 | var E *casbin.Enforcer 12 | var dns string 13 | var err error 14 | 15 | //初始化数据连接 16 | func InitRabc() { 17 | //数据库类别 18 | dbType := beego.AppConfig.String("db_type") 19 | //数据库名称 20 | dbName := beego.AppConfig.String(dbType + "::db_name") 21 | //数据库连接用户名 22 | dbUser := beego.AppConfig.String(dbType + "::db_user") 23 | //数据库连接用户名 24 | dbPwd := beego.AppConfig.String(dbType + "::db_pwd") 25 | //数据库IP(域名) 26 | dbHost := beego.AppConfig.String(dbType + "::db_host") 27 | //数据库端口 28 | dbPort := beego.AppConfig.String(dbType + "::db_port") 29 | switch dbType { 30 | case "sqlite3": 31 | dns = fmt.Sprintf("%s.db", dbName) 32 | break 33 | case "mysql": 34 | dns = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", dbUser, dbPwd, dbHost, dbPort, dbName) 35 | break 36 | default: 37 | LogCritical(fmt.Sprintf("Database driver is not allowed:%v", dbType)) 38 | } 39 | 40 | a := beegoormadapter.NewAdapter(dbType, dns) 41 | E = casbin.NewEnforcer("conf/rbac_model.conf", a) 42 | if err != nil { 43 | LogDebug(fmt.Sprintf("NewEnforcer error:%v", err)) 44 | } 45 | 46 | err = E.LoadPolicy() 47 | 48 | if err != nil { 49 | LogDebug(fmt.Sprintf("LoadPolicy error:%v", err)) 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /utils/selffunc.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "strings" 5 | 6 | "github.com/astaxie/beego" 7 | ) 8 | 9 | //自定义末模板方法 10 | func InitFunc() { 11 | _ = beego.AddFuncMap("inArray", inArray) 12 | _ = beego.AddFuncMap("inArrayStr", inArrayStr) 13 | _ = beego.AddFuncMap("inArrayStrSlice", inArrayStrSlice) 14 | _ = beego.AddFuncMap("canArray", canArray) 15 | } 16 | 17 | //is Array 18 | func inArray(in int64, s []interface{}) bool { 19 | 20 | if len(s) == 0 { 21 | return false 22 | } 23 | 24 | for _, v := range s { 25 | if v == in { 26 | return true 27 | } 28 | } 29 | 30 | return false 31 | } 32 | 33 | //is inArrayStr 34 | func inArrayStr(str string, s []string) bool { 35 | 36 | if len(s) == 0 { 37 | return false 38 | } 39 | 40 | if len(str) == 0 { 41 | return false 42 | } 43 | 44 | for _, v := range s { 45 | if v == str { 46 | return true 47 | } 48 | } 49 | 50 | return false 51 | } 52 | 53 | //is inArrayStrSlice 54 | func inArrayStrSlice(str string, index int, s []map[int][]string) bool { 55 | if len(s) == 0 { 56 | return false 57 | } 58 | 59 | if len(str) == 0 { 60 | return false 61 | } 62 | 63 | for _, v := range s { 64 | for _, iv := range v[index] { 65 | if iv == str { 66 | return true 67 | } 68 | } 69 | } 70 | 71 | return false 72 | } 73 | 74 | //canArray 数组权限 清单,货物进出口 75 | //{ 76 | // "I" : { 77 | // "canCreate" :true 78 | // }, 79 | // "E" : { 80 | // "canCreate" :true 81 | // }, 82 | //} 83 | func canArray(s map[string]map[string]bool, index, perm string) bool { 84 | //LogDebug(s) 85 | //LogDebug(index) 86 | //LogDebug(perm) 87 | if len(s) == 0 { 88 | return false 89 | } 90 | for sI, v := range s { 91 | if sI == strings.ToUpper(index) { 92 | return v[perm] 93 | } 94 | } 95 | return false 96 | } 97 | -------------------------------------------------------------------------------- /utils/stringtool.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import "fmt" 4 | import "crypto/md5" 5 | import "math/rand" 6 | import "time" 7 | import "strconv" 8 | import "strings" 9 | 10 | //将字符串加密成 md5 11 | func String2md5(str string) string { 12 | data := []byte(str) 13 | has := md5.Sum(data) 14 | return fmt.Sprintf("%x", has) //将[]byte转成16进制 15 | } 16 | 17 | //RandomString 在数字、大写字母、小写字母范围内生成num位的随机字符串 18 | func RandomString(length int) string { 19 | // 48 ~ 57 数字 20 | // 65 ~ 90 A ~ Z 21 | // 97 ~ 122 a ~ z 22 | // 一共62个字符,在0~61进行随机,小于10时,在数字范围随机, 23 | // 小于36在大写范围内随机,其他在小写范围随机 24 | rand.Seed(time.Now().UnixNano()) 25 | result := make([]string, 0, length) 26 | for i := 0; i < length; i++ { 27 | t := rand.Intn(62) 28 | if t < 10 { 29 | result = append(result, strconv.Itoa(rand.Intn(10))) 30 | } else if t < 36 { 31 | result = append(result, string(rand.Intn(26)+65)) 32 | } else { 33 | result = append(result, string(rand.Intn(26)+97)) 34 | } 35 | } 36 | return strings.Join(result, "") 37 | } 38 | -------------------------------------------------------------------------------- /utils/utils_test.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "testing" 5 | ) 6 | 7 | func TestRandomString(t *testing.T) { 8 | str := RandomString(10) 9 | InitLogs() 10 | LogDebug("testing") 11 | t.Error(str) 12 | } 13 | -------------------------------------------------------------------------------- /utils/ws.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/gorilla/websocket" 7 | ) 8 | 9 | var ( 10 | Clients = make(map[*websocket.Conn]bool) 11 | Broadcast = make(chan Message) 12 | ) 13 | 14 | type Message struct { 15 | Message string `json:"message"` 16 | IsUpdated bool `json:"is_updated"` 17 | } 18 | 19 | //初始化数据连接 20 | func InitWs() { 21 | go handleMessages() 22 | } 23 | 24 | //广播发送至页面 25 | func handleMessages() { 26 | for { 27 | msg := <-Broadcast 28 | for client := range Clients { 29 | err := client.WriteJSON(msg) 30 | if err != nil { 31 | LogDebug(fmt.Sprintf("client.WriteJSON error: %v", err)) 32 | client.Close() 33 | delete(Clients, client) 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /validations/auth.go: -------------------------------------------------------------------------------- 1 | package validations 2 | 3 | import ( 4 | "strings" 5 | 6 | "github.com/astaxie/beego/validation" 7 | ) 8 | 9 | func LoginValid(UserName, UserPwd string) string { 10 | 11 | valid := validation.Validation{} 12 | validation.MessageTmpls = GetMessageTmpls() 13 | 14 | valid.Required(UserName, "用户名") 15 | valid.MinSize(UserName, 5, "用户名") 16 | valid.MaxSize(UserName, 24, "用户名") 17 | 18 | valid.Required(UserPwd, "密码") 19 | valid.MinSize(UserPwd, 6, "密码") 20 | valid.MaxSize(UserPwd, 16, "密码") 21 | valid.AlphaNumeric(UserPwd, "密码") 22 | 23 | if valid.HasErrors() { 24 | if len(valid.Errors) > 0 { 25 | return strings.Split(valid.Errors[0].Key, ".")[0] + ":" + valid.Errors[0].Message 26 | } 27 | } 28 | 29 | return "" 30 | } 31 | -------------------------------------------------------------------------------- /validations/base.go: -------------------------------------------------------------------------------- 1 | package validations 2 | 3 | func GetMessageTmpls() map[string]string { 4 | return map[string]string{ 5 | "Required": "不能为空", 6 | "Min": "最小为 %d", 7 | "Max": "最大为 %d", 8 | "Range": "范围在 %d 至 %d", 9 | "MinSize": "最小长度为 %d", 10 | "MaxSize": "最大长度为 %d", 11 | "Length": "长度必须是 %d", 12 | "Alpha": "必须是有效的字母字符", 13 | "Numeric": "必须是有效的数字字符", 14 | "AlphaNumeric": "必须是有效的字母或数字字符", 15 | "Match": "必须匹配格式 %s", 16 | "NoMatch": "必须不匹配格式 %s", 17 | "AlphaDash": "必须是有效的字母或数字或破折号(-_)字符", 18 | "Email": "必须是有效的邮件地址", 19 | "IP": "必须是有效的IP地址", 20 | "Base64": "必须是有效的base64字符", 21 | "Mobile": "必须是有效手机号码", 22 | "Tel": "必须是有效电话号码", 23 | "Phone": "必须是有效的电话号码或者手机号码", 24 | "ZipCode": "必须是有效的邮政编码", 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /validations/role.go: -------------------------------------------------------------------------------- 1 | package validations 2 | 3 | import ( 4 | "strings" 5 | 6 | "github.com/astaxie/beego/validation" 7 | ) 8 | 9 | func RoleValid(permIds string) string { 10 | 11 | valid := validation.Validation{} 12 | valid.Required(permIds, "权限集合") 13 | 14 | if valid.HasErrors() { 15 | if len(valid.Errors) > 0 { 16 | return strings.Split(valid.Errors[0].Key, ".")[0] + ":" + valid.Errors[0].Message 17 | } 18 | } 19 | return "" 20 | } 21 | -------------------------------------------------------------------------------- /views/annotation/create/remark_note.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/annotation/create/trsp_modecd_template.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/backenduser/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/backenduser/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/backenduser/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | @{{if .canCreate}} 7 | +新建 8 | @{{end}} 9 |
10 |
11 |
12 |
13 | 18 |
19 |
20 | 21 | 22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | 31 | -------------------------------------------------------------------------------- /views/ciq/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | @{{if .canImport}} 7 | 导入 8 | @{{ end}} 9 | 最近更新:@{{ .lastUpdateTime}} 10 |
11 |
12 |
13 | 14 | 15 |
16 |
17 |
18 |
19 |
20 |
21 |
-------------------------------------------------------------------------------- /views/clearance/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/clearance/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/common/order_annotation/application_change.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/common/order_annotation/distribute.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/common/order_annotation/enclosure_check.html: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /views/common/order_annotation/reject.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/common/order_annotation/status_count.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/common/order_annotation/take.html: -------------------------------------------------------------------------------- 1 | 33 | -------------------------------------------------------------------------------- /views/company/contact/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/company/contact/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/company/foreign/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/company/foreign/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/company/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | @{{if .canCreate }} 7 | +新建 9 | @{{ end}} 10 | @{{if .canImport}} 11 | 客户导入 12 | @{{end}} 13 | 商品库导入 14 |
15 |
16 |
17 | 18 | 19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 27 | -------------------------------------------------------------------------------- /views/company/seal/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/company/seal/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/handbook/account/show.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

@{{ .m.CompanyName }}

5 |

6 | 账册编号:@{{ .m.ContractNumber }} 7 |

8 |
9 |
10 | 13 |
14 |
15 |
16 |
17 |
    18 |
  • 表头
  • 19 |
  • 成品
  • 20 |
  • 料件
  • 21 |
  • 单损表
  • 22 |
23 |
24 |
25 | @{{template "/handbook/account/show/gauge.html" .}} 26 |
27 |
28 | @{{template "/handbook/account/show/goods.html" .}} 29 |
30 |
31 | @{{template "/handbook/account/show/piece.html" .}} 32 |
33 |
34 |
35 | @{{template "/handbook/account/show/ullage.html" .}} 36 |
37 |
38 |
39 |
40 |
41 |
-------------------------------------------------------------------------------- /views/handbook/manual/show.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

@{{ .m.CompanyName }}

5 |

6 | 账册编号:@{{ .m.ContractNumber }} 7 |

8 |
9 |
10 | 13 |
14 |
15 |
16 |
17 |
    18 |
  • 表头清单
  • 19 |
  • 成品清单
  • 20 |
  • 料件清单
  • 21 |
  • 单损表
  • 22 |
23 |
24 |
25 | @{{template "/handbook/manual/show/gauge.html" .}} 26 |
27 |
28 | @{{template "/handbook/manual/show/goods.html" .}} 29 |
30 |
31 | @{{template "/handbook/manual/show/piece.html" .}} 32 |
33 |
34 |
35 | @{{template "/handbook/manual/show/ullage.html" .}} 36 |
37 |
38 |
39 |
40 |
41 |
-------------------------------------------------------------------------------- /views/home/error.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |

SOS

5 | 6 |
7 |

出现错误:

8 |

9 | @{{ .error }} 10 |

11 |
12 | 13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /views/home/index_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/home/page404.html: -------------------------------------------------------------------------------- 1 |
2 | 6 |
7 | 8 |
9 |
10 |

404

11 | 12 |
13 |

页面不存在

14 | 15 |

16 | 请刷新后重试 17 |

18 | 19 |
20 | 21 |
22 | 23 |
24 | -------------------------------------------------------------------------------- /views/order/create/bill_no.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/ciq_name.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/code_t_s.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/commodity_storehouse.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/elements_his.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/goods_attr_batch_data.html: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /views/order/create/goods_attr_data.html: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /views/order/create/goods_no.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/manual_no.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/mark_no.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/note_s.html: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /views/order/create/order_application_change.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/order_init.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/other_packs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/print.html: -------------------------------------------------------------------------------- 1 | 6 | 13 | -------------------------------------------------------------------------------- /views/order/create/print_edit_invoice.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/print_save_invoice.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/remark_note.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/spec_decl_flag.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/create/traf_mode_template.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/order/pdf/common/recheck_delaration_header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 6 |
7 |

中华人民共和国海关@{{.m.IEFlagName}}货物报关单

8 |
9 |
10 |
11 |
12 | 预录入编号: 13 | @{{ .m.PreEntryId }} 14 |
15 |
16 | 海关编号: 17 | @{{ if .m.IsOther }} 18 | 异地报关 19 | @{{ else }} 20 | @{{.m.EntryId }} 21 | @{{ end }} 22 |
23 |
24 | (@{{ .m.CustomMasterName }}) 25 |
26 | 27 |
28 |
-------------------------------------------------------------------------------- /views/order/pdf/compalte/footer.html: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
5 | 第{{request('page')}}页 共{{request('topage')}}页 6 |
7 | @stop -------------------------------------------------------------------------------- /views/order/pdf/pass/footer.html: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
5 | 打印时间:{{ date('Y年m月d日 H:i:s',time()) }} 6 |
7 | 第{{request('page')}}页 / 共{{request('topage')}}页 8 |
9 |
10 | 11 | @stop 12 | -------------------------------------------------------------------------------- /views/resource/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/resource/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/resource/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | @{{if .canCreate}} 7 | 新建 8 | @{{end }} 9 |
10 |
11 |
12 | 13 | 15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 23 | -------------------------------------------------------------------------------- /views/role/create.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 | 8 |
9 | 11 | 12 |
13 |
14 |
15 | 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 |
24 | 25 |
26 |
27 | 30 |
31 |
32 |
33 |
34 |
35 |
-------------------------------------------------------------------------------- /views/role/create_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/role/edit.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 |
16 | 17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | 27 |
28 |
29 |
30 |
31 |
32 |
-------------------------------------------------------------------------------- /views/role/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/role/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | @{{if .canCreate}} 7 | +新建 8 | @{{end}} 9 |
10 |
11 |
12 | 13 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /views/setting/edit_footerjs.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/setting/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | @{{if .canCreate}} 7 | 新建 8 | @{{end }} 9 |
10 |
11 |
12 | 13 | 15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 23 | -------------------------------------------------------------------------------- /views/shared/app/globalcss.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /views/shared/app/globaljs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /views/shared/layout_app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | BeeCustom 9 | 10 | 11 | @{{template "shared/app/globalcss.html" }} 12 | @{{ .headcssjs }} 13 | 14 | 15 | @{{.LayoutContent}} 16 | @{{template "shared/app/globaljs.html"}} 17 | @{{ .footerjs }} 18 | 19 | -------------------------------------------------------------------------------- /views/shared/layout_pdf.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | BeeCustom 9 | 10 | 11 | @{{template "shared/app/globalcss.html" }} 12 | @{{ .headcssjs }} 13 | 14 | 15 | @{{.LayoutContent}} 16 | 17 | -------------------------------------------------------------------------------- /xlsx/xlsx.go: -------------------------------------------------------------------------------- 1 | package xlsx 2 | 3 | import ( 4 | "errors" 5 | "fmt" 6 | 7 | "BeeCustom/utils" 8 | "github.com/360EntSecGroup-Skylar/excelize" 9 | ) 10 | 11 | // BaseImport 12 | type BaseImport struct { 13 | FileNamePath string 14 | ExcelTitle map[string]string 15 | ExcelName string 16 | } 17 | 18 | // 导入基础参数 rows 文件内容 19 | func GetExcelRows(fileNamePath, excelName string) ([][]string, error) { 20 | 21 | f, err := excelize.OpenFile(fileNamePath) 22 | if err != nil { 23 | utils.LogDebug(fmt.Sprintf("GetExcelRows.OpenFile:%v", err)) 24 | return nil, err 25 | } 26 | 27 | if f == nil { 28 | return nil, errors.New("excelize.OpenFile 出错") 29 | } 30 | 31 | rows := f.GetRows(excelName) 32 | 33 | return rows, nil 34 | 35 | } 36 | 37 | // 导入基础参数 Cell 文件内容 38 | func GetExcel(fileNamePath string) (*excelize.File, error) { 39 | 40 | f, err := excelize.OpenFile(fileNamePath) 41 | if err != nil { 42 | utils.LogDebug(fmt.Sprintf("GetExcelCell.OpenFile:%v", err)) 43 | return nil, err 44 | } 45 | 46 | if f == nil { 47 | return nil, errors.New("excelize.OpenFile 出错") 48 | } 49 | 50 | return f, nil 51 | } 52 | 53 | // 设置值 54 | func FilpValueString(obj map[string]string) map[string]string { 55 | for i, v := range obj { 56 | obj[v] = i 57 | } 58 | return obj 59 | } 60 | -------------------------------------------------------------------------------- /xmlTemplate/Failed.go: -------------------------------------------------------------------------------- 1 | package xmlTemplate 2 | 3 | import "encoding/xml" 4 | 5 | type Failed struct { 6 | Root xml.Name `xml:"Root"` 7 | 8 | ResultFlag string `xml:"resultFlag"` 9 | FailCode string `xml:"failCode"` 10 | FailInfo string `xml:"failInfo"` 11 | RetData string `xml:"retData"` 12 | } 13 | -------------------------------------------------------------------------------- /xmlTemplate/annotationReturn.go: -------------------------------------------------------------------------------- 1 | package xmlTemplate 2 | 3 | import "encoding/xml" 4 | 5 | type CommonResponeMessage struct { 6 | CommonResponeMessage xml.Name `xml:"CommonResponeMessage"` 7 | 8 | SeqNo string `xml:"SeqNo"` 9 | EtpsPreentNo string `xml:"EtpsPreentNo"` 10 | CheckInfo string `xml:"CheckInfo"` 11 | DealFlag string `xml:"DealFlag"` 12 | } 13 | 14 | type ReturnPackage struct { 15 | Package xml.Name `xml:"Package"` 16 | 17 | Version string `xml:"EnvelopInfo>version"` 18 | EnvelopInfoBusinessId string `xml:"EnvelopInfo>business_id"` 19 | MessageId string `xml:"EnvelopInfo>message_id"` 20 | FileName string `xml:"EnvelopInfo>file_name"` 21 | MessageType string `xml:"EnvelopInfo>message_type"` 22 | SenderId string `xml:"EnvelopInfo>sender_id"` 23 | ReceiverId string `xml:"EnvelopInfo>receiver_id"` 24 | SendTime string `xml:"EnvelopInfo>send_time"` 25 | 26 | InvPreentNo string `xml:"DataInfo>BussinessData>INV202>InvApprResult>invPreentNo"` 27 | DataInfoBusinessId string `xml:"DataInfo>BussinessData>INV202>InvApprResult>businessId"` 28 | EntrySeqNo string `xml:"DataInfo>BussinessData>INV202>InvApprResult>entrySeqNo"` 29 | ManageResult string `xml:"DataInfo>BussinessData>INV202>InvApprResult>manageResult"` 30 | CreateDate string `xml:"DataInfo>BussinessData>INV202>InvApprResult>createDate"` 31 | Reason string `xml:"DataInfo>BussinessData>INV202>InvApprResult>reason"` 32 | } 33 | -------------------------------------------------------------------------------- /xmlTemplate/cdata.go: -------------------------------------------------------------------------------- 1 | package xmlTemplate 2 | 3 | type Cdata struct { 4 | Value string `xml:",cdata"` 5 | } 6 | -------------------------------------------------------------------------------- /xmlTemplate/orderReturn.go: -------------------------------------------------------------------------------- 1 | package xmlTemplate 2 | 3 | import "encoding/xml" 4 | 5 | // successed / failed:没有 SeqNo 6 | type DecImportResponse struct { 7 | DecImportResponse xml.Name `xml:"DecImportResponse"` 8 | 9 | ResponseCode string `xml:"ResponseCode"` 10 | ErrorMessage string `xml:"ErrorMessage"` 11 | ClientSeqNo string `xml:"ClientSeqNo"` 12 | SeqNo string `xml:"SeqNo"` 13 | } 14 | 15 | // receipt 16 | type DecResult struct { 17 | DecResult xml.Name `xml:"DEC_RESULT"` 18 | 19 | CusCiqNo string `xml:"CUS_CIQ_NO"` 20 | EntryId string `xml:"ENTRY_ID"` 21 | NoticeDate string `xml:"NOTICE_DATE"` 22 | Channel string `xml:"CHANNEL"` 23 | Note string `xml:"NOTE"` 24 | CustomMaster string `xml:"CUSTOM_MASTER"` 25 | IEDate string `xml:"I_E_DATE"` 26 | DDate string `xml:"D_DATE"` 27 | } 28 | --------------------------------------------------------------------------------