mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	【解决todo】将 login user 通过 controller 传入
This commit is contained in:
		| @ -2,7 +2,9 @@ package cn.iocoder.yudao.module.ai.controller.admin.image; | |||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*; | import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; | ||||||
| import cn.iocoder.yudao.module.ai.service.image.AiImageService; | import cn.iocoder.yudao.module.ai.service.image.AiImageService; | ||||||
| import io.swagger.v3.oas.annotations.Operation; | import io.swagger.v3.oas.annotations.Operation; | ||||||
| import io.swagger.v3.oas.annotations.Parameter; | import io.swagger.v3.oas.annotations.Parameter; | ||||||
| @ -24,25 +26,33 @@ public class AiImageController { | |||||||
|     @Resource |     @Resource | ||||||
|     private AiImageService aiImageService; |     private AiImageService aiImageService; | ||||||
|  |  | ||||||
|     // TODO @fan:方法名叫做,getImagePageMy ;我们的命名,还是以动名词哈。不考虑省略名词的原因,是担心一个 Service 扩多个模块,纯粹动词无法表达 |  | ||||||
|     @Operation(summary = "获取【我的】绘图分页") |     @Operation(summary = "获取【我的】绘图分页") | ||||||
|     @GetMapping("/my-page") |     @GetMapping("/my-page") | ||||||
|     public CommonResult<PageResult<AiImageListRespVO>> myPage(@Validated AiImageListReqVO req) { |     public CommonResult<PageResult<AiImagePageMyRespVO>> getImagePageMy(@Validated AiImageListReqVO req) { | ||||||
|         return success(aiImageService.list(req)); |         // 转换 resp | ||||||
|  |         PageResult<AiImageDO> pageResult = aiImageService.getImagePageMy(getLoginUserId(), req); | ||||||
|  |         // 转换 PageResult<AiImageListRespVO> 返回 | ||||||
|  |         PageResult<AiImagePageMyRespVO> result = new PageResult<>(); | ||||||
|  |         result.setTotal(pageResult.getTotal()); | ||||||
|  |         result.setList(BeanUtils.toBean(pageResult.getList(), AiImagePageMyRespVO.class)); | ||||||
|  |         return success(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // TODO @fan:类似 /my-page 的建议 |     // TODO @fan:类似 /my-page 的建议 | ||||||
|     @Operation(summary = "获取【我的】绘图记录", description = "...") |     @Operation(summary = "获取【我的】绘图记录", description = "...") | ||||||
|     @GetMapping("/get-my") |     @GetMapping("/get-my") | ||||||
|     public CommonResult<AiImageListRespVO> getMy(@RequestParam("id") Long id) { |     public CommonResult<AiImagePageMyRespVO> getMy(@RequestParam("id") Long id) { | ||||||
|         return CommonResult.success(aiImageService.getMy(id)); |         // 获取 image 信息 | ||||||
|  |         AiImageDO imageDO = aiImageService.getMy(id); | ||||||
|  |         // 转 resp 并返回 | ||||||
|  |         return CommonResult.success(BeanUtils.toBean(imageDO, AiImagePageMyRespVO.class)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // TODO @fan:建议把 dallDrawing、midjourney 融合成一个 draw 接口,异步绘制;然后返回一个 id 给前端;前端通过 get 接口轮询,直到获取到生成成功 |     // TODO @fan:建议把 dallDrawing、midjourney 融合成一个 draw 接口,异步绘制;然后返回一个 id 给前端;前端通过 get 接口轮询,直到获取到生成成功 | ||||||
|     @Operation(summary = "dall2/dall3绘画", description = "openAi dall3是付费的!") |     @Operation(summary = "dall2/dall3绘画", description = "openAi dall3是付费的!") | ||||||
|     @PostMapping("/dall") |     @PostMapping("/dall") | ||||||
|     public AiImageDallRespVO dall(@Validated @RequestBody AiImageDallReqVO req) { |     public CommonResult<Long> dall(@Validated @RequestBody AiImageDallReqVO req) { | ||||||
|         return aiImageService.dall(req); |         return success(aiImageService.dall(getLoginUserId(), req)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Operation(summary = "midjourney绘画", description = "midjourney图片绘画流程:1、提交任务 2、获取完成的任务 3、选择对应功能 4、获取最终结果") |     @Operation(summary = "midjourney绘画", description = "midjourney图片绘画流程:1、提交任务 2、获取完成的任务 3、选择对应功能 4、获取最终结果") | ||||||
| @ -73,9 +83,7 @@ public class AiImageController { | |||||||
|     @DeleteMapping("/delete-my") |     @DeleteMapping("/delete-my") | ||||||
|     @Parameter(name = "id", required = true, description = "绘画编号", example = "1024") |     @Parameter(name = "id", required = true, description = "绘画编号", example = "1024") | ||||||
|     public CommonResult<Void> deleteMy(@RequestParam("id") Long id) { |     public CommonResult<Void> deleteMy(@RequestParam("id") Long id) { | ||||||
|         // TODO @fan:这种一次性的 loginUserId,可以不用定义变量,直接当参数传递 |         aiImageService.deleteMy(id, getLoginUserId()); | ||||||
|         Long loginUserId = getLoginUserId(); |  | ||||||
|         aiImageService.deleteMy(id, loginUserId); |  | ||||||
|         return success(null); |         return success(null); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,7 +1,11 @@ | |||||||
| package cn.iocoder.yudao.module.ai.service.image; | package cn.iocoder.yudao.module.ai.service.image; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.module.ai.controller.admin.image.vo.*; | import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageDallReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageListReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyOperateReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.controller.admin.image.vo.AiImageMidjourneyReqVO; | ||||||
|  | import cn.iocoder.yudao.module.ai.dal.dataobject.image.AiImageDO; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * ai 作图 |  * ai 作图 | ||||||
| @ -15,10 +19,11 @@ public interface AiImageService { | |||||||
|     /** |     /** | ||||||
|      * ai绘画 - 列表 |      * ai绘画 - 列表 | ||||||
|      * |      * | ||||||
|  |      * @param loginUserId | ||||||
|      * @param req |      * @param req | ||||||
|      * @return |      * @return | ||||||
|      */ |      */ | ||||||
|     PageResult<AiImageListRespVO> list(AiImageListReqVO req); |     PageResult<AiImageDO> getImagePageMy(Long loginUserId, AiImageListReqVO req); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 获取 - image 信息 |      * 获取 - image 信息 | ||||||
| @ -26,14 +31,15 @@ public interface AiImageService { | |||||||
|      * @param id |      * @param id | ||||||
|      * @return |      * @return | ||||||
|      */ |      */ | ||||||
|     AiImageListRespVO getMy(Long id); |     AiImageDO getMy(Long id); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * ai绘画 - dall2/dall3 绘画 |      * ai绘画 - dall2/dall3 绘画 | ||||||
|      * |      * | ||||||
|  |      * @param loginUserId | ||||||
|      * @param req |      * @param req | ||||||
|      */ |      */ | ||||||
|     AiImageDallRespVO dall(AiImageDallReqVO req); |     Long dall(Long loginUserId, AiImageDallReqVO req); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * midjourney 图片生成 |      * midjourney 图片生成 | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 cherishsince
					cherishsince