├── java └── bdwl │ ├── dfbs-vm │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── application-dfbs-vm.yml │ │ │ └── java │ │ │ └── com │ │ │ └── liaoin │ │ │ └── dfbs │ │ │ ├── dao │ │ │ └── QrCodeContentRecordRepository.java │ │ │ ├── service │ │ │ ├── QrCodeContentRecordService.java │ │ │ └── impl │ │ │ │ └── QrCodeContentRecordServiceImpl.java │ │ │ ├── utils │ │ │ └── TrustAllCerts.java │ │ │ ├── bean │ │ │ ├── DfbsGoods.java │ │ │ ├── DfbsAssetInfo.java │ │ │ ├── RequestResult.java │ │ │ └── QrCodeContentRecord.java │ │ │ ├── test │ │ │ └── DfbsTest.java │ │ │ ├── constant │ │ │ └── DfbsConstant.java │ │ │ └── message │ │ │ └── DfbsResult.java │ └── pom.xml │ ├── wechat │ └── src │ │ └── main │ │ ├── resources │ │ ├── static │ │ │ └── assets │ │ │ │ ├── css │ │ │ │ ├── user.css │ │ │ │ ├── font │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ └── fontawesome-webfont.woff │ │ │ │ └── goods.css │ │ │ │ ├── images │ │ │ │ ├── 选择优惠券.png │ │ │ │ ├── ok-icon.png │ │ │ │ ├── gd-head-bg.jpg │ │ │ │ ├── pay-ok-icon.png │ │ │ │ ├── pm-wx-icon.png │ │ │ │ ├── pm-ye-icon.png │ │ │ │ ├── right-arrow.png │ │ │ │ ├── shop-icon.png │ │ │ │ ├── pay-fail-icon.png │ │ │ │ ├── uc-card-icon.png │ │ │ │ ├── uc-money-icon.png │ │ │ │ ├── uc-note-icon.png │ │ │ │ ├── uc-user-icon.png │ │ │ │ ├── balance-head-bg.png │ │ │ │ ├── choosecp-item-bg.png │ │ │ │ ├── coupon-item-bg.png │ │ │ │ └── user-default-icon.png │ │ │ │ ├── test │ │ │ │ ├── gd-goods.jpg │ │ │ │ ├── goods1.jpg │ │ │ │ ├── goods2.jpg │ │ │ │ ├── goods3.jpg │ │ │ │ ├── goods4.jpg │ │ │ │ ├── goods5.jpg │ │ │ │ └── js-goods.jpg │ │ │ │ └── js │ │ │ │ ├── layer2.2 │ │ │ │ └── skin │ │ │ │ │ └── default │ │ │ │ │ ├── icon.png │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ └── loading-2.gif │ │ │ │ ├── common.js │ │ │ │ ├── constant.js │ │ │ │ ├── user │ │ │ │ ├── personal.js │ │ │ │ ├── security.js │ │ │ │ └── index.js │ │ │ │ ├── lang │ │ │ │ ├── en.js │ │ │ │ └── zh-CN.js │ │ │ │ ├── pay │ │ │ │ └── choose.js │ │ │ │ └── order │ │ │ │ └── index.js │ │ ├── application.yml │ │ └── wechat-log.xml │ │ ├── java │ │ └── com │ │ │ └── liaoin │ │ │ ├── annotation │ │ │ ├── LoadGoods.java │ │ │ ├── LoadWeiXinUser.java │ │ │ └── LoadQrCodeContentRecord.java │ │ │ ├── runner │ │ │ └── StartupRunner.java │ │ │ ├── WechatApplication.java │ │ │ ├── controller │ │ │ ├── RechargeController.java │ │ │ ├── CouponController.java │ │ │ ├── WeChatCallController.java │ │ │ ├── OrderController.java │ │ │ ├── IndexController.java │ │ │ └── UserController.java │ │ │ ├── resolvers │ │ │ ├── GoodsArgumentResolver.java │ │ │ ├── WeiXinUserArgumentResolver.java │ │ │ └── QrCodeContentRecordArgumentResolver.java │ │ │ ├── filter │ │ │ └── ApiFilter.java │ │ │ └── interceptor │ │ │ └── AuthorizationInterceptor.java │ │ └── webapp │ │ └── WEB-INF │ │ ├── jsp │ │ └── header.jsp │ │ ├── Pay │ │ ├── fail.jsp │ │ ├── ok.jsp │ │ └── choose.jsp │ │ └── Goods │ │ └── info.jsp │ ├── service-wechat │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── application-service-wechat.yml │ │ │ └── java │ │ │ └── com │ │ │ └── liaoin │ │ │ ├── dao │ │ │ ├── CouponRepository.java │ │ │ ├── PushUserRepository.java │ │ │ ├── ShippingNoticeRepository.java │ │ │ ├── AssetInfoRepository.java │ │ │ ├── RechargeAmountRepository.java │ │ │ ├── WeiXinUserRepository.java │ │ │ ├── GoodsRepository.java │ │ │ ├── UserCouponRepository.java │ │ │ └── RechargeRecordRepository.java │ │ │ ├── service │ │ │ ├── ShippingNoticeService.java │ │ │ ├── AssetInfoService.java │ │ │ ├── RechargeService.java │ │ │ ├── PushUserService.java │ │ │ ├── UserCouponService.java │ │ │ ├── RechargeRecordService.java │ │ │ ├── RechargeAmountService.java │ │ │ ├── WeiXinUserService.java │ │ │ ├── GoodsService.java │ │ │ ├── OrderService.java │ │ │ └── impl │ │ │ │ ├── AssetInfoServiceImpl.java │ │ │ │ └── ShippingNoticeServiceImpl.java │ │ │ ├── Enum │ │ │ ├── PayType.java │ │ │ ├── CouponStatus.java │ │ │ └── OrderStatus.java │ │ │ └── bean │ │ │ ├── RechargeAmount.java │ │ │ ├── PushUser.java │ │ │ ├── AssetInfo.java │ │ │ ├── UserCoupon.java │ │ │ ├── Coupon.java │ │ │ ├── ShippingNotice.java │ │ │ ├── RechargeRecord.java │ │ │ ├── WeiXinUser.java │ │ │ └── Goods.java │ └── pom.xml │ ├── wechat-code-util │ └── src │ │ └── main │ │ ├── resources │ │ └── application-wechat-code-util.yml │ │ └── java │ │ └── com │ │ └── liaoin │ │ ├── wechat │ │ ├── template │ │ │ ├── TemplateData.java │ │ │ └── WechatTemplate.java │ │ ├── WeChatAccessToken.java │ │ ├── AccessToken.java │ │ └── UserInfo.java │ │ ├── test │ │ └── Test.java │ │ ├── util │ │ ├── Base64.java │ │ └── Decript.java │ │ └── wxpay │ │ ├── MyX509TrustManager.java │ │ ├── util │ │ └── MD5Util.java │ │ └── PayCommonUtil.java │ ├── service-backstage │ ├── src │ │ └── main │ │ │ ├── resources │ │ │ └── application-service-backstage.yml │ │ │ └── java │ │ │ └── com │ │ │ └── liaoin │ │ │ ├── dao │ │ │ ├── RoleRepository.java │ │ │ ├── CouponRepository.java │ │ │ ├── MenuRepository.java │ │ │ ├── AdminRepository.java │ │ │ ├── AdminRoleRepository.java │ │ │ └── RolePowerRepository.java │ │ │ ├── service │ │ │ ├── CouponService.java │ │ │ ├── AdminService.java │ │ │ ├── MenuService.java │ │ │ └── RoleService.java │ │ │ ├── Enum │ │ │ ├── Status.java │ │ │ ├── CheckStatus.java │ │ │ └── RoleStatus.java │ │ │ └── bean │ │ │ ├── RolePower.java │ │ │ ├── AdminRole.java │ │ │ ├── Admin.java │ │ │ ├── Role.java │ │ │ └── Menu.java │ └── pom.xml │ ├── backstage │ └── src │ │ └── main │ │ ├── resources │ │ ├── static │ │ │ ├── images │ │ │ │ ├── loading.gif │ │ │ │ ├── loadingbg.png │ │ │ │ └── login │ │ │ │ │ ├── bg-1.jpg │ │ │ │ │ ├── spacer.gif │ │ │ │ │ ├── login_11.jpg │ │ │ │ │ ├── login_14.jpg │ │ │ │ │ ├── login_3.jpg │ │ │ │ │ ├── login_6.jpg │ │ │ │ │ └── login_9.jpg │ │ │ ├── assets │ │ │ │ └── images │ │ │ │ │ ├── btn.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── logo-18.png │ │ │ │ │ ├── upload_del.png │ │ │ │ │ ├── upload_pic.jpg │ │ │ │ │ ├── tv-expandable.gif │ │ │ │ │ ├── tv-collapsable.gif │ │ │ │ │ └── default-thumbnail.png │ │ │ ├── js │ │ │ │ ├── datePicker │ │ │ │ │ └── bg.png │ │ │ │ ├── artDialog │ │ │ │ │ └── skins │ │ │ │ │ │ ├── blue │ │ │ │ │ │ ├── bg.png │ │ │ │ │ │ ├── bg2.png │ │ │ │ │ │ ├── ie6 │ │ │ │ │ │ │ ├── e.png │ │ │ │ │ │ │ ├── n.png │ │ │ │ │ │ │ ├── s.png │ │ │ │ │ │ │ ├── w.png │ │ │ │ │ │ │ ├── ne.png │ │ │ │ │ │ │ ├── nw.png │ │ │ │ │ │ │ ├── se.png │ │ │ │ │ │ │ ├── sw.png │ │ │ │ │ │ │ ├── close.png │ │ │ │ │ │ │ └── close.hover.png │ │ │ │ │ │ ├── bg_css3.png │ │ │ │ │ │ └── bg_css3_2.png │ │ │ │ │ │ └── icons │ │ │ │ │ │ ├── error.png │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── succeed.png │ │ │ │ │ │ ├── warning.png │ │ │ │ │ │ ├── face-sad.png │ │ │ │ │ │ ├── question.png │ │ │ │ │ │ └── face-smile.png │ │ │ │ ├── layer2.2 │ │ │ │ │ └── skin │ │ │ │ │ │ └── default │ │ │ │ │ │ ├── icon.png │ │ │ │ │ │ ├── icon-ext.png │ │ │ │ │ │ ├── loading-0.gif │ │ │ │ │ │ ├── loading-1.gif │ │ │ │ │ │ └── loading-2.gif │ │ │ │ └── treeTable │ │ │ │ │ ├── images │ │ │ │ │ ├── toggle-expand-dark.png │ │ │ │ │ └── toggle-collapse-dark.png │ │ │ │ │ └── treeTable.css │ │ │ ├── simpleboot │ │ │ │ ├── css │ │ │ │ │ ├── simplebootadminindex-ie.css │ │ │ │ │ └── simplebootadmin.css │ │ │ │ ├── themes │ │ │ │ │ ├── flat │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── loadingbg.png │ │ │ │ │ │ └── img │ │ │ │ │ │ │ ├── glyphicons-halflings.png │ │ │ │ │ │ │ └── glyphicons-halflings-white.png │ │ │ │ │ └── bluesky │ │ │ │ │ │ ├── loading.gif │ │ │ │ │ │ ├── loadingbg.png │ │ │ │ │ │ └── img │ │ │ │ │ │ ├── glyphicons-halflings.png │ │ │ │ │ │ └── glyphicons-halflings-white.png │ │ │ │ └── font-awesome │ │ │ │ │ ├── 4.2.0 │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ └── fontawesome-webfont.woff │ │ │ │ │ └── 4.4.0 │ │ │ │ │ └── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── css │ │ │ │ └── simplebootadmin.css │ │ │ └── font-awesome │ │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ ├── 4.2.0 │ │ │ │ └── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ └── fontawesome-webfont.woff │ │ │ │ └── 4.4.0 │ │ │ │ └── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ ├── application.yml │ │ └── backstage-log.xml │ │ ├── java │ │ └── com │ │ │ └── liaoin │ │ │ ├── annotation │ │ │ └── LoadAdmin.java │ │ │ ├── BackstageApplication.java │ │ │ ├── controller │ │ │ ├── IndexController.java │ │ │ ├── LoginController.java │ │ │ ├── WeiXinUserController.java │ │ │ └── MainController.java │ │ │ ├── filter │ │ │ └── ApiFilter.java │ │ │ ├── resolvers │ │ │ └── AdminArgumentResolver.java │ │ │ └── interceptor │ │ │ ├── WebAppConfigurer.java │ │ │ └── AuthorizationInterceptor.java │ │ └── webapp │ │ └── WEB-INF │ │ ├── Main │ │ └── main.jsp │ │ ├── jsp │ │ ├── page.jsp │ │ └── header.jsp │ │ ├── PushUser │ │ ├── index.jsp │ │ └── users.jsp │ │ ├── Menu │ │ └── index.jsp │ │ ├── RechargeAmount │ │ └── index.jsp │ │ ├── Role │ │ └── index.jsp │ │ ├── WeiXinUser │ │ └── index.jsp │ │ ├── Admin │ │ └── index.jsp │ │ └── Coupon │ │ └── users.jsp │ ├── service-redis │ ├── src │ │ └── main │ │ │ └── resources │ │ │ └── application-service-redis.yml │ └── pom.xml │ ├── service │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── liaoin │ │ │ ├── constant │ │ │ └── Constant.java │ │ │ ├── util │ │ │ ├── StringUtils.java │ │ │ ├── MD5Encoder.java │ │ │ └── DateFormat.java │ │ │ └── Enum │ │ │ └── Result.java │ │ └── resources │ │ └── application-dao.yml │ └── pom.xml └── 文档 ├── 服务器.txt ├── 验收文档.docx ├── 二期 ├── 博达物联二期需求.txt └── 无人货柜移动购物平台需求(二期).xlsx ├── 无人货柜移动购物平台需求-新.xlsx ├── 无人货柜移动购物平台需求.xlsx ├── 硬件接口 ├── 会员支付接口3.0.pdf └── 智能售货机平台API接口-v0.9(2).pdf ├── 无人货柜购物平台(一期)项目开发合同.docx └── 智能售货机平台会员支付接口3.1(20181106).pdf /java/bdwl/dfbs-vm/src/main/resources/application-dfbs-vm.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/css/user.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /文档/服务器.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/服务器.txt -------------------------------------------------------------------------------- /文档/验收文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/验收文档.docx -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/resources/application-service-wechat.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/resources/application-wechat-code-util.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/resources/application-service-backstage.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /文档/二期/博达物联二期需求.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/二期/博达物联二期需求.txt -------------------------------------------------------------------------------- /文档/无人货柜移动购物平台需求-新.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/无人货柜移动购物平台需求-新.xlsx -------------------------------------------------------------------------------- /文档/无人货柜移动购物平台需求.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/无人货柜移动购物平台需求.xlsx -------------------------------------------------------------------------------- /文档/硬件接口/会员支付接口3.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/硬件接口/会员支付接口3.0.pdf -------------------------------------------------------------------------------- /文档/二期/无人货柜移动购物平台需求(二期).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/二期/无人货柜移动购物平台需求(二期).xlsx -------------------------------------------------------------------------------- /文档/无人货柜购物平台(一期)项目开发合同.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/无人货柜购物平台(一期)项目开发合同.docx -------------------------------------------------------------------------------- /文档/硬件接口/智能售货机平台API接口-v0.9(2).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/硬件接口/智能售货机平台API接口-v0.9(2).pdf -------------------------------------------------------------------------------- /文档/智能售货机平台会员支付接口3.1(20181106).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/文档/智能售货机平台会员支付接口3.1(20181106).pdf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/loading.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/btn.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/loadingbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/loadingbg.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/bg-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/bg-1.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/datePicker/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/datePicker/bg.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/选择优惠券.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/选择优惠券.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/gd-goods.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/gd-goods.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/goods1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/goods1.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/goods2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/goods2.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/goods3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/goods3.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/goods4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/goods4.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/goods5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/goods5.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/test/js-goods.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/test/js-goods.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/logo.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/spacer.gif -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/ok-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/ok-icon.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/favicon.ico -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/loading.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/logo-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/logo-18.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/login_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/login_11.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/login_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/login_14.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/login_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/login_3.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/login_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/login_6.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/images/login/login_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/images/login/login_9.jpg -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/css/simplebootadminindex-ie.css: -------------------------------------------------------------------------------- 1 | @CHARSET "UTF-8"; 2 | .sidebar { 3 | *left: 0 4 | } 5 | 6 | .sidebar:before { 7 | display: none 8 | } -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/gd-head-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/gd-head-bg.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/pay-ok-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/pay-ok-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/pm-wx-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/pm-wx-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/pm-ye-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/pm-ye-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/right-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/right-arrow.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/shop-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/shop-icon.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/upload_del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/upload_del.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/upload_pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/upload_pic.jpg -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/css/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/css/font/FontAwesome.otf -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/pay-fail-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/pay-fail-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/uc-card-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/uc-card-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/uc-money-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/uc-money-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/uc-note-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/uc-note-icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/uc-user-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/uc-user-icon.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/tv-expandable.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/tv-expandable.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg2.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/balance-head-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/balance-head-bg.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/choosecp-item-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/choosecp-item-bg.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/coupon-item-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/coupon-item-bg.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/tv-collapsable.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/tv-collapsable.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/css/simplebootadmin.css: -------------------------------------------------------------------------------- 1 | @CHARSET "UTF-8"; 2 | 3 | .input-order{width:30px;} 4 | .wrap { 5 | padding: 20px 20px 70px; 6 | } 7 | .table td {font-size:12px;} 8 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/e.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/n.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/s.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/w.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/icon.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/images/user-default-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/images/user-default-icon.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/assets/images/default-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/assets/images/default-thumbnail.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg_css3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg_css3.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/ne.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/nw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/nw.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/se.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/sw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/sw.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/error.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/loading.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/succeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/succeed.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/warning.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/loading.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/loadingbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/loadingbg.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/css/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/css/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/css/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/css/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg_css3_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/bg_css3_2.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/close.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/face-sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/face-sad.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/question.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/icon-ext.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/loading-0.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/loading-1.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/layer2.2/skin/default/loading-2.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/css/simplebootadmin.css: -------------------------------------------------------------------------------- 1 | @CHARSET "UTF-8"; 2 | 3 | .input-order{width:30px;} 4 | .wrap { 5 | padding: 20px 20px 70px; 6 | } 7 | .table td {font-size:12px;} 8 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/loading.gif -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/css/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/css/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/icon.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/face-smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/icons/face-smile.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/loadingbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/loadingbg.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/icon-ext.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/close.hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/artDialog/skins/blue/ie6/close.hover.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/treeTable/images/toggle-expand-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/treeTable/images/toggle-expand-dark.png -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/loading-0.gif -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/loading-1.gif -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/wechat/src/main/resources/static/assets/js/layer2.2/skin/default/loading-2.gif -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/treeTable/images/toggle-collapse-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/js/treeTable/images/toggle-collapse-dark.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.2.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/font-awesome/4.4.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/flat/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.2.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/font-awesome/4.4.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragonxu/bdwl/HEAD/java/bdwl/backstage/src/main/resources/static/simpleboot/themes/bluesky/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/CouponRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Coupon; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface CouponRepository extends JpaRepository { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/common.js: -------------------------------------------------------------------------------- 1 | var _SG = { 2 | "loadSiteSetting": function(){ 3 | // 载入站点设置 4 | var fsize = $(window).width() * 100 / 750; 5 | var autoFixStyle = ''; 6 | document.write(autoFixStyle); 7 | } 8 | }; -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/ShippingNoticeService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.ShippingNotice; 4 | import com.liaoin.message.OperateResult; 5 | 6 | public interface ShippingNoticeService { 7 | 8 | public OperateResult shippingNotice(ShippingNotice shippingNotice); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/PushUserRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.PushUser; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface PushUserRepository extends JpaRepository { 7 | 8 | PushUser findByWeiXinUserId(String weiXinUserId); 9 | } 10 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/ShippingNoticeRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.AssetInfo; 4 | import com.liaoin.bean.ShippingNotice; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | public interface ShippingNoticeRepository extends JpaRepository { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/constant.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by Administrator on 2017/5/9 0009. 3 | */ 4 | 5 | //充值接口 6 | var RECHARGE_API = "/Recharge/recharge"; 7 | 8 | //余额支付接口 9 | var PAY_WITH_BALANCE = "/Pay/payWithBalance"; 10 | 11 | //微信支付接口 12 | var PAY_WITH_WECHAT = "/Pay/payWithWechat"; 13 | 14 | //删除订单 15 | var ORDER_DELETE = "/Order/delete"; 16 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/dao/RoleRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Role; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface RoleRepository extends JpaRepository { 7 | 8 | Role findByName(String name); 9 | 10 | Role findByNameAndIdNot(String name, String id); 11 | } 12 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/user/personal.js: -------------------------------------------------------------------------------- 1 | /*个人信息页面*/ 2 | var _pPersonal = { 3 | "prepare": function(){ 4 | var uinfo = _SG["user"].realInfo; 5 | $("#personalOpListBox").html(template("op-list-tpl", {"c": uinfo})); 6 | } 7 | }; 8 | _SG["doneReadyer"].addFunc(function(){ 9 | _pPersonal.prepare(); 10 | }); 11 | _SG["isDoneFuncReady"] = true; 12 | _SG.doDoneAction(); -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/user/security.js: -------------------------------------------------------------------------------- 1 | /*安全设置页面*/ 2 | var _pSecurity = { 3 | "prepare": function(){ 4 | var uinfo = _SG["user"].realInfo; 5 | $("#securityOpListBox").html(template("op-list-tpl", {"c": uinfo})); 6 | } 7 | }; 8 | _SG["doneReadyer"].addFunc(function(){ 9 | _pSecurity.prepare(); 10 | }); 11 | _SG["isDoneFuncReady"] = true; 12 | _SG.doDoneAction(); -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/AssetInfoRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.AssetInfo; 4 | import com.liaoin.bean.Coupon; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | public interface AssetInfoRepository extends JpaRepository { 8 | 9 | AssetInfo findByAssetId(String assetId); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/RechargeAmountRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.RechargeAmount; 4 | import com.liaoin.bean.WeiXinUser; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | 7 | import java.util.List; 8 | 9 | public interface RechargeAmountRepository extends JpaRepository { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/lang/en.js: -------------------------------------------------------------------------------- 1 | _SG["LangTxts"] = { 2 | "time": "Time", 3 | "play-team": "Play Team", 4 | "ticket-price": "Price", 5 | "address": "Address", 6 | "play-theatre": "Play Theatre", 7 | "buy-choose-seat": "Seat", 8 | "play-desc": "Description", 9 | "more-desc": "More", 10 | "back-play-list": "Back", 11 | "city": "City", 12 | "time-span": "Time", 13 | }; -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/dao/QrCodeContentRecordRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.dao; 2 | 3 | import com.liaoin.dfbs.bean.QrCodeContentRecord; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | 6 | public interface QrCodeContentRecordRepository extends JpaRepository { 7 | 8 | QrCodeContentRecord findByOrderNo(String orderNo); 9 | } 10 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/dao/CouponRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Coupon; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | public interface CouponRepository extends JpaRepository,JpaSpecificationExecutor { 8 | 9 | 10 | } 11 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/annotation/LoadGoods.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 获取商品ID自定义注解 10 | */ 11 | @Target(ElementType.PARAMETER) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface LoadGoods { 14 | } 15 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/annotation/LoadAdmin.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 获取后台管理员信息自定义注解 10 | */ 11 | @Target(ElementType.PARAMETER) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface LoadAdmin { 14 | } 15 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/annotation/LoadWeiXinUser.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 获取微信用户信息自定义注解 10 | */ 11 | @Target(ElementType.PARAMETER) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface LoadWeiXinUser { 14 | } 15 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/service/QrCodeContentRecordService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.service; 2 | 3 | import com.liaoin.dfbs.bean.QrCodeContentRecord; 4 | 5 | public interface QrCodeContentRecordService { 6 | 7 | public QrCodeContentRecord save(QrCodeContentRecord qrCodeContentRecord); 8 | 9 | public QrCodeContentRecord findById(String id); 10 | 11 | public QrCodeContentRecord findByOrderNo(String orderNo); 12 | } 13 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/annotation/LoadQrCodeContentRecord.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 获取微信用户信息自定义注解 10 | */ 11 | @Target(ElementType.PARAMETER) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface LoadQrCodeContentRecord { 14 | } 15 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/WeiXinUserRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.WeiXinUser; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | public interface WeiXinUserRepository extends JpaRepository,JpaSpecificationExecutor { 8 | 9 | WeiXinUser findByOpenid(String openid); 10 | } 11 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/dao/MenuRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Menu; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | import java.util.List; 8 | 9 | public interface MenuRepository extends JpaRepository,JpaSpecificationExecutor { 10 | 11 | List findByParentId(String parentId); 12 | } 13 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/AssetInfoService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.AssetInfo; 4 | import com.liaoin.message.OperateResult; 5 | 6 | import java.util.List; 7 | 8 | public interface AssetInfoService { 9 | 10 | /** 11 | * 同步售货机信息 12 | */ 13 | public OperateResult synchronization(); 14 | 15 | public AssetInfo findByAssetId(String assetId); 16 | 17 | public List findAll(); 18 | } 19 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/RechargeService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.RechargeRecord; 4 | import com.liaoin.bean.WeiXinUser; 5 | import com.liaoin.message.OperateResult; 6 | 7 | public interface RechargeService { 8 | 9 | public OperateResult recharge(WeiXinUser weiXinUser, String rechargeAmountId, String uri); 10 | 11 | public RechargeRecord findById(String id); 12 | 13 | public OperateResult save(RechargeRecord rechargeRecord); 14 | } 15 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/GoodsRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Coupon; 4 | import com.liaoin.bean.Goods; 5 | import com.liaoin.bean.RechargeRecord; 6 | import org.springframework.data.jpa.repository.JpaRepository; 7 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 8 | 9 | public interface GoodsRepository extends JpaRepository,JpaSpecificationExecutor { 10 | 11 | Goods findByNumber(String number); 12 | } 13 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/UserCouponRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Coupon; 4 | import com.liaoin.bean.UserCoupon; 5 | import org.springframework.data.jpa.repository.JpaRepository; 6 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 7 | 8 | import java.util.List; 9 | 10 | public interface UserCouponRepository extends JpaRepository,JpaSpecificationExecutor { 11 | 12 | void deleteByCoupon(Coupon coupon); 13 | } 14 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8081 3 | spring: 4 | jmx: 5 | default-domain: wechat 6 | profiles: 7 | active: dao 8 | 9 | #配置返回jsp start 10 | # 配置jsp文件的位置,默认位置为:src/main/webapp 11 | mvc: 12 | view: 13 | prefix: /WEB-INF/ 14 | # 配置jsp文件的后缀 15 | suffix: .jsp 16 | thymeleaf: 17 | cache: false 18 | enabled: false 19 | #配置返回jsp end 20 | 21 | #日志配置开始 22 | logging: 23 | file: bdwl/wechat-logs/wechat-logs.log 24 | config: classpath:wechat-log.xml 25 | #日志配置结束 26 | 27 | 28 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8080 3 | spring: 4 | jmx: 5 | default-domain: backstage 6 | profiles: 7 | active: dao 8 | 9 | #配置返回jsp start 10 | # 配置jsp文件的位置,默认位置为:src/main/webapp 11 | mvc: 12 | view: 13 | prefix: /WEB-INF/ 14 | # 配置jsp文件的后缀 15 | suffix: .jsp 16 | thymeleaf: 17 | cache: false 18 | enabled: false 19 | #配置返回jsp end 20 | 21 | #日志配置开始 22 | logging: 23 | file: bdwl/backatage-logs/backatage-logs.log 24 | config: classpath:backstage-log.xml 25 | #日志配置结束 26 | 27 | 28 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/dao/AdminRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.Admin; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | 7 | public interface AdminRepository extends JpaRepository,JpaSpecificationExecutor { 8 | 9 | /** 10 | * 根据用户名查询用户 11 | */ 12 | Admin findByUsername(String username); 13 | 14 | Admin findByUsernameAndIdNot(String username,String id); 15 | } 16 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/PushUserService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.PushUser; 4 | import com.liaoin.message.OperateResult; 5 | import org.springframework.data.domain.Page; 6 | 7 | import java.util.List; 8 | 9 | public interface PushUserService { 10 | 11 | public List findAllLists(); 12 | 13 | public Page queryWithPage(int page, int size); 14 | 15 | public OperateResult deleteById(String id); 16 | 17 | public OperateResult add(String weiXinUserId); 18 | } 19 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/user/index.js: -------------------------------------------------------------------------------- 1 | /*用户首页*/ 2 | var _pUserIndex = { 3 | "prepare": function(){ 4 | var uinfo = _SG["user"].realInfo; 5 | var ubObj = $("#userBaseDetailBox"); 6 | ubObj.find(".user-icon").attr("src", getDisplayPicUrl(uinfo["user_icon"])); 7 | ubObj.find(".name").html(_SG.getSafeData(uinfo["user_name"])); 8 | ubObj.find(".phone").html(_SG.getSafeData(uinfo["phone"])); 9 | } 10 | }; 11 | _SG["doneReadyer"].addFunc(function(){ 12 | _pUserIndex.prepare(); 13 | }); 14 | _SG["isDoneFuncReady"] = true; 15 | _SG.doDoneAction(); -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/UserCouponService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.Enum.CouponStatus; 4 | import com.liaoin.bean.Order; 5 | import com.liaoin.bean.UserCoupon; 6 | 7 | import java.util.Date; 8 | import java.util.List; 9 | 10 | public interface UserCouponService { 11 | 12 | public List findByWhere(String weiXinUserId, CouponStatus couponStatus,Date endDate,Float money); 13 | 14 | public UserCoupon findById(String id); 15 | 16 | public UserCoupon save(UserCoupon userCoupon); 17 | } 18 | -------------------------------------------------------------------------------- /java/bdwl/service-redis/src/main/resources/application-service-redis.yml: -------------------------------------------------------------------------------- 1 | # Redis 配置开始 2 | spring: 3 | # Redis数据库索引(默认为0) 4 | redis: 5 | database: 0 6 | # Redis服务器地址 7 | host: 118.24.72.35 8 | # 连接超时时间(毫秒) 9 | # timeout: 10 10 | # Redis服务器连接端口 11 | port: 6379 12 | # Redis服务器连接密码(默认为空) 13 | password: liaoin666 14 | # 连接池最大连接数(使用负值表示没有限制) 15 | # pool: 16 | # max-active: 8 17 | ## 连接池最大阻塞等待时间(使用负值表示没有限制) 18 | # max-wait: -1 19 | ## 连接池中的最大空闲连接 20 | # max-idle: 8 21 | ## 连接池中的最小空闲连接 22 | # min-idle: 0 23 | 24 | 25 | # Redis 配置结束 26 | 27 | 28 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/RechargeRecordService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.Enum.OrderStatus; 4 | import com.liaoin.bean.RechargeRecord; 5 | import org.springframework.data.domain.Page; 6 | 7 | public interface RechargeRecordService { 8 | 9 | public Page queryWithPage(int page, int size, OrderStatus orderStatus,String beginDate,String endDate); 10 | 11 | public double queryTotalMoney(String beginDate,String endDate); 12 | 13 | public int queryCount(String beginDate,String endDate); 14 | } 15 | -------------------------------------------------------------------------------- /java/bdwl/service/src/main/java/com/liaoin/constant/Constant.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.constant; 2 | 3 | /** 4 | * Created by Administrator on 2016/12/17 0017. 5 | */ 6 | public interface Constant { 7 | 8 | /** 9 | * 分页条数 10 | */ 11 | public interface PageConstant{ 12 | int PAGE_COUNT = 10; 13 | int ADMIN_PAGE_COUNT = 10; 14 | } 15 | 16 | /** 17 | * 文件路径 18 | */ 19 | public interface PATH{ 20 | public static String FILE_UPLOAD_PATH = "/upload"; 21 | //用户资料 22 | public static String USER_DATA_PATH = "Userdata"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/utils/TrustAllCerts.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.utils; 2 | 3 | import javax.net.ssl.X509TrustManager; 4 | import java.security.cert.X509Certificate; 5 | 6 | public class TrustAllCerts implements X509TrustManager { 7 | 8 | 9 | 10 | @Override 11 | public void checkClientTrusted(X509Certificate[] chain, String authType) {} 12 | 13 | @Override 14 | public void checkServerTrusted(X509Certificate[] chain, String authType) {} 15 | 16 | @Override 17 | public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];} 18 | 19 | 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wechat/template/TemplateData.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wechat.template; 2 | 3 | /** 4 | * Created by Administrator on 2017/6/21. 5 | */ 6 | public class TemplateData { 7 | 8 | private String value; 9 | private String color; 10 | 11 | public String getValue() { 12 | return value; 13 | } 14 | 15 | public void setValue(String value) { 16 | this.value = value; 17 | } 18 | 19 | public String getColor() { 20 | return color; 21 | } 22 | 23 | public void setColor(String color) { 24 | this.color = color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /java/bdwl/service/src/main/java/com/liaoin/util/StringUtils.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.util; 2 | 3 | public class StringUtils { 4 | 5 | /** 6 | * 判断字符串是否为空 7 | */ 8 | public static boolean isNull(String str){ 9 | if (null==str || "".equals(str) || "null".equals(str)){ 10 | return true; 11 | }else{ 12 | return false; 13 | } 14 | } 15 | 16 | public static boolean isNotNull(String str){ 17 | if ( null!=str && !"".equals(str) && !"null".equals(str)){ 18 | return true; 19 | }else{ 20 | return false; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/pay/choose.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | $(".one-item").click(function () { 3 | $(".one-item").each(function () { 4 | $(this).removeClass("active"); 5 | }) 6 | $(this).addClass("active"); 7 | $(".choose-btn").attr("value",$(this).attr("value")); 8 | }); 9 | }) 10 | 11 | function choose_btn(div,url) { 12 | var userCouponId = $(div).attr("value"); 13 | if(userCouponId == "" || userCouponId == undefined){ 14 | layer.msg("请选择优惠券"); 15 | }else{ 16 | location.href = url + "?userCouponId="+userCouponId; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/bean/DfbsGoods.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.bean; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class DfbsGoods { 13 | 14 | private String typeName; 15 | 16 | private String number; 17 | 18 | private String name; 19 | 20 | private String fullName; 21 | 22 | private String packingForm; 23 | 24 | private String manufacturer; 25 | 26 | private String price; 27 | 28 | private String imgCdnPath; 29 | } 30 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/test/Test.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.test; 2 | 3 | import com.liaoin.util.DateFormat; 4 | import com.liaoin.wechat.WeChatTemplateUtil; 5 | import org.springframework.boot.SpringApplication; 6 | 7 | import java.net.URLEncoder; 8 | import java.util.Date; 9 | 10 | public class Test { 11 | 12 | public static void main(String[] args) { 13 | // String url = "http://bdwl.cqfuyuan.cn/index"; 14 | // System.out.println(URLEncoder.encode(url)); 15 | WeChatTemplateUtil.sendRechargeSuccessTemplateMessage("o--Z95kr4Jvkh1exKzgE_dhz_flM","会员名称",10,"订单号",DateFormat.stampToDate(new Date().getTime()+"")); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/RechargeAmountService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.RechargeAmount; 4 | import com.liaoin.bean.WeiXinUser; 5 | import com.liaoin.message.OperateResult; 6 | import org.springframework.data.domain.Page; 7 | 8 | import java.util.List; 9 | 10 | public interface RechargeAmountService { 11 | 12 | public List findAll(); 13 | 14 | public Page queryWithPage(int page, int size); 15 | 16 | public OperateResult save(RechargeAmount rechargeAmount); 17 | 18 | public RechargeAmount findById(String id); 19 | 20 | public OperateResult deleteById(String id); 21 | } 22 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wechat/WeChatAccessToken.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wechat; 2 | 3 | /** 4 | * Created by Administrator on 2017/4/6. 5 | */ 6 | public class WeChatAccessToken { 7 | private String access_token; 8 | private String expires_in; 9 | 10 | public String getAccess_token() { 11 | return access_token; 12 | } 13 | 14 | public void setAccess_token(String access_token) { 15 | this.access_token = access_token; 16 | } 17 | 18 | public String getExpires_in() { 19 | return expires_in; 20 | } 21 | 22 | public void setExpires_in(String expires_in) { 23 | this.expires_in = expires_in; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/service/CouponService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.Coupon; 4 | import com.liaoin.bean.Menu; 5 | import com.liaoin.message.OperateResult; 6 | import org.springframework.data.domain.Page; 7 | 8 | public interface CouponService { 9 | 10 | Page queryWithPage(int page, int adminPageCount); 11 | 12 | public OperateResult save(Coupon coupon); 13 | 14 | public Coupon findById(String id); 15 | 16 | public OperateResult deleteById(String id); 17 | 18 | public OperateResult send(String id); 19 | 20 | public OperateResult sendToUser(String couponId, String weiXinUserId); 21 | 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/runner/StartupRunner.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.runner; 2 | 3 | import com.liaoin.service.GoodsService; 4 | import lombok.extern.slf4j.Slf4j; 5 | import org.springframework.beans.factory.annotation.Autowired; 6 | import org.springframework.boot.CommandLineRunner; 7 | import org.springframework.stereotype.Component; 8 | 9 | /** 10 | * 服务启动执行 11 | */ 12 | @Component 13 | @Slf4j 14 | public class StartupRunner implements CommandLineRunner { 15 | 16 | @Autowired 17 | private GoodsService goodsService; 18 | 19 | @Override 20 | public void run(String... args) throws Exception { 21 | log.info("启动加载商品资源"); 22 | goodsService.synchronization(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/bean/DfbsAssetInfo.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | public class DfbsAssetInfo { 14 | 15 | @ApiModelProperty(value = "售货机编号") 16 | private String assetId; 17 | 18 | @ApiModelProperty(value = "厂家信息") 19 | private String vender; 20 | 21 | @ApiModelProperty(value = "区域名称") 22 | private String areaName ; 23 | 24 | @ApiModelProperty(value = "点位名称") 25 | private String siteName ; 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/Enum/Status.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | /** 4 | * Created by Administrator on 2015/1/4 0004. 5 | */ 6 | public enum Status { 7 | BLOCK("显示", 0), 8 | NONE("隐藏", 1); 9 | 10 | Status(String name, int index) { 11 | this.name = name; 12 | this.index = index; 13 | } 14 | 15 | private String name; 16 | private int index; 17 | 18 | public String getName() { 19 | return name; 20 | } 21 | 22 | public void setName(String name) { 23 | this.name = name; 24 | } 25 | 26 | public int getIndex() { 27 | return index; 28 | } 29 | 30 | public void setIndex(int index) { 31 | this.index = index; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/test/DfbsTest.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.test; 2 | 3 | import com.liaoin.dfbs.DfbsVmUtils; 4 | import com.liaoin.dfbs.bean.DfbsGoods; 5 | import okhttp3.Response; 6 | 7 | import java.io.IOException; 8 | import java.util.List; 9 | 10 | public class DfbsTest { 11 | 12 | public static void main(String[] args) throws Exception { 13 | // String url = "http://www.dfbs-vm.com/api/pay/vipCommon/payback/CQBD0001/CQBD0001-000007-153812486166714"; 14 | // String sign = ""; 15 | // DfbsVmUtils.noticeShipment(url,sign); 16 | // List dfbsGoodsList = DfbsVmUtils.getGoodsLists(); 17 | // System.out.println(dfbsGoodsList); 18 | DfbsVmUtils.queryAssetInfo(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/Enum/CheckStatus.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | /** 4 | * Created by Administrator on 2015/1/4 0004. 5 | */ 6 | public enum CheckStatus { 7 | CHECK("选中", 0), 8 | UN_CHECK("未选中",1); 9 | 10 | CheckStatus(String name, int index) { 11 | this.name = name; 12 | this.index = index; 13 | } 14 | 15 | private String name; 16 | private int index; 17 | 18 | public String getName() { 19 | return name; 20 | } 21 | 22 | public void setName(String name) { 23 | this.name = name; 24 | } 25 | 26 | public int getIndex() { 27 | return index; 28 | } 29 | 30 | public void setIndex(int index) { 31 | this.index = index; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/constant/DfbsConstant.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.constant; 2 | 3 | public interface DfbsConstant { 4 | 5 | public String clientId = "2066180927321755"; 6 | 7 | public String key = "xU3ybbB4TtLwVoHdhYgrFGGTREr3YdrY"; 8 | 9 | public int limit = 100000; 10 | 11 | public int cursor = 0; 12 | 13 | public interface URL{ 14 | 15 | public String HTTP_URL = "http://www.dfbs-vm.com"; 16 | 17 | public String getGoodsLists = HTTP_URL + "/osapi/router/goods"; 18 | 19 | public String getAssetInfo = HTTP_URL + "/osapi/router/status"; 20 | } 21 | 22 | public interface Result{ 23 | 24 | public String SUCCESS = "SUCCESS"; 25 | 26 | public String FAIL = "FAIL "; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/Enum/RoleStatus.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | /** 4 | * 角色状态 5 | * Created by Administrator on 2015/1/4 0004. 6 | */ 7 | public enum RoleStatus { 8 | ENABLE("启用", 0), 9 | DISABLE("禁用",1); 10 | 11 | RoleStatus(String name, int index) { 12 | this.name = name; 13 | this.index = index; 14 | } 15 | 16 | private String name; 17 | private int index; 18 | 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | public void setName(String name) { 24 | this.name = name; 25 | } 26 | 27 | public int getIndex() { 28 | return index; 29 | } 30 | 31 | public void setIndex(int index) { 32 | this.index = index; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/dao/AdminRoleRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.AdminRole; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.Query; 6 | 7 | import java.util.List; 8 | 9 | public interface AdminRoleRepository extends JpaRepository { 10 | 11 | void deleteByAdminId(String adminId); 12 | 13 | void deleteByRoleId(String roleId); 14 | 15 | AdminRole findByAdminIdAndRoleId(String adminId,String roleId); 16 | 17 | List findByAdminId(String adminId); 18 | 19 | @Query(value = "SELECT role_id from t_admin_role WHERE admin_id =?1",nativeQuery = true) 20 | List queryRoleIdsByAdminId(String adminId); 21 | } 22 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/Enum/PayType.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | /** 4 | * 角色状态 5 | * Created by Administrator on 2015/1/4 0004. 6 | */ 7 | public enum PayType { 8 | PAY_WITH_BALANCE("余额支付", 0), 9 | PAY_WITH_WECHAT("微信支付", 1); 10 | 11 | PayType(String name, int index) { 12 | this.name = name; 13 | this.index = index; 14 | } 15 | 16 | private String name; 17 | private int index; 18 | 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | public void setName(String name) { 24 | this.name = name; 25 | } 26 | 27 | public int getIndex() { 28 | return index; 29 | } 30 | 31 | public void setIndex(int index) { 32 | this.index = index; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/WeiXinUserService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.WeiXinUser; 4 | import com.liaoin.message.OperateResult; 5 | import org.springframework.data.domain.Page; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import javax.servlet.http.HttpServletResponse; 9 | 10 | public interface WeiXinUserService { 11 | 12 | public WeiXinUser findByOpenid(String openid); 13 | 14 | 15 | public WeiXinUser findById(String id); 16 | 17 | public WeiXinUser save(WeiXinUser weiXinUser); 18 | 19 | /** 20 | * 微信授权 21 | */ 22 | public void authorization(String code, HttpServletRequest request); 23 | 24 | public Page queryWithPage(int page, int size,String keywords); 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/Enum/CouponStatus.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | /** 4 | * 角色状态 5 | * Created by Administrator on 2015/1/4 0004. 6 | */ 7 | public enum CouponStatus { 8 | WAIT("待使用", 0), 9 | ALREADY_USED("已使用", 1), 10 | EXPIRES("已过期",2); 11 | 12 | CouponStatus(String name, int index) { 13 | this.name = name; 14 | this.index = index; 15 | } 16 | 17 | private String name; 18 | private int index; 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | 28 | public int getIndex() { 29 | return index; 30 | } 31 | 32 | public void setIndex(int index) { 33 | this.index = index; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/webapp/WEB-INF/jsp/header.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/GoodsService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.Enum.OrderStatus; 4 | import com.liaoin.bean.Goods; 5 | import com.liaoin.bean.Order; 6 | import com.liaoin.bean.RechargeRecord; 7 | import com.liaoin.message.OperateResult; 8 | import org.springframework.data.domain.Page; 9 | 10 | import java.util.Date; 11 | 12 | public interface GoodsService { 13 | 14 | public Goods findById(String id); 15 | 16 | public Goods findByNumber(String number); 17 | 18 | /** 19 | * 同步售货机商品 20 | */ 21 | public OperateResult synchronization(); 22 | 23 | public Goods save(Goods goods); 24 | 25 | public Page queryWithPage(int page, int size, String keywords); 26 | 27 | public OperateResult discount(String id, Float price, Float discount, String beginDate,String endDate); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/bean/RolePower.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | /** 13 | * 角色权限表 14 | */ 15 | @Entity 16 | @Table(name = "t_role_power") 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class RolePower { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 25 | @GenericGenerator(name="uuid",strategy = "uuid") 26 | private String id; 27 | 28 | @ApiModelProperty(value = "角色ID") 29 | private String roleId; 30 | 31 | @ApiModelProperty(value = "菜单ID") 32 | private String menuId; 33 | } 34 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/order/index.js: -------------------------------------------------------------------------------- 1 | 2 | function del(orderId) { 3 | layer.confirm('确认要删除吗?', { 4 | btn: ['确认','取消'] //按钮 5 | }, function(){ 6 | confirmDel(orderId) 7 | }, function(){ 8 | 9 | }); 10 | } 11 | 12 | function confirmDel(orderId) { 13 | $.ajax( 14 | { 15 | type:"post", 16 | url:ORDER_DELETE, 17 | data:{ 18 | 'orderId':orderId, 19 | }, 20 | error:function(){ 21 | layer.msg("系统繁忙"); 22 | }, 23 | success:function(data){ 24 | if(data.code == 0){ 25 | layer.msg(data.msg, {icon: 1}); 26 | location.reload(); 27 | }else{ 28 | layer.msg(data.msg); 29 | } 30 | } 31 | } 32 | ); 33 | } -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/WechatApplication.java: -------------------------------------------------------------------------------- 1 | package com.liaoin; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.boot.builder.SpringApplicationBuilder; 6 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 7 | import org.springframework.web.WebApplicationInitializer; 8 | 9 | @SpringBootApplication 10 | public class WechatApplication extends SpringBootServletInitializer implements WebApplicationInitializer { 11 | 12 | public static void main(String[] args) { 13 | SpringApplication.run(WechatApplication.class, args); 14 | } 15 | 16 | @Override 17 | protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 18 | return application.sources(WechatApplication.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/RechargeAmount.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | /** 13 | * 充值金额 14 | */ 15 | @Entity 16 | @Table(name = "t_recharge_amount") 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class RechargeAmount { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 25 | @GenericGenerator(name="uuid",strategy = "uuid") 26 | private String id; 27 | 28 | @ApiModelProperty(value = "充值金额") 29 | private float money; 30 | 31 | @ApiModelProperty(value = "赠送金额") 32 | private float discount; 33 | } 34 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/Enum/OrderStatus.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | /** 4 | * 角色状态 5 | * Created by Administrator on 2015/1/4 0004. 6 | */ 7 | public enum OrderStatus { 8 | WAIT_FOR_PAY("待付款", 0), 9 | ORDER_PAID("已付款", 1), 10 | SHIPMENT_SCUEESS("出货成功", 2), 11 | SHIPMENT_FAIL("出货失败", 3), 12 | REFUND("已退款", 4), 13 | ; 14 | 15 | OrderStatus(String name, int index) { 16 | this.name = name; 17 | this.index = index; 18 | } 19 | 20 | private String name; 21 | private int index; 22 | 23 | public String getName() { 24 | return name; 25 | } 26 | 27 | public void setName(String name) { 28 | this.name = name; 29 | } 30 | 31 | public int getIndex() { 32 | return index; 33 | } 34 | 35 | public void setIndex(int index) { 36 | this.index = index; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/service/AdminService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.bean.Admin; 4 | import com.liaoin.bean.AdminRole; 5 | import com.liaoin.message.OperateResult; 6 | import org.springframework.data.domain.Page; 7 | 8 | import javax.servlet.http.HttpServletRequest; 9 | import java.util.List; 10 | 11 | public interface AdminService { 12 | 13 | /** 14 | * 登录 15 | */ 16 | public OperateResult login(HttpServletRequest request, String phone, String password); 17 | 18 | public Page queryWithPage(int page, int size); 19 | 20 | public OperateResult save(Admin admin,String[] roleIds); 21 | 22 | public Admin findById(String id); 23 | 24 | public OperateResult updatePassword(Admin admin,String oldPassword,String password,String repassword); 25 | 26 | public List queryAdminRoleIdsList(Admin admin); 27 | } 28 | -------------------------------------------------------------------------------- /java/bdwl/service/src/main/resources/application-dao.yml: -------------------------------------------------------------------------------- 1 | #数据库连接配置开始 2 | spring: 3 | datasource: 4 | url: jdbc:mysql://localhost:3306/bdwl?useUnicode=true&characterEncoding=utf8 5 | # url: jdbc:mysql://47.92.236.130:3306/bdwl?useUnicode=true&characterEncoding=utf8 6 | username: root 7 | password: root 8 | # password: bdwl123456 9 | driver-class-name: com.mysql.jdbc.Driver 10 | #数据库连接配置结束 11 | 12 | #Hibernate配置开始 13 | # Specify the DBMS 14 | jpa: 15 | database: MYSQL 16 | # Show or not log for each sql query 17 | show-sql: true 18 | # Hibernate ddl auto (create, create-drop, update) 19 | hibernate: 20 | ddl-auto: update 21 | # Naming strategy 22 | naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy 23 | # stripped before adding them to the entity manager 24 | properties: 25 | hibernate: 26 | dialect: org.hibernate.dialect.MySQL5Dialect 27 | #Hibernate配置结束 28 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/message/DfbsResult.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.message; 2 | 3 | import com.liaoin.Enum.Result; 4 | import com.liaoin.message.OperateResult; 5 | 6 | public class DfbsResult { 7 | 8 | private String result; 9 | private String qr_code; 10 | 11 | 12 | public DfbsResult(String result, String qr_code) { 13 | this.result = result; 14 | this.qr_code = qr_code; 15 | } 16 | 17 | public static DfbsResult success(String result, String qr_code){ 18 | return new DfbsResult(result,qr_code); 19 | } 20 | 21 | public String getResult() { 22 | return result; 23 | } 24 | 25 | public void setResult(String result) { 26 | this.result = result; 27 | } 28 | 29 | public String getQr_code() { 30 | return qr_code; 31 | } 32 | 33 | public void setQr_code(String qr_code) { 34 | this.qr_code = qr_code; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/PushUser.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | @Entity 13 | @Table(name = "t_push_user") 14 | @Data 15 | @Builder 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | public class PushUser { 19 | 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 22 | @GenericGenerator(name="uuid",strategy = "uuid") 23 | private String id; 24 | 25 | @ApiModelProperty(value = "微信用户ID") 26 | private String weiXinUserId; 27 | 28 | @ApiModelProperty(value = "微信用户openId") 29 | private String openId; 30 | 31 | @ApiModelProperty(value = "微信用户名") 32 | private String nickname; 33 | } 34 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/bean/AdminRole.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | /** 13 | * 用户角色表 14 | */ 15 | @Entity 16 | @Table(name = "t_admin_role") 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class AdminRole { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 25 | @GenericGenerator(name="uuid",strategy = "uuid") 26 | private String id; 27 | 28 | @ApiModelProperty(value = "角色") 29 | @OneToOne(targetEntity = Role.class) 30 | private Role role; 31 | 32 | @ApiModelProperty(value = "用户") 33 | @OneToOne(targetEntity = Admin.class) 34 | private Admin admin; 35 | } 36 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/BackstageApplication.java: -------------------------------------------------------------------------------- 1 | package com.liaoin; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; 6 | import org.springframework.boot.builder.SpringApplicationBuilder; 7 | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 8 | import org.springframework.web.WebApplicationInitializer; 9 | 10 | @SpringBootApplication 11 | public class BackstageApplication extends SpringBootServletInitializer implements WebApplicationInitializer { 12 | 13 | public static void main(String[] args) { 14 | SpringApplication.run(BackstageApplication.class, args); 15 | } 16 | 17 | @Override 18 | protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 19 | return application.sources(BackstageApplication.class); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/dao/RolePowerRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.RolePower; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.Query; 6 | 7 | import java.util.List; 8 | 9 | public interface RolePowerRepository extends JpaRepository { 10 | 11 | void deleteByRoleId(String roleId); 12 | 13 | // void deleteByPowerId(String powerId); 14 | 15 | // List findByPowerIdAndRoleIdIn(String powerId, List roleIds); 16 | 17 | // @Query(value = "SELECT power_id from t_role_power WHERE role_id in ?1",nativeQuery = true) 18 | // List findPowerIdsByRoleId(List roleIds); 19 | 20 | List findByMenuIdAndRoleId(String menuId, String roleId); 21 | 22 | @Query(value = "SELECT menu_id from t_role_power WHERE role_id in ?1",nativeQuery = true) 23 | List findPowerIdsByRoleId(List roleIds); 24 | } 25 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/bean/Admin.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | import java.util.List; 12 | 13 | @Entity 14 | @Table(name = "t_admin") 15 | @Data 16 | @Builder 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | public class Admin { 20 | 21 | @Id 22 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 23 | @GenericGenerator(name="uuid",strategy = "uuid") 24 | private String id; 25 | 26 | @ApiModelProperty(value = "用户名") 27 | private String username; 28 | 29 | @ApiModelProperty(value = "密码") 30 | private String password; 31 | 32 | @ApiModelProperty(value = "随机串") 33 | private int random; 34 | 35 | @Transient 36 | private List adminRoles; 37 | } 38 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/AssetInfo.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | @Data 13 | @Builder 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | @Entity 17 | @Table(name = "t_asset") 18 | public class AssetInfo { 19 | 20 | @Id 21 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 22 | @GenericGenerator(name="uuid",strategy = "uuid") 23 | private String id; 24 | 25 | @ApiModelProperty(value = "售货机编号") 26 | private String assetId; 27 | 28 | @ApiModelProperty(value = "厂家信息") 29 | private String vender; 30 | 31 | @ApiModelProperty(value = "区域名称") 32 | private String areaName ; 33 | 34 | @ApiModelProperty(value = "点位名称") 35 | private String siteName ; 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/Main/main.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 5 | 6 | 7 | 8 | 9 | 19 | 20 | 21 |
22 |
23 |

开发者信息

24 |
25 | 28 |
29 |
30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/UserCoupon.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import com.liaoin.Enum.CouponStatus; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import org.hibernate.annotations.GenericGenerator; 10 | 11 | import javax.persistence.*; 12 | 13 | /** 14 | * 用户优惠券 15 | */ 16 | @Entity 17 | @Table(name = "t_user_coupon") 18 | @Data 19 | @Builder 20 | @NoArgsConstructor 21 | @AllArgsConstructor 22 | public class UserCoupon { 23 | 24 | @Id 25 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 26 | @GenericGenerator(name="uuid",strategy = "uuid") 27 | private String id; 28 | 29 | @ApiModelProperty(value = "优惠券") 30 | @OneToOne(targetEntity = Coupon.class) 31 | private Coupon coupon; 32 | 33 | @ApiModelProperty(value = "微信用户") 34 | private String weiXinUserId; 35 | 36 | @ApiModelProperty(value = "状态") 37 | private CouponStatus couponStatus; 38 | } 39 | -------------------------------------------------------------------------------- /java/bdwl/service/src/main/java/com/liaoin/Enum/Result.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.Enum; 2 | 3 | public enum Result { 4 | SUCCESS("请求成功",0), 5 | FAIL("请求失败",1), 6 | DISABLED_TOKEN("token过期",2), 7 | NO_USER("用户不存在",3), 8 | ERROR_PASSWORD("密码错误",4), 9 | DATA_IS_NULL("查询数据为空",5), 10 | HAVE_NOT_DATA("数据信息不存在",6), 11 | HAVE_DATA("数据信息已存在",7), 12 | HAVE_USER("该管理员已存在",8), 13 | HAVE_NOT_BALANCE("余额不足",9), 14 | TWICE_PASSWORD_NOT_EQUAL("新密码和重复密码不一致",10), 15 | OLD_PASSWORD_NOT_EQUAL("原始密码不正确",11), 16 | USER_DATA_ADDED("该用户已添加",12), 17 | ; 18 | 19 | Result(String msg, Integer code) { 20 | this.msg = msg; 21 | this.code = code; 22 | } 23 | 24 | public Integer code; 25 | public String msg; 26 | 27 | public String getMsg() { 28 | return msg; 29 | } 30 | 31 | public void setMsg(String msg) { 32 | this.msg = msg; 33 | } 34 | 35 | public Integer getCode() { 36 | return code; 37 | } 38 | 39 | public void setCode(Integer code) { 40 | this.code = code; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/bean/Role.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import com.liaoin.Enum.CheckStatus; 4 | import com.liaoin.Enum.RoleStatus; 5 | import io.swagger.annotations.ApiModelProperty; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | import org.hibernate.annotations.GenericGenerator; 11 | 12 | import javax.persistence.*; 13 | 14 | /** 15 | * 用户权限角色表 16 | */ 17 | @Entity 18 | @Table(name = "t_role") 19 | @Data 20 | @Builder 21 | @NoArgsConstructor 22 | @AllArgsConstructor 23 | public class Role { 24 | 25 | @Id 26 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 27 | @GenericGenerator(name="uuid",strategy = "uuid") 28 | private String id; 29 | 30 | @ApiModelProperty(value = "角色名称") 31 | private String name; 32 | 33 | @ApiModelProperty(value = "角色状态") 34 | private RoleStatus roleStatus; 35 | 36 | @ApiModelProperty(value = "介绍") 37 | private String introduce; 38 | 39 | @ApiModelProperty(value = "选中状态") 40 | @Transient 41 | private CheckStatus checkStatus; 42 | } 43 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.annotation.LoadAdmin; 4 | import com.liaoin.bean.Admin; 5 | import com.liaoin.util.StringUtils; 6 | import org.springframework.stereotype.Controller; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.servlet.ModelAndView; 9 | 10 | import javax.servlet.http.HttpServletRequest; 11 | import javax.servlet.http.HttpServletResponse; 12 | 13 | @Controller 14 | public class IndexController { 15 | 16 | /** 17 | * 登录页面 18 | * @return 19 | */ 20 | @RequestMapping("/") 21 | public ModelAndView index( 22 | ModelAndView modelAndView, 23 | HttpServletRequest request, 24 | HttpServletResponse response 25 | ) throws Exception{ 26 | Admin admin = (Admin)request.getSession().getAttribute("admin"); 27 | if(admin != null){ 28 | response.sendRedirect(request.getContextPath()+"/Main/index"); 29 | } 30 | modelAndView.setViewName("login"); 31 | return modelAndView; 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/util/Base64.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.util; 2 | 3 | import sun.misc.BASE64Decoder; 4 | import sun.misc.BASE64Encoder; 5 | 6 | import java.io.IOException; 7 | 8 | /** 9 | * Created by Administrator on 2016/12/19. 10 | */ 11 | public class Base64 { 12 | /** 13 | * BASE64解密 14 | * 15 | * @param key 16 | * @return 17 | * @throws Exception 18 | */ 19 | public static String decryptBASE64(String key){ 20 | byte[] bt; 21 | try { 22 | bt = (new BASE64Decoder()).decodeBuffer(key); 23 | return new String(bt, "UTF-8"); 24 | } catch (IOException e) { 25 | e.printStackTrace(); 26 | return ""; 27 | } 28 | } 29 | 30 | /** 31 | * BASE64加密 32 | * 33 | * @param key 34 | * @return 35 | * @throws Exception 36 | */ 37 | public static String encryptBASE64(String key) throws Exception{ 38 | // String result = new String(key.getBytes("iso8859-1"),"utf-8"); 39 | byte[] bt = key.getBytes("utf-8"); 40 | return (new BASE64Encoder()).encodeBuffer(bt); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wechat/template/WechatTemplate.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wechat.template; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * Created by Administrator on 2017/6/21. 7 | */ 8 | public class WechatTemplate { 9 | private String touser; 10 | 11 | private String template_id; 12 | 13 | private String url; 14 | 15 | private Map data; 16 | 17 | public String getTouser() { 18 | return touser; 19 | } 20 | 21 | public void setTouser(String touser) { 22 | this.touser = touser; 23 | } 24 | 25 | public String getTemplate_id() { 26 | return template_id; 27 | } 28 | 29 | public void setTemplate_id(String template_id) { 30 | this.template_id = template_id; 31 | } 32 | 33 | public String getUrl() { 34 | return url; 35 | } 36 | 37 | public void setUrl(String url) { 38 | this.url = url; 39 | } 40 | 41 | public Map getData() { 42 | return data; 43 | } 44 | 45 | public void setData(Map data) { 46 | this.data = data; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/service/MenuService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.Enum.Status; 4 | import com.liaoin.bean.Menu; 5 | import com.liaoin.message.OperateResult; 6 | 7 | import javax.servlet.http.HttpServletRequest; 8 | import java.util.List; 9 | 10 | public interface MenuService { 11 | 12 | /** 13 | * 获取菜单列表 14 | */ 15 | public List queryLists(String parentId, Status status,List roleIds); 16 | 17 | public List queryMenus(String menuId); 18 | 19 | public List queryAdminMenus(List menuIds,String menuId); 20 | 21 | /** 22 | * 保存编辑菜单信息 23 | */ 24 | public OperateResult save(Menu menu); 25 | 26 | public Menu findById(String id); 27 | 28 | /** 29 | * 递归获取 30 | */ 31 | public String queryMenus(String menuId,int index,String parentMenuId); 32 | 33 | public OperateResult delete(String id); 34 | 35 | /** 36 | * 递归获取 37 | */ 38 | public String queryMenus(String menuId, HttpServletRequest request); 39 | 40 | /** 41 | * 递归获取 42 | */ 43 | public String queryMenus(String menuId,String roleId,int index); 44 | } 45 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/service/RoleService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.Enum.RoleStatus; 4 | import com.liaoin.bean.AdminRole; 5 | import com.liaoin.bean.Role; 6 | import com.liaoin.message.OperateResult; 7 | import org.springframework.data.domain.Page; 8 | 9 | import java.util.List; 10 | 11 | public interface RoleService { 12 | 13 | /** 14 | * 获取全部角色 15 | */ 16 | public List findAllRoleLists(); 17 | 18 | public List findAllRoleLists(String adminId); 19 | 20 | /** 21 | * 保存角色信息 22 | */ 23 | public OperateResult save(String id, String name, RoleStatus roleStatus, String introduce); 24 | 25 | /** 26 | * 通过id查询角色信息 27 | */ 28 | public Role findById(String id); 29 | 30 | /** 31 | * 删除角色信息 32 | */ 33 | public OperateResult deleteById(String id); 34 | 35 | /** 36 | * 设置角色权限 37 | */ 38 | public OperateResult setRolePowers(String roleId,String[] powerIds); 39 | 40 | public Page queryWithPage(int page, int size); 41 | 42 | public List findByAdminId(String adminId); 43 | 44 | public List queryRoleList(List roleIds); 45 | 46 | } 47 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/Coupon.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | import java.util.Date; 12 | 13 | /** 14 | * 优惠券 15 | */ 16 | @Entity 17 | @Table(name = "t_coupon") 18 | @Data 19 | @Builder 20 | @NoArgsConstructor 21 | @AllArgsConstructor 22 | public class Coupon { 23 | 24 | @Id 25 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 26 | @GenericGenerator(name="uuid",strategy = "uuid") 27 | private String id; 28 | 29 | @ApiModelProperty(value = "优惠券号") 30 | private String number; 31 | 32 | @ApiModelProperty(value = "优惠金额") 33 | private float money; 34 | 35 | @ApiModelProperty(value = "最小使用金额") 36 | private float enableStandard; 37 | 38 | @ApiModelProperty(value = "开始时间") 39 | @Temporal(TemporalType.DATE) 40 | private Date beginDate; 41 | 42 | @ApiModelProperty(value = "结束时间") 43 | @Temporal(TemporalType.DATE) 44 | private Date endDate; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /java/bdwl/service/src/main/java/com/liaoin/util/MD5Encoder.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.util; 2 | 3 | import java.security.MessageDigest; 4 | 5 | /** 6 | * Created by Administrator on 2015/3/27 0027. 7 | */ 8 | public class MD5Encoder { 9 | 10 | public static String encryption(String original) { 11 | char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 12 | try { 13 | byte[] btInput = original.getBytes(); 14 | // 获得MD5摘要算法的 MessageDigest 对象 15 | MessageDigest mdInst = MessageDigest.getInstance("MD5"); 16 | // 使用指定的字节更新摘要 17 | mdInst.update(btInput); 18 | // 获得密文 19 | byte[] md = mdInst.digest(); 20 | // 把密文转换成十六进制的字符串形式 21 | int j = md.length; 22 | char str[] = new char[j * 2]; 23 | int k = 0; 24 | for (int i = 0; i < j; i++) { 25 | byte byte0 = md[i]; 26 | str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 27 | str[k++] = hexDigits[byte0 & 0xf]; 28 | } 29 | return new String(str); 30 | } catch (Exception e) { 31 | e.printStackTrace(); 32 | return null; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/ShippingNotice.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | /** 13 | * 出货结果通知 14 | */ 15 | @Entity 16 | @Table(name = "t_shipping_notice") 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class ShippingNotice { 22 | 23 | 24 | @Id 25 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 26 | @GenericGenerator(name="uuid",strategy = "uuid") 27 | private String id; 28 | 29 | @ApiModelProperty(value = "身份标识") 30 | private String clientId; 31 | 32 | @ApiModelProperty(value = "机器编号") 33 | private String assetId; 34 | 35 | @ApiModelProperty(value = "订单编号") 36 | private String orderNo; 37 | 38 | @ApiModelProperty(value = "出货状态 0 出货成功 2,3,4,5 为出货失败") 39 | private String deliverStatus; 40 | 41 | @ApiModelProperty(value = "签名的随机数") 42 | private String nonce_str; 43 | 44 | @ApiModelProperty(value = "签名") 45 | private String sign; 46 | } 47 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/jsp/page.jsp: -------------------------------------------------------------------------------- 1 | <%-- 2 | Created by IntelliJ IDEA. 3 | User: Administrator 4 | Date: 2017/7/22 0022 5 | Time: 下午 1:04 6 | To change this template use File | Settings | File Templates. 7 | --%> 8 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 10 | 11 | 28 | 29 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.liaoin 7 | service-backstage 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | service-backstage 12 | service-backstage for Spring Boot 13 | 14 | 15 | com.liaoin 16 | bdwl 17 | 0.0.1-SNAPSHOT 18 | 19 | 20 | 21 | 22 | 23 | com.liaoin 24 | service 25 | 0.0.1-SNAPSHOT 26 | 27 | 28 | com.liaoin 29 | service-wechat 30 | 0.0.1-SNAPSHOT 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wxpay/MyX509TrustManager.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wxpay; 2 | 3 | import javax.net.ssl.X509TrustManager; 4 | import javax.security.cert.X509Certificate; 5 | import java.security.cert.CertificateException; 6 | 7 | /** 8 | * Created by Administrator on 2017/5/17. 9 | */ 10 | public class MyX509TrustManager implements X509TrustManager { 11 | 12 | @Override 13 | public void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws CertificateException { 14 | 15 | } 16 | 17 | @Override 18 | public void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws CertificateException { 19 | 20 | } 21 | 22 | @Override 23 | public java.security.cert.X509Certificate[] getAcceptedIssuers() { 24 | return new java.security.cert.X509Certificate[0]; 25 | } 26 | 27 | // public X509Certificate[] getAcceptedIssuers() { 28 | //// TODO Auto-generated method stub 29 | // return null; 30 | // } 31 | 32 | public boolean isClientTrusted(X509Certificate[] arg0) { 33 | // TODO Auto-generated method stub 34 | return true; 35 | } 36 | 37 | public boolean isServerTrusted(X509Certificate[] arg0) { 38 | // TODO Auto-generated method stub 39 | return true; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/controller/RechargeController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.annotation.LoadWeiXinUser; 4 | import com.liaoin.bean.WeiXinUser; 5 | import com.liaoin.service.RechargeAmountService; 6 | import com.liaoin.service.RechargeService; 7 | import org.springframework.beans.factory.annotation.Autowired; 8 | import org.springframework.http.ResponseEntity; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RequestMethod; 12 | import org.springframework.web.bind.annotation.RequestParam; 13 | 14 | import javax.servlet.http.HttpServletRequest; 15 | 16 | import static org.springframework.http.ResponseEntity.ok; 17 | 18 | @Controller 19 | @RequestMapping("Recharge") 20 | public class RechargeController { 21 | 22 | @Autowired 23 | private RechargeService rechargeService; 24 | 25 | @RequestMapping(value = "/recharge",method = RequestMethod.POST) 26 | public ResponseEntity recharge ( 27 | @LoadWeiXinUser WeiXinUser weiXinUser, 28 | @RequestParam String rechargeAmountId, 29 | HttpServletRequest request 30 | ){ 31 | return ok(rechargeService.recharge(weiXinUser,rechargeAmountId,request.getRequestURL().toString())); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/service/impl/QrCodeContentRecordServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.service.impl; 2 | 3 | import com.liaoin.dfbs.bean.QrCodeContentRecord; 4 | import com.liaoin.dfbs.dao.QrCodeContentRecordRepository; 5 | import com.liaoin.dfbs.service.QrCodeContentRecordService; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Service; 8 | 9 | import javax.transaction.Transactional; 10 | 11 | @Service 12 | @Transactional 13 | public class QrCodeContentRecordServiceImpl implements QrCodeContentRecordService { 14 | 15 | @Autowired 16 | private QrCodeContentRecordRepository qrCodeContentRecordRepository; 17 | 18 | @Override 19 | public QrCodeContentRecord save(QrCodeContentRecord qrCodeContentRecord) { 20 | return qrCodeContentRecordRepository.save(qrCodeContentRecord); 21 | } 22 | 23 | @Override 24 | public QrCodeContentRecord findById(String id) { 25 | if(qrCodeContentRecordRepository.existsById(id)){ 26 | return qrCodeContentRecordRepository.findById(id).get(); 27 | }else{ 28 | return null; 29 | } 30 | } 31 | 32 | @Override 33 | public QrCodeContentRecord findByOrderNo(String orderNo) { 34 | return qrCodeContentRecordRepository.findByOrderNo(orderNo); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wechat/AccessToken.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wechat; 2 | 3 | /** 4 | * Created by Administrator on 2017/4/6. 5 | */ 6 | public class AccessToken { 7 | private String access_token; 8 | 9 | private String expires_in; 10 | 11 | private String refresh_token; 12 | 13 | private String openid; 14 | 15 | private String scope; 16 | 17 | public String getAccess_token() { 18 | return access_token; 19 | } 20 | 21 | public void setAccess_token(String access_token) { 22 | this.access_token = access_token; 23 | } 24 | 25 | public String getExpires_in() { 26 | return expires_in; 27 | } 28 | 29 | public void setExpires_in(String expires_in) { 30 | this.expires_in = expires_in; 31 | } 32 | 33 | public String getRefresh_token() { 34 | return refresh_token; 35 | } 36 | 37 | public void setRefresh_token(String refresh_token) { 38 | this.refresh_token = refresh_token; 39 | } 40 | 41 | public String getOpenid() { 42 | return openid; 43 | } 44 | 45 | public void setOpenid(String openid) { 46 | this.openid = openid; 47 | } 48 | 49 | public String getScope() { 50 | return scope; 51 | } 52 | 53 | public void setScope(String scope) { 54 | this.scope = scope; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/OrderService.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service; 2 | 3 | import com.liaoin.Enum.OrderStatus; 4 | import com.liaoin.bean.Goods; 5 | import com.liaoin.bean.Order; 6 | import com.liaoin.bean.WeiXinUser; 7 | import com.liaoin.message.OperateResult; 8 | import org.springframework.data.domain.Page; 9 | 10 | import java.util.Date; 11 | import java.util.List; 12 | import java.util.Map; 13 | 14 | public interface OrderService { 15 | 16 | public String createOrderNo(); 17 | 18 | /** 19 | * 创建订单 20 | * @return 21 | */ 22 | public Order save(Order order); 23 | 24 | public List queryByWhere(Order order); 25 | 26 | /** 27 | * 余额支付 28 | */ 29 | public OperateResult payWithBalance(WeiXinUser weiXinUser, String orderId); 30 | 31 | public OperateResult payWithWechat(WeiXinUser weiXinUser, String orderId,String uri); 32 | 33 | public Order findById(String id); 34 | 35 | public OperateResult delete(String id); 36 | 37 | public Page queryWithPage(int page, int size, OrderStatus orderStatus,String assetId,String beginDate,String endDate); 38 | 39 | /** 40 | * 退款操作 41 | */ 42 | public void refund(String orderId); 43 | 44 | public Map queryTotalMoney(OrderStatus orderStatus , String beginDate, String endDate,String assetId); 45 | } 46 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/webapp/WEB-INF/Pay/fail.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 支付失败 11 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 |
22 |
23 |
24 | 25 |
26 |
27 | 支付失败 28 | 感谢您的支持,期待您的下次光临 29 |
30 | 重新支付 31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/webapp/WEB-INF/Pay/ok.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 支付成功 11 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 |
22 |
23 |
24 | 25 |
26 |
27 | 支付成功 28 | 感谢您的支持,期待您的下次光临 29 |
30 | 查看订单 31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/RechargeRecord.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import com.liaoin.Enum.OrderStatus; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import org.hibernate.annotations.GenericGenerator; 10 | 11 | import javax.persistence.*; 12 | import java.util.Date; 13 | 14 | /** 15 | * 充值记录 16 | */ 17 | @Entity 18 | @Table(name = "t_recharge_record") 19 | @Data 20 | @Builder 21 | @NoArgsConstructor 22 | @AllArgsConstructor 23 | public class RechargeRecord { 24 | 25 | @Id 26 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 27 | @GenericGenerator(name="uuid",strategy = "uuid") 28 | private String id; 29 | 30 | @ApiModelProperty(value = "充值用户") 31 | @OneToOne(targetEntity = WeiXinUser.class) 32 | private WeiXinUser weiXinUser; 33 | 34 | @ApiModelProperty(value = "充值金额") 35 | private float money; 36 | 37 | @ApiModelProperty(value = "赠送金额") 38 | private float discount; 39 | 40 | @ApiModelProperty(value = "充值时间") 41 | private Date addTime; 42 | 43 | @ApiModelProperty(value = "更新时间") 44 | private Date updateTime; 45 | 46 | 47 | @ApiModelProperty(value = "充值状态") 48 | private OrderStatus orderStatus; 49 | 50 | @ApiModelProperty(value = "微信交易号") 51 | private String transactionId; 52 | } 53 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/WeiXinUser.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | import org.springframework.format.annotation.DateTimeFormat; 10 | 11 | import javax.persistence.*; 12 | import java.util.Date; 13 | 14 | /** 15 | * Created by Administrator on 2017/4/6. 16 | * 微信用户信息 17 | */ 18 | @Entity 19 | @Table(name = "t_weixin_user") 20 | @Data 21 | @Builder 22 | @NoArgsConstructor 23 | @AllArgsConstructor 24 | public class WeiXinUser { 25 | 26 | @Id 27 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 28 | @GenericGenerator(name="uuid",strategy = "uuid") 29 | private String id; 30 | private String openid; 31 | private String nickname; 32 | private String sex; 33 | private String language; 34 | private String city; 35 | private String province; 36 | private String country; 37 | private String headimgurl; 38 | private String refresh_token; 39 | private String access_token; 40 | private String expire_in; 41 | 42 | @ApiModelProperty(value = "账户余额") 43 | private float balance = 0; 44 | 45 | @ApiModelProperty(value = "添加时间") 46 | @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") 47 | private Date addTime; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/bean/RequestResult.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.bean; 2 | 3 | public class RequestResult { 4 | 5 | private Integer limit; 6 | private Integer total; 7 | private String result; 8 | private Integer cursor; 9 | private T list; 10 | 11 | public RequestResult() { 12 | } 13 | 14 | public RequestResult(Integer limit, Integer total, String result, Integer cursor, T list) { 15 | this.limit = limit; 16 | this.total = total; 17 | this.result = result; 18 | this.cursor = cursor; 19 | this.list = list; 20 | } 21 | 22 | public Integer getLimit() { 23 | return limit; 24 | } 25 | 26 | public void setLimit(Integer limit) { 27 | this.limit = limit; 28 | } 29 | 30 | public Integer getTotal() { 31 | return total; 32 | } 33 | 34 | public void setTotal(Integer total) { 35 | this.total = total; 36 | } 37 | 38 | public String getResult() { 39 | return result; 40 | } 41 | 42 | public void setResult(String result) { 43 | this.result = result; 44 | } 45 | 46 | public Integer getCursor() { 47 | return cursor; 48 | } 49 | 50 | public void setCursor(Integer cursor) { 51 | this.cursor = cursor; 52 | } 53 | 54 | public T getList() { 55 | return list; 56 | } 57 | 58 | public void setList(T list) { 59 | this.list = list; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /java/bdwl/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.liaoin 7 | bdwl 8 | 0.0.1-SNAPSHOT 9 | pom 10 | 11 | bdwl 12 | Bdwl for Spring Boot 13 | 14 | 15 | service 16 | backstage 17 | service-backstage 18 | wechat 19 | service-wechat 20 | wechat-code-util 21 | dfbs-vm 22 | 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-parent 27 | 2.0.5.RELEASE 28 | 29 | 30 | 31 | 32 | UTF-8 33 | UTF-8 34 | 1.8 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /java/bdwl/service-backstage/src/main/java/com/liaoin/bean/Menu.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import com.liaoin.Enum.Status; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | import javax.persistence.*; 11 | import java.util.List; 12 | 13 | @Entity 14 | @Table(name = "t_menu") 15 | @Data 16 | @Builder 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | public class Menu { 20 | 21 | @Id 22 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 23 | @ApiModelProperty(value = "ID") 24 | private String id; 25 | 26 | @ApiModelProperty(value = "名称") 27 | private String name; 28 | 29 | @ApiModelProperty(value = "应用") 30 | private String app; 31 | 32 | @ApiModelProperty(value = "控制器") 33 | private String model; 34 | 35 | @ApiModelProperty(value = "方法") 36 | private String action; 37 | 38 | @ApiModelProperty(value = "参数") 39 | private String params; 40 | 41 | @ApiModelProperty(value = "图标") 42 | private String icon; 43 | 44 | @ApiModelProperty(value = "备注") 45 | private String remark; 46 | 47 | @ApiModelProperty(value = "状态") 48 | private Status status; 49 | 50 | @ApiModelProperty(value = "上级菜单") 51 | private String parentId; 52 | 53 | @ApiModelProperty(value = "排序") 54 | private int listorder; 55 | 56 | @Transient 57 | @ApiModelProperty(value = "下级菜单列表") 58 | private List menus; 59 | } 60 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/static/js/treeTable/treeTable.css: -------------------------------------------------------------------------------- 1 | /* jQuery TreeTable Core 2.0 stylesheet 2 | * 3 | * This file contains styles that are used to display the tree table. Each tree 4 | * table is assigned the +treeTable+ class. 5 | * ========================================================================= */ 6 | 7 | /* jquery.treeTable.collapsible 8 | * ------------------------------------------------------------------------- */ 9 | .treeTable tr td .expander { 10 | background-position: left center; 11 | background-repeat: no-repeat; 12 | cursor: pointer; 13 | padding: 0; 14 | zoom: 1; /* IE7 Hack */ 15 | margin-left: -20px; 16 | } 17 | 18 | .treeTable tr.collapsed td .expander { 19 | background-image: url(./images/toggle-expand-dark.png); 20 | } 21 | 22 | .treeTable tr.expanded td .expander { 23 | background-image: url(./images/toggle-collapse-dark.png); 24 | } 25 | 26 | /* jquery.treeTable.sortable 27 | * ------------------------------------------------------------------------- */ 28 | .treeTable tr.selected, .treeTable tr.accept { 29 | background-color: #3875d7; 30 | color: #fff; 31 | } 32 | 33 | .treeTable tr.collapsed.selected td .expander, .treeTable tr.collapsed.accept td .expander { 34 | background-image: url(./images/atoggle-expand-light.png); 35 | } 36 | 37 | .treeTable tr.expanded.selected td .expander, .treeTable tr.expanded.accept td .expander { 38 | background-image: url(./images/toggle-collapse-light.png); 39 | } 40 | 41 | .treeTable .ui-draggable-dragging { 42 | color: #000; 43 | z-index: 1; 44 | } -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/src/main/java/com/liaoin/dfbs/bean/QrCodeContentRecord.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dfbs.bean; 2 | 3 | import io.swagger.annotations.ApiModelProperty; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import org.hibernate.annotations.GenericGenerator; 9 | 10 | import javax.persistence.*; 11 | 12 | /** 13 | * 获取二维码内容接口记录 14 | */ 15 | @Entity 16 | @Table(name = "t_qr_code_content_record") 17 | @Data 18 | @Builder 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class QrCodeContentRecord { 22 | 23 | @Id 24 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 25 | @GenericGenerator(name="uuid",strategy = "uuid") 26 | private String id; 27 | 28 | @ApiModelProperty(value = "身份标识,clientId 为平台为用户分配唯一身份标识") 29 | private String clientId; 30 | 31 | @ApiModelProperty(value = "机器编号") 32 | private String assetId; 33 | 34 | @ApiModelProperty(value = "商品名称") 35 | private String goodsName; 36 | 37 | @ApiModelProperty(value = "商品价格") 38 | private String price; 39 | 40 | @ApiModelProperty(value = "商品编号") 41 | private String productNum; 42 | 43 | @ApiModelProperty(value = "支付成功回调地址 POST 请求,当用户支付成功后需通过此 地址通知 ") 44 | private String notify_url; 45 | 46 | @ApiModelProperty(value = "订单编号,对于每个订单两方系统需使用此参数对应 ") 47 | private String orderNo; 48 | 49 | @ApiModelProperty(value = "签名的随机数 ") 50 | private String nonce_str; 51 | 52 | @ApiModelProperty(value = "签名") 53 | private String sign; 54 | 55 | } 56 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/util/Decript.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.util; 2 | 3 | /** 4 | * Created by Administrator on 2017/4/6. 5 | */ 6 | 7 | import java.security.MessageDigest; 8 | import java.security.NoSuchAlgorithmException; 9 | import java.util.Arrays; 10 | 11 | public class Decript { 12 | public static String SHA1(String decript) { 13 | try { 14 | MessageDigest digest = MessageDigest.getInstance("SHA-1"); 15 | digest.update(decript.getBytes()); 16 | byte messageDigest[] = digest.digest(); 17 | // Create Hex String 18 | StringBuffer hexString = new StringBuffer(); 19 | // 字节数组转换为 十六进制 数 20 | for (int i = 0; i < messageDigest.length; i++) { 21 | String shaHex = Integer.toHexString(messageDigest[i] & 0xFF); 22 | if (shaHex.length() < 2) { 23 | hexString.append(0); 24 | } 25 | hexString.append(shaHex); 26 | } 27 | return hexString.toString(); 28 | 29 | } catch (NoSuchAlgorithmException e) { 30 | e.printStackTrace(); 31 | } 32 | return ""; 33 | } 34 | 35 | public static String sort(String token, String timestamp, String nonce) { 36 | String[] strArray = { token, timestamp, nonce }; 37 | Arrays.sort(strArray); 38 | 39 | StringBuilder sbuilder = new StringBuilder(); 40 | for (String str : strArray) { 41 | sbuilder.append(str); 42 | } 43 | 44 | return sbuilder.toString(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/controller/CouponController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.Enum.CouponStatus; 4 | import com.liaoin.annotation.LoadWeiXinUser; 5 | import com.liaoin.bean.UserCoupon; 6 | import com.liaoin.bean.WeiXinUser; 7 | import com.liaoin.service.UserCouponService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.stereotype.Controller; 10 | import org.springframework.web.bind.annotation.RequestMapping; 11 | import org.springframework.web.bind.annotation.RequestMethod; 12 | import org.springframework.web.bind.annotation.RequestParam; 13 | import org.springframework.web.bind.annotation.ResponseBody; 14 | import org.springframework.web.servlet.ModelAndView; 15 | 16 | import java.util.List; 17 | 18 | @Controller 19 | @RequestMapping("Coupon") 20 | public class CouponController { 21 | 22 | @Autowired 23 | private UserCouponService userCouponService; 24 | /** 25 | * 优惠券列表 26 | */ 27 | @RequestMapping(value = "/index",method = RequestMethod.GET) 28 | @ResponseBody 29 | public ModelAndView index( 30 | @LoadWeiXinUser WeiXinUser weiXinUser, 31 | @RequestParam(required = false) CouponStatus couponStatus, 32 | ModelAndView modelAndView 33 | ){ 34 | List userCoupons = userCouponService.findByWhere(weiXinUser.getId(),couponStatus,null,null); 35 | modelAndView.addObject("userCoupons",userCoupons); 36 | modelAndView.addObject("couponStatus",couponStatus); 37 | modelAndView.setViewName("Coupon/index"); 38 | return modelAndView; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/controller/LoginController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.service.AdminService; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.http.ResponseEntity; 6 | import org.springframework.stereotype.Controller; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RequestMethod; 9 | import org.springframework.web.bind.annotation.RequestParam; 10 | import org.springframework.web.bind.annotation.ResponseBody; 11 | 12 | import javax.servlet.http.HttpServletRequest; 13 | import javax.servlet.http.HttpServletResponse; 14 | 15 | import static org.springframework.http.ResponseEntity.ok; 16 | 17 | @Controller 18 | @RequestMapping("/Login") 19 | public class LoginController { 20 | 21 | @Autowired 22 | private AdminService adminService; 23 | 24 | @RequestMapping(value = "/doLogin",method = RequestMethod.POST) 25 | public ResponseEntity login ( 26 | @RequestParam String phone, 27 | @RequestParam String password, 28 | HttpServletRequest request 29 | ){ 30 | return ok(adminService.login(request,phone,password)); 31 | } 32 | 33 | /** 34 | * 退出登录 35 | * @return 36 | */ 37 | @RequestMapping(value = "/loginOut", method = RequestMethod.GET) 38 | @ResponseBody 39 | public void loginOut(HttpServletRequest request, HttpServletResponse response) throws Exception { 40 | request.getSession().removeAttribute("admin"); 41 | response.sendRedirect(request.getContextPath()); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /java/bdwl/dfbs-vm/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.liaoin 7 | dfbs-vm 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | dfbs-vm 12 | dfbs-vm for Spring Boot 13 | 14 | 15 | com.liaoin 16 | bdwl 17 | 0.0.1-SNAPSHOT 18 | 19 | 20 | 21 | 22 | 23 | com.liaoin 24 | service 25 | 0.0.1-SNAPSHOT 26 | 27 | 28 | 29 | org.slf4j 30 | slf4j-log4j12 31 | 1.7.2 32 | 33 | 34 | 35 | com.squareup.okhttp3 36 | okhttp 37 | 3.10.0 38 | 39 | 40 | 41 | 42 | com.google.code.gson 43 | gson 44 | 2.8.4 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /java/bdwl/service-redis/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.liaoin 7 | service-redis 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | service-redis 12 | service-redis for Spring Boot 13 | 14 | 15 | com.liaoin 16 | bdwl 17 | 0.0.1-SNAPSHOT 18 | 19 | 20 | 21 | UTF-8 22 | UTF-8 23 | 1.8 24 | 25 | 26 | 27 | 28 | org.springframework.boot 29 | spring-boot-starter 30 | 31 | 32 | 33 | 34 | org.springframework.boot 35 | spring-boot-starter-cache 36 | 37 | 38 | 39 | org.springframework.boot 40 | spring-boot-starter-data-redis 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/bean/Goods.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.bean; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import io.swagger.annotations.ApiModelProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import org.hibernate.annotations.GenericGenerator; 10 | import org.springframework.format.annotation.DateTimeFormat; 11 | 12 | import javax.persistence.*; 13 | import java.util.Date; 14 | 15 | /** 16 | * 商品信息表 17 | */ 18 | @Entity 19 | @Table(name = "t_goods") 20 | @Data 21 | @Builder 22 | @NoArgsConstructor 23 | @AllArgsConstructor 24 | public class Goods { 25 | 26 | @Id 27 | @GeneratedValue(strategy = GenerationType.TABLE,generator = "uuid") 28 | @GenericGenerator(name="uuid",strategy = "uuid") 29 | private String id; 30 | 31 | @ApiModelProperty(value = "商品名称") 32 | private String name; 33 | 34 | @ApiModelProperty(value = "商品图片") 35 | private String picture; 36 | 37 | @ApiModelProperty(value = "价格") 38 | private float price; 39 | 40 | @ApiModelProperty(value = "已销售") 41 | private int sales; 42 | 43 | @ApiModelProperty(value = "商品编号") 44 | private String number; 45 | 46 | @ApiModelProperty(value = "商品折扣") 47 | private float discount; 48 | 49 | @ApiModelProperty(value = "折扣开始时间") 50 | @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm") 51 | @JsonFormat(pattern = "yyyy-MM-dd hh:mm") 52 | private Date beginDate; 53 | 54 | @ApiModelProperty(value = "折扣结束时间") 55 | @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm") 56 | @JsonFormat(pattern = "yyyy-MM-dd hh:mm") 57 | private Date endDate; 58 | } 59 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | com.liaoin 7 | service-wechat 8 | 0.0.1-SNAPSHOT 9 | jar 10 | 11 | service-wechat 12 | service-wechat for Spring Boot 13 | 14 | 15 | com.liaoin 16 | bdwl 17 | 0.0.1-SNAPSHOT 18 | 19 | 20 | 21 | UTF-8 22 | UTF-8 23 | 1.8 24 | 25 | 26 | 27 | 28 | com.liaoin 29 | service 30 | 0.0.1-SNAPSHOT 31 | 32 | 33 | 34 | com.liaoin 35 | wechat-code-util 36 | 0.0.1-SNAPSHOT 37 | 38 | 39 | 40 | com.liaoin 41 | dfbs-vm 42 | 0.0.1-SNAPSHOT 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/resolvers/GoodsArgumentResolver.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.resolvers; 2 | 3 | import com.liaoin.annotation.LoadGoods; 4 | import com.liaoin.annotation.LoadWeiXinUser; 5 | import com.liaoin.bean.WeiXinUser; 6 | import org.springframework.core.MethodParameter; 7 | import org.springframework.stereotype.Component; 8 | import org.springframework.web.bind.support.WebDataBinderFactory; 9 | import org.springframework.web.context.request.NativeWebRequest; 10 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 11 | import org.springframework.web.method.support.ModelAndViewContainer; 12 | import org.springframework.web.multipart.support.MissingServletRequestPartException; 13 | 14 | import javax.servlet.http.HttpServletRequest; 15 | 16 | 17 | @Component 18 | public class GoodsArgumentResolver implements HandlerMethodArgumentResolver { 19 | 20 | @Override 21 | public boolean supportsParameter(MethodParameter parameter) { 22 | //如果参数类型是String并且有AnnotationUser注解则支持 23 | if (parameter.getParameterType().isAssignableFrom(String.class) && parameter.hasParameterAnnotation(LoadGoods.class)) 24 | return true; 25 | return false; 26 | } 27 | 28 | @Override 29 | public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { 30 | HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); 31 | String goodsId = (String)request.getSession().getAttribute("goodsId"); 32 | if (goodsId != null) { 33 | return goodsId; 34 | } 35 | throw new MissingServletRequestPartException("goodsId"); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/filter/ApiFilter.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.filter; 2 | 3 | import com.alibaba.fastjson.JSONException; 4 | import com.alibaba.fastjson.JSONObject; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.stereotype.Component; 7 | 8 | import javax.servlet.*; 9 | import javax.servlet.http.HttpServletRequest; 10 | import javax.servlet.http.HttpServletResponse; 11 | import java.io.IOException; 12 | import java.util.Map; 13 | 14 | @Component 15 | @Slf4j 16 | public class ApiFilter implements Filter { 17 | @Override 18 | public void init(FilterConfig filterConfig) throws ServletException { 19 | log.info("----过滤器初始化----"); 20 | } 21 | 22 | @Override 23 | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 24 | HttpServletRequest request = (HttpServletRequest) servletRequest; 25 | HttpServletResponse response = (HttpServletResponse) servletResponse; 26 | 27 | //访问日志 28 | Map map = request.getParameterMap(); 29 | JSONObject jsonObject = new JSONObject(); 30 | for (Map.Entry entry : map.entrySet()) { 31 | try { 32 | jsonObject.put(entry.getKey(), entry.getValue()); 33 | } catch (JSONException e1) { 34 | e1.printStackTrace(); 35 | } 36 | } 37 | log.info("来访者IP:" + request.getRemoteHost() + ",访问的URI:" + request.getRequestURI() + ",请求参数:" + jsonObject.toString()); 38 | filterChain.doFilter(servletRequest, servletResponse); 39 | } 40 | 41 | @Override 42 | public void destroy() { 43 | log.info("----过滤器销毁----"); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/wechat-log.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d - %msg%n 6 | 7 | 8 | 9 | 10 | ERROR 11 | DENY 12 | ACCEPT 13 | 14 | 15 | %msg%n 16 | 17 | 18 | 19 | 20 | ./bdwl/wechat-logs/info.%d.log 21 | 22 | 23 | 24 | 25 | ERROR 26 | 27 | 28 | %msg%n 29 | 30 | 31 | 32 | 33 | ./bdwl/wechat-logs/error.%d.log 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/js/lang/zh-CN.js: -------------------------------------------------------------------------------- 1 | _SG["LangTxts"] = { 2 | "time": "时间", 3 | "play-team": "演出团队", 4 | "ticket-price": "票价", 5 | "address": "地址", 6 | "play-theatre": "演出剧场", 7 | "buy-choose-seat": "购票选座", 8 | "play-desc": "演出介绍", 9 | "more-desc": "更多介绍", 10 | "back-play-list": "返回演出列表", 11 | "city": "城市", 12 | "time-span": "时间段", 13 | 14 | "total-count": "总计", 15 | "confirm-choose-seat": "确认选票", 16 | "max-ticket-limit": "一次购票不能超过#maxNum张", 17 | "no-ticket-chose": "没有选择票!", 18 | "order-code": "订单号", 19 | "buy-time": "购买时间", 20 | "confirm-pay": "确认支付", 21 | "confirm": "确认", 22 | 23 | 24 | "phone-or-email": "手机号/邮箱", 25 | "password": "密码", 26 | "register-account": "注册账号", 27 | "forget-password": "忘记密码", 28 | "login": "登录", 29 | "other-login": "其他登录", 30 | "protocol": "协议", 31 | "i-know": "我知道了", 32 | "input-phone": "请输入手机号", 33 | "input-password": "请输入以字母开始的密码", 34 | "input-email": "邮箱", 35 | "verify-code": "验证码", 36 | "send-verify-code": "发送验证码", 37 | "find-by-email": "通过邮箱找回?", 38 | "find-by-phone": "通过手机号找回?", 39 | "change-password": "修改密码", 40 | "reg-by-email": "用邮箱号注册?", 41 | "reg-by-phone": "用手机号注册?", 42 | "reg-and-login": "注册并登录", 43 | "reg-and-login-agree": "注册并登陆即同意", 44 | "protocol-txt": "《注册协议》", 45 | "personal-info": "个人信息", 46 | "safe-setting": "安全设置", 47 | "history-ticket-bill": "历史票据", 48 | "play-ticket-bill": "演出票据", 49 | "waitting-pay-ticket-bill": "待支付", 50 | "return-ticket": "退票", 51 | "price": "价格", 52 | "submit": "提交", 53 | "choose-seat": "选择座位", 54 | "choose-pay-way": "选择支付方式", 55 | "verify-send-fail": "验证码发送失败!", 56 | "repay": "重新支付", 57 | "no-data": "暂无数据!", 58 | "no-more-data": "没有更多数据!", 59 | 60 | "NETWORK_ERROR": "网络异常,请稍后重试!", 61 | "LOADING": "正在加载中...", 62 | "IN_PROCESSING": "正在处理中...", 63 | }; -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/resources/backstage-log.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d - %msg%n 6 | 7 | 8 | 9 | 10 | ERROR 11 | DENY 12 | ACCEPT 13 | 14 | 15 | %msg%n 16 | 17 | 18 | 19 | 20 | ./bdwl/backstage-logs/info.%d.log 21 | 22 | 23 | 24 | 25 | ERROR 26 | 27 | 28 | %msg%n 29 | 30 | 31 | 32 | 33 | ./bdwl/backstage-logs/error.%d.log 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/resolvers/WeiXinUserArgumentResolver.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.resolvers; 2 | 3 | import com.liaoin.annotation.LoadWeiXinUser; 4 | import com.liaoin.bean.WeiXinUser; 5 | import org.springframework.core.MethodParameter; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.web.bind.support.WebDataBinderFactory; 8 | import org.springframework.web.context.request.NativeWebRequest; 9 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 10 | import org.springframework.web.method.support.ModelAndViewContainer; 11 | import org.springframework.web.multipart.support.MissingServletRequestPartException; 12 | 13 | import javax.servlet.http.HttpServletRequest; 14 | 15 | /** 16 | * 增加方法注入,将含有LoadWeiXinUser注解的方法参数注入当前登录用户 17 | */ 18 | @Component 19 | public class WeiXinUserArgumentResolver implements HandlerMethodArgumentResolver { 20 | 21 | @Override 22 | public boolean supportsParameter(MethodParameter parameter) { 23 | //如果参数类型是String并且有AnnotationUser注解则支持 24 | if (parameter.getParameterType().isAssignableFrom(WeiXinUser.class) && parameter.hasParameterAnnotation(LoadWeiXinUser.class)) 25 | return true; 26 | return false; 27 | } 28 | 29 | @Override 30 | public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { 31 | HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); 32 | WeiXinUser weiXinUser = (WeiXinUser)request.getSession().getAttribute("weiXinUser"); 33 | if (weiXinUser != null) { 34 | return weiXinUser; 35 | } 36 | throw new MissingServletRequestPartException("weiXinUser"); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/resolvers/AdminArgumentResolver.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.resolvers; 2 | 3 | import com.liaoin.annotation.LoadAdmin; 4 | import com.liaoin.bean.Admin; 5 | import org.springframework.core.MethodParameter; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.web.bind.support.WebDataBinderFactory; 8 | import org.springframework.web.context.request.NativeWebRequest; 9 | import org.springframework.web.context.request.RequestAttributes; 10 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 11 | import org.springframework.web.method.support.ModelAndViewContainer; 12 | import org.springframework.web.multipart.support.MissingServletRequestPartException; 13 | 14 | import javax.servlet.http.HttpServletRequest; 15 | 16 | /** 17 | * 增加方法注入,将含有LoadAdmin注解的方法参数注入当前登录用户 18 | */ 19 | @Component 20 | public class AdminArgumentResolver implements HandlerMethodArgumentResolver { 21 | 22 | 23 | 24 | @Override 25 | public boolean supportsParameter(MethodParameter parameter) { 26 | //如果参数类型是String并且有AnnotationUser注解则支持 27 | if (parameter.getParameterType().isAssignableFrom(Admin.class) && parameter.hasParameterAnnotation(LoadAdmin.class)) 28 | return true; 29 | return false; 30 | } 31 | 32 | @Override 33 | public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { 34 | HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); 35 | Admin admin = (Admin)request.getSession().getAttribute("admin"); 36 | if (admin != null) { 37 | return admin; 38 | } 39 | throw new MissingServletRequestPartException("admin"); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/webapp/WEB-INF/Goods/info.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 货物详情 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 | 21 | 22 |
23 |
24 | 25 |
26 |
27 | ${goods.name}${discount}折 28 | <%--已售${goods.sales}--%> 29 | ${price} 30 |
31 |
32 | 33 | 去结算 34 |
35 |
36 | 37 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/resolvers/QrCodeContentRecordArgumentResolver.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.resolvers; 2 | 3 | import com.liaoin.annotation.LoadGoods; 4 | import com.liaoin.annotation.LoadQrCodeContentRecord; 5 | import org.springframework.core.MethodParameter; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.web.bind.support.WebDataBinderFactory; 8 | import org.springframework.web.context.request.NativeWebRequest; 9 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 10 | import org.springframework.web.method.support.ModelAndViewContainer; 11 | import org.springframework.web.multipart.support.MissingServletRequestPartException; 12 | 13 | import javax.servlet.http.HttpServletRequest; 14 | 15 | 16 | @Component 17 | public class QrCodeContentRecordArgumentResolver implements HandlerMethodArgumentResolver { 18 | 19 | @Override 20 | public boolean supportsParameter(MethodParameter parameter) { 21 | //如果参数类型是String并且有AnnotationUser注解则支持 22 | if (parameter.getParameterType().isAssignableFrom(String.class) && parameter.hasParameterAnnotation(LoadQrCodeContentRecord.class)) 23 | return true; 24 | return false; 25 | } 26 | 27 | @Override 28 | public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { 29 | HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class); 30 | String qrCodeContentRecordId = (String)request.getSession().getAttribute("qrCodeContentRecordId"); 31 | if (qrCodeContentRecordId != null) { 32 | return qrCodeContentRecordId; 33 | } 34 | throw new MissingServletRequestPartException("qrCodeContentRecordId"); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/PushUser/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | <%@ page import= "com.liaoin.util.Base64"%> 5 | 13 | 14 | 15 |
16 | 20 |
21 | <%--
--%> 22 | <%----%> 23 | <%--
--%> 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 41 | 42 | 43 | 44 | 45 | 46 |
47 |
48 | 49 | 50 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/filter/ApiFilter.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.filter; 2 | 3 | import com.alibaba.fastjson.JSONException; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.liaoin.service.GoodsService; 6 | import lombok.extern.slf4j.Slf4j; 7 | import org.springframework.stereotype.Component; 8 | 9 | import javax.annotation.Resource; 10 | import javax.servlet.*; 11 | import javax.servlet.http.HttpServletRequest; 12 | import javax.servlet.http.HttpServletResponse; 13 | import java.io.IOException; 14 | import java.util.Map; 15 | 16 | @Component 17 | @Slf4j 18 | @SuppressWarnings("all") 19 | public class ApiFilter implements Filter { 20 | 21 | @Override 22 | public void init(FilterConfig filterConfig) throws ServletException { 23 | log.info("----过滤器初始化----"); 24 | } 25 | 26 | @Override 27 | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 28 | HttpServletRequest request = (HttpServletRequest) servletRequest; 29 | HttpServletResponse response = (HttpServletResponse) servletResponse; 30 | 31 | //访问日志 32 | Map map = request.getParameterMap(); 33 | JSONObject jsonObject = new JSONObject(); 34 | for (Map.Entry entry : map.entrySet()) { 35 | try { 36 | jsonObject.put(entry.getKey(), entry.getValue()); 37 | } catch (JSONException e1) { 38 | e1.printStackTrace(); 39 | } 40 | } 41 | log.info("来访者IP:" + request.getRemoteHost() + ",访问的URI:" + request.getRequestURI() + ",请求参数:" + jsonObject.toString()); 42 | filterChain.doFilter(servletRequest, servletResponse); 43 | } 44 | 45 | @Override 46 | public void destroy() { 47 | log.info("----过滤器销毁----"); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/Menu/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 12 | 13 | 14 |
15 | 19 |
20 |
21 | 22 |
23 | 24 | 25 | 26 | 27 | <%----%> 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | ${menuString} 36 | 37 | 38 |
39 |
40 | 41 | 59 | 60 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wechat/UserInfo.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wechat; 2 | 3 | /** 4 | * Created by Administrator on 2017/4/6. 5 | */ 6 | public class UserInfo { 7 | 8 | private String openid; 9 | private String nickname; 10 | private String sex; 11 | private String language; 12 | private String city; 13 | private String province; 14 | private String country; 15 | private String headimgurl; 16 | 17 | public String getOpenid() { 18 | return openid; 19 | } 20 | 21 | public void setOpenid(String openid) { 22 | this.openid = openid; 23 | } 24 | 25 | public String getNickname() { 26 | return nickname; 27 | } 28 | 29 | public void setNickname(String nickname) { 30 | this.nickname = nickname; 31 | } 32 | 33 | public String getSex() { 34 | return sex; 35 | } 36 | 37 | public void setSex(String sex) { 38 | this.sex = sex; 39 | } 40 | 41 | public String getLanguage() { 42 | return language; 43 | } 44 | 45 | public void setLanguage(String language) { 46 | this.language = language; 47 | } 48 | 49 | public String getCity() { 50 | return city; 51 | } 52 | 53 | public void setCity(String city) { 54 | this.city = city; 55 | } 56 | 57 | public String getProvince() { 58 | return province; 59 | } 60 | 61 | public void setProvince(String province) { 62 | this.province = province; 63 | } 64 | 65 | public String getCountry() { 66 | return country; 67 | } 68 | 69 | public void setCountry(String country) { 70 | this.country = country; 71 | } 72 | 73 | public String getHeadimgurl() { 74 | return headimgurl; 75 | } 76 | 77 | public void setHeadimgurl(String headimgurl) { 78 | this.headimgurl = headimgurl; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/RechargeAmount/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 12 | 13 | 14 |
15 | 19 |
20 | <%--
--%> 21 | <%----%> 22 | <%--
--%> 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 43 | 44 | 45 | 46 | 47 | 48 |
49 |
50 | 51 | 52 | -------------------------------------------------------------------------------- /java/bdwl/service/src/main/java/com/liaoin/util/DateFormat.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.util; 2 | 3 | import java.text.ParseException; 4 | import java.text.SimpleDateFormat; 5 | import java.util.Calendar; 6 | import java.util.Date; 7 | import java.util.GregorianCalendar; 8 | 9 | /** 10 | * Created by Administrator on 2017/5/4 0004. 11 | */ 12 | public class DateFormat { 13 | 14 | 15 | public static Date dateToStamp(String s) throws ParseException { 16 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 17 | Date date = simpleDateFormat.parse(s); 18 | return date; 19 | } 20 | 21 | public static Date dateToStampEndmm(String s) throws ParseException { 22 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 23 | Date date = simpleDateFormat.parse(s); 24 | return date; 25 | } 26 | 27 | /* 28 | * 将时间戳转换为时间 29 | */ 30 | public static String stampToDate(String s){ 31 | String res; 32 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 33 | long lt = new Long(s); 34 | Date date = new Date(lt); 35 | res = simpleDateFormat.format(date); 36 | return res; 37 | } 38 | 39 | public static String stampToDateEndmm(String s){ 40 | String res; 41 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 42 | long lt = new Long(s); 43 | Date date = new Date(lt); 44 | res = simpleDateFormat.format(date); 45 | return res; 46 | } 47 | 48 | /* 49 | * 将时间戳转换为时间 50 | */ 51 | public static String stampToDateEndD(String s){ 52 | String res; 53 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 54 | long lt = new Long(s); 55 | Date date = new Date(lt); 56 | res = simpleDateFormat.format(date); 57 | return res; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/resources/static/assets/css/goods.css: -------------------------------------------------------------------------------- 1 | .goods-detail-page .goods-head-box{ 2 | background:url(../images/gd-head-bg.jpg) no-repeat; 3 | background-size:100% 8.00rem; 4 | height:8.20rem; 5 | overflow:hidden; 6 | } 7 | .goods-detail-page .goods-head-box .pic{ 8 | width:7.00rem; 9 | height:7.26rem; 10 | border-radius:0.20rem; 11 | box-shadow:0 0.05rem 0.20rem #cacaca; 12 | display:block; 13 | overflow:hidden; 14 | margin:.64rem auto 0 auto; 15 | } 16 | .goods-detail-page .goods-info-box{ 17 | padding:0.10rem 0.25rem 0.25rem 0.25rem; 18 | overflow:hidden; 19 | } 20 | .goods-detail-page .goods-info-box span{ 21 | display:block; 22 | overflow:hidden; 23 | } 24 | .goods-detail-page .goods-info-box .name{ 25 | font-size:0.36rem; 26 | color:#090707; 27 | } 28 | .goods-detail-page .goods-info-box .summary{ 29 | font-size:0.26rem; 30 | color:#bababa; 31 | margin-top:0.20rem; 32 | } 33 | .goods-detail-page .goods-info-box .price-box{ 34 | font-size:0.50rem; 35 | color:#ff0000; 36 | margin-top:0.10rem; 37 | } 38 | .goods-detail-page .goods-info-box .price-box .unit{ 39 | font-size:0.30rem; 40 | color:#ff0000; 41 | } 42 | .goods-detail-page .go-pay-box{ 43 | height:1.70rem; 44 | padding:0.35rem 0.25rem; 45 | overflow:hidden; 46 | } 47 | .goods-detail-page .go-pay-box a{ 48 | display:block; 49 | overflow:hidden; 50 | } 51 | .goods-detail-page .go-pay-box .uc-btn{ 52 | background:#fff url(../images/uc-user-icon.png) no-repeat center center; 53 | background-size:0.42rem 0.40rem; 54 | width:1.00rem; 55 | height:1.00rem; 56 | border-radius:0.50rem; 57 | box-shadow:0 0.05rem 0.20rem #e1e1e1; 58 | float:left; 59 | } 60 | .goods-detail-page .go-pay-box .pay-btn{ 61 | background:#ffd200; 62 | width:5.40rem; 63 | height:1.00rem; 64 | border-radius:0.50rem; 65 | box-shadow:0 0.05rem 0.20rem #e1e1e1; 66 | display:block; 67 | overflow:hidden; 68 | font-size:0.34rem; 69 | color:#090707; 70 | line-height:1.00rem; 71 | text-align:center; 72 | float:right; 73 | } -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/controller/WeChatCallController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.constant.WechatConstant; 4 | import com.liaoin.util.Decript; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.stereotype.Controller; 7 | import org.springframework.web.bind.annotation.RequestMapping; 8 | import org.springframework.web.bind.annotation.RequestMethod; 9 | import org.springframework.web.bind.annotation.ResponseBody; 10 | 11 | import javax.servlet.http.HttpServletRequest; 12 | import javax.servlet.http.HttpServletResponse; 13 | import java.util.ArrayList; 14 | 15 | /** 16 | * Created by Administrator on 2016/12/7. 17 | */ 18 | @Controller 19 | @RequestMapping("WeChatCall") 20 | @Slf4j 21 | public class WeChatCallController { 22 | 23 | /** 24 | * token验证 25 | */ 26 | @RequestMapping(value = "/checkSignature",method = RequestMethod.GET) 27 | @ResponseBody 28 | public void checkSignature(HttpServletRequest request, HttpServletResponse response) throws Exception { 29 | log.info("开始签名校验"); 30 | String signature = request.getParameter("signature"); 31 | String timestamp = request.getParameter("timestamp"); 32 | String nonce = request.getParameter("nonce"); 33 | String echostr = request.getParameter("echostr"); 34 | 35 | ArrayList array = new ArrayList(); 36 | array.add(signature); 37 | array.add(timestamp); 38 | array.add(nonce); 39 | 40 | //排序 41 | String sortString = Decript.sort(WechatConstant.TOKEN, timestamp, nonce); 42 | //加密 43 | String mytoken = Decript.SHA1(sortString); 44 | //校验签名 45 | if (mytoken != null && mytoken != "" && mytoken.equals(signature)) { 46 | log.info("签名校验通过。"); 47 | response.getWriter().println(echostr); //如果检验成功输出echostr,微信服务器接收到此输出,才会确认检验完成。 48 | } else { 49 | log.info("签名校验失败。"); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/Role/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 12 | 13 | 14 |
15 | 19 |
20 | <%--
--%> 21 | <%----%> 22 | <%--
--%> 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 46 | 47 | 48 | 49 | 50 | 51 |
52 |
53 | 54 | 55 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/dao/RechargeRecordRepository.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.dao; 2 | 3 | import com.liaoin.bean.RechargeRecord; 4 | import org.springframework.data.jpa.repository.JpaRepository; 5 | import org.springframework.data.jpa.repository.JpaSpecificationExecutor; 6 | import org.springframework.data.jpa.repository.Query; 7 | 8 | import java.util.Date; 9 | 10 | public interface RechargeRecordRepository extends JpaRepository,JpaSpecificationExecutor { 11 | 12 | @Query( value = "select sum(money) as totalMoney from t_recharge_record where order_status = 1",nativeQuery=true) 13 | double querySum(); 14 | @Query( value = "select sum(money) as totalMoney from t_recharge_record where order_status = 1 and update_time >= ?1 and update_time <= ?2",nativeQuery=true) 15 | double querySum(Date beginDate, Date endDate); 16 | 17 | @Query( value = "select sum(money) as totalMoney from t_recharge_record where order_status = 1 and update_time <= ?1",nativeQuery=true) 18 | double querySumendDate(Date endDate); 19 | 20 | @Query( value = "select sum(money) as totalMoney from t_recharge_record where order_status = 1 and update_time >= ?1",nativeQuery=true) 21 | double querySumbeginDate(Date beginDate); 22 | 23 | @Query( value = "select count(*) as number from t_recharge_record where order_status = 1",nativeQuery=true) 24 | int queryCount(); 25 | @Query( value = "select count(*) as number from t_recharge_record where order_status = 1 and update_time >= ?1 and update_time <= ?2",nativeQuery=true) 26 | int queryCount(Date beginDate, Date endDate); 27 | 28 | @Query( value = "select count(*) as number from t_recharge_record where order_status = 1 and update_time <= ?1",nativeQuery=true) 29 | int queryCountendDate(Date endDate); 30 | 31 | @Query( value = "select count(*) as number from t_recharge_record where order_status = 1 and update_time >= ?1",nativeQuery=true) 32 | int queryCountbeginDate(Date beginDate); 33 | } 34 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/WeiXinUser/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | <%@ page import= "com.liaoin.util.Base64"%> 5 | 13 | 14 | 15 |
16 | 19 | 24 |
25 | <%--
--%> 26 | <%----%> 27 | <%--
--%> 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wxpay/util/MD5Util.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wxpay.util; 2 | 3 | import java.security.MessageDigest; 4 | 5 | public class MD5Util { 6 | 7 | private static String byteArrayToHexString(byte b[]) { 8 | StringBuffer resultSb = new StringBuffer(); 9 | for (int i = 0; i < b.length; i++) 10 | resultSb.append(byteToHexString(b[i])); 11 | 12 | return resultSb.toString(); 13 | } 14 | 15 | private static String byteToHexString(byte b) { 16 | int n = b; 17 | if (n < 0) 18 | n += 256; 19 | int d1 = n / 16; 20 | int d2 = n % 16; 21 | return hexDigits[d1] + hexDigits[d2]; 22 | } 23 | 24 | public static String MD5Encode(String origin, String charsetname) { 25 | String resultString = null; 26 | try { 27 | resultString = new String(origin); 28 | MessageDigest md = MessageDigest.getInstance("MD5"); 29 | if (charsetname == null || "".equals(charsetname)) 30 | resultString = byteArrayToHexString(md.digest(resultString 31 | .getBytes())); 32 | else 33 | resultString = byteArrayToHexString(md.digest(resultString 34 | .getBytes(charsetname))); 35 | } catch (Exception exception) { 36 | } 37 | return resultString; 38 | } 39 | 40 | private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5", 41 | "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; 42 | 43 | public final static String getMessageDigest(byte[] buffer) { 44 | char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; 45 | try { 46 | MessageDigest mdTemp = MessageDigest.getInstance("MD5"); 47 | mdTemp.update(buffer); 48 | byte[] md = mdTemp.digest(); 49 | int j = md.length; 50 | char str[] = new char[j * 2]; 51 | int k = 0; 52 | for (int i = 0; i < j; i++) { 53 | byte byte0 = md[i]; 54 | str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 55 | str[k++] = hexDigits[byte0 & 0xf]; 56 | } 57 | return new String(str); 58 | } catch (Exception e) { 59 | return null; 60 | } 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/impl/AssetInfoServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service.impl; 2 | 3 | import com.liaoin.bean.AssetInfo; 4 | import com.liaoin.dao.AssetInfoRepository; 5 | import com.liaoin.dfbs.DfbsVmUtils; 6 | import com.liaoin.dfbs.bean.DfbsAssetInfo; 7 | import com.liaoin.message.OperateResult; 8 | import com.liaoin.service.AssetInfoService; 9 | import lombok.extern.slf4j.Slf4j; 10 | import org.springframework.beans.factory.annotation.Autowired; 11 | import org.springframework.stereotype.Service; 12 | 13 | import java.util.List; 14 | 15 | import static com.liaoin.message.OperateResult.success; 16 | 17 | @Service 18 | @Slf4j 19 | public class AssetInfoServiceImpl implements AssetInfoService { 20 | 21 | @Autowired 22 | private AssetInfoRepository assetInfoRepository; 23 | 24 | @Override 25 | public OperateResult synchronization() { 26 | try { 27 | List dfbsAssetInfos = DfbsVmUtils.queryAssetInfo(); 28 | for (DfbsAssetInfo dfbsAssetInfo : dfbsAssetInfos){ 29 | AssetInfo assetInfo = assetInfoRepository.findByAssetId(dfbsAssetInfo.getAssetId()); 30 | if(assetInfo == null){ 31 | assetInfo = new AssetInfo(); 32 | } 33 | assetInfo.setAssetId(dfbsAssetInfo.getAssetId()); 34 | assetInfo.setVender(dfbsAssetInfo.getVender()); 35 | assetInfo.setAreaName(dfbsAssetInfo.getAreaName()); 36 | assetInfo.setSiteName(dfbsAssetInfo.getSiteName()); 37 | assetInfoRepository.save(assetInfo); 38 | } 39 | }catch (Exception e){ 40 | log.info("售货机信息同步异常:"); 41 | } 42 | return success(); 43 | } 44 | 45 | @Override 46 | public AssetInfo findByAssetId(String assetId) { 47 | return assetInfoRepository.findByAssetId(assetId); 48 | } 49 | 50 | @Override 51 | public List findAll() { 52 | return assetInfoRepository.findAll(); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/controller/WeiXinUserController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.bean.Role; 4 | import com.liaoin.bean.WeiXinUser; 5 | import com.liaoin.constant.Constant; 6 | import com.liaoin.message.PageResult; 7 | import com.liaoin.service.WeiXinUserService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.data.domain.Page; 10 | import org.springframework.stereotype.Controller; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestMethod; 13 | import org.springframework.web.bind.annotation.RequestParam; 14 | import org.springframework.web.bind.annotation.ResponseBody; 15 | import org.springframework.web.servlet.ModelAndView; 16 | 17 | import javax.servlet.http.HttpServletRequest; 18 | 19 | @Controller 20 | @RequestMapping("WeiXinUser") 21 | public class WeiXinUserController { 22 | 23 | @Autowired 24 | private WeiXinUserService weiXinUserService; 25 | 26 | /** 27 | * 列表 28 | */ 29 | @RequestMapping(value = "/index",method = RequestMethod.GET) 30 | @ResponseBody 31 | public ModelAndView index( 32 | @RequestParam(required = false) Integer p, 33 | @RequestParam(required = false) String keyword, 34 | HttpServletRequest request, 35 | ModelAndView modelAndView 36 | ){ 37 | int page = 0; 38 | if(p != null){ 39 | page = p - 1; 40 | } 41 | Page weiXinUsers = weiXinUserService.queryWithPage(page,Constant.PageConstant.ADMIN_PAGE_COUNT,keyword); 42 | PageResult pageResult = new PageResult(); 43 | pageResult = pageResult.setPageUrl(request,page,Constant.PageConstant.ADMIN_PAGE_COUNT,weiXinUsers); 44 | modelAndView.addObject("pageResult", pageResult); 45 | modelAndView.addObject("keyword", keyword); 46 | modelAndView.setViewName("WeiXinUser/index"); 47 | return modelAndView; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /java/bdwl/service-wechat/src/main/java/com/liaoin/service/impl/ShippingNoticeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.service.impl; 2 | 3 | import com.liaoin.Enum.OrderStatus; 4 | import com.liaoin.bean.Order; 5 | import com.liaoin.bean.ShippingNotice; 6 | import com.liaoin.dao.OrderRepository; 7 | import com.liaoin.dao.ShippingNoticeRepository; 8 | import com.liaoin.dfbs.bean.QrCodeContentRecord; 9 | import com.liaoin.dfbs.dao.QrCodeContentRecordRepository; 10 | import com.liaoin.message.OperateResult; 11 | import com.liaoin.service.OrderService; 12 | import com.liaoin.service.ShippingNoticeService; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import org.springframework.stereotype.Service; 15 | 16 | import javax.transaction.Transactional; 17 | 18 | import static com.liaoin.message.OperateResult.success; 19 | 20 | @Service 21 | @Transactional 22 | public class ShippingNoticeServiceImpl implements ShippingNoticeService { 23 | 24 | @Autowired 25 | private ShippingNoticeRepository shippingNoticeRepository; 26 | 27 | @Autowired 28 | private QrCodeContentRecordRepository qrCodeContentRecordRepository; 29 | 30 | @Autowired 31 | private OrderRepository orderRepository; 32 | 33 | @Autowired 34 | private OrderService orderService; 35 | 36 | @Override 37 | public OperateResult shippingNotice(ShippingNotice shippingNotice) { 38 | shippingNoticeRepository.save(shippingNotice); 39 | 40 | QrCodeContentRecord qrCodeContentRecord = qrCodeContentRecordRepository.findByOrderNo(shippingNotice.getOrderNo()); 41 | Order order = orderRepository.findByQrCodeContentRecordId(qrCodeContentRecord.getId()); 42 | if(shippingNotice.getDeliverStatus().equals("0")){ 43 | order.setOrderStatus(OrderStatus.SHIPMENT_SCUEESS); 44 | orderRepository.save(order); 45 | }else{ 46 | order.setOrderStatus(OrderStatus.SHIPMENT_FAIL); 47 | orderRepository.save(order); 48 | //退款操作 49 | orderService.refund(order.getId()); 50 | } 51 | return success(); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/jsp/header.jsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 25 | 28 | 36 | 38 | 39 | 40 | 41 | 42 | 43 | 48 | 49 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/controller/OrderController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.Enum.OrderStatus; 4 | import com.liaoin.annotation.LoadWeiXinUser; 5 | import com.liaoin.bean.Order; 6 | import com.liaoin.bean.WeiXinUser; 7 | import com.liaoin.service.OrderService; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.http.ResponseEntity; 10 | import org.springframework.stereotype.Controller; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestMethod; 13 | import org.springframework.web.bind.annotation.RequestParam; 14 | import org.springframework.web.bind.annotation.ResponseBody; 15 | import org.springframework.web.servlet.ModelAndView; 16 | 17 | import javax.servlet.http.HttpServletRequest; 18 | import java.util.List; 19 | 20 | import static org.springframework.http.ResponseEntity.ok; 21 | 22 | @Controller 23 | @RequestMapping("Order") 24 | public class OrderController { 25 | 26 | @Autowired 27 | private OrderService orderService; 28 | 29 | /** 30 | * 我的订单列表 31 | */ 32 | @RequestMapping(value = "/index",method = RequestMethod.GET) 33 | @ResponseBody 34 | public ModelAndView index( 35 | @LoadWeiXinUser WeiXinUser weiXinUser, 36 | @RequestParam(required = false) OrderStatus orderStatus, 37 | ModelAndView modelAndView 38 | ){ 39 | Order order = Order.builder() 40 | .weiXinUser(weiXinUser) 41 | .orderStatus(orderStatus) 42 | .build(); 43 | List orders = orderService.queryByWhere(order); 44 | modelAndView.addObject("orders",orders); 45 | modelAndView.addObject("orderStatus",orderStatus); 46 | modelAndView.setViewName("Order/index"); 47 | return modelAndView; 48 | } 49 | 50 | @RequestMapping(value = "/delete",method = RequestMethod.POST) 51 | public ResponseEntity delete ( 52 | @RequestParam String orderId 53 | ){ 54 | return ok(orderService.delete(orderId)); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/interceptor/WebAppConfigurer.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.interceptor; 2 | 3 | //import com.liaoin.constant.Constant; 4 | //import com.liaoin.util.FileUtils; 5 | import com.liaoin.resolvers.AdminArgumentResolver; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.context.annotation.Configuration; 8 | import org.springframework.web.method.support.HandlerMethodArgumentResolver; 9 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 10 | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 11 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 12 | import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; 13 | 14 | import javax.annotation.Resource; 15 | import java.util.List; 16 | 17 | 18 | @Configuration 19 | public class WebAppConfigurer extends WebMvcConfigurerAdapter { 20 | 21 | 22 | @Autowired 23 | private AuthorizationInterceptor authorizationInterceptor; 24 | 25 | @Resource 26 | private AdminArgumentResolver adminArgumentResolver; 27 | 28 | @Override 29 | public void addInterceptors(InterceptorRegistry registry) { 30 | // 多个拦截器组成一个拦截器链 31 | // addPathPatterns 用于添加拦截规则 32 | // excludePathPatterns 用户排除拦截 33 | registry.addInterceptor(authorizationInterceptor) 34 | .excludePathPatterns("/") 35 | .excludePathPatterns("/Login/doLogin") 36 | ; 37 | } 38 | 39 | @Override 40 | public void addArgumentResolvers(List argumentResolvers) { 41 | argumentResolvers.add(adminArgumentResolver); 42 | } 43 | 44 | @Override 45 | public void addResourceHandlers(ResourceHandlerRegistry registry){ 46 | try { 47 | // String path = FileUtils.rootPath(); 48 | // registry.addResourceHandler(Constant.PATH.FILE_UPLOAD_PATH +"/**").addResourceLocations("file:///"+path+"/"+Constant.PATH.FILE_UPLOAD_PATH+"/"); 49 | }catch (Exception e){ 50 | } 51 | 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/interceptor/AuthorizationInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.interceptor; 2 | 3 | 4 | import com.google.gson.Gson; 5 | import com.liaoin.bean.Admin; 6 | import com.liaoin.message.OperateResult; 7 | import org.springframework.http.MediaType; 8 | import org.springframework.stereotype.Component; 9 | import org.springframework.web.method.HandlerMethod; 10 | import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 11 | 12 | import javax.servlet.http.HttpServletRequest; 13 | import javax.servlet.http.HttpServletResponse; 14 | import java.io.IOException; 15 | import java.io.PrintWriter; 16 | 17 | 18 | /** 19 | * 自定义拦截器,判断此次请求是否有权限 20 | * 21 | * 22 | */ 23 | @Component 24 | public class AuthorizationInterceptor extends HandlerInterceptorAdapter { 25 | 26 | 27 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 28 | //如果不是映射到方法直接通过 29 | 30 | if (!(handler instanceof HandlerMethod)) { 31 | return true; 32 | } 33 | 34 | Admin admin = (Admin) request.getSession().getAttribute("admin"); 35 | // if(admin == null || request.getRequestURI().equals("/error")){ 36 | if(admin == null){ 37 | response.sendRedirect(request.getContextPath()+"/"); 38 | return false; 39 | } 40 | return true; 41 | } 42 | 43 | 44 | 45 | /** 46 | * 返回错误信息 47 | */ 48 | public void response(HttpServletResponse response, OperateResult operateResult){ 49 | response.setHeader("Cache-Control", "no-store"); 50 | response.setHeader("Pragma", "no-cache"); 51 | response.setContentType(MediaType.APPLICATION_JSON_VALUE); 52 | response.setCharacterEncoding("UTF-8"); 53 | PrintWriter out= null; 54 | try { 55 | out = response.getWriter(); 56 | out.write(new Gson().toJson(operateResult)); 57 | out.flush(); 58 | } catch (IOException e) { 59 | e.printStackTrace(); 60 | }finally { 61 | 62 | out.close(); 63 | } 64 | 65 | } 66 | 67 | 68 | } 69 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/interceptor/AuthorizationInterceptor.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.interceptor; 2 | 3 | 4 | import com.google.gson.Gson; 5 | import com.liaoin.bean.WeiXinUser; 6 | import com.liaoin.message.OperateResult; 7 | import org.springframework.http.MediaType; 8 | import org.springframework.stereotype.Component; 9 | import org.springframework.web.method.HandlerMethod; 10 | import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 11 | 12 | import javax.servlet.http.HttpServletRequest; 13 | import javax.servlet.http.HttpServletResponse; 14 | import java.io.IOException; 15 | import java.io.PrintWriter; 16 | 17 | 18 | /** 19 | * 自定义拦截器,判断此次请求是否有权限 20 | * 21 | * 22 | */ 23 | @Component 24 | public class AuthorizationInterceptor extends HandlerInterceptorAdapter { 25 | 26 | 27 | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 28 | //如果不是映射到方法直接通过 29 | 30 | if (!(handler instanceof HandlerMethod)) { 31 | return true; 32 | } 33 | 34 | WeiXinUser weiXinUser = (WeiXinUser) request.getSession().getAttribute("weiXinUser"); 35 | // if(weiXinUser == null || request.getRequestURI().equals("/error")){ 36 | if(weiXinUser == null){ 37 | response.sendRedirect(request.getContextPath()+"/"); 38 | return false; 39 | } 40 | return true; 41 | } 42 | 43 | 44 | 45 | /** 46 | * 返回错误信息 47 | */ 48 | public void response(HttpServletResponse response, OperateResult operateResult){ 49 | response.setHeader("Cache-Control", "no-store"); 50 | response.setHeader("Pragma", "no-cache"); 51 | response.setContentType(MediaType.APPLICATION_JSON_VALUE); 52 | response.setCharacterEncoding("UTF-8"); 53 | PrintWriter out= null; 54 | try { 55 | out = response.getWriter(); 56 | out.write(new Gson().toJson(operateResult)); 57 | out.flush(); 58 | } catch (IOException e) { 59 | e.printStackTrace(); 60 | }finally { 61 | 62 | out.close(); 63 | } 64 | 65 | } 66 | 67 | 68 | } 69 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/java/com/liaoin/controller/MainController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.annotation.LoadAdmin; 4 | import com.liaoin.bean.Admin; 5 | import com.liaoin.bean.AdminRole; 6 | import com.liaoin.service.AdminService; 7 | import com.liaoin.service.MenuService; 8 | import com.liaoin.service.RoleService; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Controller; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestMethod; 13 | import org.springframework.web.bind.annotation.ResponseBody; 14 | import org.springframework.web.servlet.ModelAndView; 15 | 16 | import java.util.List; 17 | 18 | /** 19 | * Created by Administrator on 2017/6/29. 20 | */ 21 | @Controller 22 | @RequestMapping("Main") 23 | public class MainController { 24 | 25 | @Autowired 26 | private MenuService menuService; 27 | 28 | @Autowired 29 | private AdminService adminService; 30 | 31 | @Autowired 32 | private RoleService roleService; 33 | 34 | /** 35 | * 首页 36 | */ 37 | @RequestMapping(value = "/index",method = RequestMethod.GET) 38 | @ResponseBody 39 | public ModelAndView index( 40 | @LoadAdmin Admin admin, 41 | ModelAndView modelAndView 42 | ){ 43 | if(admin.getUsername().equals("admin")){ 44 | modelAndView.addObject("menus",menuService.queryMenus(null)); 45 | }else{ 46 | //查询用户权限 47 | List roleIds = adminService.queryAdminRoleIdsList(admin); 48 | List menuIds = roleService.queryRoleList(roleIds); 49 | modelAndView.addObject("menus",menuService.queryAdminMenus(menuIds,null)); 50 | } 51 | 52 | modelAndView.setViewName("Main/index"); 53 | return modelAndView; 54 | } 55 | 56 | /** 57 | * 首页 58 | */ 59 | @RequestMapping(value = "/main",method = RequestMethod.GET) 60 | @ResponseBody 61 | public ModelAndView main(ModelAndView modelAndView){ 62 | modelAndView.setViewName("Main/main"); 63 | return modelAndView; 64 | } 65 | 66 | 67 | } 68 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/webapp/WEB-INF/Pay/choose.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 选择优惠券 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | 25 |
26 |
27 | 28 |
29 |
30 | 优惠券号 31 | ${userCoupon.coupon.number} 32 |
33 |
34 | 35 | ${userCoupon.coupon.money} 36 | 37 |
38 | ${userCoupon.coupon.beginDate}至
${userCoupon.coupon.endDate}使用 39 |
40 |
41 |
42 |
43 |
44 |
45 | 确定选择 46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/PushUser/users.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | <%@ page import= "com.liaoin.util.Base64"%> 5 | 13 | 14 | 15 |
16 | 20 | 25 |
26 | <%--
--%> 27 | <%----%> 28 | <%--
--%> 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 48 | 49 | 52 | 53 | 54 | 55 | 56 | 57 |
58 |
59 | 60 | 61 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/Admin/index.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | 12 | 13 | 14 |
15 | 19 |
20 | <%--
--%> 21 | <%----%> 22 | <%--
--%> 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 46 | 56 | 57 | 58 | 59 | 60 | 61 |
62 |
63 | 64 | 65 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/controller/IndexController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.google.gson.Gson; 4 | import com.liaoin.bean.WeiXinUser; 5 | import com.liaoin.constant.WechatConstant; 6 | import com.liaoin.service.WeiXinUserService; 7 | import com.liaoin.util.Base64; 8 | import com.liaoin.wechat.AccessToken; 9 | import com.liaoin.wechat.UserInfo; 10 | import com.liaoin.wechat.WechatUtils; 11 | import lombok.extern.slf4j.Slf4j; 12 | import org.springframework.beans.factory.annotation.Autowired; 13 | import org.springframework.stereotype.Controller; 14 | import org.springframework.web.bind.annotation.RequestMapping; 15 | import org.springframework.web.bind.annotation.RequestMethod; 16 | import org.springframework.web.bind.annotation.RequestParam; 17 | import org.springframework.web.bind.annotation.ResponseBody; 18 | import org.springframework.web.context.WebApplicationContext; 19 | import org.springframework.web.context.support.WebApplicationContextUtils; 20 | import org.springframework.web.servlet.ModelAndView; 21 | 22 | import javax.servlet.http.HttpServletRequest; 23 | import javax.servlet.http.HttpServletResponse; 24 | import javax.servlet.http.HttpSession; 25 | import java.net.URLEncoder; 26 | import java.util.Date; 27 | 28 | @Controller 29 | @Slf4j 30 | public class IndexController { 31 | 32 | @Autowired 33 | private WeiXinUserService weiXinUserService; 34 | 35 | @RequestMapping(value = "/index",method = RequestMethod.GET) 36 | @ResponseBody 37 | public void index( 38 | @RequestParam String code, 39 | HttpServletRequest request, 40 | HttpServletResponse response 41 | )throws Exception{ 42 | weiXinUserService.authorization(code,request); 43 | response.sendRedirect(request.getContextPath()+"/User/index"); 44 | } 45 | 46 | @RequestMapping(value = "/",method = RequestMethod.GET) 47 | @ResponseBody 48 | public void home( 49 | HttpServletRequest request, 50 | HttpServletResponse response 51 | )throws Exception{ 52 | WeiXinUser weiXinUser = weiXinUserService.findByOpenid("o--Z95kr4Jvkh1exKzgE_dhz_flM"); 53 | request.getSession().setAttribute("weiXinUser",weiXinUser); 54 | response.sendRedirect(request.getContextPath()+"/Goods/info"); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /java/bdwl/backstage/src/main/webapp/WEB-INF/Coupon/users.jsp: -------------------------------------------------------------------------------- 1 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 | <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 3 | 4 | <%@ page import= "com.liaoin.util.Base64"%> 5 | 13 | 14 | 15 |
16 | 20 | 26 |
27 | <%--
--%> 28 | <%----%> 29 | <%--
--%> 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 50 | 53 | 54 | 55 | 56 | 57 | 58 |
59 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /java/bdwl/wechat/src/main/java/com/liaoin/controller/UserController.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.controller; 2 | 3 | import com.liaoin.annotation.LoadWeiXinUser; 4 | import com.liaoin.bean.RechargeAmount; 5 | import com.liaoin.bean.WeiXinUser; 6 | import com.liaoin.service.RechargeAmountService; 7 | import com.liaoin.service.WeiXinUserService; 8 | import com.liaoin.util.Base64; 9 | import org.springframework.beans.factory.annotation.Autowired; 10 | import org.springframework.stereotype.Controller; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestMethod; 13 | import org.springframework.web.bind.annotation.ResponseBody; 14 | import org.springframework.web.servlet.ModelAndView; 15 | 16 | import javax.servlet.http.HttpServletRequest; 17 | import java.util.List; 18 | 19 | @Controller 20 | @RequestMapping("User") 21 | public class UserController { 22 | 23 | @Autowired 24 | private WeiXinUserService weiXinUserService; 25 | 26 | @Autowired 27 | private RechargeAmountService rechargeAmountService; 28 | 29 | /** 30 | * 个人中心 31 | */ 32 | @RequestMapping(value = "/index",method = RequestMethod.GET) 33 | @ResponseBody 34 | public ModelAndView index( 35 | @LoadWeiXinUser WeiXinUser weiXinUser, 36 | ModelAndView modelAndView 37 | ){ 38 | weiXinUser = weiXinUserService.findById(weiXinUser.getId()); 39 | weiXinUser.setNickname(Base64.decryptBASE64(weiXinUser.getNickname())); 40 | modelAndView.addObject("weiXinUser",weiXinUser); 41 | modelAndView.setViewName("User/index"); 42 | return modelAndView; 43 | } 44 | 45 | /** 46 | * 余额 47 | */ 48 | @RequestMapping(value = "/balance",method = RequestMethod.GET) 49 | @ResponseBody 50 | public ModelAndView balance( 51 | @LoadWeiXinUser WeiXinUser weiXinUser, 52 | ModelAndView modelAndView 53 | ){ 54 | modelAndView.addObject("weiXinUser",weiXinUserService.findByOpenid(weiXinUser.getOpenid())); 55 | 56 | //查询充值金额 57 | List rechargeAmounts = rechargeAmountService.findAll(); 58 | modelAndView.addObject("rechargeAmounts",rechargeAmounts); 59 | modelAndView.setViewName("User/balance"); 60 | return modelAndView; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /java/bdwl/wechat-code-util/src/main/java/com/liaoin/wxpay/PayCommonUtil.java: -------------------------------------------------------------------------------- 1 | package com.liaoin.wxpay; 2 | 3 | 4 | import com.liaoin.constant.WechatConstant; 5 | import com.liaoin.wxpay.util.MD5Util; 6 | 7 | import java.util.Iterator; 8 | import java.util.Map; 9 | import java.util.Set; 10 | import java.util.SortedMap; 11 | 12 | /** 13 | * Created by Administrator on 2017/5/17. 14 | */ 15 | public class PayCommonUtil { 16 | 17 | //定义签名,微信根据参数字段的ASCII码值进行排序 加密签名,故使用SortMap进行参数排序 18 | public static String createSign(String characterEncoding,SortedMap parameters){ 19 | StringBuffer sb = new StringBuffer(); 20 | Set es = parameters.entrySet(); 21 | Iterator it = es.iterator(); 22 | while(it.hasNext()) { 23 | Map.Entry entry = (Map.Entry)it.next(); 24 | String k = (String)entry.getKey(); 25 | Object v = entry.getValue(); 26 | if(null != v && !"".equals(v) 27 | && !"sign".equals(k) && !"key".equals(k)) { 28 | sb.append(k + "=" + v + "&"); 29 | } 30 | } 31 | sb.append("key=" + WechatConstant.PARTNER_KEY);//最后加密时添加商户密钥,由于key值放在最后,所以不用添加到SortMap里面去,单独处理,编码方式采用UTF-8 32 | String sign = MD5Util.MD5Encode(sb.toString(), characterEncoding).toUpperCase(); 33 | return sign; 34 | } 35 | 36 | //将封装好的参数转换成Xml格式类型的字符串 37 | 38 | public static String getRequestXml(SortedMap parameters){ 39 | StringBuffer sb = new StringBuffer(); 40 | sb.append(""); 41 | Set es = parameters.entrySet(); 42 | Iterator it = es.iterator(); 43 | while(it.hasNext()) { 44 | Map.Entry entry = (Map.Entry)it.next(); 45 | String k = (String)entry.getKey(); 46 | String v = (String)entry.getValue(); 47 | if("sign".equalsIgnoreCase(k)){ 48 | 49 | } 50 | else if ("attach".equalsIgnoreCase(k)||"body".equalsIgnoreCase(k)) { 51 | sb.append("<"+k+">"+""); 52 | } 53 | else { 54 | sb.append("<"+k+">"+v+""); 55 | } 56 | } 57 | sb.append("<"+"sign"+">"+""); 58 | sb.append(""); 59 | return sb.toString(); 60 | } 61 | } 62 | --------------------------------------------------------------------------------