Bladeren bron

红德堂-V1.2 中奖记录新增过期时间返回

Long 1 week geleden
bovenliggende
commit
5f59266d3b

+ 4 - 0
fs-service/src/main/java/com/fs/course/domain/FsCourseCheckinReceive.java

@@ -153,4 +153,8 @@ public class FsCourseCheckinReceive implements Serializable {
     // 非数据库字段
     /** 状态 0未使用 1已使用 2已过期 **/
     private Integer useState;
+
+    /** 过期时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date expireTime;
 }

+ 5 - 0
fs-service/src/main/java/com/fs/course/mapper/FsCourseCheckinActivityMapper.java

@@ -22,6 +22,11 @@ public interface FsCourseCheckinActivityMapper {
      */
     FsCourseCheckinActivity selectFsCourseCheckinActivityByActivityId(Long activityId);
 
+    /**
+     * 根据活动ID列表批量查询看课打卡活动
+     */
+    List<FsCourseCheckinActivity> selectFsCourseCheckinActivityByActivityIds(@Param("activityIds") List<Long> activityIds);
+
     /**
      * 查询看课打卡活动列表
      *

+ 25 - 28
fs-service/src/main/java/com/fs/course/service/impl/FsCourseCheckinReceiveServiceImpl.java

@@ -23,6 +23,7 @@ import com.fs.course.service.IFsCourseCheckinReceiveService;
 import com.fs.course.utils.luckyDraw.LotteryUtil;
 import com.fs.course.utils.luckyDraw.Prize;
 import com.fs.his.domain.*;
+import com.fs.his.vo.FsGoodsVO;
 import com.fs.his.enums.FsUserIntegralLogTypeEnum;
 import com.fs.his.mapper.*;
 import com.fs.his.param.WxSendRedPacketParam;
@@ -680,41 +681,37 @@ public class FsCourseCheckinReceiveServiceImpl implements IFsCourseCheckinReceiv
         query.setUserId(userId);
         List<FsCourseCheckinReceive> list = fsCourseCheckinReceiveMapper.selectFsCourseCheckinReceiveList(query);
         if (list == null || list.isEmpty()) {
-            return list;
+            return new ArrayList<>();
         }
 
-        Set<Long> activityIds = list.stream()
-                .filter(r -> r.getActivityId() != null)
+        List<Long> activityIds = list.stream()
                 .map(FsCourseCheckinReceive::getActivityId)
-                .collect(Collectors.toSet());
-
-        Map<Long, String> activityNameMap = new HashMap<>();
-        for (Long activityId : activityIds) {
-            FsCourseCheckinActivity activity = fsCourseCheckinActivityMapper.selectFsCourseCheckinActivityByActivityId(activityId);
-            if (activity != null) {
-                activityNameMap.put(activityId, activity.getActivityName());
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+        if (!activityIds.isEmpty()) {
+            List<FsCourseCheckinActivity> activities = fsCourseCheckinActivityMapper
+                    .selectFsCourseCheckinActivityByActivityIds(new ArrayList<>(activityIds));
+            Map<Long, String> activityNameMap = activities.stream()
+                    .collect(Collectors.toMap(FsCourseCheckinActivity::getActivityId, FsCourseCheckinActivity::getActivityName, (a, b) -> a));
+            for (FsCourseCheckinReceive receive : list) {
+                if (receive.getActivityId() != null) {
+                    receive.setActivityName(activityNameMap.get(receive.getActivityId()));
+                }
             }
         }
 
-        Set<Long> goodsIds = list.stream()
-                .filter(r -> r.getGoodsId() != null)
+        List<Long> goodsIds = list.stream()
                 .map(FsCourseCheckinReceive::getGoodsId)
-                .collect(Collectors.toSet());
-
-        Map<Long, String> goodsNameMap = new HashMap<>();
-        for (Long goodsId : goodsIds) {
-            FsIntegralGoods goods = fsIntegralGoodsMapper.selectFsIntegralGoodsByGoodsId(goodsId);
-            if (goods != null) {
-                goodsNameMap.put(goodsId, goods.getGoodsName());
-            }
-        }
-
-        for (FsCourseCheckinReceive receive : list) {
-            if (receive.getActivityId() != null) {
-                receive.setActivityName(activityNameMap.get(receive.getActivityId()));
-            }
-            if (receive.getGoodsId() != null) {
-                receive.setGoodsName(goodsNameMap.get(receive.getGoodsId()));
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+        if (!goodsIds.isEmpty()) {
+            List<FsGoodsVO> goodsList = fsIntegralGoodsMapper.getFsGoodsVOListByIds(goodsIds);
+            Map<Long, String> goodsNameMap = goodsList.stream()
+                    .collect(Collectors.toMap(FsGoodsVO::getId, FsGoodsVO::getName, (a, b) -> a));
+            for (FsCourseCheckinReceive receive : list) {
+                if (receive.getGoodsId() != null) {
+                    receive.setGoodsName(goodsNameMap.get(receive.getGoodsId()));
+                }
             }
         }
 

+ 8 - 0
fs-service/src/main/resources/mapper/course/FsCourseCheckinActivityMapper.xml

@@ -34,6 +34,14 @@
         where activity_id = #{activityId}
     </select>
 
+    <select id="selectFsCourseCheckinActivityByActivityIds" resultMap="FsCourseCheckinActivityResult">
+        <include refid="selectFsCourseCheckinActivityVo"/>
+        where activity_id in
+        <foreach collection="activityIds" item="activityId" open="(" separator="," close=")">
+            #{activityId}
+        </foreach>
+    </select>
+
     <select id="selectFsCourseCheckinActivityList" parameterType="com.fs.course.domain.FsCourseCheckinActivity"
             resultMap="FsCourseCheckinActivityResult">
         <include refid="selectFsCourseCheckinActivityVo"/>

+ 6 - 1
fs-service/src/main/resources/mapper/course/FsCourseCheckinReceiveMapper.xml

@@ -44,7 +44,12 @@
             resultType="com.fs.course.domain.FsCourseCheckinReceive">
         select r.*,
                o.order_id as grandGiftOrderId,
-               uc.status as useState
+               uc.status as useState,
+               CASE WHEN o.order_id IS NOT NULL
+                    THEN DATE_ADD(o.create_time, INTERVAL 30 DAY)
+                    WHEN uc.id IS NOT NULL
+                    THEN uc.limit_time
+               END as expireTime
         from fs_course_checkin_receive r
         left join fs_reward_goods_order o on o.receive_id = r.receive_id
         left join fs_user_coupon uc on r.user_id = uc.user_id and r.free_coupon_id = uc.id