Browse Source

修复收藏绘画模型,绘画字段缺失

杨兴卓 1 month ago
parent
commit
f33a53eb53
22 changed files with 233 additions and 104 deletions
  1. 1 0
      xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/exception/ErrorCode.java
  2. 12 0
      xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/utils/AssertUtils.java
  3. 4 5
      xyzc-start/src/main/java/com/xyzc/start/controller/AppPageController.java
  4. 6 6
      xyzc-start/src/main/java/com/xyzc/start/controller/MyCollectController.java
  5. 0 9
      xyzc-start/src/main/java/com/xyzc/start/controller/MyPageController.java
  6. 0 7
      xyzc-start/src/main/java/com/xyzc/start/controller/UserInfoController.java
  7. 11 5
      xyzc-start/src/main/java/com/xyzc/start/domain/App.java
  8. 7 20
      xyzc-start/src/main/java/com/xyzc/start/domain/WebAppGroup.java
  9. 8 0
      xyzc-start/src/main/java/com/xyzc/start/domain/query/AppQuery.java
  10. 11 1
      xyzc-start/src/main/java/com/xyzc/start/domain/vo/AppCollectVo.java
  11. 9 0
      xyzc-start/src/main/java/com/xyzc/start/domain/vo/AppPageVo.java
  12. 10 3
      xyzc-start/src/main/java/com/xyzc/start/domain/vo/AppVo.java
  13. 3 3
      xyzc-start/src/main/java/com/xyzc/start/domain/vo/WebAppGroupVo.java
  14. 3 4
      xyzc-start/src/main/java/com/xyzc/start/mapper/BaseUserCollectMapper.java
  15. 15 0
      xyzc-start/src/main/java/com/xyzc/start/mapper/WebAppGroupMapper.java
  16. 1 1
      xyzc-start/src/main/java/com/xyzc/start/service/IAppPageService.java
  17. 6 3
      xyzc-start/src/main/java/com/xyzc/start/service/IMyCollectService.java
  18. 15 3
      xyzc-start/src/main/java/com/xyzc/start/service/impl/AppPageServiceImpl.java
  19. 12 6
      xyzc-start/src/main/java/com/xyzc/start/service/impl/MyCollectServiceImpl.java
  20. 1 1
      xyzc-start/src/main/resources/application.yml
  21. 49 27
      xyzc-start/src/main/resources/mapper/WebStart/BaseUserCollectMapper.xml
  22. 49 0
      xyzc-start/src/main/resources/mapper/WebStart/WebAppGroupMapper.xml

+ 1 - 0
xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/exception/ErrorCode.java

@@ -46,6 +46,7 @@ public enum ErrorCode {
     ORDER_ALREADY_EXIST(2006, "此订单号已存在"),
     ORDER_NO_EXIST(2007, "此订单号不存在"),
     DISCOUNT_NO_CONFIG(2008, "折扣未配置"),
+    NO_SELECT_DATA(2009, "未查询到数据"),
 
     // 用户燃料不足
     SURPLUS_FUEL_NOT_ENOUGH(2300, "燃料不足"),

+ 12 - 0
xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/utils/AssertUtils.java

@@ -3,6 +3,7 @@ package com.xyzc.common.core.utils;
 import com.xyzc.common.core.exception.ErrorCode;
 import com.xyzc.common.core.exception.ServerException;
 
+import java.util.Collection;
 import java.util.List;
 
 public class AssertUtils {
@@ -65,4 +66,15 @@ public class AssertUtils {
             throw new ServerException(ErrorCode.SURPLUS_FUEL_NOT_ENOUGH);
         }
     }
+
+    /**
+     * 判断
+     * @param appVos
+     * @param err
+     */
+    public static void isEmpty(Collection<Object> appVos, ErrorCode err) {
+        if (appVos == null || appVos.isEmpty()) {
+            throw new ServerException(err);
+        }
+    }
 }

+ 4 - 5
xyzc-start/src/main/java/com/xyzc/start/controller/AppPageController.java

@@ -1,13 +1,12 @@
 package com.xyzc.start.controller;
 
 import com.xyzc.common.core.utils.Result;
-import com.xyzc.start.domain.WebAppGroup;
+import com.xyzc.common.web.security.user.SecurityUser;
 import com.xyzc.start.domain.query.AppQuery;
 import com.xyzc.start.domain.vo.*;
 import com.xyzc.start.service.IAppPageService;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
-import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -64,10 +63,10 @@ public class AppPageController {
      * 按具体类型分类的app列表
      */
     @GetMapping("/byType/{typeId}")
-    public Result<List<WebAppGroupVo>> byType(@PathVariable("typeId") Long typeId) {
-        List<WebAppGroupVo> appList = appPageService.queryByTypeId(typeId);
+    public Result<WebAppGroupVo> byType(@PathVariable("typeId") Long typeId, @Valid AppQuery appQuery) {
+        WebAppGroupVo webAppGroup = appPageService.queryByTypeId(typeId, appQuery);
 
-        return Result.ok(appList);
+        return Result.ok(webAppGroup);
     }
 
     /**

+ 6 - 6
xyzc-start/src/main/java/com/xyzc/start/controller/MyCollectController.java

@@ -28,8 +28,8 @@ public class MyCollectController {
      * 收藏的绘画模型
      */
     @GetMapping("/collectDraw")
-    public Result<List<DrawModelCollectVo>> getCollectDrawModel(Long id) {
-        List<DrawModelCollectVo> drawModelList = myCollectService.getCollectDrawModel(id);
+    public Result<List<DrawModelCollectVo>> getCollectDrawModel(Long id, String modelName) {
+        List<DrawModelCollectVo> drawModelList = myCollectService.getCollectDrawModel(id, modelName);
 
         return Result.ok(drawModelList);
     }
@@ -38,8 +38,8 @@ public class MyCollectController {
      * 收藏的图像
      */
     @GetMapping("/collectImage")
-    public Result<List<DrawGraphicsCollectVo>> getCollectImage(Long graphicsId) {
-        List<DrawGraphicsCollectVo> drawGraphicsList = myCollectService.getCollectImage(graphicsId);
+    public Result<List<DrawGraphicsCollectVo>> getCollectImage(Long graphicsId, String graphicsName) {
+        List<DrawGraphicsCollectVo> drawGraphicsList = myCollectService.getCollectImage(graphicsId, graphicsName);
 
         return Result.ok(drawGraphicsList);
     }
@@ -48,8 +48,8 @@ public class MyCollectController {
      * 收藏的应用
      */
     @GetMapping("/collectApp")
-    public Result<List<CollectAppVo>> getCollectApp(Long appId) {
-        List<CollectAppVo> appList = myCollectService.getCollectApp(appId);
+    public Result<List<AppCollectVo>> getCollectApp(Long appId, String appName) {
+        List<AppCollectVo> appList = myCollectService.getCollectApp(appId, appName);
 
         return Result.ok(appList);
     }

+ 0 - 9
xyzc-start/src/main/java/com/xyzc/start/controller/MyPageController.java

@@ -23,15 +23,6 @@ public class MyPageController {
 
     private final IHomePageService homePageService;
 
-    /**
-     * 点击更多获取应用
-     */
-    @PostMapping("/more")
-    public Result<List<BaseUserCollectVo>> getMoreApps(@RequestBody BaseUserCollectQuery collectBo) {
-        List<BaseUserCollectVo> collectApps = homePageService.getMoreApps(collectBo);
-        return Result.ok(collectApps);
-    }
-
 
     /**
      * 联系客服

+ 0 - 7
xyzc-start/src/main/java/com/xyzc/start/controller/UserInfoController.java

@@ -1,6 +1,5 @@
 package com.xyzc.start.controller;
 
-import cn.hutool.core.io.FileUtil;
 import com.xyzc.common.core.utils.Result;
 import com.xyzc.resource.api.RemoteFileService;
 import com.xyzc.start.constant.FuelDeduct;
@@ -14,12 +13,8 @@ import com.xyzc.start.service.IUserInfoService;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
-import java.io.IOException;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -35,8 +30,6 @@ public class UserInfoController {
 
     private final IUserInfoService userInfoService;
 
-    @DubboReference
-    private RemoteFileService remoteFileService;
 
     /**
      * 登录用户获取用户信息

+ 11 - 5
xyzc-start/src/main/java/com/xyzc/start/domain/App.java

@@ -1,9 +1,6 @@
 package com.xyzc.start.domain;
 
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.*;
 import com.xyzc.common.mybatis.core.domain.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -27,7 +24,7 @@ public class App extends BaseEntity {
     /**
      * 能力id
      */
-    @TableId(value = "id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     /**
@@ -82,9 +79,18 @@ public class App extends BaseEntity {
     private Integer isChoiceness;
 
     /**
+     * app路由
+     */
+    private String routePath;
+
+    /**
      * 版本号
      */
     @Version
     private Integer version;
 
+    /**
+     * 总收藏量
+     */
+    private Integer collectTotal;
 }

+ 7 - 20
xyzc-start/src/main/java/com/xyzc/start/domain/WebAppGroup.java

@@ -3,7 +3,9 @@ package com.xyzc.start.domain;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.xyzc.common.mybatis.core.domain.BaseEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.util.Date;
 
@@ -13,12 +15,13 @@ import java.util.Date;
  * @author 杨兴卓
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("xy_web_app_group")
-public class WebAppGroup {
+public class WebAppGroup extends BaseEntity {
     /**
      * id
      */
-    @TableId(value = "id", type= IdType.ASSIGN_ID)
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     /**
@@ -32,24 +35,8 @@ public class WebAppGroup {
     private Integer sort;
 
     /**
-     * 创建者
+     * 逻辑删除
      */
-    private Long createBy;
-
-    /**
-     * 创建时间
-     */
-    private Date createTime;
-
-    /**
-     * 更新者
-     */
-    private Long updateBy;
-
-    /**
-     * 更新时间
-     */
-    private Date updateTime;
-
+    private String delFlag;
 
 }

+ 8 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/query/AppQuery.java

@@ -1,6 +1,7 @@
 package com.xyzc.start.domain.query;
 
 import lombok.Data;
+import org.hibernate.validator.constraints.Range;
 
 @Data
 public class AppQuery {
@@ -14,4 +15,11 @@ public class AppQuery {
      * 应用名称
      */
     private String appName;
+
+    /**
+     * 是否按收藏量查询,0-按使用量查询, 1-按收藏量查询
+     */
+    @Range(min = 0, max = 1, message = "类型错误,请输入{min}到{max}之间的数")
+    private String selectType;
+
 }

+ 11 - 1
xyzc-start/src/main/java/com/xyzc/start/domain/vo/CollectAppVo.java → xyzc-start/src/main/java/com/xyzc/start/domain/vo/AppCollectVo.java

@@ -2,8 +2,12 @@ package com.xyzc.start.domain.vo;
 
 import lombok.Data;
 
+/**
+ * AppCollectVo 应用收藏对象
+ */
+
 @Data
-public class CollectAppVo {
+public class AppCollectVo {
 
     /**
      * 应用收藏id
@@ -36,6 +40,11 @@ public class CollectAppVo {
     private Integer isChoiceness;
 
     /**
+     * 应用路由
+     */
+    private String routePath;
+
+    /**
      * ai模型logo
      */
     private String aiModelLogo;
@@ -60,4 +69,5 @@ public class CollectAppVo {
      */
     private Integer isCollect;
 
+
 }

+ 9 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/vo/AppPageVo.java

@@ -17,5 +17,14 @@ public class AppPageVo extends BaseUserSelectAppVo {
      */
     private Long careerId;
 
+    /**
+     * app类型组id
+     */
+    private Long appGroupId;
+
+    /**
+     * app类型名
+     */
+    private String appGroupName;
 
 }

+ 10 - 3
xyzc-start/src/main/java/com/xyzc/start/domain/vo/AppVo.java

@@ -2,7 +2,6 @@ package com.xyzc.start.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.Version;
 import com.xyzc.start.domain.App;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
@@ -28,7 +27,6 @@ public class AppVo implements Serializable {
     /**
      * 应用id
      */
-    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     /**
@@ -52,6 +50,11 @@ public class AppVo implements Serializable {
     private String appName;
 
     /**
+     * 应用连接
+     */
+    private String routePath;
+
+    /**
      * 应用英文名称
      */
     private String appNameEn;
@@ -72,7 +75,7 @@ public class AppVo implements Serializable {
     private String prompt;
 
     /**
-     * 应用类型;1-bot;2-dify
+     * 应用类型;1-AI聊天;2-AI文生图;3-AI图生图;4-AI数字人
      */
     private Integer appType;
 
@@ -87,4 +90,8 @@ public class AppVo implements Serializable {
     private Integer isChoiceness;
 
 
+    /**
+     * 总收藏量
+     */
+    private Integer collectTotal;
 }

+ 3 - 3
xyzc-start/src/main/java/com/xyzc/start/domain/vo/WebAppGroupVo.java

@@ -10,9 +10,9 @@ import java.util.List;
 @AutoMapper(target = WebAppGroup.class)
 public class WebAppGroupVo {
     /**
-     * id
+     * 分类id
      */
-    private Long id;
+    private Long groupId;
 
 
     /**
@@ -28,6 +28,6 @@ public class WebAppGroupVo {
     /**
      * 应用集合
      */
-    private List<AppVo> appList;
+    private List<AppPageVo> appList;
 
 }

+ 3 - 4
xyzc-start/src/main/java/com/xyzc/start/mapper/BaseUserCollectMapper.java

@@ -1,6 +1,5 @@
 package com.xyzc.start.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xyzc.common.mybatis.core.mapper.BaseMapperPlus;
 import com.xyzc.start.constant.Const;
 import com.xyzc.start.domain.BaseUserCollect;
@@ -52,7 +51,7 @@ public interface BaseUserCollectMapper extends BaseMapperPlus<BaseUserCollect, B
      * @param id
      * @return
      */
-    List<DrawModelCollectVo> queryDrawModelById(Long userId, Long id);
+    List<DrawModelCollectVo> queryDrawModelById(Long userId, Long id, String modelName);
 
     /**
      * 根据上一个id,分页查询图像
@@ -61,7 +60,7 @@ public interface BaseUserCollectMapper extends BaseMapperPlus<BaseUserCollect, B
      * @param graphicsId
      * @return
      */
-    List<DrawGraphicsCollectVo> queryDrawGraphicsById(Long userId, Long graphicsId);
+    List<DrawGraphicsCollectVo> queryDrawGraphicsById(Long userId, Long graphicsId, String graphicsName);
 
     /**
      * 根据上一个id,分页查询应用
@@ -70,7 +69,7 @@ public interface BaseUserCollectMapper extends BaseMapperPlus<BaseUserCollect, B
      * @param appId
      * @return
      */
-    List<CollectAppVo> queryAppById(Long userId, Long appId);
+    List<AppCollectVo> queryAppById(Long userId, Long appId, String appName);
 
     /**
      * 根据用户id查询收藏的应用

+ 15 - 0
xyzc-start/src/main/java/com/xyzc/start/mapper/WebAppGroupMapper.java

@@ -3,12 +3,27 @@ package com.xyzc.start.mapper;
 
 import com.xyzc.common.mybatis.core.mapper.BaseMapperPlus;
 import com.xyzc.start.domain.WebAppGroup;
+import com.xyzc.start.domain.query.AppQuery;
+import com.xyzc.start.domain.vo.AppPageVo;
+import com.xyzc.start.domain.vo.AppVo;
 import com.xyzc.start.domain.vo.WebAppGroupVo;
 
+import java.util.List;
+
 /**
  * 应用分组查询
  */
 public interface WebAppGroupMapper extends BaseMapperPlus<WebAppGroup, WebAppGroupVo> {
 
+    /**
+     * 根据类型查询应用
+     *
+     * @param userId 用户id
+     * @param typeId
+     * @param app
+     * @return
+     */
+    List<AppPageVo> queryAppById(Long userId, Long typeId, AppQuery app);
+
 
 }

+ 1 - 1
xyzc-start/src/main/java/com/xyzc/start/service/IAppPageService.java

@@ -35,7 +35,7 @@ public interface IAppPageService {
     /**
      * 根据分类id查询app
      */
-    List<WebAppGroupVo> queryByTypeId(Long typeId);
+    WebAppGroupVo queryByTypeId(Long typeId, AppQuery appQuery);
 
     /**
      * 根据查询条件查询app

+ 6 - 3
xyzc-start/src/main/java/com/xyzc/start/service/IMyCollectService.java

@@ -12,22 +12,25 @@ public interface IMyCollectService {
     /**
      * 根据上一个id 获取收藏的绘画模型列表
      * @param id Long
+     * @param modelName String
      * @return List<DrawModelCollectVo>
      */
-    List<DrawModelCollectVo> getCollectDrawModel(Long id);
+    List<DrawModelCollectVo> getCollectDrawModel(Long id, String modelName);
 
     /**
      * 根据上一个id 获取收藏的应用列表
      * @param appId
+     * @param appName 应用名称模糊查询
      * @return
      */
-    List<CollectAppVo> getCollectApp(Long appId);
+    List<AppCollectVo> getCollectApp(Long appId, String appName);
 
     /**
      * 根据上一个id 获取收藏的图片列表
      *
      * @param graphicsId
+     * @param graphicsName 图像名称
      * @return
      */
-    List<DrawGraphicsCollectVo> getCollectImage(Long graphicsId);
+    List<DrawGraphicsCollectVo> getCollectImage(Long graphicsId, String graphicsName);
 }

+ 15 - 3
xyzc-start/src/main/java/com/xyzc/start/service/impl/AppPageServiceImpl.java

@@ -1,6 +1,8 @@
 package com.xyzc.start.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xyzc.common.core.exception.ErrorCode;
+import com.xyzc.common.core.utils.AssertUtils;
 import com.xyzc.common.web.security.user.SecurityUser;
 import com.xyzc.start.domain.WebAppGroup;
 import com.xyzc.start.domain.query.AppQuery;
@@ -14,6 +16,7 @@ import jakarta.annotation.PostConstruct;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -102,7 +105,7 @@ public class AppPageServiceImpl implements IAppPageService {
         List<AppPageVo> appPageVos = careerMapper.queryAppPageVoByCareerId(SecurityUser.getUserId(), careerId, appId);
         AppPageCareerVo appPageCareerVo = new AppPageCareerVo();
         //为空跳出
-        if(appPageVos==null || appPageVos.isEmpty()){
+        if (appPageVos == null || appPageVos.isEmpty()) {
             return null;
         }
 
@@ -117,8 +120,17 @@ public class AppPageServiceImpl implements IAppPageService {
      * @return
      */
     @Override
-    public List<WebAppGroupVo> queryByTypeId(Long typeId) {
-        return List.of();
+    public WebAppGroupVo queryByTypeId(Long typeId, AppQuery appQuery) {
+        List<AppPageVo> appVos = webAppGroupMapper.queryAppById(SecurityUser.getUserId(), typeId, appQuery);
+
+        AssertUtils.isEmpty(Collections.singleton(appVos), ErrorCode.NO_SELECT_DATA);
+        // 封装返回
+        WebAppGroupVo webAppGroupVo = new WebAppGroupVo();
+        webAppGroupVo.setAppList(appVos);
+        webAppGroupVo.setGroupName(appVos.get(0).getAppGroupName());
+        webAppGroupVo.setGroupId(appVos.get(0).getAppGroupId());
+
+        return webAppGroupVo;
     }
 
     /**

+ 12 - 6
xyzc-start/src/main/java/com/xyzc/start/service/impl/MyCollectServiceImpl.java

@@ -27,21 +27,27 @@ public class MyCollectServiceImpl implements IMyCollectService {
      * @return
      */
     @Override
-    public List<DrawModelCollectVo> getCollectDrawModel(Long id) {
+    public List<DrawModelCollectVo> getCollectDrawModel(Long id, String modelName) {
 
-        return baseUserCollectMapper.queryDrawModelById(SecurityUser.getUserId(), id);
+        return baseUserCollectMapper.queryDrawModelById(SecurityUser.getUserId(), id, modelName);
     }
 
+    /**
+     *
+     * @param appId
+     * @param appName 应用名称模糊查询
+     * @return
+     */
     @Override
-    public List<CollectAppVo> getCollectApp(Long appId) {
+    public List<AppCollectVo> getCollectApp(Long appId, String appName) {
 
-        return baseUserCollectMapper.queryAppById(SecurityUser.getUserId(), appId);
+        return baseUserCollectMapper.queryAppById(SecurityUser.getUserId(), appId, appName);
     }
 
     @Override
-    public List<DrawGraphicsCollectVo> getCollectImage(Long graphicsId) {
+    public List<DrawGraphicsCollectVo> getCollectImage(Long graphicsId, String graphicsName) {
 
-        return baseUserCollectMapper.queryDrawGraphicsById(SecurityUser.getUserId(), graphicsId);
+        return baseUserCollectMapper.queryDrawGraphicsById(SecurityUser.getUserId(), graphicsId, graphicsName);
     }
 
 

+ 1 - 1
xyzc-start/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 # Tomcat
 server:
-  port: 10205
+  port: 10208
 
 # Spring
 spring:

+ 49 - 27
xyzc-start/src/main/resources/mapper/WebStart/BaseUserCollectMapper.xml

@@ -39,25 +39,32 @@
                oss.url      AS oss_id,
                xdm.model_name,
                xdm.description,
+               xuu.id       AS ugc_user_id,
                xuu.ugc_nick AS ugc_user_name,
                oss2.url     AS ugc_user_avatar,
                xdm.use_count AS use_count,
                xbuc.is_collect AS is_collect,
                xbuc.type    AS type
-        FROM xy_draw_model xdm
-                 LEFT JOIN xy_base_user_collect xbuc ON xdm.id = xbuc.collect_id
+        FROM xy_base_user_collect xbuc
+                 LEFT JOIN xy_draw_model xdm ON xdm.id = xbuc.collect_id
                  LEFT JOIN sys_oss oss ON xdm.oss_id = oss.oss_id
             AND `type` = 1
-                 LEFT JOIN xy_ugc_user xuu ON xbuc.base_user_id = xuu.id
+                 LEFT JOIN xy_ugc_user xuu ON xdm.ugc_id = xuu.id
                  LEFT JOIN sys_oss oss2 ON xuu.avatar = oss2.oss_id
         WHERE xdm.id = xbuc.collect_id
           AND xbuc.base_user_id = #{userId}
           AND xdm.del_flag = '0'
-        ORDER BY xbuc.create_time DESC
+        <if test="id != null">
+            AND xbuc.id &lt; #{id}
+        </if>
+        <if test="modelName != null">
+            AND xdm.model_name LIKE CONCAT( '%', #{modelName}, '%')
+        </if>
+        ORDER BY id DESC
         LIMIT 10
     </select>
 
-    <select id="queryAppById" resultType="com.xyzc.start.domain.vo.CollectAppVo">
+    <select id="queryAppById" resultType="com.xyzc.start.domain.vo.AppCollectVo">
         SELECT xbuc.id,
                app.app_name,
                app.description         AS app_desc,
@@ -69,8 +76,8 @@
                am.ai_model_logo_oss_id AS ai_model_logo,
                am.ai_model_name        AS ai_model_name,
                xbuc.is_collect         AS is_collect
-        FROM xy_base_user bu
-                 LEFT JOIN xy_base_user_collect xbuc ON bu.id = xbuc.base_user_id
+        FROM xy_base_user_collect xbuc
+                 LEFT JOIN xy_base_user bu ON bu.id = xbuc.base_user_id
                  LEFT JOIN xy_app app ON app.id = xbuc.collect_id
                  LEFT JOIN sys_oss oss ON oss.oss_id = app.oss_id
                  LEFT JOIN xy_ai_model_app xama ON app.id = xama.app_id
@@ -79,8 +86,13 @@
         WHERE   bu.id = #{userId} AND app.del_flag = '0'
                  AND xbuc.is_collect = 1 AND xbuc.type = 3
             <if test="appId != null">
-                and app.id > #{appId}
+                and app.id &lt; #{appId}
+            </if>
+            <if test="appName != null">
+                and app.app_name like concat('%',#{appName},'%')
             </if>
+        ORDER BY xbuc.create_time DESC
+        LIMIT 10
     </select>
 
     <select id="queryDrawGraphicsById" resultType="com.xyzc.start.domain.vo.DrawGraphicsCollectVo">
@@ -90,36 +102,45 @@
                oss.url         AS oss_url,
                dg.title,
                dg.use_count,
-               xdm.model_name
+               xdm.model_name,
+               xbuc.type
         FROM xy_base_user_collect xbuc
                  LEFT JOIN xy_draw_graphics dg ON xbuc.collect_id = dg.id
                  LEFT JOIN xy_draw_model xdm ON dg.model_id = xdm.id
                  LEFT JOIN sys_oss oss ON oss.oss_id = dg.oss_id
         WHERE xbuc.base_user_id = #{userId}
           and xbuc.type = 2
+        <if test="graphicsId != null">
+            and xbuc.collect_id > #{graphicsId}
+        </if>
+        <if test="graphicsName != null">
+            and dg.title like concat('%',#{graphicsName},'%')
+        </if>
         ORDER BY xbuc.create_time DESC
         LIMIT 10
     </select>
 
     <select id="queryCarefulSelectAppBy" resultType="com.xyzc.start.domain.vo.BaseUserSelectAppVo">
-        SELECT app.id as app_id,
-        app.app_name as app_name,
-        app.description as app_desc,
-        oss.url as app_icon,
-        oss2.url as ai_model_icon,
-        am.ai_model_name as ai_model_name,
-        app.use_count as use_count
-        from xy_app app
-        left join sys_oss oss on app.oss_id = oss.oss_id
-        left join xy_ai_model_app ama on ama.app_id = app.id
-        left join xy_ai_model am on ama.ai_model_id = am.id
-        left join sys_oss oss2 on am.ai_model_logo_oss_id = oss2.oss_id
-        where app.is_choiceness = 1
-            and app.del_flag = '0'
-        <if test="appId != null">
-            and app.id > #{appId}
-        </if>
-        limit #{length}
+        SELECT
+            app.id AS app_id,
+            app.app_name AS app_name,
+            app.description AS app_desc,
+            oss.url AS app_icon,
+            app.route_path,
+            oss2.url AS ai_model_icon,
+            am.ai_model_name AS ai_model_name,
+            app.use_count AS use_count
+        FROM xy_app app
+        LEFT JOIN sys_oss oss ON app.oss_id = oss.oss_id
+        LEFT JOIN xy_ai_model_app ama ON ama.app_id = app.id
+        LEFT JOIN xy_ai_model am ON ama.ai_model_id = am.id
+        LEFT JOIN sys_oss oss2 ON am.ai_model_logo_oss_id = oss2.oss_id
+        WHERE   app.is_choiceness = 1
+            AND app.del_flag = '0'
+        <if test = "appId != null" >
+            AND app.id > #{appId}
+        </if >
+        LIMIT #{length}
     </select>
 
     <select id="queryHistoryAppBy" resultType="com.xyzc.start.domain.vo.BaseUserCollectAppVo">
@@ -143,6 +164,7 @@
         SELECT app.id       as app_id,
                app.app_name as app_name,
                oss.url      as app_icon,
+               app.route_path,
                buc.type     AS type
         from xy_base_user_collect buc
                  left join xy_app app on buc.collect_id = app.id

+ 49 - 0
xyzc-start/src/main/resources/mapper/WebStart/WebAppGroupMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xyzc.start.mapper.WebAppGroupMapper">
+
+
+    <select id="queryAppById" resultType="com.xyzc.start.domain.vo.AppPageVo">
+        SELECT  app.id AS app_id,
+                wag.id AS app_group_id,
+                wag.group_name AS app_group_name,
+                app.app_name AS app_name,
+                oss.url AS app_icon,
+                app.description AS app_desc,
+                xam.ai_model_name,
+                xam.id AS ai_model_id,
+                oss2.url AS ai_model_icon,
+                app.use_count,
+                buc.is_collect AS is_collect,
+                app.is_choiceness
+        FROM xy_web_app_group wag
+        LEFT JOIN xy_web_app_group_app waga ON wag.id = waga.web_app_group_id
+        LEFT JOIN xy_app app ON app.id = waga.app_id
+        LEFT JOIN sys_oss oss ON app.oss_id = oss.oss_id
+        LEFT JOIN xy_ai_model_app xama ON xama.app_id = app.id
+        LEFT JOIN xy_ai_model xam ON xam.id = xama.ai_model_id
+        LEFT JOIN sys_oss oss2 ON xam.ai_model_logo_oss_id = oss2.oss_id
+        LEFT JOIN xy_base_user_collect buc ON buc.collect_id = app.id
+        AND buc.type = 3
+        AND buc.base_user_id = #{userId}
+        WHERE wag.id = #{typeId}
+          AND app.del_flag = '0'
+        <if test="app.appName != null">
+            AND app.app_name LIKE CONCAT('%',#{app.appName},'%')
+        </if>
+        <if test="app.appId != null">
+            AND app.id &lt; #{app.appId}
+        </if>
+        <if test="app.selectType == 1">
+            ORDER BY app.collect_total DESC
+        </if>
+        <if test="app.selectType == 0">
+            ORDER BY app.use_count DESC
+        </if>
+        LIMIT 10
+    </select>
+
+
+</mapper>