Browse Source

首页页面完成修改

杨兴卓 1 month ago
parent
commit
2effb41095
17 changed files with 224 additions and 55 deletions
  1. 4 0
      xyzc-common/xyzc-common-core/pom.xml
  2. 43 0
      xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/config/JacksonConfiguration.java
  3. 2 0
      xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/exception/ErrorCode.java
  4. 1 0
      xyzc-common/xyzc-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  5. 11 1
      xyzc-start/src/main/java/com/xyzc/start/constant/BaseUserConst.java
  6. 2 3
      xyzc-start/src/main/java/com/xyzc/start/controller/MyPageController.java
  7. 29 18
      xyzc-start/src/main/java/com/xyzc/start/controller/UserInfoController.java
  8. 7 6
      xyzc-start/src/main/java/com/xyzc/start/domain/BaseUserCollect.java
  9. 35 0
      xyzc-start/src/main/java/com/xyzc/start/domain/bo/BaseUserCollectBo.java
  10. 2 2
      xyzc-start/src/main/java/com/xyzc/start/domain/query/BaseUserCollectQuery.java
  11. 0 5
      xyzc-start/src/main/java/com/xyzc/start/domain/vo/DrawGraphicsVo.java
  12. 14 5
      xyzc-start/src/main/java/com/xyzc/start/mapper/BaseUserCollectMapper.java
  13. 2 2
      xyzc-start/src/main/java/com/xyzc/start/service/IHomePageService.java
  14. 8 0
      xyzc-start/src/main/java/com/xyzc/start/service/IUserInfoService.java
  15. 2 2
      xyzc-start/src/main/java/com/xyzc/start/service/impl/HomePageServiceImpl.java
  16. 42 1
      xyzc-start/src/main/java/com/xyzc/start/service/impl/UserInfoServiceImpl.java
  17. 20 10
      xyzc-start/src/main/resources/mapper/WebStart/BaseUserCollectMapper.xml

+ 4 - 0
xyzc-common/xyzc-common-core/pom.xml

@@ -127,6 +127,10 @@
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.datatype</groupId>
+            <artifactId>jackson-datatype-jsr310</artifactId>
+        </dependency>
 
         <!--        <dependency>-->
 <!--            <groupId>org.springframework.security</groupId>-->

+ 43 - 0
xyzc-common/xyzc-common-core/src/main/java/com/xyzc/common/core/config/JacksonConfiguration.java

@@ -0,0 +1,43 @@
+package com.xyzc.common.core.config;
+
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.TimeZone;
+
+@Configuration
+public class JacksonConfiguration {
+
+    @Bean
+    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
+        return builder -> {
+            // 把 Long 类型序列化为 String
+            builder.serializerByType(Long.class, ToStringSerializer.instance);
+            // 把 bigDecimal 类型序列化为 String
+            builder.serializerByType(BigDecimal.class, ToStringSerializer.instance);
+            // 把 bigInteger 类型序列化为 String
+            builder.serializerByType(BigInteger.class, ToStringSerializer.instance);
+            // 把 Integer 类型序列化为 String
+            builder.serializerByType(Integer.class, ToStringSerializer.instance);
+            // 把 Double 类型序列化为 String
+            builder.serializerByType(Double.class, ToStringSerializer.instance);
+            // 把 Float 类型序列化为 String
+            builder.serializerByType(Float.class, ToStringSerializer.instance);
+            // 把 LocalDateTime 类型序列化为 String
+            builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+            // 把 LocalDateTime 类型反序列化为 String
+            builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+            builder.timeZone(TimeZone.getDefault());
+        };
+    }
+
+
+}

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

@@ -50,6 +50,8 @@ public enum ErrorCode {
     // 用户燃料不足
     SURPLUS_FUEL_NOT_ENOUGH(2300, "燃料不足"),
 
+    COLLECT_NOT_EXIST(2600, "收藏对象不存在"),
+
     PARAM_NOT_EMPTY(3000, "必填参数不能为空"),
 
     // 5000自定义编码

+ 1 - 0
xyzc-common/xyzc-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -5,3 +5,4 @@ com.xyzc.common.core.config.ThreadPoolConfig
 com.xyzc.common.core.config.ValidatorConfig
 com.xyzc.common.core.utils.SpringUtils
 com.xyzc.common.core.exception.ServerExceptionHandler
+com.xyzc.common.core.config.JacksonConfiguration

+ 11 - 1
xyzc-start/src/main/java/com/xyzc/start/constant/BaseUserConst.java

@@ -13,11 +13,21 @@ public interface BaseUserConst {
     Integer CALL_STATUS = 0;
 
     /**
-     * 收藏应用
+     * 应用收藏类型
      */
     Integer COLLECT_APP = 3;
 
     /**
+     * 绘画模型收藏
+     */
+    Integer COLLECT_DRAW_MODEL = 1;
+
+    /**
+     * 绘画图像收藏
+     */
+    Integer COLLECT_IMAGE = 2;
+
+    /**
      * 收藏
      */
     Integer COLLECT = 1;

+ 2 - 3
xyzc-start/src/main/java/com/xyzc/start/controller/MyPageController.java

@@ -1,8 +1,7 @@
 package com.xyzc.start.controller;
 
 import com.xyzc.common.core.utils.Result;
-import com.xyzc.start.domain.Merchant;
-import com.xyzc.start.domain.bo.BaseUserCollectQueryBo;
+import com.xyzc.start.domain.query.BaseUserCollectQuery;
 import com.xyzc.start.domain.vo.*;
 import com.xyzc.start.service.IHomePageService;
 import lombok.RequiredArgsConstructor;
@@ -28,7 +27,7 @@ public class MyPageController {
      * 点击更多获取应用
      */
     @PostMapping("/more")
-    public Result<List<BaseUserCollectVo>> getMoreApps(@RequestBody BaseUserCollectQueryBo collectBo) {
+    public Result<List<BaseUserCollectVo>> getMoreApps(@RequestBody BaseUserCollectQuery collectBo) {
         List<BaseUserCollectVo> collectApps = homePageService.getMoreApps(collectBo);
         return Result.ok(collectApps);
     }

+ 29 - 18
xyzc-start/src/main/java/com/xyzc/start/controller/UserInfoController.java

@@ -3,6 +3,7 @@ package com.xyzc.start.controller;
 import com.xyzc.common.core.utils.Result;
 import com.xyzc.start.constant.FuelDeduct;
 import com.xyzc.start.domain.bo.AgentCardSecretBo;
+import com.xyzc.start.domain.bo.BaseUserCollectBo;
 import com.xyzc.start.domain.bo.HobbyBo;
 import com.xyzc.start.domain.vo.BaseUserFuelFlowVo;
 import com.xyzc.start.domain.vo.BaseUserVo;
@@ -81,27 +82,37 @@ public class UserInfoController {
         return Result.ok(FuelDeduct.DEDUCT_SUCCESS);
     }
 
-/**
- * 获取所有行业
- *
- * @return
- */
-@GetMapping("/queryIndustryAll")
-public Result<List<IndustryVo>> queryIndustryAll() {
-    List<IndustryVo> industryAll = userInfoService.getIndustryAll();
+    /**
+     * 获取所有行业
+     *
+     * @return
+     */
+    @GetMapping("/queryIndustryAll")
+    public Result<List<IndustryVo>> queryIndustryAll() {
+        List<IndustryVo> industryAll = userInfoService.getIndustryAll();
 
-    return Result.ok(industryAll);
-}
+        return Result.ok(industryAll);
+    }
 
 
-/**
- * 销卡
- */
-@PostMapping("/exchange")
-public Result<Void> exchange(@RequestBody @Valid AgentCardSecretBo exchangeBo) {
-    userInfoService.exchange(exchangeBo);
+    /**
+     * 销卡
+     */
+    @PostMapping("/exchange")
+    public Result<Void> exchange(@RequestBody @Valid AgentCardSecretBo exchangeBo) {
+        userInfoService.exchange(exchangeBo);
 
-    return Result.ok();
-}
+        return Result.ok();
+    }
+
+    /**
+     * 用户收藏或取消
+     */
+    @PostMapping("/collectOrCancel")
+    public Result<Void> collectOrCancel(@RequestBody @Valid BaseUserCollectBo collectBo) {
+        userInfoService.collectOrCancel(collectBo);
+
+        return Result.ok();
+    }
 
 }

+ 7 - 6
xyzc-start/src/main/java/com/xyzc/start/domain/BaseUserCollect.java

@@ -11,12 +11,18 @@ import java.util.Date;
 
 /**
  * 用户收藏表
+ *
  * @author 墨凡
  * date: 2024/7/21 16:14
  */
 @TableName("xy_base_user_collect")
 @Data
-public class BaseUserCollect  {
+public class BaseUserCollect {
+
+    /**
+     * 主键id
+     */
+    private Long id;
 
     /**
      * 用户id
@@ -44,11 +50,6 @@ public class BaseUserCollect  {
     private Integer type;
 
     /**
-     * 状态,0-正常显示,1-删除
-     */
-    private Integer status;
-
-    /**
      * 使用时间
      */
     @TableField(fill = FieldFill.INSERT_UPDATE)

+ 35 - 0
xyzc-start/src/main/java/com/xyzc/start/domain/bo/BaseUserCollectBo.java

@@ -0,0 +1,35 @@
+package com.xyzc.start.domain.bo;
+
+import com.xyzc.start.domain.BaseUserCollect;
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.hibernate.validator.constraints.Range;
+
+
+@Data
+@AutoMapper(target = BaseUserCollect.class)
+public class BaseUserCollectBo {
+
+    /**
+     * 收藏的id
+     */
+    @NotNull(message = "收藏id不能为空")
+    private Long collectId;
+
+    /**
+     * 是否收藏,0-最近使用,1-收藏
+     */
+    @NotNull(message = "收藏状态不能为空")
+    @Range(min = 0, max = 1, message = "收藏类型错误,在{min}和{max}之间")
+    private Integer isCollect;
+
+    /**
+     * 收藏类型,1-绘画模型, 2-图像, 3-应用
+     */
+    @NotNull(message = "收藏类型不能为空")
+    @Range(min = 1, max = 3, message = "收藏类型错误,在{min}和{max}之间")
+    private Integer type;
+
+
+}

+ 2 - 2
xyzc-start/src/main/java/com/xyzc/start/domain/bo/BaseUserCollectQueryBo.java → xyzc-start/src/main/java/com/xyzc/start/domain/query/BaseUserCollectQuery.java

@@ -1,4 +1,4 @@
-package com.xyzc.start.domain.bo;
+package com.xyzc.start.domain.query;
 
 import jakarta.validation.constraints.NotEmpty;
 import lombok.Data;
@@ -11,7 +11,7 @@ import org.hibernate.validator.constraints.Range;
  * @version: 1.0
  */
 @Data
-public class BaseUserCollectQueryBo {
+public class BaseUserCollectQuery {
 
     /**
      * 模糊查询

+ 0 - 5
xyzc-start/src/main/java/com/xyzc/start/domain/vo/DrawGraphicsVo.java

@@ -29,11 +29,6 @@ public class DrawGraphicsVo {
     private String useCount;
 
     /**
-     * 使用次数,假
-     */
-    private String useFalseCount;
-
-    /**
      * 图像的地址
      */
     private String ossId;

+ 14 - 5
xyzc-start/src/main/java/com/xyzc/start/mapper/BaseUserCollectMapper.java

@@ -1,9 +1,10 @@
 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;
-import com.xyzc.start.domain.bo.BaseUserCollectQueryBo;
+import com.xyzc.start.domain.query.BaseUserCollectQuery;
 import com.xyzc.start.domain.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -17,7 +18,7 @@ import java.util.List;
  * date: 2024/7/21 17:46
  */
 @Mapper
-public interface BaseUserCollectMapper extends BaseMapper<BaseUserCollect> {
+public interface BaseUserCollectMapper extends BaseMapperPlus<BaseUserCollect, BaseUserCollectVo> {
 
     /**
      * 根据条件查询 绘画模型
@@ -25,7 +26,7 @@ public interface BaseUserCollectMapper extends BaseMapper<BaseUserCollect> {
      * @param bo
      * @return
      */
-    List<BaseUserCollectVo> queryDrawModelByBo(@Param(Const.BO) BaseUserCollectQueryBo bo, @Param("baseUserId") Long baseUserId);
+    List<BaseUserCollectVo> queryDrawModelByBo(@Param(Const.BO) BaseUserCollectQuery bo, @Param("baseUserId") Long baseUserId);
 
     /**
      * 根据条件查询 图像收藏
@@ -33,7 +34,7 @@ public interface BaseUserCollectMapper extends BaseMapper<BaseUserCollect> {
      * @param collectBo
      * @return
      */
-    List<BaseUserCollectVo> queryImageByBo(BaseUserCollectQueryBo collectBo, @Param("baseUserId") Long baseUserId);
+    List<BaseUserCollectVo> queryImageByBo(BaseUserCollectQuery collectBo, @Param("baseUserId") Long baseUserId);
 
 
     /**
@@ -42,7 +43,7 @@ public interface BaseUserCollectMapper extends BaseMapper<BaseUserCollect> {
      * @param collectBo
      * @return
      */
-    List<BaseUserCollectVo> queryAbilityByBo(BaseUserCollectQueryBo collectBo, @Param("baseUserId") Long baseUserId);
+    List<BaseUserCollectVo> queryAbilityByBo(BaseUserCollectQuery collectBo, @Param("baseUserId") Long baseUserId);
 
     /**
      * 根据上一个id,分页查询绘画模型
@@ -103,4 +104,12 @@ public interface BaseUserCollectMapper extends BaseMapper<BaseUserCollect> {
      */
     List<BaseUserCollect> queryCollectAppByUserIdAndAppId(@Param("userId") Long userId, List<Long> appIdList, @Param("type") Integer type);
 
+    /**
+     * 查询该用户是否收藏
+     *
+     * @param userId
+     * @param collectId
+     * @param type
+     */
+    BaseUserCollect queryCollectByIdAndCollectId(Long userId, Long collectId, Integer type);
 }

+ 2 - 2
xyzc-start/src/main/java/com/xyzc/start/service/IHomePageService.java

@@ -1,7 +1,7 @@
 package com.xyzc.start.service;
 
 
-import com.xyzc.start.domain.bo.BaseUserCollectQueryBo;
+import com.xyzc.start.domain.query.BaseUserCollectQuery;
 import com.xyzc.start.domain.vo.*;
 
 import java.util.List;
@@ -26,7 +26,7 @@ public interface IHomePageService {
      * 根据type字段获取更多收藏
      * @return
      */
-    List<BaseUserCollectVo> getMoreApps(BaseUserCollectQueryBo collectBo);
+    List<BaseUserCollectVo> getMoreApps(BaseUserCollectQuery collectBo);
 
 
     /**

+ 8 - 0
xyzc-start/src/main/java/com/xyzc/start/service/IUserInfoService.java

@@ -2,6 +2,7 @@ package com.xyzc.start.service;
 
 
 import com.xyzc.start.domain.bo.AgentCardSecretBo;
+import com.xyzc.start.domain.bo.BaseUserCollectBo;
 import com.xyzc.start.domain.bo.HobbyBo;
 import com.xyzc.start.domain.vo.*;
 
@@ -87,4 +88,11 @@ public interface IUserInfoService {
      * @param appId
      */
     void deduct(Long appId);
+
+    /**
+     * 收藏或取消
+     *
+     * @param collectBo
+     */
+    void collectOrCancel(BaseUserCollectBo collectBo);
 }

+ 2 - 2
xyzc-start/src/main/java/com/xyzc/start/service/impl/HomePageServiceImpl.java

@@ -4,7 +4,7 @@ import com.xyzc.common.web.security.user.SecurityUser;
 import com.xyzc.start.constant.BaseUserConst;
 import com.xyzc.start.constant.MoreTypeConst;
 import com.xyzc.start.domain.BaseUserCollect;
-import com.xyzc.start.domain.bo.BaseUserCollectQueryBo;
+import com.xyzc.start.domain.query.BaseUserCollectQuery;
 import com.xyzc.start.domain.vo.*;
 import com.xyzc.start.mapper.BaseUserCollectMapper;
 import com.xyzc.start.mapper.MerchantMapper;
@@ -129,7 +129,7 @@ public class HomePageServiceImpl implements IHomePageService {
      * @return List<BaseUserCollectVo>
      */
     @Override
-    public List<BaseUserCollectVo> getMoreApps(BaseUserCollectQueryBo collectBo) {
+    public List<BaseUserCollectVo> getMoreApps(BaseUserCollectQuery collectBo) {
         //todo : 需要获取当前用户信息
         Long userId = 123L;
         if (MoreTypeConst.COLLECT_DRAW_MODEL.equals(collectBo.getType())) {

+ 42 - 1
xyzc-start/src/main/java/com/xyzc/start/service/impl/UserInfoServiceImpl.java

@@ -3,9 +3,14 @@ package com.xyzc.start.service.impl;
 import com.xyzc.common.core.exception.ErrorCode;
 import com.xyzc.common.core.exception.ServerException;
 import com.xyzc.common.core.utils.AssertUtils;
+import com.xyzc.common.core.utils.MapstructUtils;
 import com.xyzc.common.web.security.user.SecurityUser;
+import com.xyzc.start.constant.BaseUserConst;
+import com.xyzc.start.domain.App;
 import com.xyzc.start.domain.BaseUser;
+import com.xyzc.start.domain.BaseUserCollect;
 import com.xyzc.start.domain.bo.AgentCardSecretBo;
+import com.xyzc.start.domain.bo.BaseUserCollectBo;
 import com.xyzc.start.domain.bo.HobbyBo;
 import com.xyzc.start.domain.vo.*;
 import com.xyzc.start.mapper.*;
@@ -28,6 +33,7 @@ public class UserInfoServiceImpl implements IUserInfoService {
     private final FuelFlowMapper fuelFlowMapper;
 
     private final AppMapper appMapper;
+    private final BaseUserCollectMapper baseUserCollectMapper;
 
     /**
      * 获取当前用户信息
@@ -161,6 +167,41 @@ public class UserInfoServiceImpl implements IUserInfoService {
     }
 
     /**
+     * 收藏或取消收藏
+     *
+     * @param collectBo 收藏对象
+     */
+    @Override
+    public void collectOrCancel(BaseUserCollectBo collectBo) {
+        BaseUserCollect baseUserCollect = baseUserCollectMapper.queryCollectByIdAndCollectId(SecurityUser.getUserId(), collectBo.getCollectId(), collectBo.getType());
+        if (baseUserCollect == null) {
+            // 查询收藏对象是否存在,不存在抛出异常
+            App app = null;
+            if (BaseUserConst.COLLECT_DRAW_MODEL.equals(collectBo.getType())) {
+
+            } else if (collectBo.getType() == 2) {
+
+            } else if (BaseUserConst.COLLECT_APP.equals(collectBo.getType())) {
+                app = appMapper.selectById(collectBo.getCollectId());
+            }
+            AssertUtils.notNull(app, ErrorCode.COLLECT_NOT_EXIST);
+
+            // 转换用户收藏
+            BaseUserCollect convert = MapstructUtils.convert(collectBo, BaseUserCollect.class);
+            convert.setBaseUserId(SecurityUser.getUserId());
+
+            baseUserCollectMapper.insert(convert);
+            return;
+        }
+
+        // 删除用户收藏
+        baseUserCollectMapper.deleteById(baseUserCollect.getId());
+        // 插入用户收藏
+        baseUserCollect.setId(null);
+        baseUserCollectMapper.insert(baseUserCollect);
+    }
+
+    /**
      * 根据应用id扣除对应的燃料
      *
      * @param appId
@@ -173,7 +214,7 @@ public class UserInfoServiceImpl implements IUserInfoService {
 
         // 然后获取应用对应的ai模型燃料扣除量
         AiModelVo aiModelVo = appMapper.queryAiModelFuel(appId);
-        baseUser.setSurplusFuel(baseUser.getSurplusFuel()-aiModelVo.getConsumeFuelNumber());
+        baseUser.setSurplusFuel(baseUser.getSurplusFuel() - aiModelVo.getConsumeFuelNumber());
 
         // 判断扣除后的用户剩余燃料是否小于0,如果小于0,则抛出异常
         AssertUtils.surplusFuel(baseUser.getSurplusFuel());

+ 20 - 10
xyzc-start/src/main/resources/mapper/WebStart/BaseUserCollectMapper.xml

@@ -49,7 +49,6 @@
         WHERE
             xdm.id = xbuc.collect_id
             AND xbuc.base_user_id = #{userId}
-            AND xbuc.STATUS = 0
         ORDER BY xbuc.create_time DESC
         LIMIT 10
     </select>
@@ -67,7 +66,7 @@
             LEFT JOIN xy_base_user_collect xbuc ON bu.id = xbuc.base_user_id
                 AND xbuc.is_collect = 1 AND type = 3
             LEFT JOIN xy_app xa ON xa.id = xbuc.collect_id
-            WHERE bu.id = #{userId} AND xbuc.STATUS = 0
+            WHERE bu.id = #{userId}
     </select>
 
     <select id="queryDrawGraphicsById" resultType="com.xyzc.start.domain.vo.DrawGraphicsVo">
@@ -76,19 +75,16 @@
             xbuc.base_user_id,
             xbuc.collect_id     AS graphics_id,
             xbuc.is_collect,
-            xbuc.use_time,
-            xg.oss_id,
-            xg.graphics_name,
-            xg.description
+            xbuc.create_time,
+            oss.url             AS oss_id,
+            xg.title
         FROM
             xy_base_user_collect xbuc
         LEFT JOIN xy_draw_graphics xg ON xbuc.collect_id = xg.id
+        LEFT JOIN sys_oss oss ON oss.oss_id = xg.oss_id
         WHERE
             xbuc.base_user_id = #{userId} and xbuc.type = 2
-        <if test = "isCollect != null">
-            AND xbuc.is_collect = #{isCollect}
-        </if>
-        ORDER BY xbuc.use_time DESC
+        ORDER BY xbuc.create_time DESC
         LIMIT 10
     </select>
 
@@ -159,4 +155,18 @@
     </select>
 
 
+    <select id="queryCollectByIdAndCollectId" resultType="com.xyzc.start.domain.BaseUserCollect">
+        select id,
+               base_user_id,
+               collect_id,
+               is_collect,
+               type
+        from xy_base_user_collect
+        where base_user_id = #{userId}
+          and collect_id = #{collectId}
+          and type = #{type}
+
+    </select>
+
+
 </mapper>