From ce47cc6c6840eb51e7bc0a994f821f51f479dbd1 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 10 Nov 2025 22:50:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../heyu/api/data/constants/ApiConstants.java | 3 ++ .../java/com/heyu/api/data/dto/BuyerDTO.java | 2 +- .../api/data/enums/UserLoginFlagEnums.java | 37 +++++++++++++++++++ .../java/com/heyu/api/data/utils/AesUtil.java | 4 +- .../com/heyu/api/data/utils/RedisUtils.java | 6 +++ .../mm/VvAnonymousUserLoginRequest.java | 37 +++++++++++++++++++ .../controller/vv/AppUserLoginController.java | 32 +++++++++++++--- 7 files changed, 113 insertions(+), 8 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/enums/UserLoginFlagEnums.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvAnonymousUserLoginRequest.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java b/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java index 3f899d5..48ced1f 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java +++ b/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java @@ -330,5 +330,8 @@ public class ApiConstants { public static final String bankcard_verification_4 = "bankcard_verification_4"; public static final String mobile_verification_3 = "mobile_verification_3"; + public static final String AnonymousUserLogin_pre= "goudezhao$132_"; + public static final String AnonymousUserLogin_aes_password= "qhzhixing"; + } diff --git a/api-mapper/src/main/java/com/heyu/api/data/dto/BuyerDTO.java b/api-mapper/src/main/java/com/heyu/api/data/dto/BuyerDTO.java index 00d0b89..034a630 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dto/BuyerDTO.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dto/BuyerDTO.java @@ -18,7 +18,7 @@ public class BuyerDTO { /*** - * 是否是测试用户 + * 是否是测试用户 1 ,是测试用户, 2 是匿名用户 , 0 是正常用户 */ private Integer flag; diff --git a/api-mapper/src/main/java/com/heyu/api/data/enums/UserLoginFlagEnums.java b/api-mapper/src/main/java/com/heyu/api/data/enums/UserLoginFlagEnums.java new file mode 100644 index 0000000..ac3b993 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/enums/UserLoginFlagEnums.java @@ -0,0 +1,37 @@ +package com.heyu.api.data.enums; + +/*** + * + */ +public enum UserLoginFlagEnums { + common_user(0, "普通用户"), + test_user(1, "测试用户"), + anonymous_user(2, "匿名用户") + ; + + private Integer flag ; + + + private String desc; + + UserLoginFlagEnums(Integer flag, String desc) { + this.flag = flag; + this.desc = desc; + } + + public Integer getFlag() { + return flag; + } + + public void setFlag(Integer flag) { + this.flag = flag; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/AesUtil.java b/api-mapper/src/main/java/com/heyu/api/data/utils/AesUtil.java index 2140799..805d967 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/AesUtil.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/AesUtil.java @@ -48,7 +48,7 @@ public class AesUtil { return null; } - private static String decrypt(String contentStr, String password) { + public static String decrypt(String contentStr, String password) { try { byte[] content = Base64.decodeBase64(contentStr.getBytes()); KeyGenerator kgen = KeyGenerator.getInstance("AES"); @@ -77,7 +77,7 @@ public class AesUtil { return contentStr; } - private static String encrypt(String value, String encrypt_password) { + public static String encrypt(String value, String encrypt_password) { return new String(Base64.encodeBase64(doEncrypt(value, encrypt_password))); } diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/RedisUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/RedisUtils.java index 15fbabc..52a54a1 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/RedisUtils.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/RedisUtils.java @@ -55,6 +55,12 @@ public class RedisUtils { */ public final static long DEFAULT_EXPIRE = 60 * 60 * 24; + /** + * 默认过期时长,单位:秒 + */ + public final static long thirty_minute = 30 * 60; + + /** * 不设置过期时长 */ diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvAnonymousUserLoginRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvAnonymousUserLoginRequest.java new file mode 100644 index 0000000..d566d66 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvAnonymousUserLoginRequest.java @@ -0,0 +1,37 @@ +package com.heyu.api.alibaba.request.mm; + + +import com.heyu.api.data.utils.AesUtil; +import lombok.Data; + +@Data +public class VvAnonymousUserLoginRequest { + + + /*** + * 设备id + * + * 设备号上加上这个前缀 + * + * goudezhao$132_ + * + * aes加密key : qhzhixing + * + */ + private String deviceId; + + + public static void main(String[] args) throws Exception { + + String password = "qhzhixing"; + + + String a = AesUtil.encrypt("goudezhao$132_89983983",password); + + + System.out.println(a); + System.out.println(AesUtil.decrypt(a,password )); + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java index 4c67b58..bf69341 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppUserLoginController.java @@ -2,23 +2,25 @@ package com.heyu.api.controller.vv; import com.alibaba.fastjson.JSON; +import com.heyu.api.alibaba.request.mm.VvAnonymousUserLoginRequest; import com.heyu.api.alibaba.request.mm.VvAppLoginRequest; import com.heyu.api.alibaba.request.vv.AppUserLoginRequest; import com.heyu.api.common.annotation.Describe; +import com.heyu.api.data.constants.ApiConstants; import com.heyu.api.data.dao.vv.VvBuyerDao; import com.heyu.api.data.dto.BuyerDTO; import com.heyu.api.data.dto.WeiChatLoginDTO; import com.heyu.api.data.entity.vv.VvBuyerEntity; -import com.heyu.api.data.utils.R; -import com.heyu.api.data.utils.RedisUtils; -import com.heyu.api.data.utils.TokenUtils; -import com.heyu.api.data.utils.WechatUtils; +import com.heyu.api.data.enums.UserLoginFlagEnums; +import com.heyu.api.data.utils.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Random; + @Slf4j @RestController @RequestMapping("/app/user") @@ -33,7 +35,7 @@ public class AppUserLoginController { // http://localhost:8888/app/user/login @RequestMapping("/login") - @Describe("目标用户登录") + @Describe("微信用户登录") public R login(@RequestBody AppUserLoginRequest request) { WeiChatLoginDTO weiChatLoginDTO = WechatUtils.getOpenId(request.getCode()); if (weiChatLoginDTO == null) { @@ -60,6 +62,26 @@ public class AppUserLoginController { } + // http://localhost:8888/app/user/anonymous/login + @RequestMapping("/anonymous/login") + @Describe("匿名用户登录") + public R anonymousLogin(@RequestBody VvAnonymousUserLoginRequest request) { + String deviceId = request.getDeviceId(); + String value = AesUtil.decrypt(deviceId, ApiConstants.AnonymousUserLogin_aes_password); + if (StringUtils.isBlank(value) || !value.startsWith(ApiConstants.AnonymousUserLogin_pre)) { + log.info("anonymous value:{}", JSON.toJSONString(request)); + return R.error("设备号不对"); + } + BuyerDTO buyerDTO = new BuyerDTO(); + buyerDTO.setFlag(UserLoginFlagEnums.anonymous_user.getFlag()); + Random random = new Random(1000000L); + String token = TokenUtils.generateToken(random.nextLong()); + buyerDTO.setToken(token); + redisUtils.set(token, JSON.toJSON(buyerDTO), RedisUtils.thirty_minute); + return R.ok().put("buyer", buyerDTO); + } + + // http://localhost:8888/app/user/target/login @RequestMapping("/target/login") @Describe("目标用户登录")