Browse Source

fix:bugid:3069,同步更新 expirationTime

李亚非 2 months ago
parent
commit
5ef9a6c65d

+ 26 - 1
alien-store/src/main/java/shop/alien/store/service/impl/LicenseAuditAsyncService.java

@@ -135,8 +135,33 @@ public class LicenseAuditAsyncService {
                     StoreInfo updateStoreInfo = new StoreInfo();
                     updateStoreInfo.setId(storeId);
                     updateStoreInfo.setBusinessLicenseExpirationTime(expiryDate);
+
+                    // 同步更新门店到期时间(expirationTime)
+                    // 门店到期时间 = min(合同到期时间, 营业执照到期时间)
+                    // 由于合同到期时间未单独存储,需要根据旧值推断
+                    StoreInfo currentStore = storeInfoMapper.selectById(storeId);
+                    if (currentStore != null) {
+                        Date currentExpiration = currentStore.getExpirationTime();
+                        Date oldBizExpiration = currentStore.getBusinessLicenseExpirationTime();
+                        if (currentExpiration != null && oldBizExpiration != null
+                                && currentExpiration.before(oldBizExpiration)) {
+                            // 合同到期时间 < 旧营业执照到期时间,说明合同是瓶颈
+                            // 新的门店到期时间 = min(合同到期时间, 新营业执照到期时间)
+                            updateStoreInfo.setExpirationTime(
+                                    expiryDate.before(currentExpiration) ? expiryDate : currentExpiration
+                            );
+                        } else {
+                            // 营业执照是瓶颈(或两者相等、或旧值为空)
+                            // 直接用新的营业执照到期时间更新
+                            updateStoreInfo.setExpirationTime(expiryDate);
+                        }
+                    } else {
+                        updateStoreInfo.setExpirationTime(expiryDate);
+                    }
+
                     storeInfoMapper.updateById(updateStoreInfo);
-                    log.info("营业执照到期时间已更新,门店ID:{},到期时间:{}", storeId, expiryDateStr);
+                    log.info("营业执照到期时间已更新,门店ID:{},营业执照到期:{},门店到期:{}",
+                            storeId, expiryDateStr, updateStoreInfo.getExpirationTime());
                 } catch (Exception e) {
                     log.error("解析营业执照到期时间失败,门店ID:{},expiryDate:{}", storeId, expiryDateStr, e);
                 }