|
@@ -11,20 +11,26 @@ import com.tourism.common.core.constant.GlobalDeletedFlag;
|
|
|
import com.tourism.common.core.exception.MyRuntimeException;
|
|
|
import com.tourism.common.core.object.CallResult;
|
|
|
import com.tourism.common.core.object.MyRelationParam;
|
|
|
+import com.tourism.common.core.object.TokenData;
|
|
|
import com.tourism.common.core.util.MyDateUtil;
|
|
|
import com.tourism.common.core.util.MyModelUtil;
|
|
|
+import com.tourism.common.huaweicloud.obs.util.MergeAvatarsFlexUtils;
|
|
|
import com.tourism.common.sequence.wrapper.IdGeneratorWrapper;
|
|
|
import com.tourism.webadmin.app.website.dto.TourCalcTotalAmountParam;
|
|
|
+import com.tourism.webadmin.app.website.dto.TourGroupUserToWebDto;
|
|
|
import com.tourism.webadmin.app.website.dto.TourProjectGroupPurchaseDtoToWebDto;
|
|
|
import com.tourism.webadmin.app.website.dto.TourismBookProjectDto;
|
|
|
import com.tourism.webadmin.back.dao.TourProjectGroupPurchaseMapper;
|
|
|
import com.tourism.webadmin.back.model.TourOrder;
|
|
|
import com.tourism.webadmin.back.model.TourProjectGroupPurchase;
|
|
|
import com.tourism.webadmin.back.model.TourProjectGroupPurchaseDetail;
|
|
|
+import com.tourism.webadmin.back.model.TourUser;
|
|
|
+import com.tourism.webadmin.back.service.TourOrderService;
|
|
|
import com.tourism.webadmin.back.service.TourProjectGroupPurchaseDetailService;
|
|
|
import com.tourism.webadmin.back.service.TourProjectGroupPurchaseService;
|
|
|
import com.tourism.webadmin.back.service.TourismProjectService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -53,6 +59,10 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
|
|
|
private TourismProjectService tourismProjectService;
|
|
|
@Autowired
|
|
|
private TourProjectGroupPurchaseDetailService tourProjectGroupPurchaseDetailService;
|
|
|
+ @Autowired
|
|
|
+ private TourOrderService tourOrderService;
|
|
|
+ @Autowired
|
|
|
+ private MergeAvatarsFlexUtils mergeAvatarsFlexUtils;
|
|
|
|
|
|
|
|
|
* 返回当前Service的主表Mapper对象。
|
|
@@ -174,7 +184,7 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public TourProjectGroupPurchase handleGroupBuy(TourismBookProjectDto paramDTO, TourOrder tourOrder) {
|
|
|
+ public TourProjectGroupPurchase handleGroupBuy(TourismBookProjectDto paramDTO, TourOrder tourOrder){
|
|
|
TourProjectGroupPurchase groupPurchase = this.getById(paramDTO.getGroupId());
|
|
|
if (groupPurchase != null) {
|
|
|
|
|
@@ -185,13 +195,22 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
|
|
|
}else {
|
|
|
throw new MyRuntimeException(ErrorCodeEnum.GROUP_BUYING_DOES_NOT_EXIST.getErrorMessage());
|
|
|
}
|
|
|
-
|
|
|
|
|
|
Integer groupCount = paramDTO.getAdultNumber() + paramDTO.getChildrenNumber();
|
|
|
-
|
|
|
if(groupCount > groupPurchase.getMaxCount()){
|
|
|
throw new MyRuntimeException(ErrorCodeEnum.PEOPLE_EXCCEDS.getErrorMessage());
|
|
|
}
|
|
|
+
|
|
|
+ String usersAvatars = groupPurchase.getUsersAvatars();
|
|
|
+ if(StringUtils.isNotBlank(usersAvatars)){
|
|
|
+ groupPurchase.setUsersAvatars(usersAvatars + "," + TokenData.takeFromRequest().getHeadImageUrl());
|
|
|
+ }else {
|
|
|
+ groupPurchase.setUsersAvatars(TokenData.takeFromRequest().getHeadImageUrl());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> headImageUrlList = Arrays.asList(usersAvatars.split(","));
|
|
|
+ groupPurchase.setSplicingAvatars(this.splicingAvatars(headImageUrlList));
|
|
|
+
|
|
|
|
|
|
|
|
|
if(groupCount + groupPurchase.getNowCount() > groupPurchase.getMaxCount()) {
|
|
@@ -220,6 +239,8 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
|
|
|
tourOrder.setAdultPrice(groupPurchase.getNowPrice());
|
|
|
tourOrder.setChildrenPrice(groupPurchase.getNowChildPrice());
|
|
|
tourOrder.setGroupPurchaseProgressId(Long.valueOf(groupPurchase.getId()));
|
|
|
+
|
|
|
+
|
|
|
return groupPurchase;
|
|
|
}
|
|
|
|
|
@@ -253,11 +274,57 @@ public class TourProjectGroupPurchaseServiceImpl extends BaseService<TourProject
|
|
|
|
|
|
tourOrder.setAdultPrice(groupPurchase.getNowPrice());
|
|
|
tourOrder.setChildrenPrice(groupPurchase.getNowChildPrice());
|
|
|
+
|
|
|
+
|
|
|
+ TourGroupUserToWebDto dto = new TourGroupUserToWebDto();
|
|
|
+ dto.setGroupPurchaseProgressId(groupPurchase.getId());
|
|
|
+ dto.setCurrentOrderId(tourOrder.getId());
|
|
|
+
|
|
|
+ List<TourUser> tourUserList = tourOrderService.getTourUserListByProjectId(dto);
|
|
|
+
|
|
|
+ List<String> headImageUrlList = tourUserList.stream().map(TourUser::getHeadImageUrl).collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ if(headImageUrlList != null && headImageUrlList.size() > 0) {
|
|
|
+
|
|
|
+ groupPurchase.setSplicingAvatars(this.splicingAvatars(headImageUrlList));
|
|
|
+ groupPurchase.setUsersAvatars(String.join(",", headImageUrlList));
|
|
|
+ }
|
|
|
|
|
|
this.updateById(groupPurchase);
|
|
|
return groupPurchase;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ *
|
|
|
+ * @param headImageUrlList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String splicingAvatars(List<String> headImageUrlList) {
|
|
|
+ return mergeAvatarsFlexUtils.mergeAndUploadAvatars(headImageUrlList);
|
|
|
+ }
|
|
|
+
|
|
|
private TourProjectGroupPurchase buildDefaultValue(TourProjectGroupPurchase tourProjectGroupPurchase) {
|
|
|
if (tourProjectGroupPurchase.getId() == null) {
|
|
|
tourProjectGroupPurchase.setId(idGenerator.nextLongId());
|