From b3bba69d3091635041eedfe1676c4e97ee953843 Mon Sep 17 00:00:00 2001 From: wangqing Date: Fri, 4 Jun 2021 14:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=BE=AA=E7=8E=AF=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/service/impl/UserServiceImpl.java | 24 +++---- .../tduck/cloud/api/config/WebMvcConfig.java | 21 +++--- .../WxMpUserSubscribeEventHandler.java | 12 ++-- .../web/controller/UserProjectController.java | 4 +- .../interceptor/AuthorizationInterceptor.java | 7 +- ...oginUserHandlerMethodArgumentResolver.java | 8 ++- .../src/main/resources/application-dev1.yml | 64 +++++++++++++++++++ tduck-api/src/main/resources/application.yml | 4 +- .../wrapper/JsonLambdaQueryWrapper.java | 4 +- .../tduck/cloud/common/util/RedisUtils.java | 14 ++-- .../cloud/wx/mp/config/WxMpConfiguration.java | 41 +++++------- .../cloud/wx/mp/handler/ScanHandler.java | 7 +- .../cloud/wx/mp/handler/SubscribeHandler.java | 13 ++-- .../handler/scan/BindAccountScanStrategy.java | 9 ++- .../wx/mp/handler/scan/LoginScanStrategy.java | 13 ++-- .../mp/handler/scan/ScanStrategyContext.java | 3 +- .../handler/scan/SubNotifyScanStrategy.java | 11 ++-- .../service/impl/WxMpUserMsgServiceImpl.java | 6 +- 18 files changed, 158 insertions(+), 107 deletions(-) create mode 100644 tduck-api/src/main/resources/application-dev1.yml diff --git a/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java b/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java index 0ea1b62..9723340 100644 --- a/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java +++ b/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java @@ -23,8 +23,8 @@ import com.tduck.cloud.account.util.NameUtils; import com.tduck.cloud.account.vo.LoginUserVO; import com.tduck.cloud.common.util.RedisUtils; import com.tduck.cloud.common.util.Result; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @@ -35,17 +35,16 @@ import java.time.LocalDateTime; * @author smalljop * @since 2020-11-10 18:10:43 */ -@Service("userService") @Slf4j +@Service("userService") +@RequiredArgsConstructor public class UserServiceImpl extends ServiceImpl implements UserService { - @Autowired - private JwtUtils jwtUtils; - @Autowired - private RedisUtils redisUtils; - @Autowired - private UserAuthorizeService userAuthorizeService; + private final JwtUtils jwtUtils; + private final RedisUtils redisUtils; + private final UserAuthorizeService userAuthorizeService; + @Override @@ -82,7 +81,6 @@ public class UserServiceImpl extends ServiceImpl impleme /** * 创建用户 * - * @param userEntity */ private void createUser(UserEntity userEntity) { userEntity.setName(NameUtils.getCnName()); @@ -94,7 +92,7 @@ public class UserServiceImpl extends ServiceImpl impleme @Override public Result accountLogin(AccountLoginRequest request) { - UserEntity userEntity = null; + UserEntity userEntity; if (ReUtil.isMatch(Validator.EMAIL, request.getAccount())) { userEntity = getUserByEmail(request.getAccount()); } else { @@ -112,10 +110,6 @@ public class UserServiceImpl extends ServiceImpl impleme /** * 获取登录结果 * - * @param userEntity - * @param channel - * @param requestIp - * @return */ @Override public LoginUserVO getLoginResult(UserEntity userEntity, AccountChannelEnum channel, String requestIp) { @@ -145,8 +139,6 @@ public class UserServiceImpl extends ServiceImpl impleme /** * 根据邮箱获取 - * - * @return */ @Override public UserEntity getUserByEmail(final String email) { diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/config/WebMvcConfig.java b/tduck-api/src/main/java/com/tduck/cloud/api/config/WebMvcConfig.java index 5291f80..3942b5e 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/config/WebMvcConfig.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/config/WebMvcConfig.java @@ -18,31 +18,30 @@ import java.io.File; import java.util.List; /** + * web mvc 配置 + * * @author smalljop */ @Configuration public class WebMvcConfig implements WebMvcConfigurer { + /** + * html静态资源 js静态资源 css静态资源 + */ + private final List staticResources = Lists.newArrayList("/**/*.html", + "/**/*.js", + "/**/*.css", + "/**/*.woff", + "/**/*.ttf"); @Autowired private OssStorageConfig storageConfig; - @Autowired private AuthorizationInterceptor authorizationInterceptor; - @Autowired private NoRepeatSubmitInterceptor noRepeatSubmitInterceptor; - @Autowired private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver; - //html静态资源 js静态资源 css静态资源 - private final List staticResources = Lists.newArrayList("/**/*.html", - "/**/*.js", - "/**/*.css", - "/**/*.woff", - "/**/*.ttf"); - - /** * 配置本地文件上传的虚拟路径和静态化的文件生成路径 * 备注:这是一种图片上传访问图片的方法,实际上也可以使用nginx反向代理访问图片 diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/handler/WxMpUserSubscribeEventHandler.java b/tduck-api/src/main/java/com/tduck/cloud/api/handler/WxMpUserSubscribeEventHandler.java index 540decb..ef18f2e 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/handler/WxMpUserSubscribeEventHandler.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/handler/WxMpUserSubscribeEventHandler.java @@ -7,29 +7,27 @@ import com.tduck.cloud.wx.mp.entity.WxMpUserEntity; import com.tduck.cloud.wx.mp.event.WxMpUserSubscribeEvent; import com.tduck.cloud.wx.mp.handler.scan.LoginScanStrategy; import com.tduck.cloud.wx.mp.service.WxMpUserService; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; /** * @author : smalljop - * @description : + * @description : 微信订阅事件处理 * @create : 2020-12-01 18:37 **/ -@Component @Slf4j +@Component +@RequiredArgsConstructor public class WxMpUserSubscribeEventHandler { - @Autowired private UserService userService; - @Autowired private WxMpUserService wxMpUserService; - @Autowired - private LoginScanStrategy loginScanStrategy; + private final LoginScanStrategy loginScanStrategy; @EventListener public void onWxMpUserSubscribe(WxMpUserSubscribeEvent event) { diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java index b67805a..29f5e22 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/controller/UserProjectController.java @@ -42,7 +42,6 @@ import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -71,9 +70,8 @@ public class UserProjectController { private final ProjectTemplateItemService projectTemplateItemService; private final WxMpUserService wxMpUserService; private final RedisUtils redisUtils; + private final WxMpService wxMpService; - @Autowired - private WxMpService wxMpService; /** * 创建项目 diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java index ffe3bc8..3528004 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java @@ -18,11 +18,14 @@ import javax.servlet.http.HttpServletResponse; */ @Component public class AuthorizationInterceptor extends HandlerInterceptorAdapter { - @Autowired - private JwtUtils jwtUtils; + private final JwtUtils jwtUtils; public static final String USER_KEY = "userId"; + public AuthorizationInterceptor(JwtUtils jwtUtils) { + this.jwtUtils = jwtUtils; + } + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Login annotation; diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/resolver/LoginUserHandlerMethodArgumentResolver.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/resolver/LoginUserHandlerMethodArgumentResolver.java index 90b79f0..99ec0c6 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/resolver/LoginUserHandlerMethodArgumentResolver.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/resolver/LoginUserHandlerMethodArgumentResolver.java @@ -4,7 +4,6 @@ import com.tduck.cloud.account.entity.UserEntity; import com.tduck.cloud.account.service.UserService; import com.tduck.cloud.api.annotation.LoginUser; import com.tduck.cloud.api.web.interceptor.AuthorizationInterceptor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; import org.springframework.stereotype.Component; import org.springframework.web.bind.support.WebDataBinderFactory; @@ -19,8 +18,11 @@ import org.springframework.web.method.support.ModelAndViewContainer; */ @Component public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { - @Autowired - private UserService userService; + private final UserService userService; + + public LoginUserHandlerMethodArgumentResolver(UserService userService) { + this.userService = userService; + } @Override public boolean supportsParameter(MethodParameter parameter) { diff --git a/tduck-api/src/main/resources/application-dev1.yml b/tduck-api/src/main/resources/application-dev1.yml new file mode 100644 index 0000000..ddf51f6 --- /dev/null +++ b/tduck-api/src/main/resources/application-dev1.yml @@ -0,0 +1,64 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/tduck?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&tinyInt1isBit=false + username: root + password: root + type: com.zaxxer.hikari.HikariDataSource + hikari: + minimum-idle: 5 + maximum-pool-size: 15 + auto-commit: true + idle-timeout: 30000 + pool-name: DatebookHikariCP + max-lifetime: 1800000 + connection-test-query: SELECT 1 FROM DUAL + redis: + database: 1 + host: 127.0.0.1 + port: 6379 + password: # 密码(默认为空) + timeout: 6000ms # 连接超时时长(毫秒) + jedis: + pool: + max-active: 1000 # 连接池最大连接数(使用负值表示没有限制) + max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) + max-idle: 10 # 连接池中的最大空闲连接 + min-idle: 5 # 连接池中的最小空闲连接 + mail: + host: smtp.exmail.qq.com # 邮箱smtp + username: pr@tduckapp.com # 用户名 + password: # 授权码 + +logging: + level: + com.tduck.cloud: debug + config: classpath:logback-spring.xml + +platform: + oss: + ossType: 1 #oss类型 + endpoint: + accessKeyId: # oss key + accessKeySecret: #oss 秘钥 + bucketName: tduck-cloud # + domain: https://qiniu.smileyi.top #访问域名 + sms: + secretId: # 腾讯云短信 id + secretKey: #腾讯云短信秘钥 + appId: #腾讯云appId + sign: # 腾讯云短信签名 + validateCodeTemplateId: # 验证码模板ID + retrievePwdValidateCodeTemplateId: #找回密码模板ID + front: + baseUrl: http://localhost:8888/ + resetPwdUrl: http://localhost:8888/forget/password?code={}&email={} + updateEmailUrl: http://localhost:8888/account/validate?type=updateEmail&code={}&email={} +wx: + mp: + redis-config-key-prefix: wx + configs: + - appId: #输入微信公众号的APPId + secret: # 微信公众号的秘钥 + token: # 微信公众号token + aesKey: diff --git a/tduck-api/src/main/resources/application.yml b/tduck-api/src/main/resources/application.yml index fe8e977..130d330 100644 --- a/tduck-api/src/main/resources/application.yml +++ b/tduck-api/src/main/resources/application.yml @@ -2,7 +2,7 @@ spring: application: name: tduck-api profiles: - active: dev + active: dev1 jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss @@ -16,7 +16,7 @@ spring: max-request-size: 100MB server: - port: 8999 + port: 8978 servlet: context-path: /tduck-api diff --git a/tduck-common/src/main/java/com/tduck/cloud/common/mybatis/wrapper/JsonLambdaQueryWrapper.java b/tduck-common/src/main/java/com/tduck/cloud/common/mybatis/wrapper/JsonLambdaQueryWrapper.java index 0efcc07..a721ff5 100644 --- a/tduck-common/src/main/java/com/tduck/cloud/common/mybatis/wrapper/JsonLambdaQueryWrapper.java +++ b/tduck-common/src/main/java/com/tduck/cloud/common/mybatis/wrapper/JsonLambdaQueryWrapper.java @@ -17,8 +17,8 @@ public class JsonLambdaQueryWrapper extends LambdaQueryWrapper { * @param * @param condition 条件 * @param column 列表 - * @param jsonKey - * @param value + * @param jsonKey 需查询可以 + * @param value 等于值 * @return */ public JsonLambdaQueryWrapper jsonConcat(boolean condition, String column, String jsonKey, Object value) { diff --git a/tduck-common/src/main/java/com/tduck/cloud/common/util/RedisUtils.java b/tduck-common/src/main/java/com/tduck/cloud/common/util/RedisUtils.java index 0e793b6..c9601c6 100644 --- a/tduck-common/src/main/java/com/tduck/cloud/common/util/RedisUtils.java +++ b/tduck-common/src/main/java/com/tduck/cloud/common/util/RedisUtils.java @@ -2,7 +2,6 @@ package com.tduck.cloud.common.util; import cn.hutool.core.convert.Convert; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.stereotype.Component; @@ -11,14 +10,19 @@ import java.util.Set; import java.util.concurrent.TimeUnit; /** - * Created by Dell on 23/09/2018. + * + * @author smalljop + * @date 23/09/2018 */ @Component @Slf4j public class RedisUtils { - @Autowired - private RedisTemplate redisTemplate; + private final RedisTemplate redisTemplate; + + public RedisUtils(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; + } /** * 默认过期时长,单位:秒 一天 @@ -29,6 +33,8 @@ public class RedisUtils { */ public final static long NOT_EXPIRE = -1; + + /** * 写入缓存 * diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/config/WxMpConfiguration.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/config/WxMpConfiguration.java index 7127d57..cbca4f4 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/config/WxMpConfiguration.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/config/WxMpConfiguration.java @@ -1,6 +1,7 @@ package com.tduck.cloud.wx.mp.config; import com.tduck.cloud.wx.mp.handler.*; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps; import me.chanjar.weixin.common.redis.WxRedisOps; import me.chanjar.weixin.mp.api.WxMpMessageRouter; @@ -8,7 +9,6 @@ import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; import me.chanjar.weixin.mp.config.impl.WxMpRedisConfigImpl; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -31,32 +31,23 @@ import static me.chanjar.weixin.mp.constant.WxMpEventConstants.POI_CHECK_NOTIFY; * @author Binary Wang(https://github.com/binarywang) */ @Configuration +@RequiredArgsConstructor @EnableConfigurationProperties(WxMpProperties.class) public class WxMpConfiguration { - @Autowired - private LogHandler logHandler; - @Autowired - private NullHandler nullHandler; - @Autowired - private KfSessionHandler kfSessionHandler; - @Autowired - private StoreCheckNotifyHandler storeCheckNotifyHandler; - @Autowired - private LocationHandler locationHandler; - @Autowired - private MenuHandler menuHandler; - @Autowired - private MsgHandler msgHandler; - @Autowired - private UnsubscribeHandler unsubscribeHandler; - @Autowired - private SubscribeHandler subscribeHandler; - @Autowired - private ScanHandler scanHandler; - @Autowired - private WxMpProperties properties; - @Autowired - private StringRedisTemplate redisTemplate; + private final LogHandler logHandler; + private final NullHandler nullHandler; + private final KfSessionHandler kfSessionHandler; + private final StoreCheckNotifyHandler storeCheckNotifyHandler; + private final LocationHandler locationHandler; + private final MenuHandler menuHandler; + private final MsgHandler msgHandler; + private final UnsubscribeHandler unsubscribeHandler; + private final SubscribeHandler subscribeHandler; + private final ScanHandler scanHandler; + private final WxMpProperties properties; + private final StringRedisTemplate redisTemplate; + + @Bean public WxMpService wxMpService() { diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/ScanHandler.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/ScanHandler.java index 074afe9..e081a84 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/ScanHandler.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/ScanHandler.java @@ -1,12 +1,12 @@ package com.tduck.cloud.wx.mp.handler; import com.tduck.cloud.wx.mp.handler.scan.ScanStrategyContext; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.session.WxSessionManager; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Map; @@ -15,9 +15,10 @@ import java.util.Map; * @author Binary Wang(https://github.com/binarywang) */ @Component +@RequiredArgsConstructor public class ScanHandler extends AbstractHandler { - @Autowired - private ScanStrategyContext scanStrategyContext; + + private final ScanStrategyContext scanStrategyContext; @Override public WxMpXmlOutMessage handle(WxMpXmlMessage wxMpXmlMessage, Map map, diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/SubscribeHandler.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/SubscribeHandler.java index e359718..9f150ac 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/SubscribeHandler.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/SubscribeHandler.java @@ -12,13 +12,13 @@ import com.tduck.cloud.wx.mp.event.WxMpUserSubscribeEvent; import com.tduck.cloud.wx.mp.handler.scan.ScanStrategyContext; import com.tduck.cloud.wx.mp.request.WxMpQrCodeGenRequest; import com.tduck.cloud.wx.mp.service.WxMpUserService; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.session.WxSessionManager; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import me.chanjar.weixin.mp.bean.result.WxMpUser; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Map; @@ -28,18 +28,17 @@ import java.util.Optional; * @author Binary Wang(https://github.com/binarywang) */ @Component +@RequiredArgsConstructor public class SubscribeHandler extends AbstractHandler { - @Autowired - private WxMpUserService wxMpUserService; + private final WxMpUserService wxMpUserService; - @Autowired - private ScanStrategyContext scanStrategyContext; + private final ScanStrategyContext scanStrategyContext; - private final String LOGIN_STR = "login"; + private String LOGIN_STR = "login"; - private final String QRSCENE_STR = "qrscene_"; + private String QRSCENE_STR = "qrscene_"; @Override public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/BindAccountScanStrategy.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/BindAccountScanStrategy.java index d1fe695..9c2501b 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/BindAccountScanStrategy.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/BindAccountScanStrategy.java @@ -5,8 +5,8 @@ import com.tduck.cloud.wx.mp.entity.WxMpUserEntity; import com.tduck.cloud.wx.mp.request.WxMpQrCodeGenRequest; import com.tduck.cloud.wx.mp.service.WxMpUserMsgService; import com.tduck.cloud.wx.mp.service.WxMpUserService; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** @@ -15,12 +15,11 @@ import org.springframework.stereotype.Component; * @create : 2020-12-01 17:44 **/ @Component +@RequiredArgsConstructor public class BindAccountScanStrategy implements ScanStrategy { - @Autowired - private WxMpUserService wxMpUserService; - @Autowired - private WxMpUserMsgService wxMpUserMsgService; + private final WxMpUserService wxMpUserService; + private final WxMpUserMsgService wxMpUserMsgService; @Override public WxMpXmlOutMessage handle(String appId, String openId, WxMpQrCodeGenRequest request) { diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/LoginScanStrategy.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/LoginScanStrategy.java index 658c854..105b33d 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/LoginScanStrategy.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/LoginScanStrategy.java @@ -8,8 +8,8 @@ import com.tduck.cloud.wx.mp.entity.WxMpUserEntity; import com.tduck.cloud.wx.mp.request.WxMpQrCodeGenRequest; import com.tduck.cloud.wx.mp.service.WxMpUserMsgService; import com.tduck.cloud.wx.mp.service.WxMpUserService; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; @@ -20,14 +20,13 @@ import java.util.concurrent.TimeUnit; * @create : 2020-12-01 17:44 **/ @Component +@RequiredArgsConstructor public class LoginScanStrategy implements ScanStrategy { - @Autowired - private RedisUtils redisUtils; - @Autowired - private WxMpUserService wxMpUserService; - @Autowired - private WxMpUserMsgService wxMpUserMsgService; + private final RedisUtils redisUtils; + private final WxMpUserService wxMpUserService; + private final WxMpUserMsgService wxMpUserMsgService; + @Override public WxMpXmlOutMessage handle(String appId, String openId, WxMpQrCodeGenRequest request) { diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/ScanStrategyContext.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/ScanStrategyContext.java index ce29175..95cbed6 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/ScanStrategyContext.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/ScanStrategyContext.java @@ -3,6 +3,7 @@ package com.tduck.cloud.wx.mp.handler.scan; import cn.hutool.core.util.ObjectUtil; import com.tduck.cloud.common.util.JsonUtils; import com.tduck.cloud.wx.mp.request.WxMpQrCodeGenRequest; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -15,9 +16,9 @@ import java.util.Map; * @create : 2020-12-01 17:55 **/ @Component +@RequiredArgsConstructor public class ScanStrategyContext { - @Autowired private Map scanStrategy; private static String SCAN_STRATEGY_NAME = "ScanStrategy"; diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/SubNotifyScanStrategy.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/SubNotifyScanStrategy.java index cfb3ec0..5765047 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/SubNotifyScanStrategy.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/handler/scan/SubNotifyScanStrategy.java @@ -5,8 +5,8 @@ import com.tduck.cloud.common.util.RedisUtils; import com.tduck.cloud.wx.mp.constant.WxMpRedisKeyConstants; import com.tduck.cloud.wx.mp.request.WxMpQrCodeGenRequest; import com.tduck.cloud.wx.mp.service.WxMpUserMsgService; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** @@ -15,16 +15,15 @@ import org.springframework.stereotype.Component; * @create : 2020-12-01 17:44 **/ @Component +@RequiredArgsConstructor public class SubNotifyScanStrategy implements ScanStrategy { - @Autowired - private RedisUtils redisUtils; - @Autowired - private WxMpUserMsgService wxMpUserMsgService; + private final RedisUtils redisUtils; + private final WxMpUserMsgService wxMpUserMsgService; @Override public WxMpXmlOutMessage handle(String appId, String openId, WxMpQrCodeGenRequest request) { - redisUtils.add(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY,request.getData()), openId); + redisUtils.add(StrUtil.format(WxMpRedisKeyConstants.WX_MP_SUB_NOTIFY, request.getData()), openId); wxMpUserMsgService.sendKfTextMsg(appId, openId, "订阅通知成功"); return null; } diff --git a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java index 76ac6e4..9bbe144 100644 --- a/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java +++ b/tduck-wx-mp/src/main/java/com/tduck/cloud/wx/mp/service/impl/WxMpUserMsgServiceImpl.java @@ -2,6 +2,7 @@ package com.tduck.cloud.wx.mp.service.impl; import cn.hutool.core.util.StrUtil; import com.tduck.cloud.wx.mp.service.WxMpUserMsgService; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; @@ -15,11 +16,10 @@ import org.springframework.stereotype.Service; * @create : 2020-12-02 10:36 **/ @Service +@RequiredArgsConstructor public class WxMpUserMsgServiceImpl implements WxMpUserMsgService { - @Lazy - @Autowired - private WxMpService wxMpService; + private final WxMpService wxMpService; @Override public void sendKfTextMsg(String appId, String openId, String content) {