فهرست منبع

fix: 处理审核状态的时候撤回没用退还库存的问题,修改订单确认单(未完)

luofeiyun 1 هفته پیش
والد
کامیت
a422aa6508

+ 6 - 6
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/api/VoyageApiImpl.java

@@ -2,7 +2,6 @@ package com.yc.ship.module.product.api;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.object.BeanUtils;
 import com.yc.ship.module.product.api.dto.OrderRoomUseDTO;
@@ -166,11 +165,12 @@ public class VoyageApiImpl implements VoyageApi {
                 //初定扣分销商库存
                 //先返还初定扣的库存
                 preCancelReduceStockDistributor(reqDTO.getOrderId(), reqDTO.getType(),reqDTO.getOrderRoomList());
-                if (reqDTO.getOldOrderStatus() != null && reqDTO.getOldOrderStatus().equals(TradeOrderStatusEnum.YD.getStatus()) &&reqDTO.getOldOrderId() != null && !reqDTO.getOldOrderId().equals(reqDTO.getOrderId())) {
-                    preCancelReduceStockDistributor(reqDTO.getOldOrderId(), reqDTO.getType(),reqDTO.getOrderRoomList());
-                }
-                if(reqDTO.getOldOrderStatus() != null && (Objects.equals(reqDTO.getOldOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus())||Objects.equals(reqDTO.getOldOrderStatus(), TradeOrderStatusEnum.YD.getStatus()))){
-                    cancelReduceStockDistributor(reqDTO.getOldOrderId(), reqDTO.getType(),reqDTO.getOrderRoomList());
+                if(reqDTO.getOldOrderId() != null && !reqDTO.getOldOrderId().equals(reqDTO.getOrderId())) {
+                    if(reqDTO.getOldOrderStatus() != null && reqDTO.getOldOrderStatus().equals(TradeOrderStatusEnum.YD.getStatus())) {
+                        preCancelReduceStockDistributor(reqDTO.getOldOrderId(), reqDTO.getType(),reqDTO.getOrderRoomList());
+                    }else {
+                        cancelReduceStockDistributor(reqDTO.getOldOrderId(), reqDTO.getType(),reqDTO.getOrderRoomList());
+                    }
                 }
                 //再去扣确定的库存
                 reduceStockDistributor(reqDTO);

+ 9 - 0
ship-module-resource/ship-module-resource-biz/src/main/java/com/yc/ship/module/resource/dal/dataobject/roommodel/ResourceRoomModelDO.java

@@ -9,6 +9,7 @@ import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.*;
 import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * 资源管理-房型管理 DO
@@ -142,4 +143,12 @@ public class ResourceRoomModelDO extends TenantBaseDO {
      */
     private Integer canSale;
 
+    public String getShowName() {
+        if(StringUtils.isNotBlank(shortName)) {
+            return shortName;
+        }else {
+            return name;
+        }
+    }
+
 }

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderConfirmationVO.java

@@ -87,6 +87,9 @@ public class TradeOrderConfirmationVO {
     @Schema(description = "国籍数量描述")
     private String countryDesc;
 
+    @Schema(description = "使用房型数量描述")
+    private String useRoomTotalDesc;
+
     @Schema(description = "订单汇总信息")
     private TradeOrderTotalVO summary;
 

+ 5 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/order/TradeVisitorDO.java

@@ -77,7 +77,11 @@ public class TradeVisitorDO extends TenantBaseDO {
      * 关联 {@link CredentialTypeEnum}
      */
     @Schema(description = "证件类型")
-    private Integer credentialType;
+        private Integer credentialType;
+
+    @Schema(description = "证件类型名称")
+    @TableField(exist = false)
+    private String credentialTypeName;
     /**
      * 手机号
      */

+ 27 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -28,6 +28,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.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.security.core.LoginUser;
@@ -50,6 +51,7 @@ import com.yc.ship.module.product.api.dto.*;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
 import com.yc.ship.module.product.dal.dataobject.priceroommodeltype.PriceRoomModelTypeDO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
+import com.yc.ship.module.product.dal.dataobject.voyagestockdistribute.VoyageStockDistributeNewDO;
 import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
 import com.yc.ship.module.product.service.priceroommodeltype.PriceRoomModelTypeService;
 import com.yc.ship.module.product.service.voyage.VoyageService;
@@ -57,9 +59,11 @@ import com.yc.ship.module.resource.api.route.RouteApi;
 import com.yc.ship.module.resource.api.route.dto.RouteRespDTO;
 import com.yc.ship.module.resource.api.ship.ShipApi;
 import com.yc.ship.module.resource.api.ship.dto.ShipRespDTO;
+import com.yc.ship.module.resource.dal.dataobject.roommodel.ResourceRoomModelDO;
 import com.yc.ship.module.resource.dal.dataobject.route.ResourceRouteDO;
 import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
 import com.yc.ship.module.resource.dal.mysql.route.ResourceRouteMapper;
+import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
 import com.yc.ship.module.resource.service.ship.ResourceShipService;
 import com.yc.ship.module.system.api.dict.DictDataApi;
 import com.yc.ship.module.system.api.dict.dto.DictDataRespDTO;
@@ -145,6 +149,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     private RouteApi routeApi;
     @Resource
     private ShipApi shipApi;
+
+    @Resource
+    private ResourceRoomModelService resourceRoomModelService;
     @Resource
     private MemberUserApi memberUserApi;
     @Resource
@@ -1835,6 +1842,23 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         });
         orderRespNewVO.setCountryDesc(String.join(",", countryDesList));
 
+        List<TradeOrderRoomModelDO> tradeOrderRoomModelDOS = tradeOrderRoomModelMapper.selectListByOrderId(tradeOrderDO.getId());
+        Map<String, Double> useNumMap = tradeOrderRoomModelDOS.stream().collect(Collectors.groupingBy(item -> item.getRoomModelId() + "_" + item.getFloor(), Collectors.summingDouble(TradeOrderRoomModelDO::getUseRoomNum)));
+        List<Long> roomModelIds = convertList(tradeOrderRoomModelDOS, TradeOrderRoomModelDO::getRoomModelId);
+        List<ResourceRoomModelDO> roomModelRespVOS = resourceRoomModelService.getList(roomModelIds);
+        Map<Long, ResourceRoomModelDO> roomModelDOMap = CollectionUtils.convertMap(roomModelRespVOS, ResourceRoomModelDO::getId);
+        List<String> useRoomDesList = new ArrayList<>();
+        useNumMap.keySet().stream().forEach(key -> {
+            Long roomModelId = Long.valueOf(key.split("_")[0]);
+            Integer floor = Integer.valueOf(key.split("_")[1]);
+            ResourceRoomModelDO roomModelDO = roomModelDOMap.get(roomModelId);
+            if(roomModelDO != null) {
+                useRoomDesList.add(useNumMap.get(key) + roomModelDO.getShowName()+"("+floor+"F)");
+            }else {
+                useRoomDesList.add(useNumMap.get(key) + "已删除房型" + "("+floor+"F)");
+            }
+        });
+        orderRespNewVO.setUseRoomTotalDesc(String.join(",", useRoomDesList));
 
         if (tradeOrderDO.getPayStatus() == 0) {
             tradeOrderDO.setPayAmount(BigDecimal.ZERO);
@@ -1942,6 +1966,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             });
         }
         orderData.put("countryDes", orderConfirmation.getCountryDesc());
+        orderData.put("useRoomTotalDesc", orderConfirmation.getUseRoomTotalDesc());
         TradeOrderTotalVO summary = orderConfirmation.getSummary();
         if (summary != null) {
             orderData.put("roomModelDes", summary.getUseRoomTotalNum());
@@ -1951,7 +1976,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
 
         orderData.put("totalMoney", totalMoney);
         orderData.put("creatorName", orderConfirmation.getCreatorName());
-        orderData.put("firstDate", DateUtil.format(org.apache.commons.lang3.time.DateUtils.addDays(Date.from(orderConfirmation.getUpdateTime().atZone(ZoneOffset.ofHours(8)).toInstant()), 8), "yyyy-MM-dd"));
+        orderData.put("firstDate", DateUtil.format(org.apache.commons.lang3.time.DateUtils.addDays(Date.from(orderConfirmation.getUpdateTime().atZone(ZoneOffset.ofHours(8)).toInstant()), 7), "yyyy-MM-dd"));
         orderData.put("lastDate", DateUtil.format(org.apache.commons.lang3.time.DateUtils.addDays(Date.from(voyage.getStartTime().atZone(ZoneOffset.ofHours(8)).toInstant()), -21), "yyyy-MM-dd"));
         orderData.put("today", DateUtil.format(new Date(), "yyyy-MM-dd"));
 
@@ -1966,6 +1991,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             item.put("nationality", StringUtils.isEmpty(tradeVisitorDO.getNationalityName()) ? "" : tradeVisitorDO.getNationalityName());
             item.put("gender", (tradeVisitorDO.getGender() == null || tradeVisitorDO.getGender() == 0) ? "女" : "男");
             item.put("dob", StringUtils.isEmpty(tradeVisitorDO.getBirthday()) ? "" : tradeVisitorDO.getBirthday());
+            item.put("credentialTypeName", DictFrameworkUtils.getDictDataLabel("", tradeVisitorDO.getCredentialType()));
             item.put("idno", StringUtils.isEmpty(tradeVisitorDO.getCredentialNo()) ? "" : tradeVisitorDO.getCredentialNo());
             tradeVisitorData.add(item);
         }

BIN
ship-module-trade/ship-module-trade-biz/src/main/resources/templates/confirmation_template.xlsx