Selaa lähdekoodia

fix: 将“先删后审”改为“审通过后再替换”。
1. 在 StoreInfoServiceImpl 中取消上传时的立即删除操作。
2. 在 LicenseAuditAsyncService 异步审核通过的回调逻辑中,增加“删除旧记录”的原子操作,确保新旧交替在审核通过的一瞬间完成。

李亚非 2 kuukautta sitten
vanhempi
commit
2deb9e583a

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

@@ -331,6 +331,15 @@ public class LicenseAuditAsyncService {
                             .eq(StoreInfo::getId, storeId)
                             .set(StoreInfo::getBusinessLicenseStatus, 1)
                     );
+                    
+                    // 审核通过后,先逻辑删除旧的营业执照记录
+                    LambdaUpdateWrapper<StoreImg> deleteOldImgWrapper = new LambdaUpdateWrapper<>();
+                    deleteOldImgWrapper.eq(StoreImg::getStoreId, storeId)
+                            .eq(StoreImg::getImgType, 14)
+                            .eq(StoreImg::getDeleteFlag, 0)
+                            .set(StoreImg::getDeleteFlag, 1);
+                    storeImgMapper.update(null, deleteOldImgWrapper);
+
                     // 审核通过后,插入store_img表(检查是否已存在,避免重复插入)
                     StoreImg existingImg = storeImgMapper.selectOne(
                             new LambdaQueryWrapper<StoreImg>()

+ 6 - 6
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -6732,12 +6732,12 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
 
     @Override
     public int uploadBusinessLicense(StoreImg storeImg) {
-        // 删除旧的营业执照图片(逻辑删除)
-        LambdaUpdateWrapper<StoreImg> deleteWrapper = new LambdaUpdateWrapper<>();
-        deleteWrapper.eq(StoreImg::getStoreId, storeImg.getStoreId())
-                .eq(StoreImg::getImgType, 14)
-                .set(StoreImg::getDeleteFlag, 1);
-        storeImgMapper.update(null, deleteWrapper);
+        // 不再立即删除旧的营业执照图片,改为在审核通过后再删除
+        // LambdaUpdateWrapper<StoreImg> deleteWrapper = new LambdaUpdateWrapper<>();
+        // deleteWrapper.eq(StoreImg::getStoreId, storeImg.getStoreId())
+        //         .eq(StoreImg::getImgType, 14)
+        //         .set(StoreImg::getDeleteFlag, 1);
+        // storeImgMapper.update(null, deleteWrapper);
         
         // 不再立即插入新的营业执照图片,等审核通过后再插入
         // 插入营业执照历史记录(licenseStatus=1表示营业执照,licenseExecuteStatus=2表示审核中)