├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── pay.jpg ├── pom.xml └── src └── main ├── java └── com │ └── budwk │ └── app │ ├── MainLauncher.java │ ├── base │ ├── constant │ │ └── RedisConstant.java │ ├── exception │ │ └── BaseException.java │ ├── model │ │ └── BaseModel.java │ ├── page │ │ ├── OffsetPager.java │ │ ├── Paginable.java │ │ ├── Pagination.java │ │ ├── SimplePage.java │ │ └── datatable │ │ │ ├── DataTableColumn.java │ │ │ └── DataTableOrder.java │ ├── result │ │ ├── IResultCode.java │ │ ├── Result.java │ │ └── ResultCode.java │ ├── service │ │ ├── BaseService.java │ │ └── impl │ │ │ └── BaseServiceImpl.java │ └── utils │ │ ├── DateUtil.java │ │ ├── FileUtil.java │ │ ├── MapUtil.java │ │ ├── PageUtil.java │ │ ├── PinyinUtil.java │ │ ├── PwdUtil.java │ │ ├── SignUtil.java │ │ ├── StringUtil.java │ │ └── WebUtil.java │ ├── cms │ ├── models │ │ ├── Cms_article.java │ │ ├── Cms_channel.java │ │ ├── Cms_link.java │ │ ├── Cms_link_class.java │ │ └── Cms_site.java │ └── services │ │ ├── CmsArticleService.java │ │ ├── CmsChannelService.java │ │ ├── CmsLinkClassService.java │ │ ├── CmsLinkService.java │ │ ├── CmsSiteService.java │ │ └── impl │ │ ├── CmsArticleServiceImpl.java │ │ ├── CmsChannelServiceImpl.java │ │ ├── CmsLinkClassServiceImpl.java │ │ ├── CmsLinkServiceImpl.java │ │ └── CmsSiteServiceImpl.java │ ├── sys │ ├── models │ │ ├── Sys_api.java │ │ ├── Sys_app_conf.java │ │ ├── Sys_app_list.java │ │ ├── Sys_app_task.java │ │ ├── Sys_config.java │ │ ├── Sys_dict.java │ │ ├── Sys_log.java │ │ ├── Sys_menu.java │ │ ├── Sys_msg.java │ │ ├── Sys_msg_user.java │ │ ├── Sys_role.java │ │ ├── Sys_route.java │ │ ├── Sys_task.java │ │ ├── Sys_unit.java │ │ └── Sys_user.java │ └── services │ │ ├── SysApiService.java │ │ ├── SysAppConfService.java │ │ ├── SysAppListService.java │ │ ├── SysAppTaskService.java │ │ ├── SysConfigService.java │ │ ├── SysDictService.java │ │ ├── SysLogService.java │ │ ├── SysMenuService.java │ │ ├── SysMsgService.java │ │ ├── SysMsgUserService.java │ │ ├── SysRoleService.java │ │ ├── SysRouteService.java │ │ ├── SysTaskService.java │ │ ├── SysUnitService.java │ │ ├── SysUserService.java │ │ └── impl │ │ ├── SysApiServiceImpl.java │ │ ├── SysAppConfServiceImpl.java │ │ ├── SysAppListServiceImpl.java │ │ ├── SysAppTaskServiceImpl.java │ │ ├── SysConfigServiceImpl.java │ │ ├── SysDictServiceImpl.java │ │ ├── SysLogServiceImpl.java │ │ ├── SysMenuServiceImpl.java │ │ ├── SysMsgServiceImpl.java │ │ ├── SysMsgUserServiceImpl.java │ │ ├── SysRoleServiceImpl.java │ │ ├── SysRouteServiceImpl.java │ │ ├── SysTaskServiceImpl.java │ │ ├── SysUnitServiceImpl.java │ │ └── SysUserServiceImpl.java │ ├── task │ ├── conn │ │ └── NutConnectionProvider.java │ ├── job │ │ └── TestJob.java │ └── services │ │ ├── TaskPlatformService.java │ │ └── impl │ │ └── TaskPlatformServiceImpl.java │ ├── web │ ├── commons │ │ ├── auth │ │ │ ├── satoken │ │ │ │ ├── SaTokenContextImpl.java │ │ │ │ ├── SaTokenDaoRedisImpl.java │ │ │ │ ├── StpInterfaceImpl.java │ │ │ │ └── aop │ │ │ │ │ ├── SaCheckLoginInterceptor.java │ │ │ │ │ ├── SaCheckPermissionInterceptor.java │ │ │ │ │ ├── SaCheckRoleInterceptor.java │ │ │ │ │ ├── SaTokenAopConfigration.java │ │ │ │ │ └── SaTokenMethodMatcher.java │ │ │ ├── service │ │ │ │ ├── AuthService.java │ │ │ │ └── ValidateService.java │ │ │ └── utils │ │ │ │ └── SecurityUtil.java │ │ ├── base │ │ │ └── Globals.java │ │ ├── ext │ │ │ ├── beetl │ │ │ │ ├── FileSizeFormat.java │ │ │ │ ├── Html2TxtFormat.java │ │ │ │ ├── HtmlEscapeFormat.java │ │ │ │ └── StrlenFormat.java │ │ │ ├── handler │ │ │ │ └── WkErrorPageHandler.java │ │ │ ├── pubsub │ │ │ │ └── WebPubSub.java │ │ │ ├── sms │ │ │ │ └── SmsService.java │ │ │ ├── websocket │ │ │ │ ├── WkJedisRoomProvider.java │ │ │ │ ├── WkWebSocket.java │ │ │ │ └── WkWsHandler.java │ │ │ └── wx │ │ │ │ ├── TplService.java │ │ │ │ ├── WxHandler.java │ │ │ │ └── WxService.java │ │ ├── filter │ │ │ ├── RouteFilter.java │ │ │ └── RouteFilterStarter.java │ │ ├── proc │ │ │ ├── GlobalsSettingProcessor.java │ │ │ ├── LogTimeProcessor.java │ │ │ ├── WkFailProcessor.java │ │ │ └── XssSqlFilterProcessor.java │ │ └── slog │ │ │ ├── SLogAopConfigration.java │ │ │ ├── SLogAopInterceptor.java │ │ │ ├── SLogService.java │ │ │ └── annotation │ │ │ └── SLog.java │ ├── controllers │ │ ├── front │ │ │ └── wx │ │ │ │ ├── WechatController.java │ │ │ │ ├── WeixinController.java │ │ │ │ └── WxCmsController.java │ │ ├── open │ │ │ ├── file │ │ │ │ └── UploadController.java │ │ │ └── ueditor │ │ │ │ ├── BdController.java │ │ │ │ └── WxController.java │ │ └── platform │ │ │ ├── cms │ │ │ ├── CmsArticleController.java │ │ │ ├── CmsChannelController.java │ │ │ ├── CmsLinkClassController.java │ │ │ ├── CmsLinkController.java │ │ │ └── CmsSiteController.java │ │ │ ├── sys │ │ │ ├── SysApiController.java │ │ │ ├── SysConfController.java │ │ │ ├── SysDictController.java │ │ │ ├── SysHomeController.java │ │ │ ├── SysLogController.java │ │ │ ├── SysLoginController.java │ │ │ ├── SysMenuController.java │ │ │ ├── SysMsgController.java │ │ │ ├── SysMsgUserController.java │ │ │ ├── SysRoleController.java │ │ │ ├── SysRouteController.java │ │ │ ├── SysTaskController.java │ │ │ ├── SysUnitController.java │ │ │ └── SysUserController.java │ │ │ └── wx │ │ │ ├── WxConfigController.java │ │ │ ├── WxMassController.java │ │ │ ├── WxMenuController.java │ │ │ ├── WxMsgUserController.java │ │ │ ├── WxPayTestController.java │ │ │ ├── WxReplyController.java │ │ │ ├── WxReplyImgController.java │ │ │ ├── WxReplyNewsController.java │ │ │ ├── WxReplyTxtController.java │ │ │ ├── WxTplIdController.java │ │ │ ├── WxTplListController.java │ │ │ ├── WxTplLogController.java │ │ │ └── WxUserController.java │ └── tags │ │ ├── CmsArticleListTag.java │ │ ├── CmsArticleTag.java │ │ ├── CmsChannelListTag.java │ │ ├── CmsChannelTag.java │ │ └── CmsLinkListTag.java │ └── wx │ ├── models │ ├── Wx_config.java │ ├── Wx_mass.java │ ├── Wx_mass_news.java │ ├── Wx_mass_send.java │ ├── Wx_menu.java │ ├── Wx_msg.java │ ├── Wx_msg_reply.java │ ├── Wx_reply.java │ ├── Wx_reply_img.java │ ├── Wx_reply_news.java │ ├── Wx_reply_txt.java │ ├── Wx_tpl_id.java │ ├── Wx_tpl_list.java │ ├── Wx_tpl_log.java │ └── Wx_user.java │ └── services │ ├── WxConfigService.java │ ├── WxMassNewsService.java │ ├── WxMassSendService.java │ ├── WxMassService.java │ ├── WxMenuService.java │ ├── WxMsgReplyService.java │ ├── WxMsgService.java │ ├── WxReplyImgService.java │ ├── WxReplyNewsService.java │ ├── WxReplyService.java │ ├── WxReplyTxtService.java │ ├── WxTplIdService.java │ ├── WxTplListService.java │ ├── WxTplLogService.java │ ├── WxUserService.java │ └── impl │ ├── WxConfigServiceImpl.java │ ├── WxMassNewsServiceImpl.java │ ├── WxMassSendServiceImpl.java │ ├── WxMassServiceImpl.java │ ├── WxMenuServiceImpl.java │ ├── WxMsgReplyServiceImpl.java │ ├── WxMsgServiceImpl.java │ ├── WxReplyImgServiceImpl.java │ ├── WxReplyNewsServiceImpl.java │ ├── WxReplyServiceImpl.java │ ├── WxReplyTxtServiceImpl.java │ ├── WxTplIdServiceImpl.java │ ├── WxTplListServiceImpl.java │ ├── WxTplLogServiceImpl.java │ └── WxUserServiceImpl.java └── resources ├── META-INF └── nutz │ └── org.nutz.boot.config.ConfigureLoader ├── application-dev.yaml ├── application.yaml ├── banner.txt ├── chain └── mvc-chain.json ├── db ├── menu │ ├── init_1_menu_cms.sql │ └── init_1_menu_weixin.sql └── quartz │ ├── dm.sql │ ├── mysql.sql │ ├── oracle.sql │ └── sqlserver.sql ├── ioc └── upload.json ├── locales ├── en_US │ ├── sys │ │ ├── role.properties │ │ └── unit.properties │ └── system.properties └── zh_CN │ ├── sys │ ├── role.properties │ └── unit.properties │ └── system.properties ├── logback.xml ├── static ├── assets │ └── platform │ │ ├── cron │ │ ├── css │ │ │ └── easyui.min.css │ │ └── js │ │ │ └── cron.js │ │ ├── css │ │ ├── common.css │ │ ├── elmain.css │ │ ├── main.css │ │ ├── panel.css │ │ └── skins │ │ │ ├── palette.2.css │ │ │ ├── palette.3.css │ │ │ ├── palette.4.css │ │ │ ├── palette.css │ │ │ └── purple.css │ │ ├── fonts │ │ ├── font-awesome.css │ │ ├── font-awesome.min.css │ │ ├── fontawesome │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── themify-icons.css │ │ └── themify │ │ │ ├── themify.eot │ │ │ ├── themify.svg │ │ │ ├── themify.ttf │ │ │ └── themify.woff │ │ ├── img │ │ ├── banner.png │ │ ├── filetype │ │ │ ├── asp.gif │ │ │ ├── aspx.gif │ │ │ ├── avi.gif │ │ │ ├── bmp.gif │ │ │ ├── chm.gif │ │ │ ├── css.gif │ │ │ ├── default.png │ │ │ ├── doc.gif │ │ │ ├── docx.gif │ │ │ ├── exe.gif │ │ │ ├── fla.gif │ │ │ ├── flv.gif │ │ │ ├── folder.gif │ │ │ ├── gif.gif │ │ │ ├── html.gif │ │ │ ├── jpg.gif │ │ │ ├── js.gif │ │ │ ├── jsp.gif │ │ │ ├── mdb.gif │ │ │ ├── mov.gif │ │ │ ├── mp3.gif │ │ │ ├── mp4.gif │ │ │ ├── mv.gif │ │ │ ├── none.gif │ │ │ ├── pdf.gif │ │ │ ├── php.gif │ │ │ ├── png.gif │ │ │ ├── ppt.gif │ │ │ ├── psd.gif │ │ │ ├── rar.gif │ │ │ ├── rm.gif │ │ │ ├── swf.gif │ │ │ ├── tpl.gif │ │ │ ├── txt.gif │ │ │ ├── unknown.gif │ │ │ ├── wmp.gif │ │ │ ├── wmv.gif │ │ │ ├── xls.gif │ │ │ └── zip.gif │ │ ├── flags │ │ │ ├── cn.png │ │ │ ├── es.png │ │ │ ├── fr.png │ │ │ ├── us.png │ │ │ └── za.png │ │ ├── loading.gif │ │ ├── login_bg.jpg │ │ ├── logo.png │ │ ├── logoa.png │ │ ├── notice.png │ │ ├── panel │ │ │ ├── boxed.png │ │ │ ├── scroll.png │ │ │ └── small.png │ │ └── svg │ │ │ ├── alipay.svg │ │ │ ├── background.svg │ │ │ ├── github.svg │ │ │ ├── qq.svg │ │ │ └── wechat.svg │ │ ├── js │ │ ├── main.js │ │ └── offscreen.js │ │ └── plugins │ │ ├── axios │ │ └── axios.min.js │ │ ├── codemirror │ │ ├── codemirror.css │ │ ├── codemirror.js │ │ └── vue-codemirror.js │ │ ├── echarts │ │ └── echarts.min.js │ │ ├── element-ui │ │ └── lib │ │ │ ├── i18n │ │ │ ├── en_US.js │ │ │ └── zh_CN.js │ │ │ ├── index.js │ │ │ └── theme-chalk │ │ │ ├── fonts │ │ │ ├── element-icons.ttf │ │ │ └── element-icons.woff │ │ │ └── index.css │ │ ├── jquery │ │ └── jquery-1.11.1.min.js │ │ ├── moment │ │ └── moment.min.js │ │ ├── myframe │ │ ├── css │ │ │ └── myframe.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular (1).eot │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ └── js │ │ │ └── myframe.js │ │ ├── pjax │ │ └── jquery.pjax.js │ │ ├── polyfill │ │ ├── polyfill.js │ │ └── polyfill.min.js │ │ ├── push │ │ └── push.min.js │ │ ├── simplemde │ │ ├── simplemde.min.css │ │ └── simplemde.min.js │ │ ├── slimscroll │ │ └── jquery.slimscroll.min.js │ │ ├── toastr │ │ ├── toastr.css │ │ └── toastr.js │ │ ├── umeditor │ │ ├── dialogs │ │ │ ├── emotion │ │ │ │ ├── emotion.css │ │ │ │ ├── emotion.js │ │ │ │ └── images │ │ │ │ │ ├── 0.gif │ │ │ │ │ ├── bface.gif │ │ │ │ │ ├── cface.gif │ │ │ │ │ ├── fface.gif │ │ │ │ │ ├── jxface2.gif │ │ │ │ │ ├── neweditor-tab-bg.png │ │ │ │ │ ├── tface.gif │ │ │ │ │ ├── wface.gif │ │ │ │ │ └── yface.gif │ │ │ ├── formula │ │ │ │ ├── formula.css │ │ │ │ ├── formula.html │ │ │ │ ├── formula.js │ │ │ │ └── images │ │ │ │ │ └── formula.png │ │ │ ├── image │ │ │ │ ├── image.css │ │ │ │ ├── image.js │ │ │ │ └── images │ │ │ │ │ ├── close.png │ │ │ │ │ ├── upload1.png │ │ │ │ │ └── upload2.png │ │ │ ├── link │ │ │ │ └── link.js │ │ │ ├── map │ │ │ │ ├── map.html │ │ │ │ └── map.js │ │ │ └── video │ │ │ │ ├── images │ │ │ │ ├── center_focus.jpg │ │ │ │ ├── left_focus.jpg │ │ │ │ ├── none_focus.jpg │ │ │ │ └── right_focus.jpg │ │ │ │ ├── video.css │ │ │ │ └── video.js │ │ ├── index.html │ │ ├── lang │ │ │ ├── en │ │ │ │ ├── en.js │ │ │ │ └── images │ │ │ │ │ ├── addimage.png │ │ │ │ │ ├── alldeletebtnhoverskin.png │ │ │ │ │ ├── alldeletebtnupskin.png │ │ │ │ │ ├── background.png │ │ │ │ │ ├── button.png │ │ │ │ │ ├── copy.png │ │ │ │ │ ├── deletedisable.png │ │ │ │ │ ├── deleteenable.png │ │ │ │ │ ├── imglabel.png │ │ │ │ │ ├── listbackground.png │ │ │ │ │ ├── localimage.png │ │ │ │ │ ├── music.png │ │ │ │ │ ├── rotateleftdisable.png │ │ │ │ │ ├── rotateleftenable.png │ │ │ │ │ ├── rotaterightdisable.png │ │ │ │ │ ├── rotaterightenable.png │ │ │ │ │ └── upload.png │ │ │ └── zh-cn │ │ │ │ ├── images │ │ │ │ ├── copy.png │ │ │ │ ├── imglabel.png │ │ │ │ ├── localimage.png │ │ │ │ ├── music.png │ │ │ │ └── upload.png │ │ │ │ └── zh-cn.js │ │ ├── themes │ │ │ └── default │ │ │ │ ├── css │ │ │ │ ├── umeditor.css │ │ │ │ └── umeditor.min.css │ │ │ │ └── images │ │ │ │ ├── caret.png │ │ │ │ ├── close.png │ │ │ │ ├── icons.gif │ │ │ │ ├── icons.png │ │ │ │ ├── ok.gif │ │ │ │ ├── pop-bg.png │ │ │ │ ├── spacer.gif │ │ │ │ └── videologo.gif │ │ ├── third-party │ │ │ ├── jquery.min.js │ │ │ └── mathquill │ │ │ │ ├── font │ │ │ │ ├── Symbola.eot │ │ │ │ ├── Symbola.otf │ │ │ │ ├── Symbola.svg │ │ │ │ ├── Symbola.ttf │ │ │ │ ├── Symbola.woff │ │ │ │ └── stixgeneral-bundle │ │ │ │ │ ├── STIXFontLicense2010.txt │ │ │ │ │ ├── stixgeneral-webfont.eot │ │ │ │ │ ├── stixgeneral-webfont.svg │ │ │ │ │ ├── stixgeneral-webfont.ttf │ │ │ │ │ ├── stixgeneral-webfont.woff │ │ │ │ │ ├── stixgeneralbol-webfont.eot │ │ │ │ │ ├── stixgeneralbol-webfont.svg │ │ │ │ │ ├── stixgeneralbol-webfont.ttf │ │ │ │ │ ├── stixgeneralbol-webfont.woff │ │ │ │ │ ├── stixgeneralbolita-webfont.eot │ │ │ │ │ ├── stixgeneralbolita-webfont.svg │ │ │ │ │ ├── stixgeneralbolita-webfont.ttf │ │ │ │ │ ├── stixgeneralbolita-webfont.woff │ │ │ │ │ ├── stixgeneralitalic-webfont.eot │ │ │ │ │ ├── stixgeneralitalic-webfont.svg │ │ │ │ │ ├── stixgeneralitalic-webfont.ttf │ │ │ │ │ └── stixgeneralitalic-webfont.woff │ │ │ │ ├── mathquill.css │ │ │ │ ├── mathquill.js │ │ │ │ └── mathquill.min.js │ │ ├── umeditor.config.js │ │ ├── umeditor.configwx.js │ │ ├── umeditor.js │ │ └── umeditor.min.js │ │ ├── vue │ │ ├── vue.js │ │ └── vue.min.js │ │ └── zoning │ │ └── zoning-4.json ├── error │ ├── 403.html │ ├── 404.html │ └── 500.html └── favicon.ico └── views ├── layouts ├── blank.html └── platform.html └── platform ├── cms ├── article │ └── index.html ├── channel │ └── index.html ├── link │ ├── class │ │ └── index.html │ └── link │ │ └── index.html └── site │ └── index.html ├── sys ├── 403.html ├── 404.html ├── 500.html ├── api │ └── index.html ├── conf │ └── index.html ├── dashboard.html ├── dict │ └── index.html ├── home.html ├── left.html ├── log │ └── index.html ├── login.html ├── menu │ └── index.html ├── msg │ ├── index.html │ └── user │ │ ├── detailAll.html │ │ ├── detailRead.html │ │ ├── detailUnread.html │ │ ├── indexAll.html │ │ ├── indexRead.html │ │ └── indexUnread.html ├── noPermission.html ├── role │ └── index.html ├── route │ └── index.html ├── task │ ├── cron.html │ └── index.html ├── unit │ └── index.html └── user │ ├── custom.html │ ├── index.html │ ├── info.html │ ├── mode.html │ └── pass.html └── wx ├── account └── index.html ├── menu └── index.html ├── msg ├── mass │ ├── index.html │ └── news.html └── user │ └── index.html ├── pay └── index.html ├── reply ├── conf │ └── index.html ├── img │ └── index.html ├── news │ └── index.html └── txt │ └── index.html ├── tpl ├── id │ └── index.html ├── list │ └── index.html └── log │ └── index.html └── user └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | *.iml 4 | *.idea 5 | target/ 6 | 7 | # Log file 8 | *.log 9 | 10 | # BlueJ files 11 | *.ctxt 12 | 13 | # Mobile Tools for Java (J2ME) 14 | .mtj.tmp/ 15 | 16 | # Package Files # 17 | *.jar 18 | *.war 19 | *.ear 20 | *.zip 21 | *.tar.gz 22 | *.rar 23 | 24 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 25 | hs_err_pid* 26 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:11.0.13-jdk 2 | COPY ./target/mini.jar /app/ 3 | COPY ./target/classes/application.yaml /app/ 4 | ENV TZ Asia/Shanghai 5 | 6 | WORKDIR /app 7 | CMD ["java","-jar","-Dnutz.boot.configure.yaml.dir=/app","/app/mini.jar"] -------------------------------------------------------------------------------- /pay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/pay.jpg -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/constant/RedisConstant.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.constant; 2 | 3 | /** 4 | * @author wizzer@qq.com 5 | */ 6 | public class RedisConstant { 7 | public final static String PLATFORM_REDIS_PREFIX = "budwk5mini:"; 8 | public final static String PLATFORM_REDIS_WKCACHE_PREFIX = PLATFORM_REDIS_PREFIX + "wkcache:"; 9 | public final static String REDIS_KEY_WSROOM = PLATFORM_REDIS_PREFIX + "wsroom:"; 10 | public final static String REDIS_KEY_LOGIN_ADMIN_CAPTCHA = PLATFORM_REDIS_PREFIX + "admin:login:captcha:"; 11 | public final static String REDIS_KEY_ADMIN_PUBSUB = PLATFORM_REDIS_PREFIX + "admin:pubsub:"; 12 | public final static String REDIS_KEY_WX_TOKEN = PLATFORM_REDIS_PREFIX + "wx:token:"; 13 | public final static String REDIS_CAPTCHA_KEY = PLATFORM_REDIS_PREFIX + "platfrom:captcha:"; 14 | public final static String REDIS_SMSCODE_KEY = PLATFORM_REDIS_PREFIX + "platfrom:smscode:"; 15 | 16 | public final static String REDIS_KEY_API_SIGN_DEPLOY_NONCE = PLATFORM_REDIS_PREFIX + "api:sign:deploy:nonce:"; 17 | public final static String REDIS_KEY_API_SIGN_OPEN_NONCE = PLATFORM_REDIS_PREFIX + "api:sign:open:nonce:"; 18 | 19 | /** 20 | * Token 缓存前缀 21 | */ 22 | public static final String TOKEN = PLATFORM_REDIS_PREFIX + "token:"; 23 | 24 | /** 25 | * 验证码前缀 26 | */ 27 | public static final String UCENTER_CAPTCHA = PLATFORM_REDIS_PREFIX + "ucenter:captcha:"; 28 | 29 | /** 30 | * 短信验证码前缀 31 | */ 32 | public static final String UCENTER_SMSCODE = PLATFORM_REDIS_PREFIX + "ucenter:smscode:"; 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/exception/BaseException.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.exception; 2 | 3 | /** 4 | * @author wizzer@qq.com 5 | */ 6 | public class BaseException extends RuntimeException{ 7 | 8 | private static final long serialVersionUID = 7192152812384031563L; 9 | 10 | public BaseException(String message) { 11 | super(message); 12 | } 13 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/page/OffsetPager.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.page; 2 | 3 | import org.nutz.dao.pager.Pager; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 指定偏移量及大小的Pager, 这样就不会受限于原生Pager的offset=(pageNumber-1)*pageSize 9 | * 10 | * @author wendal 11 | */ 12 | 13 | public class OffsetPager extends Pager implements Serializable { 14 | 15 | private static final long serialVersionUID = -1385308131663113162L; 16 | 17 | protected int offset = -1; 18 | 19 | protected OffsetPager() { 20 | } 21 | 22 | /** 23 | * 构建一个指定偏移量及大小的Pager 24 | * 25 | * @param offset 偏移量 26 | * @param size 数据大小 27 | */ 28 | public OffsetPager(int offset, int size) { 29 | super(); 30 | this.offset = offset; 31 | setPageSize(size); 32 | } 33 | 34 | /** 35 | * 覆盖超类的计算得到的offset 36 | */ 37 | public int getOffset() { 38 | if (offset > -1) 39 | return offset; 40 | return super.getOffset(); 41 | } 42 | 43 | public void setOffset(int offset) { 44 | this.offset = offset; 45 | } 46 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/page/Paginable.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.page; 2 | 3 | public interface Paginable { 4 | 5 | /** 6 | * 总记录数 7 | * 8 | * @return 9 | */ 10 | public int getTotalCount(); 11 | 12 | /** 13 | * 总页数 14 | * 15 | * @return 16 | */ 17 | public int getTotalPage(); 18 | 19 | /** 20 | * 每页记录数 21 | * 22 | * @return 23 | */ 24 | public int getPageSize(); 25 | 26 | /** 27 | * 当前页号 28 | * 29 | * @return 30 | */ 31 | public int getPageNo(); 32 | 33 | /** 34 | * 是否第一页 35 | * 36 | * @return 37 | */ 38 | public boolean isFirstPage(); 39 | 40 | /** 41 | * 是否最后一页 42 | * 43 | * @return 44 | */ 45 | public boolean isLastPage(); 46 | 47 | /** 48 | * 返回下页的页号 49 | */ 50 | public int getNextPage(); 51 | 52 | /** 53 | * 返回上页的页号 54 | */ 55 | public int getPrePage(); 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/page/Pagination.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.page; 2 | 3 | import org.nutz.lang.Lang; 4 | 5 | import java.util.List; 6 | 7 | public class Pagination extends SimplePage implements java.io.Serializable { 8 | private static final long serialVersionUID = 1L; 9 | 10 | public Pagination() { 11 | } 12 | 13 | /** 14 | * 构造器 15 | * 16 | * @param pageNo 页码 17 | * @param pageSize 每页几条数据 18 | * @param totalCount 总共几条数据 19 | */ 20 | public Pagination(int pageNo, int pageSize, int totalCount) { 21 | super(pageNo, pageSize, totalCount); 22 | } 23 | 24 | /** 25 | * 构造器 26 | * 27 | * @param pageNo 页码 28 | * @param pageSize 每页几条数据 29 | * @param totalCount 总共几条数据 30 | * @param list 分页内容 31 | */ 32 | public Pagination(int pageNo, int pageSize, int totalCount, List list) { 33 | super(pageNo, pageSize, totalCount); 34 | this.list = list; 35 | } 36 | 37 | /** 38 | * 第一条数据位置 39 | * 40 | * @return 41 | */ 42 | public int getFirstResult() { 43 | return (pageNo - 1) * pageSize; 44 | } 45 | 46 | /** 47 | * 当前页的数据 48 | */ 49 | private List list; 50 | 51 | /** 52 | * 获得分页内容 53 | * 54 | * @return 55 | */ 56 | public List getList() { 57 | return list; 58 | } 59 | 60 | /** 61 | * @param classOfT 列表容器內的元素类型 62 | * @param 列表容器內的元素类型 63 | * @return 64 | */ 65 | public List getList(Class classOfT) { 66 | return Lang.collection2list(list, classOfT); 67 | } 68 | 69 | 70 | /** 71 | * 设置分页内容 72 | * 73 | * @param list 74 | */ 75 | public void setList(List list) { 76 | this.list = list; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/page/datatable/DataTableColumn.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.page.datatable; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Created by wizzer on 2016/6/27. 7 | */ 8 | public class DataTableColumn implements Serializable { 9 | private static final long serialVersionUID = 1L; 10 | 11 | protected String data; 12 | protected String name; 13 | protected boolean searchable; 14 | protected boolean orderable; 15 | 16 | public String getData() { 17 | return data; 18 | } 19 | 20 | public void setData(String data) { 21 | this.data = data; 22 | } 23 | 24 | public String getName() { 25 | return name; 26 | } 27 | 28 | public void setName(String name) { 29 | this.name = name; 30 | } 31 | 32 | public boolean isSearchable() { 33 | return searchable; 34 | } 35 | 36 | public void setSearchable(boolean searchable) { 37 | this.searchable = searchable; 38 | } 39 | 40 | public boolean isOrderable() { 41 | return orderable; 42 | } 43 | 44 | public void setOrderable(boolean orderable) { 45 | this.orderable = orderable; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/page/datatable/DataTableOrder.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.page.datatable; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Created by wizzer on 2016/6/27. 7 | */ 8 | public class DataTableOrder implements Serializable { 9 | private static final long serialVersionUID = 1L; 10 | 11 | protected int column; 12 | protected String dir; 13 | 14 | public int getColumn() { 15 | return column; 16 | } 17 | 18 | public void setColumn(int column) { 19 | this.column = column; 20 | } 21 | 22 | public String getDir() { 23 | return dir; 24 | } 25 | 26 | public void setDir(String dir) { 27 | this.dir = dir; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/result/IResultCode.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.result; 2 | 3 | /** 4 | * @author wizzer@qq.com 5 | */ 6 | public interface IResultCode { 7 | int getCode(); 8 | 9 | String getMsg(); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/result/ResultCode.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.result; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * @author wizzer@qq.com 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum ResultCode implements IResultCode { 12 | SUCCESS(0,"操作成功"), 13 | FAILURE(200400,"业务异常"), 14 | NOT_FOUND(200404,"服务未找到"), 15 | TOO_MANY_REQUESTS(200429, "请求次数过多"), 16 | SERVER_ERROR(200500,"服务异常"), 17 | IOC_ERROR(500000,"IOC对象加载异常"), 18 | NULL_DATA_ERROR(500100,"数据不存在"), 19 | HAVE_DATA_ERROR(500110,"数据已存在"), 20 | PARAM_ERROR(500200,"参数错误"), 21 | XSS_SQL_ERROR(500300,"传参被拦截"), 22 | BLACKLIST_ERROR(500400,"IP黑名单"), 23 | DAO_ERROR(500600,"DAO数据库查询错误"), 24 | DEMO_ERROR(500700,"演示环境,限制操作"), 25 | 26 | USER_NOT_LOGIN(600098, "用户未登录"), 27 | USER_NOT_ROLE(600099, "无此角色"), 28 | USER_NOT_PERMISSION(600100, "无此权限"), 29 | USER_NOT_FOUND(600101, "用户不存在"), 30 | USER_DISABLED(600102, "用户被禁用"), 31 | USER_LOCKED(600103, "用户已锁定"), 32 | USER_NAME_ERROR(600104, "用户名错误"), 33 | USER_PWD_ERROR(600105, "用户密码错误"), 34 | USER_PWD_EXPIRED(600106, "用户密码过期"), 35 | USER_VERIFY_ERROR(600107, "验证码错误"), 36 | USER_LOGIN_FAIL(600108, "用户登录失败"); 37 | 38 | final int code; 39 | final String msg; 40 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/utils/MapUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.utils; 2 | 3 | import java.util.Comparator; 4 | import java.util.Map; 5 | import java.util.TreeMap; 6 | 7 | /** 8 | * Created by wizzer on 2017/7/21. 9 | */ 10 | public class MapUtil { 11 | /** 12 | * 使用 Map按key进行排序 13 | * 14 | * @param map 15 | * @return 16 | */ 17 | public static Map sortMapByKey(Map map) { 18 | if (map == null || map.isEmpty()) { 19 | return null; 20 | } 21 | Map sortMap = new TreeMap<>( 22 | new MapKeyComparator()); 23 | sortMap.putAll(map); 24 | return sortMap; 25 | } 26 | } 27 | 28 | class MapKeyComparator implements Comparator { 29 | @Override 30 | public int compare(String str1, String str2) { 31 | return str1.compareTo(str2); 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/utils/PageUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.utils; 2 | 3 | import org.nutz.lang.util.NutMap; 4 | 5 | /** 6 | * Created by wizzer on 2018.09 7 | */ 8 | public class PageUtil { 9 | public static String getOrder(String key) { 10 | NutMap map = NutMap.NEW().addv("ascending", "asc").addv("descending", "desc"); 11 | return map.getString(key); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/utils/PwdUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.utils; 2 | 3 | import org.nutz.lang.Lang; 4 | 5 | import java.security.MessageDigest; 6 | 7 | /** 8 | * 为老兼容老的密码加密方式 9 | * 10 | * @author wizzer@qq.com 11 | */ 12 | public class PwdUtil { 13 | 14 | public static String getPassword(String passowrd, String salt) { 15 | byte[] bytes = hash(passowrd.getBytes(), salt.getBytes(), 1024); 16 | if (bytes != null) { 17 | return Lang.fixedHexString(bytes); 18 | } 19 | return ""; 20 | } 21 | 22 | public static byte[] hash(byte[] bytes, byte[] salt, int hashIterations) { 23 | try { 24 | MessageDigest digest = MessageDigest.getInstance("SHA-256"); 25 | if (salt != null) { 26 | digest.reset(); 27 | digest.update(salt); 28 | } 29 | 30 | byte[] hashed = digest.digest(bytes); 31 | int iterations = hashIterations - 1; 32 | 33 | for (int i = 0; i < iterations; ++i) { 34 | digest.reset(); 35 | hashed = digest.digest(hashed); 36 | } 37 | return hashed; 38 | } catch (Exception e) { 39 | e.printStackTrace(); 40 | } 41 | return null; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/utils/SignUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.utils; 2 | 3 | import org.nutz.lang.Lang; 4 | 5 | import java.util.Iterator; 6 | import java.util.Map; 7 | import java.util.Set; 8 | 9 | /** 10 | * Created by wizzer on 2018/6/28. 11 | */ 12 | public class SignUtil { 13 | 14 | public static String createSign(String appkey, Map params) { 15 | Map map = MapUtil.sortMapByKey(params); 16 | StringBuffer sb = new StringBuffer(); 17 | Set keySet = map.keySet(); 18 | Iterator it = keySet.iterator(); 19 | while (it.hasNext()) { 20 | String k = it.next(); 21 | String v = (String) map.get(k); 22 | if (null != v && !"".equals(v) 23 | && !"sign".equals(k)) { 24 | sb.append(k + "=" + v + "&"); 25 | } 26 | } 27 | sb.append("appkey=" + appkey); 28 | String sign = Lang.md5(sb.toString()); 29 | return sign; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/utils/StringUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.utils; 2 | 3 | import org.nutz.ioc.loader.annotation.IocBean; 4 | import org.nutz.json.Json; 5 | import org.nutz.json.JsonFormat; 6 | import org.nutz.lang.Strings; 7 | 8 | import java.util.Random; 9 | 10 | /** 11 | * Created by wizzer on 2018/3/17. 12 | */ 13 | public class StringUtil { 14 | /** 15 | * 去掉URL中?后的路径 16 | * 17 | * @param p 18 | * @return 19 | */ 20 | public static String getPath(String p) { 21 | if (Strings.sNull(p).contains("?")) { 22 | return p.substring(0, p.indexOf("?")); 23 | } 24 | return Strings.sNull(p); 25 | } 26 | 27 | /** 28 | * 获得父节点ID 29 | * 30 | * @param s 31 | * @return 32 | */ 33 | public static String getParentId(String s) { 34 | if (!Strings.isEmpty(s) && s.length() > 4) { 35 | return s.substring(0, s.length() - 4); 36 | } 37 | return ""; 38 | } 39 | 40 | /** 41 | * 得到n位随机数 42 | * 43 | * @param s 44 | * @return 45 | */ 46 | public static String getRndNumber(int s) { 47 | Random ra = new Random(); 48 | StringBuilder sb = new StringBuilder(); 49 | for (int i = 0; i < s; i++) { 50 | sb.append(String.valueOf(ra.nextInt(8))); 51 | } 52 | return sb.toString(); 53 | } 54 | 55 | /** 56 | * 判断是否以字符串开头 57 | * 58 | * @param str 59 | * @param s 60 | * @return 61 | */ 62 | public boolean startWith(String str, String s) { 63 | return Strings.sNull(str).startsWith(Strings.sNull(s)); 64 | } 65 | 66 | /** 67 | * 判断是否包含字符串 68 | * 69 | * @param str 70 | * @param s 71 | * @return 72 | */ 73 | public boolean contains(String str, String s) { 74 | return Strings.sNull(str).contains(Strings.sNull(s)); 75 | } 76 | 77 | /** 78 | * 将对象转为JSON字符串(页面上使用) 79 | * 80 | * @param obj 81 | * @return 82 | */ 83 | public String toJson(Object obj) { 84 | return Json.toJson(obj, JsonFormat.compact()); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/base/utils/WebUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.base.utils; 2 | 3 | import org.nutz.json.JsonFormat; 4 | import org.nutz.lang.Encoding; 5 | import org.nutz.mvc.view.UTF8JsonView; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import javax.servlet.http.HttpServletResponse; 9 | import java.io.IOException; 10 | 11 | /** 12 | * @author wizzer@qq.com 13 | */ 14 | public class WebUtil { 15 | 16 | public static String AjaxEncode = Encoding.UTF8; 17 | 18 | public static boolean isAjax(HttpServletRequest req) { 19 | String value = req.getHeader("X-Requested-With"); 20 | return value != null && "XMLHttpRequest".equalsIgnoreCase(value.trim()); 21 | } 22 | 23 | public static void rendAjaxResp(HttpServletRequest req, HttpServletResponse resp, Object re) { 24 | try { 25 | if (AjaxEncode != null) { 26 | resp.setCharacterEncoding(AjaxEncode); 27 | } 28 | (new UTF8JsonView(JsonFormat.compact())).render(req, resp, re); 29 | } catch (IOException e) { 30 | e.printStackTrace(); 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/models/Cms_link.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import org.nutz.dao.entity.annotation.*; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * Created by Wizzer on 2016/7/18. 11 | */ 12 | @Data 13 | @Table("cms_link") 14 | @TableMeta("{'mysql-charset':'utf8mb4'}") 15 | public class Cms_link extends BaseModel implements Serializable { 16 | private static final long serialVersionUID = 1L; 17 | @Column 18 | @Name 19 | @Comment("ID") 20 | @ColDefine(type = ColType.VARCHAR, width = 32) 21 | @Prev(els = {@EL("uuid()")}) 22 | private String id; 23 | 24 | @Column 25 | @Comment("链接名称") 26 | @ColDefine(type = ColType.VARCHAR, width = 120) 27 | private String name; 28 | 29 | @Column 30 | @Comment("链接类型") 31 | @ColDefine(type = ColType.VARCHAR, width = 20) 32 | private String type; 33 | 34 | @Column 35 | @Comment("图片地址") 36 | @ColDefine(type = ColType.VARCHAR, width = 255) 37 | private String picurl; 38 | 39 | @Column 40 | @Comment("链接地址") 41 | @ColDefine(type = ColType.VARCHAR, width = 255) 42 | private String url; 43 | 44 | @Column 45 | @Comment("打开方式") 46 | @ColDefine(type = ColType.VARCHAR, width = 20) 47 | private String target; 48 | 49 | @Column 50 | @ColDefine(type = ColType.VARCHAR, width = 32) 51 | private String classId; 52 | 53 | @One(field = "classId") 54 | private Cms_link_class linkClass; 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/models/Cms_link_class.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import org.nutz.dao.entity.annotation.*; 6 | 7 | import java.io.Serializable; 8 | import java.util.List; 9 | 10 | /** 11 | * Created by Wizzer on 2016/7/18. 12 | */ 13 | @Data 14 | @Table("cms_link_class") 15 | @TableMeta("{'mysql-charset':'utf8mb4'}") 16 | @TableIndexes({@Index(name = "INDEX_CMS_LINK_CLASS", fields = {"code"}, unique = true)}) 17 | public class Cms_link_class extends BaseModel implements Serializable { 18 | private static final long serialVersionUID = 1L; 19 | @Column 20 | @Name 21 | @Comment("ID") 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | @Prev(els = {@EL("uuid()")}) 24 | private String id; 25 | 26 | @Column 27 | @Comment("分类名称") 28 | @ColDefine(type = ColType.VARCHAR, width = 120) 29 | private String name; 30 | 31 | @Column 32 | @Comment("分类编码") 33 | @ColDefine(type = ColType.VARCHAR, width = 120) 34 | private String code; 35 | 36 | @ManyMany(from = "classId", relation = "cms_class_link", to = "linkId") 37 | private List links; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/CmsArticleService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services; 2 | 3 | import com.budwk.app.base.page.Pagination; 4 | import com.budwk.app.cms.models.Cms_article; 5 | import com.budwk.app.base.service.BaseService; 6 | import org.nutz.dao.Condition; 7 | 8 | public interface CmsArticleService extends BaseService { 9 | /** 10 | * 获取文章列表 11 | * 12 | * @param pageNumber 13 | * @param pageSize 14 | * @param cnd 15 | * @return 16 | */ 17 | Pagination getListPage(int pageNumber, int pageSize, Condition cnd); 18 | 19 | /** 20 | * 从缓存根据条件查询一篇文章 21 | * 22 | * @param cnd 23 | * @return 24 | */ 25 | Cms_article getArticle(Condition cnd); 26 | 27 | /** 28 | * 清空缓存 29 | */ 30 | void clearCache(); 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/CmsChannelService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services; 2 | 3 | import com.budwk.app.cms.models.Cms_channel; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | public interface CmsChannelService extends BaseService { 9 | /** 10 | * 添加栏目 11 | * 12 | * @param channel 13 | * @param pid 14 | */ 15 | void save(Cms_channel channel, String pid); 16 | 17 | /** 18 | * 级联删除栏目 19 | * 20 | * @param channel 21 | */ 22 | void deleteAndChild(Cms_channel channel); 23 | 24 | /** 25 | * 从缓存中获取栏目数据 26 | * 27 | * @param id 28 | * @param code 29 | * @return 30 | */ 31 | Cms_channel getChannel(String id, String code); 32 | 33 | /** 34 | * 根据编码判断栏目是否存在 35 | * 36 | * @param code 37 | * @return 38 | */ 39 | boolean hasChannel(String code); 40 | 41 | /** 42 | * 从缓存中获取栏目列表 43 | * 44 | * @param parentId 45 | * @param parentCode 46 | * @return 47 | */ 48 | List listChannel(String parentId, String parentCode); 49 | 50 | /** 51 | * 清空缓存 52 | */ 53 | void clearCache(); 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/CmsLinkClassService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services; 2 | 3 | import com.budwk.app.cms.models.Cms_link_class; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface CmsLinkClassService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/CmsLinkService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services; 2 | 3 | import com.budwk.app.cms.models.Cms_link; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | public interface CmsLinkService extends BaseService { 9 | List getLinkList(String code, int size); 10 | void clearCache(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/CmsSiteService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.cms.models.Cms_site; 5 | 6 | public interface CmsSiteService extends BaseService { 7 | /** 8 | * 通过编码获取站点信息 9 | * 10 | * @param code 11 | * @return 12 | */ 13 | Cms_site getSite(String code); 14 | 15 | void create(Cms_site site); 16 | 17 | void update(Cms_site site); 18 | 19 | /** 20 | * 清空缓存 21 | */ 22 | void clearCache(); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/impl/CmsArticleServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services.impl; 2 | 3 | import com.budwk.app.base.constant.RedisConstant; 4 | import com.budwk.app.base.page.Pagination; 5 | import com.budwk.app.cms.models.Cms_article; 6 | import com.budwk.app.cms.services.CmsArticleService; 7 | import com.budwk.app.base.service.impl.BaseServiceImpl; 8 | import org.nutz.dao.Condition; 9 | import org.nutz.dao.Dao; 10 | import org.nutz.ioc.loader.annotation.IocBean; 11 | import org.nutz.plugins.wkcache.annotation.CacheDefaults; 12 | import org.nutz.plugins.wkcache.annotation.CacheRemoveAll; 13 | import org.nutz.plugins.wkcache.annotation.CacheResult; 14 | 15 | @IocBean(args = {"refer:dao"}) 16 | @CacheDefaults(cacheName = RedisConstant.PLATFORM_REDIS_WKCACHE_PREFIX + "cms_article") 17 | public class CmsArticleServiceImpl extends BaseServiceImpl implements CmsArticleService { 18 | public CmsArticleServiceImpl(Dao dao) { 19 | super(dao); 20 | } 21 | 22 | @CacheResult 23 | public Pagination getListPage(int pageNumber, int pageSize, Condition cnd) { 24 | return this.listPage(pageNumber, pageSize, cnd); 25 | } 26 | 27 | @CacheResult 28 | public Cms_article getArticle(Condition cnd) { 29 | return this.fetch(cnd); 30 | } 31 | 32 | @CacheRemoveAll 33 | public void clearCache() { 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/impl/CmsLinkClassServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services.impl; 2 | 3 | import com.budwk.app.cms.services.CmsLinkClassService; 4 | import com.budwk.app.cms.models.Cms_link_class; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class CmsLinkClassServiceImpl extends BaseServiceImpl implements CmsLinkClassService { 11 | public CmsLinkClassServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/impl/CmsLinkServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services.impl; 2 | 3 | import com.budwk.app.base.constant.RedisConstant; 4 | import com.budwk.app.cms.services.CmsLinkClassService; 5 | import com.budwk.app.cms.services.CmsLinkService; 6 | import com.budwk.app.cms.models.Cms_link; 7 | import com.budwk.app.cms.models.Cms_link_class; 8 | import com.budwk.app.base.service.impl.BaseServiceImpl; 9 | import org.nutz.dao.Cnd; 10 | import org.nutz.dao.Dao; 11 | import org.nutz.dao.pager.Pager; 12 | import org.nutz.ioc.loader.annotation.Inject; 13 | import org.nutz.ioc.loader.annotation.IocBean; 14 | import org.nutz.plugins.wkcache.annotation.CacheDefaults; 15 | import org.nutz.plugins.wkcache.annotation.CacheRemoveAll; 16 | import org.nutz.plugins.wkcache.annotation.CacheResult; 17 | 18 | import java.util.ArrayList; 19 | import java.util.List; 20 | 21 | @IocBean(args = {"refer:dao"}) 22 | @CacheDefaults(cacheName = RedisConstant.PLATFORM_REDIS_WKCACHE_PREFIX + "cms_link") 23 | public class CmsLinkServiceImpl extends BaseServiceImpl implements CmsLinkService { 24 | public CmsLinkServiceImpl(Dao dao) { 25 | super(dao); 26 | } 27 | 28 | @Inject 29 | private CmsLinkClassService cmsLinkClassService; 30 | 31 | @CacheResult 32 | public List getLinkList(String code, int size) { 33 | List links = new ArrayList<>(); 34 | Cms_link_class cmsLinkClass = cmsLinkClassService.fetch(Cnd.where("code", "=", code)); 35 | if (cmsLinkClass != null) { 36 | Pager pager = new Pager(); 37 | pager.setPageSize(size); 38 | pager.setPageNumber(1); 39 | links = this.query(Cnd.where("classId", "=", cmsLinkClass.getId()).desc("createdAt"), pager); 40 | } 41 | return links; 42 | } 43 | 44 | @CacheRemoveAll 45 | public void clearCache() { 46 | 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/cms/services/impl/CmsSiteServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.cms.services.impl; 2 | 3 | import com.budwk.app.base.constant.RedisConstant; 4 | import com.budwk.app.cms.services.CmsSiteService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import com.budwk.app.cms.models.Cms_site; 7 | import org.nutz.dao.Cnd; 8 | import org.nutz.dao.Dao; 9 | import org.nutz.ioc.impl.PropertiesProxy; 10 | import org.nutz.ioc.loader.annotation.Inject; 11 | import org.nutz.ioc.loader.annotation.IocBean; 12 | import org.nutz.plugins.wkcache.annotation.CacheDefaults; 13 | import org.nutz.plugins.wkcache.annotation.CacheRemoveAll; 14 | import org.nutz.plugins.wkcache.annotation.CacheResult; 15 | 16 | @IocBean(args = {"refer:dao"}) 17 | @CacheDefaults(cacheName = RedisConstant.PLATFORM_REDIS_WKCACHE_PREFIX + "cms_site") 18 | public class CmsSiteServiceImpl extends BaseServiceImpl implements CmsSiteService { 19 | public CmsSiteServiceImpl(Dao dao) { 20 | super(dao); 21 | } 22 | 23 | @Inject 24 | private PropertiesProxy conf; 25 | 26 | @CacheResult 27 | public Cms_site getSite(String code) { 28 | return this.fetch(Cnd.where("id", "=", code)); 29 | } 30 | 31 | public void create(Cms_site site) { 32 | this.insert(site); 33 | } 34 | 35 | public void update(Cms_site site) { 36 | this.updateIgnoreNull(site); 37 | } 38 | 39 | @CacheRemoveAll 40 | public void clearCache() { 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_api.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | 8 | import java.io.Serializable; 9 | 10 | /** 11 | * API密钥管理 12 | * Created by wizzer on 2019/2/26. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("sys_api") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Sys_api extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | 21 | @Column 22 | @Name 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | private String appid; 25 | 26 | @Column 27 | @ColDefine(type = ColType.VARCHAR, width = 32) 28 | private String appkey; 29 | 30 | @Column 31 | @ColDefine(type = ColType.VARCHAR, width = 32) 32 | private String name; 33 | 34 | @Column 35 | @Comment("是否禁用") 36 | @ColDefine(type = ColType.BOOLEAN) 37 | private boolean disabled; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_app_list.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import org.nutz.dao.entity.annotation.*; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 应用管理--应用实例表 11 | * Created by wizzer on 2019/2/27. 12 | */ 13 | @Data 14 | @Table("sys_app_list") 15 | @TableMeta("{'mysql-charset':'utf8mb4'}") 16 | public class Sys_app_list extends BaseModel implements Serializable { 17 | private static final long serialVersionUID = 1L; 18 | 19 | @Column 20 | @Name 21 | @Comment("ID") 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | @Prev(els = {@EL("uuid()")}) 24 | private String id; 25 | 26 | @Column 27 | @Comment("实例名") 28 | @ColDefine(type = ColType.VARCHAR, width = 255) 29 | private String appName; 30 | 31 | @Column 32 | @Comment("版本号") 33 | @ColDefine(type = ColType.VARCHAR, width = 32) 34 | private String appVersion; 35 | 36 | @Column 37 | @Comment("文件大小") 38 | private Long fileSize; 39 | 40 | @Column 41 | @Comment("文件路径") 42 | @ColDefine(type = ColType.VARCHAR, width = 255) 43 | private String filePath; 44 | 45 | @Column 46 | @Comment("是否禁用") 47 | @ColDefine(type = ColType.BOOLEAN) 48 | private boolean disabled; 49 | 50 | @One(field = "createdBy") 51 | private Sys_user user; 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_app_task.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import org.nutz.dao.entity.annotation.*; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 应用管理--推送任务表 11 | * Created by wizzer on 2019/2/27. 12 | */ 13 | @Data 14 | @Table("sys_app_task") 15 | @TableMeta("{'mysql-charset':'utf8mb4'}") 16 | public class Sys_app_task extends BaseModel implements Serializable { 17 | private static final long serialVersionUID = 1L; 18 | 19 | @Column 20 | @Name 21 | @Comment("ID") 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | @Prev(els = {@EL("uuid()")}) 24 | private String id; 25 | 26 | @Column 27 | @Comment("实例名") 28 | @ColDefine(type = ColType.VARCHAR, width = 32) 29 | private String name; 30 | 31 | @Column 32 | @Comment("执行动作") 33 | @ColDefine(type = ColType.VARCHAR, width = 32) 34 | private String action; 35 | 36 | @Column 37 | @Comment("APP版本") 38 | @ColDefine(type = ColType.VARCHAR, width = 32) 39 | private String appVersion; 40 | 41 | @Column 42 | @Comment("配置版本") 43 | @ColDefine(type = ColType.VARCHAR, width = 32) 44 | private String confVersion; 45 | 46 | @Column 47 | @Comment("进程ID") 48 | @ColDefine(type = ColType.VARCHAR, width = 32) 49 | private String processId; 50 | 51 | @Column 52 | @Comment("推送主机") 53 | @ColDefine(type = ColType.VARCHAR, width = 255) 54 | private String hostName;//主机名 如果是推送给全部主机则为多条 55 | 56 | @Column 57 | @Comment("主机IP") 58 | @ColDefine(type = ColType.VARCHAR, width = 255) 59 | private String hostAddress;//只为展示用 60 | 61 | @Column 62 | @Comment("推送状态") 63 | @ColDefine(type = ColType.INT, width = 1) 64 | private Integer status;//0-待执行,1-执行中,2-执行成功,3-执行失败,4-撤销任务 65 | 66 | @Column 67 | @Comment("反馈时间") 68 | private Long pushAt; 69 | 70 | @Column 71 | @Comment("反馈结果") 72 | @ColDefine(type = ColType.VARCHAR, width = 255) 73 | private String pushResult; 74 | 75 | @One(field = "createdBy") 76 | private Sys_user user; 77 | 78 | } 79 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_config.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | 8 | import java.io.Serializable; 9 | 10 | /** 11 | * Created by wizzer on 2016/6/21. 12 | */ 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | @Table("sys_config") 16 | @TableMeta("{'mysql-charset':'utf8mb4'}") 17 | public class Sys_config extends BaseModel implements Serializable { 18 | private static final long serialVersionUID = 1L; 19 | @Name 20 | @Column 21 | @ColDefine(type = ColType.VARCHAR, width = 100) 22 | private String configKey; 23 | 24 | @Column 25 | @ColDefine(type = ColType.VARCHAR, width = 100) 26 | private String configValue; 27 | 28 | @Column 29 | @ColDefine(type = ColType.VARCHAR, width = 255) 30 | private String note; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_dict.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.DB; 7 | import org.nutz.dao.entity.annotation.*; 8 | import org.nutz.dao.interceptor.annotation.PrevInsert; 9 | 10 | import java.io.Serializable; 11 | 12 | /** 13 | * Created by wizzer on 2016/6/21. 14 | */ 15 | @Data 16 | @EqualsAndHashCode(callSuper = true) 17 | @Table("sys_dict") 18 | @TableMeta("{'mysql-charset':'utf8mb4'}") 19 | @TableIndexes({@Index(name = "INDEX_SYS_DICT_PATH", fields = {"path"}, unique = true)}) 20 | public class Sys_dict extends BaseModel implements Serializable { 21 | private static final long serialVersionUID = 1L; 22 | 23 | @Column 24 | @Name 25 | @Comment("ID") 26 | @ColDefine(type = ColType.VARCHAR, width = 32) 27 | @PrevInsert(els = {@EL("uuid()")}) 28 | private String id; 29 | 30 | @Column 31 | @Comment("父级ID") 32 | @ColDefine(type = ColType.VARCHAR, width = 32) 33 | private String parentId; 34 | 35 | @Column 36 | @Comment("树路径") 37 | @ColDefine(type = ColType.VARCHAR, width = 100) 38 | private String path; 39 | 40 | @Column 41 | @Comment("名称") 42 | @ColDefine(type = ColType.VARCHAR, width = 100) 43 | private String name; 44 | 45 | @Column 46 | @Comment("机构编码") 47 | @ColDefine(type = ColType.VARCHAR, width = 20) 48 | private String code; 49 | 50 | @Column 51 | @Comment("启用状态") 52 | @ColDefine(type = ColType.BOOLEAN) 53 | private boolean disabled; 54 | 55 | @Column 56 | @Comment("排序字段") 57 | @Prev({ 58 | @SQL(db= DB.MYSQL,value = "SELECT IFNULL(MAX(location),0)+1 FROM sys_dict"), 59 | @SQL(db= DB.ORACLE,value = "SELECT COALESCE(MAX(location),0)+1 FROM sys_dict") 60 | }) 61 | private Integer location; 62 | 63 | @Column 64 | @Comment("有子节点") 65 | private boolean hasChildren; 66 | 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_log.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/6/21. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("sys_log_${month}") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Sys_log extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | @PrevInsert(els = {@EL("uuid()")}) 24 | private String id; 25 | 26 | @Column 27 | @Comment("操作人姓名") 28 | @ColDefine(type = ColType.VARCHAR, width = 100) 29 | private String username; 30 | 31 | @Column 32 | @Comment("操作人用户名") 33 | @ColDefine(type = ColType.VARCHAR, width = 100) 34 | private String loginname; 35 | 36 | @Column 37 | @Comment("日志类型") 38 | @ColDefine(type = ColType.VARCHAR, width = 20) 39 | private String type; 40 | 41 | @Column 42 | @Comment("日志标识") 43 | @ColDefine(type = ColType.VARCHAR, width = 50) 44 | private String tag; 45 | 46 | @Column 47 | @Comment("执行类") 48 | @ColDefine(type = ColType.VARCHAR, width = 255) 49 | private String src; 50 | 51 | @Column 52 | @Comment("来源IP") 53 | @ColDefine(type = ColType.VARCHAR, width = 255) 54 | private String ip; 55 | 56 | @Column 57 | @Comment("日志内容") 58 | @ColDefine(type = ColType.TEXT) 59 | private String msg; 60 | 61 | @Column 62 | @Comment("请求结果") 63 | @ColDefine(type = ColType.TEXT) 64 | private String param; 65 | 66 | @Column 67 | @Comment("执行结果") 68 | @ColDefine(type = ColType.TEXT) 69 | private String result; 70 | 71 | 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_msg.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | import java.util.List; 11 | 12 | /** 13 | * Created by wizzer on 2018/6/29. 14 | */ 15 | @Data 16 | @EqualsAndHashCode(callSuper = true) 17 | @Table("sys_msg") 18 | @TableMeta("{'mysql-charset':'utf8mb4'}") 19 | public class Sys_msg extends BaseModel implements Serializable { 20 | private static final long serialVersionUID = 1L; 21 | @Column 22 | @Name 23 | @Comment("ID") 24 | @ColDefine(type = ColType.VARCHAR, width = 32) 25 | @PrevInsert(els = {@EL("uuid()")}) 26 | private String id; 27 | 28 | @Column 29 | @Comment("消息类型") 30 | @ColDefine(type = ColType.VARCHAR, width = 32) 31 | private String type; 32 | 33 | @Column 34 | @Comment("消息标题") 35 | @ColDefine(type = ColType.VARCHAR, width = 255) 36 | private String title; 37 | 38 | @Column 39 | @Comment("消息内容") 40 | @ColDefine(type = ColType.TEXT) 41 | private String note; 42 | 43 | @Column 44 | @Comment("消息URL") 45 | @ColDefine(type = ColType.VARCHAR, width = 255) 46 | private String url; 47 | 48 | @Column 49 | @Comment("发送时间") 50 | //Long不要用ColDefine定义,兼容oracle/mysql,支持2038年以后的时间戳 51 | private Long sendAt; 52 | 53 | @Many(field = "msgId") 54 | private List userList; 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_msg_user.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2018/6/29. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("sys_msg_user") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Sys_msg_user extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("消息ID") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String msgId; 31 | 32 | @Column 33 | @Comment("用户名") 34 | @ColDefine(type = ColType.VARCHAR, width = 120) 35 | private String loginname; 36 | 37 | @Column 38 | @Comment("消息状态") 39 | @ColDefine(type = ColType.INT) 40 | private int status;//0--未读 1--已读 41 | 42 | @Column 43 | @Comment("读取时间") 44 | //Long不要用ColDefine定义,兼容oracle/mysql,支持2038年以后的时间戳 45 | private Long readAt; 46 | 47 | @One(field = "msgId") 48 | private Sys_msg msg; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_role.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | import java.util.List; 11 | 12 | /** 13 | * Created by wizzer on 2016/6/21. 14 | */ 15 | @Data 16 | @EqualsAndHashCode(callSuper = true) 17 | @Table("sys_role") 18 | @TableMeta("{'mysql-charset':'utf8mb4'}") 19 | @TableIndexes({@Index(name = "INDEX_SYS_ROLE_CODE", fields = {"code"}, unique = true)}) 20 | public class Sys_role extends BaseModel implements Serializable { 21 | private static final long serialVersionUID = 1L; 22 | @Column 23 | @Name 24 | @ColDefine(type = ColType.VARCHAR, width = 32) 25 | @PrevInsert(els = {@EL("uuid()")}) 26 | private String id; 27 | 28 | @Column 29 | @ColDefine(type = ColType.VARCHAR, width = 50) 30 | private String name; 31 | 32 | @Column 33 | @ColDefine(type = ColType.VARCHAR, width = 255) 34 | private String code; 35 | 36 | @Column 37 | @ColDefine(type = ColType.VARCHAR, width = 50) 38 | private String aliasName; 39 | 40 | @Column 41 | @ColDefine(type = ColType.BOOLEAN) 42 | private boolean disabled; 43 | 44 | @Column 45 | @ColDefine(type = ColType.VARCHAR, width = 32) 46 | private String unitid; 47 | 48 | @Column 49 | @ColDefine(type = ColType.VARCHAR, width = 255) 50 | private String note; 51 | 52 | @One(field = "unitid") 53 | public Sys_unit unit; 54 | 55 | @ManyMany(from = "roleId", relation = "sys_role_menu", to = "menuId") 56 | protected List menus; 57 | 58 | @ManyMany(from = "roleId", relation = "sys_user_role", to = "userId") 59 | private List users; 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_route.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by Wizzer on 2016/7/31. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("sys_route") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Sys_route extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | @PrevInsert(els = {@EL("uuid()")}) 24 | private String id; 25 | 26 | @Column 27 | @Comment("原始路径") 28 | @ColDefine(type = ColType.VARCHAR, width = 255) 29 | private String url; 30 | 31 | @Column 32 | @Comment("跳转路径") 33 | @ColDefine(type = ColType.VARCHAR, width = 255) 34 | private String toUrl; 35 | 36 | @Column 37 | @Comment("转发类型") 38 | @ColDefine(type = ColType.VARCHAR, width = 10) 39 | private String type; 40 | 41 | @Column 42 | @Comment("是否禁用") 43 | @ColDefine(type = ColType.BOOLEAN) 44 | private boolean disabled; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/models/Sys_task.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by Wizzer on 2016/7/30. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("sys_task") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Sys_task extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | @PrevInsert(els = {@EL("uuid()")}) 24 | private String id; 25 | 26 | @Column 27 | @Comment("任务名") 28 | @ColDefine(type = ColType.VARCHAR, width = 50) 29 | private String name; 30 | 31 | @Column 32 | @Comment("执行类") 33 | @ColDefine(type = ColType.VARCHAR, width = 255) 34 | private String jobClass; 35 | 36 | @Column 37 | @Comment("任务说明") 38 | @ColDefine(type = ColType.VARCHAR, width = 255) 39 | private String note; 40 | 41 | @Column 42 | @Comment("定时规则") 43 | @ColDefine(type = ColType.VARCHAR, width = 50) 44 | private String cron; 45 | 46 | @Column 47 | @Comment("执行参数") 48 | @ColDefine(type = ColType.TEXT) 49 | private String data; 50 | 51 | @Column 52 | @Comment("执行时间") 53 | private Long exeAt; 54 | 55 | @Column 56 | @Comment("执行结果") 57 | @ColDefine(type = ColType.TEXT) 58 | private String exeResult; 59 | 60 | @Column 61 | @Comment("是否禁用") 62 | @ColDefine(type = ColType.BOOLEAN) 63 | private boolean disabled; 64 | 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysApiService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.sys.models.Sys_api; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface SysApiService extends BaseService { 7 | /** 8 | * 创建密钥 9 | */ 10 | void createAppkey(String name, String userId) throws Exception; 11 | 12 | /** 13 | * 删除密钥 14 | */ 15 | void deleteAppkey(String appid) throws Exception; 16 | 17 | /** 18 | * 启用禁用 19 | */ 20 | void updateAppkey(String appid, boolean disabled) throws Exception; 21 | 22 | /** 23 | * 通过appid获取appkey 24 | * 25 | * @param appid appid 26 | * @return Sys_api 27 | */ 28 | String getAppkey(String appid); 29 | 30 | /** 31 | * 删除缓存 32 | * 33 | * @param appid appid 34 | */ 35 | void deleteCache(String appid); 36 | 37 | /** 38 | * 清空缓存 39 | */ 40 | void clearCache(); 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysAppConfService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | 4 | import com.budwk.app.base.service.BaseService; 5 | import com.budwk.app.sys.models.Sys_app_conf; 6 | 7 | import java.util.List; 8 | 9 | public interface SysAppConfService extends BaseService { 10 | List getConfNameList(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysAppListService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | 4 | import com.budwk.app.base.service.BaseService; 5 | import com.budwk.app.sys.models.Sys_app_list; 6 | 7 | import java.util.List; 8 | 9 | public interface SysAppListService extends BaseService { 10 | List getAppNameList(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysAppTaskService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | 4 | import com.budwk.app.base.service.BaseService; 5 | import com.budwk.app.sys.models.Sys_app_task; 6 | 7 | public interface SysAppTaskService extends BaseService { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysConfigService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.sys.models.Sys_config; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Created by wizzer on 2016/12/23. 10 | */ 11 | public interface SysConfigService extends BaseService { 12 | /** 13 | * 查询所有数据 14 | * @return 15 | */ 16 | List getAllList(); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysDictService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_dict; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | public interface SysDictService extends BaseService { 10 | /** 11 | * 通过code获取名称 12 | * 13 | * @param code 14 | * @return 15 | */ 16 | String getNameByCode(String code); 17 | 18 | /** 19 | * 通过ID获取名称 20 | * 21 | * @param id 22 | * @return 23 | */ 24 | String getNameById(String id); 25 | 26 | /** 27 | * 通过树PATH获取子级 28 | * 29 | * @param path 30 | * @return 31 | */ 32 | List getSubListByPath(String path); 33 | 34 | /** 35 | * 通过ID获取子级 36 | * 37 | * @param id 38 | * @return 39 | */ 40 | List getSubListById(String id); 41 | 42 | /** 43 | * 通过code获取子级 44 | * 45 | * @param code 46 | * @return 47 | */ 48 | List getSubListByCode(String code); 49 | 50 | /** 51 | * 通过树PATH获取子级 52 | * 53 | * @param path 54 | * @return 55 | */ 56 | Map getSubMapByPath(String path); 57 | 58 | /** 59 | * 通过ID获取子级 60 | * 61 | * @param id 62 | * @return 63 | */ 64 | Map getSubMapById(String id); 65 | 66 | /** 67 | * 通过code获取子级 68 | * 69 | * @param code 70 | * @return 71 | */ 72 | Map getSubMapByCode(String code); 73 | 74 | /** 75 | * 保存数据字典 76 | * 77 | * @param dict 78 | * @param pid 79 | */ 80 | void save(Sys_dict dict, String pid); 81 | 82 | /** 83 | * 级联删除数据 84 | * 85 | * @param dict 86 | */ 87 | void deleteAndChild(Sys_dict dict); 88 | 89 | /** 90 | * 清空缓存 91 | */ 92 | void clearCache(); 93 | } 94 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysLogService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.page.Pagination; 4 | import com.budwk.app.base.service.BaseService; 5 | import com.budwk.app.base.page.datatable.DataTableColumn; 6 | import com.budwk.app.base.page.datatable.DataTableOrder; 7 | import com.budwk.app.sys.models.Sys_log; 8 | import org.nutz.dao.Cnd; 9 | import org.nutz.lang.util.NutMap; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Created by wizzer on 2016/12/22. 15 | */ 16 | public interface SysLogService extends BaseService { 17 | /** 18 | * 快速插入日志 19 | * 20 | * @param syslog 21 | */ 22 | void fastInsertSysLog(Sys_log syslog); 23 | 24 | /** 25 | * 分表查询数据 26 | * 27 | * @param tableName 28 | * @param length 29 | * @param start 30 | * @param draw 31 | * @param orders 32 | * @param columns 33 | * @param cnd 34 | * @param linkName 35 | * @return 36 | */ 37 | NutMap logData(String tableName, int length, int start, int draw, List orders, List columns, Cnd cnd, String linkName); 38 | 39 | /** 40 | * 查询日期 41 | * 42 | * @param tablaeName 分表名称 43 | * @param pageNumber 页码 44 | * @param pageSize 页大小 45 | * @param cnd 查询条件 46 | * @return 47 | */ 48 | Pagination data(String tablaeName, int pageNumber, int pageSize, Cnd cnd); 49 | 50 | /** 51 | * 多月日志条件查询 52 | * 53 | * @param date 时间范围 54 | * @param type 日志类型 55 | * @param pageOrderName 排序字段名称 56 | * @param pageOrderBy 排序方式 57 | * @param pageNumber 页码 58 | * @param pageSize 页大小 59 | * @return 60 | */ 61 | Pagination data(String[] date, String type, String pageOrderName, String pageOrderBy, int pageNumber, int pageSize); 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysMenuService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_menu; 5 | import org.nutz.lang.util.NutMap; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by wizzer on 2016/12/22. 11 | */ 12 | public interface SysMenuService extends BaseService { 13 | /** 14 | * 保存菜单 15 | * 16 | * @param menu 17 | * @param pid 18 | */ 19 | void save(Sys_menu menu, String pid, List datas); 20 | 21 | /** 22 | * 编辑菜单 23 | * 24 | * @param menu 25 | * @param pid 26 | */ 27 | void edit(Sys_menu menu, String pid, List datas); 28 | 29 | /** 30 | * 级联删除菜单 31 | * 32 | * @param menu 33 | */ 34 | void deleteAndChild(Sys_menu menu); 35 | 36 | /** 37 | * 获取左侧菜单 38 | * 39 | * @param href 40 | * @return 41 | */ 42 | Sys_menu getLeftMenu(String href); 43 | 44 | /** 45 | * 获取左侧菜单路径 46 | * 47 | * @param list 48 | * @return 49 | */ 50 | Sys_menu getLeftPathMenu(List list); 51 | 52 | /** 53 | * 清空缓存 54 | */ 55 | void clearCache(); 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysMsgService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_msg; 5 | import org.nutz.lang.util.NutMap; 6 | 7 | import java.util.List; 8 | 9 | public interface SysMsgService extends BaseService { 10 | /** 11 | * 保存信息同时发送 12 | * 13 | * @param sysMsg 14 | * @param users 15 | */ 16 | Sys_msg saveMsg(Sys_msg sysMsg, String[] users); 17 | 18 | /** 19 | * 删除消息及消息用户表数据 20 | * 21 | * @param id 22 | */ 23 | void deleteMsg(String id); 24 | 25 | 26 | /** 27 | * 通知客户端弹窗 28 | * 29 | * @param innerMsg 30 | * @param rooms 31 | */ 32 | void notify(Sys_msg innerMsg, String rooms[]); 33 | 34 | /** 35 | * 通知客户端有新消息及消息数量 36 | * 37 | * @param room 用户名 38 | * @param size 39 | * @param list 40 | */ 41 | void innerMsg(String room, int size, List list); 42 | 43 | /** 44 | * 获取某用户的未读消息数量及列表 45 | * 46 | * @param loginname 用户名 47 | */ 48 | void getMsg(String loginname); 49 | 50 | /** 51 | * 通知下线 52 | * 53 | * @param loginname 用户名 54 | * @param httpSessionId 55 | */ 56 | void offline(String loginname, String httpSessionId); 57 | 58 | /** 59 | * 向用户发送站内消息 60 | * 61 | * @param loginname 用户名 62 | * @param title 标题 63 | * @param body 内容 64 | * @param sender 发送者 65 | */ 66 | void sendMsg(String loginname, String title, String body, String sender); 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysMsgUserService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_msg_user; 5 | 6 | import java.util.List; 7 | 8 | public interface SysMsgUserService extends BaseService { 9 | 10 | /** 11 | * 获取未读消息数量 12 | * 13 | * @param loginname 14 | * @return 15 | */ 16 | int getUnreadNum(String loginname); 17 | 18 | /** 19 | * 获取未读消息列表 20 | * 21 | * @param loginname 22 | * @param pageNumber 23 | * @param pageSize 24 | * @return 25 | */ 26 | List getUnreadList(String loginname, int pageNumber, int pageSize); 27 | 28 | /** 29 | * 删除用户缓存 30 | * 31 | * @param loginname 32 | */ 33 | void deleteCache(String loginname); 34 | 35 | /** 36 | * 清空缓存 37 | */ 38 | void clearCache(); 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysRouteService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_route; 5 | 6 | /** 7 | * Created by wizzer on 2016/12/23. 8 | */ 9 | public interface SysRouteService extends BaseService { 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysTaskService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_task; 5 | 6 | /** 7 | * Created by wizzer on 2016/12/22. 8 | */ 9 | public interface SysTaskService extends BaseService { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/SysUnitService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services; 2 | 3 | import com.budwk.app.base.service.BaseService; 4 | import com.budwk.app.sys.models.Sys_unit; 5 | 6 | /** 7 | * Created by wizzer on 2016/12/22. 8 | */ 9 | public interface SysUnitService extends BaseService { 10 | /** 11 | * 保存单位 12 | * 13 | * @param unit 14 | * @param pid 15 | */ 16 | void save(Sys_unit unit, String pid); 17 | 18 | /** 19 | * 级联删除单位及单位下用户 20 | * 21 | * @param unit 22 | */ 23 | void deleteAndChild(Sys_unit unit); 24 | 25 | /** 26 | * 清空缓存 27 | */ 28 | void clearCache(); 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/impl/SysAppConfServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services.impl; 2 | 3 | import com.budwk.app.base.service.impl.BaseServiceImpl; 4 | import com.budwk.app.sys.models.Sys_app_conf; 5 | import com.budwk.app.sys.services.SysAppConfService; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.dao.Sqls; 8 | import org.nutz.dao.sql.Sql; 9 | import org.nutz.ioc.loader.annotation.IocBean; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Created by wizzer on 2019/2/27. 15 | */ 16 | @IocBean(args = {"refer:dao"}) 17 | public class SysAppConfServiceImpl extends BaseServiceImpl implements SysAppConfService { 18 | public SysAppConfServiceImpl(Dao dao) { 19 | super(dao); 20 | } 21 | 22 | public List getConfNameList() { 23 | Sql sql = Sqls.create("SELECT DISTINCT confName FROM sys_app_conf"); 24 | sql.setCallback(Sqls.callback.strs()); 25 | this.dao().execute(sql); 26 | return sql.getList(String.class); 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/impl/SysAppListServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services.impl; 2 | 3 | import com.budwk.app.base.service.impl.BaseServiceImpl; 4 | import com.budwk.app.sys.models.Sys_app_list; 5 | import com.budwk.app.sys.services.SysAppListService; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.dao.Sqls; 8 | import org.nutz.dao.sql.Sql; 9 | import org.nutz.ioc.loader.annotation.IocBean; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Created by wizzer on 2019/2/27. 15 | */ 16 | @IocBean(args = {"refer:dao"}) 17 | public class SysAppListServiceImpl extends BaseServiceImpl implements SysAppListService { 18 | public SysAppListServiceImpl(Dao dao) { 19 | super(dao); 20 | } 21 | 22 | public List getAppNameList() { 23 | Sql sql = Sqls.create("SELECT DISTINCT appName FROM sys_app_list"); 24 | sql.setCallback(Sqls.callback.strs()); 25 | this.dao().execute(sql); 26 | return sql.getList(String.class); 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/impl/SysAppTaskServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services.impl; 2 | 3 | import com.budwk.app.base.service.impl.BaseServiceImpl; 4 | import com.budwk.app.sys.models.Sys_app_task; 5 | import com.budwk.app.sys.services.SysAppTaskService; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | /** 10 | * Created by wizzer on 2019/2/27. 11 | */ 12 | @IocBean(args = {"refer:dao"}) 13 | public class SysAppTaskServiceImpl extends BaseServiceImpl implements SysAppTaskService { 14 | public SysAppTaskServiceImpl(Dao dao) { 15 | super(dao); 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/impl/SysConfigServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services.impl; 2 | 3 | import com.budwk.app.base.service.impl.BaseServiceImpl; 4 | import com.budwk.app.sys.models.Sys_config; 5 | import com.budwk.app.sys.services.SysConfigService; 6 | import org.nutz.dao.Cnd; 7 | import org.nutz.dao.Dao; 8 | import org.nutz.ioc.loader.annotation.IocBean; 9 | 10 | import java.util.List; 11 | 12 | /** 13 | * Created by wizzer on 2016/12/23. 14 | */ 15 | @IocBean(args = {"refer:dao"}) 16 | public class SysConfigServiceImpl extends BaseServiceImpl implements SysConfigService { 17 | public SysConfigServiceImpl(Dao dao) { 18 | super(dao); 19 | } 20 | 21 | public List getAllList() { 22 | return this.query(Cnd.where("delFlag", "=", false)); 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/impl/SysRouteServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services.impl; 2 | 3 | import com.budwk.app.base.service.impl.BaseServiceImpl; 4 | import com.budwk.app.sys.models.Sys_route; 5 | import com.budwk.app.sys.services.SysRouteService; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | /** 10 | * Created by wizzer on 2016/12/23. 11 | */ 12 | @IocBean(args = {"refer:dao"}) 13 | public class SysRouteServiceImpl extends BaseServiceImpl implements SysRouteService { 14 | public SysRouteServiceImpl(Dao dao) { 15 | super(dao); 16 | } 17 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/sys/services/impl/SysTaskServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.sys.services.impl; 2 | 3 | import com.budwk.app.base.service.impl.BaseServiceImpl; 4 | import com.budwk.app.sys.models.Sys_task; 5 | import com.budwk.app.sys.services.SysTaskService; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | /** 10 | * Created by wizzer on 2016/12/22. 11 | */ 12 | @IocBean(args = {"refer:dao"}) 13 | public class SysTaskServiceImpl extends BaseServiceImpl implements SysTaskService { 14 | public SysTaskServiceImpl(Dao dao) { 15 | super(dao); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/task/conn/NutConnectionProvider.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.task.conn; 2 | 3 | import org.nutz.boot.AppContext; 4 | import org.nutz.ioc.Ioc; 5 | import org.quartz.utils.ConnectionProvider; 6 | 7 | import javax.sql.DataSource; 8 | import java.sql.Connection; 9 | import java.sql.SQLException; 10 | 11 | public class NutConnectionProvider implements ConnectionProvider { 12 | 13 | protected DataSource dataSource; 14 | protected String iocname = "dataSource"; 15 | 16 | public Connection getConnection() throws SQLException { 17 | return dataSource.getConnection(); 18 | } 19 | 20 | public void shutdown() throws SQLException {} 21 | 22 | @SuppressWarnings("deprecation") 23 | public void initialize() throws SQLException { 24 | if (dataSource != null) 25 | return; 26 | Ioc ioc = AppContext.getDefault().getIoc(); 27 | dataSource = ioc.get(DataSource.class, iocname); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/task/job/TestJob.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.task.job; 2 | 3 | import com.budwk.app.sys.services.SysTaskService; 4 | import org.nutz.dao.Chain; 5 | import org.nutz.dao.Cnd; 6 | import org.nutz.ioc.loader.annotation.Inject; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | import org.nutz.log.Log; 9 | import org.nutz.log.Logs; 10 | import org.quartz.Job; 11 | import org.quartz.JobDataMap; 12 | import org.quartz.JobExecutionContext; 13 | import org.quartz.JobExecutionException; 14 | 15 | /** 16 | * Created by Wizzer.cn on 2015/6/27. 17 | */ 18 | @IocBean 19 | public class TestJob implements Job { 20 | 21 | private static final Log log = Logs.get(); 22 | @Inject 23 | protected SysTaskService sysTaskService; 24 | 25 | public void execute(JobExecutionContext context) throws JobExecutionException { 26 | JobDataMap data = context.getJobDetail().getJobDataMap(); 27 | String taskId = context.getJobDetail().getKey().getName(); 28 | String hi = data.getString("hi"); 29 | log.info("Test Job hi::" + hi); 30 | sysTaskService.update(Chain.make("exeAt", (int) (System.currentTimeMillis() / 1000)).add("exeResult", "执行成功"), Cnd.where("id", "=", taskId)); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/task/services/TaskPlatformService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.task.services; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by wizzer on 2018/3/19. 7 | */ 8 | public interface TaskPlatformService { 9 | /** 10 | * 判断任务是否存在 11 | * 12 | * @param jobName 13 | * @param jobGroup 14 | * @return 15 | */ 16 | boolean isExist(String jobName, String jobGroup); 17 | 18 | /** 19 | * 添加新任务 20 | * 21 | * @param jobName 22 | * @param jobGroup 23 | * @param className 24 | * @param cron 25 | * @param comment 26 | * @param dataMap 27 | */ 28 | void add(String jobName, String jobGroup, String className, String cron, String comment, String dataMap); 29 | 30 | /** 31 | * 删除任务 32 | * 33 | * @param jobName 34 | * @param jobGroup 35 | * @return 36 | */ 37 | boolean delete(String jobName, String jobGroup); 38 | 39 | /** 40 | * 清除所有任务 41 | */ 42 | void clear(); 43 | 44 | /** 45 | * 获取cron表达式最近执行时间 46 | * 47 | * @param cronExpression 48 | * @return 49 | */ 50 | List getCronExeTimes(String cronExpression) throws Exception; 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/SaTokenContextImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken; 2 | 3 | import cn.dev33.satoken.context.SaTokenContext; 4 | import cn.dev33.satoken.context.model.SaRequest; 5 | import cn.dev33.satoken.context.model.SaResponse; 6 | import cn.dev33.satoken.context.model.SaStorage; 7 | import cn.dev33.satoken.servlet.model.SaRequestForServlet; 8 | import cn.dev33.satoken.servlet.model.SaResponseForServlet; 9 | import cn.dev33.satoken.servlet.model.SaStorageForServlet; 10 | import org.nutz.ioc.loader.annotation.IocBean; 11 | import org.nutz.mvc.Mvcs; 12 | 13 | /** 14 | * @author wizzer@qq.com 15 | */ 16 | @IocBean 17 | public class SaTokenContextImpl implements SaTokenContext { 18 | @Override 19 | public SaRequest getRequest() { 20 | return new SaRequestForServlet(Mvcs.getReq()); 21 | } 22 | 23 | @Override 24 | public SaResponse getResponse() { 25 | return new SaResponseForServlet(Mvcs.getResp()); 26 | } 27 | 28 | @Override 29 | public SaStorage getStorage() { 30 | return new SaStorageForServlet(Mvcs.getReq()); 31 | } 32 | 33 | @Override 34 | public boolean matchPath(String pattern, String path) { 35 | return false; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/StpInterfaceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken; 2 | 3 | import cn.dev33.satoken.stp.StpInterface; 4 | import com.budwk.app.sys.services.SysUserService; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.nutz.ioc.Ioc; 7 | import org.nutz.ioc.loader.annotation.Inject; 8 | import org.nutz.ioc.loader.annotation.IocBean; 9 | import org.nutz.lang.Strings; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * @author wizzer@qq.com 15 | */ 16 | @IocBean 17 | @Slf4j 18 | public class StpInterfaceImpl implements StpInterface { 19 | @Inject 20 | private SysUserService sysUserService; 21 | @Inject("refer:$ioc") 22 | protected Ioc ioc; 23 | 24 | @Override 25 | public List getPermissionList(Object loginId, String loginKey) { 26 | return sysUserService.getPermissionList(Strings.sNull(loginId)); 27 | } 28 | 29 | @Override 30 | public List getRoleList(Object loginId, String loginKey) { 31 | return sysUserService.getRoleCodeList(sysUserService.fetch(Strings.sNull(loginId))); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/aop/SaCheckLoginInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken.aop; 2 | 3 | import cn.dev33.satoken.SaManager; 4 | import cn.dev33.satoken.annotation.SaCheckLogin; 5 | import org.nutz.aop.InterceptorChain; 6 | import org.nutz.aop.MethodInterceptor; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | import java.lang.reflect.Method; 10 | 11 | /** 12 | * @author wizzer@qq.com 13 | */ 14 | @IocBean(singleton = false) 15 | public class SaCheckLoginInterceptor implements MethodInterceptor { 16 | @Override 17 | public void filter(InterceptorChain chain) throws Throwable { 18 | Method method = chain.getCallingMethod(); 19 | SaCheckLogin at = method.getAnnotation(SaCheckLogin.class); 20 | SaManager.getStpLogic(at.type()).checkByAnnotation(at); 21 | chain.doChain(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/aop/SaCheckPermissionInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken.aop; 2 | 3 | import cn.dev33.satoken.SaManager; 4 | import cn.dev33.satoken.annotation.SaCheckPermission; 5 | import org.nutz.aop.InterceptorChain; 6 | import org.nutz.aop.MethodInterceptor; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | import java.lang.reflect.Method; 10 | 11 | /** 12 | * @author wizzer@qq.com 13 | */ 14 | @IocBean(singleton = false) 15 | public class SaCheckPermissionInterceptor implements MethodInterceptor { 16 | @Override 17 | public void filter(InterceptorChain chain) throws Throwable { 18 | Method method = chain.getCallingMethod(); 19 | SaCheckPermission at = method.getAnnotation(SaCheckPermission.class); 20 | SaManager.getStpLogic(at.type()).checkByAnnotation(at); 21 | chain.doChain(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/aop/SaCheckRoleInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken.aop; 2 | 3 | import cn.dev33.satoken.SaManager; 4 | import cn.dev33.satoken.annotation.SaCheckRole; 5 | import org.nutz.aop.InterceptorChain; 6 | import org.nutz.aop.MethodInterceptor; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | import java.lang.reflect.Method; 10 | 11 | /** 12 | * @author wizzer@qq.com 13 | */ 14 | @IocBean(singleton = false) 15 | public class SaCheckRoleInterceptor implements MethodInterceptor { 16 | @Override 17 | public void filter(InterceptorChain chain) throws Throwable { 18 | Method method = chain.getCallingMethod(); 19 | SaCheckRole at = method.getAnnotation(SaCheckRole.class); 20 | SaManager.getStpLogic(at.type()).checkByAnnotation(at); 21 | chain.doChain(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/aop/SaTokenAopConfigration.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken.aop; 2 | 3 | import cn.dev33.satoken.annotation.SaCheckLogin; 4 | import cn.dev33.satoken.annotation.SaCheckPermission; 5 | import cn.dev33.satoken.annotation.SaCheckRole; 6 | import org.nutz.ioc.Ioc; 7 | import org.nutz.ioc.aop.config.AopConfigration; 8 | import org.nutz.ioc.aop.config.InterceptorPair; 9 | import org.nutz.ioc.loader.annotation.IocBean; 10 | 11 | import java.lang.reflect.Method; 12 | import java.util.ArrayList; 13 | import java.util.List; 14 | 15 | /** 16 | * @author wizzer@qq.com 17 | */ 18 | @IocBean(name = "$aop_satoken") 19 | public class SaTokenAopConfigration implements AopConfigration { 20 | 21 | @Override 22 | public List getInterceptorPairList(Ioc ioc, Class clazz) { 23 | List list = new ArrayList(); 24 | boolean flag = true; 25 | for (Method method : clazz.getMethods()) { 26 | if (method.getAnnotation(SaCheckLogin.class) != null 27 | || method.getAnnotation(SaCheckRole.class) != null 28 | || method.getAnnotation(SaCheckPermission.class) != null) { 29 | flag = false; 30 | break; 31 | } 32 | } 33 | if (flag) 34 | return list; 35 | list.add(new InterceptorPair(ioc.get(SaCheckLoginInterceptor.class), 36 | new SaTokenMethodMatcher(SaCheckLogin.class))); 37 | list.add(new InterceptorPair(ioc.get(SaCheckRoleInterceptor.class), 38 | new SaTokenMethodMatcher(SaCheckRole.class))); 39 | list.add(new InterceptorPair(ioc.get(SaCheckPermissionInterceptor.class), 40 | new SaTokenMethodMatcher(SaCheckPermission.class))); 41 | return list; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/satoken/aop/SaTokenMethodMatcher.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.satoken.aop; 2 | 3 | import org.nutz.aop.MethodMatcher; 4 | 5 | import java.lang.annotation.Annotation; 6 | import java.lang.reflect.Method; 7 | 8 | /** 9 | * @author wizzer@qq.com 10 | */ 11 | public class SaTokenMethodMatcher implements MethodMatcher { 12 | 13 | protected Class klass; 14 | 15 | public SaTokenMethodMatcher(Class klass) { 16 | this.klass = klass; 17 | } 18 | 19 | public boolean match(Method method) { 20 | return method.getAnnotation(klass) != null; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/service/AuthService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.service; 2 | 3 | import cn.dev33.satoken.stp.StpUtil; 4 | import com.budwk.app.sys.models.Sys_user; 5 | import com.budwk.app.sys.services.SysUserService; 6 | import com.budwk.app.web.commons.auth.utils.SecurityUtil; 7 | import lombok.extern.slf4j.Slf4j; 8 | import org.nutz.ioc.loader.annotation.Inject; 9 | import org.nutz.ioc.loader.annotation.IocBean; 10 | 11 | import java.beans.BeanInfo; 12 | import java.beans.Introspector; 13 | import java.beans.PropertyDescriptor; 14 | 15 | /** 16 | * @author wizzer@qq.com 17 | */ 18 | @IocBean 19 | @Slf4j 20 | public class AuthService { 21 | @Inject 22 | private SysUserService sysUserService; 23 | 24 | public Sys_user getLogonUser(){ 25 | return sysUserService.getUserAndMenuById(SecurityUtil.getUserId()); 26 | } 27 | 28 | public Object getPrincipalProperty(String property) { 29 | Sys_user user = getLogonUser(); 30 | if (user != null) { 31 | try { 32 | BeanInfo bi = Introspector.getBeanInfo(user.getClass()); 33 | for (PropertyDescriptor pd : bi.getPropertyDescriptors()) { 34 | if (pd.getName().equals(property)) { 35 | return pd.getReadMethod().invoke(user, (Object[]) null); 36 | } 37 | } 38 | log.trace("Property [{}] not found in principal of type [{}]", property, 39 | user.getClass().getName()); 40 | } catch (Exception e) { 41 | log.trace("Error reading property [{}] from principal of type [{}]", property, 42 | user.getClass().getName()); 43 | } 44 | } 45 | return null; 46 | } 47 | 48 | public String getSessionId(){ 49 | return StpUtil.getTokenValue(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/auth/utils/SecurityUtil.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.auth.utils; 2 | 3 | import cn.dev33.satoken.session.SaSession; 4 | import cn.dev33.satoken.stp.StpUtil; 5 | import org.nutz.lang.Strings; 6 | 7 | /** 8 | * @author wizzer@qq.com 9 | */ 10 | public class SecurityUtil { 11 | public static String getUserId() { 12 | return Strings.sNull(StpUtil.getLoginId()); 13 | } 14 | 15 | public static String getUserLoginname() { 16 | return Strings.sNull(getSession().get("loginname")); 17 | } 18 | 19 | public static String getUserUsername() { 20 | return Strings.sNull(getSession().get("username")); 21 | } 22 | 23 | public static String getUnitId() { 24 | return Strings.sNull(getSession().get("unitId")); 25 | } 26 | 27 | public static String getUnitPath() { 28 | return Strings.sNull(getSession().get("unitPath")); 29 | } 30 | 31 | public static SaSession getSession() { 32 | return StpUtil.getSession(true); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/beetl/FileSizeFormat.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.beetl; 2 | 3 | import org.beetl.core.Format; 4 | import org.nutz.lang.Strings; 5 | 6 | /** 7 | * Created by wizzer on 2018/1/23. 8 | */ 9 | public class FileSizeFormat implements Format { 10 | public Object format(Object data, String pattern) { 11 | return Strings.formatSizeForReadBy1024(Long.valueOf(Strings.sNull(data))); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/beetl/Html2TxtFormat.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.beetl; 2 | 3 | import org.beetl.core.Format; 4 | import org.jsoup.Jsoup; 5 | import org.jsoup.nodes.Document; 6 | import org.nutz.lang.Strings; 7 | 8 | /** 9 | * Created by wizzer on 2018/2/6. 10 | */ 11 | public class Html2TxtFormat implements Format { 12 | 13 | public Object format(Object data, String pattern) { 14 | if (data == null) { 15 | return ""; 16 | } 17 | Document document= Jsoup.parse(Strings.sNull(data)); 18 | String s = document.text(); 19 | if (pattern != null && s.length() > Integer.valueOf(pattern)) { 20 | return s.substring(0, Integer.valueOf(pattern)); 21 | } 22 | return s; 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/beetl/HtmlEscapeFormat.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.beetl; 2 | 3 | /** 4 | * Created by wizzer on 2017/2/8. 5 | */ 6 | 7 | import org.beetl.core.Format; 8 | import org.nutz.lang.Strings; 9 | 10 | public class HtmlEscapeFormat implements Format { 11 | 12 | public Object format(Object data, String pattern) { 13 | return Strings.escapeHtml(String.valueOf(data == null ? "" : data)); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/beetl/StrlenFormat.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.beetl; 2 | 3 | import org.beetl.core.Format; 4 | import org.nutz.lang.Strings; 5 | 6 | /** 7 | * Created by wizzer on 2018/2/6. 8 | */ 9 | public class StrlenFormat implements Format { 10 | 11 | public Object format(Object data, String pattern) { 12 | if (data == null) { 13 | return ""; 14 | } 15 | String s = Strings.sNull(data); 16 | if (pattern != null && s.length() > Integer.valueOf(pattern)) { 17 | return s.substring(0, Integer.valueOf(pattern)); 18 | } 19 | return s; 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/handler/WkErrorPageHandler.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.handler; 2 | 3 | import org.eclipse.jetty.server.Request; 4 | import org.eclipse.jetty.servlet.ErrorPageErrorHandler; 5 | import org.nutz.ioc.loader.annotation.IocBean; 6 | import org.nutz.json.Json; 7 | import org.nutz.lang.util.NutMap; 8 | import org.nutz.log.Log; 9 | import org.nutz.log.Logs; 10 | 11 | import javax.servlet.RequestDispatcher; 12 | import javax.servlet.ServletException; 13 | import javax.servlet.ServletRequest; 14 | import javax.servlet.http.HttpServletRequest; 15 | import javax.servlet.http.HttpServletResponse; 16 | import java.io.IOException; 17 | 18 | /** 19 | * 错误页拦截器,登陆后台显示友好提示 20 | */ 21 | @IocBean 22 | public class WkErrorPageHandler extends ErrorPageErrorHandler { 23 | private static final Log log = Logs.get(); 24 | 25 | @Override 26 | public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 27 | if (response.getStatus() == 403 || response.getStatus() == 404 || response.getStatus() == 500) { 28 | try { 29 | if (isAjax(request)) { 30 | response.getWriter().write(Json.toJson(new NutMap("code", "-1").setv("msg", response.getStatus() + " error"))); 31 | return; 32 | } else { 33 | request.setAttribute("original_request_uri", request.getRequestURI()); 34 | RequestDispatcher rd = request.getRequestDispatcher("/platform/home/" + response.getStatus()); 35 | rd.forward(request, response); 36 | return; 37 | } 38 | } catch (ServletException e) { 39 | log.error(e); 40 | } 41 | } 42 | super.handle(target, baseRequest, request, response); 43 | } 44 | 45 | private boolean isAjax(ServletRequest req) { 46 | String value = ((HttpServletRequest) req).getHeader("X-Requested-With"); 47 | return value != null && "XMLHttpRequest".equalsIgnoreCase(value.trim()); 48 | } 49 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/pubsub/WebPubSub.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.pubsub; 2 | 3 | import com.budwk.app.base.constant.RedisConstant; 4 | import com.budwk.app.web.commons.base.Globals; 5 | import com.budwk.app.sys.services.SysConfigService; 6 | import com.budwk.app.sys.services.SysRouteService; 7 | import org.nutz.integration.jedis.pubsub.PubSub; 8 | import org.nutz.integration.jedis.pubsub.PubSubService; 9 | import org.nutz.ioc.Ioc; 10 | import org.nutz.ioc.impl.PropertiesProxy; 11 | import org.nutz.ioc.loader.annotation.Inject; 12 | import org.nutz.ioc.loader.annotation.IocBean; 13 | import org.nutz.log.Log; 14 | import org.nutz.log.Logs; 15 | 16 | /** 17 | * 订阅发布用于更新所有实例的 Globals变量 18 | * Created by wizzer on 2018/3/18. 19 | */ 20 | @IocBean(create = "init") 21 | public class WebPubSub implements PubSub { 22 | private static final Log log = Logs.get(); 23 | @Inject 24 | protected PubSubService pubSubService; 25 | @Inject 26 | protected SysConfigService sysConfigService; 27 | @Inject 28 | protected SysRouteService sysRouteService; 29 | 30 | @Inject("refer:$ioc") 31 | protected Ioc ioc; 32 | 33 | @Inject 34 | protected PropertiesProxy conf; 35 | 36 | public void init() { 37 | pubSubService.reg(RedisConstant.PLATFORM_REDIS_PREFIX+"web:platform", this); 38 | } 39 | 40 | @Override 41 | public void onMessage(String channel, String message) { 42 | log.debug("WebPubSub onMessage::" + message); 43 | switch (message) { 44 | case "sys_config": 45 | Globals.initSysConfig(sysConfigService); 46 | break; 47 | case "sys_route": 48 | Globals.initRoute(sysRouteService); 49 | break; 50 | case "sys_wx": 51 | Globals.initWx(); 52 | break; 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/websocket/WkJedisRoomProvider.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.websocket; 2 | 3 | import org.nutz.integration.jedis.JedisAgent; 4 | import org.nutz.log.Log; 5 | import org.nutz.log.Logs; 6 | import org.nutz.plugins.mvc.websocket.WsRoomProvider; 7 | import redis.clients.jedis.Jedis; 8 | 9 | import java.util.Set; 10 | 11 | /** 12 | * Created by wizzer on 2018/7/5. 13 | */ 14 | public class WkJedisRoomProvider implements WsRoomProvider { 15 | private static final Log log = Logs.get(); 16 | protected JedisAgent jedisAgent; 17 | protected int RedisKeySessionTTL; 18 | 19 | public WkJedisRoomProvider(JedisAgent jedisAgent, int RedisKeySessionTTL) { 20 | this.jedisAgent = jedisAgent; 21 | this.RedisKeySessionTTL = RedisKeySessionTTL; 22 | } 23 | 24 | public Set wsids(String room) { 25 | try (Jedis jedis = jedisAgent.getResource()) { 26 | return jedis.smembers(room); 27 | } 28 | } 29 | 30 | public void join(String room, String wsid) { 31 | try (Jedis jedis = jedisAgent.getResource()) { 32 | jedis.sadd(room, wsid); 33 | jedis.expire(room,RedisKeySessionTTL);//每次加入的时候时间有效期重置? 34 | } 35 | } 36 | 37 | public void left(String room, String wsid) { 38 | try (Jedis jedis = jedisAgent.getResource()) { 39 | jedis.srem(room, wsid); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/websocket/WkWsHandler.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.websocket; 2 | 3 | import com.budwk.app.base.constant.RedisConstant; 4 | import com.budwk.app.sys.services.SysMsgService; 5 | import org.nutz.ioc.loader.annotation.Inject; 6 | import org.nutz.ioc.loader.annotation.IocBean; 7 | import org.nutz.lang.Strings; 8 | import org.nutz.lang.util.NutMap; 9 | import org.nutz.log.Log; 10 | import org.nutz.log.Logs; 11 | import org.nutz.plugins.mvc.websocket.handler.SimpleWsHandler; 12 | 13 | @IocBean 14 | public class WkWsHandler extends SimpleWsHandler { 15 | private static final Log log = Logs.get(); 16 | @Inject 17 | private SysMsgService sysMsgService; 18 | 19 | @Override 20 | public void join(NutMap req) { 21 | join(req.getString("room")); 22 | } 23 | 24 | @Override 25 | public void left(NutMap req) { 26 | left(req.getString("room")); 27 | } 28 | 29 | @Override 30 | public void join(String room) { 31 | if (!Strings.isBlank(room)) { 32 | room = RedisConstant.REDIS_KEY_WSROOM + room; 33 | log.debugf("session(id=%s) join room(name=%s)", session.getId(), room); 34 | roomProvider.join(room, session.getId()); 35 | sysMsgService.getMsg(room.split(":")[2]); 36 | } 37 | } 38 | 39 | @Override 40 | public void left(String room) { 41 | if (!Strings.isBlank(room)) { 42 | room = RedisConstant.REDIS_KEY_WSROOM + room; 43 | log.debugf("session(id=%s) left room(name=%s)", session.getId(), room); 44 | roomProvider.left(room, session.getId()); 45 | } 46 | } 47 | 48 | @Override 49 | public void depose() { 50 | //覆盖原生写法,因为room= loginname + httpSessionId 和聊天室的机制不一样,不覆盖的话功能会异常 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/ext/wx/WxService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.ext.wx; 2 | 3 | import com.budwk.app.wx.models.Wx_config; 4 | import com.budwk.app.wx.services.WxConfigService; 5 | import com.budwk.app.web.commons.base.Globals; 6 | import org.nutz.dao.Cnd; 7 | import org.nutz.integration.jedis.JedisAgent; 8 | import org.nutz.ioc.loader.annotation.Inject; 9 | import org.nutz.ioc.loader.annotation.IocBean; 10 | import org.nutz.log.Log; 11 | import org.nutz.log.Logs; 12 | import org.nutz.weixin.at.impl.JedisAgenAccessTokenStore; 13 | import org.nutz.weixin.impl.WxApi2Impl; 14 | import org.nutz.weixin.spi.WxApi2; 15 | 16 | /** 17 | * Created by wizzer on 2018/3/17. 18 | */ 19 | @IocBean 20 | public class WxService { 21 | private static final Log log = Logs.get(); 22 | @Inject 23 | private WxConfigService wxConfigService; 24 | @Inject 25 | private JedisAgent jedisAgent; 26 | 27 | public synchronized WxApi2 getWxApi2(String wxid) { 28 | WxApi2Impl wxApi2 = Globals.WxMap.getAs(wxid, WxApi2Impl.class); 29 | if (wxApi2 == null) { 30 | Wx_config appInfo = wxConfigService.fetch(Cnd.where("id", "=", wxid)); 31 | JedisAgenAccessTokenStore redisAccessTokenStore = new JedisAgenAccessTokenStore("nutzwk:wx:token:" + wxid, jedisAgent); 32 | wxApi2 = new WxApi2Impl(); 33 | wxApi2.setAppid(appInfo.getAppid()); 34 | wxApi2.setAppsecret(appInfo.getAppsecret()); 35 | wxApi2.setEncodingAesKey(appInfo.getEncodingAESKey()); 36 | wxApi2.setToken(appInfo.getToken()); 37 | wxApi2.setAccessTokenStore(redisAccessTokenStore); 38 | Globals.WxMap.put(wxid, wxApi2); 39 | } 40 | return wxApi2; 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/filter/RouteFilter.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.filter; 2 | 3 | import com.budwk.app.sys.models.Sys_route; 4 | import com.budwk.app.web.commons.base.Globals; 5 | import org.nutz.lang.Strings; 6 | 7 | import javax.servlet.*; 8 | import javax.servlet.http.HttpServletRequest; 9 | import javax.servlet.http.HttpServletResponse; 10 | import java.io.IOException; 11 | 12 | /** 13 | * Created by Wizzer on 2016/7/31. 14 | */ 15 | public class RouteFilter implements Filter { 16 | 17 | @Override 18 | public void doFilter(ServletRequest req, ServletResponse res, 19 | FilterChain chain) throws IOException, ServletException { 20 | HttpServletRequest req2 = (HttpServletRequest) req; 21 | HttpServletResponse res2 = (HttpServletResponse) res; 22 | res2.setCharacterEncoding("utf-8"); 23 | req2.setCharacterEncoding("utf-8"); 24 | Sys_route route = Globals.RouteMap.getAs(Strings.sNull(req2.getRequestURI()).replace(Globals.AppBase, ""), Sys_route.class); 25 | if (route != null) { 26 | if ("show".equals(route.getType())) { 27 | res2.sendRedirect(route.getToUrl()); 28 | } else { 29 | req2.getRequestDispatcher(route.getToUrl()).forward(req2, res2); 30 | } 31 | } else chain.doFilter(req2, res2); 32 | } 33 | 34 | @Override 35 | public void init(FilterConfig arg0) throws ServletException { 36 | } 37 | 38 | @Override 39 | public void destroy() { 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/filter/RouteFilterStarter.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.filter; 2 | 3 | import org.nutz.boot.AppContext; 4 | import org.nutz.boot.starter.WebFilterFace; 5 | import org.nutz.ioc.Ioc; 6 | import org.nutz.ioc.impl.PropertiesProxy; 7 | import org.nutz.ioc.loader.annotation.Inject; 8 | import org.nutz.ioc.loader.annotation.IocBean; 9 | 10 | import javax.servlet.DispatcherType; 11 | import javax.servlet.Filter; 12 | import java.util.EnumSet; 13 | import java.util.HashMap; 14 | import java.util.Map; 15 | 16 | @IocBean 17 | public class RouteFilterStarter implements WebFilterFace { 18 | 19 | 20 | @Inject("refer:$ioc") 21 | protected Ioc ioc; 22 | 23 | @Inject 24 | protected PropertiesProxy conf; 25 | 26 | @Inject 27 | protected AppContext appContext; 28 | 29 | public String getName() { 30 | return "routeFilterStarter"; 31 | } 32 | 33 | public String getPathSpec() { 34 | return "/*"; 35 | } 36 | 37 | public EnumSet getDispatches() { 38 | return EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE); 39 | } 40 | 41 | @IocBean(name="routeFilter") 42 | public RouteFilter createRouteFilter() { 43 | return new RouteFilter(); 44 | } 45 | 46 | public Filter getFilter() { 47 | return ioc.get(RouteFilter.class, "routeFilter"); 48 | } 49 | 50 | public Map getInitParameters() { 51 | return new HashMap<>(); 52 | } 53 | 54 | public int getOrder() { 55 | return 11; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/proc/LogTimeProcessor.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.proc; 2 | 3 | import org.nutz.lang.Stopwatch; 4 | import org.nutz.log.Log; 5 | import org.nutz.log.Logs; 6 | import org.nutz.mvc.ActionContext; 7 | import org.nutz.mvc.impl.processor.AbstractProcessor; 8 | 9 | import javax.servlet.http.HttpServletRequest; 10 | 11 | /** 12 | * Created by Wizzer.cn on 2015/7/2. 13 | */ 14 | public class LogTimeProcessor extends AbstractProcessor { 15 | 16 | private static final Log log = Logs.get(); 17 | 18 | public void process(ActionContext ac) throws Throwable { 19 | if (log.isDebugEnabled()) { 20 | Stopwatch sw = Stopwatch.begin(); 21 | try { 22 | doNext(ac); 23 | } finally { 24 | sw.stop(); 25 | HttpServletRequest req = ac.getRequest(); 26 | log.debugf("[%-4s]URI=%s %sms", req.getMethod(), req.getRequestURI(), sw.getDuration()); 27 | } 28 | } else { 29 | doNext(ac); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/slog/SLogAopConfigration.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.slog; 2 | 3 | import com.budwk.app.web.commons.slog.annotation.SLog; 4 | import org.nutz.aop.MethodInterceptor; 5 | import org.nutz.ioc.Ioc; 6 | import org.nutz.ioc.aop.SimpleAopMaker; 7 | import org.nutz.ioc.loader.annotation.Inject; 8 | import org.nutz.ioc.loader.annotation.IocBean; 9 | 10 | import java.lang.reflect.Method; 11 | import java.util.Arrays; 12 | import java.util.List; 13 | 14 | /** 15 | * Created by wizzer on 2016/6/22. 16 | */ 17 | @IocBean(name="$aop_syslog") 18 | public class SLogAopConfigration extends SimpleAopMaker { 19 | 20 | @Inject("refer:$ioc") 21 | protected Ioc ioc; 22 | 23 | public List makeIt(SLog slog, Method method, Ioc ioc) { 24 | return Arrays.asList(new SLogAopInterceptor(ioc, slog, method)); 25 | } 26 | 27 | public String[] getName() { 28 | return new String[0]; 29 | } 30 | 31 | public boolean has(String name) { 32 | return false; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/commons/slog/annotation/SLog.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.commons.slog.annotation; 2 | 3 | import java.lang.annotation.*; 4 | 5 | @Target({ElementType.METHOD, ElementType.TYPE}) 6 | @Retention(RetentionPolicy.RUNTIME) 7 | @Documented 8 | @Inherited 9 | public @interface SLog { 10 | String type() default "platform"; 11 | /** 12 | * 标签 13 | * 14 | * @return 15 | */ 16 | String tag(); 17 | 18 | String msg() default ""; 19 | 20 | /** 21 | * 是否记录传递参数 22 | * 23 | * @return 消息模板 24 | */ 25 | boolean param() default false; 26 | 27 | /** 28 | * 记录执行结果 29 | * 30 | * @return 消息模板 31 | */ 32 | boolean result() default false; 33 | 34 | /** 35 | * 是否异步执行,默认为true 36 | * 37 | * @return true, 如果需要异步执行 38 | */ 39 | boolean async() default true; 40 | } -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/controllers/front/wx/WeixinController.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.controllers.front.wx; 2 | 3 | import com.budwk.app.wx.services.WxConfigService; 4 | import com.budwk.app.web.commons.ext.wx.WxHandler; 5 | import org.nutz.ioc.loader.annotation.Inject; 6 | import org.nutz.ioc.loader.annotation.IocBean; 7 | import org.nutz.log.Log; 8 | import org.nutz.log.Logs; 9 | import org.nutz.mvc.View; 10 | import org.nutz.mvc.annotation.At; 11 | import org.nutz.mvc.annotation.Fail; 12 | import org.nutz.weixin.util.Wxs; 13 | 14 | import javax.servlet.http.HttpServletRequest; 15 | import java.io.IOException; 16 | 17 | /** 18 | * Created by wizzer on 2016/7/3. 19 | */ 20 | @IocBean 21 | @At("/public/weixin") 22 | public class WeixinController { 23 | private static final Log log = Logs.get(); 24 | @Inject 25 | private WxConfigService wxConfigService; 26 | @Inject 27 | private WxHandler wxHandler; 28 | 29 | public WeixinController() { 30 | Wxs.enableDevMode(); // 开启debug模式,这样就会把接收和发送的内容统统打印,方便查看 31 | } 32 | 33 | @At({"/api", "/api/?"}) 34 | @Fail("http:200") 35 | public View msgIn(String key, HttpServletRequest req) throws IOException { 36 | return Wxs.handle(wxHandler, req, key); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/controllers/platform/sys/SysLogController.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.controllers.platform.sys; 2 | 3 | import com.budwk.app.sys.services.SysLogService; 4 | import com.budwk.app.base.utils.DateUtil; 5 | import com.budwk.app.base.utils.PageUtil; 6 | import com.budwk.app.base.result.Result;; 7 | import org.apache.commons.lang3.StringUtils; 8 | import cn.dev33.satoken.annotation.SaCheckPermission; 9 | import org.nutz.ioc.loader.annotation.Inject; 10 | import org.nutz.ioc.loader.annotation.IocBean; 11 | import org.nutz.log.Log; 12 | import org.nutz.log.Logs; 13 | import org.nutz.mvc.annotation.At; 14 | import org.nutz.mvc.annotation.Ok; 15 | import org.nutz.mvc.annotation.Param; 16 | 17 | import javax.servlet.http.HttpServletRequest; 18 | 19 | /** 20 | * Created by wizzer on 2016/6/29. 21 | */ 22 | @IocBean 23 | @At("/platform/sys/log") 24 | public class SysLogController { 25 | private static final Log log = Logs.get(); 26 | @Inject 27 | private SysLogService sysLogService; 28 | 29 | @At("") 30 | @Ok("beetl:/platform/sys/log/index.html") 31 | @SaCheckPermission("sys.manager.log") 32 | public void index(HttpServletRequest req) { 33 | req.setAttribute("today", DateUtil.getDate()); 34 | } 35 | 36 | @At 37 | @Ok("json:full") 38 | @SaCheckPermission("sys.manager.log") 39 | public Object data(@Param("searchDate") String searchDate, @Param("searchType") String searchType, @Param("pageNumber") int pageNumber, @Param("pageSize") int pageSize, @Param("pageOrderName") String pageOrderName, @Param("pageOrderBy") String pageOrderBy) { 40 | try { 41 | String[] date = StringUtils.split(searchDate, ","); 42 | return Result.success().addData(sysLogService.data(date, searchType, pageOrderName, PageUtil.getOrder(pageOrderBy), pageNumber, pageSize)); 43 | } catch (Exception e) { 44 | return Result.error(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/tags/CmsArticleTag.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.tags; 2 | 3 | import com.budwk.app.cms.services.CmsArticleService; 4 | import org.beetl.core.tag.GeneralVarTagBinding; 5 | import org.nutz.dao.Cnd; 6 | import org.nutz.ioc.loader.annotation.Inject; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | import org.nutz.lang.Strings; 9 | 10 | /** 11 | * beetl标签-CMS文章详情 12 | * Created by wizzer on 2018/11/11. 13 | */ 14 | @IocBean 15 | public class CmsArticleTag extends GeneralVarTagBinding { 16 | @Inject 17 | private CmsArticleService cmsArticleService; 18 | 19 | @Override 20 | public void render() { 21 | String id = Strings.sNull(this.getAttributeValue("id")); 22 | this.binds(cmsArticleService.fetch(Cnd.where("id", "=", id).and("disabled", "=", false))); 23 | this.doBodyRender(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/tags/CmsChannelListTag.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.tags; 2 | 3 | import com.budwk.app.cms.models.Cms_channel; 4 | import com.budwk.app.cms.services.CmsChannelService; 5 | import org.beetl.core.tag.GeneralVarTagBinding; 6 | import org.nutz.ioc.loader.annotation.Inject; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | import org.nutz.lang.Strings; 9 | import org.nutz.log.Log; 10 | import org.nutz.log.Logs; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * beetl标签-CMS栏目列表 16 | * Created by wizzer on 2018/11/11. 17 | */ 18 | @IocBean(singleton = false) 19 | public class CmsChannelListTag extends GeneralVarTagBinding { 20 | private final static Log log = Logs.get(); 21 | @Inject 22 | private CmsChannelService cmsChannelService; 23 | 24 | @Override 25 | public void render() { 26 | String parentId = Strings.sNull(this.getAttributeValue("parentId")); 27 | String parentCode = Strings.sNull(this.getAttributeValue("parentCode")); 28 | List list = cmsChannelService.listChannel(parentId, parentCode); 29 | for (Cms_channel channel : list) { 30 | this.binds(channel); 31 | this.doBodyRender(); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/tags/CmsChannelTag.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.tags; 2 | 3 | import com.budwk.app.cms.models.Cms_channel; 4 | import com.budwk.app.cms.services.CmsChannelService; 5 | import org.beetl.core.tag.GeneralVarTagBinding; 6 | import org.nutz.ioc.loader.annotation.Inject; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | import org.nutz.lang.Strings; 9 | 10 | /** 11 | * beetl标签-CMS栏目详情 12 | * Created by wizzer on 2018/11/11. 13 | */ 14 | @IocBean 15 | public class CmsChannelTag extends GeneralVarTagBinding { 16 | @Inject 17 | private CmsChannelService cmsChannelService; 18 | 19 | @Override 20 | public void render() { 21 | String id = Strings.sNull(this.getAttributeValue("id")); 22 | String code = Strings.sNull(this.getAttributeValue("code")); 23 | Cms_channel channel = cmsChannelService.getChannel(id, code); 24 | this.binds(channel); 25 | this.doBodyRender(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/web/tags/CmsLinkListTag.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.web.tags; 2 | 3 | import com.budwk.app.cms.models.Cms_link; 4 | import com.budwk.app.cms.services.CmsLinkService; 5 | import org.apache.commons.lang3.math.NumberUtils; 6 | import org.beetl.core.tag.GeneralVarTagBinding; 7 | import org.nutz.ioc.loader.annotation.Inject; 8 | import org.nutz.ioc.loader.annotation.IocBean; 9 | import org.nutz.lang.Strings; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * beetl标签-友情链接 15 | * Created by wizzer on 2018/11/11. 16 | */ 17 | @IocBean 18 | public class CmsLinkListTag extends GeneralVarTagBinding { 19 | @Inject 20 | private CmsLinkService cmsLinkService; 21 | 22 | @Override 23 | public void render() { 24 | String code = Strings.sNull(this.getAttributeValue("code")); 25 | int size = NumberUtils.toInt(Strings.sNull(this.getAttributeValue("size")), 1); 26 | List list = cmsLinkService.getLinkList(code, size); 27 | list.forEach(link -> { 28 | this.binds(link); 29 | this.doBodyRender(); 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_mass_send.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/7/2. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_mass_send") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_mass_send extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | public String getSys_unit_id() { 33 | return sys_unit_id; 34 | } 35 | 36 | public void setSys_unit_id(String sys_unit_id) { 37 | this.sys_unit_id = sys_unit_id; 38 | } 39 | 40 | @Column 41 | @Comment("群发ID") 42 | @ColDefine(type = ColType.VARCHAR, width = 32) 43 | private String massId; 44 | 45 | @Column 46 | @Comment("Openid列表") 47 | @ColDefine(type = ColType.TEXT) 48 | private String receivers; 49 | 50 | @Column 51 | @Comment("发送状态") 52 | @ColDefine(type = ColType.INT) 53 | protected Integer status; 54 | 55 | @Column 56 | @Comment("msgId") 57 | @ColDefine(type = ColType.VARCHAR, width = 32) 58 | private String msgId; 59 | 60 | @Column 61 | @Comment("errCode") 62 | @ColDefine(type = ColType.VARCHAR, width = 32) 63 | private String errCode; 64 | 65 | @Column 66 | @Comment("errMsg") 67 | @ColDefine(type = ColType.VARCHAR, width = 255) 68 | private String errMsg; 69 | 70 | @Column 71 | @Comment("微信ID") 72 | @ColDefine(type = ColType.VARCHAR, width = 32) 73 | private String wxid; 74 | 75 | @One(field = "wxid") 76 | private Wx_config wxConfig; 77 | 78 | 79 | } 80 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_msg.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/7/2. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_msg") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_msg extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | @Column 33 | @Comment("openid") 34 | @ColDefine(type = ColType.VARCHAR, width = 50) 35 | private String openid; 36 | 37 | @Column 38 | @Comment("微信昵称") 39 | @ColDefine(type = ColType.VARCHAR, width = 255) 40 | private String nickname; 41 | 42 | @Column 43 | @Comment("信息类型") 44 | @ColDefine(type = ColType.VARCHAR, width = 20) 45 | private String type; 46 | 47 | @Column 48 | @Comment("信息内容") 49 | @ColDefine(type = ColType.TEXT) 50 | private String content; 51 | 52 | @Column 53 | @Comment("回复ID") 54 | @ColDefine(type = ColType.VARCHAR, width = 32) 55 | private String replyId; 56 | 57 | @Column 58 | @Comment("微信ID") 59 | @ColDefine(type = ColType.VARCHAR, width = 32) 60 | private String wxid; 61 | 62 | @One(field = "replyId") 63 | private Wx_msg_reply reply; 64 | 65 | @One(field = "wxid") 66 | private Wx_config wxConfig; 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_msg_reply.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/7/2. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_msg_reply") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_msg_reply extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | @Column 33 | @Comment("msgid") 34 | @ColDefine(type = ColType.VARCHAR, width = 32) 35 | private String msgid; 36 | 37 | @Column 38 | @Comment("openid") 39 | @ColDefine(type = ColType.VARCHAR, width = 50) 40 | private String openid; 41 | 42 | @Column 43 | @Comment("信息类型") 44 | @ColDefine(type = ColType.VARCHAR, width = 20) 45 | private String type; 46 | 47 | @Column 48 | @Comment("信息内容") 49 | @ColDefine(type = ColType.TEXT) 50 | private String content; 51 | 52 | @Column 53 | @Comment("微信ID") 54 | @ColDefine(type = ColType.VARCHAR, width = 32) 55 | private String wxid; 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_reply.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/7/2. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_reply") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_reply extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | @Column 33 | @Comment("回复类型") 34 | @ColDefine(type = ColType.VARCHAR, width = 20) 35 | private String type; 36 | 37 | @Column 38 | @Comment("消息类型") 39 | @ColDefine(type = ColType.VARCHAR, width = 20) 40 | private String msgType; 41 | 42 | @Column 43 | @Comment("关键词") 44 | @ColDefine(type = ColType.VARCHAR, width = 50) 45 | private String keyword; 46 | 47 | @Column 48 | @Comment("回复内容") 49 | @ColDefine(type = ColType.VARCHAR, width = 255) 50 | private String content; 51 | 52 | @Column 53 | @Comment("微信ID") 54 | @ColDefine(type = ColType.VARCHAR, width = 32) 55 | private String wxid; 56 | 57 | @One(field = "wxid") 58 | private Wx_config wxConfig; 59 | 60 | @One(field = "content", key = "id") 61 | private Wx_reply_img replyImg; 62 | 63 | @One(field = "content", key = "id") 64 | private Wx_reply_news replyNews; 65 | 66 | @One(field = "content", key = "id") 67 | private Wx_reply_txt replyTxt; 68 | 69 | 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_reply_img.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2018/11/7. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_reply_img") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_reply_img extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | @Column 33 | @Comment("微信ID") 34 | @ColDefine(type = ColType.VARCHAR, width = 32) 35 | private String wxid; 36 | 37 | @Column 38 | @Comment("图片地址") 39 | @ColDefine(type = ColType.VARCHAR, width = 255) 40 | private String picurl; 41 | 42 | @Column 43 | @Comment("媒体ID") 44 | @ColDefine(type = ColType.VARCHAR, width = 255) 45 | private String mediaId; 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_reply_news.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.DB; 7 | import org.nutz.dao.entity.annotation.*; 8 | import org.nutz.dao.interceptor.annotation.PrevInsert; 9 | 10 | import java.io.Serializable; 11 | 12 | /** 13 | * Created by wizzer on 2016/7/2. 14 | */ 15 | @Data 16 | @EqualsAndHashCode(callSuper = true) 17 | @Table("wx_reply_news") 18 | @TableMeta("{'mysql-charset':'utf8mb4'}") 19 | public class Wx_reply_news extends BaseModel implements Serializable { 20 | private static final long serialVersionUID = 1L; 21 | @Column 22 | @Name 23 | @Comment("ID") 24 | @ColDefine(type = ColType.VARCHAR, width = 32) 25 | @PrevInsert(els = {@EL("uuid()")}) 26 | private String id; 27 | 28 | @Column 29 | @Comment("单位id") 30 | @ColDefine(type = ColType.VARCHAR, width = 32) 31 | private String sys_unit_id; 32 | 33 | @Column 34 | @Comment("微信ID") 35 | @ColDefine(type = ColType.VARCHAR, width = 32) 36 | private String wxid; 37 | 38 | @Column 39 | @Comment("标题") 40 | @ColDefine(type = ColType.VARCHAR, width = 255) 41 | private String title; 42 | 43 | @Column 44 | @Comment("摘要") 45 | @ColDefine(type = ColType.VARCHAR, width = 255) 46 | private String description; 47 | 48 | @Column 49 | @Comment("图片地址") 50 | @ColDefine(type = ColType.VARCHAR, width = 255) 51 | private String picUrl; 52 | 53 | @Column 54 | @Comment("图片地址") 55 | @ColDefine(type = ColType.VARCHAR, width = 255) 56 | private String picUrl2; 57 | 58 | @Column 59 | @Comment("文章路径") 60 | @ColDefine(type = ColType.VARCHAR, width = 255) 61 | private String url; 62 | 63 | @Column 64 | @Comment("排序字段") 65 | @Prev({ 66 | @SQL(db= DB.MYSQL,value = "SELECT IFNULL(MAX(location),0)+1 FROM wx_reply_news"), 67 | @SQL(db= DB.ORACLE,value = "SELECT COALESCE(MAX(location),0)+1 FROM wx_reply_news") 68 | }) 69 | private Integer location; 70 | 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_reply_txt.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/7/2. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_reply_txt") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_reply_txt extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | @Column 33 | @Comment("微信ID") 34 | @ColDefine(type = ColType.VARCHAR, width = 32) 35 | private String wxid; 36 | 37 | @Column 38 | @Comment("标题") 39 | @ColDefine(type = ColType.VARCHAR, width = 255) 40 | private String title; 41 | 42 | @Column 43 | @Comment("内容") 44 | @ColDefine(type = ColType.TEXT) 45 | private String content; 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_tpl_id.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | 8 | import java.io.Serializable; 9 | 10 | /** 11 | * Created by wizzer on 2016/8/5. 12 | */ 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | @Table("wx_tpl_id") 16 | @TableMeta("{'mysql-charset':'utf8mb4'}") 17 | @TableIndexes({@Index(name = "INDEX_WX_TPL_ID", fields = {"id", "wxid"}, unique = true)}) 18 | public class Wx_tpl_id extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Comment("模板编号") 22 | @ColDefine(type = ColType.VARCHAR, width = 32) 23 | private String id; 24 | 25 | @Column 26 | @Comment("单位id") 27 | @ColDefine(type = ColType.VARCHAR, width = 32) 28 | private String sys_unit_id; 29 | 30 | @Column 31 | @Comment("模板ID") 32 | @ColDefine(type = ColType.VARCHAR, width = 255) 33 | private String template_id; 34 | 35 | @Column 36 | @Comment("微信ID") 37 | @ColDefine(type = ColType.VARCHAR, width = 32) 38 | private String wxid; 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_tpl_list.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/8/5. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_tpl_list") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | @TableIndexes({@Index(name = "INDEX_WX_TPL_LIST", fields = {"template_id","wxid"}, unique = true)}) 19 | public class Wx_tpl_list extends BaseModel implements Serializable { 20 | private static final long serialVersionUID = 1L; 21 | @Column 22 | @Name 23 | @Comment("ID") 24 | @ColDefine(type = ColType.VARCHAR, width = 32) 25 | @PrevInsert(els = {@EL("uuid()")}) 26 | private String id; 27 | 28 | @Column 29 | @Comment("单位id") 30 | @ColDefine(type = ColType.VARCHAR, width = 32) 31 | private String sys_unit_id; 32 | 33 | @Column 34 | @Comment("模板ID") 35 | @ColDefine(type = ColType.VARCHAR, width = 100) 36 | private String template_id; 37 | 38 | @Column 39 | @Comment("模板标题") 40 | @ColDefine(type = ColType.VARCHAR, width = 255) 41 | private String title; 42 | 43 | @Column 44 | @Comment("主营行业") 45 | @ColDefine(type = ColType.VARCHAR, width = 100) 46 | private String primary_industry; 47 | 48 | @Column 49 | @Comment("副营行业") 50 | @ColDefine(type = ColType.VARCHAR, width = 100) 51 | private String deputy_industry; 52 | 53 | @Column 54 | @Comment("模板内容") 55 | @ColDefine(type = ColType.VARCHAR, width = 300) 56 | private String content; 57 | 58 | @Column 59 | @Comment("模板示例") 60 | @ColDefine(type = ColType.VARCHAR, width = 300) 61 | private String example; 62 | 63 | @Column 64 | @Comment("微信ID") 65 | @ColDefine(type = ColType.VARCHAR, width = 32) 66 | private String wxid; 67 | 68 | public String getId() { 69 | return id; 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/models/Wx_tpl_log.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.models; 2 | 3 | import com.budwk.app.base.model.BaseModel; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import org.nutz.dao.entity.annotation.*; 7 | import org.nutz.dao.interceptor.annotation.PrevInsert; 8 | 9 | import java.io.Serializable; 10 | 11 | /** 12 | * Created by wizzer on 2016/8/5. 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | @Table("wx_tpl_log") 17 | @TableMeta("{'mysql-charset':'utf8mb4'}") 18 | public class Wx_tpl_log extends BaseModel implements Serializable { 19 | private static final long serialVersionUID = 1L; 20 | @Column 21 | @Name 22 | @Comment("ID") 23 | @ColDefine(type = ColType.VARCHAR, width = 32) 24 | @PrevInsert(els = {@EL("uuid()")}) 25 | private String id; 26 | 27 | @Column 28 | @Comment("单位id") 29 | @ColDefine(type = ColType.VARCHAR, width = 32) 30 | private String sys_unit_id; 31 | 32 | @Column 33 | @Comment("openid") 34 | @ColDefine(type = ColType.VARCHAR, width = 50) 35 | private String openid; 36 | 37 | @Column 38 | @Comment("微信昵称") 39 | @ColDefine(type = ColType.VARCHAR, width = 255) 40 | private String nickname; 41 | 42 | @Column 43 | @Comment("发送内容") 44 | @ColDefine(type = ColType.TEXT) 45 | private String content; 46 | 47 | @Column 48 | @Comment("发送状态") 49 | @ColDefine(type = ColType.INT) 50 | private int status;//0 默认 1 成功 2 失败 51 | 52 | @Column 53 | @Comment("发送结果") 54 | @ColDefine(type = ColType.TEXT) 55 | private String result; 56 | 57 | @Column 58 | @Comment("微信ID") 59 | @ColDefine(type = ColType.VARCHAR, width = 32) 60 | private String wxid; 61 | 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxConfigService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_config; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxConfigService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxMassNewsService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_mass_news; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxMassNewsService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxMassSendService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_mass_send; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxMassSendService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxMassService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_mass; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxMassService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxMenuService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_menu; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxMenuService extends BaseService { 7 | void save(Wx_menu menu, String pid); 8 | 9 | void deleteAndChild(Wx_menu menu); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxMsgReplyService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_msg_reply; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxMsgReplyService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxMsgService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_msg; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxMsgService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxReplyImgService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_reply_img; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxReplyImgService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxReplyNewsService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_reply_news; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxReplyNewsService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxReplyService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_reply; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxReplyService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxReplyTxtService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_reply_txt; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxReplyTxtService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxTplIdService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_tpl_id; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxTplIdService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxTplListService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_tpl_list; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxTplListService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxTplLogService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_tpl_log; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | /** 7 | * Created by wizzer on 2017/2/14. 8 | */ 9 | public interface WxTplLogService extends BaseService { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/WxUserService.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services; 2 | 3 | import com.budwk.app.wx.models.Wx_user; 4 | import com.budwk.app.base.service.BaseService; 5 | 6 | public interface WxUserService extends BaseService { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxConfigServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_config; 4 | import com.budwk.app.wx.services.WxConfigService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxConfigServiceImpl extends BaseServiceImpl implements WxConfigService { 11 | public WxConfigServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxMassNewsServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_mass_news; 4 | import com.budwk.app.wx.services.WxMassNewsService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxMassNewsServiceImpl extends BaseServiceImpl implements WxMassNewsService { 11 | public WxMassNewsServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxMassSendServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_mass_send; 4 | import com.budwk.app.wx.services.WxMassSendService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxMassSendServiceImpl extends BaseServiceImpl implements WxMassSendService { 11 | public WxMassSendServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxMassServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_mass; 4 | import com.budwk.app.wx.services.WxMassService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxMassServiceImpl extends BaseServiceImpl implements WxMassService { 11 | public WxMassServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxMenuServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_menu; 4 | import com.budwk.app.wx.services.WxMenuService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.aop.interceptor.ioc.TransAop; 7 | import org.nutz.dao.Chain; 8 | import org.nutz.dao.Cnd; 9 | import org.nutz.dao.Dao; 10 | import org.nutz.dao.Sqls; 11 | import org.nutz.ioc.aop.Aop; 12 | import org.nutz.ioc.loader.annotation.IocBean; 13 | import org.nutz.lang.Strings; 14 | 15 | @IocBean(args = {"refer:dao"}) 16 | public class WxMenuServiceImpl extends BaseServiceImpl implements WxMenuService { 17 | public WxMenuServiceImpl(Dao dao) { 18 | super(dao); 19 | } 20 | 21 | /** 22 | * 新增菜单 23 | * 24 | * @param menu 25 | * @param pid 26 | */ 27 | @Aop(TransAop.READ_COMMITTED) 28 | public void save(Wx_menu menu, String pid) { 29 | String path = ""; 30 | if (!Strings.isEmpty(pid)) { 31 | Wx_menu pp = this.fetch(pid); 32 | path = pp.getPath(); 33 | } else pid = ""; 34 | menu.setPath(getSubPath("wx_menu", "path", path)); 35 | menu.setParentId(pid); 36 | dao().insert(menu); 37 | if (!Strings.isEmpty(pid)) { 38 | this.update(Chain.make("hasChildren", true), Cnd.where("id", "=", pid)); 39 | } 40 | } 41 | 42 | /** 43 | * 级联删除菜单 44 | * 45 | * @param menu 46 | */ 47 | @Aop(TransAop.READ_COMMITTED) 48 | public void deleteAndChild(Wx_menu menu) { 49 | dao().execute(Sqls.create("delete from wx_menu where path like @path").setParam("path", menu.getPath() + "%")); 50 | if (!Strings.isBlank(menu.getParentId())) { 51 | int count = count(Cnd.where("parentId", "=", menu.getParentId())); 52 | if (count < 1) { 53 | dao().execute(Sqls.create("update wx_menu set hasChildren=0 where id=@pid").setParam("pid", menu.getParentId())); 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxMsgReplyServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_msg_reply; 4 | import com.budwk.app.wx.services.WxMsgReplyService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxMsgReplyServiceImpl extends BaseServiceImpl implements WxMsgReplyService { 11 | public WxMsgReplyServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxMsgServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_msg; 4 | import com.budwk.app.wx.services.WxMsgService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxMsgServiceImpl extends BaseServiceImpl implements WxMsgService { 11 | public WxMsgServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxReplyImgServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_reply_img; 4 | import com.budwk.app.wx.services.WxReplyImgService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxReplyImgServiceImpl extends BaseServiceImpl implements WxReplyImgService { 11 | public WxReplyImgServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxReplyNewsServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_reply_news; 4 | import com.budwk.app.wx.services.WxReplyNewsService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxReplyNewsServiceImpl extends BaseServiceImpl implements WxReplyNewsService { 11 | public WxReplyNewsServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxReplyServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_reply; 4 | import com.budwk.app.wx.services.WxReplyService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxReplyServiceImpl extends BaseServiceImpl implements WxReplyService { 11 | public WxReplyServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxReplyTxtServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_reply_txt; 4 | import com.budwk.app.wx.services.WxReplyTxtService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxReplyTxtServiceImpl extends BaseServiceImpl implements WxReplyTxtService { 11 | public WxReplyTxtServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxTplIdServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_tpl_id; 4 | import com.budwk.app.wx.services.WxTplIdService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxTplIdServiceImpl extends BaseServiceImpl implements WxTplIdService { 11 | public WxTplIdServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxTplListServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_tpl_list; 4 | import com.budwk.app.wx.services.WxTplListService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxTplListServiceImpl extends BaseServiceImpl implements WxTplListService { 11 | public WxTplListServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxTplLogServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_tpl_log; 4 | import com.budwk.app.wx.services.WxTplLogService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxTplLogServiceImpl extends BaseServiceImpl implements WxTplLogService { 11 | public WxTplLogServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/budwk/app/wx/services/impl/WxUserServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.budwk.app.wx.services.impl; 2 | 3 | import com.budwk.app.wx.models.Wx_user; 4 | import com.budwk.app.wx.services.WxUserService; 5 | import com.budwk.app.base.service.impl.BaseServiceImpl; 6 | import org.nutz.dao.Dao; 7 | import org.nutz.ioc.loader.annotation.IocBean; 8 | 9 | @IocBean(args = {"refer:dao"}) 10 | public class WxUserServiceImpl extends BaseServiceImpl implements WxUserService { 11 | public WxUserServiceImpl(Dao dao) { 12 | super(dao); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/nutz/org.nutz.boot.config.ConfigureLoader: -------------------------------------------------------------------------------- 1 | org.nutz.boot.config.impl.YamlConfigureLoader -------------------------------------------------------------------------------- /src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ______ _ _ _ _ _ _ _____ ___ ____ _ 2 | | ___ \ | | | | | | | | | | ___| | \/ (_) (_) 3 | | |_/ /_ _ __| | | | | | ________| | | |___ \ | . . |_ _ __ _ 4 | | ___ \ | | |/ _` | |/\| | |/ /______| | | | \ \ | |\/| | | '_ \| | 5 | | |_/ / |_| | (_| \ /\ / < \ \_/ /\__/ / | | | | | | | | | 6 | \____/ \__,_|\__,_|\/ \/|_|\_\ \___/\____/ \_| |_/_|_| |_|_| 7 | 8 | :: Built with BudWk.com [wizzer@qq.com] 9 | -------------------------------------------------------------------------------- /src/main/resources/chain/mvc-chain.json: -------------------------------------------------------------------------------- 1 | var chain={ 2 | "default" : { 3 | "ps" : [ 4 | "com.budwk.app.web.commons.proc.LogTimeProcessor", 5 | "com.budwk.app.web.commons.proc.GlobalsSettingProcessor", 6 | "org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor", 7 | "org.nutz.mvc.impl.processor.EncodingProcessor", 8 | "org.nutz.mvc.impl.processor.ModuleProcessor", 9 | "com.budwk.app.web.commons.proc.XssSqlFilterProcessor", 10 | "org.nutz.mvc.impl.processor.ActionFiltersProcessor", 11 | "org.nutz.mvc.impl.processor.AdaptorProcessor", 12 | "org.nutz.mvc.impl.processor.MethodInvokeProcessor", 13 | "org.nutz.mvc.impl.processor.ViewProcessor" 14 | ], 15 | "error" : 'com.budwk.app.web.commons.proc.WkFailProcessor' 16 | } 17 | }; -------------------------------------------------------------------------------- /src/main/resources/locales/en_US/sys/role.properties: -------------------------------------------------------------------------------- 1 | sys.role.code=Permission already exists 2 | -------------------------------------------------------------------------------- /src/main/resources/locales/en_US/sys/unit.properties: -------------------------------------------------------------------------------- 1 | sys.unit.add=Add Unit 2 | sys.unit.parentUnit=Parent Unit 3 | sys.unit.defaultTopUnit=Default Top Unit 4 | sys.unit.topUnit=Top Unit 5 | sys.unit.selectParentUnit=Select Parent Unit 6 | sys.unit.setTopUnit=Set Top Unit 7 | 8 | sys.unit.m.name=Name 9 | sys.unit.m.unitcode=Code 10 | sys.unit.m.note=Note 11 | sys.unit.m.address=Address 12 | sys.unit.m.telephone=Telephone 13 | -------------------------------------------------------------------------------- /src/main/resources/locales/zh_CN/sys/role.properties: -------------------------------------------------------------------------------- 1 | sys.role.code=权限标识已存在 2 | -------------------------------------------------------------------------------- /src/main/resources/locales/zh_CN/sys/unit.properties: -------------------------------------------------------------------------------- 1 | sys.unit.add=新建单位 2 | sys.unit.parentUnit=上级单位 3 | sys.unit.defaultTopUnit=不选择默认为顶级单位 4 | sys.unit.topUnit=顶级单位 5 | sys.unit.selectParentUnit=选择上级单位 6 | sys.unit.setTopUnit=设为顶级单位 7 | 8 | sys.unit.m.name=单位名称 9 | sys.unit.m.unitcode=机构代码 10 | sys.unit.m.note=单位介绍 11 | sys.unit.m.address=单位地址 12 | sys.unit.m.telephone=联系电话 -------------------------------------------------------------------------------- /src/main/resources/locales/zh_CN/system.properties: -------------------------------------------------------------------------------- 1 | system.goback=返回 2 | system.add=添加 3 | system.edit=修改 4 | system.delete=删除 5 | system.view=查看 6 | system.enable=启用 7 | system.disable=禁用 8 | system.select=选择 9 | system.send=提 交 10 | system.sending=正在提交... 11 | system.cancel=取 消 12 | system.confirm=确 认 13 | system.success=处理成功 14 | system.error=处理失败 15 | system.paramserror=表单参数错误 16 | system.ok=确定 17 | system.close=取消 18 | system.not.allow=不允许操作 19 | system.submit=提交中... 20 | system.exception=服务器异常 21 | 22 | index.custommenu=常用菜单 23 | index.logout.title=确定退出? 24 | index.menu=菜单 25 | index.links=友情链接 26 | index.home=我的首页 27 | index.setting=设置 28 | index.themes=皮肤 29 | index.layout=布局 30 | index.panel=自定义皮肤和布局 31 | index.user.setting=个人设置 32 | index.user.password=修改密码 33 | index.user.oldpass=原密码 34 | index.user.newpass=新密码 35 | index.user.rightpass=确认密码 36 | index.user.layout=页面布局 37 | index.user.mode=加载方式 38 | index.notifications.see=查看更多 39 | index.notifications.title=站内消息通知 40 | 41 | login.title=系统登录 42 | login.username=用户名 43 | login.password=密码 44 | login.captcha=验证码 45 | login.rememberme=记住 46 | login.foget=忘记密码 47 | login.submit=登录 48 | login.register=注册 49 | login.load=正在登录... 50 | login.success=登录成功,正在跳转首页... 51 | login.error.locked=帐号被锁定 52 | login.error.captcha=验证码错误 53 | login.error.user=用户名或密码错误 54 | login.error.system=系统错误 55 | login.error.verifycode=请输入验证码 56 | login.thirdparty=第三方登录 57 | login.logout=退出登录 58 | 59 | globals.button.add=新 增 60 | globals.button.edit=编 辑 61 | globals.button.update=修 改 62 | globals.button.delete=删 除 63 | globals.button.delete.more=删除选中 64 | globals.button.delete.tip=正在删除.. 65 | globals.button.delete.select=请先选择要删除的项! 66 | globals.button.delete.notice=删除后无法恢复,确定删除吗? 67 | globals.button.detail=查 看 68 | globals.button.confirm=确 定 69 | globals.button.confirm.tip=正在保存... 70 | globals.button.submit=提 交 71 | globals.button.submit.tip=正在提交... 72 | globals.button.cancel=取 消 73 | globals.button.cancel.tip=正在取消... 74 | globals.button.back=返 回 75 | globals.button.ok=知道了 76 | globals.button.enable=启 用 77 | globals.button.disable=禁 用 78 | 79 | globals.table.column.operation=操作 80 | globals.table.column.true=是 81 | globals.table.column.false=否 -------------------------------------------------------------------------------- /src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | [%-5level] %d{HH:mm:ss.SSS} [%thread] %logger - %msg%n 7 | 8 | 9 | 10 | 11 | 12 | ./logs/mini-%d{yyyy-MM-dd}.log 13 | 15 14 | 15 | 16 | [%-5level] %d{HH:mm:ss.SSS} %logger - %msg%n 17 | 18 | 19 | 20 | 21 | 22 | 23 | 0 24 | 25 | 256 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/css/common.css: -------------------------------------------------------------------------------- 1 | [v-cloak] { 2 | display: none 3 | } 4 | 5 | .ie-must-go-die { 6 | position: fixed; 7 | left: 0; 8 | top: 0; 9 | right: 0; 10 | bottom: 0; 11 | } 12 | 13 | .ie-must-go-die .ie-container { 14 | position: absolute; 15 | top: 40%; 16 | left: 33%; 17 | text-align: center; 18 | color: #000; 19 | } 20 | 21 | .ie-must-go-die .ie-container h1 { 22 | font-size: 28px; 23 | margin-bottom: 36px; 24 | } 25 | 26 | .ie-must-go-die .ie-container p { 27 | font-size: 16px; 28 | line-height: 24px; 29 | margin-bottom: 16px; 30 | } 31 | 32 | .ie-must-go-die .ie-container a { 33 | display: block; 34 | color: inherit; 35 | } 36 | 37 | .ie-must-go-die .ie-container a:hover { 38 | text-decoration: underline; 39 | } 40 | 41 | .ie-must-go-die .ie-container a:visited { 42 | color: inherit; 43 | } 44 | .button-delete-color { 45 | color: #da3e16; 46 | } -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/fontawesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/fontawesome/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/fontawesome/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/themify/themify.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/themify/themify.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/themify/themify.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/themify/themify.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/fonts/themify/themify.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/fonts/themify/themify.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/banner.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/asp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/asp.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/aspx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/aspx.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/avi.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/avi.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/bmp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/bmp.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/chm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/chm.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/css.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/css.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/default.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/doc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/doc.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/docx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/docx.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/exe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/exe.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/fla.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/fla.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/flv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/flv.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/folder.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/gif.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/html.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/html.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/jpg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/jpg.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/js.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/js.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/jsp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/jsp.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/mdb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/mdb.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/mov.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/mov.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/mp3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/mp3.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/mp4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/mp4.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/mv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/mv.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/none.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/none.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/pdf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/pdf.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/php.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/php.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/png.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/png.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/ppt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/ppt.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/psd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/psd.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/rar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/rar.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/rm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/rm.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/swf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/swf.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/tpl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/tpl.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/txt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/txt.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/unknown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/unknown.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/wmp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/wmp.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/wmv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/wmv.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/xls.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/xls.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/filetype/zip.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/filetype/zip.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/flags/cn.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/flags/es.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/flags/fr.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/flags/us.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/flags/za.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/loading.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/login_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/login_bg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/logo.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/logoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/logoa.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/notice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/notice.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/panel/boxed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/panel/boxed.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/panel/scroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/panel/scroll.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/panel/small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/img/panel/small.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/svg/alipay.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/svg/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/img/svg/wechat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/js/offscreen.js: -------------------------------------------------------------------------------- 1 | var offscreen = function() { 2 | var container = $(".app"), canvasDirection, direction, rapidClick = false; 3 | function hide() { 4 | container.removeClass("move-left move-right"); 5 | canvasDirection = ""; 6 | setTimeout(function() { 7 | container.removeClass("offscreen"); 8 | rapidClick = false; 9 | }, 300); 10 | } 11 | function toggle(direction) { 12 | if (direction !== undefined && direction === "rtl") { 13 | container.addClass("offscreen move-right").removeClass("move-left"); 14 | canvasDirection = "rtl"; 15 | } else { 16 | container.addClass("offscreen move-left").removeClass("move-right"); 17 | canvasDirection = "ltr"; 18 | } 19 | } 20 | function fixSlimScroll() { 21 | if (!$.browser.mobile && !sublime.checkBreakout()) { 22 | if (canvasDirection === "ltr") { 23 | if ($(".offscreen-left").find(".slimScrollDiv").length !== 0) { 24 | $(".offscreen-left").find(".main-navigation, .slimscroll") 25 | .slimScroll({ 26 | height : 'auto' 27 | }); 28 | } 29 | } 30 | if (canvasDirection === "rtl") { 31 | if ($(".offscreen-right").find(".slimScrollDiv").length !== 0) { 32 | $(".offscreen-right").find(".main-navigation, .slimscroll") 33 | .slimScroll({ 34 | height : 'auto' 35 | }); 36 | } 37 | } 38 | } 39 | } 40 | function events() { 41 | $("[data-toggle=offscreen]").on("click", function(e) { 42 | $("#topnav").toggleClass("hidden-xs"); 43 | /*e.preventDefault(); 44 | e.stopPropagation(); 45 | direction = $(this).data("move"); 46 | if (direction === canvasDirection) { 47 | hide(); 48 | return; 49 | } 50 | if (rapidClick) { 51 | return; 52 | } 53 | rapidClick = true; 54 | toggle(direction); 55 | fixSlimScroll();*/ 56 | }); 57 | $(".exit-offscreen").on("click", function(e) { 58 | e.preventDefault(); 59 | e.stopPropagation(); 60 | hide(); 61 | }); 62 | } 63 | return { 64 | hide : hide, 65 | init : function() { 66 | events(); 67 | } 68 | }; 69 | }(); 70 | $(function() { 71 | "use strict"; 72 | offscreen.init(); 73 | }); -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/element-ui/lib/theme-chalk/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/element-ui/lib/theme-chalk/fonts/element-icons.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/element-ui/lib/theme-chalk/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/element-ui/lib/theme-chalk/fonts/element-icons.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular (1).eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular (1).eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/myframe/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/0.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/bface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/bface.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/cface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/cface.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/fface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/fface.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/jxface2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/jxface2.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/neweditor-tab-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/neweditor-tab-bg.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/tface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/tface.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/wface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/wface.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/yface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/emotion/images/yface.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/formula/formula.css: -------------------------------------------------------------------------------- 1 | .edui-popup-formula .edui-formula-wrapper { 2 | padding: 15px; 3 | } 4 | .edui-popup-formula .edui-formula-wrapper .edui-tab-nav{ 5 | height: auto; 6 | *height: 31px; 7 | } 8 | .edui-popup-formula .edui-formula-wrapper .edui-tab-text { 9 | font-size: 12px; 10 | } 11 | .edui-popup-formula .edui-formula-wrapper .edui-formula-clearboth { 12 | clear: both; 13 | width: 0; 14 | height: 0; 15 | } 16 | .edui-popup-formula .edui-formula-wrapper .edui-tab-pane ul { 17 | margin: 0px; 18 | padding: 0px; 19 | } 20 | .edui-popup-formula .edui-formula-wrapper .edui-tab-content { 21 | padding: 5px 0px 0px 0px; 22 | } 23 | .edui-popup-formula .edui-formula-wrapper .edui-tab-pane .edui-formula-latex-item { 24 | display: block; 25 | float: left; 26 | margin: 0px 3px 3px 0px; 27 | width: 30px; 28 | height: 30px; 29 | border:1px solid #cccccc; 30 | background-image: url("images/formula.png"); 31 | cursor: pointer; 32 | } -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/formula/images/formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/formula/images/formula.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/image/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/image/images/close.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/image/images/upload1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/image/images/upload1.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/image/images/upload2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/image/images/upload2.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/center_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/center_focus.jpg -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/left_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/left_focus.jpg -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/none_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/none_focus.jpg -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/right_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/dialogs/video/images/right_focus.jpg -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/addimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/addimage.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/alldeletebtnhoverskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/alldeletebtnhoverskin.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/alldeletebtnupskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/alldeletebtnupskin.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/background.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/button.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/copy.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/deletedisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/deletedisable.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/deleteenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/deleteenable.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/imglabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/imglabel.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/listbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/listbackground.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/localimage.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/music.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotateleftdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotateleftdisable.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotateleftenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotateleftenable.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotaterightdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotaterightdisable.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotaterightenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/rotaterightenable.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/en/images/upload.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/copy.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/imglabel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/imglabel.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/localimage.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/music.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/lang/zh-cn/images/upload.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/caret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/caret.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/close.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/icons.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/icons.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/ok.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/ok.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/pop-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/pop-bg.png -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/spacer.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/videologo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/themes/default/images/videologo.gif -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.otf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/Symbola.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneral-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneral-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneral-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneral-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneral-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneral-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbol-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbol-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbol-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbol-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbol-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbol-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbolita-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbolita-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbolita-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbolita-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbolita-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralbolita-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralitalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralitalic-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralitalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralitalic-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralitalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/assets/platform/plugins/umeditor/third-party/mathquill/font/stixgeneral-bundle/stixgeneralitalic-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/error/403.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 拒绝访问 6 | 7 | 8 | 9 |

对不起,您没有权限访问该页面。

10 | 11 | 12 | -------------------------------------------------------------------------------- /src/main/resources/static/error/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 页面找不到 6 | 7 | 8 | 9 |

页面找不到

10 |

对不起,您访问的页面不存在。

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/main/resources/static/error/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 服务器异常 6 | 7 | 8 | 9 |

服务器异常

10 |

对不起,服务器异常,请联系管理员。

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/views/layouts/blank.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wizzercn/NutzWk/11c712a07b11ffd274d92ba629e6b970a2e35a42/src/main/resources/views/layouts/blank.html -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/403.html: -------------------------------------------------------------------------------- 1 | 4 |
5 | 8 | 9 |
10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/404.html: -------------------------------------------------------------------------------- 1 | 4 |
5 | 8 | 9 |
10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/500.html: -------------------------------------------------------------------------------- 1 | 4 |
5 | 8 | 9 |
10 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/left.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 |
  • class="active" class="open"> 7 | href="${base}${firstMenu.href!}${firstMenu.href!}" target="${firstMenu.target!}"${firstMenu.target!} href="javascript:;" class="active" class="active"> 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ${firstMenu.name}${firstMenu.aliasName} 17 | 18 | 19 | 31 | 32 |
  • 33 | 34 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/msg/user/detailAll.html: -------------------------------------------------------------------------------- 1 | 4 | 10 | 11 |
    12 |
    13 |
    14 |
    15 |
    16 | 17 |
    18 |

    ${obj.title!}

    19 |
    20 |
    21 | ${@date.getDate(obj.sendAt)} 22 |
    23 |
    24 |
    25 | ${obj.note!} 26 |
    27 | 28 | 消息不存在,或您没有阅读权限! 29 | 30 |
    31 |
    32 |
    33 |
    34 |
    35 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/msg/user/detailRead.html: -------------------------------------------------------------------------------- 1 | 4 | 10 | 11 |
    12 |
    13 |
    14 |
    15 |
    16 | 17 |
    18 |

    ${obj.title!}

    19 |
    20 |
    21 | ${@date.getDate(obj.sendAt)} 22 |
    23 |
    24 |
    25 | ${obj.note!} 26 |
    27 | 28 | 消息不存在,或您没有阅读权限! 29 | 30 |
    31 |
    32 |
    33 |
    34 |
    35 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/msg/user/detailUnread.html: -------------------------------------------------------------------------------- 1 | 4 | 10 | 11 |
    12 |
    13 |
    14 |
    15 |
    16 | 17 |
    18 |

    ${obj.title!}

    19 |
    20 |
    21 | ${@date.getDate(obj.sendAt)} 22 |
    23 |
    24 |
    25 | ${obj.note!} 26 |
    27 | 28 | 消息不存在,或您没有阅读权限! 29 | 30 |
    31 |
    32 |
    33 |
    34 |
    35 | -------------------------------------------------------------------------------- /src/main/resources/views/platform/sys/noPermission.html: -------------------------------------------------------------------------------- 1 | 4 |
    5 | 8 | 9 |
    10 | 15 | 16 | --------------------------------------------------------------------------------