|
|
@@ -69,20 +69,25 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
@Override
|
|
|
public TableDataInfo<SysSubOrderListPageVo> list(SysSubOrderListPageBo bo, PageQuery pageQuery) {
|
|
|
|
|
|
- LambdaQueryWrapper<SysOrder> orderWrapper = Wrappers.lambdaQuery(SysOrder.class);
|
|
|
+ LambdaQueryWrapper<SysSubOrder> orderWrapper = Wrappers.lambdaQuery(SysSubOrder.class);
|
|
|
|
|
|
if (StringUtils.isNotBlank(bo.getContent())) {
|
|
|
List<String> tenantIds = remoteTenantService.selectTenantIdsByName(bo.getContent());
|
|
|
- orderWrapper.in(SysOrder::getStore, tenantIds.isEmpty() ? TenantConstants.DEFAULT_TENANT_ID : tenantIds);
|
|
|
+// orderWrapper.in(SysSubOrder::getStore, tenantIds.isEmpty() ? TenantConstants.DEFAULT_TENANT_ID : tenantIds);
|
|
|
List<Long> userIds = remoteUserService.selectUserIdsByName(bo.getContent());
|
|
|
- orderWrapper.in(SysOrder::getOrderPlacer, WrapperUtils.convertIds(userIds));
|
|
|
+// orderWrapper.in(SysSubOrder::getOrderPlacer, WrapperUtils.convertIds(userIds));
|
|
|
List<Long> customerIds = remoteCustomerService.selectIdsByName(bo.getContent());
|
|
|
- orderWrapper.in(SysOrder::getUsrCustomer, WrapperUtils.convertIds(customerIds));
|
|
|
+// orderWrapper.in(SysSubOrder::getUsrCustomer, WrapperUtils.convertIds(customerIds));
|
|
|
+ orderWrapper.and(w -> w
|
|
|
+ .in(SysSubOrder::getTenantId, tenantIds.isEmpty() ? List.of(TenantConstants.DEFAULT_TENANT_ID) : tenantIds).or()
|
|
|
+ .in(SysSubOrder::getOrderPlacer, WrapperUtils.convertIds(userIds)).or()
|
|
|
+ .in(SysSubOrder::getUsrCustomer, WrapperUtils.convertIds(customerIds))
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
Page<SysSubOrder> page = baseMapper.selectPage(
|
|
|
pageQuery.build(),
|
|
|
- Wrappers.lambdaQuery(SysSubOrder.class).orderByDesc(SysSubOrder::getId)
|
|
|
+ orderWrapper.orderByDesc(SysSubOrder::getId)
|
|
|
.eq(bo.getStatus() != null, SysSubOrder::getStatus, bo.getStatus())
|
|
|
.eq(bo.getService() != null, SysSubOrder::getService, bo.getService())
|
|
|
);
|
|
|
@@ -248,20 +253,26 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
@Override
|
|
|
public TableDataInfo<SysSubOrderListPageVo> listOnMerchant(SysSubOrderListPageBo bo, PageQuery pageQuery) {
|
|
|
|
|
|
- LambdaQueryWrapper<SysOrder> orderWrapper = Wrappers.lambdaQuery(SysOrder.class);
|
|
|
+ LambdaQueryWrapper<SysSubOrder> orderWrapper = Wrappers.lambdaQuery(SysSubOrder.class);
|
|
|
|
|
|
if (StringUtils.isNotBlank(bo.getContent())) {
|
|
|
List<Long> storeIds = remoteStoreService.selectIdsByName(bo.getContent());
|
|
|
- orderWrapper.in(SysOrder::getStore, WrapperUtils.convertIds(storeIds));
|
|
|
+// orderWrapper.in(SysSubOrder::getStore, WrapperUtils.convertIds(storeIds));
|
|
|
List<Long> userIds = remoteUserService.selectUserIdsByName(bo.getContent());
|
|
|
- orderWrapper.in(SysOrder::getOrderPlacer, WrapperUtils.convertIds(userIds));
|
|
|
+// orderWrapper.in(SysSubOrder::getOrderPlacer, WrapperUtils.convertIds(userIds));
|
|
|
List<Long> customerIds = remoteCustomerService.selectIdsByName(bo.getContent());
|
|
|
- orderWrapper.in(SysOrder::getUsrCustomer, WrapperUtils.convertIds(customerIds));
|
|
|
+// orderWrapper.in(SysSubOrder::getUsrCustomer, WrapperUtils.convertIds(customerIds));
|
|
|
+ orderWrapper.and(w -> w
|
|
|
+ .in(SysSubOrder::getStore, WrapperUtils.convertIds(storeIds)).or()
|
|
|
+ .in(SysSubOrder::getOrderPlacer, WrapperUtils.convertIds(userIds)).or()
|
|
|
+ .in(SysSubOrder::getUsrCustomer, WrapperUtils.convertIds(customerIds))
|
|
|
+ );
|
|
|
+
|
|
|
}
|
|
|
|
|
|
Page<SysSubOrder> page = baseMapper.selectPage(
|
|
|
pageQuery.build(),
|
|
|
- Wrappers.lambdaQuery(SysSubOrder.class).orderByDesc(SysSubOrder::getId)
|
|
|
+ orderWrapper.orderByDesc(SysSubOrder::getId)
|
|
|
.eq(bo.getStatus() != null, SysSubOrder::getStatus, bo.getStatus())
|
|
|
.eq(bo.getService() != null, SysSubOrder::getService, bo.getService())
|
|
|
);
|
|
|
@@ -357,10 +368,13 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
});
|
|
|
remotePetService.getByIds(petIds).forEach(e -> {
|
|
|
petMap.put(e.getId(), e);
|
|
|
- avatarIds.add(e.getAvatar());
|
|
|
+ if (e.getAvatar() != null) {
|
|
|
+ avatarIds.add(e.getAvatar());
|
|
|
+ }
|
|
|
});
|
|
|
remoteCustomerService.getByIds(customerIds).forEach(e -> customerMap.put(e.getId(), e));
|
|
|
- remoteFileService.selectByIds(avatarIds).forEach(e -> avatarMap.put(e.getOssId(), e));
|
|
|
+ List<RemoteFile> files = remoteFileService.selectByIds(avatarIds);
|
|
|
+ files.forEach(e -> avatarMap.put(e.getOssId(), e));
|
|
|
|
|
|
return TableDataInfo.build(page.convert(e -> {
|
|
|
SysSubOrderPendingAcceptPageVo vo = new SysSubOrderPendingAcceptPageVo();
|
|
|
@@ -556,18 +570,18 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
endSysLog.setTenantId(subOrder.getTenantId());
|
|
|
logs.add(endSysLog);
|
|
|
|
|
|
+ // 履约者拿到佣金
|
|
|
+ boolean fulfillerFlag = remoteFulfillerService.settlement(subOrder.getFulfiller(), subOrder.getPrice(), subOrder.getCode(), subOrder.getId());
|
|
|
+ if (!fulfillerFlag) {
|
|
|
+ throw new RuntimeException("履约者新增佣金失败");
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
boolean flag = subOrderLogMapper.insertBatch(logs);
|
|
|
if (!flag) {
|
|
|
throw new RuntimeException("记录服务进度失败");
|
|
|
}
|
|
|
|
|
|
- // 履约者拿到佣金
|
|
|
- boolean fulfillerFlag = remoteFulfillerService.settlement(subOrder.getFulfiller(), subOrder.getPrice(), subOrder.getCode());
|
|
|
- if (!fulfillerFlag) {
|
|
|
- throw new RuntimeException("履约者新增佣金失败");
|
|
|
- }
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -601,7 +615,9 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
});
|
|
|
remotePetService.getByIds(petIds).forEach(e -> {
|
|
|
petMap.put(e.getId(), e);
|
|
|
- avatarIds.add(e.getAvatar());
|
|
|
+ if (e.getAvatar() != null) {
|
|
|
+ avatarIds.add(e.getAvatar());
|
|
|
+ }
|
|
|
});
|
|
|
remoteCustomerService.getByIds(customerIds).forEach(e -> customerMap.put(e.getId(), e));
|
|
|
remoteFileService.selectByIds(avatarIds).forEach(e -> avatarMap.put(e.getOssId(), e));
|
|
|
@@ -676,7 +692,7 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
}
|
|
|
|
|
|
// 履约者拿到佣金
|
|
|
- boolean fulfillerFlag = remoteFulfillerService.settlement(subOrder.getFulfiller(), subOrder.getPrice(), subOrder.getCode());
|
|
|
+ boolean fulfillerFlag = remoteFulfillerService.settlement(subOrder.getFulfiller(), subOrder.getPrice(), subOrder.getCode(), subOrder.getId());
|
|
|
if (!fulfillerFlag) {
|
|
|
throw new RuntimeException("履约者新增佣金失败");
|
|
|
}
|
|
|
@@ -753,4 +769,173 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysSubOrderListOnCustomerVo> listOnCustomer(Long customerId) {
|
|
|
+
|
|
|
+ List<SysSubOrderListOnCustomerVo> vos = new ArrayList<>();
|
|
|
+
|
|
|
+ Map<Long, RemotePetVo> petMap = new HashMap<>();
|
|
|
+ List<SysSubOrder> sysSubOrders = baseMapper.selectList(
|
|
|
+ Wrappers.lambdaQuery(SysSubOrder.class)
|
|
|
+ .eq(SysSubOrder::getUsrCustomer, customerId)
|
|
|
+ .orderByDesc(SysSubOrder::getId)
|
|
|
+ );
|
|
|
+ List<Long> petIds = new ArrayList<>();
|
|
|
+ sysSubOrders.forEach(e -> petIds.add(e.getUsrPet()));
|
|
|
+
|
|
|
+ remotePetService.getByIds(petIds).forEach(e -> petMap.put(e.getId(), e));
|
|
|
+
|
|
|
+ for (SysSubOrder sysSubOrder : sysSubOrders) {
|
|
|
+ SysSubOrderListOnCustomerVo vo = new SysSubOrderListOnCustomerVo();
|
|
|
+ vo.setId(sysSubOrder.getId());
|
|
|
+ vo.setCode(sysSubOrder.getCode());
|
|
|
+ vo.setService(sysSubOrder.getService());
|
|
|
+ vo.setPet(petMap.containsKey(sysSubOrder.getUsrPet()) ? petMap.get(sysSubOrder.getUsrPet()).getName() : "未知");
|
|
|
+ vo.setServiceTime(sysSubOrder.getServiceTime());
|
|
|
+ vo.setStatus(sysSubOrder.getStatus());
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysSubOrderListOnPetVo> listOnPet(Long petId) {
|
|
|
+
|
|
|
+ List<SysSubOrderListOnPetVo> vos = new ArrayList<>();
|
|
|
+
|
|
|
+ baseMapper.selectList(
|
|
|
+ Wrappers.lambdaQuery(SysSubOrder.class)
|
|
|
+ .eq(SysSubOrder::getUsrPet, petId)
|
|
|
+ .orderByDesc(SysSubOrder::getId)
|
|
|
+ )
|
|
|
+ .forEach(e -> {
|
|
|
+ SysSubOrderListOnPetVo vo = new SysSubOrderListOnPetVo();
|
|
|
+ vo.setId(e.getId());
|
|
|
+ vo.setCode(e.getCode());
|
|
|
+ vo.setService(e.getService());
|
|
|
+ vo.setPrice(e.getPrice());
|
|
|
+ vo.setServiceTime(e.getServiceTime());
|
|
|
+ vo.setStatus(e.getStatus());
|
|
|
+ vos.add(vo);
|
|
|
+ });
|
|
|
+
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysSubOrderListOnFulfillerVo> listOnFulfiller(Long fulfillerId) {
|
|
|
+
|
|
|
+ List<SysSubOrderListOnFulfillerVo> vos = new ArrayList<>();
|
|
|
+
|
|
|
+ baseMapper.selectList(
|
|
|
+ Wrappers.lambdaQuery(SysSubOrder.class)
|
|
|
+ .eq(SysSubOrder::getFulfiller, fulfillerId)
|
|
|
+ .orderByDesc(SysSubOrder::getId)
|
|
|
+ )
|
|
|
+ .forEach(e -> {
|
|
|
+ SysSubOrderListOnFulfillerVo vo = new SysSubOrderListOnFulfillerVo();
|
|
|
+ vo.setId(e.getId());
|
|
|
+ vo.setCode(e.getCode());
|
|
|
+ vo.setService(e.getService());
|
|
|
+ vo.setPrice(e.getPrice());
|
|
|
+ vo.setServiceTime(e.getServiceTime());
|
|
|
+ vo.setStatus(e.getStatus());
|
|
|
+ vos.add(vo);
|
|
|
+ });
|
|
|
+
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TableDataInfo<SysSubOrderListOnStoreVo> listOnStore(Long storeId, PageQuery pageQuery) {
|
|
|
+
|
|
|
+ Page<SysSubOrder> page = baseMapper.selectPage(
|
|
|
+ pageQuery.build(),
|
|
|
+ Wrappers.lambdaQuery(SysSubOrder.class)
|
|
|
+ .eq(SysSubOrder::getStore, storeId)
|
|
|
+ .orderByDesc(SysSubOrder::getId)
|
|
|
+ );
|
|
|
+
|
|
|
+ List<Long> customerIds = new ArrayList<>();
|
|
|
+ Map<Long, RemoteCustomerVo> customerMap = new HashMap<>();
|
|
|
+ page.getRecords().forEach(e -> customerIds.add(e.getUsrCustomer()));
|
|
|
+ remoteCustomerService.getByIds(customerIds).forEach(e -> customerMap.put(e.getId(), e));
|
|
|
+
|
|
|
+ return TableDataInfo.build(page.convert(e -> {
|
|
|
+ SysSubOrderListOnStoreVo vo = new SysSubOrderListOnStoreVo();
|
|
|
+ vo.setId(e.getId());
|
|
|
+ vo.setCode(e.getCode());
|
|
|
+ vo.setService(e.getService());
|
|
|
+ vo.setCustomer(customerMap.get(e.getUsrCustomer()).getName());
|
|
|
+ vo.setPrice(e.getPrice());
|
|
|
+ vo.setCreateTime(e.getCreateTime());
|
|
|
+ vo.setStatus(e.getStatus());
|
|
|
+ return vo;
|
|
|
+ }));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TableDataInfo<SysSubOrderStatisticPageVo> listOnStatistic(Integer status, PageQuery pageQuery, Long userId) {
|
|
|
+
|
|
|
+ LambdaQueryWrapper<SysSubOrder> wrapper = Wrappers.lambdaQuery(SysSubOrder.class)
|
|
|
+ .eq(status != null, SysSubOrder::getStatus, status)
|
|
|
+ .eq(SysSubOrder::getFulfiller, userId)
|
|
|
+ .orderByDesc(SysSubOrder::getId);
|
|
|
+
|
|
|
+ Page<SysSubOrder> page = baseMapper.selectPage(pageQuery.build(), wrapper);
|
|
|
+
|
|
|
+ List<Long> petIds = new ArrayList<>();
|
|
|
+ List<Long> customerIds = new ArrayList<>();
|
|
|
+ List<Long> avatarIds = new ArrayList<>();
|
|
|
+ Map<Long, RemotePetVo> petMap = new HashMap<>();
|
|
|
+ Map<Long, RemoteCustomerVo> customerMap = new HashMap<>();
|
|
|
+ Map<Long, RemoteFile> avatarMap = new HashMap<>();
|
|
|
+ page.getRecords().forEach(e -> {
|
|
|
+ petIds.add(e.getUsrPet());
|
|
|
+ customerIds.add(e.getUsrCustomer());
|
|
|
+ });
|
|
|
+ remotePetService.getByIds(petIds).forEach(e -> {
|
|
|
+ petMap.put(e.getId(), e);
|
|
|
+ if (e.getAvatar() != null) {
|
|
|
+ avatarIds.add(e.getAvatar());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ remoteCustomerService.getByIds(customerIds).forEach(e -> customerMap.put(e.getId(), e));
|
|
|
+ remoteFileService.selectByIds(avatarIds).forEach(e -> avatarMap.put(e.getOssId(), e));
|
|
|
+
|
|
|
+ return TableDataInfo.build(page.convert(e -> {
|
|
|
+ SysSubOrderStatisticPageVo vo = new SysSubOrderStatisticPageVo();
|
|
|
+ vo.setId(e.getId());
|
|
|
+ vo.setService(e.getService());
|
|
|
+ vo.setPrice(e.getPrice());
|
|
|
+ vo.setServiceTime(e.getServiceTime());
|
|
|
+ vo.setPet(e.getUsrPet());
|
|
|
+ RemotePetVo pet = petMap.get(e.getUsrPet());
|
|
|
+ if (pet != null) {
|
|
|
+ vo.setPetName(pet.getName());
|
|
|
+ vo.setBreed(pet.getBreed());
|
|
|
+ vo.setPetAvatar(pet.getAvatar());
|
|
|
+ vo.setPetAvatarUrl(avatarMap.containsKey(pet.getAvatar()) ? avatarMap.get(pet.getAvatar()).getUrl() : null);
|
|
|
+ }
|
|
|
+ vo.setStore(e.getStore());
|
|
|
+// vo.setStoreName();
|
|
|
+// vo.setStoreAreaCode();
|
|
|
+// vo.setStoreAddress();
|
|
|
+ vo.setCustomer(e.getUsrCustomer());
|
|
|
+ RemoteCustomerVo customer = customerMap.get(e.getUsrCustomer());
|
|
|
+ if (customer != null) {
|
|
|
+ vo.setCustomerName(customer.getName());
|
|
|
+ vo.setCustomerPhone(customer.getPhone());
|
|
|
+ }
|
|
|
+ vo.setFromCode(e.getFromCode());
|
|
|
+ vo.setFromAddress(e.getFromAddress());
|
|
|
+ vo.setToCode(e.getToCode());
|
|
|
+ vo.setToAddress(e.getToAddress());
|
|
|
+ vo.setRemark(e.getRemark());
|
|
|
+ vo.setStatus(e.getStatus());
|
|
|
+ return vo;
|
|
|
+ }));
|
|
|
+ }
|
|
|
}
|