From 33a592b833e0dfa5bc264335e54d67d926fa7f96 Mon Sep 17 00:00:00 2001 From: hupeng Date: Fri, 29 Nov 2019 19:03:46 +0800 Subject: [PATCH] =?UTF-8?q?1.3.3=E6=96=B0=E5=A2=9E=20=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=9B=BE=E6=96=87=E5=8F=91=E9=80=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E5=B0=8F=E7=A8=8B=E5=BA=8F=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E7=AD=89,=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9Bbug?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 19 +- pom.xml | 19 ++ sql/yxshop.sql | 197 +++++++++++-- yshop-api/pom.xml | 5 - .../java/co/yixiang/common/api/ApiCode.java | 1 + .../co/yixiang/config/ConfigurerAdapter.java | 17 +- .../web/controller/ShoperController.java | 161 +++++++++++ .../modules/manage/web/dto/ChartDataDTO.java | 16 ++ .../modules/manage/web/dto/OrderDataDTO.java | 17 ++ .../manage/web/dto/OrderTimeDataDTO.java | 20 ++ .../manage/web/param/OrderDeliveryParam.java | 23 ++ .../manage/web/param/OrderPriceParam.java | 20 ++ .../manage/web/param/OrderRefundParam.java | 22 ++ .../manage/web/param/OrderRemarkParam.java | 20 ++ .../order/mapper/YxStoreOrderMapper.java | 32 +++ .../order/service/YxStoreOrderService.java | 23 ++ .../service/impl/YxStoreOrderServiceImpl.java | 266 +++++++++++++++++- .../web/controller/StoreOrderController.java | 4 +- .../security/config/SecurityConfig.java | 1 + .../shop/web/controller/IndexController.java | 7 +- .../modules/user/mapper/YxUserMapper.java | 4 + .../modules/user/service/YxUserService.java | 2 + .../user/service/impl/YxUserServiceImpl.java | 10 + .../web/controller/WechatController.java | 54 ++-- .../web/controller/WxMaUserController.java | 198 +++++++++++++ .../src/main/resources/config/application.yml | 29 +- .../main/java/co/yixiang/utils/OrderUtil.java | 11 + .../main/java/co/yixiang/utils/RedisUtil.java | 145 ++++++++++ .../co/yixiang/utils/SpringContextUtils.java | 41 +++ .../java/co/yixiang/domain/GenConfig.java | 3 +- yshop-mp/pom.xml | 10 +- .../yixiang/mp/config/WxMpConfiguration.java | 39 ++- .../mp/controller/YxArticleController.java | 10 +- .../mp/controller/YxCacheController.java | 3 + .../controller/YxWechatReplyController.java | 3 + .../co/yixiang/mp/handler/RedisHandler.java | 31 ++ .../yixiang/mp/handler/SubscribeHandler.java | 6 - .../yixiang/mp/service/YxArticleService.java | 3 + .../yixiang/mp/service/dto/YxArticleDTO.java | 2 + .../mp/service/impl/YxArticleServiceImpl.java | 119 ++++++++ .../java/co/yixiang/mp/utils/URLUtils.java | 76 +++++ .../co/yixiang/config/ConfigurerAdapter.java | 16 +- .../service/impl/RedisServiceImpl.java | 3 + .../repository/YxStoreOrderRepository.java | 34 +++ .../shop/rest/YxStoreCategoryController.java | 2 + .../shop/rest/YxStoreOrderController.java | 13 + .../shop/rest/YxStoreProductController.java | 2 + .../shop/service/YxStoreOrderService.java | 4 + .../shop/service/dto/ChartDataDTO.java | 19 ++ .../shop/service/dto/OrderTimeDataDTO.java | 23 ++ .../service/impl/YxStoreOrderServiceImpl.java | 43 ++- .../modules/system/rest/RoleController.java | 4 +- .../modules/system/rest/UserController.java | 1 + .../modules/system/service/dto/MenuDTO.java | 3 +- .../wechat/rest/YxSystemConfigController.java | 21 +- .../impl/YxSystemConfigServiceImpl.java | 4 +- .../src/main/resources/config/application.yml | 15 +- 57 files changed, 1726 insertions(+), 170 deletions(-) create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/controller/ShoperController.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/ChartDataDTO.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderDataDTO.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderTimeDataDTO.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderDeliveryParam.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderPriceParam.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRefundParam.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRemarkParam.java create mode 100644 yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WxMaUserController.java create mode 100644 yshop-common/src/main/java/co/yixiang/utils/RedisUtil.java create mode 100644 yshop-common/src/main/java/co/yixiang/utils/SpringContextUtils.java create mode 100644 yshop-mp/src/main/java/co/yixiang/mp/handler/RedisHandler.java create mode 100644 yshop-mp/src/main/java/co/yixiang/mp/utils/URLUtils.java create mode 100644 yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/ChartDataDTO.java create mode 100644 yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/OrderTimeDataDTO.java diff --git a/README.md b/README.md index 07b555c8..e93d7a89 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit | | 后台系统 | 前端(公众号) | |--- |--- | --- | -| | https://yshop.dayouqiantu.cn |g公众号:YshopMall | +| | https://yshop.dayouqiantu.cn |H5:https://h5.dayouqiantu.cn 测试号:hupeng/123456,也可以自行注册 | | | 后台体验账号/密码:admin/123456 | 公众号:![输入图片说明](https://images.gitee.com/uploads/images/2019/1116/060936_fd73496c_477893.jpeg "qrcode_for_gh_95df5a2881cc_258.jpg") | @@ -24,7 +24,6 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit #### 开源版本与VIP版本说明 - ### 开源版 1.包括整个商城系统后台、数据库、api(只是简单的配置好模块); @@ -41,7 +40,6 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit 4、VIP为终身,【[详情请查看](https://gitee.com/guchengwuyue/yshopmall/wikis/pages?sort_id=1715823&doc_id=441578)】 - ## 商城功能 * 一:商品模块:商品添加、规格设置,商品上下架等 @@ -51,13 +49,12 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit * 五:配置模块:各种配置 * 六:用户模块:登陆、注册、会员卡等 * 七:其他等 - + #### 已经完成功能 - 可以具体查看演示地址查看当前版本已经完成的功能,不再絮叨啦 - #### 项目结构 项目采用分模块开发方式 - yshop-api 公众号(H5)API模块 @@ -84,7 +81,7 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit - + @@ -104,11 +101,11 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit ## 技术选型 * 1 后端使用技术 - * 1.1 SpringBoot + * 1.1 SpringBoot2 * 1.2 mybatis、MyBatis-Plus * 1.3 SpringSecurity - * 1.4 JAP - * 1.5 Druid1 + * 1.4 JPA + * 1.5 Druid * 1.6 Slf4j * 1.7 Fastjson * 1.8 JWT @@ -120,6 +117,7 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit * 1.14 Lombok * 1.15 Hutool * 1.16 Mapstruct + * 1.17 Redisson * 前端使用技术 * 2.1 Vue 全家桶 @@ -133,7 +131,8 @@ yshop基于当前流行技术组合: SpringBoot2+Jpa+MybatisPlus+SpringSecurit - 1.2版本分销功能已经发布 - 1.2.1增加了未付款订单取消功能库存销量退出、优惠券、积分功能,个人中心增加了积分流水 - 1.3版本新增拼团功能,已经发布 -- 1.4版本规划:补充公众号功能、新增redisson队列、发布mpvue小程序 +- 1.3.1版本手机端新增商户管理、后台新增统计 +- 1.4版本规划:补充公众号功能、发布mpvue小程序 #### 反馈交流 diff --git a/pom.xml b/pom.xml index ae136c0d..29c14ae3 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,7 @@ 1.2.0.Final + @@ -201,6 +202,24 @@ redisson 3.11.2 + + + + + + + + + + + + + + + + + + diff --git a/sql/yxshop.sql b/sql/yxshop.sql index 81d2e25a..429d6ef5 100644 --- a/sql/yxshop.sql +++ b/sql/yxshop.sql @@ -11,7 +11,7 @@ Target Server Version : 50723 File Encoding : 65001 - Date: 21/11/2019 22:12:59 + Date: 29/11/2019 18:50:16 */ SET NAMES utf8mb4; @@ -222,7 +222,7 @@ CREATE TABLE `log` ( `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 17006 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +) ENGINE = InnoDB AUTO_INCREMENT = 17112 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of log @@ -2964,6 +2964,112 @@ INSERT INTO `log` VALUES (17002, '2019-11-21 19:48:32', '查询记录', NULL, 'I INSERT INTO `log` VALUES (17003, '2019-11-21 19:49:16', '查询记录', NULL, 'INFO', 'co.yixiang.modules.activity.rest.YxStorePinkController.getYxStorePinks()', '{ criteria: YxStorePinkQueryCriteria(kId=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 119, 'admin', '内网IP'); INSERT INTO `log` VALUES (17004, '2019-11-21 20:13:09', '查询拼团', NULL, 'INFO', 'co.yixiang.modules.activity.rest.YxStoreCombinationController.getYxStoreCombinations()', '{ criteria: YxStoreCombinationQueryCriteria(title=null, isDel=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 193, 'admin', '内网IP'); INSERT INTO `log` VALUES (17005, '2019-11-21 20:13:39', '查询记录', NULL, 'INFO', 'co.yixiang.modules.activity.rest.YxStorePinkController.getYxStorePinks()', '{ criteria: YxStorePinkQueryCriteria(kId=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 267, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17006, '2019-11-22 18:50:39', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 1046, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17007, '2019-11-22 18:50:46', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=0, isShow=1) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 208, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17008, '2019-11-22 18:50:47', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=null, isShow=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 20, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17009, '2019-11-22 18:50:47', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=1, isShow=null) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 346, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17010, '2019-11-22 20:14:25', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 152, '', '内网IP'); +INSERT INTO `log` VALUES (17011, '2019-11-23 20:01:37', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 122, '', '内网IP'); +INSERT INTO `log` VALUES (17012, '2019-11-24 14:06:57', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 737, '', '内网IP'); +INSERT INTO `log` VALUES (17013, '2019-11-24 14:06:59', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 71, '', '内网IP'); +INSERT INTO `log` VALUES (17014, '2019-11-24 14:33:51', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 1598, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17015, '2019-11-24 14:37:33', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=0, isShow=1) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 210, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17016, '2019-11-24 14:37:33', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=null, isShow=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 210, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17017, '2019-11-24 14:37:33', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=1, isShow=null) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 234, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17018, '2019-11-24 16:02:58', '查询拼团', NULL, 'INFO', 'co.yixiang.modules.activity.rest.YxStoreCombinationController.getYxStoreCombinations()', '{ criteria: YxStoreCombinationQueryCriteria(title=null, isDel=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 465, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17019, '2019-11-24 16:03:07', '修改拼团', NULL, 'INFO', 'co.yixiang.modules.activity.rest.YxStoreCombinationController.update()', '{ resources: YxStoreCombination(id=2, productId=19, merId=null, image=https://image.dayouqiantu.cn/5ca011a1cd487.jpg, images=https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg, title=70gA4黑白打印复印, attr=null, people=2, info=打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务, price=1, sort=1, sales=24, stock=93, addTime=1574066608, isHost=1, isShow=1, isDel=0, combination=1, merUse=null, isPostage=1, postage=0, description=

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

, startTime=1574066592, stopTime=1574870400, startTimeDate=Mon Nov 18 16:43:12 CST 2019, endTimeDate=Thu Nov 28 00:00:00 CST 2019, effectiveTime=24, cost=0, browse=0, unitName=张) }', '127.0.0.1', 229, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17020, '2019-11-24 16:03:07', '查询拼团', NULL, 'INFO', 'co.yixiang.modules.activity.rest.YxStoreCombinationController.getYxStoreCombinations()', '{ criteria: YxStoreCombinationQueryCriteria(title=null, isDel=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 56, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17021, '2019-11-24 17:23:19', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 504, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17022, '2019-11-24 17:24:23', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=null, isShow=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 106, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17023, '2019-11-24 17:24:23', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=0, isShow=1) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 256, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17024, '2019-11-24 17:24:24', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=1, isShow=null) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 341, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17025, '2019-11-24 17:24:29', '查询商品分类', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreCategoryController.getYxStoreCategorys()', '{ criteria: YxStoreCategoryQueryCriteria(cateName=null) pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 32, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17026, '2019-11-24 17:28:46', '查询商品分类', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreCategoryController.getYxStoreCategorys()', '{ criteria: YxStoreCategoryQueryCriteria(cateName=null) pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 331, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17027, '2019-11-24 17:28:48', '修改商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.update()', '{ resources: YxStoreProduct(id=19, merId=null, image=https://image.dayouqiantu.cn/5ca011a1cd487.jpg, sliderImage=https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg, storeName=70gA4黑白打印复印, storeInfo=打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务, keyword=打印复印, barCode=, cateId=24, price=120, vipPrice=0.2, otPrice=0.5, postage=0, unitName=张, sort=1, sales=18, stock=99, isShow=1, isHot=1, isBenefit=1, isBest=1, isNew=1, description=

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

, addTime=null, isPostage=1, isDel=0, merUse=0, giveIntegral=1, cost=0.2, isSeckill=0, isBargain=0, isGood=1, ficti=null, browse=null, codePath=, soureLink=) }', '127.0.0.1', 146, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17028, '2019-11-24 17:28:49', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=0, isShow=1) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 278, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17029, '2019-11-24 17:28:52', '查询商品分类', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreCategoryController.getYxStoreCategorys()', '{ criteria: YxStoreCategoryQueryCriteria(cateName=null) pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 12, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17030, '2019-11-24 17:30:22', '查询YxSystemConfig', 'java.lang.ClassCastException: co.yixiang.mp.domain.YxSystemConfig cannot be cast to co.yixiang.modules.wechat.domain.YxSystemConfig\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:899)\r\n at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at org.springframework.data.domain.Chunk.getConvertedContent(Chunk.java:167)\r\n at org.springframework.data.domain.PageImpl.map(PageImpl.java:106)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl.queryAll(YxSystemConfigServiceImpl.java:39)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl$$FastClassBySpringCGLIB$$765350da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl$$EnhancerBySpringCGLIB$$606c1d65.queryAll()\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs(YxSystemConfigController.java:38)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$FastClassBySpringCGLIB$$f6c0c8dc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$EnhancerBySpringCGLIB$$675446db.getYxSystemConfigs()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 145, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17031, '2019-11-24 17:30:38', '查询YxSystemConfig', 'java.lang.ClassCastException: co.yixiang.mp.domain.YxSystemConfig cannot be cast to co.yixiang.modules.wechat.domain.YxSystemConfig\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:899)\r\n at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at org.springframework.data.domain.Chunk.getConvertedContent(Chunk.java:167)\r\n at org.springframework.data.domain.PageImpl.map(PageImpl.java:106)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl.queryAll(YxSystemConfigServiceImpl.java:39)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl$$FastClassBySpringCGLIB$$765350da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl$$EnhancerBySpringCGLIB$$606c1d65.queryAll()\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs(YxSystemConfigController.java:38)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$FastClassBySpringCGLIB$$f6c0c8dc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$EnhancerBySpringCGLIB$$675446db.getYxSystemConfigs()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 6, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17032, '2019-11-24 17:31:58', '查询YxSystemConfig', 'java.lang.ClassCastException: co.yixiang.mp.domain.YxSystemConfig cannot be cast to co.yixiang.modules.wechat.domain.YxSystemConfig\r\n at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)\r\n at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:899)\r\n at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)\r\n at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)\r\n at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)\r\n at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)\r\n at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)\r\n at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)\r\n at org.springframework.data.domain.Chunk.getConvertedContent(Chunk.java:167)\r\n at org.springframework.data.domain.PageImpl.map(PageImpl.java:106)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl.queryAll(YxSystemConfigServiceImpl.java:39)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl$$FastClassBySpringCGLIB$$765350da.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.service.impl.YxSystemConfigServiceImpl$$EnhancerBySpringCGLIB$$606c1d65.queryAll()\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs(YxSystemConfigController.java:38)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$FastClassBySpringCGLIB$$f6c0c8dc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$EnhancerBySpringCGLIB$$675446db.getYxSystemConfigs()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 8, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17033, '2019-11-24 17:36:53', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 65, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17034, '2019-11-25 19:38:23', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 932, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17035, '2019-11-25 19:38:50', '查询数据配置', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxSystemGroupDataController.getYxSystemGroupDatas()', '{ criteria: YxSystemGroupDataQueryCriteria(groupName=routine_home_roll_news) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 154, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17036, '2019-11-25 19:39:06', '新增数据配置', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxSystemGroupDataController.create()', '{ jsonStr: {\"id\":\"\",\"groupName\":\"routine_home_roll_news\",\"info\":\"新添加\",\"url\":\"/index\"} }', '127.0.0.1', 212, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17037, '2019-11-25 19:39:06', '查询数据配置', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxSystemGroupDataController.getYxSystemGroupDatas()', '{ criteria: YxSystemGroupDataQueryCriteria(groupName=routine_home_roll_news) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 7, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17038, '2019-11-26 11:52:29', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 256, '', '内网IP'); +INSERT INTO `log` VALUES (17039, '2019-11-26 11:54:08', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 659, '', '内网IP'); +INSERT INTO `log` VALUES (17040, '2019-11-26 12:07:04', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 531, '', '内网IP'); +INSERT INTO `log` VALUES (17041, '2019-11-26 13:35:39', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 804, '', '内网IP'); +INSERT INTO `log` VALUES (17042, '2019-11-26 15:08:13', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 393, '', '内网IP'); +INSERT INTO `log` VALUES (17043, '2019-11-27 13:14:16', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=15136175246, password= ******} }', '127.0.0.1', 748, '', '内网IP'); +INSERT INTO `log` VALUES (17044, '2019-11-27 17:24:44', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 560, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17045, '2019-11-27 17:35:08', '查询图片', NULL, 'INFO', 'co.yixiang.rest.PictureController.getRoles()', '{ criteria: PictureQueryCriteria(filename=null, username=null) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 256, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17046, '2019-11-27 19:48:36', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 667, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17047, '2019-11-28 10:40:29', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 671, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17048, '2019-11-28 14:56:02', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 211, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17049, '2019-11-28 14:59:06', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 52, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17050, '2019-11-28 14:59:49', '新增YxSystemConfig', 'co.yixiang.exception.BadRequestException: 演示环境禁止操作\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController.create(YxSystemConfigController.java:46)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$FastClassBySpringCGLIB$$f6c0c8dc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$EnhancerBySpringCGLIB$$ee62d42d.create()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_type\":\"\",\"wechat_avatar\":\"\",\"wechat_encode\":\"\",\"wechat_sourceid\":\"999\",\"wechat_name\":\"9999\",\"wechat_qrcode\":\"\",\"wechat_share_synopsis\":\"\",\"api\":\"\",\"wechat_share_title\":\"\",\"wechat_logo\":\"\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\"} }', '127.0.0.1', 1, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17051, '2019-11-28 15:02:45', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_type\":\"\",\"wechat_avatar\":\"\",\"wechat_encode\":\"\",\"wechat_sourceid\":\"999\",\"wechat_name\":\"9999\",\"wechat_qrcode\":\"\",\"wechat_share_synopsis\":\"\",\"api\":\"\",\"wechat_share_title\":\"\",\"wechat_logo\":\"\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\"} }', '127.0.0.1', 531, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17052, '2019-11-28 15:02:53', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 70, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17053, '2019-11-28 15:04:14', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 4, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17054, '2019-11-28 15:06:11', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_encode\":\"\",\"wechat_qrcode\":\"\",\"wechat_share_synopsis\":\"\",\"api\":\"http://\",\"wechat_share_title\":\"\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_token\":\"999\",\"wechat_encodingaeskey\":\"6666\"} }', '127.0.0.1', 420, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17055, '2019-11-28 15:06:17', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 5, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17056, '2019-11-28 15:06:47', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_encode\":\"\",\"wechat_qrcode\":\"\",\"wechat_share_synopsis\":\"4444444\",\"api\":\"http://\",\"wechat_share_title\":\"4444\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_encodingaeskey\":\"6666\"} }', '127.0.0.1', 148, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17057, '2019-11-28 15:07:18', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 4, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17058, '2019-11-28 15:15:33', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 6, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17059, '2019-11-28 15:16:31', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 4, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17060, '2019-11-28 15:27:48', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 2, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17061, '2019-11-28 15:28:40', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 22, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17062, '2019-11-28 15:32:07', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_share_synopsis\":\"4444444\",\"api\":\"http://你的H5端域名/api/wechat/serve\",\"wechat_share_title\":\"4444\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_encodingaeskey\":\"6666\",\"wechat_token\":\"999\"} }', '127.0.0.1', 456, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17063, '2019-11-28 15:32:13', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 3, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17064, '2019-11-28 15:51:20', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_share_synopsis\":\"4444444\",\"api\":\"http://你的H5端域名/api/wechat/serve\",\"wechat_share_title\":\"4444\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_encodingaeskey\":\"6666\",\"wechat_token\":\"999\"} }', '127.0.0.1', 1700, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17065, '2019-11-28 17:03:54', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 513, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17066, '2019-11-28 17:03:55', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 330, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17067, '2019-11-28 17:04:14', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 13, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17068, '2019-11-28 17:06:22', '新增菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.create()', '{ resources: co.yixiang.modules.system.domain.Menu@6a }', '127.0.0.1', 180, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17069, '2019-11-28 17:06:23', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 21, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17070, '2019-11-28 17:15:52', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 61, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17071, '2019-11-28 17:15:52', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 13, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17072, '2019-11-28 17:16:46', '查询权限', NULL, 'INFO', 'co.yixiang.modules.system.rest.PermissionController.getPermissions()', '{ criteria: PermissionQueryCriteria(blurry=null) }', '127.0.0.1', 511, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17073, '2019-11-28 17:16:53', '查询角色', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.getRoles()', '{ criteria: RoleQueryCriteria(blurry=null) pageable: Page request [number: 0, size 10, sort: level: ASC] }', '127.0.0.1', 1702, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17074, '2019-11-28 17:17:04', '修改角色菜单', 'co.yixiang.exception.BadRequestException: 演示环境禁止操作\r\n at co.yixiang.modules.system.rest.RoleController.updateMenu(RoleController.java:105)\r\n at co.yixiang.modules.system.rest.RoleController$$FastClassBySpringCGLIB$$3c05af4b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.system.rest.RoleController$$EnhancerBySpringCGLIB$$177d1512.updateMenu()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:912)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:663)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.system.rest.RoleController.updateMenu()', '{ resources: Role{id=1, name=\'null\', remark=\'null\', createDateTime=null} }', '127.0.0.1', 1, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17075, '2019-11-28 17:18:31', '修改角色菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.updateMenu()', '{ resources: Role{id=1, name=\'null\', remark=\'null\', createDateTime=null} }', '127.0.0.1', 559, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17076, '2019-11-28 17:19:26', '修改角色菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.updateMenu()', '{ resources: Role{id=1, name=\'null\', remark=\'null\', createDateTime=null} }', '127.0.0.1', 336, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17077, '2019-11-28 17:21:41', '修改角色菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.updateMenu()', '{ resources: Role{id=1, name=\'null\', remark=\'null\', createDateTime=null} }', '127.0.0.1', 400, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17078, '2019-11-28 17:41:20', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 425, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17079, '2019-11-28 17:41:27', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_share_synopsis\":\"4444444\",\"api\":\"http://你的H5端域名/api/wechat/serve\",\"wechat_share_title\":\"4444\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_encodingaeskey\":\"6666\",\"wechat_token\":\"999\",\"wxpay_appId\":\"111111\",\"wxpay_mchId\":\"2222\",\"wxpay_mchKey\":\"55555\"} }', '127.0.0.1', 609, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17080, '2019-11-28 17:41:33', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 7, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17081, '2019-11-28 17:42:21', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 20, sort: UNSORTED] }', '127.0.0.1', 7, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17082, '2019-11-28 17:45:04', '查询角色', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.getRoles()', '{ criteria: RoleQueryCriteria(blurry=null) pageable: Page request [number: 0, size 10, sort: level: ASC] }', '127.0.0.1', 3157, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17083, '2019-11-28 17:45:09', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 215, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17084, '2019-11-28 17:48:47', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=0, isShow=1) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 1121, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17085, '2019-11-28 17:48:47', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=1, isShow=null) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 937, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17086, '2019-11-28 17:48:47', '查询商品', NULL, 'INFO', 'co.yixiang.modules.shop.rest.YxStoreProductController.getYxStoreProducts()', '{ criteria: YxStoreProductQueryCriteria(storeName=null, isDel=null, isShow=0) pageable: Page request [number: 0, size 10, sort: id: DESC] }', '127.0.0.1', 1121, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17087, '2019-11-28 17:55:59', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 50, sort: UNSORTED] }', '127.0.0.1', 87, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17088, '2019-11-28 17:56:15', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 50, sort: UNSORTED] }', '127.0.0.1', 20, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17089, '2019-11-28 17:57:10', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 50, sort: UNSORTED] }', '127.0.0.1', 77, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17090, '2019-11-28 17:57:13', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 50, sort: UNSORTED] }', '127.0.0.1', 43, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17091, '2019-11-29 10:39:13', '用户登录', NULL, 'INFO', 'co.yixiang.modules.security.rest.AuthenticationController.login()', '{ authorizationUser: {username=admin, password= ******} }', '127.0.0.1', 771, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17092, '2019-11-29 15:09:34', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 318, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17093, '2019-11-29 15:09:46', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 19, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17094, '2019-11-29 15:10:45', '新增菜单', 'co.yixiang.exception.BadRequestException: 演示环境禁止操作\r\n at co.yixiang.modules.system.rest.MenuController.create(MenuController.java:77)\r\n at co.yixiang.modules.system.rest.MenuController$$FastClassBySpringCGLIB$$df40f4f4.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.system.rest.MenuController$$EnhancerBySpringCGLIB$$47afb5fb.create()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.system.rest.MenuController.create()', '{ resources: co.yixiang.modules.system.domain.Menu@1f }', '127.0.0.1', 36, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17095, '2019-11-29 15:11:45', '查询权限', NULL, 'INFO', 'co.yixiang.modules.system.rest.PermissionController.getPermissions()', '{ criteria: PermissionQueryCriteria(blurry=null) }', '127.0.0.1', 129, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17096, '2019-11-29 15:11:45', '查询角色', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.getRoles()', '{ criteria: RoleQueryCriteria(blurry=null) pageable: Page request [number: 0, size 10, sort: level: ASC] }', '127.0.0.1', 110, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17097, '2019-11-29 15:12:01', '修改角色菜单', 'co.yixiang.exception.BadRequestException: 演示环境禁止操作\r\n at co.yixiang.modules.system.rest.RoleController.updateMenu(RoleController.java:105)\r\n at co.yixiang.modules.system.rest.RoleController$$FastClassBySpringCGLIB$$3c05af4b.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.system.rest.RoleController$$EnhancerBySpringCGLIB$$239d9360.updateMenu()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:912)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:663)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.system.rest.RoleController.updateMenu()', '{ resources: Role{id=1, name=\'null\', remark=\'null\', createDateTime=null} }', '127.0.0.1', 0, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17098, '2019-11-29 15:13:47', '新增菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.create()', '{ resources: co.yixiang.modules.system.domain.Menu@6b }', '127.0.0.1', 1712, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17099, '2019-11-29 15:13:48', '查询菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.MenuController.getMenus()', '{ criteria: MenuQueryCriteria(blurry=null) }', '127.0.0.1', 170, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17100, '2019-11-29 15:14:01', '查询权限', NULL, 'INFO', 'co.yixiang.modules.system.rest.PermissionController.getPermissions()', '{ criteria: PermissionQueryCriteria(blurry=null) }', '127.0.0.1', 25, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17101, '2019-11-29 15:14:04', '查询角色', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.getRoles()', '{ criteria: RoleQueryCriteria(blurry=null) pageable: Page request [number: 0, size 10, sort: level: ASC] }', '127.0.0.1', 13, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17102, '2019-11-29 15:14:10', '修改角色菜单', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.updateMenu()', '{ resources: Role{id=1, name=\'null\', remark=\'null\', createDateTime=null} }', '127.0.0.1', 687, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17103, '2019-11-29 15:14:18', '查询角色', NULL, 'INFO', 'co.yixiang.modules.system.rest.RoleController.getRoles()', '{ criteria: RoleQueryCriteria(blurry=null) pageable: Page request [number: 0, size 10, sort: level: ASC] }', '127.0.0.1', 170, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17104, '2019-11-29 15:14:23', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 50, sort: UNSORTED] }', '127.0.0.1', 87, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17105, '2019-11-29 15:14:28', '新增YxSystemConfig', 'co.yixiang.exception.BadRequestException: 演示环境禁止操作\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController.create(YxSystemConfigController.java:47)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$FastClassBySpringCGLIB$$f6c0c8dc.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.wechat.rest.YxSystemConfigController$$EnhancerBySpringCGLIB$$6722749f.create()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\n', 'ERROR', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_share_synopsis\":\"4444444\",\"api\":\"http://你的H5端域名/api/wechat/serve\",\"wechat_share_title\":\"4444\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_encodingaeskey\":\"6666\",\"wechat_token\":\"999\",\"wxpay_mchId\":\"2222\",\"wxpay_appId\":\"111111\",\"wxpay_mchKey\":\"55555\",\"wxapp_appId\":\"22222\",\"wxapp_secret\":\"22222222\"} }', '127.0.0.1', 1, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17106, '2019-11-29 15:17:21', '新增YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.create()', '{ jsonStr: {\"wechat_share_img\":\"\",\"wechat_avatar\":\"\",\"wechat_share_synopsis\":\"4444444\",\"api\":\"http://你的H5端域名/api/wechat/serve\",\"wechat_share_title\":\"4444\",\"store_postage\":\"0\",\"store_free_postage\":\"0\",\"integral_ratio\":\"1\",\"store_brokerage_ratio\":\"70\",\"store_brokerage_statu\":\"2\",\"user_extract_min_price\":\"1\",\"store_brokerage_two\":\"30\",\"site_url\":\"http://localhost:8080\",\"api_url\":\"http://127.0.0.1:8009\",\"order_cancel_job_time\":\"20\",\"wechat_appid\":\"1111\",\"wechat_appsecret\":\"2222\",\"wechat_encodingaeskey\":\"6666\",\"wechat_token\":\"999\",\"wxpay_mchId\":\"2222\",\"wxpay_appId\":\"111111\",\"wxpay_mchKey\":\"55555\",\"wxapp_appId\":\"22222\",\"wxapp_secret\":\"22222222\"} }', '127.0.0.1', 532, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17107, '2019-11-29 15:17:27', '查询YxSystemConfig', NULL, 'INFO', 'co.yixiang.modules.wechat.rest.YxSystemConfigController.getYxSystemConfigs()', '{ criteria: YxSystemConfigQueryCriteria() pageable: Page request [number: 0, size 50, sort: UNSORTED] }', '127.0.0.1', 73, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17108, '2019-11-29 15:38:13', '查询Redis缓存', 'org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: WRONGTYPE Operation against a key holding the wrong kind of value\r\n at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:54)\r\n at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52)\r\n at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42)\r\n at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:268)\r\n at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.convertLettuceAccessException(LettuceStringCommands.java:799)\r\n at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.get(LettuceStringCommands.java:68)\r\n at org.springframework.data.redis.connection.DefaultedRedisConnection.get(DefaultedRedisConnection.java:253)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:57)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:59)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:95)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:53)\r\n at co.yixiang.modules.monitor.service.impl.RedisServiceImpl.findByKey(RedisServiceImpl.java:41)\r\n at co.yixiang.modules.monitor.rest.RedisController.getRedis(RedisController.java:28)\r\n at co.yixiang.modules.monitor.rest.RedisController$$FastClassBySpringCGLIB$$3cd2e92f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.monitor.rest.RedisController$$EnhancerBySpringCGLIB$$b8986f20.getRedis()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: io.lettuce.core.RedisCommandExecutionException: WRONGTYPE Operation against a key holding the wrong kind of value\r\n at io.lettuce.core.ExceptionFactory.createExecutionException(ExceptionFactory.java:135)\r\n at io.lettuce.core.ExceptionFactory.createExecutionException(ExceptionFactory.java:108)\r\n at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120)\r\n at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111)\r\n at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:646)\r\n at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:604)\r\n at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:556)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)\r\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)\r\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:628)\r\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563)\r\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'ERROR', 'co.yixiang.modules.monitor.rest.RedisController.getRedis()', '{ key: * pageable: Page request [number: 0, size 10, sort: UNSORTED] }', '127.0.0.1', 162, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17109, '2019-11-29 15:51:08', '查询Redis缓存', NULL, 'INFO', 'co.yixiang.modules.monitor.rest.RedisController.getRedis()', '{ key: * pageable: Page request [number: 0, size 10, sort: UNSORTED] }', '127.0.0.1', 160, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17110, '2019-11-29 16:08:22', '查询Redis缓存', 'org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: WRONGTYPE Operation against a key holding the wrong kind of value\r\n at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:54)\r\n at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52)\r\n at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)\r\n at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)\r\n at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42)\r\n at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:268)\r\n at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.convertLettuceAccessException(LettuceStringCommands.java:799)\r\n at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.get(LettuceStringCommands.java:68)\r\n at org.springframework.data.redis.connection.DefaultedRedisConnection.get(DefaultedRedisConnection.java:253)\r\n at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:57)\r\n at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:59)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)\r\n at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184)\r\n at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:95)\r\n at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:53)\r\n at co.yixiang.modules.monitor.service.impl.RedisServiceImpl.findByKey(RedisServiceImpl.java:48)\r\n at co.yixiang.modules.monitor.rest.RedisController.getRedis(RedisController.java:28)\r\n at co.yixiang.modules.monitor.rest.RedisController$$FastClassBySpringCGLIB$$3cd2e92f.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)\r\n at co.yixiang.aspect.LogAspect.logAround(LogAspect.java:50)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)\r\n at co.yixiang.modules.monitor.rest.RedisController$$EnhancerBySpringCGLIB$$da47b915.getRedis()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at co.yixiang.modules.security.security.JwtAuthorizationTokenFilter.doFilterInternal(JwtAuthorizationTokenFilter.java:67)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: io.lettuce.core.RedisCommandExecutionException: WRONGTYPE Operation against a key holding the wrong kind of value\r\n at io.lettuce.core.ExceptionFactory.createExecutionException(ExceptionFactory.java:135)\r\n at io.lettuce.core.ExceptionFactory.createExecutionException(ExceptionFactory.java:108)\r\n at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120)\r\n at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111)\r\n at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:646)\r\n at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:604)\r\n at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:556)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)\r\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)\r\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)\r\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)\r\n at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)\r\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:628)\r\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563)\r\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)\r\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)\r\n at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)\r\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\r\n ... 1 more\r\n', 'ERROR', 'co.yixiang.modules.monitor.rest.RedisController.getRedis()', '{ key: * pageable: Page request [number: 0, size 10, sort: UNSORTED] }', '127.0.0.1', 379, 'admin', '内网IP'); +INSERT INTO `log` VALUES (17111, '2019-11-29 16:10:37', '查询Redis缓存', NULL, 'INFO', 'co.yixiang.modules.monitor.rest.RedisController.getRedis()', '{ key: * pageable: Page request [number: 0, size 10, sort: UNSORTED] }', '127.0.0.1', 133, 'admin', '内网IP'); -- ---------------------------- -- Table structure for menu @@ -2984,7 +3090,7 @@ CREATE TABLE `menu` ( `component_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '-', PRIMARY KEY (`id`) USING BTREE, INDEX `FKqcf9gem97gqa5qjm4d3elcqt5`(`pid`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 75 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +) ENGINE = InnoDB AUTO_INCREMENT = 77 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of menu @@ -3040,6 +3146,8 @@ INSERT INTO `menu` VALUES (71, '2019-11-13 18:32:00', b'0', '分销员', 'shop/u INSERT INTO `menu` VALUES (72, '2019-11-14 10:49:39', b'0', '提现管理', 'activity/extract/index', 69, 73, 'log', 'extract', b'0', b'0', 'Extract'); INSERT INTO `menu` VALUES (73, '2019-11-18 14:23:04', b'0', '拼团产品', 'activity/combination/index', 63, 64, 'log', 'combination', b'0', b'0', 'Combination'); INSERT INTO `menu` VALUES (74, '2019-11-21 19:35:58', b'0', '拼团列表', 'activity/combinlist/index', 63, 65, 'log', 'pink', b'0', b'0', 'Pink'); +INSERT INTO `menu` VALUES (75, '2019-11-28 17:06:22', b'0', '微信支付配置', 'wechat/config/pay', 48, 35, 'log', 'wxpayconfig', b'0', b'0', 'Wxpayconfig'); +INSERT INTO `menu` VALUES (76, '2019-11-29 15:13:46', b'0', '小程序配置', 'wechat/config/wxapp', 48, 36, 'log', 'wxapp', b'0', b'0', 'Wxapp'); -- ---------------------------- -- Table structure for permission @@ -3363,6 +3471,8 @@ INSERT INTO `roles_menus` VALUES (71, 1); INSERT INTO `roles_menus` VALUES (72, 1); INSERT INTO `roles_menus` VALUES (73, 1); INSERT INTO `roles_menus` VALUES (74, 1); +INSERT INTO `roles_menus` VALUES (75, 1); +INSERT INTO `roles_menus` VALUES (76, 1); INSERT INTO `roles_menus` VALUES (1, 2); INSERT INTO `roles_menus` VALUES (2, 2); INSERT INTO `roles_menus` VALUES (3, 2); @@ -3514,7 +3624,7 @@ CREATE TABLE `visits` ( `week_day` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `UK_11aksgq87euk9bcyeesfs4vtp`(`date`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 144 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; +) ENGINE = InnoDB AUTO_INCREMENT = 152 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; -- ---------------------------- -- Records of visits @@ -3567,6 +3677,14 @@ INSERT INTO `visits` VALUES (140, '2019-11-18 09:09:02', '2019-11-18', 1, 5, 'Mo INSERT INTO `visits` VALUES (141, '2019-11-19 10:24:21', '2019-11-19', 1, 2, 'Tue'); INSERT INTO `visits` VALUES (142, '2019-11-20 09:05:13', '2019-11-20', 1, 1, 'Wed'); INSERT INTO `visits` VALUES (143, '2019-11-21 10:35:08', '2019-11-21', 1, 3, 'Thu'); +INSERT INTO `visits` VALUES (144, '2019-11-22 17:56:04', '2019-11-22', 1, 2, 'Fri'); +INSERT INTO `visits` VALUES (145, '2019-11-23 19:53:01', '2019-11-23', 1, 1, 'Sat'); +INSERT INTO `visits` VALUES (146, '2019-11-24 13:59:44', '2019-11-24', 1, 4, 'Sun'); +INSERT INTO `visits` VALUES (147, '2019-11-25 16:44:39', '2019-11-25', 1, 2, 'Mon'); +INSERT INTO `visits` VALUES (148, '2019-11-26 09:57:20', '2019-11-26', 1, 1, 'Tue'); +INSERT INTO `visits` VALUES (149, '2019-11-27 12:29:21', '2019-11-27', 1, 31, 'Wed'); +INSERT INTO `visits` VALUES (150, '2019-11-28 10:34:08', '2019-11-28', 1, 4, 'Thu'); +INSERT INTO `visits` VALUES (151, '2019-11-29 10:30:17', '2019-11-29', 1, 5, 'Fri'); -- ---------------------------- -- Table structure for yx_article @@ -3600,7 +3718,7 @@ CREATE TABLE `yx_article` ( -- Records of yx_article -- ---------------------------- INSERT INTO `yx_article` VALUES (1, '', '333', '333', 'https://i.loli.net/2019/10/08/CRnUIMgVQlk3eGL.png', '33333', NULL, '', '', '5', NULL, '', NULL, '2019-08-22 12:26', NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `yx_article` VALUES (2, '', '比淘汰', '55', 'https://i.loli.net/2019/10/08/EgR73JrMevH9lfh.png', '5555', '

555555555555555555555555555555


烦烦烦方法    分段收费方式

', '', '', '2', NULL, '', NULL, '2019-08-22 12:26', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `yx_article` VALUES (2, '', 'yshop1.3版本上线了', 'yshop', 'https://i.loli.net/2019/10/08/EgR73JrMevH9lfh.png', 'yshop1.3版本上线了', '

yshop1.3版本上线了

', '', '', '2', NULL, '', NULL, '2019-08-22 12:26', NULL, NULL, NULL, NULL, NULL, NULL); -- ---------------------------- -- Table structure for yx_article_category @@ -3644,7 +3762,7 @@ CREATE TABLE `yx_cache` ( -- ---------------------------- -- Records of yx_cache -- ---------------------------- -INSERT INTO `yx_cache` VALUES ('wechat_menus', '[{\"subButtons\":[{\"name\":\"公众号演示\",\"type\":\"view\",\"url\":\"https://h5.dayouqiantu.cn\"}],\"name\":\"Yshop商城\",\"type\":\"click\",\"key\":\"yshop\"},{\"subButtons\":[{\"appId\":\"wxa82b5b7fcb0ec161\",\"name\":\"小程序演示\",\"pagePath\":\"pages/index\",\"type\":\"miniprogram\",\"url\":\"pages/index\"}],\"name\":\"供货商城\",\"type\":\"click\",\"key\":\"supply\"}]', 1570435277); +INSERT INTO `yx_cache` VALUES ('wechat_menus', '[{\"subButtons\":[{\"name\":\"公众号演示\",\"type\":\"view\",\"url\":\"https://h5.dayouqiantu.cn\"}],\"name\":\"Yshop商城3\",\"type\":\"click\",\"key\":\"yshop\"},{\"subButtons\":[{\"appId\":\"wxa82b5b7fcb0ec161\",\"name\":\"小程序演示\",\"pagePath\":\"pages/index\",\"type\":\"miniprogram\",\"url\":\"pages/index\"}],\"name\":\"供货商城\",\"type\":\"click\",\"key\":\"supply\"}]', 1570435277); -- ---------------------------- -- Table structure for yx_express @@ -4258,7 +4376,7 @@ CREATE TABLE `yx_store_cart` ( INDEX `uid_2`(`uid`, `is_del`) USING BTREE, INDEX `uid_3`(`uid`, `is_new`) USING BTREE, INDEX `type`(`type`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 88 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '购物车表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 89 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '购物车表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_store_cart @@ -4330,6 +4448,7 @@ INSERT INTO `yx_store_cart` VALUES (84, 12, 'product', 19, '', 1, 1574243149, 1, INSERT INTO `yx_store_cart` VALUES (85, 12, 'product', 19, '', 1, 1574244169, 1, 0, 1, 2, 0, 0); INSERT INTO `yx_store_cart` VALUES (86, 12, 'product', 19, '', 1, 1574320376, 1, 0, 1, 2, 0, 0); INSERT INTO `yx_store_cart` VALUES (87, 11, 'product', 19, '', 1, 1574329392, 1, 0, 1, 2, 0, 0); +INSERT INTO `yx_store_cart` VALUES (88, 12, 'product', 19, '', 1, 1574424869, 1, 0, 1, 2, 0, 0); -- ---------------------------- -- Table structure for yx_store_category @@ -4399,8 +4518,8 @@ CREATE TABLE `yx_store_combination` ( -- ---------------------------- -- Records of yx_store_combination -- ---------------------------- -INSERT INTO `yx_store_combination` VALUES (1, 19, NULL, 'https://image.dayouqiantu.cn/5ca011a1cd487.jpg', 'https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg', '70gA4黑白打印复印', NULL, 2, '打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务', 1.00, 1, 18, 99, '1574064564', 1, 1, 0, 1, NULL, 1, 0.00, '

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

', 1574064557, 1574352000, 24, 0, 0, '张', '2019-11-22 00:00:00', '2019-11-18 16:09:17'); -INSERT INTO `yx_store_combination` VALUES (2, 19, NULL, 'https://image.dayouqiantu.cn/5ca011a1cd487.jpg', 'https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg', '70gA4黑白打印复印', NULL, 2, '打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务', 1.00, 1, 23, 94, '1574066608', 1, 1, 0, 1, NULL, 1, 0.00, '

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

', 1574066592, 1574870400, 24, 0, 0, '张', '2019-11-28 00:00:00', '2019-11-18 16:43:12'); +INSERT INTO `yx_store_combination` VALUES (1, 19, NULL, 'https://image.dayouqiantu.cn/5ca011a1cd487.jpg', 'https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg', '70gA4黑白打印复印', NULL, 2, '打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务', 1.00, 1, 19, 98, '1574064564', 1, 1, 0, 1, NULL, 1, 0.00, '

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

', 1574064557, 1574352000, 24, 0, 0, '张', '2019-11-22 00:00:00', '2019-11-18 16:09:17'); +INSERT INTO `yx_store_combination` VALUES (2, 19, NULL, 'https://image.dayouqiantu.cn/5ca011a1cd487.jpg', 'https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg', '70gA4黑白打印复印', NULL, 2, '打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务', 1.00, 1, 24, 93, '1574066608', 1, 1, 0, 1, NULL, 1, 0.00, '

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

', 1574066592, 1574870400, 24, 0, 0, '张', '2019-11-28 00:00:00', '2019-11-18 16:43:12'); -- ---------------------------- -- Table structure for yx_store_combination_attr @@ -4624,7 +4743,7 @@ CREATE TABLE `yx_store_order` ( INDEX `status`(`status`) USING BTREE, INDEX `is_del`(`is_del`) USING BTREE, INDEX `coupon_id`(`coupon_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 94 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 97 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_store_order @@ -4685,9 +4804,10 @@ INSERT INTO `yx_store_order` VALUES (85, '20191118091147010', 14, 'zhang', '1513 INSERT INTO `yx_store_order` VALUES (86, '20191118092248659', 14, 'zhang', '15136175247', '上海 静安区 城区 999', '80', 0.00, 1, 120.00, 0.00, 120.00, 0.00, 0.00, 0, 0.00, 0, NULL, 'weixin', 1574040168, 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, 1.00, 0.00, NULL, '', 1, '2b31ac7ae31540569ba10db538aed627', NULL, 0, 0, 0, 0, 100.00, 0, 0, '', 0, 1, 1, 0, 0); INSERT INTO `yx_store_order` VALUES (87, '20191118093545580', 14, 'zhang', '15136175247', '上海 静安区 城区 999', '81', 0.00, 1, 120.00, 0.00, 120.00, 0.00, 0.00, 0, 0.00, 0, NULL, 'weixin', 1574040945, 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, 1.00, 0.00, NULL, '', 1, 'e859607310ec47eb8aaec87956a0cc1b', NULL, 0, 0, 0, 0, 100.00, 0, 0, '', 0, 1, 1, 0, 0); INSERT INTO `yx_store_order` VALUES (88, '20191118101528735', 14, 'zhang', '15136175247', '上海 静安区 城区 999', '82', 0.00, 1, 120.00, 0.00, 120.00, 0.00, 0.00, 0, 0.00, 0, NULL, 'weixin', 1574043328, 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, 1.00, 0.00, NULL, '', 1, 'e9b44d207cc249d4a505b8b809e17789', NULL, 0, 0, 0, 0, 100.00, 0, 0, '', 0, 1, 1, 0, 0); -INSERT INTO `yx_store_order` VALUES (91, '20191120180255448', 12, 'hu', '15136175246', '上海 闸北区 城区 99999', '85', 0.00, 1, 120.00, 0.00, 120.00, 0.00, 0.00, 0, 0.00, 1, 1574244175, 'yue', 1574244175, 0, 1, NULL, NULL, 1574326954, '拼团取消开团', NULL, 0.00, NULL, NULL, NULL, 1.00, 0.00, NULL, '', 0, '63975e6c877541008bf8338044920085', NULL, 0, 0, 2, 1, 0.20, 0, 0, '', 0, 1, 1, 0, 0); +INSERT INTO `yx_store_order` VALUES (91, '20191120180255448', 12, 'hu', '15136175246', '上海 闸北区 城区 99999', '85', 0.00, 1, 120.00, 0.00, 120.00, 0.00, 0.00, 0, 0.00, 1, 1574244175, 'yue', 1574244175, 0, 2, NULL, NULL, 1574326954, '拼团取消开团', NULL, 120.00, NULL, NULL, NULL, 1.00, 0.00, NULL, '', 0, '63975e6c877541008bf8338044920085', NULL, 0, 0, 2, 1, 0.20, 0, 0, '', 0, 1, 1, 0, 0); INSERT INTO `yx_store_order` VALUES (92, '20191121170829222', 12, 'hu', '15136175246', '上海 闸北区 城区 99999', '86', 0.00, 1, 1.00, 0.00, 1.00, 0.00, 0.00, 0, 0.00, 1, 1574327309, 'yue', 1574327309, 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, 0.00, 0.00, NULL, '', 0, 'd0c1574db2da4ee5a714223e30b00431', NULL, 0, 0, 2, 2, 0.00, 0, 0, '', 0, 1, 1, 0, 0); -INSERT INTO `yx_store_order` VALUES (93, '20191121174323679', 11, '胡鹏', '15139175246', '重庆 荣昌县 广顺镇 999', '87', 0.00, 1, 1.00, 0.00, 1.00, 0.00, 0.00, 0, 0.00, 1, 1574329404, 'yue', 1574329403, 0, 0, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, 0.00, 0.00, NULL, '', 0, 'd59ebdae5a4b457b910c366c1f5e5d61', NULL, 0, 0, 2, 2, 0.00, 0, 0, '', 0, 1, 1, 0, 0); +INSERT INTO `yx_store_order` VALUES (93, '20191121174323679', 11, '胡鹏', '15139175246', '重庆 荣昌县 广顺镇 999', '87', 0.00, 1, 1.00, 0.00, 1.00, 0.00, 0.00, 0, 0.00, 1, 1574329404, 'yue', 1574329403, 1, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '顺丰快递', 'express', '9669999', 0.00, 0.00, NULL, '', 0, 'd59ebdae5a4b457b910c366c1f5e5d61', NULL, 0, 0, 2, 2, 0.00, 0, 0, '', 0, 1, 1, 0, 0); +INSERT INTO `yx_store_order` VALUES (96, '20191122202407197', 12, 'hu', '15136175246', '上海 闸北区 城区 99999', '88', 0.00, 1, 1.00, 0.00, 1.00, 0.00, 0.00, 0, 0.00, 1, 1574425447, 'yue', 1574425447, 1, 0, NULL, NULL, NULL, NULL, NULL, 0.00, '顺丰快递', 'express', '99999', 0.00, 0.00, NULL, '', 0, '69c1587a72364eb1b14dc51173511b17', NULL, 0, 0, 2, 4, 0.00, 0, 0, '', 0, 1, 1, 0, 0); -- ---------------------------- -- Table structure for yx_store_order_cart_info @@ -4704,7 +4824,7 @@ CREATE TABLE `yx_store_order_cart_info` ( UNIQUE INDEX `oid`(`oid`, `unique`) USING BTREE, INDEX `cart_id`(`cart_id`) USING BTREE, INDEX `product_id`(`product_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 92 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单购物详情表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 93 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单购物详情表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_store_order_cart_info @@ -4770,6 +4890,7 @@ INSERT INTO `yx_store_order_cart_info` VALUES (88, 90, 84, 19, '{\"addTime\":157 INSERT INTO `yx_store_order_cart_info` VALUES (89, 91, 85, 19, '{\"addTime\":1574244169,\"productId\":19,\"seckillId\":0,\"vipTruePrice\":0.0,\"combinationId\":2,\"costPrice\":0.2,\"trueStock\":99,\"truePrice\":120.0,\"type\":\"product\",\"cartNum\":1,\"productInfo\":{\"otPrice\":0.50,\"userCollect\":false,\"description\":\"

文件请传QQ2412733099,

718504558或2412733099@qq.com邮箱,

手机/微信:13733990583

量大请联系店主,一定让您满意而归

   实体店面经营 保质保量

A4黑白2毛/张,量大1毛/张,

A3黑白双面5毛/张,量大3毛/张,

更大量请联系店主报价,

每消费1元可积1分,1分抵现金1毛,

付款时直接抵扣

(如此优惠的基础上还可积分,积分抵现金)



    

\",\"merUse\":0,\"isPostage\":1,\"image_base\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"isBest\":1,\"sales\":18,\"price\":120.00,\"isBargain\":0,\"userLike\":false,\"vipPrice\":0.20,\"storeName\":\"70gA4黑白打印复印\",\"id\":19,\"keyword\":\"打印复印\",\"stock\":99,\"image\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"cost\":0.20,\"isGood\":1,\"unitName\":\"张\",\"isBenefit\":1,\"giveIntegral\":1.00,\"isNew\":1,\"sort\":1,\"sliderImageArr\":[\"https://image.dayouqiantu.cn/5ca01c7fc9238.jpg\",\"https://image.dayouqiantu.cn/5ca01c7676042.jpg\"],\"sliderImage\":\"https://image.dayouqiantu.cn/5ca01c7fc9238.jpg,https://image.dayouqiantu.cn/5ca01c7676042.jpg\",\"barCode\":\"\",\"isShow\":1,\"postage\":0.00,\"codePath\":\"\",\"soureLink\":\"\",\"cateId\":\"24\",\"isSeckill\":0,\"storeInfo\":\"打印复印资料A4黑白彩色印刷画册书本装订图文数码快印服务\",\"isDel\":0,\"isHot\":1},\"uid\":12,\"productAttrUnique\":\"\",\"bargainId\":0,\"id\":85}', '8c7b019a2e5e48cba12389c84e143dcc'); INSERT INTO `yx_store_order_cart_info` VALUES (90, 92, 86, 19, '{\"addTime\":1574320376,\"productId\":19,\"seckillId\":0,\"vipTruePrice\":0.0,\"combinationId\":2,\"costPrice\":0.0,\"trueStock\":96,\"truePrice\":1.0,\"type\":\"product\",\"cartNum\":1,\"productInfo\":{\"userCollect\":false,\"isPostage\":1,\"image_base\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"sales\":21,\"price\":1.00,\"userLike\":false,\"storeName\":\"70gA4黑白打印复印\",\"id\":2,\"stock\":96,\"image\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"cost\":0,\"sliderImageArr\":[],\"isShow\":1,\"postage\":0.00,\"isDel\":0},\"uid\":12,\"productAttrUnique\":\"\",\"bargainId\":0,\"id\":86}', '15bd4c8455204bfe8329d9520c40b7b1'); INSERT INTO `yx_store_order_cart_info` VALUES (91, 93, 87, 19, '{\"addTime\":1574329392,\"productId\":19,\"seckillId\":0,\"vipTruePrice\":0.0,\"combinationId\":2,\"costPrice\":0.0,\"trueStock\":95,\"truePrice\":1.0,\"type\":\"product\",\"cartNum\":1,\"productInfo\":{\"userCollect\":false,\"isPostage\":1,\"image_base\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"sales\":22,\"price\":1.00,\"userLike\":false,\"storeName\":\"70gA4黑白打印复印\",\"id\":2,\"stock\":95,\"image\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"cost\":0,\"sliderImageArr\":[],\"isShow\":1,\"postage\":0.00,\"isDel\":0},\"uid\":11,\"productAttrUnique\":\"\",\"bargainId\":0,\"id\":87}', '7233bf11cc3a460d83ce80a3e82d35be'); +INSERT INTO `yx_store_order_cart_info` VALUES (92, 96, 88, 19, '{\"addTime\":1574424869,\"productId\":19,\"seckillId\":0,\"vipTruePrice\":0.0,\"combinationId\":2,\"costPrice\":0.0,\"trueStock\":94,\"truePrice\":1.0,\"type\":\"product\",\"cartNum\":1,\"productInfo\":{\"userCollect\":false,\"isPostage\":1,\"image_base\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"sales\":23,\"price\":1.00,\"userLike\":false,\"storeName\":\"70gA4黑白打印复印\",\"id\":2,\"stock\":94,\"image\":\"https://image.dayouqiantu.cn/5ca011a1cd487.jpg\",\"cost\":0,\"sliderImageArr\":[],\"isShow\":1,\"postage\":0.00,\"isDel\":0},\"uid\":12,\"productAttrUnique\":\"\",\"bargainId\":0,\"id\":88}', 'af8ca64055ac4c739cfded03c2c0b784'); -- ---------------------------- -- Table structure for yx_store_order_status @@ -4784,7 +4905,7 @@ CREATE TABLE `yx_store_order_status` ( PRIMARY KEY (`id`) USING BTREE, INDEX `oid`(`oid`) USING BTREE, INDEX `change_type`(`change_type`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 126 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单操作记录表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 135 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单操作记录表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_store_order_status @@ -4875,6 +4996,15 @@ INSERT INTO `yx_store_order_status` VALUES (122, 92, 'cache_key_create_order', ' INSERT INTO `yx_store_order_status` VALUES (123, 92, 'pay_success', '用户付款成功', 1574327310); INSERT INTO `yx_store_order_status` VALUES (124, 93, 'cache_key_create_order', '订单生成', 1574329404); INSERT INTO `yx_store_order_status` VALUES (125, 93, 'pay_success', '用户付款成功', 1574329404); +INSERT INTO `yx_store_order_status` VALUES (126, 96, 'cache_key_create_order', '订单生成', 1574425447); +INSERT INTO `yx_store_order_status` VALUES (127, 96, 'pay_success', '用户付款成功', 1574425447); +INSERT INTO `yx_store_order_status` VALUES (128, 32, 'order_edit', '修改实际支付金额', 1574740506); +INSERT INTO `yx_store_order_status` VALUES (129, 32, 'order_edit', '修改实际支付金额', 1574740704); +INSERT INTO `yx_store_order_status` VALUES (130, 32, 'order_edit', '修改实际支付金额', 1574741913); +INSERT INTO `yx_store_order_status` VALUES (131, 96, 'delivery_goods', '已发货 快递公司:顺丰快递快递单号:99999', 1574752175); +INSERT INTO `yx_store_order_status` VALUES (132, 93, 'delivery_goods', '已发货 快递公司:顺丰快递快递单号:9669999', 1574752215); +INSERT INTO `yx_store_order_status` VALUES (133, 91, 'order_edit', '退款给用户:120.0元', 1574757130); +INSERT INTO `yx_store_order_status` VALUES (134, 91, 'order_edit', '退款给用户:120.0元', 1574757363); -- ---------------------------- -- Table structure for yx_store_pink @@ -4898,7 +5028,7 @@ CREATE TABLE `yx_store_pink` ( `is_refund` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否退款 0未退款 1已退款', `status` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态1进行中2已完成3未完成', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '拼团表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '拼团表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_store_pink @@ -4906,6 +5036,7 @@ CREATE TABLE `yx_store_pink` ( INSERT INTO `yx_store_pink` VALUES (1, 12, '20191120180255448', 91, 1, 120.00, 2, 19, 2, 120.00, '1574244175', '1574326954', 0, 0, 0, 3); INSERT INTO `yx_store_pink` VALUES (2, 12, '20191121170829222', 92, 1, 1.00, 2, 19, 2, 1.00, '1574327310', '1574330684', 0, 0, 0, 2); INSERT INTO `yx_store_pink` VALUES (3, 11, '20191121174323679', 93, 1, 1.00, 2, 19, 2, 1.00, '1574329404', '1574330684', 2, 0, 0, 2); +INSERT INTO `yx_store_pink` VALUES (4, 12, '20191122202407197', 96, 1, 1.00, 2, 19, 2, 1.00, '1574425447', '1574511847', 0, 0, 0, 1); -- ---------------------------- -- Table structure for yx_store_product @@ -5338,22 +5469,16 @@ CREATE TABLE `yx_system_config` ( `sort` int(10) UNSIGNED NULL DEFAULT 0 COMMENT '排序', `status` tinyint(1) UNSIGNED NULL DEFAULT 0 COMMENT '是否隐藏', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 187 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '配置表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 196 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '配置表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_system_config -- ---------------------------- INSERT INTO `yx_system_config` VALUES (162, 'wechat_share_img', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (163, 'wechat_type', '', NULL, NULL); INSERT INTO `yx_system_config` VALUES (165, 'wechat_avatar', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (167, 'wechat_encode', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (168, 'wechat_sourceid', '999', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (170, 'wechat_name', '9999', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (171, 'wechat_qrcode', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (172, 'wechat_share_synopsis', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (174, 'api', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (175, 'wechat_share_title', '', NULL, NULL); -INSERT INTO `yx_system_config` VALUES (176, 'wechat_logo', '', 0, 0); +INSERT INTO `yx_system_config` VALUES (172, 'wechat_share_synopsis', '4444444', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (174, 'api', 'http://你的H5端域名/api/wechat/serve', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (175, 'wechat_share_title', '4444', NULL, NULL); INSERT INTO `yx_system_config` VALUES (177, 'store_postage', '0', 0, 0); INSERT INTO `yx_system_config` VALUES (178, 'store_free_postage', '0', 0, 0); INSERT INTO `yx_system_config` VALUES (179, 'integral_ratio', '1', 0, 0); @@ -5364,6 +5489,15 @@ INSERT INTO `yx_system_config` VALUES (183, 'store_brokerage_two', '30', NULL, N INSERT INTO `yx_system_config` VALUES (184, 'site_url', 'http://localhost:8080', 0, 0); INSERT INTO `yx_system_config` VALUES (185, 'api_url', 'http://127.0.0.1:8009', 0, 0); INSERT INTO `yx_system_config` VALUES (186, 'order_cancel_job_time', '20', 0, 0); +INSERT INTO `yx_system_config` VALUES (187, 'wechat_appid', '1111', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (188, 'wechat_appsecret', '2222', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (189, 'wechat_encodingaeskey', '6666', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (190, 'wechat_token', '999', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (191, 'wxpay_mchId', '2222', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (192, 'wxpay_appId', '111111', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (193, 'wxpay_mchKey', '55555', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (194, 'wxapp_appId', '22222', NULL, NULL); +INSERT INTO `yx_system_config` VALUES (195, 'wxapp_secret', '22222222', NULL, NULL); -- ---------------------------- -- Table structure for yx_system_config_tab @@ -5440,7 +5574,7 @@ CREATE TABLE `yx_system_group_data` ( `sort` int(11) NULL DEFAULT 0 COMMENT '数据排序', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态(1:开启;2:关闭;)', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 203 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '组合数据详情表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 205 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '组合数据详情表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_system_group_data @@ -5465,6 +5599,8 @@ INSERT INTO `yx_system_group_data` VALUES (198, 'routine_home_banner', '{\"name\ INSERT INTO `yx_system_group_data` VALUES (200, 'routine_home_menus', '{\"name\":\"领取优惠券\",\"id\":200,\"pic\":\"https://image.dayouqiantu.cn/5db428984d64d.png\",\"url\":\"/user/get_coupon\"}', 0, 0, 1); INSERT INTO `yx_system_group_data` VALUES (201, 'routine_home_roll_news', '{\"id\":\"\",\"url\":\"/\",\"info\":\"new hhhh\"}', 1574047234, NULL, 1); INSERT INTO `yx_system_group_data` VALUES (202, 'routine_home_menus', '{\"name\":\"拼团活动\",\"id\":180,\"pic\":\"https://image.dayouqiantu.cn/5dd38ddeead7f.png\",\"url\":\"/activity/group\"}', 0, 0, 1); +INSERT INTO `yx_system_group_data` VALUES (203, 'routine_my_menus', '{\"name\":\"商户管理\",\"id\":\"\",\"pic\":\"https://image.dayouqiantu.cn/5ddb7a37d58d9.png\",\"sort\":\"\",\"url\":\"/customer/index\",\"status\":\"\"}', 0, 0, 1); +INSERT INTO `yx_system_group_data` VALUES (204, 'routine_home_roll_news', '{\"id\":\"\",\"url\":\"/index\",\"info\":\"新添加\"}', 1574681945, NULL, 1); -- ---------------------------- -- Table structure for yx_system_log @@ -6062,7 +6198,7 @@ CREATE TABLE `yx_user` ( -- Records of yx_user -- ---------------------------- INSERT INTO `yx_user` VALUES (11, 'hupeng', 'hupeng', 'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e', '', 0, '', '', 0, 0, '会敲代码的喵', 'http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83er0oNIia5bws9DCW1VM9qNbObKU9icwtvMpp7zE534e4Y9gwqR5Izvllladvop0ibpJJg2n6ticNSB9gA/132', '', 1573120584, '', 1573120584, '', 9999.00, 12.00, 0.00, 0, 1, 0, 0, 1573613651, 'wechat', 0, 2, 1, 0, '', 0, ''); -INSERT INTO `yx_user` VALUES (12, '15136175246', '15136175246', 'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e', '', 0, '', '', 0, 0, '会敲代码的喵2', 'https://image.dayouqiantu.cn/5dc2c7f3a104c.png', '15136175246', 1573120881, '', 1573120881, '', 9359.60, 28.00, 0.00, 0, 1, 0, 11, 1573527758, 'h5', 0, 8, 1, 0, '', 0, ''); +INSERT INTO `yx_user` VALUES (12, '15136175246', '151361752469', 'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e', '', 0, '', '', 0, 0, '会敲代码的喵2', 'https://image.dayouqiantu.cn/5dc2c7f3a104c.png', '15136175246', 1573120881, '', 1573120881, '', 9598.60, 28.00, 0.00, 0, 1, 0, 11, 1573527758, 'h5', 0, 9, 1, 0, '', 1, ''); INSERT INTO `yx_user` VALUES (14, '15136175247', '15136175247', 'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e', '', 0, '', '', 0, 0, '15136175247', 'https://image.dayouqiantu.cn/5dc2c7f3a104c.png', '15136175247', 1573612696, '', 1573612696, '', 9400.00, 0.00, 2.00, 0, 1, 0, 12, 1573612702, 'h5', 0, 5, 0, 0, '', 0, ''); -- ---------------------------- @@ -6121,7 +6257,7 @@ CREATE TABLE `yx_user_bill` ( INDEX `add_time`(`add_time`) USING BTREE, INDEX `pm`(`pm`) USING BTREE, INDEX `type`(`category`, `type`, `link_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户账单表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户账单表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of yx_user_bill @@ -6160,6 +6296,9 @@ INSERT INTO `yx_user_bill` VALUES (36, 12, '90', 0, '购买商品', 'now_money', INSERT INTO `yx_user_bill` VALUES (37, 12, '91', 0, '购买商品', 'now_money', 'pay_product', 120.00, 9480.60, '余额支付', 1574244175, 1); INSERT INTO `yx_user_bill` VALUES (38, 12, '92', 0, '购买商品', 'now_money', 'pay_product', 1.00, 9360.60, '余额支付', 1574327309, 1); INSERT INTO `yx_user_bill` VALUES (39, 11, '93', 0, '购买商品', 'now_money', 'pay_product', 1.00, 10000.00, '余额支付', 1574329404, 1); +INSERT INTO `yx_user_bill` VALUES (40, 12, '96', 0, '购买商品', 'now_money', 'pay_product', 1.00, 9359.60, '余额支付', 1574425447, 1); +INSERT INTO `yx_user_bill` VALUES (41, 12, '91', 1, '商品退款', 'now_money', 'pay_product_refund', 120.00, 9478.60, '订单退款到余额', 1574757130, 1); +INSERT INTO `yx_user_bill` VALUES (42, 12, '91', 1, '商品退款', 'now_money', 'pay_product_refund', 120.00, 9598.60, '订单退款到余额', 1574757363, 1); -- ---------------------------- -- Table structure for yx_user_enter @@ -6441,7 +6580,7 @@ CREATE TABLE `yx_wechat_reply` ( -- ---------------------------- -- Records of yx_wechat_reply -- ---------------------------- -INSERT INTO `yx_wechat_reply` VALUES (1, 'subscribe', 'text', '{\"content\":\"222222222224444\"}', 1, NULL); +INSERT INTO `yx_wechat_reply` VALUES (1, 'subscribe', 'text', '{\"content\":\"2222222222244449999\"}', 1, NULL); -- ---------------------------- -- Table structure for yx_wechat_template diff --git a/yshop-api/pom.xml b/yshop-api/pom.xml index fe3a73a9..688e994f 100644 --- a/yshop-api/pom.xml +++ b/yshop-api/pom.xml @@ -109,11 +109,6 @@ qcloudsms 1.0.5 - - com.github.binarywang - weixin-java-miniapp - 3.3.1.B - diff --git a/yshop-api/src/main/java/co/yixiang/common/api/ApiCode.java b/yshop-api/src/main/java/co/yixiang/common/api/ApiCode.java index 62731c15..fb409f01 100644 --- a/yshop-api/src/main/java/co/yixiang/common/api/ApiCode.java +++ b/yshop-api/src/main/java/co/yixiang/common/api/ApiCode.java @@ -10,6 +10,7 @@ package co.yixiang.common.api; */ public enum ApiCode { + FAIL_AUTH(410000, "没有权限"), SUCCESS(200, "操作成功"), UNAUTHORIZED(401, "非法访问"), diff --git a/yshop-api/src/main/java/co/yixiang/config/ConfigurerAdapter.java b/yshop-api/src/main/java/co/yixiang/config/ConfigurerAdapter.java index 9c448804..a9df6b5c 100644 --- a/yshop-api/src/main/java/co/yixiang/config/ConfigurerAdapter.java +++ b/yshop-api/src/main/java/co/yixiang/config/ConfigurerAdapter.java @@ -2,10 +2,16 @@ package co.yixiang.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.format.FormatterRegistry; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.validation.MessageCodesResolver; +import org.springframework.validation.Validator; +import org.springframework.web.method.support.HandlerMethodArgumentResolver; +import org.springframework.web.method.support.HandlerMethodReturnValueHandler; +import org.springframework.web.servlet.HandlerExceptionResolver; +import org.springframework.web.servlet.config.annotation.*; + +import java.util.List; /** * WebMvcConfigurer @@ -41,4 +47,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer { registry.addResourceHandler("/file/**").addResourceLocations(pathUtl).setCachePeriod(0); registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/").setCachePeriod(0); } + + + } diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/controller/ShoperController.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/controller/ShoperController.java new file mode 100644 index 00000000..b3ea9308 --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/controller/ShoperController.java @@ -0,0 +1,161 @@ +package co.yixiang.modules.manage.web.controller; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.common.api.ApiResult; +import co.yixiang.common.web.controller.BaseController; +import co.yixiang.modules.manage.web.dto.OrderTimeDataDTO; +import co.yixiang.modules.manage.web.param.OrderDeliveryParam; +import co.yixiang.modules.manage.web.param.OrderPriceParam; +import co.yixiang.modules.manage.web.param.OrderRefundParam; +import co.yixiang.modules.manage.web.param.OrderRemarkParam; +import co.yixiang.modules.order.service.YxStoreOrderService; +import co.yixiang.modules.order.web.dto.OrderCountDTO; +import co.yixiang.modules.order.web.vo.YxStoreOrderQueryVo; +import co.yixiang.utils.SecurityUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @ClassName ShoperController + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/25 + **/ +@Slf4j +@RestController +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) +@Api(value = "商家管理", tags = "商家管理", description = "商家管理") +public class ShoperController extends BaseController { + + private final YxStoreOrderService storeOrderService; + + /** + * 订单数据统计 + */ + @GetMapping("/admin/order/statistics") + @ApiOperation(value = "订单数据统计",notes = "订单数据统计") + public ApiResult statistics(){ + int uid = SecurityUtils.getUserId().intValue(); + OrderCountDTO orderCountDTO = storeOrderService.orderData(0); + OrderTimeDataDTO orderTimeDataDTO = storeOrderService.getOrderTimeData(); + + Map map = new LinkedHashMap<>(); + map.put("orderCount",orderCountDTO); + map.put("orderTimeCount",orderTimeDataDTO); + return ApiResult.ok(map); + } + + /** + * 订单每月统计数据 + */ + @GetMapping("/admin/order/data") + @ApiOperation(value = "订单每月统计数据",notes = "订单每月统计数据") + public ApiResult data(@RequestParam(value = "page",defaultValue = "1") int page, + @RequestParam(value = "limit",defaultValue = "10") int limit){ + int uid = SecurityUtils.getUserId().intValue(); + + return ApiResult.ok(storeOrderService.getOrderDataPriceCount(page,limit)); + } + + + /** + * 订单列表 + */ + @GetMapping("/admin/order/list") + @ApiOperation(value = "订单列表",notes = "订单列表") + public ApiResult orderList(@RequestParam(value = "status",defaultValue = "0") int type, + @RequestParam(value = "page",defaultValue = "1") int page, + @RequestParam(value = "limit",defaultValue = "10") int limit){ + int uid = SecurityUtils.getUserId().intValue(); + + return ApiResult.ok(storeOrderService.orderList(0,type,page,limit)); + } + + /** + * 订单详情 + */ + @GetMapping("/admin/order/detail/{key}") + @ApiOperation(value = "订单详情",notes = "订单详情") + public ApiResult orderDetail(@PathVariable String key){ + int uid = SecurityUtils.getUserId().intValue(); + + if(StrUtil.isEmpty(key)) return ApiResult.fail("参数错误"); + YxStoreOrderQueryVo storeOrder = storeOrderService.getOrderInfo(key,0); + if(ObjectUtil.isNull(storeOrder)){ + return ApiResult.fail("订单不存在"); + } + + return ApiResult.ok(storeOrderService.handleOrder(storeOrder)); + } + + /** + * 订单改价 + */ + @PostMapping("/admin/order/price") + @ApiOperation(value = "订单改价",notes = "订单改价") + public ApiResult orderPrice(@Validated @RequestBody OrderPriceParam param){ + + //if(ObjectUtil.isNotNull(param)) return ApiResult.fail("演示环境禁止操作"); + int uid = SecurityUtils.getUserId().intValue(); + + storeOrderService.editOrderPrice(param); + + return ApiResult.ok("ok"); + } + + /** + * 订单发货 + */ + @PostMapping("/admin/order/delivery/keep") + @ApiOperation(value = "订单发货",notes = "订单发货") + public ApiResult orderDelivery(@Validated @RequestBody OrderDeliveryParam param){ + //if(ObjectUtil.isNotNull(param)) return ApiResult.fail("演示环境禁止操作"); + + int uid = SecurityUtils.getUserId().intValue(); + + storeOrderService.orderDelivery(param); + + return ApiResult.ok("ok"); + } + + /** + * 订单退款 + */ + @PostMapping("/admin/order/refund") + @ApiOperation(value = "订单退款",notes = "订单退款") + public ApiResult orderRefund(@Validated @RequestBody OrderRefundParam param){ + //if(ObjectUtil.isNotNull(param)) return ApiResult.fail("演示环境禁止操作"); + int uid = SecurityUtils.getUserId().intValue(); + + storeOrderService.orderRefund(param); + + return ApiResult.ok("ok"); + } + + + /** + * 订单交易额/订单数量时间chart统计 + */ + @GetMapping("/admin/order/time") + @ApiOperation(value = "chart统计",notes = "chart统计") + public ApiResult chartCount(@RequestParam(value = "cate",defaultValue = "1") int cate, + @RequestParam(value = "type",defaultValue = "1") int type){ + int uid = SecurityUtils.getUserId().intValue(); + + return ApiResult.ok(storeOrderService.chartCount(cate,type)); + } + + + + + + +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/ChartDataDTO.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/ChartDataDTO.java new file mode 100644 index 00000000..c3d3036a --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/ChartDataDTO.java @@ -0,0 +1,16 @@ +package co.yixiang.modules.manage.web.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @ClassName ChartDataDTO + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/25 + **/ +@Data +public class ChartDataDTO implements Serializable { + private Double num; + private String time; +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderDataDTO.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderDataDTO.java new file mode 100644 index 00000000..852e7686 --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderDataDTO.java @@ -0,0 +1,17 @@ +package co.yixiang.modules.manage.web.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @ClassName OrderDataDTO + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/25 + **/ +@Data +public class OrderDataDTO implements Serializable { + private Integer count; + private Double price; + private String time; +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderTimeDataDTO.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderTimeDataDTO.java new file mode 100644 index 00000000..84c42445 --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/dto/OrderTimeDataDTO.java @@ -0,0 +1,20 @@ +package co.yixiang.modules.manage.web.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @ClassName OrderTimeDataDTO + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/25 + **/ +@Data +public class OrderTimeDataDTO implements Serializable { + private Double todayPrice; //今日成交额 + private Integer todayCount; //今日订单数 + private Double proPrice; //昨日成交额 + private Integer proCount;//昨日订单数 + private Double monthPrice;//本月成交额 + private Integer monthCount;//本月订单数 +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderDeliveryParam.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderDeliveryParam.java new file mode 100644 index 00000000..9dc55c09 --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderDeliveryParam.java @@ -0,0 +1,23 @@ +package co.yixiang.modules.manage.web.param; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @ClassName OrderPriceParam + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/26 + **/ +@Data +public class OrderDeliveryParam implements Serializable { + @NotBlank(message = "订单编号错误") + private String orderId; + @NotBlank(message = "快递单号必填") + private String deliveryId; + @NotBlank(message = "快递公司必填") + private String deliveryName; + @NotBlank(message = "快递方式必填") + private String deliveryType; +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderPriceParam.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderPriceParam.java new file mode 100644 index 00000000..0b035a33 --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderPriceParam.java @@ -0,0 +1,20 @@ +package co.yixiang.modules.manage.web.param; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @ClassName OrderPriceParam + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/26 + **/ +@Data +public class OrderPriceParam implements Serializable { + @NotBlank(message = "订单编号错误") + private String orderId; + @NotNull(message = "修改价格必填") + private Double price; +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRefundParam.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRefundParam.java new file mode 100644 index 00000000..701bdd9c --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRefundParam.java @@ -0,0 +1,22 @@ +package co.yixiang.modules.manage.web.param; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @ClassName OrderPriceParam + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/26 + **/ +@Data +public class OrderRefundParam implements Serializable { + @NotBlank(message = "订单编号错误") + private String orderId; + @NotNull(message = "退款金额必填") + private Double price; + @NotNull(message = "参数错误") + private Integer type; +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRemarkParam.java b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRemarkParam.java new file mode 100644 index 00000000..d51ee994 --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/manage/web/param/OrderRemarkParam.java @@ -0,0 +1,20 @@ +package co.yixiang.modules.manage.web.param; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @ClassName OrderPriceParam + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/26 + **/ +@Data +public class OrderRemarkParam implements Serializable { + @NotBlank(message = "订单编号错误") + private String orderId; + @NotBlank(message = "备注必填") + private String remark; +} diff --git a/yshop-api/src/main/java/co/yixiang/modules/order/mapper/YxStoreOrderMapper.java b/yshop-api/src/main/java/co/yixiang/modules/order/mapper/YxStoreOrderMapper.java index 0f648329..6aef7b1f 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/order/mapper/YxStoreOrderMapper.java +++ b/yshop-api/src/main/java/co/yixiang/modules/order/mapper/YxStoreOrderMapper.java @@ -1,6 +1,10 @@ package co.yixiang.modules.order.mapper; +import co.yixiang.modules.manage.web.dto.ChartDataDTO; +import co.yixiang.modules.manage.web.dto.OrderDataDTO; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import co.yixiang.modules.order.entity.YxStoreOrder; @@ -11,6 +15,7 @@ import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.io.Serializable; +import java.util.List; /** *

@@ -23,6 +28,33 @@ import java.io.Serializable; @Repository public interface YxStoreOrderMapper extends BaseMapper { + @Select("SELECT sum(pay_price) as num," + + "FROM_UNIXTIME(add_time, '%m-%d') as time " + + " FROM yx_store_order ${ew.customSqlSegment} " + + " GROUP BY FROM_UNIXTIME(add_time,'%Y-%m-%d') " + + " ORDER BY add_time ASC") + List chartList(@Param(Constants.WRAPPER) Wrapper wrapper); + + @Select("SELECT count(id) as num," + + "FROM_UNIXTIME(add_time, '%m-%d') as time " + + " FROM yx_store_order ${ew.customSqlSegment} " + + " GROUP BY FROM_UNIXTIME(add_time,'%Y-%m-%d') " + + " ORDER BY add_time ASC") + List chartListT(@Param(Constants.WRAPPER) Wrapper wrapper); + + @Select("SELECT sum(pay_price) as price,count(id) as count," + + "FROM_UNIXTIME(add_time, '%m-%d') as time FROM yx_store_order" + + " WHERE is_del = 0 AND paid = 1 AND refund_status = 0 " + + "GROUP BY FROM_UNIXTIME(add_time,'%Y-%m-%d') ORDER BY add_time DESC") + List getOrderDataPriceList(Page page); + + + @Select("SELECT IFNULL(sum(pay_price),0) " + + " FROM yx_store_order ${ew.customSqlSegment}") + Double todayPrice(@Param(Constants.WRAPPER) Wrapper wrapper); + + + @Select("select IFNULL(sum(pay_price),0) from yx_store_order " + "where paid=1 and is_del=0 and refund_status=0 and uid=#{uid}") double sumPrice(@Param("uid") int uid); diff --git a/yshop-api/src/main/java/co/yixiang/modules/order/service/YxStoreOrderService.java b/yshop-api/src/main/java/co/yixiang/modules/order/service/YxStoreOrderService.java index af3016fe..41c1ec1c 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/order/service/YxStoreOrderService.java +++ b/yshop-api/src/main/java/co/yixiang/modules/order/service/YxStoreOrderService.java @@ -1,5 +1,10 @@ package co.yixiang.modules.order.service; +import co.yixiang.modules.manage.web.dto.OrderDataDTO; +import co.yixiang.modules.manage.web.dto.OrderTimeDataDTO; +import co.yixiang.modules.manage.web.param.OrderDeliveryParam; +import co.yixiang.modules.manage.web.param.OrderPriceParam; +import co.yixiang.modules.manage.web.param.OrderRefundParam; import co.yixiang.modules.order.entity.YxStoreOrder; import co.yixiang.common.service.BaseService; import co.yixiang.modules.order.web.dto.*; @@ -13,8 +18,10 @@ import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult; import com.github.binarywang.wxpay.exception.WxPayException; + import java.io.Serializable; import java.util.List; +import java.util.Map; /** *

@@ -24,8 +31,23 @@ import java.util.List; * @author hupeng * @since 2019-10-27 */ +//@WebService(serviceName = "YxStoreOrderService", +// targetNamespace = "http://service.order.modules.yixiang.co" +//) public interface YxStoreOrderService extends BaseService { + Map chartCount(int cate,int type); + + void orderRefund(OrderRefundParam param); + + void orderDelivery(OrderDeliveryParam param); + + void editOrderPrice(OrderPriceParam param); + + List getOrderDataPriceCount(int page, int limit); + + OrderTimeDataDTO getOrderTimeData(); + YxStoreOrder getOrderPink(int pid,int uid,int type); void regressionCoupon(YxStoreOrderQueryVo order); @@ -48,6 +70,7 @@ public interface YxStoreOrderService extends BaseService { List orderList(int uid,int type,int page,int limit); + //@WebMethod OrderCountDTO orderData(int uid); YxStoreOrderQueryVo handleOrder(YxStoreOrderQueryVo order); diff --git a/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 91cf0b8e..9227e890 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -1,11 +1,20 @@ package co.yixiang.modules.order.service.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.*; import co.yixiang.common.constant.CacheKey; import co.yixiang.common.constant.CommonConstant; import co.yixiang.exception.ErrorRequestException; import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStorePinkService; +import co.yixiang.modules.manage.web.dto.ChartDataDTO; +import co.yixiang.modules.manage.web.dto.OrderDataDTO; +import co.yixiang.modules.manage.web.dto.OrderTimeDataDTO; +import co.yixiang.modules.manage.web.param.OrderDeliveryParam; +import co.yixiang.modules.manage.web.param.OrderPriceParam; +import co.yixiang.modules.manage.web.param.OrderRefundParam; import co.yixiang.modules.monitor.service.RedisService; import co.yixiang.modules.order.entity.YxStoreOrder; import co.yixiang.modules.order.entity.YxStoreOrderCartInfo; @@ -44,11 +53,13 @@ import co.yixiang.modules.user.web.vo.YxWechatUserQueryVo; import co.yixiang.redisson.DelayJob; import co.yixiang.redisson.DelayJobService; import co.yixiang.utils.OrderUtil; +import co.yixiang.utils.RedisUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult; import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; +import com.github.binarywang.wxpay.config.WxPayConfig; import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.WxPayService; import lombok.extern.slf4j.Slf4j; @@ -56,7 +67,9 @@ import lombok.extern.slf4j.Slf4j; //import org.redisson.api.RDelayedQueue; //import org.redisson.api.RQueue; //import org.redisson.api.RedissonClient; +//import org.apache.webservice.config.annotation.Service; import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.beans.factory.annotation.Autowired; @@ -64,13 +77,13 @@ import org.springframework.beans.factory.annotation.Autowired; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import javax.jws.WebService; import java.io.Serializable; import java.lang.reflect.Array; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; @@ -82,6 +95,7 @@ import java.util.concurrent.TimeUnit; * @author hupeng * @since 2019-10-27 */ + @Slf4j @Service @Transactional(rollbackFor = Exception.class) @@ -147,6 +161,111 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl orderQueryVo.getPayPrice().doubleValue()) throw new ErrorRequestException("退款金额不正确"); + + YxStoreOrder storeOrder = new YxStoreOrder(); + //修改状态 + storeOrder.setId(orderQueryVo.getId()); + storeOrder.setRefundStatus(2); + storeOrder.setRefundPrice(BigDecimal.valueOf(param.getPrice())); + yxStoreOrderMapper.updateById(storeOrder); + + //退款到余额 + userService.incMoney(orderQueryVo.getUid(),param.getPrice()); + + //增加流水 + YxUserBill userBill = new YxUserBill(); + userBill.setUid(orderQueryVo.getUid()); + userBill.setLinkId(orderQueryVo.getId().toString()); + userBill.setPm(1); + userBill.setTitle("商品退款"); + userBill.setCategory("now_money"); + userBill.setType("pay_product_refund"); + userBill.setNumber(BigDecimal.valueOf(param.getPrice())); + userBill.setBalance(NumberUtil.add(param.getPrice(),userQueryVo.getNowMoney())); + userBill.setMark("订单退款到余额"); + userBill.setAddTime(OrderUtil.getSecondTimestampTwo()); + userBill.setStatus(1); + billService.save(userBill); + + + orderStatusService.create(orderQueryVo.getId(),"order_edit","退款给用户:"+param.getPrice() +"元"); + + } + + /** + * 订单发货 + * @param param + */ + @Override + public void orderDelivery(OrderDeliveryParam param) { + YxStoreOrderQueryVo orderQueryVo = getOrderInfo(param.getOrderId(),0); + if(ObjectUtil.isNull(orderQueryVo)) throw new ErrorRequestException("订单不存在"); + + if(orderQueryVo.getStatus() != 0 || orderQueryVo.getPaid() == 0) throw new ErrorRequestException("订单状态错误"); + + YxStoreOrder storeOrder = new YxStoreOrder(); + storeOrder.setId(orderQueryVo.getId()); + storeOrder.setStatus(1); + storeOrder.setDeliveryId(param.getDeliveryId()); + storeOrder.setDeliveryName(param.getDeliveryName()); + storeOrder.setDeliveryType(param.getDeliveryType()); + + yxStoreOrderMapper.updateById(storeOrder); + + //增加状态 + orderStatusService.create(storeOrder.getId(),"delivery_goods", + "已发货 快递公司:"+param.getDeliveryName()+"快递单号:" +param.getDeliveryId()); + + } + + /** + * 修改订单价格 + * @param param + */ + @Override + public void editOrderPrice(OrderPriceParam param) { + YxStoreOrderQueryVo orderQueryVo = getOrderInfo(param.getOrderId(),0); + if(ObjectUtil.isNull(orderQueryVo)) throw new ErrorRequestException("订单不存在"); + + if(orderQueryVo.getPayPrice().doubleValue() == param.getPrice()) return; + + if(orderQueryVo.getPaid() > 0) throw new ErrorRequestException("订单状态错误"); + + + YxStoreOrder storeOrder = new YxStoreOrder(); + storeOrder.setId(orderQueryVo.getId()); + storeOrder.setPayPrice(BigDecimal.valueOf(param.getPrice())); + + yxStoreOrderMapper.updateById(storeOrder); + + //增加状态 + orderStatusService.create(storeOrder.getId(),"order_edit","修改实际支付金额"); + + + } + + /** + * 获取拼团订单 + * @param pid + * @param uid + * @param type + * @return + */ @Override public YxStoreOrder getOrderPink(int pid, int uid,int type) { QueryWrapper wrapper = new QueryWrapper<>(); @@ -427,7 +546,8 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl orderList(int uid, int type, int page, int limit) { QueryWrapper wrapper= new QueryWrapper<>(); - wrapper.eq("is_del",0).eq("uid",uid).orderByDesc("add_time"); + if(uid > 0) wrapper.eq("uid",uid); + wrapper.eq("is_del",0).orderByDesc("add_time"); switch (type){ case 0://未支付 @@ -470,8 +590,110 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl chartCount(int cate,int type) { + int today = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(new Date())); + int yesterday = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(DateUtil. + yesterday())); + int lastWeek = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(DateUtil.lastWeek())); + int nowMonth = OrderUtil.dateToTimestampT(DateUtil + .beginOfMonth(new Date())); + double price = 0d; + List list = null; + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("paid",1).eq("refund_status",0).eq("is_del",0); + + switch (cate){ + case 1: //今天 + wrapper.ge("pay_time",today); + break; + case 2: //昨天 + wrapper.lt("pay_time",today).ge("pay_time",yesterday); + break; + case 3: //上周 + wrapper.ge("pay_time",lastWeek); + break; + case 4: //本月 + wrapper.ge("pay_time",nowMonth); + break; + } + if(type == 1){ + list = yxStoreOrderMapper.chartList(wrapper); + price = yxStoreOrderMapper.todayPrice(wrapper); + }else{ + list = yxStoreOrderMapper.chartListT(wrapper); + price = yxStoreOrderMapper.selectCount(wrapper).doubleValue(); + } + + Map map = new LinkedHashMap<>(); + map.put("chart",list); + map.put("time",price); + return map; + } + + /** + * 获取 今日 昨日 本月 订单金额 + * @return + */ + @Override + public OrderTimeDataDTO getOrderTimeData() { + + int today = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(new Date())); + int yesterday = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(DateUtil. + yesterday())); + int nowMonth = OrderUtil.dateToTimestampT(DateUtil + .beginOfMonth(new Date())); + OrderTimeDataDTO orderTimeDataDTO = new OrderTimeDataDTO(); + + //今日成交额 + QueryWrapper wrapperOne = new QueryWrapper<>(); + wrapperOne.ge("pay_time",today).eq("paid",1) + .eq("refund_status",0).eq("is_del",0); + orderTimeDataDTO.setTodayPrice(yxStoreOrderMapper.todayPrice(wrapperOne)); + //今日订单数 + orderTimeDataDTO.setTodayCount(yxStoreOrderMapper.selectCount(wrapperOne)); + + //昨日成交额 + QueryWrapper wrapperTwo = new QueryWrapper<>(); + wrapperTwo.lt("pay_time",today).ge("pay_time",yesterday).eq("paid",1) + .eq("refund_status",0).eq("is_del",0); + orderTimeDataDTO.setProPrice(yxStoreOrderMapper.todayPrice(wrapperTwo)); + //昨日订单数 + orderTimeDataDTO.setProCount(yxStoreOrderMapper.selectCount(wrapperTwo)); + + //本月成交额 + QueryWrapper wrapperThree = new QueryWrapper<>(); + wrapperThree.ge("pay_time",nowMonth).eq("paid",1) + .eq("refund_status",0).eq("is_del",0); + orderTimeDataDTO.setMonthPrice(yxStoreOrderMapper.todayPrice(wrapperThree)); + //本月订单数 + orderTimeDataDTO.setMonthCount(yxStoreOrderMapper.selectCount(wrapperThree)); + + + return orderTimeDataDTO; + } + + /** + * 订单每月统计数据 + * @param page + * @param limit + * @return + */ + @Override + public List getOrderDataPriceCount(int page, int limit) { + Page pageModel = new Page<>(page, limit); + return yxStoreOrderMapper.getOrderDataPriceList(pageModel); + } + /** * 获取某个用户的订单统计数据 + * @param uid uid>0 取用户 否则取所有 * @return */ @Override @@ -480,8 +702,8 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl wrapperOne = new QueryWrapper<>(); - wrapperOne.eq("is_del",0).eq("paid",1) - .eq("uid",uid).eq("refund_status",0); + if(uid > 0 ) wrapperOne.eq("uid",uid); + wrapperOne.eq("is_del",0).eq("paid",1).eq("refund_status",0); countDTO.setOrderCount(yxStoreOrderMapper.selectCount(wrapperOne)); //订单支付没有退款 支付总金额 @@ -489,39 +711,45 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl wrapperTwo = new QueryWrapper<>(); + if(uid > 0 ) wrapperTwo.eq("uid",uid); wrapperTwo.eq("is_del",0).eq("paid",0) - .eq("uid",uid).eq("refund_status",0).eq("status",0); + .eq("refund_status",0).eq("status",0); countDTO.setUnpaidCount(yxStoreOrderMapper.selectCount(wrapperTwo)); //订单待发货 数量 QueryWrapper wrapperThree = new QueryWrapper<>(); + if(uid > 0 ) wrapperThree.eq("uid",uid); wrapperThree.eq("is_del",0).eq("paid",1) - .eq("uid",uid).eq("refund_status",0).eq("status",0); + .eq("refund_status",0).eq("status",0); countDTO.setUnshippedCount(yxStoreOrderMapper.selectCount(wrapperThree)); //订单待收货 数量 QueryWrapper wrapperFour = new QueryWrapper<>(); + if(uid > 0 ) wrapperFour.eq("uid",uid); wrapperFour.eq("is_del",0).eq("paid",1) - .eq("uid",uid).eq("refund_status",0).eq("status",1); + .eq("refund_status",0).eq("status",1); countDTO.setReceivedCount(yxStoreOrderMapper.selectCount(wrapperFour)); //订单待评价 数量 QueryWrapper wrapperFive = new QueryWrapper<>(); + if(uid > 0 ) wrapperFive.eq("uid",uid); wrapperFive.eq("is_del",0).eq("paid",1) - .eq("uid",uid).eq("refund_status",0).eq("status",2); + .eq("refund_status",0).eq("status",2); countDTO.setEvaluatedCount(yxStoreOrderMapper.selectCount(wrapperFive)); //订单已完成 数量 QueryWrapper wrapperSix= new QueryWrapper<>(); + if(uid > 0 ) wrapperSix.eq("uid",uid); wrapperSix.eq("is_del",0).eq("paid",1) - .eq("uid",uid).eq("refund_status",0).eq("status",3); + .eq("refund_status",0).eq("status",3); countDTO.setCompleteCount(yxStoreOrderMapper.selectCount(wrapperSix)); //订单退款 QueryWrapper wrapperSeven= new QueryWrapper<>(); + if(uid > 0 ) wrapperSeven.eq("uid",uid); String[] strArr = {"1","2"}; wrapperSeven.eq("is_del",0).eq("paid",1) - .eq("uid",uid).in("refund_status",Arrays.asList(strArr)); + .in("refund_status",Arrays.asList(strArr)); countDTO.setRefundCount(yxStoreOrderMapper.selectCount(wrapperSeven)); @@ -656,6 +884,20 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl> orderList(@RequestParam(value = "type",defaultValue = "0") int type, @RequestParam(value = "page",defaultValue = "1") int page, @RequestParam(value = "limit",defaultValue = "10") int limit){ diff --git a/yshop-api/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java b/yshop-api/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java index 8ac3cc38..8db67c56 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java +++ b/yshop-api/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java @@ -107,6 +107,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .antMatchers("/register").anonymous() .antMatchers("/user/activity").anonymous() .antMatchers("/combination/list").anonymous() + .antMatchers("/webservice/**").anonymous() //微信相关 .antMatchers("/wechat/config").anonymous() .antMatchers("/wechat/auth").anonymous() diff --git a/yshop-api/src/main/java/co/yixiang/modules/shop/web/controller/IndexController.java b/yshop-api/src/main/java/co/yixiang/modules/shop/web/controller/IndexController.java index 4a584fba..c9d79841 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/shop/web/controller/IndexController.java +++ b/yshop-api/src/main/java/co/yixiang/modules/shop/web/controller/IndexController.java @@ -48,8 +48,7 @@ public class IndexController { map.put("menus",systemGroupDataService.getDatas("routine_home_menus")); //首页活动区域图片 map.put("activity",systemGroupDataService.getDatas("routine_home_activity")); - //logo - map.put("logoUrl",systemConfigService.getData("wechat_logo")); + //精品推荐 map.put("bastList",storeProductService.getList(1,6,1)); @@ -63,9 +62,7 @@ public class IndexController { //滚动 map.put("roll",systemGroupDataService.getDatas("routine_home_roll_news")); - //todo 优惠券 - List list = new ArrayList(); - map.put("couponList",list); + return ApiResult.ok(map); diff --git a/yshop-api/src/main/java/co/yixiang/modules/user/mapper/YxUserMapper.java b/yshop-api/src/main/java/co/yixiang/modules/user/mapper/YxUserMapper.java index e880fcc8..6b9f117d 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/user/mapper/YxUserMapper.java +++ b/yshop-api/src/main/java/co/yixiang/modules/user/mapper/YxUserMapper.java @@ -56,6 +56,10 @@ public interface YxUserMapper extends BaseMapper { " where uid=#{uid}") int incPayCount(@Param("uid") int uid); + @Update("update yx_user set now_money=now_money+#{price}" + + " where uid=#{uid}") + int incMoney(@Param("uid") int uid,double price); + @Update("update yx_user set integral=integral-#{integral}" + " where uid=#{uid}") int decIntegral(@Param("integral") double integral,@Param("uid") int uid); diff --git a/yshop-api/src/main/java/co/yixiang/modules/user/service/YxUserService.java b/yshop-api/src/main/java/co/yixiang/modules/user/service/YxUserService.java index 35278216..b29c3c30 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/user/service/YxUserService.java +++ b/yshop-api/src/main/java/co/yixiang/modules/user/service/YxUserService.java @@ -23,6 +23,8 @@ import java.util.List; */ public interface YxUserService extends BaseService { + void incMoney(int uid,double price); + void incIntegral(int uid,double integral); YxUserQueryVo getNewYxUserById(Serializable id); diff --git a/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java b/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java index 8a66b666..27b832a3 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java +++ b/yshop-api/src/main/java/co/yixiang/modules/user/service/impl/YxUserServiceImpl.java @@ -62,6 +62,16 @@ public class YxUserServiceImpl extends BaseServiceImpl imp private YxUserBillService billService; + /** + * 更新用户余额 + * @param uid + * @param price + */ + @Override + public void incMoney(int uid, double price) { + yxUserMapper.incMoney(uid,price); + } + @Override public void incIntegral(int uid, double integral) { yxUserMapper.incIntegral(integral,uid); diff --git a/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java b/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java index 2cb85b0b..b71c5b85 100644 --- a/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java +++ b/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WechatController.java @@ -3,6 +3,7 @@ package co.yixiang.modules.wechat.web.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import co.yixiang.common.api.ApiCode; import co.yixiang.common.api.ApiResult; import co.yixiang.common.web.controller.BaseController; import co.yixiang.modules.order.service.YxStoreOrderService; @@ -39,6 +40,11 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.util.Date; import java.util.LinkedHashMap; @@ -110,18 +116,27 @@ public class WechatController extends BaseController { WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxService.oauth2getAccessToken(code); WxMpUser wxMpUser = wxService.oauth2getUserInfo(wxMpOAuth2AccessToken, null); String openid = wxMpUser.getOpenId(); - YxWechatUser wechatUser = wechatUserService.getUserInfo(openid);; - YxUserQueryVo yxUserQueryVo = userService.getYxUserById(wechatUser.getUid()); + YxWechatUser wechatUser = wechatUserService.getUserInfo(openid); + + JwtUser jwtUser = null; - if(ObjectUtil.isNotNull(wechatUser) && ObjectUtil.isNotNull(yxUserQueryVo)){ - jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wechatUser.getOpenid()); - }else{ - if(ObjectUtil.isNotNull(wechatUser)){ - wechatUserService.removeById(wechatUser.getUid()); - } + if(ObjectUtil.isNotNull(wechatUser)){ + YxUserQueryVo yxUserQueryVo = userService.getYxUserById(wechatUser.getUid()); if(ObjectUtil.isNotNull(yxUserQueryVo)){ - userService.removeById(yxUserQueryVo.getUid()); + jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wechatUser.getOpenid()); + }else{ + if(ObjectUtil.isNotNull(wechatUser)){ + wechatUserService.removeById(wechatUser.getUid()); + } + if(ObjectUtil.isNotNull(yxUserQueryVo)){ + userService.removeById(yxUserQueryVo.getUid()); + } + return ApiResult.fail(ApiCode.FAIL_AUTH,"授权失败"); } + + + }else{ + //用户保存 YxUser user = new YxUser(); user.setAccount(wxMpUser.getNickname()); @@ -245,14 +260,17 @@ public class WechatController extends BaseController { return "fail"; } + @PostMapping("/wechat/serve") - public String post(@RequestBody String requestBody, + public void post(@RequestBody String requestBody, @RequestParam("signature") String signature, @RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce, @RequestParam("openid") String openid, @RequestParam(name = "encrypt_type", required = false) String encType, - @RequestParam(name = "msg_signature", required = false) String msgSignature) { + @RequestParam(name = "msg_signature", required = false) String msgSignature, + HttpServletRequest request, + HttpServletResponse response) throws IOException { if (!wxService.checkSignature(timestamp, nonce, signature)) { @@ -264,25 +282,21 @@ public class WechatController extends BaseController { // 明文传输的消息 WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(requestBody); WxMpXmlOutMessage outMessage = this.route(inMessage); - if (outMessage == null) { - return ""; - } - out = outMessage.toXml(); + System.out.println("xml:"+out); } else if ("aes".equalsIgnoreCase(encType)) { // aes加密的消息 WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(requestBody, wxService.getWxMpConfigStorage(), timestamp, nonce, msgSignature); WxMpXmlOutMessage outMessage = this.route(inMessage); - if (outMessage == null) { - return ""; - } out = outMessage.toEncryptedXml(wxService.getWxMpConfigStorage()); } - - return out; + response.setCharacterEncoding("UTF-8"); + PrintWriter writer = response.getWriter(); + writer.print(out); + writer.close(); } private WxMpXmlOutMessage route(WxMpXmlMessage message) { diff --git a/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WxMaUserController.java b/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WxMaUserController.java new file mode 100644 index 00000000..e8d35dfe --- /dev/null +++ b/yshop-api/src/main/java/co/yixiang/modules/wechat/web/controller/WxMaUserController.java @@ -0,0 +1,198 @@ +package co.yixiang.modules.wechat.web.controller; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; +import cn.binarywang.wx.miniapp.config.WxMaConfig; +import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.common.api.ApiCode; +import co.yixiang.common.api.ApiResult; +import co.yixiang.exception.ErrorRequestException; +import co.yixiang.modules.order.service.YxStoreOrderService; +import co.yixiang.modules.security.security.JwtUser; +import co.yixiang.modules.security.utils.JwtTokenUtil; +import co.yixiang.modules.user.entity.YxUser; +import co.yixiang.modules.user.entity.YxWechatUser; +import co.yixiang.modules.user.service.YxUserService; +import co.yixiang.modules.user.service.YxWechatUserService; +import co.yixiang.modules.user.web.vo.YxUserQueryVo; +import co.yixiang.mp.utils.JsonUtils; +import co.yixiang.utils.EncryptUtils; +import co.yixiang.utils.OrderUtil; +import co.yixiang.utils.RedisUtil; +import lombok.RequiredArgsConstructor; +import me.chanjar.weixin.common.bean.WxAccessToken; +import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.web.bind.annotation.*; + + +import me.chanjar.weixin.common.error.WxErrorException; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.concurrent.locks.Lock; + +/** + * 微信小程序用户接口 + * + * @author xuwenbo + */ +@RestController +@RequiredArgsConstructor(onConstructor = @__(@Autowired)) +public class WxMaUserController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + private final WxMaService wxMaService; + private final YxWechatUserService wechatUserService; + private final YxUserService userService; + private final JwtTokenUtil jwtTokenUtil; + + + @Autowired + @Qualifier("jwtUserDetailsService") + private UserDetailsService userDetailsService; + + /** + * 小程序登陆接口 + */ + @PostMapping("/wechat/mp_auth") + public ApiResult login(@RequestParam(value = "code") String code, + @RequestParam(value = "spread") String spread, + @RequestParam(value = "encryptedData") String encryptedData, + @RequestParam(value = "iv") String iv ) { + if (StringUtils.isBlank(code)) { + return ApiResult.fail("empty jscode"); + } + try { + //读取redis配置 + String appId = RedisUtil.get("wxapp_appId"); + String secret = RedisUtil.get("wxapp_secret"); + if(StrUtil.isBlank(appId) || StrUtil.isBlank(secret)){ + throw new ErrorRequestException("请先配置小程序"); + } + WxMaDefaultConfigImpl wxMaConfig = new WxMaDefaultConfigImpl(); + wxMaConfig.setAppid(appId); + wxMaConfig.setSecret(secret); + + + wxMaService.setWxMaConfig(wxMaConfig); + WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code); + YxWechatUser wechatUser = wechatUserService.getUserInfo(session.getOpenid());; + JwtUser jwtUser = null; + if(ObjectUtil.isNotNull(wechatUser)){ + YxUserQueryVo yxUserQueryVo = userService.getYxUserById(wechatUser.getUid()); + if(ObjectUtil.isNotNull(yxUserQueryVo)){ + jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wechatUser.getOpenid()); + }else{ + if(ObjectUtil.isNotNull(wechatUser)){ + wechatUserService.removeById(wechatUser.getUid()); + } + if(ObjectUtil.isNotNull(yxUserQueryVo)){ + userService.removeById(yxUserQueryVo.getUid()); + } + return ApiResult.fail(ApiCode.FAIL_AUTH,"授权失败"); + } + + }else{ + WxMaUserInfo wxMpUser = wxMaService.getUserService() + .getUserInfo(session.getSessionKey(), encryptedData, iv); + //用户保存 + YxUser user = new YxUser(); + user.setAccount(wxMpUser.getNickName()); + user.setUsername(wxMpUser.getOpenId()); + user.setPassword(EncryptUtils.encryptPassword("123456")); + user.setPwd(EncryptUtils.encryptPassword("123456")); + user.setPhone(""); + user.setUserType("wechat"); + user.setAddTime(OrderUtil.getSecondTimestampTwo()); + user.setLastTime(OrderUtil.getSecondTimestampTwo()); + user.setNickname(wxMpUser.getNickName()); + user.setAvatar(wxMpUser.getAvatarUrl()); + user.setNowMoney(BigDecimal.ZERO); + user.setBrokeragePrice(BigDecimal.ZERO); + user.setIntegral(BigDecimal.ZERO); + + userService.save(user); + + + //保存微信用户 + YxWechatUser yxWechatUser = new YxWechatUser(); + // System.out.println("wxMpUser:"+wxMpUser); + yxWechatUser.setAddTime(OrderUtil.getSecondTimestampTwo()); + yxWechatUser.setNickname(wxMpUser.getNickName()); + yxWechatUser.setOpenid(wxMpUser.getOpenId()); + int sub = 0; + yxWechatUser.setSubscribe(sub); + yxWechatUser.setSex(Integer.valueOf(wxMpUser.getGender())); + yxWechatUser.setLanguage(wxMpUser.getLanguage()); + yxWechatUser.setCity(wxMpUser.getCity()); + yxWechatUser.setProvince(wxMpUser.getProvince()); + yxWechatUser.setCountry(wxMpUser.getCountry()); + yxWechatUser.setHeadimgurl(wxMpUser.getAvatarUrl()); + if(StrUtil.isNotEmpty(wxMpUser.getUnionId())){ + yxWechatUser.setUnionid(wxMpUser.getUnionId()); + } + yxWechatUser.setUid(user.getUid()); + + wechatUserService.save(yxWechatUser); + + + jwtUser = (JwtUser) userDetailsService.loadUserByUsername(wxMpUser.getOpenId()); + } + + + //设置推广关系 + if(StrUtil.isNotEmpty(spread) && !spread.equals("NaN")){ + //System.out.println("spread:"+spread); + userService.setSpread(Integer.valueOf(spread), + jwtUser.getId().intValue()); + } + + // 生成令牌 + final String token = jwtTokenUtil.generateToken(jwtUser); + Date expiresTime = jwtTokenUtil.getExpirationDateFromToken(token); + String expiresTimeStr = DateUtil.formatDateTime(expiresTime); + Map map = new LinkedHashMap<>(); + map.put("token",token); + map.put("expires_time",expiresTimeStr); + + // 返回 token + return ApiResult.ok(map); + } catch (WxErrorException e) { + this.logger.error(e.getMessage(), e); + return ApiResult.fail(e.toString()); + } + } + + +// /** +// *
+//     * 获取用户绑定手机号信息
+//     * 
+// */ +// @GetMapping("/phone") +// public String phone(@PathVariable String appid, String sessionKey, String signature, +// String rawData, String encryptedData, String iv) { +// +// // 用户信息校验 +// if (!wxMaService.getUserService().checkUserInfo(sessionKey, rawData, signature)) { +// return "user check failed"; +// } +// +// // 解密 +// WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv); +// +// return JsonUtils.toJson(phoneNoInfo); +// } + +} diff --git a/yshop-api/src/main/resources/config/application.yml b/yshop-api/src/main/resources/config/application.yml index 51bd990c..0d860c47 100644 --- a/yshop-api/src/main/resources/config/application.yml +++ b/yshop-api/src/main/resources/config/application.yml @@ -2,8 +2,16 @@ server: port: 8009 servlet: context-path: /api + tomcat: + uri-encoding: UTF-8 + spring: + http: + encoding: + charset: UTF-8 + enabled: true + force: true freemarker: check-template-location: false profiles: @@ -48,27 +56,6 @@ mybatis-plus: logic-not-delete-value: 1 mapper-locations: classpath*:mapper/**/*Mapper.xml -# 公众号配置(必填) -wx: - mp: - configs: - - appId: wxc061dee8806ff712 - secret: - token: yshop - aesKey: yYuBUkC8BXImCXyu7O6hkzLj4TC5nxsWPfL4CQAZPNY - pay: - appId: wxc061dee8806ff712 - mchId: - mchKey: dayouqiantuhupeng8638004yixiangt - subAppId: - subMchId: - keyPath: - miniapp: - appid: wxa82b5b7fcb0ec161 - secret: - token: - aesKey: - msgDataFormat: JSON logging: level: org.springframework.web: INFO diff --git a/yshop-common/src/main/java/co/yixiang/utils/OrderUtil.java b/yshop-common/src/main/java/co/yixiang/utils/OrderUtil.java index 2ba54569..f3553f53 100644 --- a/yshop-common/src/main/java/co/yixiang/utils/OrderUtil.java +++ b/yshop-common/src/main/java/co/yixiang/utils/OrderUtil.java @@ -1,8 +1,10 @@ package co.yixiang.utils; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import javax.xml.crypto.Data; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -53,6 +55,15 @@ public class OrderUtil { return Integer.valueOf(timestamp); } + /** + * 获取精确到秒的时间戳 + * @return + **/ + public static int dateToTimestampT(DateTime date){ + String timestamp = String.valueOf(date.getTime()/1000); + return Integer.valueOf(timestamp); + } + /** * 获取订单状态名称 * @param paid diff --git a/yshop-common/src/main/java/co/yixiang/utils/RedisUtil.java b/yshop-common/src/main/java/co/yixiang/utils/RedisUtil.java new file mode 100644 index 00000000..5ace63ed --- /dev/null +++ b/yshop-common/src/main/java/co/yixiang/utils/RedisUtil.java @@ -0,0 +1,145 @@ +package co.yixiang.utils; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.util.CollectionUtils; + +public class RedisUtil { + private static RedisTemplate redisTemplate = SpringContextUtils + .getBean("redisTemplate",RedisTemplate.class); + + /** + * 指定缓存失效时间 + * @param key 键 + * @param time 时间(秒) + * @return + */ + public static boolean expire(String key,long time){ + try { + if(time>0){ + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据key 获取过期时间 + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 失效时间为负数,说明该主键未设置失效时间(失效时间默认为-1) + */ + public static long getExpire(String key){ + return redisTemplate.getExpire(key,TimeUnit.SECONDS); + } + + /** + * 判断key是否存在 + * @param key 键 + * @return true 存在 false 不存在 + */ + public static boolean hasKey(String key){ + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除缓存 + * @param key 可以传一个值 或多个 + */ + @SuppressWarnings("unchecked") + public static void del(String ... key){ + if(key!=null&&key.length>0){ + if(key.length==1){ + redisTemplate.delete(key[0]); + }else{ + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + + /** + * 普通缓存获取 + * @param key 键 + * @return 值 + */ + @SuppressWarnings("unchecked") + public static T get(String key){ + return key==null?null:(T)redisTemplate.opsForValue().get(key); + } + + /** + * 普通缓存放入 + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public static boolean set(String key,Object value) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + } + + /** + * 普通缓存放入并设置时间 + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public static boolean set(String key,Object value,long time){ + try { + if(time>0){ + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + }else{ + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 递增 此时value值必须为int类型 否则报错 + * @param key 键 + * @param delta 要增加几(大于0) + * @return + */ + public static long incr(String key, long delta){ + if(delta<0){ + throw new RuntimeException("递增因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, delta); + } + + /** + * 递减 + * @param key 键 + * @param delta 要减少几(小于0) + * @return + */ + public static long decr(String key, long delta){ + if(delta<0){ + throw new RuntimeException("递减因子必须大于0"); + } + return redisTemplate.opsForValue().increment(key, -delta); + } +} \ No newline at end of file diff --git a/yshop-common/src/main/java/co/yixiang/utils/SpringContextUtils.java b/yshop-common/src/main/java/co/yixiang/utils/SpringContextUtils.java new file mode 100644 index 00000000..4e57a575 --- /dev/null +++ b/yshop-common/src/main/java/co/yixiang/utils/SpringContextUtils.java @@ -0,0 +1,41 @@ +package co.yixiang.utils; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * Spring Context 工具类 + */ +@Component +public class SpringContextUtils implements ApplicationContextAware { + public static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) + throws BeansException { + SpringContextUtils.applicationContext = applicationContext; + } + + public static Object getBean(String name) { + return applicationContext.getBean(name); + } + + public static T getBean(String name, Class requiredType) { + return applicationContext.getBean(name, requiredType); + } + + public static boolean containsBean(String name) { + return applicationContext.containsBean(name); + } + + public static boolean isSingleton(String name) { + return applicationContext.isSingleton(name); + } + + public static Class getType(String name) { + return applicationContext.getType(name); + } + +} \ No newline at end of file diff --git a/yshop-generator/src/main/java/co/yixiang/domain/GenConfig.java b/yshop-generator/src/main/java/co/yixiang/domain/GenConfig.java index f45bb610..a01cc758 100644 --- a/yshop-generator/src/main/java/co/yixiang/domain/GenConfig.java +++ b/yshop-generator/src/main/java/co/yixiang/domain/GenConfig.java @@ -2,6 +2,7 @@ package co.yixiang.domain; import lombok.Data; import javax.persistence.*; +import java.io.Serializable; /** * 代码生成配置 @@ -11,7 +12,7 @@ import javax.persistence.*; @Data @Entity @Table(name = "gen_config") -public class GenConfig { +public class GenConfig implements Serializable { @Id private Long id; diff --git a/yshop-mp/pom.xml b/yshop-mp/pom.xml index 9186b17e..2deef241 100644 --- a/yshop-mp/pom.xml +++ b/yshop-mp/pom.xml @@ -23,16 +23,16 @@ wx-java-pay-spring-boot-starter 3.5.0 + + com.github.binarywang + wx-java-miniapp-spring-boot-starter + 3.5.0 + co.yixiang yshop-common 1.3 - - - - - diff --git a/yshop-mp/src/main/java/co/yixiang/mp/config/WxMpConfiguration.java b/yshop-mp/src/main/java/co/yixiang/mp/config/WxMpConfiguration.java index 548c6832..16ada6ca 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/config/WxMpConfiguration.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/config/WxMpConfiguration.java @@ -1,15 +1,19 @@ package co.yixiang.mp.config; +import cn.hutool.core.util.StrUtil; import co.yixiang.mp.handler.*; +import co.yixiang.utils.RedisUtil; import lombok.AllArgsConstructor; import me.chanjar.weixin.mp.api.WxMpMessageRouter; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; +import org.apache.poi.util.StringUtil; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -41,13 +45,40 @@ public class WxMpConfiguration { private final SubscribeHandler subscribeHandler; private final ScanHandler scanHandler; private final WxMpProperties properties; + private final RedisHandler redisHandler; @Bean public WxMpService wxMpService() { - // 代码里 getConfigs()处报错的同学,请注意仔细阅读项目说明,你的IDE需要引入lombok插件!!!! - final List configs = this.properties.getConfigs(); - System.out.println(configs); - if (configs == null) { + + final List configs = new ArrayList<>(); + WxMpProperties.MpConfig mpConfig = new WxMpProperties.MpConfig(); + String appId = redisHandler.getVal("wechat_appid"); + String secret = redisHandler.getVal("wechat_appsecret"); + String token = redisHandler.getVal("wechat_token"); + String aesKey = redisHandler.getVal("wechat_encodingaeskey"); + + + if(StrUtil.isNotBlank(appId) && StrUtil.isNotBlank(secret) + && StrUtil.isNotBlank(token) && StrUtil.isNotBlank(aesKey)) { + mpConfig.setAppId(appId); + mpConfig.setSecret(secret); + mpConfig.setToken(token); + mpConfig.setAesKey(aesKey); + System.out.println(mpConfig); + + configs.add(mpConfig); + }else{ + mpConfig.setAppId("111111"); + mpConfig.setSecret("111111"); + mpConfig.setToken("111111"); + mpConfig.setAesKey("111111"); + + configs.add(mpConfig); + } + + //System.out.println("configs:"+configs); + + if (configs.isEmpty()) { throw new RuntimeException("请先配置!"); } diff --git a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java index eb1b6f35..6a9485f5 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxArticleController.java @@ -1,8 +1,11 @@ package co.yixiang.mp.controller; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.exception.BadRequestException; import co.yixiang.mp.domain.YxArticle; import co.yixiang.mp.service.YxArticleService; +import co.yixiang.mp.service.dto.YxArticleDTO; import co.yixiang.mp.service.dto.YxArticleQueryCriteria; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -57,6 +60,7 @@ public class YxArticleController { @DeleteMapping(value = "/yxArticle/{id}") @PreAuthorize("hasAnyRole('ADMIN','YXARTICLE_ALL','YXARTICLE_DELETE')") public ResponseEntity delete(@PathVariable Integer id){ + //if(id > 0) throw new BadRequestException("演示环境禁止操作"); yxArticleService.delete(id); return new ResponseEntity(HttpStatus.OK); } @@ -64,8 +68,10 @@ public class YxArticleController { @ApiOperation(value = "发布文章") @GetMapping(value = "/yxArticle/publish/{id}") @PreAuthorize("hasAnyRole('ADMIN','YXARTICLE_ALL','YXARTICLE_DELETE')") - public ResponseEntity publish(@PathVariable Integer id){ - //todo + public ResponseEntity publish(@PathVariable Integer id) throws Exception{ + //if(id > 0) throw new BadRequestException("演示环境禁止操作"); + YxArticleDTO yxArticleDTO= yxArticleService.findById(id); + yxArticleService.uploadNews(yxArticleDTO); return new ResponseEntity(HttpStatus.OK); } diff --git a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java index 70accf25..392e8430 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxCacheController.java @@ -1,6 +1,8 @@ package co.yixiang.mp.controller; +import cn.hutool.core.util.StrUtil; +import co.yixiang.exception.BadRequestException; import co.yixiang.mp.domain.YxCache; import co.yixiang.mp.service.YxCacheService; import co.yixiang.utils.OrderUtil; @@ -62,6 +64,7 @@ public class YxCacheController { yxCacheService.create(yxCache); } + System.out.println("menu:"+menu); //创建菜单 try { diff --git a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java index abe81d29..12c460a6 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/controller/YxWechatReplyController.java @@ -1,6 +1,8 @@ package co.yixiang.mp.controller; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import co.yixiang.exception.BadRequestException; import co.yixiang.mp.domain.YxWechatReply; import co.yixiang.mp.service.YxWechatReplyService; import com.alibaba.fastjson.JSON; @@ -39,6 +41,7 @@ public class YxWechatReplyController { @PostMapping(value = "/yxWechatReply") @PreAuthorize("hasAnyRole('ADMIN','YXWECHATREPLY_ALL','YXWECHATREPLY_CREATE')") public ResponseEntity create(@RequestBody String jsonStr){ + //if(StrUtil.isNotEmpty(jsonStr)) throw new BadRequestException("演示环境禁止操作"); JSONObject jsonObject = JSON.parseObject(jsonStr); YxWechatReply yxWechatReply = new YxWechatReply(); YxWechatReply isExist = yxWechatReplyService.isExist(jsonObject.get("key").toString()); diff --git a/yshop-mp/src/main/java/co/yixiang/mp/handler/RedisHandler.java b/yshop-mp/src/main/java/co/yixiang/mp/handler/RedisHandler.java new file mode 100644 index 00000000..b1018880 --- /dev/null +++ b/yshop-mp/src/main/java/co/yixiang/mp/handler/RedisHandler.java @@ -0,0 +1,31 @@ +package co.yixiang.mp.handler; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + + +@Component +public class RedisHandler{ + + @Autowired + RedisTemplate redisTemplate; + + + public String getVal(String key) { + try { + String value = redisTemplate.opsForValue().get(key).toString(); + return value; + }catch (Exception e){ + return ""; + } + } + + + public Object getObj(String key) { + return redisTemplate.opsForValue().get(key); + } + + +} diff --git a/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java b/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java index f213a45f..ab556189 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/handler/SubscribeHandler.java @@ -31,9 +31,6 @@ public class SubscribeHandler extends AbstractHandler { WxSessionManager sessionManager) throws WxErrorException { - //System.out.println("wxMessage:"+wxMessage); - //System.out.println("context:"+context); - YxWechatReply wechatReply = yxWechatReplyService.isExist("subscribe"); if(ObjectUtil.isNull(wechatReply)){ @@ -42,15 +39,12 @@ public class SubscribeHandler extends AbstractHandler { String str = JSONObject.parseObject(wechatReply.getData()).getString("content"); try { - //String str = new String(wechatReply.getData().getBytes(),"utf-8"); WxMpXmlOutMessage msg= WxMpXmlOutMessage.TEXT() .content(str) .fromUser(wxMessage.getToUser()) .toUser(wxMessage.getFromUser()) .build(); - //System.out.println(msg); return msg; - //return new TextBuilder().build(str, wxMessage, weixinService); } catch (Exception e) { this.logger.error(e.getMessage(), e); } diff --git a/yshop-mp/src/main/java/co/yixiang/mp/service/YxArticleService.java b/yshop-mp/src/main/java/co/yixiang/mp/service/YxArticleService.java index 480070b8..5ec99ac1 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/service/YxArticleService.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/service/YxArticleService.java @@ -62,4 +62,7 @@ public interface YxArticleService { */ //@CacheEvict(allEntries = true) void delete(Integer id); + + void uploadNews(YxArticleDTO yxArticleDTO) throws Exception; + } \ No newline at end of file diff --git a/yshop-mp/src/main/java/co/yixiang/mp/service/dto/YxArticleDTO.java b/yshop-mp/src/main/java/co/yixiang/mp/service/dto/YxArticleDTO.java index 19ebf05e..45d58d4a 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/service/dto/YxArticleDTO.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/service/dto/YxArticleDTO.java @@ -70,4 +70,6 @@ public class YxArticleDTO implements Serializable { // 是否轮播图(小程序) private Integer isBanner; + + private String thumbMediaId; } \ No newline at end of file diff --git a/yshop-mp/src/main/java/co/yixiang/mp/service/impl/YxArticleServiceImpl.java b/yshop-mp/src/main/java/co/yixiang/mp/service/impl/YxArticleServiceImpl.java index 231084ef..2aa7e821 100644 --- a/yshop-mp/src/main/java/co/yixiang/mp/service/impl/YxArticleServiceImpl.java +++ b/yshop-mp/src/main/java/co/yixiang/mp/service/impl/YxArticleServiceImpl.java @@ -1,23 +1,42 @@ package co.yixiang.mp.service.impl; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import co.yixiang.exception.ErrorRequestException; import co.yixiang.mp.domain.YxArticle; import co.yixiang.mp.repository.YxArticleRepository; import co.yixiang.mp.service.YxArticleService; import co.yixiang.mp.service.dto.YxArticleDTO; import co.yixiang.mp.service.dto.YxArticleQueryCriteria; import co.yixiang.mp.service.mapper.YxArticleMapper; +import co.yixiang.mp.utils.URLUtils; import co.yixiang.utils.OrderUtil; import co.yixiang.utils.PageUtil; import co.yixiang.utils.QueryHelp; import co.yixiang.utils.ValidationUtil; +import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.api.WxConsts; +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.mp.api.WxMpService; +import me.chanjar.weixin.mp.bean.WxMpMassTagMessage; +import me.chanjar.weixin.mp.bean.material.WxMediaImgUploadResult; +import me.chanjar.weixin.mp.bean.material.WxMpMaterial; +import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews; +import me.chanjar.weixin.mp.bean.material.WxMpMaterialUploadResult; +import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.io.File; import java.util.List; import java.util.Map; import java.util.Optional; @@ -26,6 +45,7 @@ import java.util.Optional; * @author hupeng * @date 2019-10-07 */ +@Slf4j @Service @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) public class YxArticleServiceImpl implements YxArticleService { @@ -36,6 +56,12 @@ public class YxArticleServiceImpl implements YxArticleService { @Autowired private YxArticleMapper yxArticleMapper; + @Autowired + private WxMpService wxMpService; + + @Value("${file.path}") + private String uploadDirStr; + @Override public Map queryAll(YxArticleQueryCriteria criteria, Pageable pageable){ Page page = yxArticleRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); @@ -76,4 +102,97 @@ public class YxArticleServiceImpl implements YxArticleService { public void delete(Integer id) { yxArticleRepository.deleteById(id); } + + + @Override + public void uploadNews(YxArticleDTO wxNewsArticleItem) throws Exception { + + WxMpMaterialNews wxMpMaterialNews = new WxMpMaterialNews(); + + + WxMpMaterialNews.WxMpMaterialNewsArticle article = new WxMpMaterialNews.WxMpMaterialNewsArticle(); + + WxMpMaterialUploadResult wxMpMaterialUploadResult = uploadPhotoToWx( wxMpService, + wxNewsArticleItem.getImageInput() ); + wxNewsArticleItem.setThumbMediaId( wxMpMaterialUploadResult.getMediaId() ); + + article.setAuthor( wxNewsArticleItem.getAuthor() ); + + System.out.println(wxNewsArticleItem.getContent()); + + //处理content + String content = processContent(wxMpService, wxNewsArticleItem.getContent()); + System.out.println(content); + article.setContent( content ); + article.setContentSourceUrl( wxNewsArticleItem.getUrl() ); + article.setDigest( wxNewsArticleItem.getSynopsis() ); + article.setShowCoverPic( true ); + article.setThumbMediaId( wxNewsArticleItem.getThumbMediaId() ); + article.setTitle( wxNewsArticleItem.getTitle() ); + //TODO 暂时注释掉,测试号没有留言权限 + //article.setNeedOpenComment( wxNewsArticleItem ); + //article.setOnlyFansCanComment( wxNewsArticleItem ); + wxMpMaterialNews.addArticle( article ); + + log.info( "wxMpMaterialNews : {}", JSONUtil.toJsonStr( wxMpMaterialNews ) ); + + WxMpMaterialUploadResult wxMpMaterialUploadResult1 = wxMpService.getMaterialService() + .materialNewsUpload( wxMpMaterialNews ); + + //推送开始 + WxMpMassTagMessage massMessage = new WxMpMassTagMessage(); + massMessage.setMsgType(WxConsts.MassMsgType.MPNEWS); + massMessage.setMediaId(wxMpMaterialUploadResult1.getMediaId()); + massMessage.setSendAll(true); + + WxMpMassSendResult massResult = wxMpService.getMassMessageService() + .massGroupMessageSend(massMessage); + if(!massResult.getErrorCode().equals("0")) { + log.info("error:"+massResult.getErrorMsg()); + throw new ErrorRequestException("发送失败"); + } + + log.info( "massResult : {}", JSONUtil.toJsonStr( massResult ) ); + + log.info( "wxMpMaterialUploadResult : {}", JSONUtil.toJsonStr( wxMpMaterialUploadResult1 ) ); + } + + + private WxMpMaterialUploadResult uploadPhotoToWx(WxMpService wxMpService, String picPath) throws WxErrorException { + WxMpMaterial wxMpMaterial = new WxMpMaterial(); + + String filename = String.valueOf( System.currentTimeMillis() ) + ".png"; + String downloadPath = uploadDirStr + filename; + long size = HttpUtil.downloadFile(picPath, FileUtil.file(downloadPath)); + picPath = downloadPath; + File picFile = new File( picPath ); + wxMpMaterial.setFile( picFile ); + wxMpMaterial.setName( picFile.getName() ); + log.info( "picFile name : {}", picFile.getName() ); + WxMpMaterialUploadResult wxMpMaterialUploadResult = wxMpService.getMaterialService().materialFileUpload( WxConsts.MediaFileType.IMAGE, wxMpMaterial ); + log.info( "wxMpMaterialUploadResult : {}", JSONUtil.toJsonStr( wxMpMaterialUploadResult ) ); + return wxMpMaterialUploadResult; + } + + private String processContent(WxMpService wxMpService,String content) throws WxErrorException { + if(StringUtils.isBlank( content )){ + return content; + } + String imgReg = "]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"; + List imgList = ReUtil.findAllGroup1( imgReg,content); + for (int j = 0; j < imgList.size(); j++) { + String imgSrc = imgList.get( j ); + String filepath = URLUtils.getParam( imgSrc,"filepath" ); + + if(StringUtils.isBlank( filepath )){//网络图片URL,需下载到本地 + String filename = String.valueOf( System.currentTimeMillis() ) + ".png"; + String downloadPath = uploadDirStr + filename; + long size = HttpUtil.downloadFile(imgSrc, FileUtil.file(downloadPath)); + filepath = downloadPath; + } + WxMediaImgUploadResult wxMediaImgUploadResult = wxMpService.getMaterialService().mediaImgUpload( new File(filepath) ); + content = StringUtils.replace( content,imgList.get( j ),wxMediaImgUploadResult.getUrl()); + } + return content; + } } \ No newline at end of file diff --git a/yshop-mp/src/main/java/co/yixiang/mp/utils/URLUtils.java b/yshop-mp/src/main/java/co/yixiang/mp/utils/URLUtils.java new file mode 100644 index 00000000..5cb42a9d --- /dev/null +++ b/yshop-mp/src/main/java/co/yixiang/mp/utils/URLUtils.java @@ -0,0 +1,76 @@ +package co.yixiang.mp.utils; + +import java.util.HashMap; +import java.util.Map; + +/** + * URLUtils + * @author Kevin + * @date 2019-03-20 13:39 + */ +public class URLUtils { + + /** + * 获取URL中的某个参数 + * @param url + * @param name + * @return + */ + public static String getParam(String url, String name) { + return urlSplit(url).get( name ); + } + + /** + * 去掉url中的路径,留下请求参数部分 + * @param strURL url地址 + * @return url请求参数部分 + */ + private static String truncateUrlPage(String strURL){ + String strAllParam=null; + String[] arrSplit=null; + strURL=strURL.trim().toLowerCase(); + arrSplit=strURL.split("[?]"); + if(strURL.length()>1){ + if(arrSplit.length>1){ + for (int i=1;i urlSplit(String URL){ + Map mapRequest = new HashMap(); + String[] arrSplit=null; + String strUrlParam= truncateUrlPage(URL); + if(strUrlParam==null){ + return mapRequest; + } + arrSplit=strUrlParam.split("[&]"); + for(String strSplit:arrSplit){ + String[] arrSplitEqual=null; + arrSplitEqual= strSplit.split("[=]"); + //解析出键值 + if(arrSplitEqual.length>1){ + //正确解析 + mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]); + }else{ + if(arrSplitEqual[0]!=""){ + //只有参数没有值,不加入 + mapRequest.put(arrSplitEqual[0], ""); + } + } + } + return mapRequest; + } + + +} + diff --git a/yshop-system/src/main/java/co/yixiang/config/ConfigurerAdapter.java b/yshop-system/src/main/java/co/yixiang/config/ConfigurerAdapter.java index e8421fff..0fbee65d 100644 --- a/yshop-system/src/main/java/co/yixiang/config/ConfigurerAdapter.java +++ b/yshop-system/src/main/java/co/yixiang/config/ConfigurerAdapter.java @@ -2,10 +2,16 @@ package co.yixiang.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.format.FormatterRegistry; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.validation.MessageCodesResolver; +import org.springframework.validation.Validator; +import org.springframework.web.method.support.HandlerMethodArgumentResolver; +import org.springframework.web.method.support.HandlerMethodReturnValueHandler; +import org.springframework.web.servlet.HandlerExceptionResolver; +import org.springframework.web.servlet.config.annotation.*; + +import java.util.List; /** * WebMvcConfigurer @@ -41,4 +47,6 @@ public class ConfigurerAdapter implements WebMvcConfigurer { registry.addResourceHandler("/file/**").addResourceLocations(pathUtl).setCachePeriod(0); registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/").setCachePeriod(0); } + + } diff --git a/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java b/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java index 12f4ec69..199b4a6d 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java +++ b/yshop-system/src/main/java/co/yixiang/modules/monitor/service/impl/RedisServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; +import org.springframework.data.redis.connection.DataType; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -38,6 +39,8 @@ public class RedisServiceImpl implements RedisService { if (s.toString().indexOf("role::loadPermissionByUser") != -1 || s.toString().indexOf("user::loadUserByUsername") != -1) { continue; } + DataType dataType = redisTemplate.type(s.toString()); + if(dataType.code().equals("hash")) continue; RedisVo redisVo = new RedisVo(s.toString(),redisTemplate.opsForValue().get(s.toString()).toString()); redisVos.add(redisVo); } diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/repository/YxStoreOrderRepository.java b/yshop-system/src/main/java/co/yixiang/modules/shop/repository/YxStoreOrderRepository.java index 322240d9..c19f0c40 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/shop/repository/YxStoreOrderRepository.java +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/repository/YxStoreOrderRepository.java @@ -1,8 +1,12 @@ package co.yixiang.modules.shop.repository; import co.yixiang.modules.shop.domain.YxStoreOrder; +import co.yixiang.modules.shop.service.dto.ChartDataDTO; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; /** * @author hupeng @@ -10,6 +14,36 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; */ public interface YxStoreOrderRepository extends JpaRepository, JpaSpecificationExecutor { + + //今天 //上周 //本月 + int countByPayTimeGreaterThanEqual(int time); + + //昨天 + int countByPayTimeLessThanAndPayTimeGreaterThanEqual(int timeO,int timeT); + + @Query(value = "select IFNULL(sum(pay_price),0) from yx_store_order " + + "where refund_status=0 and is_del=0 and paid=1 and pay_time >= ?1",nativeQuery = true) + double sumPrice(Integer time); + + @Query(value = "select IFNULL(sum(pay_price),0) from yx_store_order " + + "where refund_status=0 and is_del=0 and paid=1 and pay_time >= ?1 and pay_time < ?2",nativeQuery = true) + double sumTPrice(Integer timeO,Integer timeT); + + @Query(value = "SELECT IFNULL(sum(pay_price),0) as num," + + "FROM_UNIXTIME(add_time, '%m-%d') as time " + + " FROM yx_store_order where refund_status=0 and is_del=0 and paid=1 and pay_time >= ?1" + + " GROUP BY FROM_UNIXTIME(add_time,'%Y-%m-%d') " + + " ORDER BY add_time ASC",nativeQuery = true) + List chartList(Integer time); + + @Query(value = "SELECT count(id) as num," + + "FROM_UNIXTIME(add_time, '%m-%d') as time " + + " FROM yx_store_order where refund_status=0 and is_del=0 and paid=1 and pay_time >= ?1" + + " GROUP BY FROM_UNIXTIME(add_time,'%Y-%m-%d') " + + " ORDER BY add_time ASC",nativeQuery = true) + List chartListT(Integer time); + + /** * findByUnique * @param unique diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java index 546a644d..be649831 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreCategoryController.java @@ -36,6 +36,8 @@ public class YxStoreCategoryController { @GetMapping(value = "/yxStoreCategory") @PreAuthorize("hasAnyRole('ADMIN','YXSTORECATEGORY_ALL','YXSTORECATEGORY_SELECT')") public ResponseEntity getYxStoreCategorys(YxStoreCategoryQueryCriteria criteria, Pageable pageable){ + + List categoryDTOList = yxStoreCategoryService.queryAll(criteria); return new ResponseEntity(yxStoreCategoryService.buildTree(categoryDTOList),HttpStatus.OK); } diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java index ddbb21c3..253f0db5 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreOrderController.java @@ -33,6 +33,19 @@ public class YxStoreOrderController { @Autowired private YxStoreOrderStatusService yxStoreOrderStatusService; + @GetMapping(value = "/data/count") + //@PreAuthorize("hasAnyRole('ADMIN','YXSTOREORDER_ALL','YXSTOREORDER_SELECT')") + public ResponseEntity getCount(){ + return new ResponseEntity(yxStoreOrderService.getOrderTimeData(),HttpStatus.OK); + } + + @GetMapping(value = "/data/chart") + //@PreAuthorize("hasAnyRole('ADMIN','YXSTOREORDER_ALL','YXSTOREORDER_SELECT')") + public ResponseEntity getChart(){ + return new ResponseEntity(yxStoreOrderService.chartCount(),HttpStatus.OK); + } + + @ApiOperation(value = "查询订单") @GetMapping(value = "/yxStoreOrder") diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java index 382f75dd..a5619a0f 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/rest/YxStoreProductController.java @@ -58,6 +58,7 @@ public class YxStoreProductController { @PutMapping(value = "/yxStoreProduct") @PreAuthorize("hasAnyRole('ADMIN','YXSTOREPRODUCT_ALL','YXSTOREPRODUCT_EDIT')") public ResponseEntity update(@Validated @RequestBody YxStoreProduct resources){ + //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作"); yxStoreProductService.update(resources); return new ResponseEntity(HttpStatus.NO_CONTENT); } @@ -106,6 +107,7 @@ public class YxStoreProductController { @ApiOperation(value = "清除属性") @PostMapping(value = "/yxStoreProduct/clearAttr/{id}") public ResponseEntity clearAttr(@PathVariable Integer id){ + //if(id > 0) throw new BadRequestException("演示环境禁止操作"); yxStoreProductService.clearProductAttr(id,true); return new ResponseEntity(HttpStatus.OK); } diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/service/YxStoreOrderService.java b/yshop-system/src/main/java/co/yixiang/modules/shop/service/YxStoreOrderService.java index ed85a665..1c3af04a 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/shop/service/YxStoreOrderService.java +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/service/YxStoreOrderService.java @@ -1,6 +1,7 @@ package co.yixiang.modules.shop.service; import co.yixiang.modules.shop.domain.YxStoreOrder; +import co.yixiang.modules.shop.service.dto.OrderTimeDataDTO; import co.yixiang.modules.shop.service.dto.YxStoreOrderDTO; import co.yixiang.modules.shop.service.dto.YxStoreOrderQueryCriteria; import org.springframework.data.domain.Pageable; @@ -13,6 +14,9 @@ import java.util.List; */ //@CacheConfig(cacheNames = "yxStoreOrder") public interface YxStoreOrderService { + OrderTimeDataDTO getOrderTimeData(); + + Map chartCount(); String orderType(int id,int pinkId,int combinationId); diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/ChartDataDTO.java b/yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/ChartDataDTO.java new file mode 100644 index 00000000..60043269 --- /dev/null +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/ChartDataDTO.java @@ -0,0 +1,19 @@ +package co.yixiang.modules.shop.service.dto; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; + +import java.io.Serializable; + +/** + * @ClassName ChartDataDTO + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/25 + **/ +//@Data +public interface ChartDataDTO{ + + // @Value("#{target.adminCount}") + Double getNum(); + String getTime(); +} diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/OrderTimeDataDTO.java b/yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/OrderTimeDataDTO.java new file mode 100644 index 00000000..e50e3fcf --- /dev/null +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/service/dto/OrderTimeDataDTO.java @@ -0,0 +1,23 @@ +package co.yixiang.modules.shop.service.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @ClassName OrderTimeDataDTO + * @Author hupeng <610796224@qq.com> + * @Date 2019/11/25 + **/ +@Data +public class OrderTimeDataDTO implements Serializable { + private Double todayPrice; //今日成交额 + private Integer todayCount; //今日订单数 + private Double proPrice; //昨日成交额 + private Integer proCount;//昨日订单数 + private Double monthPrice;//本月成交额 + private Integer monthCount;//本月订单数 + + private Integer lastWeekCount;//上周 + private Double lastWeekPrice; //上周 +} diff --git a/yshop-system/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreOrderServiceImpl.java b/yshop-system/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreOrderServiceImpl.java index 1dde7113..306115d0 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-system/src/main/java/co/yixiang/modules/shop/service/impl/YxStoreOrderServiceImpl.java @@ -17,9 +17,7 @@ import co.yixiang.modules.shop.service.YxStoreOrderService; import co.yixiang.modules.shop.service.YxStoreOrderStatusService; import co.yixiang.modules.shop.service.YxUserBillService; import co.yixiang.modules.shop.service.YxUserService; -import co.yixiang.modules.shop.service.dto.YxStoreOrderDTO; -import co.yixiang.modules.shop.service.dto.YxStoreOrderQueryCriteria; -import co.yixiang.modules.shop.service.dto.YxUserDTO; +import co.yixiang.modules.shop.service.dto.*; import co.yixiang.modules.shop.service.mapper.YxStoreOrderMapper; import co.yixiang.utils.OrderUtil; import co.yixiang.utils.QueryHelp; @@ -27,7 +25,6 @@ import co.yixiang.utils.ValidationUtil; import com.alibaba.fastjson.JSON; import co.yixiang.modules.shop.domain.StoreOrderCartInfo; import co.yixiang.modules.shop.repository.YxStoreOrderCartInfoRepository; -import co.yixiang.modules.shop.service.dto.StoreOrderCartInfoDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -70,6 +67,44 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService { @Autowired private YxStorePinkRepository storePinkRepository; + @Override + public OrderTimeDataDTO getOrderTimeData() { + int today = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(new Date())); + int yesterday = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(DateUtil. + yesterday())); + int lastWeek = OrderUtil.dateToTimestampT(DateUtil.beginOfDay(DateUtil.lastWeek())); + int nowMonth = OrderUtil.dateToTimestampT(DateUtil + .beginOfMonth(new Date())); + OrderTimeDataDTO orderTimeDataDTO = new OrderTimeDataDTO(); + + orderTimeDataDTO.setTodayCount(yxStoreOrderRepository.countByPayTimeGreaterThanEqual(today)); + orderTimeDataDTO.setTodayPrice(yxStoreOrderRepository.sumPrice(today)); + + orderTimeDataDTO.setProCount(yxStoreOrderRepository + .countByPayTimeLessThanAndPayTimeGreaterThanEqual(today,yesterday)); + orderTimeDataDTO.setProPrice(yxStoreOrderRepository.sumTPrice(today,yesterday)); + + orderTimeDataDTO.setLastWeekCount(yxStoreOrderRepository.countByPayTimeGreaterThanEqual(lastWeek)); + orderTimeDataDTO.setLastWeekPrice(yxStoreOrderRepository.sumPrice(lastWeek)); + + orderTimeDataDTO.setMonthCount(yxStoreOrderRepository.countByPayTimeGreaterThanEqual(nowMonth)); + orderTimeDataDTO.setMonthPrice(yxStoreOrderRepository.sumPrice(nowMonth)); + + return orderTimeDataDTO; + } + + @Override + public Map chartCount() { + Map map = new LinkedHashMap<>(); + int nowMonth = OrderUtil.dateToTimestampT(DateUtil + .beginOfMonth(new Date())); + + map.put("chart",yxStoreOrderRepository.chartList(nowMonth)); + map.put("chartT",yxStoreOrderRepository.chartListT(nowMonth)); + + return map; + } + @Override @Transactional(rollbackFor = Exception.class) public void refund(YxStoreOrder resources) { diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java b/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java index f567a2b0..4b8ed449 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/system/rest/RoleController.java @@ -102,7 +102,7 @@ public class RoleController { @PutMapping(value = "/roles/menu") @PreAuthorize("hasAnyRole('ADMIN','ROLES_ALL','ROLES_EDIT')") public ResponseEntity updateMenu(@RequestBody Role resources){ - //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作"); + // roleService.updateMenu(resources,roleService.findById(resources.getId())); return new ResponseEntity(HttpStatus.NO_CONTENT); } @@ -111,7 +111,7 @@ public class RoleController { @DeleteMapping(value = "/roles/{id}") @PreAuthorize("hasAnyRole('ADMIN','ROLES_ALL','ROLES_DELETE')") public ResponseEntity delete(@PathVariable Long id){ - //if(id > 0) throw new BadRequestException("演示环境禁止操作"); + // if(id > 0) throw new BadRequestException("演示环境禁止操作"); try { roleService.delete(id); }catch (Throwable e){ diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/rest/UserController.java b/yshop-system/src/main/java/co/yixiang/modules/system/rest/UserController.java index c028191c..a9b11ae1 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/system/rest/UserController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/system/rest/UserController.java @@ -162,6 +162,7 @@ public class UserController { */ @PostMapping(value = "/users/updateAvatar") public ResponseEntity updateAvatar(@RequestParam MultipartFile file){ + //if(ObjectUtil.isNotNull(file)) throw new BadRequestException("演示环境禁止操作"); userService.updateAvatar(file); return new ResponseEntity(HttpStatus.OK); } diff --git a/yshop-system/src/main/java/co/yixiang/modules/system/service/dto/MenuDTO.java b/yshop-system/src/main/java/co/yixiang/modules/system/service/dto/MenuDTO.java index f93fc9c7..e70baecc 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/system/service/dto/MenuDTO.java +++ b/yshop-system/src/main/java/co/yixiang/modules/system/service/dto/MenuDTO.java @@ -2,6 +2,7 @@ package co.yixiang.modules.system.service.dto; import lombok.Data; +import java.io.Serializable; import java.sql.Timestamp; import java.util.List; @@ -10,7 +11,7 @@ import java.util.List; * @date 2018-12-17 */ @Data -public class MenuDTO { +public class MenuDTO implements Serializable { private Long id; diff --git a/yshop-system/src/main/java/co/yixiang/modules/wechat/rest/YxSystemConfigController.java b/yshop-system/src/main/java/co/yixiang/modules/wechat/rest/YxSystemConfigController.java index 138bce6a..1ea0f02c 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/wechat/rest/YxSystemConfigController.java +++ b/yshop-system/src/main/java/co/yixiang/modules/wechat/rest/YxSystemConfigController.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import co.yixiang.exception.BadRequestException; import co.yixiang.modules.wechat.domain.YxSystemConfig; +import co.yixiang.utils.RedisUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import co.yixiang.aop.log.Log; @@ -51,6 +52,7 @@ public class YxSystemConfigController { YxSystemConfig yxSystemConfigModel = new YxSystemConfig(); yxSystemConfigModel.setMenuName(key); yxSystemConfigModel.setValue(value.toString()); + RedisUtil.set(key,value.toString()); if(ObjectUtil.isNull(yxSystemConfig)){ yxSystemConfigService.create(yxSystemConfigModel); }else{ @@ -63,23 +65,6 @@ public class YxSystemConfigController { return new ResponseEntity(HttpStatus.CREATED); } - @Log("修改YxSystemConfig") - @ApiOperation(value = "修改YxSystemConfig") - @PutMapping(value = "/yxSystemConfig") - @PreAuthorize("hasAnyRole('ADMIN','YXSYSTEMCONFIG_ALL','YXSYSTEMCONFIG_EDIT')") - public ResponseEntity update(@Validated @RequestBody YxSystemConfig resources){ - //if(ObjectUtil.isNotNull(resources)) throw new BadRequestException("演示环境禁止操作"); - yxSystemConfigService.update(resources); - return new ResponseEntity(HttpStatus.NO_CONTENT); - } - @Log("删除YxSystemConfig") - @ApiOperation(value = "删除YxSystemConfig") - @DeleteMapping(value = "/yxSystemConfig/{id}") - @PreAuthorize("hasAnyRole('ADMIN','YXSYSTEMCONFIG_ALL','YXSYSTEMCONFIG_DELETE')") - public ResponseEntity delete(@PathVariable Integer id){ - //if(id > 0) throw new BadRequestException("演示环境禁止操作"); - yxSystemConfigService.delete(id); - return new ResponseEntity(HttpStatus.OK); - } + } \ No newline at end of file diff --git a/yshop-system/src/main/java/co/yixiang/modules/wechat/service/impl/YxSystemConfigServiceImpl.java b/yshop-system/src/main/java/co/yixiang/modules/wechat/service/impl/YxSystemConfigServiceImpl.java index d684bd90..ce946578 100644 --- a/yshop-system/src/main/java/co/yixiang/modules/wechat/service/impl/YxSystemConfigServiceImpl.java +++ b/yshop-system/src/main/java/co/yixiang/modules/wechat/service/impl/YxSystemConfigServiceImpl.java @@ -35,7 +35,9 @@ public class YxSystemConfigServiceImpl implements YxSystemConfigService { @Override public Map queryAll(YxSystemConfigQueryCriteria criteria, Pageable pageable){ - Page page = yxSystemConfigRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); + Page page = yxSystemConfigRepository + .findAll((root, criteriaQuery, criteriaBuilder) + -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(yxSystemConfigMapper::toDto)); } diff --git a/yshop-system/src/main/resources/config/application.yml b/yshop-system/src/main/resources/config/application.yml index f2b6be8c..f4e70bb7 100644 --- a/yshop-system/src/main/resources/config/application.yml +++ b/yshop-system/src/main/resources/config/application.yml @@ -1,6 +1,7 @@ server: port: 8000 + spring: freemarker: check-template-location: false @@ -34,17 +35,3 @@ code: loginCode: expiration: 2 -# 公众号配置(必填) -wx: - mp: - configs: - - appId: wxc061dee8806ff712 - secret: - token: yshop - aesKey: yYuBUkC8BXImCXyu7O6hkzLj4TC5nxsWPfL4CQAZPNY -# miniapp: -# appid: wx604d2ea4702620d2 -# secret: -# token: -# aesKey: -# msgDataFormat: JSON