Przeglądaj źródła

奖惩、备注等基本接口完成;接单功能已完成

Huanyi 1 miesiąc temu
rodzic
commit
9bd960b573
15 zmienionych plików z 318 dodań i 19 usunięć
  1. 2 2
      ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/CustomBeanFactoryPostProcessor.java
  2. 1 0
      ruoyi-common/yingpaipay-common-platform/src/main/java/org/dromara/common/platform/Platform.java
  3. 23 3
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/controller/SysSubOrderController.java
  4. 10 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/bo/SysSubOrderAcceptBo.java
  5. 14 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/bo/SysSubOrderPendingAcceptPageBo.java
  6. 18 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/bo/SysSubOrderRemarkBo.java
  7. 22 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderCountVo.java
  8. 2 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderListPageVo.java
  9. 53 0
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderPendingAcceptPageVo.java
  10. 11 3
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/ISysSubOrderService.java
  11. 121 7
      ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/impl/SysSubOrderServiceImpl.java
  12. 6 4
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/controller/SysServiceController.java
  13. 20 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/vo/SysServiceOnTaskHallVo.java
  14. 3 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/ISysServiceService.java
  15. 12 0
      ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/impl/SysServiceServiceImpl.java

+ 2 - 2
ruoyi-common/ruoyi-common-dubbo/src/main/java/org/dromara/common/dubbo/config/CustomBeanFactoryPostProcessor.java

@@ -65,8 +65,8 @@ public class CustomBeanFactoryPostProcessor implements BeanFactoryPostProcessor,
         // 创建临时的 InetUtils 实例
         try (InetUtils inetUtils = new InetUtils(properties)) {
 //            String ip = "127.0.0.1";
-//            String ip = "192.168.0.102";
-            String ip = "192.168.1.118";
+           String ip = "192.168.0.102";
+//           String ip = "192.168.1.118";
             // 获取第一个非回环地址
             InetAddress address = inetUtils.findFirstNonLoopbackAddress();
             if (address != null) {

+ 1 - 0
ruoyi-common/yingpaipay-common-platform/src/main/java/org/dromara/common/platform/Platform.java

@@ -22,6 +22,7 @@ public enum Platform {
 
     ADMIN(0, "4pwuAzDBzUd6hekvGHHKedT4VX5WHERAXHpeztPFAzRaUsBUrD", "管理后台"),
     MERCHANT(1, "MfJkMNMW2JKXBuPcbP2rxkD3ynXmReAZZFm4fN7cAGwGJdKCmd", "商户后台"),
+
     ;
 
     private final Integer id;

+ 23 - 3
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/controller/SysSubOrderController.java

@@ -6,10 +6,10 @@ import org.dromara.common.idempotent.annotation.RepeatSubmit;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.web.core.BaseController;
-import org.dromara.order.domain.bo.SysSubOrderCancelBo;
-import org.dromara.order.domain.bo.SysSubOrderDispatchBo;
-import org.dromara.order.domain.bo.SysSubOrderListPageBo;
+import org.dromara.order.domain.bo.*;
+import org.dromara.order.domain.vo.SysSubOrderCountVo;
 import org.dromara.order.domain.vo.SysSubOrderListPageVo;
+import org.dromara.order.domain.vo.SysSubOrderPendingAcceptPageVo;
 import org.dromara.order.domain.vo.SysSubOrderVo;
 import org.dromara.order.service.ISysSubOrderService;
 import org.springframework.web.bind.annotation.*;
@@ -48,4 +48,24 @@ public class SysSubOrderController extends BaseController {
         return toAjax(subOrderService.cancel(bo));
     }
 
+    @GetMapping("/listPendingAccept")
+    public TableDataInfo<SysSubOrderPendingAcceptPageVo> listPendingAccept(SysSubOrderPendingAcceptPageBo bo, PageQuery pageQuery) {
+        return subOrderService.listPendingAccept(bo, pageQuery);
+    }
+
+    @PutMapping("/accept")
+    public R<Void> accept(@RequestBody  SysSubOrderAcceptBo bo) {
+        return toAjax(subOrderService.accept(bo));
+    }
+
+    @GetMapping("/count")
+    public R<SysSubOrderCountVo> count() {
+        return R.ok(subOrderService.count());
+    }
+
+    @PutMapping("/remark")
+    public R<Void> remark(@RequestBody SysSubOrderRemarkBo bo) {
+        return toAjax(subOrderService.remark(bo));
+    }
+
 }

+ 10 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/bo/SysSubOrderAcceptBo.java

@@ -0,0 +1,10 @@
+package org.dromara.order.domain.bo;
+
+import lombok.Data;
+
+@Data
+public class SysSubOrderAcceptBo {
+
+    private Long orderId;
+
+}

+ 14 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/bo/SysSubOrderPendingAcceptPageBo.java

@@ -0,0 +1,14 @@
+package org.dromara.order.domain.bo;
+
+import lombok.Data;
+
+@Data
+public class SysSubOrderPendingAcceptPageBo {
+
+    private Long service;
+
+    private Long minPrice;
+
+    private Long maxPrice;
+
+}

+ 18 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/bo/SysSubOrderRemarkBo.java

@@ -0,0 +1,18 @@
+package org.dromara.order.domain.bo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class SysSubOrderRemarkBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long orderId;
+
+    private String remark;
+
+}

+ 22 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderCountVo.java

@@ -0,0 +1,22 @@
+package org.dromara.order.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class SysSubOrderCountVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long total;
+
+    private Long reject;
+
+    private Long award;
+
+    private Long punishment;
+
+}

+ 2 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderListPageVo.java

@@ -63,4 +63,6 @@ public class SysSubOrderListPageVo implements Serializable {
 
     private Long price;
 
+    private String remark;
+
 }

+ 53 - 0
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/domain/vo/SysSubOrderPendingAcceptPageVo.java

@@ -0,0 +1,53 @@
+package org.dromara.order.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class SysSubOrderPendingAcceptPageVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    private Long service;
+
+    private Long price;
+
+    private Date serviceTime;
+
+    private Long pet;
+
+    private String petName;
+
+    private String breed;
+
+    private Long store;
+
+    private String storeName;
+
+    private String storeAreaCode;
+
+    private String storeAddress;
+
+    private Long customer;
+
+    private String customerName;
+
+    private String customerPhone;
+
+    private String fromCode;
+
+    private String fromAddress;
+
+    private String toCode;
+
+    private String toAddress;
+
+    private String remark;
+
+}

+ 11 - 3
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/ISysSubOrderService.java

@@ -2,10 +2,10 @@ package org.dromara.order.service;
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.order.domain.bo.SysSubOrderCancelBo;
-import org.dromara.order.domain.bo.SysSubOrderDispatchBo;
-import org.dromara.order.domain.bo.SysSubOrderListPageBo;
+import org.dromara.order.domain.bo.*;
+import org.dromara.order.domain.vo.SysSubOrderCountVo;
 import org.dromara.order.domain.vo.SysSubOrderListPageVo;
+import org.dromara.order.domain.vo.SysSubOrderPendingAcceptPageVo;
 import org.dromara.order.domain.vo.SysSubOrderVo;
 
 public interface ISysSubOrderService {
@@ -18,4 +18,12 @@ public interface ISysSubOrderService {
     SysSubOrderVo getInfo(Long id);
 
     TableDataInfo<SysSubOrderListPageVo> listOnMerchant(SysSubOrderListPageBo bo, PageQuery pageQuery);
+
+    TableDataInfo<SysSubOrderPendingAcceptPageVo> listPendingAccept(SysSubOrderPendingAcceptPageBo bo, PageQuery pageQuery);
+
+    boolean accept(SysSubOrderAcceptBo bo);
+
+    boolean remark(SysSubOrderRemarkBo bo);
+
+    SysSubOrderCountVo count();
 }

+ 121 - 7
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/service/impl/SysSubOrderServiceImpl.java

@@ -16,16 +16,17 @@ import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.utils.WrapperUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.fulfiller.api.RemoteFulfillerService;
 import org.dromara.fulfiller.api.domain.vo.RemoteFulfillerVo;
 import org.dromara.fulfiller.api.model.FulfillerLoginUser;
 import org.dromara.order.domain.SysOrder;
 import org.dromara.order.domain.SysSubOrder;
 import org.dromara.order.domain.SysSubOrderLog;
-import org.dromara.order.domain.bo.SysSubOrderCancelBo;
-import org.dromara.order.domain.bo.SysSubOrderDispatchBo;
-import org.dromara.order.domain.bo.SysSubOrderListPageBo;
+import org.dromara.order.domain.bo.*;
+import org.dromara.order.domain.vo.SysSubOrderCountVo;
 import org.dromara.order.domain.vo.SysSubOrderListPageVo;
+import org.dromara.order.domain.vo.SysSubOrderPendingAcceptPageVo;
 import org.dromara.order.domain.vo.SysSubOrderVo;
 import org.dromara.order.enums.OrderLogActionTypeEnum;
 import org.dromara.order.enums.OrderLogActionerTypeEnum;
@@ -43,10 +44,7 @@ import org.dromara.system.api.domain.vo.RemoteUserVo;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 @RequiredArgsConstructor
@@ -146,6 +144,7 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
                 vo.setFulfillerStatus(fulfiller.getStatus());
             }
             vo.setPrice(e.getPrice());
+            vo.setRemark(e.getRemark());
             return vo;
         }));
     }
@@ -275,8 +274,123 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
                 vo.setFulfillerStatus(fulfiller.getStatus());
             }
             vo.setPrice(e.getPrice());
+            vo.setRemark(e.getRemark());
             return vo;
         }));
 
     }
+
+    @Override
+    public TableDataInfo<SysSubOrderPendingAcceptPageVo> listPendingAccept(SysSubOrderPendingAcceptPageBo bo, PageQuery pageQuery) {
+
+        Page<SysSubOrder> page = baseMapper.selectPage(
+            pageQuery.build(),
+            Wrappers.lambdaQuery(SysSubOrder.class)
+                .eq(bo.getService() != null, SysSubOrder::getService, bo.getService())
+                .le(bo.getMaxPrice() != null, SysSubOrder::getPrice, bo.getMaxPrice())
+                .ge(bo.getMinPrice() != null, SysSubOrder::getPrice, bo.getMinPrice())
+                .eq(SysSubOrder::getFulfiller, LoginHelper.getUserId())
+                .eq(SysSubOrder::getStatus, OrderStatusEnum.PENDING_ACCEPT.getValue())
+                .orderByDesc(SysSubOrder::getId)
+        );
+
+        List<Long> petIds = new ArrayList<>();
+        List<Long> customerIds = new ArrayList<>();
+        Map<Long, RemotePetVo> petMap = new HashMap<>();
+        Map<Long, RemoteCustomerVo> customerMap = new HashMap<>();
+        page.getRecords().forEach(e -> {
+            petIds.add(e.getUsrPet());
+            customerIds.add(e.getUsrCustomer());
+        });
+        remotePetService.getByIds(petIds).forEach(e -> petMap.put(e.getId(), e));
+        remoteCustomerService.getByIds(customerIds).forEach(e -> customerMap.put(e.getId(), e));
+
+        return TableDataInfo.build(page.convert(e -> {
+            SysSubOrderPendingAcceptPageVo vo = new SysSubOrderPendingAcceptPageVo();
+            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.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.getAddress());
+            }
+            vo.setFromCode(e.getFromCode());
+            vo.setFromAddress(e.getFromAddress());
+            vo.setToCode(e.getToCode());
+            vo.setToAddress(e.getToAddress());
+            vo.setRemark(e.getRemark());
+            return vo;
+        }));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean accept(SysSubOrderAcceptBo bo) {
+
+        SysSubOrder subOrder = baseMapper.selectById(bo.getOrderId());
+        subOrder.setStatus(OrderStatusEnum.IN_SERVICE.getValue());
+        boolean subOrderFlag = baseMapper.updateById(subOrder) == 0;
+        if (subOrderFlag) {
+            throw new RuntimeException("修改订单状态失败");
+        }
+
+        SysSubOrderLog orderLog = new SysSubOrderLog();
+        orderLog.setSubOrderId(subOrder.getId());
+        orderLog.setActioner(LoginHelper.getUserId());
+        orderLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
+        orderLog.setLogType(OrderLogTypeEnum.ORDER.getValue());
+        orderLog.setActionType(OrderLogActionTypeEnum.RECIEVED.getValue());
+        orderLog.setTitle(OrderLogActionTypeEnum.RECIEVED.getLabel());
+        orderLog.setContent("履约者已确认接单");
+        orderLog.setTenantId(subOrder.getTenantId());
+
+        SysSubOrderLog fulfillerLog = new SysSubOrderLog();
+        fulfillerLog.setSubOrderId(subOrder.getId());
+        fulfillerLog.setActioner(LoginHelper.getUserId());
+        fulfillerLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
+        fulfillerLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
+        fulfillerLog.setActionType(OrderLogActionTypeEnum.FULFILLER_RECIEVE.getValue());
+        fulfillerLog.setTitle(OrderLogActionTypeEnum.FULFILLER_RECIEVE.getLabel());
+        fulfillerLog.setContent("履约者 " + LoginHelper.getLoginUser().getNickname() + " 已确认接单,准备前往服务地点");
+        fulfillerLog.setTenantId(subOrder.getTenantId());
+
+        boolean logFlag = subOrderLogMapper.insertBatch(Arrays.asList(orderLog, fulfillerLog));
+        if (!logFlag) {
+            throw new RuntimeException("新增日志失败");
+        }
+
+        return true;
+    }
+
+    @Override
+    public boolean remark(SysSubOrderRemarkBo bo) {
+        return baseMapper.update(
+            Wrappers.lambdaUpdate(SysSubOrder.class)
+                .eq(SysSubOrder::getId, bo.getOrderId())
+                .set(SysSubOrder::getRemark, bo.getRemark())
+        ) > 0;
+    }
+
+    @Override
+    public SysSubOrderCountVo count() {
+        SysSubOrderCountVo vo = new SysSubOrderCountVo();
+        vo.setTotal(0L);
+        vo.setReject(0L);
+        vo.setAward(0L);
+        vo.setPunishment(0L);
+        return vo;
+    }
 }

+ 6 - 4
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/controller/SysServiceController.java

@@ -6,9 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.dromara.service.domain.vo.SysServiceModeVo;
-import org.dromara.service.domain.vo.SysServiceOnOrderVo;
-import org.dromara.service.domain.vo.SysServiceOnStoreVo;
+import org.dromara.service.domain.vo.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -20,7 +18,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.service.domain.vo.SysServiceVo;
 import org.dromara.service.domain.bo.SysServiceBo;
 import org.dromara.service.service.ISysServiceService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -117,4 +114,9 @@ public class SysServiceController extends BaseController {
         return R.ok(sysServiceService.listOnOrder());
     }
 
+    @GetMapping("/listOnTaskHall")
+    public R<List<SysServiceOnTaskHallVo>> listOnTaskHall() {
+        return R.ok(sysServiceService.listOnTaskHall());
+    }
+
 }

+ 20 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/domain/vo/SysServiceOnTaskHallVo.java

@@ -0,0 +1,20 @@
+package org.dromara.service.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class SysServiceOnTaskHallVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    private String name;
+
+    private Integer mode;
+
+}

+ 3 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/ISysServiceService.java

@@ -3,6 +3,7 @@ package org.dromara.service.service;
 import org.dromara.service.domain.SysService;
 import org.dromara.service.domain.vo.SysServiceOnOrderVo;
 import org.dromara.service.domain.vo.SysServiceOnStoreVo;
+import org.dromara.service.domain.vo.SysServiceOnTaskHallVo;
 import org.dromara.service.domain.vo.SysServiceVo;
 import org.dromara.service.domain.bo.SysServiceBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -72,4 +73,6 @@ public interface ISysServiceService {
     List<SysServiceOnStoreVo> listOnStore();
 
     List<SysServiceOnOrderVo> listOnOrder();
+
+    List<SysServiceOnTaskHallVo> listOnTaskHall();
 }

+ 12 - 0
ruoyi-modules/yingpaipay-service/src/main/java/org/dromara/service/service/impl/SysServiceServiceImpl.java

@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.service.domain.vo.SysServiceOnOrderVo;
 import org.dromara.service.domain.vo.SysServiceOnStoreVo;
+import org.dromara.service.domain.vo.SysServiceOnTaskHallVo;
 import org.springframework.stereotype.Service;
 import org.dromara.service.domain.bo.SysServiceBo;
 import org.dromara.service.domain.vo.SysServiceVo;
@@ -153,4 +154,15 @@ public class SysServiceServiceImpl implements ISysServiceService {
             return vo;
         }).toList();
     }
+
+    @Override
+    public List<SysServiceOnTaskHallVo> listOnTaskHall() {
+        return baseMapper.selectList().stream().map(e -> {
+            SysServiceOnTaskHallVo vo = new SysServiceOnTaskHallVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setMode(e.getMode());
+            return vo;
+        }).toList();
+    }
 }