From 6612269859908e97ff84906c9664e3e4588d1759 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 21:47:59 +0800 Subject: [PATCH 01/14] =?UTF-8?q?[TEST][=E4=BF=AE=E6=94=B9]:TEST=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-test.yml | 49 +++++++++++++++++-- .../src/main/resources/application-test.yml | 27 ++++++++-- .../src/main/resources/application-test.yml | 23 +++++++-- .../src/main/resources/application-test.yml | 23 +++++++-- 4 files changed, 106 insertions(+), 16 deletions(-) diff --git a/mallinkAdmin/src/main/resources/application-test.yml b/mallinkAdmin/src/main/resources/application-test.yml index 0b9a23850..62dca6087 100644 --- a/mallinkAdmin/src/main/resources/application-test.yml +++ b/mallinkAdmin/src/main/resources/application-test.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(Uc0AjgkytxHHCwZrmDASWg==) + password: ENC(nV4Mi3bEbBx0Fj7uUyYH55eTaqsFMjKvmNzagicH4pc=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -24,17 +24,56 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) timeout: 3600 expire: 1800 #30分钟 database: 1 defaultExpiration: 2592000 # 默认生命周期30天 jedis: pool: - max-active: 8 - max-idle: 8 + max-active: 100 + max-idle: 20 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(HFbRXtAFVxU36Hk0yT3reyvRuLrw3RhMlbxFj9Ev/VY=) + password: ENC(pk4+/3C5n2hMYmgi+VTqI4P1m77DllW8y4KElMXXmIo=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(NCLcmjwKpAWdn/abD17OKIY7yKepVLWzEpqRYUlURCw=) + secret: ENC(TRcZqql0Rq5PExlMeH/4WiZ/i02b8FXKmLTBChJmbluTa1uoLS9LrHyNEMrqe1DK+QgOAdvqGBo=) + +wechat: + open: + componentAppId: "wx897e4673286c915d" + componentSecret: "cdfdfda65c45689beb6766c4c427eed2" + componentToken: "formall2018" + componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" + redis: + host: 127.0.0.1 + port: 6379 + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 100 + max-idle: 100 + max-wait: -1 + min-idle: 10 + fm: exception: true diff --git a/mallinkBApi/src/main/resources/application-test.yml b/mallinkBApi/src/main/resources/application-test.yml index fcb5cb922..13c973402 100644 --- a/mallinkBApi/src/main/resources/application-test.yml +++ b/mallinkBApi/src/main/resources/application-test.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(Uc0AjgkytxHHCwZrmDASWg==) + password: ENC(nV4Mi3bEbBx0Fj7uUyYH55eTaqsFMjKvmNzagicH4pc=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -23,17 +23,34 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) timeout: 3600 expire: 1800 #30分钟 database: 1 defaultExpiration: 2592000 # 默认生命周期30天 jedis: pool: - max-active: 8 - max-idle: 8 + max-active: 50 + max-idle: 30 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(HFbRXtAFVxU36Hk0yT3reyvRuLrw3RhMlbxFj9Ev/VY=) + password: ENC(pk4+/3C5n2hMYmgi+VTqI4P1m77DllW8y4KElMXXmIo=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(NCLcmjwKpAWdn/abD17OKIY7yKepVLWzEpqRYUlURCw=) + secret: ENC(TRcZqql0Rq5PExlMeH/4WiZ/i02b8FXKmLTBChJmbluTa1uoLS9LrHyNEMrqe1DK+QgOAdvqGBo=) fm: exception: true diff --git a/mallinkCApi/src/main/resources/application-test.yml b/mallinkCApi/src/main/resources/application-test.yml index 7a6f7141f..7121e560b 100644 --- a/mallinkCApi/src/main/resources/application-test.yml +++ b/mallinkCApi/src/main/resources/application-test.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(Uc0AjgkytxHHCwZrmDASWg==) + password: ENC(nV4Mi3bEbBx0Fj7uUyYH55eTaqsFMjKvmNzagicH4pc=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -23,7 +23,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) timeout: 3600 expire: 1800 #30分钟 database: 1 @@ -34,6 +34,23 @@ spring: max-idle: 8 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(HFbRXtAFVxU36Hk0yT3reyvRuLrw3RhMlbxFj9Ev/VY=) + password: ENC(pk4+/3C5n2hMYmgi+VTqI4P1m77DllW8y4KElMXXmIo=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(NCLcmjwKpAWdn/abD17OKIY7yKepVLWzEpqRYUlURCw=) + secret: ENC(TRcZqql0Rq5PExlMeH/4WiZ/i02b8FXKmLTBChJmbluTa1uoLS9LrHyNEMrqe1DK+QgOAdvqGBo=) fm: exception: true diff --git a/mallinkSchedule/src/main/resources/application-test.yml b/mallinkSchedule/src/main/resources/application-test.yml index 231dfeac4..91b79ac00 100644 --- a/mallinkSchedule/src/main/resources/application-test.yml +++ b/mallinkSchedule/src/main/resources/application-test.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(q3KzG8KXu/SEKOZT6sP89Q==) + password: ENC(3whPKK6E2oLvj0YS1lmwR9/uYuPER4ZizepM8FHdveA=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -24,7 +24,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(QFwqv3NshvvGhFPiP8rwhvbnxk+rFSqhJi8Pw6TogSg=) timeout: 3600 expire: 1800 #30分钟 database: 1 @@ -35,6 +35,23 @@ spring: max-idle: 8 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(HFbRXtAFVxU36Hk0yT3reyvRuLrw3RhMlbxFj9Ev/VY=) + password: ENC(pk4+/3C5n2hMYmgi+VTqI4P1m77DllW8y4KElMXXmIo=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(NCLcmjwKpAWdn/abD17OKIY7yKepVLWzEpqRYUlURCw=) + secret: ENC(TRcZqql0Rq5PExlMeH/4WiZ/i02b8FXKmLTBChJmbluTa1uoLS9LrHyNEMrqe1DK+QgOAdvqGBo=) fm: exception: true From 96b224b8d5fa87dc33324015b01e12e1b68ded21 Mon Sep 17 00:00:00 2001 From: hupeng Date: Thu, 10 Jan 2019 21:49:40 +0800 Subject: [PATCH 02/14] =?UTF-8?q?[B=E7=AB=AF][=E4=BF=AE=E5=A4=8D]:?= =?UTF-8?q?=E5=BD=93=E4=BC=A0=E5=85=A5=E7=9A=84=E5=8D=A1=E5=88=B8=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=B8=8D=E5=AF=B9=E6=97=B6=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=89=BE=E4=B8=8D=E5=88=B0=E5=8D=A1=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/impl/WxCouponOrderServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 9c70a43ef..7ca71168d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -226,8 +226,12 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("商户不存在:" + bUserId); throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); } - - WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId)); + WxCouponOrderCVo wxCouponOrderCVo = null; + try { + wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId)); + } catch (Exception e) { + return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); + } if (wxCouponOrderCVo == null) return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); return new ResultData(wxCouponOrderCVo); From 2398d38ada0b74674929a5bd0e85d647b796f860 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 22:10:45 +0800 Subject: [PATCH 03/14] =?UTF-8?q?[PROD][=E4=BF=AE=E6=94=B9]:PROD=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-prod.yml | 52 ++++++++++++++++--- .../src/main/resources/application-prod.yml | 27 ++++++++-- .../src/main/resources/application-prod.yml | 29 +++++++++-- .../src/main/resources/application-prod.yml | 25 +++++++-- 4 files changed, 114 insertions(+), 19 deletions(-) diff --git a/mallinkAdmin/src/main/resources/application-prod.yml b/mallinkAdmin/src/main/resources/application-prod.yml index 7df8704f8..5745e3197 100644 --- a/mallinkAdmin/src/main/resources/application-prod.yml +++ b/mallinkAdmin/src/main/resources/application-prod.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallink?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(NUzgQOdJnCbVLKT6BaX0aw==) + password: ENC(mvuoDRiu0jqYaKNRwwTuXZ6U7aoIaqsjdiPqTLgi/nY=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -24,16 +24,56 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) timeout: 3600 expire: 1800 #30分钟 database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 jedis: pool: - max-active: 8 - max-idle: 8 + max-active: 100 + max-idle: 20 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(I2YKxnRVPY7J1r/bwzwHOhQCjj3nVqCWEbVTJvBq7y0=) + password: ENC(APQMO9XQRzMKd0eap+oSSOYH9MQe/r5K0YFF9A9mizU=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) + secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) + + +wechat: + open: + componentAppId: "wx897e4673286c915d" + componentSecret: "cdfdfda65c45689beb6766c4c427eed2" + componentToken: "formall2018" + componentAesKey: "htKq8EjBMPNndfZQK9JiFojFaqFwFpw42VfeWFtx7HN" + redis: + host: 127.0.0.1 + port: 6379 + password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) + timeout: 3600 + expire: 1800 #30分钟 + database: 1 + defaultExpiration: 2592000 # 默认生命周期30天 + jedis: + pool: + max-active: 100 + max-idle: 100 + max-wait: -1 + min-idle: 10 fm: @@ -49,4 +89,4 @@ logging: level: tk.mybatis: debug com.iformall.mapper: debug - path: ./logs/admin \ No newline at end of file + path: ./logs/admin diff --git a/mallinkBApi/src/main/resources/application-prod.yml b/mallinkBApi/src/main/resources/application-prod.yml index 88041cb26..570caf3c5 100644 --- a/mallinkBApi/src/main/resources/application-prod.yml +++ b/mallinkBApi/src/main/resources/application-prod.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallink?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(NUzgQOdJnCbVLKT6BaX0aw==) + password: ENC(mvuoDRiu0jqYaKNRwwTuXZ6U7aoIaqsjdiPqTLgi/nY=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -23,17 +23,34 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) timeout: 3600 expire: 1800 #30分钟 database: 1 defaultExpiration: 2592000 # 默认生命周期30天 jedis: pool: - max-active: 8 - max-idle: 8 + max-active: 100 + max-idle: 20 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(I2YKxnRVPY7J1r/bwzwHOhQCjj3nVqCWEbVTJvBq7y0=) + password: ENC(APQMO9XQRzMKd0eap+oSSOYH9MQe/r5K0YFF9A9mizU=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) + secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) fm: exception: true diff --git a/mallinkCApi/src/main/resources/application-prod.yml b/mallinkCApi/src/main/resources/application-prod.yml index 0c1eba6d1..dcb59fa3b 100644 --- a/mallinkCApi/src/main/resources/application-prod.yml +++ b/mallinkCApi/src/main/resources/application-prod.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallink?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(NUzgQOdJnCbVLKT6BaX0aw==) + password: ENC(mvuoDRiu0jqYaKNRwwTuXZ6U7aoIaqsjdiPqTLgi/nY=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -23,17 +23,36 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) timeout: 3600 expire: 1800 #30分钟 database: 1 defaultExpiration: 2592000 # 默认生命周期30天 jedis: pool: - max-active: 8 - max-idle: 8 + max-active: 100 + max-idle: 20 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(I2YKxnRVPY7J1r/bwzwHOhQCjj3nVqCWEbVTJvBq7y0=) + password: ENC(APQMO9XQRzMKd0eap+oSSOYH9MQe/r5K0YFF9A9mizU=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) + secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) + + fm: exception: true diff --git a/mallinkSchedule/src/main/resources/application-prod.yml b/mallinkSchedule/src/main/resources/application-prod.yml index e8f530704..ed84ea65e 100644 --- a/mallinkSchedule/src/main/resources/application-prod.yml +++ b/mallinkSchedule/src/main/resources/application-prod.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallink?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(BDv01/sQdBGEhFEXuw+8tw==) - password: ENC(0wvpX49+RMUpGP2tb9PY4ta/yCwAmLLhbKG9ndvifPI=) + username: ENC(NUzgQOdJnCbVLKT6BaX0aw==) + password: ENC(mvuoDRiu0jqYaKNRwwTuXZ6U7aoIaqsjdiPqTLgi/nY=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat @@ -24,7 +24,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(4Z6xTEJOw04DYyhur0mTwlveexVEX9YRfNTY78MyKgU=) + password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) timeout: 3600 expire: 1800 #30分钟 database: 1 @@ -35,6 +35,25 @@ spring: max-idle: 8 max-wait: -1 min-idle: 0 + # EMAIL + mail: + host: smtp.exmail.qq.com + username: ENC(I2YKxnRVPY7J1r/bwzwHOhQCjj3nVqCWEbVTJvBq7y0=) + password: ENC(APQMO9XQRzMKd0eap+oSSOYH9MQe/r5K0YFF9A9mizU=) # 授权密码 + properties: + mail: + smtp: + auth: true + starttls: + enable: true + +aws: + clientRegion: cn-northwest-1 + bucketName: iformall-net + access: ENC(a6SN1sZ1enNL49ypiOXkg/pPPAnZD8H4buQFTTKN08s=) + secret: ENC(5P5ff4bTMJUbXVR4ZsM03UHzOKZ4+Zg5Iutcdkyp/Quny/oXg+A4KpfwEyGarlLu3vQMJahGP5M=) + + fm: exception: true From 2928cd748dabddc78b49a3bef77e156bcf025fe0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 22:25:29 +0800 Subject: [PATCH 04/14] =?UTF-8?q?[PROD][=E4=BF=AE=E6=94=B9]:PROD=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkAdmin/src/main/resources/application-prod.yml | 4 ++-- mallinkBApi/src/main/resources/application-prod.yml | 2 +- mallinkCApi/src/main/resources/application-prod.yml | 2 +- mallinkSchedule/src/main/resources/application-prod.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mallinkAdmin/src/main/resources/application-prod.yml b/mallinkAdmin/src/main/resources/application-prod.yml index 5745e3197..bb30ace8c 100644 --- a/mallinkAdmin/src/main/resources/application-prod.yml +++ b/mallinkAdmin/src/main/resources/application-prod.yml @@ -24,7 +24,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) timeout: 3600 expire: 1800 #30分钟 database: 1 @@ -63,7 +63,7 @@ wechat: redis: host: 127.0.0.1 port: 6379 - password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) timeout: 3600 expire: 1800 #30分钟 database: 1 diff --git a/mallinkBApi/src/main/resources/application-prod.yml b/mallinkBApi/src/main/resources/application-prod.yml index 570caf3c5..12e579a99 100644 --- a/mallinkBApi/src/main/resources/application-prod.yml +++ b/mallinkBApi/src/main/resources/application-prod.yml @@ -23,7 +23,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) timeout: 3600 expire: 1800 #30分钟 database: 1 diff --git a/mallinkCApi/src/main/resources/application-prod.yml b/mallinkCApi/src/main/resources/application-prod.yml index dcb59fa3b..d93753e5d 100644 --- a/mallinkCApi/src/main/resources/application-prod.yml +++ b/mallinkCApi/src/main/resources/application-prod.yml @@ -23,7 +23,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) timeout: 3600 expire: 1800 #30分钟 database: 1 diff --git a/mallinkSchedule/src/main/resources/application-prod.yml b/mallinkSchedule/src/main/resources/application-prod.yml index ed84ea65e..52c9a9bd3 100644 --- a/mallinkSchedule/src/main/resources/application-prod.yml +++ b/mallinkSchedule/src/main/resources/application-prod.yml @@ -24,7 +24,7 @@ spring: redis: host: 127.0.0.1 port: 6379 - password: ENC(RTAY8Mr2tATR4RB+YJ5iSbnuQPQZXkCgjLu9IOByO0k=) + password: ENC(8gYU47Fu93NUJPhwPCiPbAT+6VFA1YDx1egK4Z0Nl6w=) timeout: 3600 expire: 1800 #30分钟 database: 1 From e6696d37494f60a3e0ab248c7f0b1d312ac4c5fa Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 10 Jan 2019 22:28:33 +0800 Subject: [PATCH 05/14] =?UTF-8?q?[TEST][=E4=BF=AE=E6=94=B9]:TEST=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mallinkSchedule/src/main/resources/application-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkSchedule/src/main/resources/application-test.yml b/mallinkSchedule/src/main/resources/application-test.yml index 91b79ac00..6a7759992 100644 --- a/mallinkSchedule/src/main/resources/application-test.yml +++ b/mallinkSchedule/src/main/resources/application-test.yml @@ -2,8 +2,8 @@ spring: # JDBC datasource: url: jdbc:mysql://formalldb.cfqyqflkdlit.rds.cn-northwest-1.amazonaws.com.cn:3306/mallinkTest?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: ENC(q3KzG8KXu/SEKOZT6sP89Q==) - password: ENC(3whPKK6E2oLvj0YS1lmwR9/uYuPER4ZizepM8FHdveA=) + username: ENC(Uc0AjgkytxHHCwZrmDASWg==) + password: ENC(nV4Mi3bEbBx0Fj7uUyYH55eTaqsFMjKvmNzagicH4pc=) type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver filters: stat From 5e41b7aad0863d37d9bd5352e9570842f7123b37 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 11 Jan 2019 00:33:20 +0800 Subject: [PATCH 06/14] =?UTF-8?q?[=E8=B4=AD=E5=88=B8=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86][=E4=BF=AE=E6=94=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxCouponInjectServiceImpl.java | 1 + .../service/impl/WxCouponSendServiceImpl.java | 18 ++++++++++++------ .../service/impl/WxOrderServiceImpl.java | 11 ++++++++--- .../service/impl/WxPayOrderServiceImpl.java | 5 +---- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java index 9a29181a4..77e0103bd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponInjectServiceImpl.java @@ -239,6 +239,7 @@ public class WxCouponInjectServiceImpl implements WxCouponInjectService { couponOrder = wxOrderService.sendFreeCouponToUser(tempCUser.getId(), wxCoupon.getId()); } catch (MallinkException e) { logger.error(e.getMessage()); + return false; } if (couponOrder != null) { wxCouponActionLogService.addOne(tempCUser.getTenantId(), wxCoupon.getId(), couponOrder.getId(), EnumCouponSendSendType.INJECT.getCode(), couponInjectId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java index 232257648..fae234e26 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java @@ -15,6 +15,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @@ -103,7 +104,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { } @Override - @Transactional + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public boolean sendCouponToUser(EnumCouponSendSendType type, Object param) { String tenantId; @@ -177,12 +178,17 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { continue; // 发放免费券 - WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId()); - if (couponOrder != null) { - wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); - bRet = true; + WxCouponOrder couponOrder = null; + try { + couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId()); + if (couponOrder != null) { + wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), type.getCode(), send.getId()); + bRet = true; + } + // wxCouponService.reduceInventory(send.getCouponId(), 1); + } catch (Exception e) { + logger.error(e.getMessage()); } - wxCouponService.reduceInventory(send.getCouponId(), 1); } return bRet; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 7dd8e58a5..dfbf97634 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -614,7 +614,12 @@ public class WxOrderServiceImpl implements WxOrderService { } // 减库存操作 - stockReduce(user, coupon, couponIdStr); + try { + stockReduce(user, coupon, couponIdStr); + } catch (Exception e) { + logger.error(e.getMessage()); + } + int payment = coupon.getSalePrice(); @@ -665,7 +670,7 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class}) public WxCouponOrder sendFreeCouponToUser(Long userId, Long couponId) { // check 用户状态 WxCUser user = null; @@ -771,7 +776,7 @@ public class WxOrderServiceImpl implements WxOrderService { updateOrder.setUpdateDate(currentDate); int ret = 0; try { - ret = wxOrderMapper.updateByPrimaryKey(updateOrder); + wxOrderMapper.updateByPrimaryKey(updateOrder); } catch (Exception e) { logger.error("订单更新失败:" + e.getMessage()); throw new MallinkException(ErrorCode.ORDER_UPDATE_ERR); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 6e4df88aa..b863ddb72 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1191,10 +1191,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { // 修改订单状态 try { - int _count = wxOrderService.couponOrderSuccess(order); - if (_count > 1) { - throw new MallinkException(ErrorCode.ORDER_IS_FAIL); - } + wxOrderService.couponOrderSuccess(order); } catch (Exception e) { logger.error(e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "订单更新"); From e890a5cbc82548debc8e6eb76b2d0d6d3e88313b Mon Sep 17 00:00:00 2001 From: hupeng Date: Fri, 11 Jan 2019 02:27:39 +0800 Subject: [PATCH 07/14] =?UTF-8?q?[A=E7=AB=AF][=E4=BF=AE=E5=A4=8D]:?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A1=94=E5=8F=B0B=E7=AB=AF=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=88=97=E8=A1=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java index 0253d3285..b79297464 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java @@ -29,7 +29,7 @@ public class WxMerchantMicroPayVo implements Serializable { private String reportDate; /*商户电话**/ @io.swagger.annotations.ApiModelProperty(value = "商户id", name = "merchantId") - private Long merchantPhone; + private String merchantPhone; /*商户名**/ @io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantName") private String merchantName; From 1a610147c0611925bbc3b5c3d1a4645ea0a1e3a2 Mon Sep 17 00:00:00 2001 From: hupeng Date: Fri, 11 Jan 2019 02:34:00 +0800 Subject: [PATCH 08/14] =?UTF-8?q?[A=E7=AB=AF][=E4=BF=AE=E5=A4=8D]:?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A1=94=E5=8F=B0B=E7=AB=AF=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=88=97=E8=A1=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/domain/vo/WxMerchantMicroPayVo.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java index b79297464..294fca55d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantMicroPayVo.java @@ -58,11 +58,11 @@ public class WxMerchantMicroPayVo implements Serializable { tradeAmt = _tradeAmt; } - public Long getMerchantPhone() { + public String getMerchantPhone() { return merchantPhone; } - public void setMerchantPhone(Long merchantPhone) { + public void setMerchantPhone(String merchantPhone) { this.merchantPhone = merchantPhone; } From 551968c3e28982c9504cf95af50cdfe5c08d83d6 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 11 Jan 2019 03:21:21 +0800 Subject: [PATCH 09/14] =?UTF-8?q?[=E4=BC=9A=E5=91=98=E5=AF=BC=E5=85=A5][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E5=BC=82=E6=AD=A5=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=89=8D=E7=AB=AF=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/AsyncTask.java | 117 ++++++++++++++++++ .../WxCUserBasicInfoController.java | 93 ++------------ 2 files changed, 129 insertions(+), 81 deletions(-) create mode 100644 mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java new file mode 100644 index 000000000..d9c84b3cd --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java @@ -0,0 +1,117 @@ +package com.iformall.controller; + +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; +import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxTags; +import com.iformall.domain.vo.CUserBaseInfoT; +import com.iformall.service.WxCUserBasicInfoService; +import com.iformall.service.WxTagsService; +import com.iformall.shiro.UserSession; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@Component +public class AsyncTask { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxCUserBasicInfoService wxCUserBasicInfoService; + + @Autowired + private WxTagsService wxTagsService; + + @Autowired + StringRedisTemplate stringRedisTemplate; + + private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { + @Override + public Object importHandler(CUserBaseInfoT obj, String name, Object value) { + if (value == null) { + value = ""; + } + System.out.println(name + " + " + value.toString()); + return super.importHandler(obj, name, value); + } + + } + + @Async + public void importExcelData(MultipartFile file, MallUserInfo user, String importKey, String tenantId) { + ImportParams params = new ImportParams(); + // 需要验证 + params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); + IExcelDataHandler handler = new AsyncTask.UserExcelHandler(); + handler.setNeedHandlerFields(new String[] { "手机号" }); + params.setNeedVerify(true); + + ExcelImportResult datalist = null; + + try { + datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); + } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return; + } + + if(datalist == null) { + logger.error("导入模板失败: 模板数据解析失败"); + stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + return; + } + + List successList = datalist.getList(); + List failList = datalist.getFailList(); + + int total = successList.size() + failList.size(); + int all_success = successList.size(); + int all_fail = failList.size(); + + //添加到redis里 + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); + stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); + stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); + + logger.info("验证通过的数量: " + successList.size()); + logger.info("验证未通过的数量: " + failList.size()); + + WxTags wxTagsQ = new WxTags(); + List tagList = wxTagsService.findList(wxTagsQ); + + try { + successList.parallelStream().forEach(uBase -> { + // 异步无法获取到原有的session,所以再注入一下session + Session session = SecurityUtils.getSubject().getSession(); + session.setAttribute(UserSession.userInfo, user); + session.setAttribute(UserSession.userId, user.getId()); + session.setAttribute(UserSession.tenantId, tenantId); + + wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase); + }); + } catch (Exception e) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); + e.printStackTrace(); + logger.error("导入模板失败:"+e.getMessage()); + } + } +} diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 4fa95b145..799c0dd29 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -1,10 +1,5 @@ package com.iformall.controller; -import cn.afterturn.easypoi.excel.ExcelImportUtil; -import cn.afterturn.easypoi.excel.entity.ImportParams; -import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; -import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; -import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -13,19 +8,14 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; -import com.iformall.domain.vo.CUserBaseInfoT; import com.iformall.enums.EnumAssignTagsTrigger; import com.iformall.exception.MallinkException; import com.iformall.service.*; -import com.iformall.service.impl.WxCUserBasicInfoServiceImpl; -import com.iformall.shiro.UserSession; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.session.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -38,6 +28,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -69,12 +60,14 @@ public class WxCUserBasicInfoController extends BaseController { @Autowired private WxLevelConfigService wxLevelConfigService; - @Autowired - private WxTagsService wxTagsService; + @Autowired StringRedisTemplate stringRedisTemplate; + @Autowired + private AsyncTask asyncTask; + private void setUserInfoLevel(WxCUserBasicInfo info) { if (info.getPoins() == null || info.getPoins() == 0) { @@ -265,17 +258,7 @@ public class WxCUserBasicInfoController extends BaseController { } - private class UserExcelHandler extends ExcelDataHandlerDefaultImpl { - @Override - public Object importHandler(CUserBaseInfoT obj, String name, Object value) { - if (value == null) { - value = ""; - } - System.out.println(name + " + " + value.toString()); - return super.importHandler(obj, name, value); - } - } @RequestMapping("/importTemplate") public ResultData importTemplate(@RequestParam("file") MultipartFile file) { @@ -287,80 +270,28 @@ public class WxCUserBasicInfoController extends BaseController { final MallUserInfo user = getUser(); String userId = "" + user.getId(); String importKey = importMemPrev + userId; + final String tenantId = getTenantId(); + //查询当前用户得到的值是否为空,为空继续,不为空,返回模板正在导入 Boolean allCount = stringRedisTemplate.opsForHash().hasKey(importKey, "allCount"); if (allCount) { return new ResultData(Result.SUCCESS, "模板正在导入"); } + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", 0 + ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allSuccessCount", 0 + ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "processCount", ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", ""); + asyncTask.importExcelData(file, user, importKey, tenantId); - ImportParams params = new ImportParams(); - // 需要验证 - params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); - IExcelDataHandler handler = new UserExcelHandler(); - handler.setNeedHandlerFields(new String[] { "手机号" }); - params.setNeedVerify(true); - - ExcelImportResult datalist = null; - try { - datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); - } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); - logger.error(e.getMessage()); - return new ResultData(ErrorCode.MEM_IMPORT_ERR); - } - - if(datalist == null) { - logger.error("导入模板失败: 模板数据解析失败"); - return new ResultData(ErrorCode.MEM_IMPORT_ERR); - } - - List successList = datalist.getList(); - List failList = datalist.getFailList(); - - int total = successList.size() + failList.size(); - int all_success = successList.size(); - int all_fail = failList.size(); - - //添加到redis里 - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); + stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); + return new ResultData(Result.SUCCESS, "模板正在导入"); + } - logger.info("验证通过的数量: " + successList.size()); - logger.info("验证未通过的数量: " + failList.size()); - WxTags wxTagsQ = new WxTags(); - List tagList = wxTagsService.findList(wxTagsQ); - final String tenantId = getTenantId(); - try { - successList.parallelStream().forEach(uBase -> { - // 异步无法获取到原有的session,所以再注入一下session - Session session = SecurityUtils.getSubject().getSession(); - session.setAttribute(UserSession.userInfo, user); - session.setAttribute(UserSession.userId, user.getId()); - session.setAttribute(UserSession.tenantId, tenantId); - - wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase); - }); - } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); - e.printStackTrace(); - logger.error("导入模板失败:"+e.getMessage()); - } - stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); - return new ResultData(Result.SUCCESS, "模板正在导入"); - } @GetMapping("/queryTemplateCount") public ResultData queryTemplateCount() { From 7f9eaaec74f3b36e8973a3f225aad06166b4964b Mon Sep 17 00:00:00 2001 From: gongbiao Date: Fri, 11 Jan 2019 15:49:12 +0800 Subject: [PATCH 10/14] =?UTF-8?q?[=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E7=9F=AD=E4=BF=A1=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=8A=A0=E5=85=A5=E6=97=A5=E5=BF=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/schedule/MsgSendingSchedule.java | 53 +++++++------------ 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java index ef745c1c2..b5f52bacd 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java @@ -1,21 +1,24 @@ package com.iformall.schedule; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.iformall.domain.po.WxMsg; import com.iformall.domain.po.WxMsgConfig; +import com.iformall.enums.EnumMsgSendStatus; +import com.iformall.enums.EnumMsgStatus; import com.iformall.enums.EnumVerifyCode; -import com.iformall.exception.MallinkException; import com.iformall.mapper.WxMsgConfigMapper; import com.iformall.mapper.WxMsgMapper; import com.iformall.service.PushLimitService; -import com.iformall.utils.*; +import com.iformall.utils.DateUtils; +import com.iformall.utils.WiwideUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.util.*; +import java.util.List; @Component public class MsgSendingSchedule { @@ -32,75 +35,59 @@ public class MsgSendingSchedule { private PushLimitService pushLimitService; - @Scheduled(cron = "0 1 * * * ?") // 每小时第一分钟执行 + @Scheduled(cron = "0 46 * * * ?") // 每小时第一分钟执行 public void sendmsgschedule() { - logger.info("sendmsg定时任务启动"); - - String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00"); + String systemTime = DateUtils.getSystemTime("yyyy-MM-dd 14:00:00"); WxMsg wxMsg = new WxMsg(); wxMsg.setIsright(0); wxMsg.setSendtime(systemTime); List list = wxMsgMapper.findList(wxMsg); - + logger.info("将要发送的短信列表:" + JSONArray.toJSONString(list)); for(WxMsg msg:list){ - boolean checkTime = false; - try { - checkTime = pushLimitService.checkSendTime(wxMsg.getTenantId()); - } catch (MallinkException e) { - logger.error(e.getMessage()); - } - if (checkTime) { - sendmsg(msg); - } + sendmsg(msg); } - logger.info("sendmsg定时任务结束"); } public void sendmsg(WxMsg wxMsg){ - - - + logger.info("发送短信开始----------"); //从短信配置中查询密钥 bid 等信息 WxMsgConfig wxMsgConfig = new WxMsgConfig(); wxMsgConfig.setTenantId(wxMsg.getTenantId()); List wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig); - if (wxMsgConfigs.size() == 0) return; + if (wxMsgConfigs.size() == 0) { + logger.info("短信相关配置不存在"); + return; + } wxMsgConfig = wxMsgConfigs.get(0); - if(wxMsgConfig.getRemains()==0){ logger.info("短信数量为0"); return; } - if(wxMsgConfig.getRemains() Date: Fri, 11 Jan 2019 15:52:11 +0800 Subject: [PATCH 11/14] =?UTF-8?q?[=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E7=9F=AD=E4=BF=A1=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=8A=A0=E5=85=A5=E6=97=A5=E5=BF=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/schedule/MsgSendingSchedule.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java index b5f52bacd..d01adca38 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgSendingSchedule.java @@ -20,6 +20,9 @@ import org.springframework.stereotype.Component; import java.util.List; +/** + * @author gongbiao + */ @Component public class MsgSendingSchedule { @@ -31,26 +34,25 @@ public class MsgSendingSchedule { @Autowired private WxMsgConfigMapper wxMsgConfigMapper; - @Autowired - private PushLimitService pushLimitService; - - - @Scheduled(cron = "0 46 * * * ?") // 每小时第一分钟执行 + /** + * 每小时第一分钟执行 + */ + @Scheduled(cron = "0 1 * * * ?") public void sendmsgschedule() { logger.info("sendmsg定时任务启动"); - String systemTime = DateUtils.getSystemTime("yyyy-MM-dd 14:00:00"); + String systemTime = DateUtils.getSystemTime("yyyy-MM-dd HH:00:00"); WxMsg wxMsg = new WxMsg(); wxMsg.setIsright(0); wxMsg.setSendtime(systemTime); List list = wxMsgMapper.findList(wxMsg); logger.info("将要发送的短信列表:" + JSONArray.toJSONString(list)); - for(WxMsg msg:list){ + for (WxMsg msg : list) { sendmsg(msg); } logger.info("sendmsg定时任务结束"); } - public void sendmsg(WxMsg wxMsg){ + public void sendmsg(WxMsg wxMsg) { logger.info("发送短信开始----------"); //从短信配置中查询密钥 bid 等信息 WxMsgConfig wxMsgConfig = new WxMsgConfig(); @@ -61,11 +63,11 @@ public class MsgSendingSchedule { return; } wxMsgConfig = wxMsgConfigs.get(0); - if(wxMsgConfig.getRemains()==0){ + if (wxMsgConfig.getRemains() == 0) { logger.info("短信数量为0"); return; } - if(wxMsgConfig.getRemains() Date: Fri, 11 Jan 2019 17:53:18 +0800 Subject: [PATCH 12/14] =?UTF-8?q?[=E4=B8=8A=E4=BC=A0=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=BC=82=E5=B8=B8][=E4=BF=AE=E6=94=B9]:redis=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/AsyncTask.java | 38 +++++---- .../WxCUserBasicInfoController.java | 82 ++++++++++++++++--- 2 files changed, 94 insertions(+), 26 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java index d9c84b3cd..e7598f780 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/AsyncTask.java @@ -19,9 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.util.List; +import java.util.concurrent.TimeUnit; @Component public class AsyncTask { @@ -48,8 +49,18 @@ public class AsyncTask { } + private void set_redis_value(String importKey, String allCount, String allSuccessCount, String processCount, String failCount, boolean fail) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", allCount); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", allSuccessCount); + stringRedisTemplate.opsForHash().put(importKey, "processCount", processCount); + stringRedisTemplate.opsForHash().put(importKey, "failCount", failCount); + if(fail) { + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + } + } + @Async - public void importExcelData(MultipartFile file, MallUserInfo user, String importKey, String tenantId) { + public void importExcelData(File file, MallUserInfo user, String importKey, String tenantId) { ImportParams params = new ImportParams(); // 需要验证 params.setImportFields(new String[]{"姓名", "性别", "手机号", "微信昵称", "学历", "生日", "地址", "上次活跃时间", "注册时间", "标签", "成长值"}); @@ -60,22 +71,20 @@ public class AsyncTask { ExcelImportResult datalist = null; try { - datalist = ExcelImportUtil.importExcelMore(file.getInputStream(), CUserBaseInfoT.class, params); + datalist = ExcelImportUtil.importExcelMore(file, CUserBaseInfoT.class, params); } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + set_redis_value(importKey, "1", "0", "0", "1", true); logger.error(e.getMessage()); + // 删除缓存文件 + file.delete(); return; } + // 删除缓存文件 + file.delete(); if(datalist == null) { logger.error("导入模板失败: 模板数据解析失败"); - stringRedisTemplate.opsForHash().put(importKey, "allCount", "1"); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "1"); + set_redis_value(importKey, "1", "0", "0", "1", true); return; } @@ -87,10 +96,7 @@ public class AsyncTask { int all_fail = failList.size(); //添加到redis里 - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + total); - stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", "" + all_success); - stringRedisTemplate.opsForHash().put(importKey, "processCount", "0"); - stringRedisTemplate.opsForHash().put(importKey, "failCount", "" + all_fail); + set_redis_value(importKey, "" + total, "" + all_success, "0", "" + all_fail, false); logger.info("验证通过的数量: " + successList.size()); logger.info("验证未通过的数量: " + failList.size()); @@ -109,7 +115,7 @@ public class AsyncTask { wxCUserBasicInfoService.importOneMem(tenantId, importKey, tagList, uBase); }); } catch (Exception e) { - stringRedisTemplate.opsForHash().put(importKey, "allCount", "" + all_fail); + set_redis_value(importKey, "1", "0", "0", "1", true); e.printStackTrace(); logger.error("导入模板失败:"+e.getMessage()); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 799c0dd29..888179273 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -25,10 +25,13 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -258,12 +261,20 @@ public class WxCUserBasicInfoController extends BaseController { } + private void set_redis_value(String importKey, String allCount, String allSuccessCount, String processCount, String failCount, boolean fail) { + stringRedisTemplate.opsForHash().put(importKey, "allCount", allCount); + stringRedisTemplate.opsForHash().put(importKey, "allSuccessCount", allSuccessCount); + stringRedisTemplate.opsForHash().put(importKey, "processCount", processCount); + stringRedisTemplate.opsForHash().put(importKey, "failCount", failCount); + if(fail) { + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); + } + } - - @RequestMapping("/importTemplate") - public ResultData importTemplate(@RequestParam("file") MultipartFile file) { + @PostMapping(value = "/importTemplate", consumes = "multipart/*") + public ResultData importTemplate(@RequestParam("file") MultipartFile mFile) { logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::importTemplate"); - if (file.isEmpty()) { + if (mFile.isEmpty()) { throw new MallinkException(Result.ERROR, "上传文件不能为空"); } //得到当前用户ID @@ -279,20 +290,71 @@ public class WxCUserBasicInfoController extends BaseController { } stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", 0 + ""); + stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allSuccessCount", 0 + ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "processCount", ""); stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", ""); - asyncTask.importExcelData(file, user, importKey, tenantId); + String fpath = "./upload/"; + File targetFile = new File(fpath); + if (!targetFile.exists()) { + targetFile.mkdirs(); + } + String fileName = "1.xls"; + int dot = mFile.getOriginalFilename().lastIndexOf('.'); + fileName = fileName + mFile.getOriginalFilename().substring(dot, mFile.getOriginalFilename().length()); + + File lFile = new File(fpath + File.separator + fileName); + + FileOutputStream fos = null; + BufferedInputStream fs = null; + try { + fos = new FileOutputStream(lFile); + fs = (BufferedInputStream) mFile.getInputStream(); + byte[] buffer = new byte[1024]; + int len = 0; + while ((len = fs.read(buffer)) != -1) { + fos.write(buffer, 0, len); + } + fos.close(); + fs.close(); + } catch (Exception e) { + stringRedisTemplate.expire(importKey,3,TimeUnit.SECONDS); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR.getCode(), "模板上传失败"); + } finally { + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + stringRedisTemplate.expire(importKey,3,TimeUnit.SECONDS); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR.getCode(), "模板上传失败"); + } + } + if (fs != null) { + try { + fs.close(); + } catch (IOException e) { + stringRedisTemplate.expire(importKey,3,TimeUnit.SECONDS); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "allCount", "1"); + stringRedisTemplate.opsForHash().putIfAbsent(importKey, "failCount", "1"); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.MEM_IMPORT_ERR.getCode(), "模板上传失败"); + } + } + } + + asyncTask.importExcelData(lFile, user, importKey, tenantId); - stringRedisTemplate.expire(importKey,30,TimeUnit.MINUTES); return new ResultData(Result.SUCCESS, "模板正在导入"); } - - - @GetMapping("/queryTemplateCount") public ResultData queryTemplateCount() { String importKey = importMemPrev + getUser().getId(); From 628c9ce3f4cdb727b62f82393e4f10abe5bc7eb3 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 11 Jan 2019 18:10:02 +0800 Subject: [PATCH 13/14] =?UTF-8?q?[=E4=B8=8A=E4=BC=A0=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=BC=82=E5=B8=B8][=E4=BF=AE=E6=94=B9]:=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=87=8D=E8=AE=BE=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 726f650ed..a1dd83c00 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -43,6 +43,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; +import java.util.concurrent.TimeUnit; @Service public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @@ -609,6 +610,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { //记数 stringRedisTemplate.opsForHash().increment(importKey,"processCount",1); + stringRedisTemplate.expire(importKey,10, TimeUnit.SECONDS); } @Override From 53ff8d4cb8dee84d484b7b5c6abe263a37933b59 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Fri, 11 Jan 2019 18:33:35 +0800 Subject: [PATCH 14/14] =?UTF-8?q?[=E5=85=8D=E5=AF=86=E7=99=BB=E5=BD=95][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E7=94=A8=E6=88=B7=E4=B8=BAnull=E6=97=B6?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/controller/HomeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java index cc50f105a..41aaed291 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java @@ -170,7 +170,7 @@ public class HomeController extends BaseController { if(StringUtils.isNotBlank(user.getPhone())) { // 领导登录 user = mallUserInfoService.getByPhone(user.getPhone()); - if(!isInMobileAdmin(user)) { + if(user == null && !isInMobileAdmin(user)) { return new ResultData(ErrorCode.USER_NOT_ADMIN); } } else if(StringUtils.isNotBlank(user.getOpenId())) {