提交修改

This commit is contained in:
quyixiao 2025-11-10 22:50:40 +08:00
parent d914556d42
commit ce47cc6c68
7 changed files with 113 additions and 8 deletions

View File

@ -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";
}

View File

@ -18,7 +18,7 @@ public class BuyerDTO {
/***
* 是否是测试用户
* 是否是测试用户 1 ,是测试用户 2 是匿名用户 0 是正常用户
*/
private Integer flag;

View File

@ -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;
}
}

View File

@ -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)));
}

View File

@ -55,6 +55,12 @@ public class RedisUtils {
*/
public final static long DEFAULT_EXPIRE = 60 * 60 * 24;
/**
* 默认过期时长单位
*/
public final static long thirty_minute = 30 * 60;
/**
* 不设置过期时长
*/

View File

@ -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 ));
}
}

View File

@ -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("目标用户登录")