From fb9346cd5dcab4fc403267c0b97e58114dd11ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Wed, 5 Mar 2025 15:42:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E9=93=BA=E4=BF=AE=E6=94=B9=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=AF=86=E7=A0=81=E6=A0=A1=E9=AA=8C=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/ShopUserController.java | 32 +++++++++++++++++++ .../account/dto/shopinfo/ShopInfoEditDTO.java | 4 ++- .../service/impl/ShopInfoServiceImpl.java | 15 +++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopUserController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopUserController.java index bf6a3846..7131d375 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopUserController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopUserController.java @@ -1,16 +1,20 @@ package com.czg.controller.admin; +import cn.hutool.core.util.StrUtil; import com.czg.account.dto.shopuser.ShopUserAddDTO; import com.czg.account.dto.shopuser.ShopUserEditDTO; import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO; import com.czg.account.dto.shopuser.ShopUserSummaryDTO; import com.czg.account.entity.ShopUser; +import com.czg.account.entity.ShopUserFlow; +import com.czg.account.service.ShopUserFlowService; import com.czg.account.service.ShopUserService; import com.czg.annotation.SaAdminCheckPermission; import com.czg.annotation.SaStaffCheckPermission; import com.czg.enums.ShopUserFlowBizEnum; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; +import com.czg.utils.PageUtil; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; @@ -28,6 +32,8 @@ public class ShopUserController { @Resource private ShopUserService shopUserService; + @Resource + private ShopUserFlowService shopUserFlowService; /** * 获取店铺用户概述信息 @@ -41,6 +47,32 @@ public class ShopUserController { return CzgResult.success(shopUserService.getSummary(StpKit.USER.getShopId(), isVip)); } + /** + * 获取店铺用户充值记录 + * @param userId 用户id + * @param bizCode 充值类型 类型: + * cashIn 现金充值, + * wechatIn 微信小程序充值, + * alipayIn 支付宝小程序充值, + * awardIn 充值奖励, + * rechargeRefund 充值退款 + * orderPay 订单消费, + * orderRefund 订单退款, + * adminIn 管理员充值 + * adminOut管理员消费 + * @return 充值记录 + */ + @SaAdminCheckPermission("shopUser:flow") + @GetMapping("/flow") + public CzgResult> flow(@RequestParam Integer userId, String bizCode) { + QueryWrapper queryWrapper = new QueryWrapper().eq(ShopUserFlow::getShopId, StpKit.USER.getShopId()) + .eq(ShopUserFlow::getUserId, userId); + if (StrUtil.isNotBlank(bizCode)) { + queryWrapper.eq(ShopUserFlow::getBizCode, bizCode); + } + return CzgResult.success(shopUserFlowService.page(PageUtil.buildPage(), queryWrapper)); + } + /** * 获取店铺用户列表 * diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java index 286f6267..a6e7f6dd 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopinfo/ShopInfoEditDTO.java @@ -13,6 +13,8 @@ public class ShopInfoEditDTO { @NotNull(message = "id不为空") private Integer id; + private String code; + /** * 就餐模式 json形式['dine-in', 'take-out] */ @@ -81,7 +83,7 @@ public class ShopInfoEditDTO { /** * 操作密码 */ - private Integer operationPwd; + private String operationPwd; /** * 主店id */ diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java index 16046802..f3d042d6 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopInfoServiceImpl.java @@ -3,14 +3,17 @@ package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.SecureUtil; import com.czg.account.dto.PageDTO; import com.czg.account.dto.shopinfo.*; import com.czg.account.entity.*; import com.czg.account.service.*; +import com.czg.config.RedisCst; import com.czg.enums.StatusEnum; import com.czg.exception.ApiNotPrintException; import com.czg.exception.CzgException; import com.czg.sa.StpKit; +import com.czg.service.RedisService; import com.czg.service.account.mapper.ShopInfoMapper; import com.czg.utils.AssertUtil; import com.czg.utils.GeoUtil; @@ -48,6 +51,8 @@ public class ShopInfoServiceImpl extends ServiceImpl i private ShopUserService shopUserService; @Resource private ShopExtendService shopExtendService; + @Resource + private RedisService redisService; @Override @Cacheable(key = "#id") @@ -140,6 +145,16 @@ public class ShopInfoServiceImpl extends ServiceImpl i if (shopInfoEditDTO.getActivateCode() != null) { activateShop(shopInfo, shopInfoEditDTO.getActivateCode()); } + + if (shopInfoEditDTO.getOperationPwd() != null) { + String key = "%s%s:%s".formatted(RedisCst.SMS_CODE, shopInfo.getPhone(), "editShopInfoOpePwd"); + Object val = redisService.get(key); + if (val instanceof String code && !shopInfoEditDTO.getCode().equals(code)) { + throw new ApiNotPrintException("验证码错误"); + } + + shopInfo.setOperationPwd(SecureUtil.md5(shopInfo.getId() + shopInfoEditDTO.getOperationPwd())); + } return updateById(shopInfo); }