diff --git a/src/main/java/org/springblade/common/cache/AddressCache.java b/src/main/java/org/springblade/common/cache/AddressCache.java new file mode 100644 index 0000000..e705c0d --- /dev/null +++ b/src/main/java/org/springblade/common/cache/AddressCache.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package org.springblade.common.cache; + +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.modules.weixin.entity.WeChatAddress; +import org.springblade.modules.weixin.service.IWeChatAddressService; + +import static org.springblade.core.cache.constant.CacheConstant.DEFAULT_CACHE; + +/** + * 收货地址缓存 + * @author Chill + */ +public class AddressCache { + private static final String WX_ADDRESS = "vx:address:"; + + private static final IWeChatAddressService wechatAddressService; + + static { + wechatAddressService = SpringUtil.getBean(IWeChatAddressService.class); + } + + /** + * 获取用户默认收货地址 + */ + public static WeChatAddress getAddress(String phone) { + return CacheUtil.get(DEFAULT_CACHE, WX_ADDRESS, phone, () -> wechatAddressService.getAddress(phone)); + } + +} diff --git a/src/main/java/org/springblade/modules/weixin/controller/WeChatAddressController.java b/src/main/java/org/springblade/modules/weixin/controller/WeChatAddressController.java index 0cd94ad..8b7860f 100644 --- a/src/main/java/org/springblade/modules/weixin/controller/WeChatAddressController.java +++ b/src/main/java/org/springblade/modules/weixin/controller/WeChatAddressController.java @@ -3,6 +3,7 @@ package org.springblade.modules.weixin.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; +import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; @@ -12,6 +13,8 @@ import org.springblade.modules.weixin.entity.WeChatUser; import org.springblade.modules.weixin.service.IWeChatAddressService; import org.springframework.web.bind.annotation.*; +import static org.springblade.core.cache.constant.CacheConstant.DEFAULT_CACHE; + @RestController @AllArgsConstructor @RequestMapping("/address") @@ -31,6 +34,7 @@ public class WeChatAddressController { @PostMapping("/update") public R update(@RequestBody WeChatAddress weChatAddress) { + CacheUtil.clear(DEFAULT_CACHE); return R.status(weChatAddressService.edit(weChatAddress)); } diff --git a/src/main/java/org/springblade/modules/weixin/service/IWeChatAddressService.java b/src/main/java/org/springblade/modules/weixin/service/IWeChatAddressService.java index d1d7434..0255d7a 100644 --- a/src/main/java/org/springblade/modules/weixin/service/IWeChatAddressService.java +++ b/src/main/java/org/springblade/modules/weixin/service/IWeChatAddressService.java @@ -33,4 +33,6 @@ public interface IWeChatAddressService extends BaseService { boolean add(WeChatAddress weChatAddress); boolean edit(WeChatAddress weChatAddress); + + WeChatAddress getAddress(String phone); } diff --git a/src/main/java/org/springblade/modules/weixin/service/impl/WeChatAddressServiceImpl.java b/src/main/java/org/springblade/modules/weixin/service/impl/WeChatAddressServiceImpl.java index 4b65c49..c1fa4d4 100644 --- a/src/main/java/org/springblade/modules/weixin/service/impl/WeChatAddressServiceImpl.java +++ b/src/main/java/org/springblade/modules/weixin/service/impl/WeChatAddressServiceImpl.java @@ -68,4 +68,9 @@ public class WeChatAddressServiceImpl extends BaseServiceImpllambdaQuery().eq(WeChatAddress::getPhone, phone).eq(WeChatAddress::getIsDefault, 1)); + } + } diff --git a/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java b/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java index a88851a..6273980 100644 --- a/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java +++ b/src/main/java/org/springblade/modules/weixin/utils/WxPayUtils.java @@ -110,9 +110,6 @@ public class WxPayUtils { //完成签名并执行请求 CloseableHttpResponse response = null; try { - if (httpClient == null) { - httpClient = SpringUtil.getBean(CloseableHttpClient.class); - } response = httpClient.execute(httpPost); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) {