jyc 1 місяць тому
батько
коміт
af452c9ed0

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/LifeUser.java

@@ -109,4 +109,8 @@ public class LifeUser implements Serializable {
     @TableField(value = "logout_time", fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date logoutTime;
+
+    @ApiModelProperty(value = "打卡广场小人图片id")
+    @TableField("clock_img_id")
+    private Integer clockImgId;
 }

+ 9 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreImgController.java

@@ -79,4 +79,13 @@ public class StoreImgController {
     public R<List<StoreImg>> getCarouselImage() {
         return R.data(storeImgService.getCarouselImage());
     }
+
+    @ApiOperation("获取用户打卡广场小人图片")
+    @ApiOperationSupport(order = 6)
+    @ApiImplicitParams({@ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", paramType = "query", required = true)})
+    @GetMapping("/getUserClockImg")
+    public R<String> getUserClockImg(Integer userId) {
+        log.info("StoreImgController.getUserClockImg?userId={}", userId);
+        return storeImgService.getUserClockImg(userId);
+    }
 }

+ 9 - 0
alien-store/src/main/java/shop/alien/store/service/StoreImgService.java

@@ -1,6 +1,7 @@
 package shop.alien.store.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreImg;
 import shop.alien.entity.store.vo.StoreImgTypeVo;
 
@@ -44,4 +45,12 @@ public interface StoreImgService extends IService<StoreImg> {
      * @return
      */
     List<String> getUrl(String id, Integer imgType);
+
+    /**
+     * 获取用户打卡广场小人图片
+     *
+     * @param userId 用户ID,用于标识和获取特定用户的信息
+     * @return
+     */
+    R<String> getUserClockImg(Integer userId);
 }

+ 46 - 0
alien-store/src/main/java/shop/alien/store/service/impl/StoreImgServiceImpl.java

@@ -2,12 +2,16 @@ package shop.alien.store.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import shop.alien.entity.result.R;
+import shop.alien.entity.store.LifeUser;
 import shop.alien.entity.store.StoreImg;
 import shop.alien.entity.store.vo.StoreImgTypeVo;
+import shop.alien.store.mapper.LifeUserMapper;
 import shop.alien.store.mapper.StoreImgMapper;
 import shop.alien.store.service.StoreImgService;
 
@@ -28,6 +32,7 @@ import java.util.stream.Collectors;
 public class StoreImgServiceImpl extends ServiceImpl<StoreImgMapper, StoreImg> implements StoreImgService {
 
     private final StoreImgMapper storeImgMapper;
+    private final LifeUserMapper lifeUserMapper;
 
     /**
      * 获取门店图片
@@ -92,4 +97,45 @@ public class StoreImgServiceImpl extends ServiceImpl<StoreImgMapper, StoreImg> i
 
     }
 
+    /**
+     * 获取用户打卡广场小人图片
+     *
+     * @param userId 用户ID,用于标识和获取特定用户的信息
+     * @return
+     */
+    @Override
+    public R<String> getUserClockImg(Integer userId) {
+        // 查询用户信息
+        LifeUser lifeUser = lifeUserMapper.selectById(userId);
+
+        // 判断用户是否存在
+        if (ObjectUtils.isNotEmpty(lifeUser)) {
+            // 检查用户是否设置了自定义打卡图片
+            if (ObjectUtils.isNotEmpty(lifeUser.getClockImgId())) {
+                // 查询用户设置的自定义图片
+                StoreImg storeImg = storeImgMapper.selectById(lifeUser.getClockImgId());
+                // 返回自定义图片URL或提示素材缺失
+                if (ObjectUtils.isNotEmpty(storeImg)) {
+                    return R.data(storeImg.getImgUrl());
+                } else {
+                    return R.fail("素材缺失");
+                }
+            } else {
+                /*// 查询默认打卡图片
+                StoreImg storeImg = storeImgMapper.selectOne(new QueryWrapper<StoreImg>().eq("img_type", 17).orderByAsc("img_sort").last("limit 1"));
+                // 设置默认图片给用户并返回图片URL或提示素材缺失
+                if (ObjectUtils.isNotEmpty(storeImg)) {
+                    lifeUser.setClockImgId(storeImg.getId());
+                    lifeUserMapper.updateById(lifeUser);
+                    return R.data(storeImg.getImgUrl());
+                } else {
+                    return R.fail("素材缺失");
+                }*/
+                return R.data("");
+            }
+        } else {
+            // 提示用户不存在
+            return R.fail("用户不存在");
+        }
+    }
 }