Parcourir la source

Merge remote-tracking branch 'origin/main'

lishiqiang il y a 1 semaine
Parent
commit
764a41fdc6

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

@@ -87,6 +87,7 @@ public class VoyageApiImpl implements VoyageApi {
     @Override
     @Transactional(propagation = Propagation.NESTED,rollbackFor = Exception.class)
     public void preReduceStock(ReduceStockReqDTO reqDTO) {
+        log.info("开始初定订单扣库存:请求参数:{}", JSONObject.toJSONString(reqDTO));
         //TODO: 当前阶段不考虑门店库存
         log.info("开始初定订单扣库存:订单ID:{}old订单ID:{}", reqDTO.getOrderId(), reqDTO.getOldOrderId());
 
@@ -125,7 +126,7 @@ public class VoyageApiImpl implements VoyageApi {
     @Transactional(propagation = Propagation.NESTED,rollbackFor = Exception.class)
     public void preCancelReduceStock(ReduceStockReqDTO reqDTO) {
         //TODO: 当前阶段不考虑门店库存
-
+        log.info("开始初定订单还库存:请求参数:{}", JSONObject.toJSONString(reqDTO));
         Long voyageId = reqDTO.getVoyageId();
         //现在给整个航次的库存加锁
         String lockKey = String.format(ProductRedisKeyConstants.STOCK_REDIS_KEY_PREFIX, voyageId);
@@ -155,7 +156,7 @@ public class VoyageApiImpl implements VoyageApi {
     @Transactional(propagation = Propagation.NESTED,rollbackFor = Exception.class)
     public void reduceStock(ReduceStockReqDTO reqDTO) {
         //TODO: 当前阶段不考虑门店库存
-
+        log.info("开始确定订单扣库存:请求参数:{}", JSONObject.toJSONString(reqDTO));
         Long voyageId = reqDTO.getVoyageId();
         //现在给整个航次的库存加锁
         String lockKey = String.format(ProductRedisKeyConstants.STOCK_REDIS_KEY_PREFIX, voyageId);
@@ -195,6 +196,7 @@ public class VoyageApiImpl implements VoyageApi {
     @Override
     @Transactional(propagation = Propagation.NESTED,rollbackFor = Exception.class)
     public void cancelReduceStock(ReduceStockReqDTO reqDTO) {
+        log.info("开始确定订单还库存:请求参数:{}", JSONObject.toJSONString(reqDTO));
         //TODO: 当前阶段不考虑门店库存
         Long voyageId = reqDTO.getVoyageId();
         //现在给整个航次的库存加锁

+ 5 - 0
ship-module-resource/ship-module-resource-api/src/main/java/com/yc/ship/module/resource/api/ship/dto/ShipRespDTO.java

@@ -62,4 +62,9 @@ public class ShipRespDTO {
      *
      */
     private Integer status;
+
+    /**
+     * 封面图
+     */
+    private String img;
 }

+ 8 - 51
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/otc/AppOtcTradeOrderController.java

@@ -12,12 +12,17 @@ import com.yc.ship.framework.security.core.annotations.PreAuthenticated;
 import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
 import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
 import com.yc.ship.module.product.service.voyage.VoyageService;
+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.trade.controller.admin.order.vo.order.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.TradeRefundCalculateRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.TradeRefundCreateReqVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.TradeRefundCreateRespVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespNewVO;
 import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderTotalDO;
@@ -71,21 +76,10 @@ public class AppOtcTradeOrderController {
     @Resource
     private TradeOrderService tradeOrderService;
 
-    @Resource
-    private TradeOrderTotalService tradeOrderTotalService;
-
-    @Resource
-    private TradeOrderCountryService tradeOrderCountryService;
-
-    @Resource
-    private VoyageService voyageService;
-
-    @Resource
-    private ShipApi shipApi;
-
     @Resource
     private OtcTradeOrderService otcTradeOrderService;
 
+
     @RequestDecryption
     @PostMapping("/miniApp/createOrder")
     @Operation(summary = "小程序创建订单")
@@ -116,47 +110,10 @@ public class AppOtcTradeOrderController {
     @Operation(summary = "小程序-订单列表[分页]", description = "根据条件查询订单列表")
     @PreAuthenticated
     @OperateLog(type = API)
-    public CommonResult<PageResult<TradeOrderRespNewVO>> orderList(@Valid @RequestBody TradeOrderPageReqVO pageReqVO) {
+    public CommonResult<PageResult<AppTradeOrderRespNewVO>> orderList(@Valid @RequestBody AppTradeOrderPageReqNewVO pageReqVO) {
         Long loginUserId = getLoginUserId();
         pageReqVO.setMemberId(String.valueOf(loginUserId));
-        PageResult<TradeOrderRespVO> platOrderPage = tradeOrderService.getPlatOrderPage(pageReqVO);
-        PageResult<TradeOrderRespNewVO> page = BeanUtils.toBean(platOrderPage, TradeOrderRespNewVO.class);
-        List<TradeOrderRespNewVO> list = page.getList();
-        //处理游轮名称
-        List<Long> shipIds = CollectionUtils.convertList(list, TradeOrderRespNewVO::getShipId);
-        Map<Long, ShipRespDTO> shipMap = shipApi.queryShip(shipIds);
-
-        //国籍数据
-        List<Long> orderIds = CollectionUtils.convertList(list, TradeOrderRespNewVO::getId);
-        List<TradeOrderCountryDO> countryList = tradeOrderCountryService.getListByOrderIds(orderIds);
-        List<TradeOrderCountryBaseVO> countRespVOList = BeanUtils.toBean(countryList, TradeOrderCountryBaseVO.class);
-        countRespVOList.forEach(item -> {
-            if (item.getCountryId() != null) {
-                item.setCountryName(AreaUtils.format2Str(item.getCountryId()));
-            }
-        });
-        Map<Long, List<TradeOrderCountryBaseVO>> countryMap = CollectionUtils.convertMultiMap(countRespVOList, TradeOrderCountryBaseVO::getOrderId);
-
-        //订单汇总数据
-        List<TradeOrderTotalDO> tradeOrderTotalDOList = tradeOrderTotalService.getByOrderIds(orderIds);
-        List<TradeOrderTotalVO> tradeOrderTotalVoList = BeanUtils.toBean(tradeOrderTotalDOList, TradeOrderTotalVO.class);
-        Map<Long, TradeOrderTotalVO> orderTotalVoMap = CollectionUtils.convertMap(tradeOrderTotalVoList, TradeOrderTotalVO::getOrderId);
-
-        //航次信息
-        List<Long> voyageIds = CollectionUtils.convertList(list, TradeOrderRespNewVO::getVoyageId);
-        List<VoyageDO> voyageList = voyageService.getList(voyageIds);
-        List<VoyageRespVO> voyageRespVoList = BeanUtils.toBean(voyageList, VoyageRespVO.class);
-        Map<Long, VoyageRespVO> voyageRespVoMap = CollectionUtils.convertMap(voyageRespVoList, VoyageRespVO::getId);
-
-        list.forEach(item -> {
-            MapUtils.findAndThen(shipMap, item.getShipId(), ship -> item.setShipName(ship.getName()));
-            MapUtils.findAndThen(countryMap, item.getId(), item::setCountryList);
-            MapUtils.findAndThen(orderTotalVoMap, item.getId(), totalVO -> {
-                item.setSummary(totalVO);
-                item.setPersonStat(totalVO.getAdultTotalNum() + "大" + (totalVO.getChildTotalNum() + totalVO.getBabyTotalNum()) + "小");
-            });
-            MapUtils.findAndThen(voyageRespVoMap, item.getVoyageId(), item::setVoyage);
-        });
+        PageResult<AppTradeOrderRespNewVO> page = tradeOrderService.getAppOrderPage(pageReqVO);
         return success(page);
     }
 

+ 16 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/otc/vo/AppTradeOrderPageReqNewVO.java

@@ -0,0 +1,16 @@
+package com.yc.ship.module.trade.controller.app.otc.vo;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "旅行app交易订单分页 Request VO")
+@Data
+public class AppTradeOrderPageReqNewVO extends PageParam {
+
+    @Schema(description = "会员id")
+    private String memberId;
+    @Schema(description = "订单状态")
+    private Integer orderStatus;
+
+}

+ 64 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/app/otc/vo/AppTradeOrderRespNewVO.java

@@ -0,0 +1,64 @@
+package com.yc.ship.module.trade.controller.app.otc.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "旅行app交易订单 Response VO")
+@Data
+public class AppTradeOrderRespNewVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10096")
+    private Long id;
+
+    @Schema(description = "订单号")
+    private String orderNo;
+
+    @Schema(description = "图片")
+    private String img;
+
+    @Schema(description = "船id")
+    private Long shipId;
+
+    @Schema(description = "船名")
+    private String shipName;
+
+    @Schema(description = "船名简称")
+    private String shipShortName;
+
+    @Schema(description = "航次id")
+    private Long voyageId;
+
+    @Schema(description = "航次名称")
+    private String voyageName;
+
+    @Schema(description = "航次名称带航向")
+    private String fvoyageName;
+
+    @Schema(description = "航线id")
+    private Long routeId;
+
+    @Schema(description = "航线名称")
+    private String routeName;
+
+    @Schema(description = "航向")
+    private Integer direction;
+
+    @Schema(description = "登船时间")
+    private LocalDateTime boardingTime;
+
+    @Schema(description = "出发时间")
+    private LocalDateTime startTime;
+
+    @Schema(description = "离船时间")
+    private LocalDateTime leaveTime;
+
+    @Schema(description = "订单状态")
+    private Integer orderStatus;
+
+    @Schema(description = "价格")
+    private BigDecimal price;
+
+}

+ 13 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -1,6 +1,7 @@
 package com.yc.ship.module.trade.dal.mysql.order;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
 import com.yc.ship.module.ota.controller.admin.distributor.vo.DistributorPageReqVO;
@@ -14,6 +15,10 @@ import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordPag
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRespVO;
 import com.yc.ship.module.trade.controller.admin.order.vo.rule.MarketingPageReqVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespVO;
 import com.yc.ship.module.trade.controller.app.pda.vo.SupplierCheckOrderPageVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 import com.yc.ship.module.trade.service.order.bo.TradeBindOrderQueryBO;
@@ -193,4 +198,12 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
      * 查询游客名单导出基础信息(船名、航期、航向)
      */
     Map<String, Object> selectTouristExportBase(@Param("vo") TradeOrderPageReqVO reqVO);
+
+    /**
+     * 小程序订单分页
+     * @param iPage
+     * @param pageReqVO
+     * @return
+     */
+    PageResult<AppTradeOrderRespNewVO> selectAppPage(IPage<TradeOrderDO> iPage, @Param("pageReqVO") AppTradeOrderPageReqNewVO pageReqVO);
 }

+ 11 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderService.java

@@ -8,6 +8,10 @@ import com.yc.ship.module.trade.api.dto.TradeModifyVisitorReqDTO;
 import com.yc.ship.module.trade.api.dto.TradeOrderCreateReqDTO;
 import com.yc.ship.module.trade.api.dto.TradeOrderRespDTO;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 
 import java.io.File;
@@ -75,4 +79,11 @@ public interface TradeOrderService {
     TradeOrderDO getLastOrderByOrderNo(String orderNo);
 
     String getOrderCount(TradeOrderPageReqVO pageReqVO);
+
+    /**
+     * 获取小程序订单分页列表
+     * @param pageReqVO
+     * @return
+     */
+    PageResult<AppTradeOrderRespNewVO> getAppOrderPage(AppTradeOrderPageReqNewVO pageReqVO);
 }

+ 13 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java

@@ -19,7 +19,9 @@ import com.yc.ship.framework.common.util.collection.CollectionUtils;
 import com.yc.ship.framework.common.util.collection.MapUtils;
 import com.yc.ship.framework.common.util.date.DateUtils;
 import com.yc.ship.framework.common.util.object.ObjectUtils;
+import com.yc.ship.framework.common.util.object.PageUtils;
 import com.yc.ship.framework.ip.core.utils.AreaUtils;
+import com.yc.ship.framework.mybatis.core.util.MyBatisUtils;
 import com.yc.ship.framework.security.core.LoginUser;
 import com.yc.ship.module.ota.api.OtaDistributorApi;
 import com.yc.ship.module.ota.api.dto.DistributorProductRespDTO;
@@ -38,6 +40,10 @@ import com.yc.ship.module.system.api.user.AdminUserApi;
 import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
 import com.yc.ship.module.trade.api.dto.*;
 import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespNewVO;
+import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespVO;
 import com.yc.ship.module.trade.convert.order.TradeOrderConvert;
 import com.yc.ship.module.trade.dal.dataobject.order.*;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
@@ -1384,6 +1390,13 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         return MapUtil.getStr(map, "name")+";成人:"+MapUtil.getStr(map, "num1")+",儿童:"+MapUtil.getStr(map, "num2")+",陪同:"+MapUtil.getStr(map, "num3")+";领队:"+MapUtil.getStr(map, "num4");
     }
 
+    @Override
+    public PageResult<AppTradeOrderRespNewVO> getAppOrderPage(AppTradeOrderPageReqNewVO pageReqVO) {
+        IPage<TradeOrderDO> iPage = MyBatisUtils.buildPage(pageReqVO);
+        PageResult<AppTradeOrderRespNewVO> pageResult = tradeOrderMapper.selectAppPage(iPage, pageReqVO);
+        return pageResult;
+    }
+
 
     private List<TradeDetailPriceDO> buildTradeDetailPrice(TradeOrderDO tradeOrderDO, List<TradeOrderCreateReqDTO.DetailPrice> tradeDetailPriceList, TradeDetailDO tradeDetailDO) {
         if (ObjectUtils.equalsAny(tradeOrderDO.getSellMethod(), SellMethodEnum.MINI_APP.getType()) && ObjectUtil.equal(tradeDetailDO.getCateType(), ProductTypeEnum.Hotel.getValue())) {

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

@@ -313,7 +313,6 @@ public class AppOtcTradeOrderServiceImpl implements AppOtcTradeOrderService {
     public CommonResult<AppTradeOrderRespVO> miniOrderInfoById(Long id) {
         TradeOrderRespVO tradeOrderRespVO = otcTradeOrderService.getOrderInfo(id);
         AppTradeOrderRespVO appTradeOrderRespVO = BeanUtils.toBean(tradeOrderRespVO, AppTradeOrderRespVO.class);
-        appTradeOrderRespVO.setRemark("");
         return CommonResult.success(appTradeOrderRespVO);
     }
 

+ 10 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -2169,5 +2169,15 @@
         </if>
         LIMIT 1
     </select>
+    <select id="selectAppPage" resultType="com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderRespNewVO">
+        select t1.id, t1.order_no, t3.img, t1.ship_id, t3.`name` ship_name, t3.short_name ship_short_name,t4.`name` route_name, t4.direction, t1.voyage_id, t2.`name` voyage_name,t2.boarding_time,t2.start_time,t2.leave_time, t1.order_status, t1.amount price from trade_order t1 LEFT JOIN product_voyage t2 on t1.voyage_id = t2.id
+        LEFT JOIN resource_ship t3 on t1.ship_id = t3.id
+        LEFT JOIN resource_route t4 on t2.route_id = t4.id
+        where t1.deleted = 0
+        and member_id = #{pageReqVO.memberId}
+        <if test="pageReqVO.orderStatus != null and pageReqVO.orderStatus != ''">
+            and order_status = #{pageReqVO.orderStatus}
+        </if>
+    </select>
 </mapper>