From 8e5f91a68b168c208745be3e8e3204b65cc33ea5 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 12 May 2026 15:07:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/CacheConstants.java | 9 ++++++ .../hard/service/impl/HardApiServiceImpl.java | 4 +-- .../impl/order/HardOrderServiceImpl.java | 2 +- .../pjcloud/admin/service/SysUserService.java | 1 + .../service/impl/SysDeptServiceImpl.java | 14 +++++++-- .../service/impl/SysUserServiceImpl.java | 2 +- .../wallet/api/feign/RemoteMchService.java | 4 +++ .../controller/WalletManageController.java | 14 +++++++++ .../controller/WalletSettingController.java | 2 +- .../controller/mch/MchManageController.java | 11 +++++++ .../mapper/mch/view/MchDeptViewMapper.java | 2 +- .../wallet/service/MchManageService.java | 8 +++++ .../wallet/service/WalletManageService.java | 5 +++ .../service/impl/WalletManageServiceImpl.java | 19 ++++++++++++ .../impl/WalletSettingServiceImpl.java | 31 +++++++++++++++++-- .../impl/mch/MchManageServiceImpl.java | 29 +++++++++++++++++ .../mapper/mch/view/MchDeptViewMapper.xml | 8 ++++- 17 files changed, 153 insertions(+), 12 deletions(-) diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java index 15086c6d4..581ae65da 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java @@ -135,6 +135,12 @@ public interface CacheConstants { String WALLET_DETAIL = "wallet:detail:manage"; + // 根据钱包id查询钱包详情 + String WALLET_DETAIL_ID = "wallet:detail:id"; + + // 根据用户id钱包类型查询钱包详情 + String WALLET_DETAIL_USER_ID_WALLET_TYPE = "wallet:detail:user_id_wallet_type"; + String WALLET_TYPE_DETAIL = "wallet:detail:type"; String WALLET_SETTING_DETAIL = "wallet:detail:setting"; @@ -144,6 +150,9 @@ public interface CacheConstants { // 用户消费机的额外价格 String WALLET_USER_DISCOUNTS_LIST = "wallet:detail:user_discounts_list"; + // 用户的食堂商户(从视图里查询) + String WALLET_VIEWS_CANTEEN_MCH = "wallet:detail:view_canteen_mch"; + /* ************************************* end 钱包相关 end ************************************* */ /* ************************************* start 第三方对接相关 start ************************************* */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java index d8e8d2bd2..ff56e27e0 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApiServiceImpl.java @@ -53,7 +53,7 @@ public class HardApiServiceImpl implements HardApiService { result.setWalletBalance(wallet.getBalance()); result.setWalletIsFreeze(wallet.getIsFreeze()); // 查询用户食堂信息 - MchManageVo mchDetail = remoteMchService.getFirstMchByDeptId(user.getSysUser().getDeptId(), List.of(MerchantTypeEnum.CANTEEN)).getData(); + MchManageVo mchDetail = remoteMchService.getViewsCanteenMchByDeptId(user.getSysUser().getDeptId()).getData(); if (ObjectUtil.isNotEmpty(mchDetail)) { result.setCanteenId(mchDetail.getId()); } @@ -86,7 +86,7 @@ public class HardApiServiceImpl implements HardApiService { result.setWalletBalance(wallet.getBalance()); result.setWalletIsFreeze(wallet.getIsFreeze()); // 查询用户食堂信息 - MchManageVo mchDetail = remoteMchService.getFirstMchByDeptId(user.getSysUser().getDeptId(), List.of(MerchantTypeEnum.CANTEEN)).getData(); + MchManageVo mchDetail = remoteMchService.getViewsCanteenMchByDeptId(user.getSysUser().getDeptId()).getData(); if (ObjectUtil.isNotEmpty(mchDetail)) { result.setCanteenId(mchDetail.getId()); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index 4b8ff9105..a799d415f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -1110,7 +1110,7 @@ public class HardOrderServiceImpl extends ServiceImpl list = mchRuleJoinService.innerMchRoleList(mch.getId()).getData(); if (ObjectUtil.isEmpty(list)) return extraPrice; // 查询用户食堂 - MchManageVo userMch = remoteMchService.getFirstMchByDeptId(sysUser.getDeptId(), List.of(MerchantTypeEnum.CANTEEN)).getData(); + MchManageVo userMch = remoteMchService.getViewsCanteenMchByDeptId(sysUser.getDeptId()).getData(); for (MchRuleJoinDtoVo v : list) { Long basePrice = v.getBasePrice(); Long multiple = v.getMultiple(); diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java index c028f67fd..6664304d8 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java @@ -241,4 +241,5 @@ public interface SysUserService extends IService { List listUserIdByDeptId(Long deptId, String name); void deleteDiscountsCacheByUserId(Long userId); + } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java index aa114d5d3..0342876a0 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java @@ -38,6 +38,7 @@ import com.bsd.pjcloud.admin.api.vo.DeptExcelVO; import com.bsd.pjcloud.admin.api.vo.OrgTreeVO; import com.bsd.pjcloud.admin.mapper.*; import com.bsd.pjcloud.admin.service.SysDeptService; +import com.bsd.pjcloud.common.core.constant.CacheConstants; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.excel.vo.ErrorMessage; @@ -46,6 +47,7 @@ import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.wallet.api.feign.RemoteWalletService; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; @@ -112,9 +114,15 @@ public class SysDeptServiceImpl extends ServiceImpl impl * 修改部门 */ @Override - public Boolean edit(SysDept sysDept) { - boolean isEdit = updateById(sysDept); - remoteWalletService.deptChange(sysDept.getDeptId(), Boolean.FALSE); + @CacheEvict( + value = CacheConstants.WALLET_VIEWS_CANTEEN_MCH, + key = "#dto.getDeptId()", + condition = "#dto.getDeptId() != null", + beforeInvocation = true + ) + public Boolean edit(SysDept dto) { + boolean isEdit = updateById(dto); + remoteWalletService.deptChange(dto.getDeptId(), Boolean.FALSE); return isEdit; } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java index c0c2c12b4..0c84fef92 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java @@ -123,7 +123,7 @@ public class SysUserServiceImpl extends ServiceImpl impl private final SysDeptService sysDeptService; - private StringRedisTemplate stringRedisTemplate; + private final StringRedisTemplate stringRedisTemplate; @Lazy private final SysUserFaceService sysUserFaceService; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java index a54bfdfcb..82aac4bcb 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java @@ -52,4 +52,8 @@ public interface RemoteMchService { @NoToken @GetMapping("/mch-manage/get-first-mch-by-dept-id") R getFirstMchByDeptId(@RequestParam Long deptId, @RequestParam List mchType); + + @NoToken + @GetMapping("/mch-manage/get-views-canteen-mch-by-dept-id") + R getViewsCanteenMchByDeptId(@RequestParam Long deptId); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java index 51effbb2f..49d7012b8 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.constant.CacheConstants; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.DataScopeFuncEnum; @@ -23,6 +24,7 @@ import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; import com.bsd.pjcloud.wallet.service.WalletCodeUseService; import com.bsd.pjcloud.wallet.service.WalletManageService; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.cache.annotation.Cacheable; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import org.springdoc.core.annotations.ParameterObject; @@ -91,6 +93,12 @@ public class WalletManageController { @Inner @GetMapping("/get-wallet") +// @Cacheable( +// value = CacheConstants.WALLET_DETAIL_USER_ID_WALLET_TYPE + "#3600", +// key = "#userId + ':' + #walletTypeCode.getCode()", +// condition = "#userId != null && #walletTypeCode.getCode() != null", +// unless = "#result == null || #result.data == null" +// ) public R getWallet(@RequestParam Long userId, @RequestParam WalletTypeEnum walletTypeCode) { WalletManageEntity wallet = walletManageService.getWallet(userId, walletTypeCode); if (ObjectUtil.isEmpty(wallet)) return R.failed("用户钱包不存在"); @@ -99,6 +107,12 @@ public class WalletManageController { @Inner @GetMapping("/get-wallet-by-id") +// @Cacheable( +// value = CacheConstants.WALLET_DETAIL_ID + "#3600", +// key = "#walletId", +// condition = "#walletId != null", +// unless = "#result == null || #result.data != null" +// ) public R getWalletById(@RequestParam Long walletId) { WalletManageVo wallet = walletManageMapper.join(walletId); if (ObjectUtil.isEmpty(wallet)) return R.failed("用户钱包不存在"); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletSettingController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletSettingController.java index 0cb940b31..98ef02cea 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletSettingController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletSettingController.java @@ -61,7 +61,7 @@ public class WalletSettingController { @GetMapping("/ad/get-discounts-list") @Cacheable( - value = CacheConstants.WALLET_USER_DISCOUNTS_LIST, + value = CacheConstants.WALLET_USER_DISCOUNTS_LIST + "#3600", key = "#userId + ':' + #hardId", condition = "#userId != null && #hardId != null", unless = "#result == null || #result.data == null" diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java index 6d5afbd78..3662c09f4 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java @@ -10,6 +10,7 @@ import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; +import com.bsd.pjcloud.common.core.constant.CacheConstants; import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum; import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.core.util.R; @@ -23,6 +24,7 @@ import com.bsd.pjcloud.wallet.api.dto.MchManageDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import com.bsd.pjcloud.wallet.service.MchManageService; +import org.springframework.cache.annotation.Cacheable; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -126,6 +128,15 @@ public class MchManageController { if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); return R.ok(mchManage); } + + @Inner + @GetMapping("/get-views-canteen-mch-by-dept-id") + public R getViewsCanteenMchByDeptId(@RequestParam Long deptId) { + MchManageVo mchManage = mchManageService.getViewsCanteenMchByDeptId(deptId); + if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); + return R.ok(mchManage); + } + /* ************************************* end 远程调用 end ************************************* */ /* ************************************* start app start ************************************* */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/view/MchDeptViewMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/view/MchDeptViewMapper.java index cda0073fc..d1d0ecee9 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/view/MchDeptViewMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/view/MchDeptViewMapper.java @@ -14,6 +14,6 @@ public interface MchDeptViewMapper { List selectList(@Param("dto") WalletMchDeptViewDto dto); - WalletMchDeptViewVo selectByUserId(@Param("userId") Long userId); + WalletMchDeptViewVo selectByDeptId(@Param("deptId") Long deptId); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java index 1350069d0..6c9411f13 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java @@ -2,12 +2,15 @@ package com.bsd.pjcloud.wallet.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.common.core.constant.CacheConstants; import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.wallet.api.dto.MchManageDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import java.util.ArrayList; import java.util.List; @@ -41,6 +44,11 @@ public interface MchManageService extends IService { MchManageVo getFirstMchByDeptId(Long deptId, List mchTypeList); + /** + * 从视图里获取食堂商户信息 + */ + MchManageVo getViewsCanteenMchByDeptId(Long deptId); + /** * 刷新商户二维码 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java index 1af969ced..45f93f985 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java @@ -121,4 +121,9 @@ public interface WalletManageService extends IService { * 是够能够使用智能柜 */ String isUseDoor(Long userId); + + /** + * 删除钱包缓存 + */ + void delWalletCache(WalletManageVo wallet); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index f09f478cf..7eca58fbb 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java @@ -29,6 +29,7 @@ import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.resolver.ParamResolver; +import com.bsd.pjcloud.common.data.tenant.TenantContextHolder; import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import com.bsd.pjcloud.wallet.api.dto.WalletManageBalanceDto; import com.bsd.pjcloud.wallet.api.dto.WalletManageDto; @@ -79,6 +80,7 @@ public class WalletManageServiceImpl extends ServiceImpl list) { if (ObjectUtil.isNotEmpty(list)) { // 用户 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletSettingServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletSettingServiceImpl.java index 78de60a5f..daea0cec3 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletSettingServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletSettingServiceImpl.java @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.admin.api.entity.SysUser; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; -import com.bsd.pjcloud.common.core.constant.enums.MerchantTypeEnum; +import com.bsd.pjcloud.common.core.constant.CacheConstants; import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.core.util.BeanUtils; +import com.bsd.pjcloud.common.data.tenant.TenantContextHolder; import com.bsd.pjcloud.wallet.api.constant.WalletXfjDiscountsEnum; import com.bsd.pjcloud.wallet.api.dto.WalletSettingDto; import com.bsd.pjcloud.wallet.api.entity.WalletSettingEntity; @@ -23,12 +24,19 @@ import com.bsd.pjcloud.wallet.service.WalletSettingService; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.Cursor; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.ScanOptions; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * 支付设置 @@ -40,6 +48,7 @@ import java.util.List; public class WalletSettingServiceImpl extends ServiceImpl implements WalletSettingService { private final MchManageService mchManageService; + private final StringRedisTemplate stringRedisTemplate; private final RemoteUserService remoteUserService; @@ -60,7 +69,7 @@ public class WalletSettingServiceImpl extends ServiceImpl list = new ArrayList<>(); @@ -125,6 +134,24 @@ public class WalletSettingServiceImpl extends ServiceImpl keys = new HashSet<>(); + stringRedisTemplate.execute((RedisCallback) connection -> { + Cursor cursor = connection.scan( + ScanOptions.scanOptions().match(pattern).count(1000).build() + ); + while (cursor.hasNext()) { + keys.add(new String(cursor.next(), StandardCharsets.UTF_8)); + } + return null; + }); + if (!keys.isEmpty()) { + stringRedisTemplate.delete(keys); + } } @Data diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java index b72ad0153..6f12ef9d3 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java @@ -36,12 +36,16 @@ import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import com.bsd.pjcloud.wallet.api.vo.code.MchCollectionCodeVo; +import com.bsd.pjcloud.wallet.api.vo.mch.WalletMchDeptViewVo; import com.bsd.pjcloud.wallet.mapper.MchManageMapper; import com.bsd.pjcloud.wallet.mapper.WalletTypeMapper; +import com.bsd.pjcloud.wallet.mapper.mch.view.MchDeptViewMapper; import com.bsd.pjcloud.wallet.service.MchManageService; import com.bsd.pjcloud.wallet.service.WalletThirdZyService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.mock.web.MockMultipartFile; @@ -82,6 +86,7 @@ public class MchManageServiceImpl extends ServiceImpl - + + from v_mch_dept_tree a + + and a.deptId = #{deptId} + \ No newline at end of file