diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java index cf19521de..45fc4eb20 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java @@ -5,7 +5,10 @@ import java.io.Serializable; import java.util.Date; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; import javax.persistence.*; @@ -18,6 +21,9 @@ import javax.validation.constraints.NotBlank; */ @Table(name = "xfsg_build_information") @Data +@AllArgsConstructor +@NoArgsConstructor +@Builder public class BuildInformationDO { @Id diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java index 1daeb4fb5..acd630ce4 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java @@ -73,6 +73,8 @@ public class BuildInformationServiceImpl implements BuildInformationService { private OrderSysInfoDAO orderSysInfoDAO; @Autowired private BigRegionDAO bigRegionDAO; + @Resource + private AcceptanceInfoDAO acceptanceInfoDAO; @Override @@ -252,7 +254,14 @@ public class BuildInformationServiceImpl implements BuildInformationService { if (StringUtils.isBlank(response.getAddresseeAddress())) { response.setAddresseeAddress(shopInfo.getDetailAddress()); } - + // 不存在的情况下从装修验收中获取 + if (StringUtils.isBlank(response.getDoorPhoto()) || StringUtils.isBlank(response.getInStorePhoto())) { + AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoDAO.selectByShopId(shopId); + if (Objects.nonNull(acceptanceInfoDO)) { + response.setDoorPhoto(StringUtils.isNotBlank(response.getDoorPhoto()) ? response.getDoorPhoto() : acceptanceInfoDO.getShopDoorwayPhoto()); + response.setInStorePhoto(StringUtils.isNotBlank(response.getInStorePhoto()) ? response.getInStorePhoto() : acceptanceInfoDO.getShopInteriorPhoto()); + } + } return response; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationDesignInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationDesignInfoServiceImpl.java index 03b389bef..6bd8c39f0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationDesignInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationDesignInfoServiceImpl.java @@ -1,5 +1,7 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.*; import com.cool.store.entity.*; import com.cool.store.enums.ErrorCodeEnum; @@ -10,14 +12,12 @@ import com.cool.store.exception.ServiceException; import com.cool.store.request.*; import com.cool.store.service.DecorationDesignInfoService; import com.cool.store.utils.poi.StringUtils; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -40,6 +40,8 @@ public class DecorationDesignInfoServiceImpl implements DecorationDesignInfoServ private ShopStageInfoDAO shopStageInfoDAO; @Resource private LineInfoDAO lineInfoDAO; + @Resource + private BuildInformationDAO buildInformationDAO; @Override @Transactional(rollbackFor = Exception.class) @@ -277,8 +279,28 @@ public class DecorationDesignInfoServiceImpl implements DecorationDesignInfoServ if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_122.getShopSubStageStatus())) { shopStageInfoDAO.updateShopStageInfo(shopInfoDO.getId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123); } + // 覆盖建店资料中的门头照和内景照 + BuildInformationDO buildInformation = BuildInformationDO.builder().shopId(request.getShopId()).doorPhoto(buildJson(request.getShopDoorwayPhotoUrl())) + .inStorePhoto(buildJson(request.getShopInteriorPhotoUrl())).build(); + buildInformationDAO.updateByShopIdSelective(buildInformation); return true; } + public String buildJson(List urls) { + if (CollectionUtils.isEmpty(urls)) { + return null; + } + JSONArray jsonArray = new JSONArray(); + for (String url : urls) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("url", url); + jsonObject.put("type", extractImageSuffix(url)); + jsonArray.add(jsonObject); + } + return jsonArray.toJSONString(); + } + public String extractImageSuffix(String url) { + return url.substring(url.lastIndexOf(".") + 1); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java index bf79e356f..ac7bb60cd 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java @@ -273,6 +273,18 @@ public class SyncDataServiceImpl implements SyncDataService { } catch (Exception e) { log.info("getUrl error:{},JSON:{}", e.getMessage(), json); } + return getUrlListByComma(json); + } + + private static List getUrlListByComma(String str) { + if (StringUtils.isBlank(str)) { + return null; + } + try { + return Arrays.asList(str.split(",")); + } catch (Exception e) { + log.info("getUrlListByComma error:{},str:{}", e.getMessage(), str); + } return null; }