Commit 6bb90954 authored by lining's avatar lining

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

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