| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package com.cyksj.service.mini.impl;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyksj.mapper.mini.MiniPopularizeUserConversationChatMapper;
- import com.cyksj.mapper.mini.MiniPopularizeUserMapper;
- import com.cyksj.model.entity.MiniPopularizeUser;
- import com.cyksj.model.entity.MiniPopularizeUserConversationChat;
- import com.cyksj.redis.RedisService;
- import com.cyksj.service.mini.MiniPopularizeCommonService;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- /**
- * 项目名: yhlxj2
- * 文件名: MiniPopularizeCommonServiceImpl
- * 创建者: JavaZou
- * 创建时间:2025/4/11 11:46
- */
- @Service
- @RequiredArgsConstructor
- public class MiniPopularizeCommonServiceImpl implements MiniPopularizeCommonService {
- private final RedisService redisService;
- private final MiniPopularizeUserMapper miniPopularizeUserMapper;
- private final MiniPopularizeUserConversationChatMapper conversationChatMapper;
- @Override
- public void recoverUserLimit(Long userId, Boolean recoverNum) {
- if (!recoverNum) {
- return;
- }
- miniPopularizeUserMapper.incrNum(userId, 1);
- }
- @Override
- public Boolean saveImgRecord(MiniPopularizeUserConversationChat record) {
- Long id = record.getId();
- if (id != null) {
- MiniPopularizeUserConversationChat dbChat = conversationChatMapper.selectById(id);
- if (StrUtil.isNotBlank(dbChat.getImg())) {
- //已更新 直接返回false
- return false;
- }
- conversationChatMapper.updateById(record);
- } else conversationChatMapper.insert(record);
- return true;
- }
- @Override
- public void recordChatEndOfAnswer(String conversationId, Long userId, String content, MiniPopularizeUserConversationChat.Role role) {
- MiniPopularizeUserConversationChat chat = MiniPopularizeUserConversationChat
- .builder()
- .conversationId(conversationId)
- .userId(userId)
- .content(content)
- .type(MiniPopularizeUserConversationChat.Type.text)
- .role(role).build();
- conversationChatMapper.insert(chat);
- }
- @Override
- public void incrGptTimes(long userId, Integer oriNum, Integer addNum) {
- int i = miniPopularizeUserMapper.incrNumSync(userId, oriNum, addNum);
- while (i == 0) {
- MiniPopularizeUser user = miniPopularizeUserMapper.selectOne(Wrappers.lambdaQuery(MiniPopularizeUser.class)
- .eq(MiniPopularizeUser::getUserId, userId)
- .last("limit 1"));
- if (user == null) {
- break;
- }
- oriNum = user.getNum();
- i = miniPopularizeUserMapper.incrNumSync(userId, oriNum, addNum);
- }
- }
- @Override
- public Boolean checkImageIsCompleted(Long imgRecordId) {
- MiniPopularizeUserConversationChat dbChat = conversationChatMapper.selectById(imgRecordId);
- if (dbChat == null || (dbChat.getType() == MiniPopularizeUserConversationChat.Type.image && StrUtil.isEmpty(dbChat.getImg()) && dbChat.getStatus() == MiniPopularizeUserConversationChat.Status.processing)) {
- return false;
- }
- return true;
- }
- }
|