package cc.mrbird.febs.ai.controller;
|
|
import cc.mrbird.febs.ai.entity.AiMember;
|
import cc.mrbird.febs.ai.mapper.AiMemberMapper;
|
import cc.mrbird.febs.ai.req.product.ApiProductInfoDto;
|
import cc.mrbird.febs.ai.res.product.ApiProductInfoVo;
|
import cc.mrbird.febs.ai.utils.UUID;
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.utils.AppContants;
|
import cc.mrbird.febs.common.utils.RedisUtils;
|
import cc.mrbird.febs.mall.entity.MallMember;
|
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.crypto.asymmetric.KeyType;
|
import cn.hutool.crypto.asymmetric.RSA;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponses;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* @author Administrator
|
*/
|
@Slf4j
|
@Validated
|
@RestController
|
@RequiredArgsConstructor
|
@RequestMapping(value = "/api/ai/test")
|
@Api(value = "ApiProductController", tags = "AI-登录测试")
|
public class TestController {
|
|
private final MallMemberMapper mallMemberMapper;
|
private final AiMemberMapper aiMemberMapper;
|
private final RedisUtils redisUtils;
|
@ApiOperation(value = "登录测试", notes = "登录测试")
|
@GetMapping(value = "/login")
|
public FebsResponse info() {
|
|
MallMember mallMember = mallMemberMapper.selectById(3634);
|
if(StrUtil.isEmpty(mallMember.getMemberUuid())){
|
AiMember aiMember = new AiMember();
|
aiMember.setId(UUID.getSimpleUUIDString());
|
aiMemberMapper.insert(aiMember);
|
mallMember.setMemberUuid(aiMember.getId());
|
mallMemberMapper.update(null,
|
Wrappers.lambdaUpdate(MallMember.class)
|
.set(MallMember::getMemberUuid, aiMember.getId())
|
.eq(MallMember::getId, mallMember.getId())
|
);
|
}
|
// 存放redis
|
String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId();
|
String existToken = redisUtils.getString(redisKey);
|
if (StrUtil.isNotBlank(existToken)) {
|
Object o = redisUtils.get(existToken);
|
if (ObjectUtil.isNotEmpty(o)) {
|
redisUtils.del(existToken);
|
}
|
}
|
String token = IdUtil.simpleUUID();
|
redisUtils.set(token, JSONObject.toJSONString(mallMember), -1);
|
redisUtils.set(redisKey, token, -1);
|
Map<String, Object> authInfo = new HashMap<>();
|
authInfo.put("token", token);
|
authInfo.put("member", mallMember);
|
authInfo.put("rasToken", generateAsaToken(token));
|
return new FebsResponse().success().data(authInfo);
|
}
|
|
public String generateAsaToken(String token) {
|
RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
|
// return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
|
//去掉时间戳
|
return rsa.encryptBase64(token, KeyType.PublicKey);
|
}
|
}
|