package com.oying.modules.pc.store.service.impl; import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.store.domain.StoreQualification; import com.oying.modules.pc.store.domain.dto.StoreCreateRequest; import com.oying.modules.pc.store.service.StoreCreateService; import com.oying.modules.pc.store.service.StoreQualificationService; import com.oying.modules.pc.store.service.StoreService; import com.oying.utils.SecurityUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor public class StoreCreateServiceImpl implements StoreCreateService { private final StoreService storeService; private final StoreQualificationService storeQualificationService; @Transactional(rollbackFor = Exception.class) public void create(StoreCreateRequest request) { Store store = new Store(); BeanUtils.copyProperties(request, store); store.setMerchantId(SecurityUtils.getCurrentUserId()); store.setLogoImageId(request.getLogoUploadFileId()); // store.setCoverImage(request.getCoverUploadFileId()); storeService.create(store); if (request.hasQualificationList()) { List storeQualificationList = request.getQualificationList() .stream() .map(i -> { StoreQualification qualification = new StoreQualification(); qualification.setStoreId(store.getStoreId()); qualification.setQualificationType(i.getType()); qualification.setQualificationName(""); qualification.setQualificationImageId(i.getImageUploadFileId()); return qualification; }) .collect(Collectors.toList()); storeQualificationList.forEach(i -> i.setStoreId(store.getStoreId())); storeQualificationService.batchCreate(storeQualificationList); } } }