Commit 6bb90954 authored by lining's avatar lining

feat: 接口添加创建人(create_by)逻辑

parent cfae5700
......@@ -125,5 +125,14 @@ public class ServiceOrder implements Serializable {
@ApiModelProperty("修改时间")
private Date modifyTime;
@Column(name = "create_by")
@ApiModelProperty("创建人")
private Long createBy;
@Column(name = "modify_by")
@ApiModelProperty("修改人")
private Long modifyBy;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -58,14 +58,13 @@ public class ServiceValuatorAssign implements Serializable {
@Column(name = "create_by")
@ApiModelProperty("创建人")
private String createBy;
private Long createBy;
@Column(name = "modify_by")
@ApiModelProperty("修改人")
private String modifyBy;
private Long modifyBy;
@ApiModelProperty("删除标记")
@LogicDelete
private Boolean deleted;
private static final long serialVersionUID = 1L;
......
......@@ -58,15 +58,14 @@ public class ServiceWorkerAssign implements Serializable {
@Column(name = "create_by")
@ApiModelProperty("创建人")
private String createBy;
private Long createBy;
@Column(name = "modify_by")
@ApiModelProperty("修改人")
private String modifyBy;
private Long modifyBy;
@ApiModelProperty("删除标记")
@LogicDelete
private Byte deleted;
private Boolean deleted;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -111,8 +111,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
public Result<PageInfoVO<ServiceOrderVO>> selectByUserId(PageServiceOrderDTO dto, Long uid) {
PageHelper.startPage(dto.getPage(), dto.getSize());
List<ServiceOrder> serviceOrders = serviceOrderBizMapper.selectServiceOrderPage(dto, uid);
List<ServiceOrderVO> serviceOrderVOList = serviceOrders.parallelStream()
.map(e -> AttrCopyUtils.copy(e, new ServiceOrderVO())).collect(Collectors.toList());
List<ServiceOrderVO> serviceOrderVOList = serviceOrders.parallelStream().map(e -> AttrCopyUtils.copy(e, new ServiceOrderVO())).collect(Collectors.toList());
return ResultGenerator.success(new PageInfoVO<>(serviceOrderVOList));
}
......@@ -137,6 +136,8 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
serviceOrder.setOrderNo(RandomUtils.orderNum());
// 客户手机号
serviceOrder.setPhone(serviceAddress.getPhone());
// 创建人
serviceOrder.setCreateBy(userId);
int result = this.insertSelective(serviceOrder);
......@@ -169,19 +170,11 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_VALUATOR_NOT_EXIST);
}
// 存估价员服务时间
ServiceValuatorAssign serviceValuatorAssign = new ServiceValuatorAssign();
// 估价员id
serviceValuatorAssign.setValuatorId(dto.getHostId());
// 订单id
serviceValuatorAssign.setOrderId(dto.getId());
// 估价员上门时间
serviceValuatorAssign.setAssignTime(dto.getExpectArrivalTime());
// 创建人
serviceValuatorAssign.setCreateBy(user.getUserName());
serviceValuatorAssignMapper.insertSelective(serviceValuatorAssign);
serviceValuatorAssignMapper.insertSelective(buildServiceValuatorAssign(dto, userId));
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.VALUATION.getStatus());
serviceOrder.setModifyBy(userId);
int result = this.updateByPrimaryKeySelective(serviceOrder);
if (result == 1) {
......@@ -208,21 +201,9 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_VALUATOR_NOT_EXIST);
}
Condition c = new Condition(ServiceValuatorAssign.class);
c.createCriteria().andEqualTo(BizConstants.OrderConstants.ORDER_ID, serviceOrder.getId());
serviceValuatorAssignMapper.deleteByCondition(c);
disableServiceValuatorAssign(serviceOrder, userId);
// 存估价员服务时间
ServiceValuatorAssign serviceValuatorAssign = new ServiceValuatorAssign();
// 估价员id
serviceValuatorAssign.setValuatorId(dto.getHostId());
// 订单id
serviceValuatorAssign.setOrderId(dto.getId());
// 估价员上门时间
serviceValuatorAssign.setAssignTime(dto.getExpectArrivalTime());
// 创建人
serviceValuatorAssign.setCreateBy(user.getUserName());
int result = serviceValuatorAssignMapper.insertSelective(serviceValuatorAssign);
int result = serviceValuatorAssignMapper.insertSelective(buildServiceValuatorAssign(dto, userId));
if (result == 1) {
String description = String.format(ServiceOrderStatusEnum.REVALUATION.getMsg(), user.getUserName(), serviceValuator.getName());
......@@ -239,23 +220,25 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
public int sendOrder(SendServiceOrderDTO dto, Long userId) {
log.info("sendOrder dto: {}, userId: {}", dto, userId);
// 判断发送者权限
// 判断发送者权限 只有客服和估价员可以发送订单
User user = userMapper.selectByPrimaryKey(userId);
if (Objects.isNull(user)
|| (!user.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId()) && !user.getRoleType().equals(ServiceUserTypeEnum.VALUATOR.getId()))) {
if (Objects.isNull(user) || (!user.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId()) && !user.getRoleType().equals(ServiceUserTypeEnum.VALUATOR.getId()))) {
throw new ServiceException(BizCodeEnum.NO_AUTH_SEND_ORDER);
}
// 判断能发送的状态
// 判断能发送的状态: 估价可以发送,下单可以直接发送
ServiceOrder serviceOrder = checkOrder(dto.getId(), null);
if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.VALUATION.getStatus())
&& !serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.RESERVE.getStatus())) {
if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.VALUATION.getStatus()) && !serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.RESERVE.getStatus())) {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_SEND);
}
disableServiceValuatorAssign(serviceOrder, userId);
// 估价价格
serviceOrder.setPrice(dto.getPrice());
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.SEND.getStatus());
serviceOrder.setModifyBy(userId);
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
try {
......@@ -271,8 +254,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
if (result == 1) {
boolean isAdmin = user.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId());
String description = String.format(ServiceOrderStatusEnum.SEND.getMsg(),
(isAdmin ? ServiceUserTypeEnum.ADMIN.getName() : ServiceUserTypeEnum.VALUATOR.getName()) + user.getUserName());
String description = String.format(ServiceOrderStatusEnum.SEND.getMsg(), (isAdmin ? ServiceUserTypeEnum.ADMIN.getName() : ServiceUserTypeEnum.VALUATOR.getName()) + user.getUserName());
recordProcess(serviceOrder.getId(), ServiceOrderStatusEnum.SEND.getStatus(), description, null, null);
}
......@@ -290,6 +272,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
}
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.PAY.getStatus());
serviceOrder.setModifyBy(userId);
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
......@@ -318,18 +301,11 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_WORKER_NOT_EXIST);
}
// 存维修工服务时间
ServiceWorkerAssign serviceWorkerAssign = new ServiceWorkerAssign();
// 维修工id
serviceWorkerAssign.setWorkerId(dto.getHostId());
// 订单id
serviceWorkerAssign.setOrderId(dto.getId());
// 期望维修工上门时间
serviceWorkerAssign.setAssignTime(dto.getExpectArrivalTime());
serviceWorkerAssign.setCreateBy(user.getUserName());
serviceWorkerAssignMapper.insertSelective(serviceWorkerAssign);
serviceWorkerAssignMapper.insertSelective(buildServiceWorkerAssign(dto, userId));
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.DISPATCH.getStatus());
serviceOrder.setModifyBy(userId);
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
// TODO 短信 "您的订单已为您指派维修工,请保持手机畅通!"
......@@ -360,20 +336,9 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_WORKER_NOT_EXIST);
}
Condition c = new Condition(ServiceWorkerAssign.class);
c.createCriteria().andEqualTo(BizConstants.OrderConstants.ORDER_ID, serviceOrder.getId());
serviceWorkerAssignMapper.deleteByCondition(c);
disableServiceWorkerAssign(serviceOrder, userId);
// 存维修工服务时间
ServiceWorkerAssign serviceWorkerAssign = new ServiceWorkerAssign();
// 维修工id
serviceWorkerAssign.setWorkerId(dto.getHostId());
// 订单id
serviceWorkerAssign.setOrderId(dto.getId());
// 期望维修工上门时间
serviceWorkerAssign.setAssignTime(dto.getExpectArrivalTime());
serviceWorkerAssign.setCreateBy(user.getUserName());
int result = serviceWorkerAssignMapper.insertSelective(serviceWorkerAssign);
int result = serviceWorkerAssignMapper.insertSelective(buildServiceWorkerAssign(dto, userId));
// TODO 短信 "您的订单已为您重新指派维修工,请保持手机畅通!"
......@@ -407,7 +372,11 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.NO_AUTH_FINISH_ORDER);
}
disableServiceWorkerAssign(serviceOrder, userId);
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.FINISH.getStatus());
serviceOrder.setModifyBy(userId);
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
if (result == 1) {
......@@ -427,7 +396,11 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_CANCEL);
}
disableServiceValuatorAssign(serviceOrder, userId);
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.CANCEL.getStatus());
serviceOrder.setModifyBy(userId);
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
if (result == 1) {
......@@ -444,10 +417,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
Condition c = new Condition(ServiceOrderLog.class);
c.createCriteria().andEqualTo(BizConstants.OrderConstants.ORDER_ID, id);
List<ServiceOrderLog> serviceOrderLogList = serviceOrderLogMapper.selectByCondition(c);
return serviceOrderLogList.parallelStream()
.map(e -> AttrCopyUtils.copy(e, new ServiceOrderLogVO()))
.sorted(Comparator.comparing(ServiceOrderLogVO::getCreateTime).reversed())
.collect(Collectors.toList());
return serviceOrderLogList.parallelStream().map(e -> AttrCopyUtils.copy(e, new ServiceOrderLogVO())).sorted(Comparator.comparing(ServiceOrderLogVO::getCreateTime).reversed()).collect(Collectors.toList());
}
......@@ -506,6 +476,72 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
}
private ServiceValuatorAssign buildServiceValuatorAssign(ValuationServiceOrderDTO dto, Long userId) {
ServiceValuatorAssign serviceValuatorAssign = new ServiceValuatorAssign();
// 估价员id
serviceValuatorAssign.setValuatorId(dto.getHostId());
// 订单id
serviceValuatorAssign.setOrderId(dto.getId());
// 估价员上门时间
serviceValuatorAssign.setAssignTime(dto.getExpectArrivalTime());
// 创建人
serviceValuatorAssign.setCreateBy(userId);
return serviceValuatorAssign;
}
/**
* 估价员上门时间失效
*
* @param serviceOrder 订单
* @param userId 用户id
*/
public void disableServiceValuatorAssign(ServiceOrder serviceOrder, Long userId) {
ServiceValuatorAssign serviceValuatorAssign = new ServiceValuatorAssign();
serviceValuatorAssign.setModifyBy(userId);
serviceValuatorAssign.setDeleted(true);
Condition c = new Condition(ServiceValuatorAssign.class);
c.createCriteria().andEqualTo(BizConstants.OrderConstants.ORDER_ID, serviceOrder.getId());
serviceValuatorAssignMapper.updateByConditionSelective(serviceValuatorAssign, c);
}
private ServiceWorkerAssign buildServiceWorkerAssign(DispatchServiceOrderDTO dto, Long userId) {
ServiceWorkerAssign serviceWorkerAssign = new ServiceWorkerAssign();
// 维修工id
serviceWorkerAssign.setWorkerId(dto.getHostId());
// 订单id
serviceWorkerAssign.setOrderId(dto.getId());
// 维修工上门时间
serviceWorkerAssign.setAssignTime(dto.getExpectArrivalTime());
// 创建人
serviceWorkerAssign.setCreateBy(userId);
return serviceWorkerAssign;
}
/**
* 维修工上门时间失效
*
* @param serviceOrder 订单
* @param userId 用户id
*/
public void disableServiceWorkerAssign(ServiceOrder serviceOrder, Long userId) {
ServiceWorkerAssign serviceWorkerAssign = new ServiceWorkerAssign();
serviceWorkerAssign.setModifyBy(userId);
serviceWorkerAssign.setDeleted(true);
Condition c = new Condition(ServiceWorkerAssign.class);
c.createCriteria().andEqualTo(BizConstants.OrderConstants.ORDER_ID, serviceOrder.getId());
serviceWorkerAssignMapper.updateByConditionSelective(serviceWorkerAssign, c);
}
@Async
public void recordProcess(Long orderId, Integer processId, String description, Long hostId, String remark) {
ServiceOrderLog serviceOrderLog = new ServiceOrderLog();
......
......@@ -63,7 +63,11 @@ public class ServiceValuatorService extends AbstractMapper<ServiceValuator> {
// 已被指派的时间
List<ServiceValuatorAssign> serviceValuatorAssignList = serviceValuatorAssignMapper.selectByIdList(valuatorIds);
Map<Long, List<ServiceValuatorAssign>> serviceValuatorAssignMap =
serviceValuatorAssignList.parallelStream().collect(Collectors.groupingBy(ServiceValuatorAssign::getValuatorId));
serviceValuatorAssignList.parallelStream()
// 未过期的指派时间
.filter(e -> e.getAssignTime().getTime() >= System.currentTimeMillis())
.filter(e -> !e.getDeleted())
.collect(Collectors.groupingBy(ServiceValuatorAssign::getValuatorId));
return serviceValuatorList.parallelStream().map(e1 -> {
ServiceValuatorVO serviceValuatorVO = AttrCopyUtils.copy(e1, new ServiceValuatorVO());
......
......@@ -59,7 +59,10 @@ public class ServiceWorkerService extends AbstractMapper<ServiceWorker> {
// 已被指派的时间
List<ServiceWorkerAssign> serviceWorkerAssignList = serviceWorkerAssignMapper.selectByIdList(workerIds);
Map<Long, List<ServiceWorkerAssign>> serviceWorkerAssignMap =
serviceWorkerAssignList.parallelStream().collect(Collectors.groupingBy(ServiceWorkerAssign::getWorkerId));
serviceWorkerAssignList.parallelStream()
.filter(e -> e.getAssignTime().getTime() >= System.currentTimeMillis())
.filter(e -> !e.getDeleted())
.collect(Collectors.groupingBy(ServiceWorkerAssign::getWorkerId));
return serviceWorkerList.parallelStream().map(e1 -> {
ServiceWorkerVO serviceWorkerVO = AttrCopyUtils.copy(e1, new ServiceWorkerVO());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment