|
|
@@ -2,9 +2,18 @@ package com.yc.ship.module.trade.controller.app.otc;
|
|
|
|
|
|
import com.yc.ship.framework.common.pojo.CommonResult;
|
|
|
import com.yc.ship.framework.common.pojo.PageResult;
|
|
|
+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.object.BeanUtils;
|
|
|
+import com.yc.ship.framework.ip.core.utils.AreaUtils;
|
|
|
import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
|
|
|
import com.yc.ship.framework.security.core.annotations.PreAuthenticated;
|
|
|
import com.yc.ship.module.otc.api.store.dto.StoreMachineDTO;
|
|
|
+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.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;
|
|
|
@@ -13,11 +22,18 @@ import com.yc.ship.module.trade.controller.app.otc.vo.AppOtcTradeOrderCreateResp
|
|
|
import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeDetailBaseRespVO;
|
|
|
import com.yc.ship.module.trade.controller.app.otc.vo.AppTradeOrderPageReqVO;
|
|
|
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;
|
|
|
import com.yc.ship.module.trade.enums.RefundChannelEnum;
|
|
|
import com.yc.ship.module.trade.framework.annotation.RequestDecryption;
|
|
|
import com.yc.ship.module.trade.framework.annotation.StoreMachine;
|
|
|
import com.yc.ship.module.trade.service.order.AdminTradeOrderService;
|
|
|
+import com.yc.ship.module.trade.service.order.TradeOrderCountryService;
|
|
|
+import com.yc.ship.module.trade.service.order.TradeOrderService;
|
|
|
+import com.yc.ship.module.trade.service.order.TradeOrderTotalService;
|
|
|
import com.yc.ship.module.trade.service.otc.AppOtcTradeOrderService;
|
|
|
+import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
|
|
|
+import com.yc.ship.module.trade.service.pay.TradeOrderPayService;
|
|
|
import com.yc.ship.module.trade.utils.AgencyAuthUtils;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
@@ -29,7 +45,9 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.validation.Valid;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
|
|
|
import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.API;
|
|
|
import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.TRADE;
|
|
|
import static com.yc.ship.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
|
|
@@ -55,6 +73,26 @@ public class AppOtcTradeOrderController {
|
|
|
@Resource
|
|
|
private AgencyAuthUtils agencyAuthUtils;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private TradeOrderService tradeOrderService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TradeOrderTotalService tradeOrderTotalService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TradeOrderCountryService tradeOrderCountryService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private VoyageService voyageService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ShipApi shipApi;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TradeOrderPayService tradeOrderPayService;
|
|
|
+ @Resource
|
|
|
+ private OtcTradeOrderService otcTradeOrderService;
|
|
|
+
|
|
|
@RequestDecryption
|
|
|
@PostMapping("/miniApp/createOrder")
|
|
|
@Operation(summary = "小程序创建订单")
|
|
|
@@ -84,10 +122,46 @@ public class AppOtcTradeOrderController {
|
|
|
@Operation(summary = "小程序-订单列表[分页]", description = "根据条件查询订单列表")
|
|
|
@PreAuthenticated
|
|
|
@OperateLog(type = API)
|
|
|
- public CommonResult<PageResult<AppTradeOrderRespVO>> getTradeOrderPage(@Valid @RequestBody AppTradeOrderPageReqVO pageReqVO) {
|
|
|
- Long loginUserId = getLoginUserId();
|
|
|
- pageReqVO.setMemberId(String.valueOf(loginUserId));
|
|
|
- return appOtcTradeOrderService.miniTradeOrderPage(pageReqVO);
|
|
|
+ public CommonResult<PageResult<TradeOrderRespNewVO>> orderList(@Valid @RequestBody TradeOrderPageReqVO pageReqVO) {
|
|
|
+ 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.stream().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> tradeOrderTotalVOS = BeanUtils.toBean(tradeOrderTotalDOList, TradeOrderTotalVO.class);
|
|
|
+ Map<Long, TradeOrderTotalVO> orderTotalVOMap = CollectionUtils.convertMap(tradeOrderTotalVOS, TradeOrderTotalVO::getOrderId);
|
|
|
+
|
|
|
+ //航次信息
|
|
|
+ List<Long> voyageIds = CollectionUtils.convertList(list, TradeOrderRespNewVO::getVoyageId);
|
|
|
+ List<VoyageDO> voyageList = voyageService.getList(voyageIds);
|
|
|
+ List<VoyageRespVO> voyageRespVOS = BeanUtils.toBean(voyageList, VoyageRespVO.class);
|
|
|
+ Map<Long, VoyageRespVO> voyageRespVOMap = CollectionUtils.convertMap(voyageRespVOS, VoyageRespVO::getId);
|
|
|
+
|
|
|
+ list.stream().forEach(item -> {
|
|
|
+ MapUtils.findAndThen(shipMap, item.getShipId(), ship -> item.setShipName(ship.getName()));
|
|
|
+ MapUtils.findAndThen(countryMap, item.getId(), country -> item.setCountryList(country));
|
|
|
+ MapUtils.findAndThen(orderTotalVOMap, item.getId(), totalVO -> {
|
|
|
+ item.setSummary(totalVO);
|
|
|
+ item.setPersonStat(totalVO.getAdultTotalNum()+"大"+(totalVO.getChildTotalNum()+totalVO.getBabyTotalNum())+"小");
|
|
|
+ });
|
|
|
+ MapUtils.findAndThen(voyageRespVOMap, item.getVoyageId(), voyage -> item.setVoyage(voyage));
|
|
|
+ });
|
|
|
+ return success(page);
|
|
|
}
|
|
|
|
|
|
@GetMapping("/miniApp/getOrderInfo")
|
|
|
@@ -101,8 +175,8 @@ public class AppOtcTradeOrderController {
|
|
|
@GetMapping("/miniApp/orderDetailInfo")
|
|
|
@Operation(summary = "小程序-门票详情", description = "根据门票id查询门票详情")
|
|
|
@OperateLog(type = API)
|
|
|
- public CommonResult<List<AppTradeDetailBaseRespVO>> getDetailInfo(@Valid @RequestParam("id") Long id) {
|
|
|
- return appOtcTradeOrderService.miniDetailInfo(id);
|
|
|
+ public CommonResult<TradeOrderRespNewVO> getOrderInfoNew(@Valid @RequestParam("id") Long id) {
|
|
|
+ return success(otcTradeOrderService.getOrderInfoNew(id));
|
|
|
}
|
|
|
|
|
|
|