|
|
@@ -1,6 +1,7 @@
|
|
|
package com.yhlxj.web.mirror;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.extra.servlet.ServletUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.annotation.NoSubmit;
|
|
|
@@ -30,6 +31,7 @@ import com.yhlxj.service.midjourney.MidjourneyService;
|
|
|
import com.yhlxj.service.midjourney.MidjourneyUserSettingsService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
@@ -80,8 +82,13 @@ public class MidjourneyController {
|
|
|
|
|
|
private final MidjourneyUserSettingsService midjourneyUserSettingsService;
|
|
|
|
|
|
- public MidjourneyUser getUser(){
|
|
|
+ public MidjourneyUser getUser() throws IOException {
|
|
|
String userToken = request.getHeader("user-token");
|
|
|
+ String ip = ServletUtil.getClientIP(request);
|
|
|
+ log.info("用户请求 ip:{}, userToken:{}", ip, userToken);
|
|
|
+ if (StringUtils.isBlank(userToken)) {
|
|
|
+ response.sendRedirect("https://nf.video");
|
|
|
+ }
|
|
|
return midjourneyService.getUser(userToken);
|
|
|
}
|
|
|
|
|
|
@@ -178,7 +185,7 @@ public class MidjourneyController {
|
|
|
* 查询用户信息
|
|
|
*/
|
|
|
@GetMapping("/whoami")
|
|
|
- public Result<MidjourneyUser> queryUser(){
|
|
|
+ public Result<MidjourneyUser> queryUser() throws IOException {
|
|
|
MidjourneyUser user = getUser();
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(user);
|
|
|
}
|
|
|
@@ -189,7 +196,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/imagine")
|
|
|
@NoSubmit
|
|
|
- public Result<SubmitResult> submitImagine(@Validated @RequestBody SubmitImagineDTO submitImagineDTO) {
|
|
|
+ public Result<SubmitResult> submitImagine(@Validated @RequestBody SubmitImagineDTO submitImagineDTO) throws IOException {
|
|
|
log.info("提交Imagine任务,提示:{}",submitImagineDTO.getPrompt());
|
|
|
MidjourneyUser user = getUser();
|
|
|
Integer mode = submitImagineDTO.getMode();
|
|
|
@@ -219,7 +226,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/describe")
|
|
|
@NoSubmit
|
|
|
- public Result<SubmitResult> submitDescribe(@Validated @RequestBody SubmitDescribeDTO submitDescribeDTO) {
|
|
|
+ public Result<SubmitResult> submitDescribe(@Validated @RequestBody SubmitDescribeDTO submitDescribeDTO) throws IOException {
|
|
|
log.info("提交Describe任务");
|
|
|
MidjourneyUser user = getUser();
|
|
|
Integer mode = submitDescribeDTO.getMode();
|
|
|
@@ -244,7 +251,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/blend")
|
|
|
@NoSubmit
|
|
|
- public Result<SubmitResult> submitBlend(@Validated @RequestBody SubmitBlendDTO submitBlendDTO) {
|
|
|
+ public Result<SubmitResult> submitBlend(@Validated @RequestBody SubmitBlendDTO submitBlendDTO) throws IOException {
|
|
|
log.info("提交Blend任务 dimensions:{},base64数组长度:{}", submitBlendDTO.getDimensions(), submitBlendDTO.getBase64Array().size());
|
|
|
Integer mode = submitBlendDTO.getMode();
|
|
|
MidjourneyUser user = getUser();
|
|
|
@@ -269,7 +276,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/modal")
|
|
|
@NoSubmit
|
|
|
- public Result<SubmitResult> submitModal(@Validated @RequestBody SubmitModalDTO submitModalDTO) {
|
|
|
+ public Result<SubmitResult> submitModal(@Validated @RequestBody SubmitModalDTO submitModalDTO) throws IOException {
|
|
|
log.info("提交Modal任务,taskId:{},提示:{}",submitModalDTO.getTaskId(),submitModalDTO.getPrompt());
|
|
|
Integer mode = submitModalDTO.getMode();
|
|
|
MidjourneyUser user = getUser();
|
|
|
@@ -298,7 +305,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/shorten")
|
|
|
@NoSubmit
|
|
|
- public Result<SubmitResult> submitShorten(@Validated @RequestBody SubmitShortenDTO submitShortenDTO) {
|
|
|
+ public Result<SubmitResult> submitShorten(@Validated @RequestBody SubmitShortenDTO submitShortenDTO) throws IOException {
|
|
|
log.info("提交Shorten任务 提示词:{}",submitShortenDTO.getPrompt());
|
|
|
Integer mode = submitShortenDTO.getMode();
|
|
|
MidjourneyUser user = getUser();
|
|
|
@@ -322,7 +329,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/action")
|
|
|
@NoSubmit
|
|
|
- public Result<SubmitResult> action(@Validated @RequestBody SubmitActionDTO actionDTO) {
|
|
|
+ public Result<SubmitResult> action(@Validated @RequestBody SubmitActionDTO actionDTO) throws IOException {
|
|
|
log.info("任务id:{},执行动作:{}",actionDTO.getTaskId(),actionDTO.getCustomId());
|
|
|
MidjourneyUser user = getUser();
|
|
|
MidjourneyUserConversation midjourneyUserConversation = conversationMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUserConversation.class).eq(MidjourneyUserConversation::getTaskId, actionDTO.getTaskId()).last("limit 1"));
|
|
|
@@ -353,7 +360,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/submit/seed")
|
|
|
@NoSubmit
|
|
|
- public Result<Object> seed(@Validated @RequestBody SubmitSeedDTO seedDTO) {
|
|
|
+ public Result<Object> seed(@Validated @RequestBody SubmitSeedDTO seedDTO) throws IOException {
|
|
|
log.info("任务id:{},执行动作:{}",seedDTO.getTaskId(), "seed");
|
|
|
MidjourneyUser user = getUser();
|
|
|
Integer mode = seedDTO.getMode();
|
|
|
@@ -377,7 +384,7 @@ public class MidjourneyController {
|
|
|
* 查询会话列表
|
|
|
*/
|
|
|
@GetMapping("/conversation/list")
|
|
|
- public Result<SearchResult<MidjourneyUserConversation>> conversationList(){
|
|
|
+ public Result<SearchResult<MidjourneyUserConversation>> conversationList() throws IOException {
|
|
|
MidjourneyUser user = getUser();
|
|
|
log.info("查询会话列表 userId:{}",user.getId());
|
|
|
MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
@@ -403,7 +410,7 @@ public class MidjourneyController {
|
|
|
*/
|
|
|
@PostMapping("/conversation/{id}/cancel")
|
|
|
@NoSubmit
|
|
|
- public Result<Void> conversationCancel(@PathVariable("id") Long id){
|
|
|
+ public Result<Void> conversationCancel(@PathVariable("id") Long id) throws IOException {
|
|
|
MidjourneyUser user = getUser();
|
|
|
log.info("取消任务 id:{}",id);
|
|
|
midjourneyService.cancelConversation(user,id);
|
|
|
@@ -466,8 +473,9 @@ public class MidjourneyController {
|
|
|
* 用户绘画记录
|
|
|
*/
|
|
|
@GetMapping("/get/painting/record")
|
|
|
- public Result<SearchResult<MidjourneyUserPaintingDayRecordView>> getPaintingRecord(String prompt, Boolean bookmark) {
|
|
|
+ public Result<SearchResult<MidjourneyUserPaintingDayRecordView>> getPaintingRecord(String prompt, Boolean bookmark) throws IOException {
|
|
|
MidjourneyUser user = getUser();
|
|
|
+ log.info("用户绘画记录 userId:{},prompt:{},bookmark:{}", user.getId(), prompt, bookmark);
|
|
|
String condition = String.format(" and mc.user_id = %s", user.getId());
|
|
|
if (StrUtil.isNotBlank(prompt)) {
|
|
|
condition += String.format(" and mc.prompt like '%%%s%%'", prompt);
|
|
|
@@ -497,7 +505,7 @@ public class MidjourneyController {
|
|
|
* 获取settings
|
|
|
*/
|
|
|
@GetMapping("/get/settings")
|
|
|
- public Result<MidjourneyUserSettings> getSettings(){
|
|
|
+ public Result<MidjourneyUserSettings> getSettings() throws IOException {
|
|
|
MidjourneyUser user = getUser();
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(midjourneyUserSettingsService.getById(user.getSettings().getId()));
|
|
|
}
|
|
|
@@ -506,7 +514,7 @@ public class MidjourneyController {
|
|
|
* 修改settings
|
|
|
*/
|
|
|
@PostMapping("/put/settings")
|
|
|
- public Result<MidjourneyUserSettings> upSettings(@RequestBody MidjourneyUserSettings settings){
|
|
|
+ public Result<MidjourneyUserSettings> upSettings(@RequestBody MidjourneyUserSettings settings) throws IOException {
|
|
|
MidjourneyUser user = getUser();
|
|
|
if (!user.getId().equals(settings.getUserId())) {
|
|
|
throw BusinessRuntimeException.getInstance("参数错误");
|