refactor(orders):导入项目订单模块初始工程
This commit is contained in:
parent
fd089d5147
commit
de68066d84
87
jzo2o-oreders/jzo2o-orders-base/pom.xml
Normal file
87
jzo2o-oreders/jzo2o-orders-base/pom.xml
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>jzo2o-oreders</artifactId>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>jzo2o-orders-base</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-mysql</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-redis</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.jzo2o</groupId>-->
|
||||
<!-- <artifactId>jzo2o-shardingsphere-jdbc</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.jzo2o</groupId>-->
|
||||
<!-- <artifactId>jzo2o-api</artifactId>-->
|
||||
<!-- <exclusions>-->
|
||||
<!-- <exclusion>-->
|
||||
<!-- <groupId>com.alibaba.cloud</groupId>-->
|
||||
<!-- <artifactId>spring-cloud-alibaba-sentinel</artifactId>-->
|
||||
<!-- </exclusion>-->
|
||||
<!-- </exclusions>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-canal-sync</artifactId>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.jzo2o</groupId>-->
|
||||
<!-- <artifactId>jzo2o-statemachine</artifactId>-->
|
||||
<!-- <version>1.0-SNAPSHOT</version>-->
|
||||
<!-- </dependency>-->
|
||||
<!--seata-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.alibaba.cloud</groupId>-->
|
||||
<!-- <artifactId>spring-cloud-starter-alibaba-seata</artifactId>-->
|
||||
<!-- <exclusions>-->
|
||||
<!-- <!–版本较低,1.4.2,因此排除–>-->
|
||||
<!-- <exclusion>-->
|
||||
<!-- <artifactId>seata-spring-boot-starter</artifactId>-->
|
||||
<!-- <groupId>io.seata</groupId>-->
|
||||
<!-- </exclusion>-->
|
||||
<!-- </exclusions>-->
|
||||
<!-- </dependency>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <artifactId>seata-spring-boot-starter</artifactId>-->
|
||||
<!-- <groupId>io.seata</groupId>-->
|
||||
<!-- <exclusions>-->
|
||||
<!-- <exclusion>-->
|
||||
<!-- <groupId>org.antlr</groupId>-->
|
||||
<!-- <artifactId>antlr4</artifactId>-->
|
||||
<!-- </exclusion>-->
|
||||
<!-- </exclusions>-->
|
||||
<!-- </dependency>-->
|
||||
<dependency>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-mvc</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -0,0 +1,17 @@
|
||||
package com.jzo2o.orders.base.config;
|
||||
|
||||
import com.jzo2o.orders.base.properties.DispatchProperties;
|
||||
import com.jzo2o.orders.base.properties.ExecutorProperties;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan({"com.jzo2o.orders.base.service","com.jzo2o.orders.base.handler"})
|
||||
@MapperScan("com.jzo2o.orders.base.mapper")
|
||||
//@Import({OrderStateMachine.class})
|
||||
@EnableConfigurationProperties({DispatchProperties.class, ExecutorProperties.class})
|
||||
public class AutoImportConfiguration {
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.jzo2o.orders.base.constants;
|
||||
|
||||
public class ErrorInfo {
|
||||
public static class Msg {
|
||||
public static final String SEIZE_ORDERS_FAILD = "单子已经被抢走了";
|
||||
public static final String SEIZE_ORDERS_SERVE_TIME_EXISTS = "当前服务预约时间冲突";
|
||||
public static final String SEIZE_ORDERS_RECEIVE_ORDERS_NUM_OVER = "当前接单数已超出范围";
|
||||
|
||||
public static final String SEIZE_ORDERS_RECEIVE_CLOSED = "当前接单设置已关闭,如需抢单,需开启接单";
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.jzo2o.orders.base.constants;
|
||||
|
||||
public class EsIndexConstants {
|
||||
/**
|
||||
* 服务人员信息索引
|
||||
*/
|
||||
public static final String SERVER_PROVIDER_INFO = "serve_provider_info";
|
||||
|
||||
public static final String ORDERS_SEIZE = "orders_seize";
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package com.jzo2o.orders.base.constants;
|
||||
|
||||
public class FieldConstants {
|
||||
/**
|
||||
* 预约时间
|
||||
*/
|
||||
public static final String SERVE_START_TIME = "serve_start_time";
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
public static final String CITY_CODE = "city_code";
|
||||
|
||||
/**
|
||||
* 服务类型id
|
||||
*/
|
||||
public static final String SERVE_TYPE_ID = "serve_type_id";
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
public static final String SERVE_ITEM_ID = "serve_item_id";
|
||||
|
||||
/**
|
||||
* 服务类型名称
|
||||
*/
|
||||
public static final String SERVE_TYPE_NAME = "serve_type_name";
|
||||
|
||||
/**
|
||||
* 服务项名称
|
||||
*/
|
||||
public static final String SERVE_ITEM_NAME = "serve_item_name";
|
||||
|
||||
/**
|
||||
* 关键字字段
|
||||
*/
|
||||
public static final String KEY_WORDS = "key_words";
|
||||
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
public static final String LOCATION = "location";
|
||||
|
||||
public static final String SERVE_TIME = "serve_time";
|
||||
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
public static final String SORT_BY = "sort_by";
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.jzo2o.orders.base.constants;
|
||||
|
||||
/**
|
||||
* 订单常量
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/7/28 15:06
|
||||
**/
|
||||
public class OrderConstants {
|
||||
public static final class Status {
|
||||
public static final String NO_PAY = "NO_PAY";
|
||||
public static final String DISPATCHING = "DISPATCHING";
|
||||
public static final String NO_SERVE = "NO_SERVE";
|
||||
public static final String SERVING = "SERVING";
|
||||
public static final String NO_EVALUATION = "NO_EVALUATION";
|
||||
public static final String FINISHED = "FINISHED";
|
||||
public static final String CANCELED = "CANCELED";
|
||||
public static final String CHARGEBACK = "CHARGEBACK";
|
||||
}
|
||||
|
||||
public static final class ChangeEvent {
|
||||
public static final String PAYED = "PAYED";
|
||||
public static final String DISPATCH = "DISPATCH";
|
||||
public static final String START_SERVE = "START_SERVE";
|
||||
public static final String COMPLETE_SERVE = "COMPLETE_SERVE";
|
||||
public static final String EVALUATE = "EVALUATE";
|
||||
public static final String CANCEL = "CANCEL";
|
||||
public static final String SERVE_PROVIDER_CANCEL = "SERVE_PROVIDER_CANCEL";
|
||||
|
||||
public static final String CLOSE_DISPATCHING_ORDER = "CLOSE_DISPATCHING_ORDER";
|
||||
public static final String CLOSE_NO_SERVE_ORDER = "CLOSE_NO_SERVE_ORDER";
|
||||
public static final String CLOSE_SERVING_ORDER = "CLOSE_SERVING_ORDER";
|
||||
public static final String CLOSE_NO_EVALUATION_ORDER = "CLOSE_NO_EVALUATION_ORDER";
|
||||
public static final String CLOSE_FINISHED_ORDER = "CLOSE_FINISHED_ORDER";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package com.jzo2o.orders.base.constants;
|
||||
|
||||
public class OrdersOriginType {
|
||||
public static final int SEIZE = 1;
|
||||
public static final int DISPATCH = 2;
|
||||
}
|
||||
@ -0,0 +1,169 @@
|
||||
package com.jzo2o.orders.base.constants;
|
||||
|
||||
public class RedisConstants {
|
||||
public static final class RedisFormatter {
|
||||
/**
|
||||
* 抢单用户锁模板,格式:ORDERS:SEIZE_#{serveProviderId}
|
||||
*/
|
||||
public static final String SEIZE = "ORDERS:SEIZE_#{serveProviderId}";
|
||||
|
||||
/**
|
||||
* 派单锁模板,格式:ORDERS:DISPATCH_#{id}
|
||||
*/
|
||||
public static final String DISPATCH = "ORDERS:DISPATCH_#{id}";
|
||||
/**
|
||||
* 加入派单池锁模板,格式:ORDERS:JSONDISPATCHLIST_#{id}
|
||||
*/
|
||||
public static final String JSONDISPATCHLIST = "ORDERS:JSONDISPATCHLIST_#{id}";
|
||||
|
||||
public static final String REJECT = "ORDERS:DISPATCH:REJECT_#{dispatchRejectReqDTO.id}";
|
||||
|
||||
/**
|
||||
* 抢单超时
|
||||
*/
|
||||
public static final String SEIZE_TIME_OUT = "ORDERS:SEIZE:TIME_OUT:#{cityCode}";
|
||||
|
||||
public static final String ORDERS_SERVE_TIMEOUT = "ORDERS:SEVER_TIMEOUT:#{ordersServe.id}";
|
||||
}
|
||||
public static final class RedisKey {
|
||||
/**
|
||||
* 抢单id列表redis key模板:ORDERS:SEIZE:IDS_{服务人员id或机构id}_{citycode}
|
||||
*/
|
||||
public static final String ORDERS_SEIZE_IDS_FOR_SERVE_PROVIDE = "ORDERS:SEIZE:IDS_%s_%s";
|
||||
|
||||
/**
|
||||
* 抢单列表redis key模板:ORDERS:SEIZE:PAGE_{citycode}
|
||||
*/
|
||||
public static final String ORDERS_SEIZE_PAGE = "ORDERS:SEIZE:PAGE_%s";
|
||||
|
||||
// 抢单相关
|
||||
/**
|
||||
*抢单池,key格式:ORDERS:SEIZE:POOL_{抢单id}_{抢单id尾号}
|
||||
*/
|
||||
public static final String ORDERS_SEIZE = "ORDERS:SEIZE:%s_{%s}";
|
||||
|
||||
/**
|
||||
* 抢单结果同步队列,该队列分为10条,格式:ORDERS:SEIZE:SYNC_{抢单id尾号}
|
||||
* 序号分别为:0到9的10个数字
|
||||
*/
|
||||
public static final String ORERS_SEIZE_SYNC_QUEUE_NAME = "ORDERS:SEIZE:SYNC";
|
||||
|
||||
/**
|
||||
* 当前用户/机构当前接单数量,接单+派单总数量
|
||||
* 接单+派单操作+1
|
||||
* 完成服务/取消服务-1
|
||||
* 格式:PROVIDER:SERVE:NUM_{cityCode}_{序号}
|
||||
*/
|
||||
public static final String PROVIDER_SERVE_NUM = "PROVIDER:SERVE:NUM_%s_{%s}";
|
||||
|
||||
/**
|
||||
* 所有服务单放在一起
|
||||
*/
|
||||
public static final String SERVE_ORDERS = "SERVE_ORDERS:PAGE_QUERY:PAGE_%s";
|
||||
|
||||
public static final String SERVE_ORDERS_KEY = "SERVE_ORDERS:PAGE_QUERY:PAGE_#{serveProviderId}";
|
||||
|
||||
/**
|
||||
* 服务人员或机构每日取消服务单次数
|
||||
*/
|
||||
public static final String SERVE_CANCEL_TIMES_EVERY_DAY = "ORDERS:SERVE:CANCEL_%s_%s";
|
||||
|
||||
public static final String SERVE_TIME_UPDATE = "ORDERS:SERVE_TIME:#{id}";
|
||||
|
||||
/**
|
||||
* 库存,hash结构
|
||||
*/
|
||||
public static final String ORDERS_RESOURCE_STOCK = "ORDERS:RESOURCE:STOCK:{%s}";
|
||||
|
||||
/**
|
||||
* 派单连续失败次数 string
|
||||
*/
|
||||
public static final String ORDERS_DISPATCH_FAILD_TIMES = "ORDERS:DISPATCH:FAILD_TIMES_%s_{%s}";
|
||||
|
||||
/**
|
||||
* 派单成功同步队列名称
|
||||
*/
|
||||
public static final String ORERS_DISPATCH_SYNC_QUEUE_NAME = "ORDERS:DISPATCH:SYNC";
|
||||
|
||||
/**
|
||||
* 服务时间状态 string 格式:PROVIDER:SERVE_TIME:{serveProviderId}_{serveTime}_{序号}
|
||||
*/
|
||||
public static final String SERVE_PROVIDER_TIMES = "PROVIDER:SERVE_TIME:%s_%s_{%s}";
|
||||
|
||||
/**
|
||||
* 服务状态表 hash 格式:PROVIDER:SERVE_STATE:{序号}
|
||||
* key 格式:{服务人员/机构id}_{times或num};time表示接单时间列表,nun表示接单数量
|
||||
*/
|
||||
public static final String SERVE_PROVIDER_STATE = "PROVIDER:SERVE_STATE:{%s}";
|
||||
|
||||
/**
|
||||
* 派单列表 - zSet结构
|
||||
*/
|
||||
public static final String DISPATCH_LIST = "ORDERS:DISPATCH:LIST";
|
||||
|
||||
/**
|
||||
* 用户端滚动分页查询订单
|
||||
*/
|
||||
public static final String ORDERS = "ORDERS:PAGE_QUERY:PAGE_%s";
|
||||
}
|
||||
|
||||
public static class Lock {
|
||||
/**
|
||||
* 抢派单分布式锁
|
||||
*/
|
||||
public static final String DISPATCH_OR_SEIZE_LOCK = "ORDERS:DISPATCH_OR_SEIZE:%s";
|
||||
|
||||
public static final String PROVIDER_DISPATCH_LOCK = "PROVIDER:DISPATCH:LOCK_%s";
|
||||
|
||||
/**
|
||||
* 派单同步锁定同步队列redis分布式锁
|
||||
*/
|
||||
public static final String DISPATCH_SYNC_LOCK = "ORDERS:DISPATCH:SYNC_%s";
|
||||
|
||||
/**
|
||||
* 接单超时
|
||||
*/
|
||||
public static final String DISPATCH_RECEIVE_TIMEOUT_LOCK = "ORDERS:DISPATCH:TIMEOUT";
|
||||
|
||||
/**
|
||||
* 抢单单同步锁定同步队列redis分布式锁
|
||||
*/
|
||||
public static final String SEIZE_SYNC_LOCK = "ORDERS:SEIZE:SYNC_%s";
|
||||
|
||||
/**
|
||||
* 订单分片id获取锁
|
||||
*/
|
||||
public static final String ORDERS_SHARD_KEY_ID_LOCK = "ORDERS:SHARD_KEY:LOCK";
|
||||
|
||||
public static final String ORDERS_SHARD_KEY_ID_GENERATOR = "ORDERS:SHARD_KEY:GENERATOR";
|
||||
|
||||
}
|
||||
public static class Ttl {
|
||||
/**
|
||||
* 订单抢单缓存 60s
|
||||
*/
|
||||
public static final long ORDERS_SEIZE_PAGE_TTL = 60;
|
||||
|
||||
/**
|
||||
* 服务单分页有效期
|
||||
*/
|
||||
public static final long SERVE_ORSERS_PAGE_TTL = 600;
|
||||
|
||||
|
||||
/**
|
||||
* 订单分页有效期
|
||||
*/
|
||||
public static final long ORDERS_PAGE_TTL = 600;
|
||||
|
||||
|
||||
/**
|
||||
* 抢单派单处理超时时间单位s
|
||||
*/
|
||||
public static final long DISPATCH_SEIZE_LOCK_TTL = 10;
|
||||
|
||||
/**
|
||||
* 派单锁定,10分钟内不能再次派单
|
||||
*/
|
||||
public static final long PROVIDER_DISPATCH_LOCK_TTL = 600;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.jzo2o.orders.base.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 违约行为枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum BreachHaviorTypeEnum {
|
||||
CANCEL_ALLOCATION(1,"机构取消未分配服务单违约行为"),
|
||||
CANCEL_NO_SERVE(2,"机构或服务人员取消待服务订单违约行为"),
|
||||
CANCEL_SERVING(3,"机构或服务人员取消服务中订单违约行为"),
|
||||
DISPATCH_REJECT(4,"机构或服务人员拒绝接单违约行为");
|
||||
private int type;
|
||||
private String desc;
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.jzo2o.orders.base.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum OrderPayStatusEnum {
|
||||
NO_PAY(2, "未支付"),
|
||||
PAY_SUCCESS(4, "支付成功");
|
||||
|
||||
private int status;
|
||||
private final String desc;
|
||||
|
||||
public boolean equals(int status) {
|
||||
return this.status == status;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.jzo2o.orders.base.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum OrderRefundStatusEnum {
|
||||
// APPLY_REFUND(0, "发起退款"),
|
||||
REFUNDING(1, "退款中"),
|
||||
REFUND_SUCCESS(2, "退款成功"),
|
||||
REFUND_FAIL(3, "退款失败");
|
||||
|
||||
private int status;
|
||||
private final String desc;
|
||||
|
||||
public boolean equals(int status) {
|
||||
return this.status == status;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.jzo2o.orders.base.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum OrderStatusChangeEventEnum {
|
||||
PAYED(OrderStatusEnum.NO_PAY, OrderStatusEnum.DISPATCHING, "支付成功", "payed"),
|
||||
DISPATCH(OrderStatusEnum.DISPATCHING, OrderStatusEnum.NO_SERVE, "接单/抢单成功", "dispatch"),
|
||||
START_SERVE(OrderStatusEnum.NO_SERVE, OrderStatusEnum.SERVING, "开始服务", "start_serve"),
|
||||
COMPLETE_SERVE(OrderStatusEnum.SERVING, OrderStatusEnum.FINISHED, "完成服务", "complete_serve"),
|
||||
// EVALUATE(OrderStatusEnum.NO_EVALUATION, OrderStatusEnum.FINISHED, "评价完成", "evaluate"),
|
||||
CANCEL(OrderStatusEnum.NO_PAY, OrderStatusEnum.CANCELED, "取消订单", "cancel"),
|
||||
SERVE_PROVIDER_CANCEL(OrderStatusEnum.NO_SERVE, OrderStatusEnum.DISPATCHING, "服务人员/机构取消订单", "serve_provider_cancel"),
|
||||
CLOSE_DISPATCHING_ORDER(OrderStatusEnum.DISPATCHING, OrderStatusEnum.CLOSED, "派单中订单关闭", "close_dispatching_order"),
|
||||
CLOSE_NO_SERVE_ORDER(OrderStatusEnum.NO_SERVE, OrderStatusEnum.CLOSED, "待服务订单关闭", "close_no_serve_order"),
|
||||
CLOSE_SERVING_ORDER(OrderStatusEnum.SERVING, OrderStatusEnum.CLOSED, "服务中订单关闭", "close_serving_order"),
|
||||
// CLOSE_NO_EVALUATION_ORDER(OrderStatusEnum.NO_EVALUATION, OrderStatusEnum.CLOSED, "待评价订单关闭", "close_no_evaluation_order"),
|
||||
CLOSE_FINISHED_ORDER(OrderStatusEnum.FINISHED, OrderStatusEnum.CLOSED, "已完成订单关闭", "close_finished_order");
|
||||
|
||||
/**
|
||||
* 源状态
|
||||
*/
|
||||
private final OrderStatusEnum sourceStatus;
|
||||
|
||||
/**
|
||||
* 目标状态
|
||||
*/
|
||||
private final OrderStatusEnum targetStatus;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String desc;
|
||||
|
||||
/**
|
||||
* 代码
|
||||
*/
|
||||
private final String code;
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.jzo2o.orders.base.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum OrderStatusEnum {
|
||||
NO_PAY(0, "待支付", "NO_PAY"),
|
||||
DISPATCHING(100, "派单中", "DISPATCHING"),
|
||||
NO_SERVE(200, "待服务", "NO_SERVE"),
|
||||
SERVING(300, "服务中", "SERVING"),
|
||||
// NO_EVALUATION(400, "待评价", "NO_EVALUATION"),
|
||||
FINISHED(500, "已完成", "FINISHED"),
|
||||
CANCELED(600, "已取消", "CANCELED"),
|
||||
CLOSED(700, "已关闭", "CLOSED");
|
||||
|
||||
private final Integer status;
|
||||
private final String desc;
|
||||
private final String code;
|
||||
|
||||
/**
|
||||
* 根据状态值获得对应枚举
|
||||
*
|
||||
* @param status 状态
|
||||
* @return 状态对应枚举
|
||||
*/
|
||||
public static OrderStatusEnum codeOf(Integer status) {
|
||||
for (OrderStatusEnum orderStatusEnum : values()) {
|
||||
if (orderStatusEnum.status.equals(status)) {
|
||||
return orderStatusEnum;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.jzo2o.orders.base.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ServeStatusEnum {
|
||||
|
||||
NO_ALLOCATION(0, "待分配"),
|
||||
NO_SERVED(1,"待服务"),
|
||||
SERVING(2,"服务中"),
|
||||
SERVE_FINISHED(3, "服务完成"),
|
||||
CANCLE(4, "取消");
|
||||
private int status;
|
||||
private String desc;
|
||||
|
||||
public boolean equals(Integer status) {
|
||||
return status != null && status.equals(this.getStatus());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.BreachRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 违约记录 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
public interface BreachRecordMapper extends BaseMapper<BreachRecord> {
|
||||
|
||||
/**
|
||||
* 批量添加违约记录
|
||||
* @param breachRecords
|
||||
* @return
|
||||
*/
|
||||
// @Insert("<script>INSERT INTO breach_record(id,serve_provider_id, serve_provider_type, behavior_type, breach_reason, " +
|
||||
// "serve_item_name, serve_address, served_user_id, served_phone, breach_time, breach_day, " +
|
||||
// "orders_id, orders_serve_id) VALUE <foreach collection='breachRecords' item='record' separator=','>" +
|
||||
// "(#{record.id},#{record.serveProviderId},#{record.serveProviderType},#{record.behaviorType},#{record.breachReason}," +
|
||||
// "#{record.serveItemName},#{record.serveAddress},#{record.servedUserId},#{record.servedPhone},#{record.breachTime},#{record.breachDay}," +
|
||||
// "#{record.ordersId},#{record.ordersServeId})</foreach></script>")
|
||||
// Integer batchAdd(@Param("breachRecords")List<BreachRecord> breachRecords);
|
||||
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.HistoryOrdersServeSync;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务任务 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-09-14
|
||||
*/
|
||||
public interface HistoryOrdersServeSyncMapper extends BaseMapper<HistoryOrdersServeSync> {
|
||||
|
||||
@Select("select max(sort_time) from history_orders_sync")
|
||||
LocalDateTime queryMaxSortTime();
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.HistoryOrdersSync;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 历史订单完成15天后同步到历史订单同步表中,通过canal同步到历史订单库中;1天后删除(删除条件当天数据和历史订单库中的订单数据数量一致) Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-09-13
|
||||
*/
|
||||
public interface HistoryOrdersSyncMapper extends BaseMapper<HistoryOrdersSync> {
|
||||
|
||||
@Select("select max(sort_time) from history_orders_sync")
|
||||
LocalDateTime queryMaxSortTime();
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.OrdersCanceled;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-19
|
||||
*/
|
||||
public interface OrdersCanceledMapper extends BaseMapper<OrdersCanceled> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.OrdersDispatch;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 派单池 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-08
|
||||
*/
|
||||
public interface OrdersDispatchMapper extends BaseMapper<OrdersDispatch> {
|
||||
|
||||
// @Insert("<script>INSERT INTO orders_dispatch(id, city_code, serve_type_id," +
|
||||
// "serve_item_name, serve_type_name, serve_item_id, serve_address, serve_item_img," +
|
||||
// "total_amount, serve_start_time, lon, lat," +
|
||||
// "pur_num, is_transfer_manual) VALUE <foreach collection='records' item='record' separator=','>#{record.id},#{record.cityCode},#{record.serveTypeId}," +
|
||||
// "#{record.serveItemName},#{record.serveStartTime},#{record.lon},#{record.lat},#{record.purNum},#{record.isTransferManual})</foreach></script>")
|
||||
// Integer batchAdd(@Param("records")List<OrdersDispatch> ordersDispatches);
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
import com.jzo2o.orders.base.model.dto.OrderUpdateStatusDTO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
public interface OrdersMapper extends BaseMapper<Orders> {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.OrdersRefund;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单退款表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-09-07
|
||||
*/
|
||||
public interface OrdersRefundMapper extends BaseMapper<OrdersRefund> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.OrdersSeize;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 抢单池 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-15
|
||||
*/
|
||||
public interface OrdersSeizeMapper extends BaseMapper<OrdersSeize> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.OrdersServe;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Delete;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务任务 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
public interface OrdersServeMapper extends BaseMapper<OrdersServe> {
|
||||
|
||||
/**
|
||||
* 物理删除服务单
|
||||
* @param id 服务单id
|
||||
* @param serveProviderId 服务人员或机构id
|
||||
* @return 删除数量
|
||||
*/
|
||||
// @Delete("delete from orders_serve where id=#{id} and serve_provider_id=#{serveProviderId}")
|
||||
// Integer deleteByIdAndServeProviderId(@Param("id") Long id, @Param("serveProviderId") Long serveProviderId);
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.jzo2o.orders.base.mapper;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.ServeProviderSync;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机构服务端更新服务时间 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-09
|
||||
*/
|
||||
public interface ServeProviderSyncMapper extends BaseMapper<ServeProviderSync> {
|
||||
|
||||
// @Update("update serve_provider_sync set serve_times=JSON_ARRAY_APPEND(serve_times,'$',#{serveTime})," +
|
||||
// "acceptance_num=acceptance_num+1 where id=#{id}")
|
||||
// int addServeTimes(@Param("id")Long id, @Param("serveTime") Integer serveTime);
|
||||
}
|
||||
@ -0,0 +1,95 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 违约记录
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("breach_record")
|
||||
public class BreachRecord implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 违约id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 违约机构或师傅
|
||||
*/
|
||||
private Long serveProviderId;
|
||||
|
||||
/**
|
||||
* 类型,2:师傅、3:机构
|
||||
*/
|
||||
private Integer serveProviderType;
|
||||
|
||||
/**
|
||||
* 行为类型,1:待分配时取消,2:待服务时取消,3:服务中取消,4:派单拒绝,5:派单超时
|
||||
*/
|
||||
private Integer behaviorType;
|
||||
|
||||
/**
|
||||
* 违约原因
|
||||
*/
|
||||
private String breachReason;
|
||||
|
||||
/**
|
||||
* 服务项名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 被服务人
|
||||
*/
|
||||
private Long servedUserId;
|
||||
|
||||
/**
|
||||
* 被服务人员手机号,脱敏
|
||||
*/
|
||||
private String servedPhone;
|
||||
|
||||
/**
|
||||
* 违约时间
|
||||
*/
|
||||
private LocalDateTime breachTime;
|
||||
|
||||
/**
|
||||
* 违约日,格式例如20200512,2020年5月12日
|
||||
*/
|
||||
private Integer breachDay;
|
||||
|
||||
/**
|
||||
* 违约单订单id
|
||||
*/
|
||||
private Long ordersId;
|
||||
|
||||
/**
|
||||
* 服务单id
|
||||
*/
|
||||
private Long ordersServeId;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机构服务端更新服务时间
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "current_serve_provider_time",autoResultMap = true)
|
||||
public class CurrentServeProviderTime implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<Long> serveTimes;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,222 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务任务
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-09-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "history_orders_serve_sync",autoResultMap = true)
|
||||
public class HistoryOrdersServeSync implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 服务单id,和
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 服务人员或服务机构id
|
||||
*/
|
||||
private Long serveProviderId;
|
||||
|
||||
/**
|
||||
* 服务者类型,2:服务端服务,3:机构端服务
|
||||
*/
|
||||
private Integer serveProviderType;
|
||||
|
||||
/**
|
||||
* 机构服务人员id
|
||||
*/
|
||||
private Long institutionStaffId;
|
||||
|
||||
/**
|
||||
* 机构工作人员姓名
|
||||
*/
|
||||
private String institutionStaffName;
|
||||
/**
|
||||
* 机构名称
|
||||
*/
|
||||
private String institutionName;
|
||||
|
||||
/**
|
||||
* 订单来源类型,1:抢单,2:派单
|
||||
*/
|
||||
private Integer ordersOriginType;
|
||||
|
||||
/**
|
||||
* 客户姓名
|
||||
*/
|
||||
private String contactsName;
|
||||
|
||||
/**
|
||||
* 客户电话
|
||||
*/
|
||||
private String contactsPhone;
|
||||
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务分类id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务分裂名称
|
||||
*/
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 预约时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 服务项名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务图片
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 服务单状态,3:服务完成,4:订单关闭
|
||||
*/
|
||||
private Integer serveStatus;
|
||||
|
||||
/**
|
||||
* 服务人姓名
|
||||
*/
|
||||
private String serveProviderStaffName;
|
||||
|
||||
/**
|
||||
* 服务人手机号
|
||||
*/
|
||||
private String serveProviderStaffPhone;
|
||||
|
||||
/**
|
||||
* 取消人姓名
|
||||
*/
|
||||
private String cancelerName;
|
||||
/**
|
||||
* 取消/被退单时间
|
||||
*/
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 取消/被退单原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 实际服务开始时间
|
||||
*/
|
||||
private LocalDateTime realServeStartTime;
|
||||
|
||||
/**
|
||||
* 实际服务完结时间
|
||||
*/
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
/**
|
||||
* 服务前照片
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> serveBeforeImgs;
|
||||
|
||||
/**
|
||||
* 服务后照片
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> serveAfterImgs;
|
||||
|
||||
/**
|
||||
* 服务前说明
|
||||
*/
|
||||
private String serveBeforeIllustrate;
|
||||
|
||||
/**
|
||||
* 服务后说明
|
||||
*/
|
||||
private String serveAfterIllustrate;
|
||||
|
||||
/**
|
||||
* 订单金额
|
||||
*/
|
||||
private BigDecimal ordersAmount;
|
||||
|
||||
/**
|
||||
* 服务数量
|
||||
*/
|
||||
private Integer serveNum;
|
||||
|
||||
/**
|
||||
* 服务单位
|
||||
*/
|
||||
private Integer unit;
|
||||
|
||||
/**
|
||||
* 服务端/机构端是否展示,1:展示,0:隐藏
|
||||
*/
|
||||
private Integer display;
|
||||
|
||||
/**
|
||||
* 是否是逻辑删除
|
||||
*/
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
* 排序时间(15天后数据无法再次修改,并迁移到历史订单中)
|
||||
*/
|
||||
private LocalDateTime sortTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,301 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 历史订单完成15天后同步到历史订单同步表中,通过canal同步到历史订单库中;1天后删除(删除条件当天数据和历史订单库中的订单数据数量一致)
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-09-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "history_orders_sync",autoResultMap = true)
|
||||
public class HistoryOrdersSync implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单所属人
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 服务类型id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务人
|
||||
*/
|
||||
private Long serveProviderId;
|
||||
|
||||
/**
|
||||
* 服务人类型,2:服务人员,3:机构
|
||||
*/
|
||||
private Integer serveProviderType;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务id
|
||||
*/
|
||||
private Long serveId;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务类型名称
|
||||
*/
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 服务项名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务项图片
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 服务单位
|
||||
*/
|
||||
private Integer unit;
|
||||
|
||||
/**
|
||||
* 订单状态,500:订单完成,600:已取消,700:已关闭
|
||||
*/
|
||||
private Integer ordersStatus;
|
||||
|
||||
/**
|
||||
* 支付状态,1:支付成功,2:已关闭
|
||||
*/
|
||||
private Integer payStatus;
|
||||
|
||||
|
||||
/**
|
||||
* 退款,0:发起退款,1:退款中,2:退款成功 3:退款失败
|
||||
*/
|
||||
private Integer refundStatus;
|
||||
|
||||
/**
|
||||
* 订单完成时间
|
||||
*/
|
||||
private LocalDateTime tradeFinishTime;
|
||||
|
||||
/**
|
||||
* 支付渠道,ALI_PAY:支付宝,WECHAT_PAY:微信
|
||||
*/
|
||||
private String tradingChannel;
|
||||
|
||||
/**
|
||||
* 支付流水
|
||||
*/
|
||||
private String thirdOrderId;
|
||||
|
||||
/**
|
||||
* 派单时间
|
||||
*/
|
||||
private LocalDateTime dispatchTime;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 购买数量
|
||||
*/
|
||||
private Integer purNum;
|
||||
|
||||
/**
|
||||
* 订单总金额
|
||||
*/
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 实际支付金额
|
||||
*/
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
/**
|
||||
* 退款流水
|
||||
*/
|
||||
private String thirdRefundOrderId;
|
||||
|
||||
/**
|
||||
* 取消人姓名
|
||||
*/
|
||||
private String cancelerName;
|
||||
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
/**
|
||||
* 服务详细地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 联系人手机号
|
||||
*/
|
||||
private String contactsPhone;
|
||||
|
||||
/**
|
||||
* 联系人姓名
|
||||
*/
|
||||
private String contactsName;
|
||||
|
||||
/**
|
||||
* 服务人姓名
|
||||
*/
|
||||
private String serveProviderStaffName;
|
||||
|
||||
/**
|
||||
* 服务人手机号
|
||||
*/
|
||||
private String serveProviderStaffPhone;
|
||||
|
||||
/**
|
||||
* 机构名称
|
||||
*/
|
||||
private String institutionName;
|
||||
|
||||
/**
|
||||
* 机构电话
|
||||
*/
|
||||
private String institutionPhone;
|
||||
|
||||
/**
|
||||
* 下单时间
|
||||
*/
|
||||
private LocalDateTime placeOrderTime;
|
||||
|
||||
/**
|
||||
* 服务开始时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 实际服务开始时间
|
||||
*/
|
||||
private LocalDateTime realServeStartTime;
|
||||
|
||||
/**
|
||||
* 实际服务结束时间
|
||||
*/
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
/**
|
||||
* 服务开始图片
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> serveBeforeImgs;
|
||||
|
||||
/**
|
||||
* 服务开始说明
|
||||
*/
|
||||
private String serveBeforeIllustrate;
|
||||
|
||||
/**
|
||||
* 服务完成图片
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> serveAfterImgs;
|
||||
|
||||
/**
|
||||
* 服务完成说明
|
||||
*/
|
||||
private String serveAfterIllustrate;
|
||||
|
||||
/**
|
||||
* 支付超时时间,该时间只对待支付有意义
|
||||
*/
|
||||
private LocalDateTime paymentTimeout;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double lat;
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
private LocalDateTime payTime;
|
||||
|
||||
/**
|
||||
* 取消/被退单时间
|
||||
*/
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 取消/被退单原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 下单年份,格式:yyyy
|
||||
*/
|
||||
private Integer year;
|
||||
|
||||
/**
|
||||
* 下单月份,格式:yyyyMM
|
||||
*/
|
||||
private Integer month;
|
||||
|
||||
/**
|
||||
* 下单所在日,格式:yyyyMMdd
|
||||
*/
|
||||
private Integer day;
|
||||
|
||||
/**
|
||||
* 下单所在小时,格式:yyyyMMddHH
|
||||
*/
|
||||
private Integer hour;
|
||||
|
||||
/**
|
||||
* 排序时间字段(15天后数据无法再次修改,并迁移到历史订单中)
|
||||
*/
|
||||
private LocalDateTime sortTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,201 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("orders")
|
||||
public class Orders implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单所属人
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 服务类型id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务类型名称
|
||||
*/
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务项名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务项图片
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 服务单位
|
||||
*/
|
||||
private Integer unit;
|
||||
|
||||
/**
|
||||
* 服务id
|
||||
*/
|
||||
private Long serveId;
|
||||
|
||||
/**
|
||||
* 订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:已取消,700:已关闭
|
||||
*/
|
||||
private Integer ordersStatus;
|
||||
|
||||
/**
|
||||
* 交易状态,0:待支付,1:支付成功
|
||||
*/
|
||||
private Integer payStatus;
|
||||
|
||||
/**
|
||||
* 退款,0:发起退款,1:退款中,2:退款成功 3:退款失败
|
||||
*/
|
||||
private Integer refundStatus;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 购买数量
|
||||
*/
|
||||
private Integer purNum;
|
||||
|
||||
/**
|
||||
* 订单总金额
|
||||
*/
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 实际支付金额
|
||||
*/
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务详细地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 联系人手机号
|
||||
*/
|
||||
private String contactsPhone;
|
||||
|
||||
/**
|
||||
* 联系人姓名
|
||||
*/
|
||||
private String contactsName;
|
||||
|
||||
/**
|
||||
* 服务开始时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double lat;
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
private LocalDateTime payTime;
|
||||
|
||||
/**
|
||||
* 评价时间
|
||||
*/
|
||||
private LocalDateTime evaluationTime;
|
||||
|
||||
/**
|
||||
* 用户端是否展示,1:展示,0:隐藏
|
||||
*/
|
||||
private Integer display;
|
||||
|
||||
/**
|
||||
* 排序字段(serve_start_time秒级时间戳+订单id后6位)
|
||||
*/
|
||||
private Long sortBy;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 支付服务交易单号
|
||||
*/
|
||||
private Long tradingOrderNo;
|
||||
|
||||
/**
|
||||
* 第三方支付的交易号
|
||||
*/
|
||||
private String transactionId;
|
||||
|
||||
/**
|
||||
* 支付服务退款单号
|
||||
*/
|
||||
private Long refundNo;
|
||||
|
||||
/**
|
||||
* 第三方支付的退款单号
|
||||
*/
|
||||
private String refundId;
|
||||
|
||||
/**
|
||||
* 支付渠道
|
||||
*/
|
||||
private String tradingChannel;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("orders_canceled")
|
||||
public class OrdersCanceled implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 取消人
|
||||
*/
|
||||
private Long cancellerId;
|
||||
|
||||
/**
|
||||
* 取消人名称
|
||||
*/
|
||||
private String cancelerName;
|
||||
|
||||
/**
|
||||
* 取消人类型,1:普通用户,4:运营人员
|
||||
*/
|
||||
private Integer cancellerType;
|
||||
|
||||
/**
|
||||
* 取消原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 取消时间
|
||||
*/
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
@ -0,0 +1,114 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.*;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 派单池
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("orders_dispatch")
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OrdersDispatch implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务分类id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务分类名称
|
||||
*/
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 服务项目图片
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 订单金额
|
||||
*/
|
||||
private BigDecimal ordersAmount;
|
||||
|
||||
/**
|
||||
* 服务开始时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double lat;
|
||||
|
||||
/**
|
||||
* 服务数量
|
||||
*/
|
||||
private Integer purNum;
|
||||
|
||||
/**
|
||||
* 是否转人工
|
||||
*/
|
||||
private Integer isTransferManual;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.time.LocalDateTime;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单退款表
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-09-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("orders_refund")
|
||||
public class OrdersRefund implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 支付服务交易单号
|
||||
*/
|
||||
private Long tradingOrderNo;
|
||||
|
||||
/**
|
||||
* 实付金额
|
||||
*/
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,122 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.*;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 抢单池
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrdersSeize implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务分类id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务分类名称
|
||||
*/
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 服务项目图片
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 订单总金额
|
||||
*/
|
||||
private BigDecimal ordersAmount;
|
||||
|
||||
/**
|
||||
* 服务开始时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 订单支付成功时间,用于计算是否进入派单
|
||||
*/
|
||||
private LocalDateTime paySuccessTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private Double lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private Double lat;
|
||||
|
||||
/**
|
||||
* 服务数量
|
||||
*/
|
||||
private Integer purNum;
|
||||
|
||||
/**
|
||||
* 抢单是否超时
|
||||
*/
|
||||
private Integer isTimeOut;
|
||||
|
||||
/**
|
||||
* 抢单列表排序字段
|
||||
*/
|
||||
private Long sortBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,178 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务任务
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "orders_serve",autoResultMap = true)
|
||||
public class OrdersServe implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 属于哪个用户
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 服务人员或服务机构id
|
||||
*/
|
||||
private Long serveProviderId;
|
||||
|
||||
/**
|
||||
* 服务者类型,2:服务端服务,3:机构端服务
|
||||
*/
|
||||
private Integer serveProviderType;
|
||||
|
||||
/**
|
||||
* 机构服务人员id
|
||||
*/
|
||||
private Long institutionStaffId;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
private Long ordersId;
|
||||
|
||||
/**
|
||||
* 订单来源类型,1:抢单,2:派单
|
||||
*/
|
||||
private Integer ordersOriginType;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务分类id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 预约时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务图片地址
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private Integer serveStatus;
|
||||
|
||||
/**
|
||||
* 结算状态,0:不可结算,1:待结算,2:结算完成
|
||||
*/
|
||||
private Integer settlementStatus;
|
||||
|
||||
/**
|
||||
* 实际服务开始时间
|
||||
*/
|
||||
private LocalDateTime realServeStartTime;
|
||||
|
||||
/**
|
||||
* 实际服务完结时间
|
||||
*/
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
/**
|
||||
* 服务前照片
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> serveBeforeImgs;
|
||||
|
||||
/**
|
||||
* 服务后照片
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<String> serveAfterImgs;
|
||||
|
||||
/**
|
||||
* 服务前说明
|
||||
*/
|
||||
private String serveBeforeIllustrate;
|
||||
|
||||
/**
|
||||
* 服务后说明
|
||||
*/
|
||||
private String serveAfterIllustrate;
|
||||
|
||||
/**
|
||||
* 取消时间,可以是退单,可以是取消时间
|
||||
*/
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 订单金额
|
||||
*/
|
||||
private BigDecimal ordersAmount;
|
||||
|
||||
/**
|
||||
* 购买数量
|
||||
*/
|
||||
private Integer purNum;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 排序字段(serve_start_time(秒级时间戳)+订单id(后6位))
|
||||
*/
|
||||
private Long sortBy;
|
||||
|
||||
/**
|
||||
* 服务端/机构端是否展示,1:展示,0:隐藏
|
||||
*/
|
||||
private Integer display;
|
||||
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import com.jzo2o.common.model.Location;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ServeProviderInfo {
|
||||
/**
|
||||
* 服务人员或机构同步表
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 类型,2:服务人员,3:机构
|
||||
*/
|
||||
private Integer serveProviderType;
|
||||
|
||||
/**
|
||||
* 技能列表
|
||||
*/
|
||||
private List<Long> serveItemIds;
|
||||
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
private Location location;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
// /**
|
||||
// * 接单距离
|
||||
// */
|
||||
// private Double receiveDistance;
|
||||
|
||||
/**
|
||||
* 接单开关1,:接单开启,0:接单关闭
|
||||
*/
|
||||
private Integer pickUp;
|
||||
|
||||
/**
|
||||
* 评分,默认50分
|
||||
*/
|
||||
private Double evaluationScore;
|
||||
|
||||
/**
|
||||
* 服务时间
|
||||
*/
|
||||
private List<Integer> serveTimes;
|
||||
|
||||
/**
|
||||
* 首次设置状态,0:未完成,1:已完成设置
|
||||
*/
|
||||
private Integer settingStatus;
|
||||
|
||||
/**
|
||||
* 接单数
|
||||
*/
|
||||
private Integer acceptanceNum;
|
||||
|
||||
/**
|
||||
* 状态,0:正常,1:冻结
|
||||
*/
|
||||
private Integer status;
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package com.jzo2o.orders.base.model.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机构服务端更新服务时间
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "serve_provider_sync",autoResultMap = true)
|
||||
public class ServeProviderSync implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.NONE)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 服务时间段
|
||||
*/
|
||||
@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
private List<Integer> serveTimes;
|
||||
|
||||
/**
|
||||
* 接单数
|
||||
*/
|
||||
private Integer acceptanceNum;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,247 @@
|
||||
package com.jzo2o.orders.base.model.dto;
|
||||
|
||||
//import com.jzo2o.statemachine.core.StateMachineSnapshot;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 订单快照
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/8/19 10:30
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrderSnapshotDTO {
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单所属人
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 服务类型id
|
||||
*/
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务类型名称
|
||||
*/
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 服务项id
|
||||
*/
|
||||
private Long serveItemId;
|
||||
|
||||
/**
|
||||
* 服务项名称
|
||||
*/
|
||||
private String serveItemName;
|
||||
|
||||
/**
|
||||
* 服务项图片
|
||||
*/
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 服务单位
|
||||
*/
|
||||
private Integer unit;
|
||||
|
||||
/**
|
||||
* 服务id
|
||||
*/
|
||||
private Long serveId;
|
||||
|
||||
/**
|
||||
* 订单状态,0:待支付,100:派单中,200:待服务,300:服务中,500:订单完成,600:订单取消,700已关闭
|
||||
*/
|
||||
private Integer ordersStatus;
|
||||
|
||||
/**
|
||||
* 支付状态,2:待支付,4:支付成功
|
||||
*/
|
||||
private Integer payStatus;
|
||||
|
||||
/**
|
||||
* 退款,0:发起退款,1:退款中,2:退款成功 3:退款失败
|
||||
*/
|
||||
private Integer refundStatus;
|
||||
|
||||
/**
|
||||
* 单价
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 购买数量
|
||||
*/
|
||||
private Integer purNum;
|
||||
|
||||
/**
|
||||
* 订单总金额
|
||||
*/
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
/**
|
||||
* 实际支付金额
|
||||
*/
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 服务详细地址
|
||||
*/
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 联系人手机号
|
||||
*/
|
||||
private String contactsPhone;
|
||||
|
||||
/**
|
||||
* 联系人姓名
|
||||
*/
|
||||
private String contactsName;
|
||||
|
||||
/**
|
||||
* 服务开始时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 经度
|
||||
*/
|
||||
private String lon;
|
||||
|
||||
/**
|
||||
* 纬度
|
||||
*/
|
||||
private String lat;
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
private LocalDateTime payTime;
|
||||
|
||||
/**
|
||||
* 评价时间
|
||||
*/
|
||||
private LocalDateTime evaluationTime;
|
||||
|
||||
/**
|
||||
* 订单创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 订单更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 支付服务交易单号
|
||||
*/
|
||||
private Long tradingOrderNo;
|
||||
|
||||
/**
|
||||
* 支付服务退款单号
|
||||
*/
|
||||
private Long refundNo;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 支付渠道【支付宝、微信、现金、免单挂账】
|
||||
*/
|
||||
private String tradingChannel;
|
||||
|
||||
|
||||
/**
|
||||
* 三方流水,微信支付订单号或支付宝订单号
|
||||
*/
|
||||
private String thirdOrderId;
|
||||
|
||||
/**
|
||||
* 退款三方流水,微信支付订单号或支付宝订单号
|
||||
*/
|
||||
private String thirdRefundOrderId;
|
||||
|
||||
|
||||
/**
|
||||
* 取消人id
|
||||
*/
|
||||
private Long cancellerId;
|
||||
|
||||
/**
|
||||
* 取消人名称
|
||||
*/
|
||||
private String cancelerName;
|
||||
|
||||
/**
|
||||
* 取消人类型
|
||||
*/
|
||||
private Integer cancellerType;
|
||||
|
||||
/**
|
||||
* 取消时间
|
||||
*/
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 取消原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 实际服务完成时间
|
||||
*/
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
/**
|
||||
* 评价状态
|
||||
*/
|
||||
private Integer evaluationStatus;
|
||||
|
||||
|
||||
// @Override
|
||||
// public String getSnapshotId() {
|
||||
// return String.valueOf(id);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Integer getSnapshotStatus() {
|
||||
// return ordersStatus;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setSnapshotId(String snapshotId) {
|
||||
// this.id = Long.parseLong(snapshotId);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void setSnapshotStatus(Integer snapshotStatus) {
|
||||
// this.ordersStatus = snapshotStatus;
|
||||
// }
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package com.jzo2o.orders.base.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class OrderUpdateStatusDTO {
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 原订单状态
|
||||
*/
|
||||
private Integer originStatus;
|
||||
|
||||
/**
|
||||
* 目标订单状态
|
||||
*/
|
||||
private Integer targetStatus;
|
||||
|
||||
/**
|
||||
* 支付状态
|
||||
*/
|
||||
private Integer payStatus;
|
||||
/**
|
||||
* 退款状态
|
||||
*/
|
||||
private Integer refundStatus;
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
private LocalDateTime payTime;
|
||||
|
||||
/**
|
||||
* 评价时间
|
||||
*/
|
||||
private LocalDateTime evaluationTime;
|
||||
|
||||
/**
|
||||
* 支付服务交易单号
|
||||
*/
|
||||
private Long tradingOrderNo;
|
||||
|
||||
/**
|
||||
* 第三方支付的交易号
|
||||
*/
|
||||
private String transactionId;
|
||||
|
||||
/**
|
||||
* 支付渠道
|
||||
*/
|
||||
private String tradingChannel;
|
||||
|
||||
/**
|
||||
* 实际服务完成时间
|
||||
*/
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
/**
|
||||
* 评价状态
|
||||
*/
|
||||
private Integer evaluationStatus;
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
package com.jzo2o.orders.base.properties;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* 派单配置
|
||||
*/
|
||||
@Configuration
|
||||
@ConfigurationProperties(prefix = "orders.dispatch")
|
||||
@Data
|
||||
public class DispatchProperties {
|
||||
/**
|
||||
* 机构端展示抢单列表数量
|
||||
*/
|
||||
public Integer seizeListDispalyNumOfInstitution = 50;
|
||||
/**
|
||||
* 服务端展示抢单列表数量
|
||||
*/
|
||||
public Integer seizeListDispalyNumOfServe = 20;
|
||||
|
||||
/**
|
||||
* 机构端拥有服务单数量
|
||||
*/
|
||||
public Integer serveTaskNumOrInstitution = 50;
|
||||
|
||||
/**
|
||||
* 服务人员最大拥有服务数量
|
||||
*/
|
||||
public Integer serveTaskNumOfServe = 10;
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
package com.jzo2o.orders.base.properties;
|
||||
|
||||
import com.jzo2o.common.utils.ObjectUtils;
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Configuration
|
||||
@ConfigurationProperties(prefix = "executor")
|
||||
@Data
|
||||
public class ExecutorProperties {
|
||||
|
||||
/**
|
||||
* 线程池配置
|
||||
*/
|
||||
@NestedConfigurationProperty
|
||||
private Map<String, ThreadPool> pools = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 线程池配置
|
||||
*/
|
||||
@Data
|
||||
public static class ThreadPool {
|
||||
/**
|
||||
* 核心线程数 默认15
|
||||
*/
|
||||
private Integer corePoolSize = 15;
|
||||
|
||||
/**
|
||||
* 最大线程数 默认30
|
||||
*/
|
||||
private Integer maxPoolSize = 30;
|
||||
|
||||
/**
|
||||
* 队列大小默认 5000
|
||||
*/
|
||||
private Integer queueCapacity = 5000;
|
||||
|
||||
/**
|
||||
* 线程名称,默认orders-
|
||||
*/
|
||||
private String threadNamePrefix = "orders-";
|
||||
}
|
||||
|
||||
/**
|
||||
* 线程池名称
|
||||
*
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public final ThreadPool get(String name) {
|
||||
ThreadPool threadPool = pools.get(name);
|
||||
return ObjectUtils.isNull(threadPool) ? new ThreadPool() : threadPool;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.jzo2o.orders.base.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
import com.jzo2o.orders.base.model.dto.OrderUpdateStatusDTO;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
public interface IOrdersCommonService extends IService<Orders> {
|
||||
|
||||
Integer updateStatus(OrderUpdateStatusDTO orderUpdateStatusReqDTO);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.jzo2o.orders.base.service;
|
||||
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
|
||||
/**
|
||||
* 订单分流
|
||||
*/
|
||||
public interface IOrdersDiversionCommonService {
|
||||
|
||||
/**
|
||||
* 订单分流,所有订单均可抢单
|
||||
*
|
||||
* @param orders
|
||||
*/
|
||||
void diversion(Orders orders);
|
||||
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.jzo2o.orders.base.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jzo2o.orders.base.mapper.OrdersMapper;
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
import com.jzo2o.orders.base.model.dto.OrderUpdateStatusDTO;
|
||||
import com.jzo2o.orders.base.service.IOrdersCommonService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
@Service
|
||||
public class OrdersCommonServiceImpl extends ServiceImpl<OrdersMapper, Orders> implements IOrdersCommonService {
|
||||
@Override
|
||||
public Integer updateStatus(OrderUpdateStatusDTO orderUpdateStatusReqDTO) {
|
||||
LambdaUpdateWrapper<Orders> updateWrapper = Wrappers.<Orders>lambdaUpdate()
|
||||
.eq(Orders::getId, orderUpdateStatusReqDTO.getId())
|
||||
.gt(Orders::getUserId, 0)
|
||||
.eq(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getOriginStatus()),Orders::getOrdersStatus,orderUpdateStatusReqDTO.getOriginStatus())
|
||||
.set(Orders::getOrdersStatus, orderUpdateStatusReqDTO.getTargetStatus())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getPayStatus()),Orders::getPayStatus,orderUpdateStatusReqDTO.getPayStatus())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getPayTime()),Orders::getPayTime,orderUpdateStatusReqDTO.getPayTime())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getEvaluationTime()),Orders::getEvaluationTime,orderUpdateStatusReqDTO.getEvaluationTime())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getTradingOrderNo()),Orders::getTradingOrderNo,orderUpdateStatusReqDTO.getTradingOrderNo())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getTransactionId()),Orders::getTransactionId,orderUpdateStatusReqDTO.getTransactionId())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getTradingChannel()),Orders::getTradingChannel,orderUpdateStatusReqDTO.getTradingChannel())
|
||||
.set(ObjectUtil.isNotNull(orderUpdateStatusReqDTO.getRefundStatus()),Orders::getRefundStatus,orderUpdateStatusReqDTO.getRefundStatus());
|
||||
boolean update = super.update(updateWrapper);
|
||||
return update?1:0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
//package com.jzo2o.orders.base.service.impl;
|
||||
//
|
||||
//import com.jzo2o.api.foundations.RegionApi;
|
||||
//import com.jzo2o.api.foundations.ServeApi;
|
||||
//import com.jzo2o.api.foundations.dto.response.ConfigRegionInnerResDTO;
|
||||
//import com.jzo2o.api.foundations.dto.response.ServeAggregationResDTO;
|
||||
//import com.jzo2o.common.utils.BooleanUtils;
|
||||
//import com.jzo2o.common.utils.DateUtils;
|
||||
//import com.jzo2o.common.utils.ObjectUtils;
|
||||
//import com.jzo2o.orders.base.mapper.OrdersDispatchMapper;
|
||||
//import com.jzo2o.orders.base.mapper.OrdersSeizeMapper;
|
||||
//import com.jzo2o.orders.base.model.domain.Orders;
|
||||
//import com.jzo2o.orders.base.model.domain.OrdersDispatch;
|
||||
//import com.jzo2o.orders.base.model.domain.OrdersSeize;
|
||||
//import com.jzo2o.orders.base.service.IOrdersDiversionCommonService;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.data.redis.core.RedisTemplate;
|
||||
//import org.springframework.stereotype.Service;
|
||||
//import org.springframework.transaction.annotation.Transactional;
|
||||
//
|
||||
//import javax.annotation.Resource;
|
||||
//import java.time.Duration;
|
||||
//
|
||||
//@Service
|
||||
//@Slf4j
|
||||
//public class OrdersDiversionCommonServiceImpl implements IOrdersDiversionCommonService {
|
||||
//
|
||||
//
|
||||
// @Resource
|
||||
// private RedisTemplate<String, Long> redisTemplate;
|
||||
//
|
||||
// @Resource
|
||||
// private RegionApi regionApi;
|
||||
//
|
||||
// @Resource
|
||||
// private ServeApi serveApi;
|
||||
//
|
||||
// @Resource
|
||||
// private OrdersDiversionCommonServiceImpl owner;
|
||||
//
|
||||
// @Resource
|
||||
// private OrdersSeizeMapper ordersSeizeMapper;
|
||||
// @Resource
|
||||
// private OrdersDispatchMapper ordersDispatchMapper;
|
||||
//
|
||||
// @Override
|
||||
// public void diversion(Orders orders) {
|
||||
// log.debug("订单分流,id:{}",orders.getId());
|
||||
// // 1.当前时间已超过服务预约时间则不再分流
|
||||
// if (orders.getServeStartTime().compareTo(DateUtils.now()) < 0) {
|
||||
// log.debug("订单{}当前时间已超过服务预约时间则不再分流",orders.getId());
|
||||
// return;
|
||||
// }
|
||||
// ConfigRegionInnerResDTO configRegion = regionApi.findConfigRegionByCityCode(orders.getCityCode());
|
||||
// ServeAggregationResDTO serveAggregationResDTO = serveApi.findById(orders.getServeId());
|
||||
// //订单分流数据存储
|
||||
// owner.diversionCommit(orders,configRegion,serveAggregationResDTO);
|
||||
// }
|
||||
//
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
// public void diversionCommit(Orders orders, ConfigRegionInnerResDTO configRegion, ServeAggregationResDTO serveAggregationResDTO) {
|
||||
// //流间隔(单位分钟),即当前时间与服务预计开始时间的间隔
|
||||
// Integer diversionInterval = configRegion.getDiversionInterval();
|
||||
//
|
||||
// //当前时间与服务预约时间的间隔
|
||||
// Duration between = DateUtils.between(DateUtils.now(), orders.getServeStartTime());
|
||||
// //服务类型名称
|
||||
// String serveTypeName = ObjectUtils.get(serveAggregationResDTO, ServeAggregationResDTO::getServeTypeName);
|
||||
// //服务类型id
|
||||
// Long serveTypeId = ObjectUtils.get(serveAggregationResDTO, ServeAggregationResDTO::getServeTypeId);
|
||||
// //服务项名称
|
||||
// String serveItemName = ObjectUtils.get(serveAggregationResDTO, ServeAggregationResDTO::getServeItemName);
|
||||
// //服务项图片
|
||||
// String serveItemImg = ObjectUtils.get(serveAggregationResDTO, ServeAggregationResDTO::getServeItemImg);
|
||||
// //用于排序,服务预约时间戳加订单号后5位
|
||||
// long sortBy = DateUtils.toEpochMilli(orders.getServeStartTime()) + orders.getId() % 100000;
|
||||
// OrdersSeize ordersSeize = OrdersSeize.builder()
|
||||
// .id(orders.getId())
|
||||
// .ordersAmount(orders.getRealPayAmount())
|
||||
// .cityCode(orders.getCityCode())
|
||||
// .serveTypeId(serveTypeId)
|
||||
// .serveTypeName(serveTypeName)
|
||||
// .serveItemId(orders.getServeItemId())
|
||||
// .serveItemName(serveItemName)
|
||||
// .serveItemImg(serveItemImg)
|
||||
// .ordersAmount(orders.getRealPayAmount())
|
||||
// .serveStartTime(orders.getServeStartTime())
|
||||
// .serveAddress(orders.getServeAddress())
|
||||
// .lon(orders.getLon())
|
||||
// .lat(orders.getLat())
|
||||
// .paySuccessTime(DateUtils.now())
|
||||
// .paySuccessTime(orders.getPayTime())
|
||||
// .sortBy(sortBy)
|
||||
// .isTimeOut(BooleanUtils.toInt(between.toMinutes() < diversionInterval))
|
||||
// .purNum(orders.getPurNum()).build();
|
||||
// ordersSeizeMapper.insert(ordersSeize);
|
||||
// //当前时间与服务预约时间的间隔 小于指定间隔则插入派单表
|
||||
// if (between.toMinutes() < diversionInterval) {
|
||||
// OrdersDispatch ordersDispatch = OrdersDispatch.builder()
|
||||
// .id(orders.getId())
|
||||
// .ordersAmount(orders.getRealPayAmount())
|
||||
// .cityCode(orders.getCityCode())
|
||||
// .serveTypeId(serveTypeId)
|
||||
// .serveTypeName(serveTypeName)
|
||||
// .serveItemId(orders.getServeItemId())
|
||||
// .serveItemName(serveItemName)
|
||||
// .serveItemImg(serveItemImg)
|
||||
// .ordersAmount(orders.getRealPayAmount())
|
||||
// .serveStartTime(orders.getServeStartTime())
|
||||
// .serveAddress(orders.getServeAddress())
|
||||
// .lon(orders.getLon())
|
||||
// .lat(orders.getLat())
|
||||
// .purNum(orders.getPurNum()).build();
|
||||
// ordersDispatchMapper.insert(ordersDispatch);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
//}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.jzo2o.orders.base.utils;
|
||||
|
||||
import com.jzo2o.common.utils.NumberUtils;
|
||||
|
||||
public class RedisUtils {
|
||||
|
||||
/**
|
||||
* 获取城市编码最后以为数字
|
||||
*
|
||||
* @param cityCode
|
||||
* @return
|
||||
*/
|
||||
public static int getCityIndex(String cityCode) {
|
||||
return NumberUtils.parseInt(cityCode) % 10;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.jzo2o.orders.base.utils;
|
||||
|
||||
import com.jzo2o.common.utils.DateUtils;
|
||||
import com.jzo2o.common.utils.NumberUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public class ServeTimeUtils {
|
||||
|
||||
/**
|
||||
* 获取服务时间,用来处理抢单和派单的时间冲突问题
|
||||
*
|
||||
* @param serveStartTime
|
||||
* @return
|
||||
*/
|
||||
public static int getServeTimeInt(LocalDateTime serveStartTime) {
|
||||
return NumberUtils.parseInt(DateUtils.format(serveStartTime, "yyyyMMddHH"));
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
long number = 2023082400000000001L;
|
||||
System.out.println(number % 10000000000L % 150000);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
{
|
||||
"groups": [
|
||||
|
||||
],
|
||||
"properties": [
|
||||
|
||||
],
|
||||
"hints": []
|
||||
}
|
||||
@ -0,0 +1,2 @@
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
com.jzo2o.orders.base.config.AutoImportConfiguration
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.BreachRecordMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.HistoryOrdersServeSyncMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.HistoryOrdersSyncMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.CurrentServeProviderTimeMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.OrdersServeMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.OrdersCanceledMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.OrdersDispatchMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.OrdersMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.OrdersRefundMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.OrdersSeizeMapper">
|
||||
|
||||
</mapper>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jzo2o.orders.base.mapper.ServeProviderSyncMapper">
|
||||
|
||||
</mapper>
|
||||
8
jzo2o-oreders/jzo2o-orders-manager/Dockerfile
Normal file
8
jzo2o-oreders/jzo2o-orders-manager/Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM openjdk:11-jdk
|
||||
LABEL maintainer="研究院研发组 <research-maint@itcast.cn>"
|
||||
RUN echo "Asia/Shanghai" > /etc/timezone
|
||||
ARG PACKAGE_PATH=./target/jzo2o-orders-manager.jar
|
||||
|
||||
ADD ${PACKAGE_PATH:-./} app.jar
|
||||
EXPOSE 11504
|
||||
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS app.jar"]
|
||||
121
jzo2o-oreders/jzo2o-orders-manager/pom.xml
Normal file
121
jzo2o-oreders/jzo2o-orders-manager/pom.xml
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>jzo2o-oreders</artifactId>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>jzo2o-orders-manager</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-bootstrap</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-mvc</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-knife4j-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-mysql</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!--单元测试-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-redis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.19</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-orders-base</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-xxl-job</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.jzo2o</groupId>
|
||||
<artifactId>jzo2o-es</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>build-info</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<mainClass>com.jzo2o.orders.manager.OrdersManagerApplication</mainClass>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@ -0,0 +1,23 @@
|
||||
package com.jzo2o.orders.manager;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableAspectJAutoProxy
|
||||
@Slf4j
|
||||
@EnableTransactionManagement
|
||||
public class OrdersManagerApplication {
|
||||
public static void main(String[] args) {
|
||||
new SpringApplicationBuilder(OrdersManagerApplication.class)
|
||||
.build(args)
|
||||
.run(args);
|
||||
log.info("家政服务-订单管理微服务启动");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,5 @@
|
||||
package com.jzo2o.orders.manager.constants;
|
||||
|
||||
public class EsIndex {
|
||||
public static final String SERVE_PROVIDER_INFO = "serve_provider_info";
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.jzo2o.orders.manager.controller.agency;
|
||||
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.mvc.utils.UserContext;
|
||||
import com.jzo2o.orders.manager.model.dto.request.*;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeDetailResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeStatusNumResDTO;
|
||||
import com.jzo2o.orders.manager.service.IOrdersServeManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController("orders-agency")
|
||||
@Api(tags = "机构端-服务单相关接口")
|
||||
@RequestMapping("/agency")
|
||||
public class AgencyOrdersServeController {
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
package com.jzo2o.orders.manager.controller.consumer;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.jzo2o.api.market.dto.response.AvailableCouponsResDTO;
|
||||
import com.jzo2o.api.orders.dto.request.OrderCancelReqDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderSimpleResDTO;
|
||||
import com.jzo2o.common.model.CurrentUserInfo;
|
||||
import com.jzo2o.mvc.utils.UserContext;
|
||||
import com.jzo2o.orders.manager.model.dto.OrderCancelDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrdersPayReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.PlaceOrderReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersPayResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.PlaceOrderResDTO;
|
||||
import com.jzo2o.orders.manager.service.IOrdersCreateService;
|
||||
import com.jzo2o.orders.manager.service.IOrdersManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@RestController("consumerOrdersController")
|
||||
@Api(tags = "用户端-订单相关接口")
|
||||
@RequestMapping("/consumer/orders")
|
||||
public class ConsumerOrdersController {
|
||||
|
||||
@Resource
|
||||
private IOrdersManagerService ordersManagerService;
|
||||
|
||||
|
||||
@GetMapping("/{id}")
|
||||
@ApiOperation("根据订单id查询")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "订单id", required = true, dataTypeClass = Long.class)
|
||||
})
|
||||
public OrderResDTO detail(@PathVariable("id") Long id) {
|
||||
return ordersManagerService.getDetail(id);
|
||||
}
|
||||
@GetMapping("/consumerQueryList")
|
||||
@ApiOperation("订单滚动分页查询")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "ordersStatus", value = "订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:订单取消,700:已关闭", required = false, dataTypeClass = Integer.class),
|
||||
@ApiImplicitParam(name = "sortBy", value = "排序字段", required = false, dataTypeClass = Long.class)
|
||||
})
|
||||
public List<OrderSimpleResDTO> consumerQueryList(@RequestParam(value = "ordersStatus", required = false) Integer ordersStatus,
|
||||
@RequestParam(value = "sortBy", required = false) Long sortBy) {
|
||||
return ordersManagerService.consumerQueryList(UserContext.currentUserId(), ordersStatus, sortBy);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package com.jzo2o.orders.manager.controller.inner;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.jzo2o.api.orders.OrdersApi;
|
||||
import com.jzo2o.api.orders.dto.response.OrderResDTO;
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
import com.jzo2o.orders.manager.service.IOrdersManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@RestController
|
||||
@Api(tags = "内部接口 - 订单相关接口")
|
||||
@RequestMapping("/inner/orders")
|
||||
public class InnerOrdersController implements OrdersApi {
|
||||
|
||||
@Resource
|
||||
private IOrdersManagerService ordersManagerService;
|
||||
|
||||
|
||||
@Override
|
||||
@GetMapping("/{id}")
|
||||
@ApiOperation("根据订单id查询")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "订单id", required = true, dataTypeClass = Long.class),
|
||||
})
|
||||
public OrderResDTO queryById(@PathVariable("id") Long id) {
|
||||
Orders orders = ordersManagerService.queryById(id);
|
||||
return BeanUtil.toBean(orders, OrderResDTO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@GetMapping("queryByIds")
|
||||
@ApiOperation("根据订单id列表批量查询")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "ids", value = "订单id列表", required = true, dataTypeClass = Long.class),
|
||||
})
|
||||
public List<OrderResDTO> queryByIds(@RequestParam("ids") List<Long> ids) {
|
||||
List<Orders> ordersList = ordersManagerService.batchQuery(ids);
|
||||
return BeanUtil.copyToList(ordersList, OrderResDTO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@PutMapping("evaluate/{id}")
|
||||
@ApiOperation("根据订单id评价")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "订单id", required = true, dataTypeClass = Long.class),
|
||||
})
|
||||
public void evaluate(@PathVariable("id") Long id) {
|
||||
ordersManagerService.evaluationOrder(id);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package com.jzo2o.orders.manager.controller.inner;
|
||||
|
||||
import com.jzo2o.api.orders.OrdersServeApi;
|
||||
//import com.jzo2o.api.orders.dto.response.InstitutionStaffServeCountResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.InstitutionStaffServeCountResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.ServeProviderIdResDTO;
|
||||
import com.jzo2o.orders.base.model.domain.OrdersServe;
|
||||
import com.jzo2o.orders.manager.service.IOrdersServeManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@Api(tags = "内部接口 - 服务单相关接口")
|
||||
@RequestMapping("/inner/orders-serve")
|
||||
public class InnerOrdersServeController implements OrdersServeApi {
|
||||
|
||||
@Resource
|
||||
private IOrdersServeManagerService ordersServeManagerService;
|
||||
|
||||
@Override
|
||||
@GetMapping("/queryServeProviderIdByOrderId/{id}")
|
||||
@ApiOperation("根据订单id查询服务人员/机构id")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "订单id", required = true, dataTypeClass = Long.class),
|
||||
})
|
||||
public ServeProviderIdResDTO queryServeProviderIdByOrderId(@PathVariable("id") Long id) {
|
||||
OrdersServe ordersServe = ordersServeManagerService.queryById(id);
|
||||
return new ServeProviderIdResDTO(ordersServe.getServeProviderId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@GetMapping("/countByInstitutionStaffId")
|
||||
@ApiOperation("根据机构服务人员查询服务数量")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "institutionStaffId", value = "机构服务人员id", required = true, dataTypeClass = Long.class),
|
||||
})
|
||||
public InstitutionStaffServeCountResDTO countByInstitutionStaffId(@RequestParam("institutionStaffId") Long institutionStaffId) {
|
||||
return ordersServeManagerService.countByInstitutionStaffId(institutionStaffId);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.jzo2o.orders.manager.controller.operation;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.jzo2o.api.orders.dto.request.OrderCancelReqDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderSimpleResDTO;
|
||||
import com.jzo2o.common.model.CurrentUserInfo;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.mvc.utils.UserContext;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrderPageQueryReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.OrderCancelDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OperationOrdersDetailResDTO;
|
||||
import com.jzo2o.orders.manager.service.IOrdersManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@RestController("operationOrdersController")
|
||||
@Api(tags = "运营端-订单相关接口")
|
||||
@RequestMapping("/operation/orders")
|
||||
public class OperationOrdersController {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.jzo2o.orders.manager.controller.operation;
|
||||
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrdersServePageQueryByServeProviderReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.*;
|
||||
import com.jzo2o.orders.manager.service.IOrdersServeManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@RestController("orders-operation")
|
||||
@Api(tags = "运营端-服务单相关接口")
|
||||
@RequestMapping("/operation/ordersServe")
|
||||
public class OperationOrdersServeController {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package com.jzo2o.orders.manager.controller.worker;
|
||||
|
||||
import com.jzo2o.mvc.utils.UserContext;
|
||||
import com.jzo2o.orders.manager.model.dto.request.*;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeDetailResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeListResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersServeStatusNumResDTO;
|
||||
import com.jzo2o.orders.manager.service.IOrdersServeManagerService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@RestController("orders-worker")
|
||||
@Api(tags = "服务端-服务单相关接口")
|
||||
@RequestMapping("/worker")
|
||||
public class WorkerOrdersServeController {
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package com.jzo2o.orders.manager.model.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 订单取消模型
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/8/7 17:12
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrderCancelDTO {
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 当前用户id
|
||||
*/
|
||||
private Long currentUserId;
|
||||
|
||||
/**
|
||||
* 当前用户名称
|
||||
*/
|
||||
private String currentUserName;
|
||||
|
||||
/**
|
||||
* 当前用户类型
|
||||
*/
|
||||
private Integer currentUserType;
|
||||
|
||||
/**
|
||||
* 取消原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 预约服务开始时间
|
||||
*/
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 实际支付金额
|
||||
*/
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 支付服务交易单号
|
||||
*/
|
||||
private Long tradingOrderNo;
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package com.jzo2o.orders.manager.model.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ServeProviderInfo {
|
||||
/**
|
||||
* 服务人员或机构同步表
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 技能列表
|
||||
*/
|
||||
private List<Long> serveItemIds;
|
||||
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 城市编码
|
||||
*/
|
||||
private String cityCode;
|
||||
|
||||
/**
|
||||
* 接单距离
|
||||
*/
|
||||
private Double recieveDistance;
|
||||
|
||||
/**
|
||||
* 接单开关1,:接单开启,0:接单关闭
|
||||
*/
|
||||
private Integer pickUp;
|
||||
|
||||
/**
|
||||
* 评分,默认50分
|
||||
*/
|
||||
private Double evaluationScore;
|
||||
|
||||
/**
|
||||
* 服务时间
|
||||
*/
|
||||
private List<String> serveTimes;
|
||||
|
||||
/**
|
||||
* 首次设置状态,0:未完成,1:已完成设置
|
||||
*/
|
||||
private Integer setttingStatus;
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import com.jzo2o.common.model.dto.PageQueryDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单分页查询请求
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/7/20 21:17
|
||||
**/
|
||||
@Data
|
||||
@ApiModel("订单分页查询请求")
|
||||
public class OrderPageQueryReqDTO extends PageQueryDTO {
|
||||
/**
|
||||
* 订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:订单取消,700:订单关闭
|
||||
*/
|
||||
@ApiModelProperty("订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:订单取消,700:订单关闭")
|
||||
private Integer ordersStatus;
|
||||
|
||||
/**
|
||||
* 支付状态,0:待支付,1:支付成功
|
||||
*/
|
||||
@ApiModelProperty("支付状态,0:待支付,1:支付成功")
|
||||
private Integer payStatus;
|
||||
|
||||
/**
|
||||
* 退款状态,0:发起退款,1:退款中,2:退款成功 3:退款失败
|
||||
*/
|
||||
@ApiModelProperty("退款状态,0:发起退款,1:退款中,2:退款成功 3:退款失败")
|
||||
private Integer refundStatus;
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@ApiModelProperty("订单id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 客户电话
|
||||
*/
|
||||
@ApiModelProperty("客户电话")
|
||||
private String contactsPhone;
|
||||
|
||||
/**
|
||||
* 最小创建时间
|
||||
*/
|
||||
@ApiModelProperty("最小创建时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime minCreateTime;
|
||||
|
||||
/**
|
||||
* 最大创建时间
|
||||
*/
|
||||
@ApiModelProperty("最大创建时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime maxCreateTime;
|
||||
|
||||
/**
|
||||
* 订单id列表
|
||||
*/
|
||||
@ApiModelProperty("订单id列表")
|
||||
private List<Long> ordersIdList;
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("服务取消模型")
|
||||
public class OrderServeCancelReqDTO {
|
||||
@ApiModelProperty(value = "服务单id",required = true)
|
||||
@NotNull(message = "操作失败")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "取消原因",required = true)
|
||||
@NotNull(message = "操作失败")
|
||||
private String cancelReason;
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@ApiModel("接单模型")
|
||||
@Data
|
||||
public class OrdersDispatchReceiveReqDTO {
|
||||
@ApiModelProperty(value = "派单id",required = true)
|
||||
@NotNull(message = "接单失败")
|
||||
private Long id;
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@ApiModel("接单模型")
|
||||
@Data
|
||||
public class OrdersDispatchRejectReqDTO {
|
||||
@ApiModelProperty(value = "派单id",required = true)
|
||||
@NotNull(message = "接单失败")
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "拒单原因",required = true)
|
||||
@NotNull(message = "拒单失败")
|
||||
private String rejectReason;
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import com.jzo2o.api.trade.enums.PayChannelEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 订单支付请求体
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/9/4 10:00
|
||||
**/
|
||||
@Data
|
||||
@ApiModel("订单支付请求体")
|
||||
public class OrdersPayReqDTO {
|
||||
@ApiModelProperty(value = "支付渠道", required = true)
|
||||
@NotNull(message = "支付渠道不能为空")
|
||||
private PayChannelEnum tradingChannel;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel("抢单模型")
|
||||
public class OrdersSeizeReqDTO {
|
||||
/**
|
||||
* 抢单id
|
||||
*/
|
||||
@ApiModelProperty("抢单id")
|
||||
private Long id;
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
public class OrdersServeAllocationReqDTO {
|
||||
|
||||
@ApiModelProperty("服务单id")
|
||||
@NotNull(message = "人员分配失败")
|
||||
private Long id;
|
||||
@ApiModelProperty("服务人员id")
|
||||
@NotNull(message = "人员分配失败")
|
||||
private Long institutionStaffId;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import com.jzo2o.common.model.dto.PageQueryDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 根据服务人员/机构分页查询服务数据
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/9/15 18:55
|
||||
**/
|
||||
@Data
|
||||
@ApiModel("根据服务人员/机构分页查询服务单相关模型")
|
||||
public class OrdersServePageQueryByServeProviderReqDTO extends PageQueryDTO {
|
||||
/**
|
||||
* 用户类型,2:服务人员,3:机构
|
||||
*/
|
||||
@ApiModelProperty(value = "用户类型,2:服务人员,3:机构")
|
||||
private Integer userType;
|
||||
|
||||
/**
|
||||
* 服务人员/机构id
|
||||
*/
|
||||
@ApiModelProperty(value = "服务人员/机构id")
|
||||
private Long serveProviderId;
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import com.jzo2o.common.model.dto.PageQueryDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("服务单分页查询相关模型")
|
||||
public class OrdersServePageQueryReqDTO extends PageQueryDTO {
|
||||
|
||||
@ApiModelProperty(value = "服务状态,0:待分配,1:待上门,2:服务中(待完工),3:服务完成,4:取消,5:被退单")
|
||||
private Integer serveStatus;
|
||||
|
||||
@ApiModelProperty(value = "服务单编码")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "服务项id")
|
||||
private String serveItemId;
|
||||
|
||||
@ApiModelProperty(value = "服务时间 - 最小")
|
||||
private Date minServeStartTime;
|
||||
|
||||
@ApiModelProperty(value = "服务时间 - 最大")
|
||||
private Date maxServeStartTime;
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@ApiModel("下单请求信息")
|
||||
@Data
|
||||
public class PlaceOrderReqDTO {
|
||||
@ApiModelProperty(value = "服务id",required = true)
|
||||
@NotNull(message = "您还未选择服务")
|
||||
private Long serveId;
|
||||
|
||||
@ApiModelProperty(value = "预约地址id",required = true)
|
||||
@NotNull(message = "您还未选择服务地址")
|
||||
private Long addressBookId;
|
||||
|
||||
@ApiModelProperty(value = "购买数量",required = false)
|
||||
private Integer purNum;
|
||||
|
||||
@ApiModelProperty(value = "预约时间",required = true)
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
@ApiModelProperty(value = "优惠券id", required = false)
|
||||
private Long couponId;
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("服务开始模型")
|
||||
public class ServeFinishedReqDTO {
|
||||
@ApiModelProperty("服务id")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("服务完成图片")
|
||||
@NotNull(message = "请上传服务完成图片")
|
||||
@Size(min = 1, max = 3, message = "上传1-3张照片")
|
||||
private List<String> serveAfterImgs;
|
||||
|
||||
@ApiModelProperty("服务完成说明")
|
||||
private String serveAfterIllustrate;
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.jzo2o.orders.manager.model.dto.request;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("服务完成模型")
|
||||
public class ServeStartReqDTO {
|
||||
@ApiModelProperty("服务开始id")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("服务图片")
|
||||
private List<String> serveBeforeImgs;
|
||||
|
||||
@ApiModelProperty("服务前说明")
|
||||
private String serveBeforeIllustrate;
|
||||
}
|
||||
@ -0,0 +1,200 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 管理端订单详情
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/9/12 21:05
|
||||
**/
|
||||
@Data
|
||||
@ApiModel("管理端订单详情响应数据")
|
||||
public class OperationOrdersDetailResDTO {
|
||||
@ApiModelProperty("状态流转")
|
||||
private List<OrderProgress> ordersProgress;
|
||||
|
||||
@ApiModelProperty("订单信息")
|
||||
private OrderInfo orderInfo;
|
||||
|
||||
@ApiModelProperty("支付信息")
|
||||
private PayInfo payInfo;
|
||||
|
||||
@ApiModelProperty("服务信息")
|
||||
private ServeInfo serveInfo;
|
||||
|
||||
@ApiModelProperty("退款信息")
|
||||
private RefundInfo refundInfo;
|
||||
|
||||
@ApiModelProperty("订单取消理由")
|
||||
private CancelInfo cancelInfo;
|
||||
|
||||
@Data
|
||||
@ApiModel("订单信息模型")
|
||||
public static class OrderInfo {
|
||||
@ApiModelProperty("订单id")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:订单取消,700已关闭")
|
||||
private Integer ordersStatus;
|
||||
|
||||
@ApiModelProperty("服务项名称")
|
||||
private String serveItemName;
|
||||
|
||||
@ApiModelProperty("下单时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("客户名称")
|
||||
private String contactsName;
|
||||
|
||||
@ApiModelProperty("客户电话")
|
||||
private String contactsPhone;
|
||||
|
||||
@ApiModelProperty("服务地址")
|
||||
private String serveAddress;
|
||||
|
||||
@ApiModelProperty("预约时间")
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
@ApiModelProperty("订单总金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("实际支付金额")
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
@ApiModelProperty("购买数量")
|
||||
private Integer purNum;
|
||||
|
||||
@ApiModelProperty("服务单位")
|
||||
private Integer unit;
|
||||
|
||||
@ApiModelProperty("服务人员类型,2:服务人员,3:机构")
|
||||
private Integer serveProviderType;
|
||||
|
||||
@ApiModelProperty("服务人员/机构名称")
|
||||
private String serveProviderName;
|
||||
|
||||
@ApiModelProperty("服务人员/机构电话")
|
||||
private String serveProviderPhone;
|
||||
|
||||
@ApiModelProperty("机构下属服务人员姓名")
|
||||
private String institutionStaffName;
|
||||
|
||||
@ApiModelProperty("机构下属服务人员电话")
|
||||
private String institutionStaffPhone;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@ApiModel("支付记录模型")
|
||||
public static class PayInfo {
|
||||
@ApiModelProperty("支付状态,2:待支付,4:支付成功")
|
||||
private Integer payStatus;
|
||||
|
||||
@ApiModelProperty("支付渠道,ALI_PAY:支付宝,WECHAT_PAY:微信")
|
||||
private String tradingChannel;
|
||||
|
||||
@ApiModelProperty("三方流水,微信支付订单号或支付宝订单号")
|
||||
private String thirdOrderId;
|
||||
|
||||
@ApiModelProperty("订单总金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("实付金额")
|
||||
private BigDecimal realPayAmount;
|
||||
}
|
||||
|
||||
@Data
|
||||
@ApiModel("服务信息模型")
|
||||
public static class ServeInfo {
|
||||
@ApiModelProperty("服务人员类型")
|
||||
private Integer serveProviderType;
|
||||
|
||||
@ApiModelProperty("服务人员/机构名称")
|
||||
private String serveProviderName;
|
||||
|
||||
@ApiModelProperty("机构下属服务人员姓名")
|
||||
private String institutionStaffName;
|
||||
|
||||
@ApiModelProperty("服务实际开始时间")
|
||||
private LocalDateTime realServeStartTime;
|
||||
|
||||
@ApiModelProperty("服务开始图片")
|
||||
private List<String> serveBeforeImgs;
|
||||
|
||||
@ApiModelProperty("服务开始说明")
|
||||
private String serveBeforeIllustrate;
|
||||
|
||||
@ApiModelProperty("服务完成时间")
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
@ApiModelProperty("服务完成图片")
|
||||
private List<String> serveAfterImgs;
|
||||
|
||||
@ApiModelProperty("服务完成说明")
|
||||
private String serveAfterIllustrate;
|
||||
}
|
||||
|
||||
@Data
|
||||
@ApiModel("退款信息模型")
|
||||
public static class RefundInfo {
|
||||
@ApiModelProperty("退款状态:0:发起退款,1:退款中,2:成功,3:失败")
|
||||
private Integer refundStatus;
|
||||
|
||||
@ApiModelProperty("取消人类型,0:系统,1:普通用户,4:管理员")
|
||||
private Integer cancellerType;
|
||||
|
||||
@ApiModelProperty("退款人,退款人和取消人保持一致")
|
||||
private String cancelerName;
|
||||
|
||||
@ApiModelProperty("退款理由和取消理由一致")
|
||||
private String cancelReason;
|
||||
|
||||
@ApiModelProperty("支付渠道,ALI_PAY:支付宝,WECHAT_PAY:微信")
|
||||
private String tradingChannel;
|
||||
|
||||
@ApiModelProperty("退款三方流水,微信支付订单号或支付宝订单号")
|
||||
private String thirdRefundOrderId;
|
||||
|
||||
@ApiModelProperty("退款金额,和实付金额保持一致")
|
||||
private BigDecimal realPayAmount;
|
||||
|
||||
@ApiModelProperty("退款时间;和取消时间保持一致")
|
||||
private LocalDateTime cancelTime;
|
||||
}
|
||||
|
||||
@Data
|
||||
@ApiModel("订单取消模型")
|
||||
public static class CancelInfo {
|
||||
@ApiModelProperty("取消人类型,0:系统,1:普通用户,4:管理员")
|
||||
private Integer cancellerType;
|
||||
|
||||
@ApiModelProperty("取消人")
|
||||
private String cancelerName;
|
||||
|
||||
@ApiModelProperty("取消时间")
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
@ApiModelProperty("取消理由")
|
||||
private String cancelReason;
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
@ApiModel("状态节点流转模型")
|
||||
@AllArgsConstructor
|
||||
public static class OrderProgress {
|
||||
@ApiModelProperty("订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:订单取消,700已退单")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("时间")
|
||||
private LocalDateTime dateTime;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("派单列表")
|
||||
public class OrdersDispatchResDTO {
|
||||
@ApiModelProperty(value = "派单id",required = true)
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "订单编号", required = true)
|
||||
private String ordersNo;
|
||||
@ApiModelProperty(value = "分类名称",required = true)
|
||||
private String serveTypeName;
|
||||
@ApiModelProperty(value = "服务项名称",required = true)
|
||||
private String serveItemName;
|
||||
@ApiModelProperty(value = "服务费",required = true)
|
||||
private BigDecimal serveFee;
|
||||
@ApiModelProperty(value = "预约时间",required = true)
|
||||
private LocalDateTime serveStartTime;
|
||||
@ApiModelProperty(value = "服务地址",required = true)
|
||||
private String serveAddress;
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import com.jzo2o.api.trade.enums.PayChannelEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 订单支付响应体
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/9/4 10:00
|
||||
**/
|
||||
@Data
|
||||
@ApiModel("订单支付响应体")
|
||||
public class OrdersPayResDTO {
|
||||
|
||||
@ApiModelProperty(value = "二维码base64数据")
|
||||
private String qrCode;
|
||||
@ApiModelProperty(value = "业务系统订单号")
|
||||
private Long productOrderNo;
|
||||
@ApiModelProperty(value = "交易系统订单号【对于三方来说:商户订单】")
|
||||
private Long tradingOrderNo;
|
||||
@ApiModelProperty(value = "支付渠道【支付宝、微信、现金、免单挂账】")
|
||||
private String tradingChannel;
|
||||
@ApiModelProperty(value = "支付状态 待支付或支付成功")
|
||||
private int payStatus;
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("抢单列表")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrdersSeizeListResDTO implements Serializable {
|
||||
|
||||
@ApiModelProperty("抢单列表")
|
||||
private List<OrdersSeize> ordersSeizes;
|
||||
|
||||
@Data
|
||||
public static class OrdersSeize implements Serializable{
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@ApiModelProperty(value = "订单id",required = true)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 服务名称
|
||||
*/
|
||||
@ApiModelProperty(value = "服务项名称",required = true)
|
||||
private String serveItemName;
|
||||
|
||||
@ApiModelProperty(value = "服务分类id",required = true)
|
||||
private Long serveTypeId;
|
||||
|
||||
/**
|
||||
* 服务分类名称
|
||||
*/
|
||||
@ApiModelProperty(value = "服务类型名称",required = true)
|
||||
private String serveTypeName;
|
||||
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
@ApiModelProperty(value = "服务地址",required = true)
|
||||
private String serveAddress;
|
||||
|
||||
/**
|
||||
* 服务项目图片
|
||||
*/
|
||||
@ApiModelProperty(value = "服务图片",required = true)
|
||||
private String serveItemImg;
|
||||
|
||||
/**
|
||||
* 收益
|
||||
*/
|
||||
@ApiModelProperty(value = "服务费",required = true)
|
||||
private BigDecimal serveFee;
|
||||
|
||||
/**
|
||||
* 服务开始时间
|
||||
*/
|
||||
@ApiModelProperty(value = "服务开始时间",required = true)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
/**
|
||||
* 开始派单时间
|
||||
*/
|
||||
@ApiModelProperty(value = "服务开始派单时间",required = true)
|
||||
private LocalDateTime startDispatchTime;
|
||||
|
||||
|
||||
/**
|
||||
* 服务数量
|
||||
*/
|
||||
@ApiModelProperty(value = "服务数量",required = true)
|
||||
private Integer purNum;
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("订单详情信息")
|
||||
public class OrdersServeDetailResDTO {
|
||||
@ApiModelProperty("服务单id")
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "服务单状态,0:待分配,1:待服务,2:服务中,3:服务完成,4:已取消,5:被退单", required = true)
|
||||
private Integer serveStatus;
|
||||
|
||||
@ApiModelProperty("服务信息")
|
||||
private ServeInfo serveInfo;
|
||||
|
||||
@ApiModelProperty("客户信息")
|
||||
private CustomerInfo customerInfo;
|
||||
|
||||
@ApiModelProperty("订单信息")
|
||||
private OrdersInfo ordersInfo;
|
||||
|
||||
@ApiModelProperty("退款信息")
|
||||
private RefundInfo refundInfo;
|
||||
|
||||
@ApiModelProperty("取消信息")
|
||||
private CancelInfo cancelInfo;
|
||||
//
|
||||
//
|
||||
@Data
|
||||
@ApiModel("取消详情")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class CancelInfo {
|
||||
@ApiModelProperty("取消原因")
|
||||
private String cancelReason;
|
||||
@ApiModelProperty("取消时间")
|
||||
private LocalDateTime cancelTime;
|
||||
}
|
||||
@Data
|
||||
@ApiModel("退款信息")
|
||||
private static class RefundInfo {
|
||||
@ApiModelProperty("退款时间")
|
||||
private LocalDateTime refundTime;
|
||||
@ApiModelProperty("退款原因")
|
||||
private String refundReason;
|
||||
@ApiModelProperty("退款金额")
|
||||
private BigDecimal refundAmount;
|
||||
}
|
||||
@Data
|
||||
@ApiModel("服务信息")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class ServeInfo {
|
||||
@ApiModelProperty(value = "服务类型", required = true)
|
||||
private String serveTypeName;
|
||||
@ApiModelProperty(value = "服务项名称", required = true)
|
||||
private String serveItemName;
|
||||
@ApiModelProperty(value = "服务数量", required = true)
|
||||
private Integer serveNum;
|
||||
@ApiModelProperty(value = "服务单位", required = true)
|
||||
private Integer unit;
|
||||
@ApiModelProperty(value = "机构服务人", required = true)
|
||||
private String institutionStaffName;
|
||||
@ApiModelProperty(value = "服务前照片列表")
|
||||
private List<String> serveBeforeImgs;
|
||||
@ApiModelProperty(value = "服务前照片列表")
|
||||
private List<String> serveAfterImgs;
|
||||
@ApiModelProperty(value = "服务开始说明")
|
||||
private String serveBeforeIllustrate;
|
||||
@ApiModelProperty(value = "服务完成说明")
|
||||
private String serveAfterIllustrate;
|
||||
@ApiModelProperty("服务实际开始时间")
|
||||
private LocalDateTime realServeStartTime;
|
||||
@ApiModelProperty("服务实际完成时间")
|
||||
private LocalDateTime realServeEndTime;
|
||||
@ApiModelProperty("服务图片地址")
|
||||
private String serveItemImg;
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
@ApiModel("客户信息")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class CustomerInfo {
|
||||
@ApiModelProperty(value = "联系人", required = true)
|
||||
private String contactsName;
|
||||
@ApiModelProperty(value = "联系人手机号", required = true)
|
||||
private String contactsPhone;
|
||||
@ApiModelProperty(value = "服务地址", required = true)
|
||||
private String serveAddress;
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
@ApiModel("订单信息")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public static class OrdersInfo {
|
||||
|
||||
@ApiModelProperty(value = "服务单单编号", required = true)
|
||||
private Long ordersId;
|
||||
@ApiModelProperty(value = "服务开始时间", required = true)
|
||||
private LocalDateTime serveStartTime;
|
||||
@ApiModelProperty("订单金额")
|
||||
private BigDecimal ordersAmount;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@ApiModel("服务单列表,无分页")
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OrdersServeListResDTO {
|
||||
|
||||
@ApiModelProperty("服务单列表")
|
||||
private List<OrdersServeResDTO> ordersServes;
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("服务分页查询相关模型")
|
||||
public class OrdersServeResDTO {
|
||||
|
||||
@ApiModelProperty(value = "服务单id",required = true)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "服务分类名称",required = true)
|
||||
private String serveTypeName;
|
||||
|
||||
@ApiModelProperty("服务名称")
|
||||
private String serveItemName;
|
||||
|
||||
@ApiModelProperty(value = "服务地址",required = true)
|
||||
private String serveAddress;
|
||||
|
||||
@ApiModelProperty(value = "服务开始时间",required = true)
|
||||
private LocalDateTime serveStartTime;
|
||||
|
||||
@ApiModelProperty("服务图片地址")
|
||||
private String serveItemImg;
|
||||
|
||||
@ApiModelProperty(value = "订单金额",required = true)
|
||||
private BigDecimal ordersAmount;
|
||||
|
||||
@ApiModelProperty(value = "创建时间",required = true)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty("服务状态:服务状态,0:待分配,1:待服务,2:服务中,3:服务完成,4:已取消,5:被退单")
|
||||
private Integer serveStatus;
|
||||
|
||||
@ApiModelProperty("取消时间")
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
@ApiModelProperty("实际服务开始时间")
|
||||
private LocalDateTime realServeStartTime;
|
||||
|
||||
@ApiModelProperty("实际服务结束时间")
|
||||
private LocalDateTime realServeEndTime;
|
||||
|
||||
@ApiModelProperty("订单id")
|
||||
private Long ordersId;
|
||||
|
||||
@ApiModelProperty("排序字段")
|
||||
private Long sortBy;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@ApiModel("服务单状态的数量")
|
||||
public class OrdersServeStatusNumResDTO {
|
||||
@ApiModelProperty(required = true, value = "未分配")
|
||||
private Long noAllocation;
|
||||
@ApiModelProperty(required = true, value = "未开始服务")
|
||||
private Long noServed;
|
||||
@ApiModelProperty(required = true, value = "服务中,待服务完成")
|
||||
private Long serving;
|
||||
|
||||
public static OrdersServeStatusNumResDTO empty() {
|
||||
return new OrdersServeStatusNumResDTO(0L,0L,0L);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@ApiModel("下单响应信息")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PlaceOrderResDTO {
|
||||
@ApiModelProperty("订单id")
|
||||
private Long id;
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
package com.jzo2o.orders.manager.model.dto.response;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 服务人员/机构服务数据
|
||||
*
|
||||
* @author itcast
|
||||
* @create 2023/9/15 14:26
|
||||
**/
|
||||
@Data
|
||||
@ApiModel("服务人员/机构服务数据")
|
||||
public class ServeProviderServeResDTO {
|
||||
|
||||
@ApiModelProperty("订单id")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("服务名称")
|
||||
private String serveItemName;
|
||||
|
||||
@ApiModelProperty("机构下属服务人员id")
|
||||
private Long institutionStaffId;
|
||||
|
||||
@ApiModelProperty("机构下属服务人员姓名")
|
||||
private String institutionStaffName;
|
||||
|
||||
@ApiModelProperty("机构下属服务人员电话")
|
||||
private String institutionStaffPhone;
|
||||
|
||||
/**
|
||||
* 服务前照片
|
||||
*/
|
||||
@ApiModelProperty("服务前照片")
|
||||
private List<String> serveBeforeImgs;
|
||||
|
||||
/**
|
||||
* 服务后照片
|
||||
*/
|
||||
@ApiModelProperty("服务后照片")
|
||||
private List<String> serveAfterImgs;
|
||||
|
||||
/**
|
||||
* 实际支付金额
|
||||
*/
|
||||
@ApiModelProperty("实际支付金额")
|
||||
private BigDecimal ordersAmount;
|
||||
|
||||
/**
|
||||
* 评分
|
||||
*/
|
||||
@ApiModelProperty("评分")
|
||||
private Double score;
|
||||
|
||||
/**
|
||||
* 实际服务完结时间
|
||||
*/
|
||||
@ApiModelProperty("实际服务完结时间")
|
||||
private LocalDateTime realServeEndTime;
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.jzo2o.orders.manager.porperties;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "jzo2o.job")
|
||||
public class OrdersJobProperties {
|
||||
|
||||
/**
|
||||
* 自动评价订单数量,默认100
|
||||
*/
|
||||
private Integer autoEvaluateCount = 100;
|
||||
|
||||
/**
|
||||
* 退款订单数量,默认100
|
||||
*/
|
||||
private Integer refundOrderCount = 100;
|
||||
|
||||
/**
|
||||
* 超时支付订单数量,默认100
|
||||
*/
|
||||
private Integer overTimePayOrderCount = 100;
|
||||
|
||||
/**
|
||||
* 派单超时订单数量,默认100
|
||||
*/
|
||||
private Integer dispatchOverTimeOrderCount = 100;
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.jzo2o.orders.manager.porperties;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author itcast
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "jzo2o.trade")
|
||||
public class TradeProperties {
|
||||
|
||||
/**
|
||||
* 支付宝商户id
|
||||
*/
|
||||
private Long aliEnterpriseId;
|
||||
|
||||
/**
|
||||
* 微信支付商户id
|
||||
*/
|
||||
private Long wechatEnterpriseId;
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.jzo2o.orders.manager.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jzo2o.orders.base.enums.BreachHaviorTypeEnum;
|
||||
import com.jzo2o.orders.base.model.domain.BreachRecord;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 违约记录 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-02
|
||||
*/
|
||||
public interface IBreachRecordService extends IService<BreachRecord> {
|
||||
|
||||
|
||||
/**
|
||||
* 单独添加违约记录
|
||||
*
|
||||
* @param breachRecord 违约信息
|
||||
*/
|
||||
void add(BreachRecord breachRecord);
|
||||
|
||||
|
||||
/**
|
||||
* 统计违约记录
|
||||
* @param serveProviderId 服务人员或机构id
|
||||
* @param breachHaviorTypeEnum 拒单类型
|
||||
* @return
|
||||
*/
|
||||
int count(Long serveProviderId, BreachHaviorTypeEnum breachHaviorTypeEnum, int breachDay);
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.jzo2o.orders.manager.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jzo2o.orders.base.model.domain.OrdersCanceled;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单取消服务类
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-08-19
|
||||
*/
|
||||
public interface IOrdersCanceledService extends IService<OrdersCanceled> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package com.jzo2o.orders.manager.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jzo2o.api.market.dto.request.CouponUseBackReqDTO;
|
||||
import com.jzo2o.api.market.dto.response.AvailableCouponsResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderSimpleResDTO;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.common.model.msg.TradeStatusMsg;
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
import com.jzo2o.orders.manager.model.dto.OrderCancelDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrderPageQueryReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrdersPayReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.PlaceOrderReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OperationOrdersDetailResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersPayResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.PlaceOrderResDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 下单服务类
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-07-10
|
||||
*/
|
||||
public interface IOrdersCreateService extends IService<Orders> {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
package com.jzo2o.orders.manager.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jzo2o.api.market.dto.request.CouponUseBackReqDTO;
|
||||
import com.jzo2o.api.market.dto.response.AvailableCouponsResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderResDTO;
|
||||
import com.jzo2o.api.orders.dto.response.OrderSimpleResDTO;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.common.model.msg.TradeStatusMsg;
|
||||
import com.jzo2o.orders.base.model.domain.Orders;
|
||||
import com.jzo2o.orders.manager.model.dto.OrderCancelDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrderPageQueryReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.OrdersPayReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.request.PlaceOrderReqDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OperationOrdersDetailResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.OrdersPayResDTO;
|
||||
import com.jzo2o.orders.manager.model.dto.response.PlaceOrderResDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author itcast
|
||||
* @since 2023-07-10
|
||||
*/
|
||||
public interface IOrdersManagerService extends IService<Orders> {
|
||||
|
||||
/**
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
List<Orders> batchQuery(List<Long> ids);
|
||||
|
||||
Orders queryById(Long id);
|
||||
|
||||
/**
|
||||
* 滚动分页查询
|
||||
*
|
||||
* @param currentUserId 当前用户id
|
||||
* @param ordersStatus 订单状态,0:待支付,100:派单中,200:待服务,300:服务中,400:待评价,500:订单完成,600:已取消,700:已关闭
|
||||
* @param sortBy 排序字段
|
||||
* @return 订单列表
|
||||
*/
|
||||
List<OrderSimpleResDTO> consumerQueryList(Long currentUserId, Integer ordersStatus, Long sortBy);
|
||||
|
||||
|
||||
/**
|
||||
* 根据订单id查询
|
||||
*
|
||||
* @param id 订单id
|
||||
* @return 订单详情
|
||||
*/
|
||||
OrderResDTO getDetail(Long id);
|
||||
/**
|
||||
* 订单评价
|
||||
*
|
||||
* @param ordersId 订单id
|
||||
*/
|
||||
void evaluationOrder(Long ordersId);
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user