|
|
@@ -30,6 +30,7 @@ import com.yc.ship.framework.common.pojo.PageResult;
|
|
|
import com.yc.ship.framework.common.util.collection.CollectionUtils;
|
|
|
import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
import com.yc.ship.framework.common.util.object.ObjectUtils;
|
|
|
+import com.yc.ship.framework.dict.core.DictFrameworkUtils;
|
|
|
import com.yc.ship.framework.ip.core.utils.AreaUtils;
|
|
|
import com.yc.ship.framework.security.core.LoginUser;
|
|
|
import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
@@ -2101,6 +2102,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", auditType).set("order_status", TradeOrderStatusEnum.TRANSFER).set("audit_status", 1).eq("id", orderId));
|
|
|
}
|
|
|
if (!tradeOrderRoomDOList.isEmpty()) {
|
|
|
+ tradeOrderRoomModelMapper.deleteByOrderId(orderId);
|
|
|
tradeOrderRoomModelMapper.insertBatch(tradeOrderRoomDOList);
|
|
|
}
|
|
|
OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
|
|
|
@@ -2373,12 +2375,6 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
list.add(tradeOrderRoomModelDO);
|
|
|
});
|
|
|
|
|
|
- tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
|
|
|
- .set(TradeOrderRoomModelDO::getDeleted, 1)
|
|
|
- .set(TradeOrderRoomModelDO::getUpdateTime, updateTime)
|
|
|
- .eq(TradeOrderRoomModelDO::getOrderId, orderId)
|
|
|
- );
|
|
|
-
|
|
|
if (!Objects.equals(shipTradeOrderCreateReqVO.getAmount(), tradeOrderDO.getAmount()) && loginUser.getDistributorId() != null) {
|
|
|
auditType = 4;
|
|
|
}
|
|
|
@@ -2391,7 +2387,10 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
msg = "修改提交成功,等待管理员审核";
|
|
|
}
|
|
|
|
|
|
- tradeOrderRoomModelMapper.insertBatch(list);
|
|
|
+ tradeOrderRoomModelMapper.deleteByOrderId(orderId);
|
|
|
+ if(list != null && list.size() > 0) {
|
|
|
+ tradeOrderRoomModelMapper.insertBatch(list);
|
|
|
+ }
|
|
|
|
|
|
OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
|
|
|
return CommonResult.success(respVO,msg);
|
|
|
@@ -2518,24 +2517,31 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
public TradeOrderConfirmationVO getOrderConfirmation(Long id) {
|
|
|
TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(id);
|
|
|
TradeOrderConfirmationVO orderRespNewVO = BeanUtils.toBean(tradeOrderDO, TradeOrderConfirmationVO.class);
|
|
|
+ // 获取最新的审核人
|
|
|
+ TradeOrderAuditDO tradeOrderAuditDO = tradeOrderAuditMapper.selectNewAuditorByOrderNo(tradeOrderDO.getOrderNo());
|
|
|
+ AdminUserRespDTO auditor = adminUserApi.getUser(tradeOrderAuditDO.getAuditUser());
|
|
|
+ if (auditor != null) {
|
|
|
+ orderRespNewVO.setAuditorName(auditor.getNickname());
|
|
|
+ }
|
|
|
|
|
|
//设置订单登记人姓名
|
|
|
AdminUserRespDTO user = adminUserApi.getUser(orderRespNewVO.getCreator());
|
|
|
if (user != null) {
|
|
|
orderRespNewVO.setCreatorName(user.getNickname());
|
|
|
}
|
|
|
- //设置房型数据
|
|
|
- List<TradeOrderRoomModelDO> roomModelDoList = tradeOrderRoomModelMapper.selectListByOrderId(id);
|
|
|
- List<TradeOrderRoomModelBaseVO> roomModelList = BeanUtils.toBean(roomModelDoList, TradeOrderRoomModelBaseVO.class);
|
|
|
- Map<Long, List<TradeOrderRoomModelBaseVO>> roomModelMap = CollectionUtils.convertMultiMap(roomModelList, TradeOrderRoomModelBaseVO::getCountryId);
|
|
|
- //设置国籍数据
|
|
|
- List<TradeOrderCountryDO> countryDoList = tradeOrderCountryMapper.selectListByOrderId(id);
|
|
|
- List<TradeOrderCountryBaseVO> countryList = BeanUtils.toBean(countryDoList, TradeOrderCountryBaseVO.class);
|
|
|
- countryList.forEach(item -> {
|
|
|
- item.setCountryName(AreaUtils.format2Str(item.getCountryId()));
|
|
|
- item.setRoomModelList(roomModelMap.get(item.getId()));
|
|
|
- });
|
|
|
+ //设置入住房型国家信息信息
|
|
|
+ List<TradeOrderConfirmationCountryRespVO> countryList = tradeOrderMapper.selectConfirmationCountry(id);
|
|
|
orderRespNewVO.setCountryList(countryList);
|
|
|
+ List<String> countryDesList = new ArrayList<>();
|
|
|
+ Map<String, Integer> countryMap = countryList.stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ TradeOrderConfirmationCountryRespVO::getNationalityName,
|
|
|
+ Collectors.summingInt(TradeOrderConfirmationCountryRespVO::getNum)
|
|
|
+ ));
|
|
|
+ countryMap.keySet().stream().forEach(key -> {
|
|
|
+ countryDesList.add(countryMap.get(key) + key);
|
|
|
+ });
|
|
|
+ orderRespNewVO.setCountryDesc(String.join(",", countryDesList));
|
|
|
|
|
|
|
|
|
if (tradeOrderDO.getPayStatus() == 0) {
|
|
|
@@ -2636,35 +2642,37 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
|
|
|
// 房型信息
|
|
|
List<Map<String, Object>> roomData = new ArrayList<>();
|
|
|
- List<TradeOrderCountryBaseVO> countryList = orderConfirmation.getCountryList();
|
|
|
- StringBuilder countryDes = new StringBuilder();
|
|
|
- AtomicReference<Double> roomModelDes = new AtomicReference<>(0.0d);
|
|
|
+ List<TradeOrderConfirmationCountryRespVO> countryList = orderConfirmation.getCountryList();
|
|
|
if (countryList != null) {
|
|
|
- List<String> countryDesList = new ArrayList<>();
|
|
|
-
|
|
|
- countryList.forEach(item -> {
|
|
|
- countryDesList.add((item.getAdultNum() + item.getChildNum() + item.getBabyNum()) + item.getCountryName());
|
|
|
-
|
|
|
- List<TradeOrderRoomModelBaseVO> roomModelList = item.getRoomModelList();
|
|
|
- roomModelList.forEach(r -> {
|
|
|
- roomModelDes.updateAndGet(v -> (double) (v + r.getUseRoomNum()));
|
|
|
-
|
|
|
- Map<String, Object> room = new HashMap<>();
|
|
|
- room.put("roomModelName", r.getRoomModelName() + "(" + r.getFloor() + "F)");
|
|
|
- room.put("countryName", item.getCountryName());
|
|
|
- room.put("personTypeDes", getPersonTypeDes(r));
|
|
|
- room.put("personTypeDesEn", getPersonTypeDesEn(r));
|
|
|
- room.put("qty", getPersonNum(r));
|
|
|
- room.put("price", r.getPrice());
|
|
|
- room.put("realMoney", r.getRealMoney());
|
|
|
- roomData.add(room);
|
|
|
- });
|
|
|
-
|
|
|
+ countryList.stream().forEach(item -> {
|
|
|
+ String roomModelName = item.getRoomModelName();
|
|
|
+ if(item.getFloor() == null) {
|
|
|
+ if("leader".equals(item.getType())) {
|
|
|
+ roomModelName = roomModelName + "(领队)";
|
|
|
+ }else if("with".equals(item.getType())) {
|
|
|
+ roomModelName = roomModelName + "(陪同)";
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ roomModelName = roomModelName + "(" + item.getFloor() + "F)";
|
|
|
+ }
|
|
|
+ Map<String, Object> room = new HashMap<>();
|
|
|
+ room.put("roomModelName", roomModelName);
|
|
|
+ room.put("countryName", item.getNationalityName());
|
|
|
+ room.put("personTypeDes", getPersonTypeDes1(item.getType()));
|
|
|
+ room.put("personTypeDesEn", getPersonTypeDesEn1(item.getType()));
|
|
|
+ room.put("qty", item.getNum());
|
|
|
+ room.put("price", item.getActualPrice());
|
|
|
+ room.put("realMoney", item.getActualPrice().multiply(new BigDecimal(item.getNum())));
|
|
|
+ roomData.add(room);
|
|
|
});
|
|
|
- countryDes.append(String.join(",", countryDesList));
|
|
|
}
|
|
|
- orderData.put("countryDes", countryDes.toString());
|
|
|
- orderData.put("roomModelDes", roomModelDes.get());
|
|
|
+ orderData.put("countryDes", orderConfirmation.getCountryDesc());
|
|
|
+ TradeOrderTotalVO summary = orderConfirmation.getSummary();
|
|
|
+ if(summary != null) {
|
|
|
+ orderData.put("roomModelDes", summary.getUseRoomTotalNum());
|
|
|
+ }else {
|
|
|
+ orderData.put("roomModelDes", 0);
|
|
|
+ }
|
|
|
|
|
|
orderData.put("totalMoney", totalMoney);
|
|
|
orderData.put("creatorName", orderConfirmation.getCreatorName());
|
|
|
@@ -2723,6 +2731,43 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
return String.join("/", des);
|
|
|
}
|
|
|
|
|
|
+ private String getPersonTypeDes1(String type) {
|
|
|
+ String des = "";
|
|
|
+ switch (type) {
|
|
|
+ case "adultTake": case "adultPlus": case "leader": case "with":
|
|
|
+ des = "成人";
|
|
|
+ break;
|
|
|
+ case "childTake": case "childPlus": case "childNonTake":
|
|
|
+ des = "儿童";
|
|
|
+ break;
|
|
|
+ case "babyTake": case "babyPlus": case "babyNonTake":
|
|
|
+ des = "婴儿";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ des = "成人";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return des;
|
|
|
+ }
|
|
|
+ private String getPersonTypeDesEn1(String type) {
|
|
|
+ String des = "";
|
|
|
+ switch (type) {
|
|
|
+ case "adultTake": case "adultPlus": case "leader": case "with":
|
|
|
+ des = "Adults";
|
|
|
+ break;
|
|
|
+ case "childTake": case "childPlus": case "childNonTake":
|
|
|
+ des = "Children";
|
|
|
+ break;
|
|
|
+ case "babyTake": case "babyPlus": case "babyNonTake":
|
|
|
+ des = "Infants";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ des = "Adults";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return des;
|
|
|
+ }
|
|
|
+
|
|
|
private String getPersonTypeDesEn(TradeOrderRoomModelBaseVO roomModel) {
|
|
|
List<String> des = new ArrayList<>();
|
|
|
int adultNum = (roomModel.getAdultAloneNum() + roomModel.getAdultTakeNum() + roomModel.getAdultPlusNum());
|