diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 426e8184..13e28401 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java @@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.member.enums.CostTypeEnum; import cn.iocoder.yudao.module.member.service.card.CardService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -59,6 +60,9 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Resource private MemberUserService userService; + @Resource + private StringRedisTemplate storeOrderRedisTemplate; + @Override public Integer createStoreOrder(StoreOrderSaveReqVO createReqVO) { // 插入 @@ -162,7 +166,8 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Override @Transactional(rollbackFor = Exception.class) public String codePay(StoreOrderDto dto) { - String s = validateJWT(dto.getJwt()); + + String s = storeOrderRedisTemplate.opsForValue().get(dto.getJwt()); if (StrUtil.isBlank(s)) { return "二维码过期"; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java index 9a81c04a..89e09935 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java @@ -12,6 +12,7 @@ import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.digest.DigestUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -915,12 +916,12 @@ public class MemberUserServiceImpl implements MemberUserService { if(StrUtil.isNotEmpty(url)){ return url; } - - String jwt = generateJWT(userId); // 1分钟后过期 + String encode = DigestUtil.md5Hex(userId.toString()+System.currentTimeMillis()); String fileName = "QRCode_" + userId + ".png"; String path = QRCodeWithJWTUtil.BASE_PATH+fileName; - QRCodeWithJWTUtil.generateQRCode(jwt, 350, 350, path); // 生 - memberUserRedisTemplate.opsForValue().set(redisKey,path,60, TimeUnit.SECONDS); + QRCodeWithJWTUtil.generateQRCode(encode, 350, 350, path); // 生 + memberUserRedisTemplate.opsForValue().set(redisKey,path,180, TimeUnit.SECONDS); + memberUserRedisTemplate.opsForValue().set(encode,userId.toString(),180, TimeUnit.SECONDS); return path; } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java index 202d0058..377adf39 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.util; import cn.hutool.core.io.FileUtil; +import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -10,6 +11,7 @@ import cn.hutool.jwt.JWTUtil; import java.io.File; +import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -63,4 +65,13 @@ public class QRCodeWithJWTUtil { } return null; } + + + public static void main(String[] args) { + String encode = DigestUtil.md5Hex("340"+ System.currentTimeMillis()); + System.out.println(encode); + String fileName = "QRCode_" + "test" + ".png"; + String path = QRCodeWithJWTUtil.BASE_PATH+fileName; + QRCodeWithJWTUtil.generateQRCode(encode, 350, 350, path); + } }