Forráskód Böngészése

BUGFix:门店头图:上传头图保存后,不显示弹窗

panzhilin 1 napja
szülő
commit
c5c53a612f

+ 43 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreImgSaveResultVo.java

@@ -0,0 +1,43 @@
+package shop.alien.entity.store.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 门店图片保存结果VO
+ * 用于返回保存操作的结果和头图审核状态
+ *
+ * @author system
+ * @since 2024-12-27
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "StoreImgSaveResultVo", description = "门店图片保存结果VO")
+public class StoreImgSaveResultVo {
+
+    /**
+     * 操作结果消息
+     */
+    @ApiModelProperty(value = "操作结果消息", example = "保存成功")
+    private String message;
+
+    /**
+     * 头图审核状态
+     * 1: 审核通过
+     * 2: 审核不通过
+     * null: 非头图操作,无需返回状态
+     */
+    @ApiModelProperty(value = "头图审核状态(1:审核通过, 2:审核不通过, null:非头图操作)", example = "1")
+    private Integer headImgStatus;
+
+    /**
+     * 是否为头图操作
+     */
+    @ApiModelProperty(value = "是否为头图操作", example = "true")
+    private Boolean isHeadImage;
+}
+

+ 2 - 1
alien-store/src/main/java/shop/alien/store/controller/StoreImgController.java

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.StoreImg;
 import shop.alien.entity.store.vo.StoreImgInfoVo;
+import shop.alien.entity.store.vo.StoreImgSaveResultVo;
 import shop.alien.entity.store.vo.StoreImgTypeVo;
 import shop.alien.store.service.StoreImgService;
 
@@ -65,7 +66,7 @@ public class StoreImgController {
     @ApiOperation("新增/修改/删除图片")
     @ApiOperationSupport(order = 4)
     @PostMapping("/saveOrUpdateImg")
-    public R<String> saveOrUpdateImg(@RequestBody StoreImgInfoVo storeImgInfoVo) {
+    public R<StoreImgSaveResultVo> saveOrUpdateImg(@RequestBody StoreImgInfoVo storeImgInfoVo) {
         log.info("StoreImgController.saveOrUpdateImg?storeImgInfoVo={}", storeImgInfoVo);
         // 调用Service层处理业务逻辑
         return storeImgService.saveOrUpdateImgWithInfo(storeImgInfoVo);

+ 3 - 2
alien-store/src/main/java/shop/alien/store/service/StoreImgService.java

@@ -4,6 +4,7 @@ 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.StoreImgInfoVo;
+import shop.alien.entity.store.vo.StoreImgSaveResultVo;
 import shop.alien.entity.store.vo.StoreImgTypeVo;
 
 import java.util.List;
@@ -85,7 +86,7 @@ public interface StoreImgService extends IService<StoreImg> {
      * 包括:删除旧图片、更新图片模式、设置图片描述、异步提取颜色、更新审核状态等
      *
      * @param storeImgInfoVo 图片信息VO
-     * @return 操作结果
+     * @return 操作结果,包含消息和头图审核状态
      */
-    R<String> saveOrUpdateImgWithInfo(StoreImgInfoVo storeImgInfoVo);
+    R<StoreImgSaveResultVo> saveOrUpdateImgWithInfo(StoreImgInfoVo storeImgInfoVo);
 }

+ 24 - 9
alien-store/src/main/java/shop/alien/store/service/impl/StoreImgServiceImpl.java

@@ -12,10 +12,12 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import shop.alien.entity.result.R;
+import shop.alien.entity.result.ResultCode;
 import shop.alien.entity.store.LifeUser;
 import shop.alien.entity.store.StoreImg;
 import shop.alien.entity.store.StoreOfficialAlbum;
 import shop.alien.entity.store.vo.StoreImgInfoVo;
+import shop.alien.entity.store.vo.StoreImgSaveResultVo;
 import shop.alien.entity.store.vo.StoreImgTypeVo;
 import shop.alien.mapper.LifeUserMapper;
 import shop.alien.mapper.StoreImgMapper;
@@ -218,16 +220,16 @@ public class StoreImgServiceImpl extends ServiceImpl<StoreImgMapper, StoreImg> i
      * 包括:删除旧图片、更新图片模式、设置图片描述、异步提取颜色、更新审核状态等
      *
      * @param storeImgInfoVo 图片信息VO
-     * @return 操作结果
+     * @return 操作结果,包含消息和头图审核状态
      */
     @Override
-    public R<String> saveOrUpdateImgWithInfo(StoreImgInfoVo storeImgInfoVo) {
+    public R<StoreImgSaveResultVo> saveOrUpdateImgWithInfo(StoreImgInfoVo storeImgInfoVo) {
         log.info("StoreImgServiceImpl.saveOrUpdateImgWithInfo?storeImgInfoVo={}", storeImgInfoVo);
         List<StoreImg> storeImgList = storeImgInfoVo.getStoreImgList();
         
         // 参数校验
         if (storeImgInfoVo.getStoreId() == null || storeImgInfoVo.getImgType() == null) {
-            return R.fail("失败");
+            return R.fail("参数错误");
         }
         
         // 判断是否是头图(20:单图模式, 21:多图模式)
@@ -325,45 +327,58 @@ public class StoreImgServiceImpl extends ServiceImpl<StoreImgMapper, StoreImg> i
                 }
                 
                 // 如果是头图,设置审核状态为通过(1),前端已完成门头图识别
+                Integer headImgStatus = null;
                 if (isHeadImage) {
                     // 有头图,设置为审核通过状态(1)
                     try {
                         storeInfoService.updateHeadImgStatus(storeImgInfoVo.getStoreId(), 1);
+                        headImgStatus = 1;
                         log.info("头图保存成功,设置审核状态为通过,storeId={}", storeImgInfoVo.getStoreId());
                     } catch (Exception e) {
                         log.error("更新头图审核状态失败,storeId={}, error={}", 
                                 storeImgInfoVo.getStoreId(), e.getMessage(), e);
+                        // 即使更新状态失败,也返回成功,但状态为null
                     }
                 }
-                if (null != id) {
-                    return R.success("修改成功");
-                }
-                return R.success("新增成功");
+                
+                // 构建返回结果
+                String message = (null != id) ? "修改成功" : "新增成功";
+                StoreImgSaveResultVo resultVo = new StoreImgSaveResultVo(message, headImgStatus, isHeadImage);
+                return R.data(resultVo);
             } else {
                 // 图片保存失败,如果是头图,设置审核状态为不通过
+                Integer headImgStatus = null;
                 if (isHeadImage) {
                     try {
                         storeInfoService.updateHeadImgStatus(storeImgInfoVo.getStoreId(), 2);
+                        headImgStatus = 2;
                         log.info("图片保存失败,更新头图审核状态为不通过,storeId={}", storeImgInfoVo.getStoreId());
                     } catch (Exception e) {
                         log.error("更新头图审核状态失败,storeId={}, error={}", 
                                 storeImgInfoVo.getStoreId(), e.getMessage(), e);
                     }
                 }
+                // 保存失败,返回失败结果(但仍返回状态信息供前端使用)
+                StoreImgSaveResultVo resultVo = new StoreImgSaveResultVo("保存失败", headImgStatus, isHeadImage);
+                return R.data(ResultCode.FAILURE.getCode(), resultVo, "保存失败");
             }
         } else {
             // 如果是头图且没有图片,设置审核状态为不通过
+            Integer headImgStatus = null;
             if (isHeadImage) {
                 try {
                     storeInfoService.updateHeadImgStatus(storeImgInfoVo.getStoreId(), 2);
+                    headImgStatus = 2;
+                    log.info("头图为空,设置审核状态为不通过,storeId={}", storeImgInfoVo.getStoreId());
                 } catch (Exception e) {
                     log.error("更新头图审核状态失败,storeId={}, error={}", 
                             storeImgInfoVo.getStoreId(), e.getMessage(), e);
                 }
             }
-            return R.success("保存成功");
+            // 构建返回结果
+            StoreImgSaveResultVo resultVo = new StoreImgSaveResultVo("保存成功", headImgStatus, isHeadImage);
+            return R.data(resultVo);
         }
-        return R.fail("失败");
     }
 
     /**