作者 钟来

模块整理

... ... @@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.concurrent.ScheduledExecutorService;
... ... @@ -62,7 +63,7 @@ public class ChatGPTStreamController extends BaseController {
@Transactional
@PostMapping("/chat")
@ResponseBody
public SseEmitter sseChat(@RequestBody ChatRequest chatRequest) {
public SseEmitter sseChat(@RequestBody ChatRequest chatRequest, HttpServletRequest request) {
OpenAiLoginUser userInfo = (OpenAiLoginUser) SecurityUtils.getLoginUser();
... ... @@ -89,7 +90,7 @@ public class ChatGPTStreamController extends BaseController {
{
chatRequest.setModel(ChatCompletion.Model.GPT_4_0314);
}
sseService.sseChat(true,user_id,uid, chatRequest, chatRequest.getModel(),completeCallback);
sseService.sseChat(true,user_id,uid, chatRequest, chatRequest.getModel(),completeCallback,request);
}catch (Exception e)
{
log.error("主业务流程异常",e);
... ... @@ -116,7 +117,7 @@ public class ChatGPTStreamController extends BaseController {
@Transactional
@PostMapping("/chatNotData")
@ResponseBody
public SseEmitter chatNotData(@RequestBody ChatRequest chatRequest) {
public SseEmitter chatNotData(@RequestBody ChatRequest chatRequest,HttpServletRequest request) {
OpenAiLoginUser userInfo = (OpenAiLoginUser) SecurityUtils.getLoginUser();
... ... @@ -141,7 +142,7 @@ public class ChatGPTStreamController extends BaseController {
throw new BaseException("您的余额不足请联系管理员或者充值");
}
log.info("{}验证通过开始发送chatgpt请求", uid);
sseService.sseChat(false,user_id,uid, chatRequest, chatRequest.getModel(),completeCallback);
sseService.sseChat(false,user_id,uid, chatRequest, chatRequest.getModel(),completeCallback,request);
}catch (Exception e)
{
log.error("主业务流程异常",e);
... ...
package com.zhonglai.luhui.openai.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.dao.service.PublicService;
import com.zhonglai.luhui.security.dto.OpenAiUserInfo;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Api(tags = "话提管理")
@RestController
@RequestMapping("/userRoom")
public class UserRoomController extends BaseController {
@Autowired
private PublicService publicService;
@ApiOperation("获取话提列表")
@GetMapping("/getUserRoomList")
public TableDataInfo getUserRoomList()
{
startPage();
List<Map<String,Object>> list=publicService.getObjectListBySQL("SELECT * FROM `user_room` WHERE user_id="+SecurityUtils.getUserId().toString()+" AND is_delete=1");
return getDataTable(list);
}
// @ApiOperation("添加话提")
// @PostMapping("/addUserRoom")
// public AjaxResult addUserRoom()
// {
//
// }
}
... ...
... ... @@ -17,6 +17,7 @@ import com.zhonglai.luhui.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Arrays;
... ... @@ -34,7 +35,7 @@ public class CompleteCallbackImpl implements CompleteCallback {
private TokenService tokenService;
@Override
public void sseChatEnd(int recordId,long tokens,String contents) {
public void sseChatEnd(int recordId, long tokens, String contents, HttpServletRequest request) {
BigDecimal[] bs = vipService.getUnitprice();
BigDecimal openaiUnitprice = bs[0];
BigDecimal realityUnitprice = bs[1];
... ... @@ -87,7 +88,8 @@ public class CompleteCallbackImpl implements CompleteCallback {
publicService.updateBySql("UPDATE `lk_openai`.`user_info` SET flow_packet_remain=flow_packet_remain-" + userFlowPacketRemainLog.getTotal_tokens() + " WHERE id=" + gptMessage.getUser_id());
OpenAiLoginUser userInfo = (OpenAiLoginUser) SecurityUtils.getLoginUser();
OpenAiLoginUser userInfo = (OpenAiLoginUser)tokenService.getLoginUser(request);
userInfo.setOpenAiUserInfo(openAiUserInfo);
tokenService.setLoginUser(userInfo);
}
... ...