diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java index 3bcbb2daf..7d0e5a912 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderSplitRecordServiceImpl.java @@ -8,18 +8,22 @@ import com.jsowell.adapay.dto.PaymentConfirmParam; import com.jsowell.adapay.dto.SplitData; import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.common.constant.Constants; +import com.jsowell.common.core.domain.model.LoginUser; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.enums.DelFlagEnum; import com.jsowell.common.enums.adapay.AdapayStatusEnum; import com.jsowell.common.util.DateUtils; +import com.jsowell.common.util.SecurityUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.AdapayMemberAccount; import com.jsowell.pile.domain.OrderSplitRecord; +import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.dto.QueryOrderSplitDTO; import com.jsowell.pile.dto.SplitOrderDTO; import com.jsowell.pile.mapper.OrderSplitRecordMapper; import com.jsowell.pile.service.AdapayMemberAccountService; import com.jsowell.pile.service.OrderSplitRecordService; +import com.jsowell.pile.service.PileMerchantInfoService; import com.jsowell.pile.vo.OrderInfoDetailVO; import com.jsowell.pile.vo.web.*; import org.apache.commons.collections4.CollectionUtils; @@ -28,10 +32,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @Service @@ -40,6 +41,9 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { @Resource private OrderSplitRecordMapper orderSplitRecordMapper; + @Autowired + private PileMerchantInfoService pileMerchantInfoService; + @Autowired private AdapayMemberAccountService adapayMemberAccountService; @@ -280,6 +284,11 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { Map> collect = orderSplitRecordVOS.stream() .collect(Collectors.groupingBy(OrderSplitRecordVO::getOrderCode)); + // 获取当前登录用户信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + // 通过 depId 查询运营商记录表,如果查出来,则为运营商 + PileMerchantInfo pileMerchantInfo = pileMerchantInfoService.queryInfoByDeptId(String.valueOf(loginUser.getDeptId())); + for (Map.Entry> entry : collect.entrySet()) { String orderCode = entry.getKey(); List splitRecordVOList = entry.getValue(); @@ -307,10 +316,21 @@ public class OrderSplitRecordServiceImpl implements OrderSplitRecordService { .build(); orderSplitList.add(orderSplit); } + // 对 orderSplitList 进行排序,将当前登录用户的分账记录放在第一条 + if (pileMerchantInfo != null) { + for (int i = 0; i < orderSplitList.size(); i++) { + SplitRecordInfoVO.OrderSplit orderSplit = orderSplitList.get(i); + if (StringUtils.equals(String.valueOf(pileMerchantInfo.getId()), orderSplit.getMerchantId())) { + // 实则是将符合条件的记录与第一条记录进行位置互换 + Collections.swap(orderSplitList, i, 0); + } + } + } vo.setOrderSplitList(orderSplitList); resultList.add(vo); } + // 组装分页返回参数 PageResponse pageResponse = PageResponse.builder() .pageSize(pageSize)