src/main/java/cc/mrbird/febs/ai/controller/TestController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/ai/res/memberAnswer/ApiQuestionItemInfoVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/ai/controller/TestController.java
New file @@ -0,0 +1,87 @@ 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); } } src/main/java/cc/mrbird/febs/ai/res/memberAnswer/ApiQuestionItemInfoVo.java
@@ -11,7 +11,10 @@ @ApiModel(value = "ApiQuestionItemInfoVo", description = "参数") public class ApiQuestionItemInfoVo { @ApiModelProperty(value = "答案") @ApiModelProperty(value = "正确答案ID") private String answerID; @ApiModelProperty(value = "正确答案") private String answer; @ApiModelProperty(value = "答案解析") @@ -20,4 +23,11 @@ @ApiModelProperty(value = "用户回答状态 0-未回答 1-答对了 2-答错了") private Integer memberAnswerState; @ApiModelProperty(value = "题目数量") private Integer questionCnt; @ApiModelProperty(value = "答题数量") private Integer doneCnt; } src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
@@ -104,6 +104,7 @@ } ApiMemberAnswerVo apiMemberAnswerVo = new ApiMemberAnswerVo(); apiMemberAnswerVo.setMemberAnswerId(aiMemberAnswer.getId()); apiMemberAnswerVo.setName(aiProduct.getName()); apiMemberAnswerVo.setQuestionCnt(aiMemberAnswer.getQuestionCnt()); apiMemberAnswerVo.setDoneCnt(aiMemberAnswer.getDoneCnt()); @@ -184,6 +185,9 @@ aiMemberAnswerItem.setAnswer(aiProductQuestionItem.getId()); aiMemberAnswerItem.setCorrectAnswer(aiProductQuestionItem.getCorrectAnswer()); aiMemberAnswerItem.setAnswerAnalysis(aiProductQuestionItem.getAnswerAnalysis()); apiQuestionItemInfoVo.setAnswerID(aiProductQuestionItem.getId()); apiQuestionItemInfoVo.setAnswer(aiProductQuestionItem.getAnswer()); } aiMemberAnswerItem.setMemberAnswerQuestionId(productQuestionItemId); aiMemberAnswerItem.setMemberAnswerState( @@ -191,6 +195,8 @@ ); if (aiMemberAnswerItem.getMemberAnswerState() == 2){ aiMemberAnswerItem.setIsCollected(1); }else{ aiMemberAnswerItem.setIsCollected(0); } aiMemberAnswerItemService.save(aiMemberAnswerItem); @@ -201,9 +207,10 @@ aiMemberAnswer.setUpdatedTime(createdTime); this.updateById(aiMemberAnswer); apiQuestionItemInfoVo.setAnswer(aiMemberAnswerItem.getAnswer()); apiQuestionItemInfoVo.setAnswerAnalysis(aiMemberAnswerItem.getAnswerAnalysis()); apiQuestionItemInfoVo.setMemberAnswerState(aiMemberAnswerItem.getMemberAnswerState()); apiQuestionItemInfoVo.setQuestionCnt(aiMemberAnswer.getQuestionCnt()); apiQuestionItemInfoVo.setDoneCnt(aiMemberAnswer.getDoneCnt()); return new FebsResponse().success().data(apiQuestionItemInfoVo); } src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -51,5 +51,6 @@ registration.excludePathPatterns("/api/ai/productCategory/**"); registration.excludePathPatterns("/api/ai/product/**"); registration.excludePathPatterns("/api/ai/productPoint/**"); registration.excludePathPatterns("/api/ai/test/**"); } }