Kaynağa Gözat

交易相关功能

lishiqiang 1 ay önce
ebeveyn
işleme
10f19a6d3d
15 değiştirilmiş dosya ile 120 ekleme ve 110 silme
  1. 5 1
      ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/auth/AgencyLoginLogServiceImpl.java
  2. 7 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/productBase/ProductBaseController.java
  3. 20 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/productBase/vo/ShipRespVO.java
  4. 4 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/productBase/ProductBaseMapper.java
  5. 2 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productBase/ProductBaseService.java
  6. 11 4
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productBase/ProductBaseServiceImpl.java
  7. 3 0
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/productBase/ProductBaseMapper.xml
  8. 4 14
      ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/baseprice/ProductBasePriceMapper.xml
  9. 11 9
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java
  10. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/bill/BillServiceImpl.java
  11. 2 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/billrule/BillRuleServiceImpl.java
  12. 21 46
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  13. 1 5
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java
  14. 4 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  15. 24 24
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/utils/AgencyAuthUtils.java

+ 5 - 1
ship-module-otc/ship-module-otc-biz/src/main/java/com/yc/ship/module/otc/service/auth/AgencyLoginLogServiceImpl.java

@@ -6,6 +6,7 @@ import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.security.core.LoginUser;
 import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
 import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
+import com.yc.ship.module.ota.api.OtaDistributorApi;
 import com.yc.ship.module.otc.api.agency.dto.AgencyUserLoginInfoReqDTO;
 import com.yc.ship.module.otc.api.agency.dto.AgencyUserLoginInfoRespDTO;
 import com.yc.ship.module.otc.controller.admin.agencyLoginLog.vo.AgencyLoginLogSaveReqVO;
@@ -28,13 +29,16 @@ public class AgencyLoginLogServiceImpl implements AgencyLoginLogService {
     @Resource
     private AgencyLoginLogMapper agencyLoginLogMapper;
 
+    @Resource
+    private OtaDistributorApi otaDistributorApi;
+
     @Override
     public AgencyUserLoginInfoRespDTO getLoginLog(AgencyUserLoginInfoReqDTO reqDTO) {
         LambdaQueryWrapperX<AgencyLoginLogDO> queryWrapper = new LambdaQueryWrapperX<AgencyLoginLogDO>()
                 .eq(AgencyLoginLogDO::getUserId, reqDTO.getUserId())
                 .eq(AgencyLoginLogDO::getAccessToken, reqDTO.getAccessToken());
         List<AgencyLoginLogDO> agencyLoginLogDOs = agencyLoginLogMapper.selectList(queryWrapper);
-        if(agencyLoginLogDOs!=null && agencyLoginLogDOs.size()>0){
+        if(agencyLoginLogDOs!=null && !agencyLoginLogDOs.isEmpty()){
             return BeanUtils.toBean(agencyLoginLogDOs.get(0), AgencyUserLoginInfoRespDTO.class);
         }
         return null;

+ 7 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/productBase/ProductBaseController.java

@@ -9,6 +9,7 @@ import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBasePageReqVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseRespVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseSaveReqVO;
+import com.yc.ship.module.product.controller.admin.productBase.vo.ShipRespVO;
 import com.yc.ship.module.product.service.productBase.ProductBaseService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -95,6 +96,12 @@ public class ProductBaseController {
         return success(baseService.selectBaseList(pageReqVO));
     }
 
+    @GetMapping("/ship-list")
+    @Operation(summary = "获得基础产品(列表)")
+    public CommonResult<List<ShipRespVO>> shipList() {
+        return success(baseService.selectShipList());
+    }
+
     @GetMapping({"/base-tree-list"})
     @Operation(summary = "获取基础产品产品列表树。(带项目)", description = "获取基础产品产品列表树。(带项目)")
     public CommonResult<List<TreeNode<Long>>> getDistributorProductList() {

+ 20 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/productBase/vo/ShipRespVO.java

@@ -0,0 +1,20 @@
+package com.yc.ship.module.product.controller.admin.productBase.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 基础产品 Response VO")
+@Data
+public class ShipRespVO {
+
+    @Schema(description = "", requiredMode = Schema.RequiredMode.REQUIRED, example = "4028")
+    private String id;
+
+    private String code;
+
+    @Schema(description = "游船名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    private String name;
+
+}

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/productBase/ProductBaseMapper.java

@@ -6,10 +6,13 @@ import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBasePageReqVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseRespVO;
+import com.yc.ship.module.product.controller.admin.productBase.vo.ShipRespVO;
 import com.yc.ship.module.product.dal.dataobject.productBase.ProductBaseDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * 基础产品 Mapper
@@ -29,5 +32,6 @@ public interface ProductBaseMapper extends BaseMapperX<ProductBaseDO> {
     IPage<ProductBaseRespVO> queryProductBasePage(IPage<ProductBaseRespVO> page, @Param("reqVO") ProductBasePageReqVO pageReqVO);
 
     IPage<ProductBaseRespVO> selectProductBasePage(IPage<ProductBaseRespVO> page, @Param("reqVO") ProductBasePageReqVO pageReqVO);
+    List<ShipRespVO> selectShipList();
 
 }

+ 2 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productBase/ProductBaseService.java

@@ -5,6 +5,7 @@ import com.yc.ship.framework.common.pojo.PageResult;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBasePageReqVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseRespVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseSaveReqVO;
+import com.yc.ship.module.product.controller.admin.productBase.vo.ShipRespVO;
 import com.yc.ship.module.product.dal.dataobject.productBase.ProductBaseDO;
 
 import javax.validation.Valid;
@@ -77,6 +78,7 @@ public interface ProductBaseService {
      * @return 基础产品
      */
     List<ProductBaseRespVO> selectBaseList(ProductBasePageReqVO pageReqVO);
+    List<ShipRespVO> selectShipList();
 
     List<TreeNode<Long>> getProductBaseTreeList();
 }

+ 11 - 4
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/productBase/ProductBaseServiceImpl.java

@@ -13,6 +13,7 @@ import com.yc.ship.framework.mybatis.core.query.MPJLambdaWrapperX;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBasePageReqVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseRespVO;
 import com.yc.ship.module.product.controller.admin.productBase.vo.ProductBaseSaveReqVO;
+import com.yc.ship.module.product.controller.admin.productBase.vo.ShipRespVO;
 import com.yc.ship.module.product.dal.dataobject.productBase.ProductBaseDO;
 import com.yc.ship.module.product.dal.mysql.productBase.ProductBaseMapper;
 import com.yc.ship.module.resource.controller.admin.baseprice.vo.ProductBasePriceRespVO;
@@ -36,10 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -218,9 +216,18 @@ public class ProductBaseServiceImpl implements ProductBaseService {
     public List<ProductBaseRespVO> selectBaseList(ProductBasePageReqVO pageReqVO) {
         IPage<ProductBaseRespVO> page = new Page<>(-1, -1);
         IPage<ProductBaseRespVO> iPage = baseMapper.selectProductBasePage(page, pageReqVO);
+        iPage.getRecords().forEach(vo -> {
+            List<ResourceDO> resourceList = resourceMapper.getListWithoutExcludeId(vo.getId(), null);
+            vo.setResourceList(BeanUtils.toBean(resourceList, ResourceSimpleRespVO.class));
+        });
         return iPage.getRecords();
     }
 
+    @Override
+    public List<ShipRespVO> selectShipList() {
+        return baseMapper.selectShipList();
+    }
+
     @Override
     public List<TreeNode<Long>> getProductBaseTreeList() {
         List<ProjectDO> projectList = projectService.getProjectList();

+ 3 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/productBase/ProductBaseMapper.xml

@@ -118,4 +118,7 @@
         ORDER BY pb.create_time desc
     </select>
 
+    <select id="selectShipList" resultType="com.yc.ship.module.product.controller.admin.productBase.vo.ShipRespVO">
+        SELECT id,code,name FROM buss_ship WHERE deleted = 0 and status =1
+    </select>
 </mapper>

+ 4 - 14
ship-module-resource/ship-module-resource-biz/src/main/resources/mapper/baseprice/ProductBasePriceMapper.xml

@@ -9,20 +9,10 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
     <select id="selectByBaseId" resultType="com.yc.ship.module.resource.controller.admin.baseprice.vo.ProductBasePriceRespVO">
-        SELECT
-            pb.id,
-            pb.product_base_id productBaseId,
-            pb.project_id projectId,
-            pb.sale_price salePrice,
-            pb.spec_type specType,
-            pb.specification_id specificationId,
-            pb.cost_price costPrice,
-            pb.sale_price salePrice,
-            pp.name specificationName
-        FROM product_base_price pb
-        inner join product_project pp on pp.id = pb.specification_id
-        WHERE pb.deleted = 0 and pb.product_base_id = #{baseId}
-        ORDER BY pb.id
+        SELECT pb.id, pb.product_base_id productBaseId, pb.project_id projectId, pb.sale_price salePrice, pb.spec_type specType,
+        pb.specification_id specificationId, pb.cost_price costPrice, pb.sale_price salePrice
+        FROM product_base_price pb where pb.deleted = 0
+        AND pb.product_base_id = #{baseId} ORDER BY pb.id
     </select>
 
 </mapper>

+ 11 - 9
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java

@@ -52,10 +52,15 @@ import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.*;
 import static com.yc.ship.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
 
 
+/***
+ *&#064;Description  旅行社交易服务
+ *@author qsl
+ *&#064;date  2025/8/13 17:14
+ */
 @Validated
 @RestController
 @Slf4j
-@RequestMapping("/otc/trade")
+@RequestMapping("/travl/trade")
 @Tag(name = "旅行社交易服务")
 public class OtcTradeOrderController {
 
@@ -70,29 +75,26 @@ public class OtcTradeOrderController {
 
     @RequestDecryption
     @PostMapping("/window/createOrder")
-    @Operation(summary = "win-窗口创建订单")
+    @Operation(summary = "win-窗口创建订单(内部)")
     @OperateLog(type = TRADE)
     public CommonResult<OtcTradeOrderCreateRespVO> windowCreateOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-
         return otcTradeOrderService.windowCreateOrder(agencyAuthUtils.getAgencyLoginUser(), otcTradeOrderCreateReqVO);
     }
 
     @RequestDecryption
-    @PostMapping("/window/createMoveOrder")
-    @Operation(summary = "win-窗口创建搬单订单(旅行社支付)")
+    @PostMapping("/travl/createOrder")
+    @Operation(summary = "win-窗口创建订单(旅行社支付)")
     @OperateLog(type = TRADE)
     @TradeRateLimit(name = "createMoveOrder", limitNum = 2, limitTime = 5)
     public CommonResult<OtcTradeOrderCreateRespVO> createMoveOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-
         return otcTradeOrderService.createMoveOrder(agencyAuthUtils.getAgencyLoginUser(), otcTradeOrderCreateReqVO);
     }
 
     @RequestDecryption
-    @PostMapping("/plat/createMoveOrder")
-    @Operation(summary = "win-平台创建搬单订单(旅行社支付)")
+    @PostMapping("/plat/createOrder")
+    @Operation(summary = "win-平台创建订单")
     @OperateLog(type = TRADE)
     public CommonResult<OtcTradeOrderCreateRespVO> platCreateMoveOrder(@Validated(value = WindowCreateOrderGroup.class)  @RequestBody OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO) {
-
         return otcTradeOrderService.platCreateMoveOrder(getLoginUser(), otcTradeOrderCreateReqVO);
     }
 

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/bill/BillServiceImpl.java

@@ -228,7 +228,7 @@ public class BillServiceImpl implements BillService {
                 //获取登录租户
                 Long tenantId = TenantContextHolder.getTenantId();
                 //查询是否门店登录
-                LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+                LoginUser loginUser = agencyAuthUtils.getLoginUser();
                 //是否旅行社登录
                 DistributorRespVO distributor = new DistributorRespVO();
                 if(loginUser != null){

+ 2 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/billrule/BillRuleServiceImpl.java

@@ -165,7 +165,7 @@ public class BillRuleServiceImpl implements BillRuleService {
         //获取登录租户
         Long tenantId = TenantContextHolder.getTenantId();
         //查询当前旅行社门店
-        LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+        LoginUser loginUser = agencyAuthUtils.getLoginUser();
         if(loginUser == null){
             //是否旅行社登录
             DistributorRespVO distributor = distributorMapper.getByTenantId(tenantId);
@@ -195,7 +195,7 @@ public class BillRuleServiceImpl implements BillRuleService {
     public List<StoreRespVO> selectStoreList(Long distributorId) {
         List<StoreRespVO> storeList = new ArrayList<>();
         //查询当前旅行社门店
-        LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+        LoginUser loginUser = agencyAuthUtils.getLoginUser();
         if(loginUser == null){
             //获取旅行社
             DistributorRespVO distributor = distributorMapper.getById(distributorId);

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

@@ -576,6 +576,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         TradeOrderBO tradeOrderBO = new TradeOrderBO();
         //订单
         TradeOrderDO tradeOrderDO = TradeOrderConvert.INSTANCE.convert(orderCreateReqDTO);
+        //设置团散类型
         if(tradeOrderDO.getVisitorType()==null){
             if(tradeOrderDO.getSellMethod() == 7){
                 tradeOrderDO.setVisitorType(1);
@@ -583,9 +584,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                 tradeOrderDO.setVisitorType(0);
             }
         }
+        //如果下单传入了订单ID 则会加票订单
         if(orderCreateReqDTO.getOrderId()!=null){
             tradeOrderDO.setId(orderCreateReqDTO.getOrderId());
             if(ObjectUtil.equal(orderCreateReqDTO.getIsChange(),YES)){
+                //当前订单为加票新订单
                 tradeOrderDO.setIsChangeOrder(ORDER_CHANGE_TYPE_NEW);
             }
         }else {
@@ -593,11 +596,6 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         }
         tradeOrderDO.setOrderNo(tradeUUCodeUtils.generateOrderNo(ORDER_PREFIX));
         tradeOrderDO.setOrderStatus(TradeOrderStatusEnum.INIT.getStatus());
-//        if(orderCreateReqDTO.getRoutePlanId()!=null){
-//            RoutePlanRespDTO planDTO = tradeOrderRepositoryService.getRoutePlanByPlanId(orderCreateReqDTO.getRoutePlanId());
-//            Asserts.isTrue(planDTO!=null,"未找到对应时间方案");
-//            tradeOrderDO.setRoutePlanGroupType(planDTO.getGroupType());
-//        }
         //根据原订单设置新订单
         setOrderByRelateOrder(tradeOrderDO,relateOrder);
 
@@ -614,7 +612,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         extraInfo.setIsTimePay(orderCreateReqDTO.getIsTimePay());
         extraInfo.setMainOrderId(orderCreateReqDTO.getMainOrderId());
         tradeOrderBO.setExtraInfo(extraInfo);
-        //订单交付信息
+        //订单交付信息-小程序酒店、特产、二消等产品(邮寄、自提配置)
         if(orderCreateReqDTO.getDeliveryInfo()!=null){
             TradeOrderCreateReqDTO.DeliveryInfo deliveryInfo = orderCreateReqDTO.getDeliveryInfo();
             if(ObjectUtil.equal(deliveryInfo.getDeliveryType(),DELIVERY_TYPE_EXPRESS)){
@@ -650,25 +648,25 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(orderCreateReqDTO.getMainOrderId());
         Asserts.isTrue(tradeOrderDO!=null,"关联订单不存在{}",orderCreateReqDTO.getMainOrderId());
         Asserts.isTrue(ObjectUtil.notEqual(tradeOrderDO.getIsBill(),2),"订单{}已经出账单,不能进行变更、增加等操作",orderCreateReqDTO.getMainOrderId());
-        //主订单必须与当前登录账号为同一租户
+        //主订单必须与当前登录账号为同一单位
         if(SellMethodEnum.isPlatSellMethod(tradeOrderDO.getSellMethod())){
             Asserts.isTrue(ObjectUtil.equal(tradeOrderDO.getSourceId(),orderCreateReqDTO.getOrderProperty().getSourceId()),"无该订单操作权限");
         }
-        //如果被关联订单已经是增加订单了,则不能再增加
-        if(ObjectUtil.equal(orderCreateReqDTO.getIsAddOrder() ,YES)){
-            TradeOrderBindDO bindOrder = tradeOrderRepositoryService.getBindOrder(orderCreateReqDTO.getMainOrderId(), TradeOrderBindEnum.ADD_ORDER.getType());
-            Asserts.isTrue(bindOrder == null,"当前订单为增加订单,不能再被增加");
-            //增加订单,原订单不能被核销,全部退款
-            Asserts.isTrue(ObjectUtils.equalsAny(tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNUSED.getStatus(),TradeOrderStatusEnum.PARTIAL_REFUND.getStatus())
-                    ,"当前订单状态不能被增加{}",tradeOrderDO.getOrderStatus());
-            if(ObjectUtils.equalsAny(tradeOrderDO.getOrderStatus(),TradeOrderStatusEnum.PARTIAL_REFUND.getStatus())){
-                //部分退可能有已检票门票
-                Long checkCount = tradeOrderRepositoryService.getCheckCount(tradeOrderDO.getId());
-                if(checkCount!=null && checkCount>0){
-                    Asserts.isTrue(false,"当前订单已核销不能被增加");
-                }
-            }
-        }
+//        //如果被关联订单已经是增加订单了,则不能再增加
+//        if(ObjectUtil.equal(orderCreateReqDTO.getIsAddOrder() ,YES)){
+//            TradeOrderBindDO bindOrder = tradeOrderRepositoryService.getBindOrder(orderCreateReqDTO.getMainOrderId(), TradeOrderBindEnum.ADD_ORDER.getType());
+//            Asserts.isTrue(bindOrder == null,"当前订单为增加订单,不能再被增加");
+//            //增加订单,原订单不能被核销,全部退款
+//            Asserts.isTrue(ObjectUtils.equalsAny(tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNUSED.getStatus(),TradeOrderStatusEnum.PARTIAL_REFUND.getStatus())
+//                    ,"当前订单状态不能被增加{}",tradeOrderDO.getOrderStatus());
+//            if(ObjectUtils.equalsAny(tradeOrderDO.getOrderStatus(),TradeOrderStatusEnum.PARTIAL_REFUND.getStatus())){
+//                //部分退可能有已检票门票
+//                Long checkCount = tradeOrderRepositoryService.getCheckCount(tradeOrderDO.getId());
+//                if(checkCount!=null && checkCount>0){
+//                    Asserts.isTrue(false,"当前订单已核销不能被增加");
+//                }
+//            }
+//        }
         return tradeOrderDO;
     }
 
@@ -677,28 +675,6 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         TradeOrderDetailBO tradeOrderDetailBO = new TradeOrderDetailBO();
         //获取产品信息
         ProductSpuRespDTO productSpuRespDTO = null;
-        //多产品下单,分别配置了时间方案
-//        RoutePlanRespDTO planDTO = null;
-//        if(orderItem.getRoutePlanId()!=null){
-//            planDTO = tradeOrderRepositoryService.getRoutePlanByPlanId(orderItem.getRoutePlanId());
-//            Asserts.isTrue(planDTO!=null,"未找到对应时间方案[1]");
-//        }
-//        Long routePlanId = planDTO == null? tradeOrderDO.getRoutePlanId() : planDTO.getId();
-//        Integer routePlanGroupType = planDTO == null? tradeOrderDO.getRoutePlanGroupType() : planDTO.getGroupType();
-
-//        if(orderItem.getProductType() == PRODUCT_BASE_TYPE_PLAT){
-//            //平台产品
-//            DistributorProductRespDTO distributorProductRespDTO = otaDistributorApi.getDistributorProductById(Long.parseLong(orderItem.getProductId())).getCheckedData();
-//            AtomicReference<ProductSpuRespDTO> productSpuAtomicRef = new AtomicReference<>();
-//            TenantUtils.execute(distributorProductRespDTO.getTenantId(),()->{
-//                productSpuAtomicRef.set(productApi.getCalendarProduct(distributorProductRespDTO.getProductId(),DateUtil.formatDate(orderItem.getUseDate()),routePlanId).getCheckedData());
-//            });
-//            productSpuRespDTO = productSpuAtomicRef.get();
-//        }else{
-//            //自建产品,平台才管时间方案
-//            Long useRoutePlanId = SellMethodEnum.isPlatSellMethod(tradeOrderDO.getSellMethod())?routePlanId:null;
-//            productSpuRespDTO = productApi.getCalendarProduct(Long.parseLong(orderItem.getProductId()), DateUtil.formatDate(orderItem.getUseDate()),useRoutePlanId).getCheckedData();
-//        }
         tradeOrderDetailBO.setProductType(orderItem.getProductType());
 
         validateOrder(orderCreateReqDTO,tradeOrderDO,orderItem,productSpuRespDTO);
@@ -1184,8 +1160,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                 }
             }
             //重新计算的总价只会比支付价格小
-            BigDecimal subAmount = orderCreateReqDTO.getPayAmount().subtract(totalAmount);
-            return subAmount;
+            return orderCreateReqDTO.getPayAmount().subtract(totalAmount);
         }
 
         return BigDecimal.ZERO;

+ 1 - 5
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java

@@ -30,11 +30,7 @@ public interface OtcTradeOrderService {
     CommonResult<OtcTradeOrderCreateRespVO> windowCreateOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
 
     /**
-     * 窗口创建搬单订单
-     *
-     * @param loginUser
-     * @param otcTradeOrderCreateReqVO
-     * @return
+     * 旅行社创建订单
      */
     CommonResult<OtcTradeOrderCreateRespVO> createMoveOrder(LoginUser loginUser, OtcTradeOrderCreateReqVO otcTradeOrderCreateReqVO);
 

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

@@ -674,7 +674,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if(pageReqVO.getOrderStatus()!=null && pageReqVO.getOrderStatus().contains(6)){
             pageReqVO.getOrderStatus().add(13);
         }
-        LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+        LoginUser loginUser = agencyAuthUtils.getLoginUser();
         AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
         if(agencyUserLoginInfo!=null){
             pageReqVO.setStoreId(agencyUserLoginInfo.getStoreId());
@@ -813,7 +813,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if(StringUtils.isNotBlank(pageReqVO.getOrderNo())){
             pageReqVO.setTravelDate(null);
         }
-        LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+        LoginUser loginUser = agencyAuthUtils.getLoginUser();
         AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
         if(agencyUserLoginInfo!=null){
             pageReqVO.setStoreId(agencyUserLoginInfo.getStoreId());
@@ -919,7 +919,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         if(StringUtils.isNotBlank(pageReqVO.getOrderNo())){
             pageReqVO.setTravelDate(null);
         }
-        LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+        LoginUser loginUser = agencyAuthUtils.getLoginUser();
         AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
         if(agencyUserLoginInfo!=null){
             pageReqVO.setStoreId(agencyUserLoginInfo.getStoreId());
@@ -2158,7 +2158,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }else{
             pageReqVO.setSourceId(pageReqVO.getOtaId());
         }
-        LoginUser loginUser = agencyAuthUtils.getLoginUser2();
+        LoginUser loginUser = agencyAuthUtils.getLoginUser();
         AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
         if(agencyUserLoginInfo!=null){
             pageReqVO.setStoreId(agencyUserLoginInfo.getStoreId());

+ 24 - 24
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/utils/AgencyAuthUtils.java

@@ -1,5 +1,6 @@
 package com.yc.ship.module.trade.utils;
 
+import cn.hutool.core.map.MapUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.yc.ship.framework.common.lang.Asserts;
 import com.yc.ship.framework.common.util.json.JsonUtils;
@@ -11,6 +12,8 @@ import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.otc.api.agency.AgencyAuthApi;
 import com.yc.ship.module.otc.api.agency.dto.AgencyUserLoginInfoReqDTO;
 import com.yc.ship.module.otc.api.agency.dto.AgencyUserLoginInfoRespDTO;
+import com.yc.ship.module.system.api.user.AdminUserApi;
+import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
@@ -29,6 +32,9 @@ public class AgencyAuthUtils {
     @Resource
     private AgencyAuthApi agencyAuthApi;
 
+    @Resource
+    private AdminUserApi adminUserApi;
+
     @Resource
     private OtaDistributorApi otaDistributorApi;
     @Resource
@@ -40,38 +46,32 @@ public class AgencyAuthUtils {
     public LoginUser getAgencyLoginUser(){
         //获取当前登录用户
         LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
-        AgencyUserLoginInfoRespDTO agencyLoginInfo = getAgencyLoginInfoFromCache(loginUser.getId(), loginUser.getAccessToken());
-        if(agencyLoginInfo == null){
-            AgencyUserLoginInfoReqDTO reqDTO = new AgencyUserLoginInfoReqDTO();
-            reqDTO.setUserId(loginUser.getId());
-            reqDTO.setAccessToken(loginUser.getAccessToken());
-            Long tenantId = TenantContextHolder.getTenantId();
-            try {
-                TenantContextHolder.setTenantId(loginUser.getTenantId());
-                AgencyUserLoginInfoRespDTO agencyUserLoginInfo = agencyAuthApi.getAgencyUserLoginInfo(reqDTO);
-                if(agencyUserLoginInfo!=null){
-                    agencyLoginInfo = agencyUserLoginInfo;
-                }
-                setAgencyLoginInfo(agencyLoginInfo,loginUser);
-            }finally {
-                TenantContextHolder.setTenantId(tenantId);
+        if(loginUser!=null){
+            loginUser.setDistributorId(MapUtil.getLong(loginUser.getInfo(), LoginUser.INFO_KEY_DISTRIBUTOR_ID));
+            loginUser.setStoreId(MapUtil.getLong(loginUser.getInfo(), LoginUser.INFO_KEY_STORE_ID));
+        }
+        if(loginUser!=null && loginUser.getDistributorId()!=null) {
+            AgencyUserLoginInfoRespDTO agencyLoginInfo = getAgencyLoginInfoFromCache(loginUser.getId(), loginUser.getAccessToken());
+            if (agencyLoginInfo == null) {
+                AgencyUserLoginInfoReqDTO reqDTO = new AgencyUserLoginInfoReqDTO();
+                reqDTO.setUserId(loginUser.getId());
+                reqDTO.setAccessToken(loginUser.getAccessToken());
+                agencyLoginInfo = agencyAuthApi.getStoreSellerLoginInfo(reqDTO);
+                setAgencyLoginInfo(agencyLoginInfo, loginUser);
             }
+            loginUser.setContext(AGENCY_LOGIN_INFO, agencyLoginInfo);
         }
-        Asserts.isTrue(agencyLoginInfo!=null,"当前用户未有旅行社登录信息");
-        loginUser.setContext(AGENCY_LOGIN_INFO,agencyLoginInfo);
         return loginUser;
     }
 
     public Long getLoginStoreId(){
-        LoginUser loginUser = getLoginUser2();
-        AgencyUserLoginInfoRespDTO agencyUserLoginInfo = loginUser.getContext(AGENCY_LOGIN_INFO, AgencyUserLoginInfoRespDTO.class);
-        if(agencyUserLoginInfo!=null){
-            return agencyUserLoginInfo.getStoreId();
-        }
-        return null;
+        return SecurityFrameworkUtils.getLoginStoreId();
+    }
+    public Long getLoginDistributorId(){
+        return SecurityFrameworkUtils.getLoginDistributorId();
     }
 
-    public LoginUser getLoginUser2(){
+    public LoginUser getLoginUser(){
         //获取当前登录用户
         LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
         AgencyUserLoginInfoRespDTO agencyLoginInfo = getAgencyLoginInfoFromCache(loginUser.getId(), loginUser.getAccessToken());